{ "name": "Contract", "structs": { "EventOnly": [ { "name": "x", "type": "uint64" }, { "name": "y", "type": "uint64" } ], "SharedStruct": [ { "name": "foo", "type": "byte[]" }, { "name": "bar", "type": "uint8" } ], "StateStruct": [ { "name": "a", "type": "uint64" }, { "name": "b", "type": "string" } ], "TopLevelStruct": [ { "name": "a", "type": "uint64" }, { "name": "b", "type": "string" }, { "name": "shared", "type": "SharedStruct" } ] }, "methods": [ { "name": "create", "args": [], "returns": { "type": "void" }, "actions": { "create": [ "NoOp", "OptIn" ], "call": [ "NoOp", "OptIn" ] }, "readonly": false, "desc": "Method docstring", "events": [], "recommendations": {} }, { "name": "struct_arg", "args": [ { "type": "(uint64,string,(byte[],uint8))", "struct": "TopLevelStruct", "name": "arg" }, { "type": "(byte[],uint8)", "struct": "SharedStruct", "name": "shared" } ], "returns": { "type": "uint64" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "desc": "Method docstring2", "events": [], "recommendations": {} }, { "name": "struct_return", "args": [ { "type": "(uint64,string,(byte[],uint8))", "struct": "TopLevelStruct", "name": "arg" } ], "returns": { "type": "(byte[],uint8)", "struct": "SharedStruct" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": true, "events": [], "recommendations": {} }, { "name": "emits_error", "args": [ { "type": "(uint64,string,(byte[],uint8))", "struct": "TopLevelStruct", "name": "arg" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": true, "events": [], "recommendations": {} }, { "name": "emitter", "args": [], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [ { "name": "SharedStruct", "args": [ { "type": "byte[]", "name": "foo" }, { "type": "uint8", "name": "bar" } ], "desc": "This struct is shared" }, { "name": "Anonymous", "args": [ { "type": "string", "name": "field1" }, { "type": "(byte[],uint8)", "name": "field2", "struct": "SharedStruct" } ] } ], "recommendations": {} }, { "name": "conditional_emit", "args": [ { "type": "bool", "name": "should_emit" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [ { "name": "Anonymous2", "args": [ { "type": "(uint64,uint64)", "name": "field1", "struct": "EventOnly" }, { "type": "(byte[],uint8)", "name": "field2", "struct": "SharedStruct" } ] } ], "recommendations": {} }, { "name": "template_value", "args": [], "returns": { "type": "((byte[],uint8),uint64,string,uint8)" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "with_constant_defaults", "args": [ { "type": "uint64", "name": "a", "defaultValue": { "source": "literal", "data": "AAAAAAAAAHs=", "type": "uint64" } }, { "type": "uint64", "name": "b", "defaultValue": { "source": "literal", "data": "AAAAAAAAAOo=", "type": "uint64" } }, { "type": "byte[]", "name": "c", "defaultValue": { "source": "literal", "data": "AAMxMjM=", "type": "byte[]" } }, { "type": "(uint64,uint64)", "struct": "EventOnly", "name": "d", "defaultValue": { "source": "literal", "data": "AAAAAAAAAAEAAAAAAAAAAg==", "type": "(uint64,uint64)" } }, { "type": "(uint64,string)", "name": "e", "defaultValue": { "source": "literal", "data": "AAAAAAAAACoACgALb24gdGhlIGVkZ2U=", "type": "(uint64,string)" } }, { "type": "string[2]", "name": "f", "defaultValue": { "source": "literal", "data": "AAQACAACaGkABnRoZXJlIQ==", "type": "string[2]" } }, { "type": "string[]", "name": "g", "defaultValue": { "source": "literal", "data": "AAIABAAJAANvbmUAA3R3bw==", "type": "string[]" } }, { "type": "uint64", "name": "h", "defaultValue": { "source": "literal", "data": "AAAAAAAAACo=", "type": "uint64" } }, { "type": "uint64", "name": "i", "defaultValue": { "source": "literal", "data": "AAAAAAAABNI=", "type": "uint64" } } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} } ], "arcs": [ 22, 28 ], "desc": "Contract docstring", "networks": {}, "state": { "schema": { "global": { "ints": 1, "bytes": 2 }, "local": { "ints": 1, "bytes": 2 } }, "keys": { "global": { "g_struct": { "keyType": "AVMString", "valueType": "StateStruct", "key": "Z19zdHJ1Y3Q=" }, "g_uint64": { "keyType": "AVMBytes", "valueType": "AVMUint64", "key": "Z3U=" }, "g_address": { "keyType": "AVMBytes", "valueType": "address", "key": "Z2E=" } }, "local": { "l_struct": { "keyType": "AVMString", "valueType": "StateStruct", "key": "bF9zdHJ1Y3Q=" }, "l_uint64": { "keyType": "AVMBytes", "valueType": "AVMUint64", "key": "bHU=" }, "l_address": { "keyType": "AVMBytes", "valueType": "address", "key": "bGE=" } }, "box": { "b_struct": { "keyType": "AVMString", "valueType": "StateStruct", "key": "Yl9zdHJ1Y3Q=" }, "b_uint64": { "keyType": "AVMBytes", "valueType": "AVMUint64", "key": "YnU=" }, "b_address": { "keyType": "AVMBytes", "valueType": "address", "key": "YmE=" }, "box_ref": { "keyType": "AVMString", "valueType": "AVMBytes", "key": "Ym94X3JlZg==" }, "box_ref2": { "keyType": "AVMBytes", "valueType": "AVMBytes", "key": "YnI=" } } }, "maps": { "global": {}, "local": {}, "box": { "box_map_struct": { "keyType": "StateStruct", "valueType": "SharedStruct", "prefix": "Ym94X21hcF9zdHJ1Y3Q=" }, "box_map_uint64": { "keyType": "AVMUint64", "valueType": "SharedStruct", "prefix": "Ym11" }, "box_map_address": { "keyType": "address", "valueType": "SharedStruct", "prefix": "Ym1h" } } } }, "bareActions": { "create": [ "DeleteApplication", "NoOp", "OptIn" ], "call": [ "NoOp", "OptIn" ] }, "sourceInfo": { "approval": { "sourceInfo": [ { "pc": [ 396, 515, 525 ], "errorMessage": "Index access is out of bounds" }, { "pc": [ 113, 177, 234, 251, 263, 278, 297 ], "errorMessage": "OnCompletion is not NoOp" }, { "pc": [ 324 ], "errorMessage": "OnCompletion is not one of NoOp, OptIn" }, { "pc": [ 349 ], "errorMessage": "can only call when creating" }, { "pc": [ 116, 180, 237, 254, 266, 281, 300 ], "errorMessage": "can only call when not creating" }, { "pc": [ 372 ], "errorMessage": "this might error" }, { "pc": [ 403 ], "errorMessage": "this will error" } ], "pcOffsetMethod": "none" }, "clear": { "sourceInfo": [], "pcOffsetMethod": "none" } }, "source": { "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyB0ZXN0X2Nhc2VzLmFyY181Ni5jb250cmFjdC5Db250cmFjdC5fX2FsZ29weV9lbnRyeXBvaW50X3dpdGhfaW5pdCgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIGludGNibG9jayAxIDAgMTAgNDIgVE1QTF9BVk1fVUlOVDY0CiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUgMHgwMDAwMDAwMDAwMDAwMDAwIFRNUExfQVJDNF9VSU5UOCBUTVBMX1NUUlVDVCBUTVBMX0FWTV9TVFJJTkcKICAgIC8vIGFyY181Ni9jb250cmFjdC5weTo1NAogICAgLy8gY2xhc3MgQ29udHJhY3QoQVJDNENvbnRyYWN0KToKICAgIHR4biBOdW1BcHBBcmdzCiAgICBieiBtYWluX2JhcmVfcm91dGluZ0AxMwogICAgcHVzaGJ5dGVzcyAweDRjNWM2MWJhIDB4OTdlOGU0YTcgMHg3NmM0ZGUxMSAweGMxY2E3NzA5IDB4NmRlNzYyYzIgMHg1OWZjNTI4MiAweDlkOWVlY2IwIDB4NWU4ZWVmOWEgLy8gbWV0aG9kICJjcmVhdGUoKXZvaWQiLCBtZXRob2QgInN0cnVjdF9hcmcoKHVpbnQ2NCxzdHJpbmcsKGJ5dGVbXSx1aW50OCkpLChieXRlW10sdWludDgpKXVpbnQ2NCIsIG1ldGhvZCAic3RydWN0X3JldHVybigodWludDY0LHN0cmluZywoYnl0ZVtdLHVpbnQ4KSkpKGJ5dGVbXSx1aW50OCkiLCBtZXRob2QgImVtaXRzX2Vycm9yKCh1aW50NjQsc3RyaW5nLChieXRlW10sdWludDgpKSl2b2lkIiwgbWV0aG9kICJlbWl0dGVyKCl2b2lkIiwgbWV0aG9kICJjb25kaXRpb25hbF9lbWl0KGJvb2wpdm9pZCIsIG1ldGhvZCAidGVtcGxhdGVfdmFsdWUoKSgoYnl0ZVtdLHVpbnQ4KSx1aW50NjQsc3RyaW5nLHVpbnQ4KSIsIG1ldGhvZCAid2l0aF9jb25zdGFudF9kZWZhdWx0cyh1aW50NjQsdWludDY0LGJ5dGVbXSwodWludDY0LHVpbnQ2NCksKHVpbnQ2NCxzdHJpbmcpLHN0cmluZ1syXSxzdHJpbmdbXSx1aW50NjQsdWludDY0KXZvaWQiCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBtYXRjaCBtYWluX2NyZWF0ZV9yb3V0ZUA1IG1haW5fc3RydWN0X2FyZ19yb3V0ZUA2IG1haW5fc3RydWN0X3JldHVybl9yb3V0ZUA3IG1haW5fZW1pdHNfZXJyb3Jfcm91dGVAOCBtYWluX2VtaXR0ZXJfcm91dGVAOSBtYWluX2NvbmRpdGlvbmFsX2VtaXRfcm91dGVAMTAgbWFpbl90ZW1wbGF0ZV92YWx1ZV9yb3V0ZUAxMSBtYWluX3dpdGhfY29uc3RhbnRfZGVmYXVsdHNfcm91dGVAMTIKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxNjoKICAgIC8vIGFyY181Ni9jb250cmFjdC5weTo1NAogICAgLy8gY2xhc3MgQ29udHJhY3QoQVJDNENvbnRyYWN0KToKICAgIGludGNfMSAvLyAwCiAgICByZXR1cm4KCm1haW5fd2l0aF9jb25zdGFudF9kZWZhdWx0c19yb3V0ZUAxMjoKICAgIC8vIGFyY181Ni9jb250cmFjdC5weToxMzItMTQ0CiAgICAvLyBAYXJjNC5hYmltZXRob2QoCiAgICAvLyAgICAgZGVmYXVsdF9hcmdzPXsKICAgIC8vICAgICAgICAgImEiOiBhcmM0LlVJbnQ2NCgxMjMpLAogICAgLy8gICAgICAgICAiYyI6IEJ5dGVzKGIiMTIzIiksCiAgICAvLyAgICAgICAgICJiIjogVUludDY0KDIzNCksCiAgICAvLyAgICAgICAgICJkIjogRXZlbnRPbmx5KHg9YXJjNC5VSW50NjQoMSksIHk9YXJjNC5VSW50NjQoMikpLAogICAgLy8gICAgICAgICAiZSI6IChVSW50NjQoNDIpLCBTdHJpbmcoIm9uIHRoZSBlZGdlIikpLAogICAgLy8gICAgICAgICAiZiI6IGFyYzQuU3RhdGljQXJyYXkoYXJjNC5TdHJpbmcoImhpIiksIGFyYzQuU3RyaW5nKCJ0aGVyZSEiKSksCiAgICAvLyAgICAgICAgICJnIjogYXJjNC5EeW5hbWljQXJyYXkoYXJjNC5TdHJpbmcoIm9uZSIpLCBhcmM0LlN0cmluZygidHdvIikpLAogICAgLy8gICAgICAgICAiaCI6IGNvbnN0YW50X21ldGhvZCgpLAogICAgLy8gICAgICAgICAiaSI6IGVjaG9fbnVtYmVyKFVJbnQ2NCgxMjM0KSksCiAgICAvLyAgICAgfQogICAgLy8gKQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyBhcmNfNTYvY29udHJhY3QucHk6NTQKICAgIC8vIGNsYXNzIENvbnRyYWN0KEFSQzRDb250cmFjdCk6CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAzCiAgICBleHRyYWN0IDIgMAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNQogICAgZHVwCiAgICBpbnRjXzEgLy8gMAogICAgZXh0cmFjdF91aW50NjQKICAgIGRpZyAxCiAgICBwdXNoaW50IDggLy8gOAogICAgZXh0cmFjdF91aW50MTYKICAgIGRpZyAyCiAgICBsZW4KICAgIHVuY292ZXIgMwogICAgY292ZXIgMgogICAgc3Vic3RyaW5nMwogICAgZXh0cmFjdCAyIDAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDYKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDcKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDgKICAgIGJ0b2kKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDkKICAgIGJ0b2kKICAgIC8vIGFyY181Ni9jb250cmFjdC5weToxMzItMTQ0CiAgICAvLyBAYXJjNC5hYmltZXRob2QoCiAgICAvLyAgICAgZGVmYXVsdF9hcmdzPXsKICAgIC8vICAgICAgICAgImEiOiBhcmM0LlVJbnQ2NCgxMjMpLAogICAgLy8gICAgICAgICAiYyI6IEJ5dGVzKGIiMTIzIiksCiAgICAvLyAgICAgICAgICJiIjogVUludDY0KDIzNCksCiAgICAvLyAgICAgICAgICJkIjogRXZlbnRPbmx5KHg9YXJjNC5VSW50NjQoMSksIHk9YXJjNC5VSW50NjQoMikpLAogICAgLy8gICAgICAgICAiZSI6IChVSW50NjQoNDIpLCBTdHJpbmcoIm9uIHRoZSBlZGdlIikpLAogICAgLy8gICAgICAgICAiZiI6IGFyYzQuU3RhdGljQXJyYXkoYXJjNC5TdHJpbmcoImhpIiksIGFyYzQuU3RyaW5nKCJ0aGVyZSEiKSksCiAgICAvLyAgICAgICAgICJnIjogYXJjNC5EeW5hbWljQXJyYXkoYXJjNC5TdHJpbmcoIm9uZSIpLCBhcmM0LlN0cmluZygidHdvIikpLAogICAgLy8gICAgICAgICAiaCI6IGNvbnN0YW50X21ldGhvZCgpLAogICAgLy8gICAgICAgICAiaSI6IGVjaG9fbnVtYmVyKFVJbnQ2NCgxMjM0KSksCiAgICAvLyAgICAgfQogICAgLy8gKQogICAgY2FsbHN1YiB3aXRoX2NvbnN0YW50X2RlZmF1bHRzCiAgICBpbnRjXzAgLy8gMQogICAgcmV0dXJuCgptYWluX3RlbXBsYXRlX3ZhbHVlX3JvdXRlQDExOgogICAgLy8gYXJjXzU2L2NvbnRyYWN0LnB5OjEyMwogICAgLy8gQGFyYzQuYWJpbWV0aG9kKCkKICAgIHR4biBPbkNvbXBsZXRpb24KICAgICEKICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gYXJjXzU2L2NvbnRyYWN0LnB5OjEyOQogICAgLy8gVGVtcGxhdGVWYXJbYXJjNC5VSW50OF0oIkFSQzRfVUlOVDgiKSwKICAgIGJ5dGVjXzIgLy8gVE1QTF9BUkM0X1VJTlQ4CiAgICAvLyBhcmNfNTYvY29udHJhY3QucHk6MTI2CiAgICAvLyBUZW1wbGF0ZVZhcltTaGFyZWRTdHJ1Y3RdKCJTVFJVQ1QiKSwKICAgIGJ5dGVjXzMgLy8gVE1QTF9TVFJVQ1QKICAgIC8vIGFyY181Ni9jb250cmFjdC5weToxMjgKICAgIC8vIFRlbXBsYXRlVmFyW1N0cmluZ10oIkFWTV9TVFJJTkciKSwKICAgIGJ5dGVjIDQgLy8gVE1QTF9BVk1fU1RSSU5HCiAgICAvLyBhcmNfNTYvY29udHJhY3QucHk6MTI3CiAgICAvLyBUZW1wbGF0ZVZhcltVSW50NjRdKCJBVk1fVUlOVDY0IiksCiAgICBpbnRjIDQgLy8gVE1QTF9BVk1fVUlOVDY0CiAgICAvLyBhcmNfNTYvY29udHJhY3QucHk6MTIzCiAgICAvLyBAYXJjNC5hYmltZXRob2QoKQogICAgaXRvYgogICAgZGlnIDEKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICBkaWcgMgogICAgbGVuCiAgICBwdXNoaW50IDEzIC8vIDEzCiAgICArCiAgICBwdXNoYnl0ZXMgMHgwMDBkCiAgICB1bmNvdmVyIDMKICAgIGNvbmNhdAogICAgc3dhcAogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGNvbmNhdAogICAgdW5jb3ZlciAzCiAgICBjb25jYXQKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCm1haW5fY29uZGl0aW9uYWxfZW1pdF9yb3V0ZUAxMDoKICAgIC8vIGFyY181Ni9jb250cmFjdC5weToxMTQKICAgIC8vIEBhcmM0LmFiaW1ldGhvZCgpCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICAhCiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIGFyY181Ni9jb250cmFjdC5weTo1NAogICAgLy8gY2xhc3MgQ29udHJhY3QoQVJDNENvbnRyYWN0KToKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGludGNfMSAvLyAwCiAgICBnZXRiaXQKICAgIC8vIGFyY181Ni9jb250cmFjdC5weToxMTQKICAgIC8vIEBhcmM0LmFiaW1ldGhvZCgpCiAgICBjYWxsc3ViIGNvbmRpdGlvbmFsX2VtaXQKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCm1haW5fZW1pdHRlcl9yb3V0ZUA5OgogICAgLy8gYXJjXzU2L2NvbnRyYWN0LnB5OjEwNAogICAgLy8gQGFyYzQuYWJpbWV0aG9kKCkKICAgIHR4biBPbkNvbXBsZXRpb24KICAgICEKICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBlbWl0dGVyCiAgICBpbnRjXzAgLy8gMQogICAgcmV0dXJuCgptYWluX2VtaXRzX2Vycm9yX3JvdXRlQDg6CiAgICAvLyBhcmNfNTYvY29udHJhY3QucHk6MTAwCiAgICAvLyBAYXJjNC5hYmltZXRob2QobmFtZT0iZW1pdHNfZXJyb3IiLCByZWFkb25seT1UcnVlKQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyBhcmNfNTYvY29udHJhY3QucHk6NTQKICAgIC8vIGNsYXNzIENvbnRyYWN0KEFSQzRDb250cmFjdCk6CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICAvLyBhcmNfNTYvY29udHJhY3QucHk6MTAwCiAgICAvLyBAYXJjNC5hYmltZXRob2QobmFtZT0iZW1pdHNfZXJyb3IiLCByZWFkb25seT1UcnVlKQogICAgY2FsbHN1YiBlcnJvcnMKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCm1haW5fc3RydWN0X3JldHVybl9yb3V0ZUA3OgogICAgLy8gYXJjXzU2L2NvbnRyYWN0LnB5Ojk1CiAgICAvLyBAYXJjNC5hYmltZXRob2QocmVhZG9ubHk9VHJ1ZSkKICAgIHR4biBPbkNvbXBsZXRpb24KICAgICEKICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gYXJjXzU2L2NvbnRyYWN0LnB5OjU0CiAgICAvLyBjbGFzcyBDb250cmFjdChBUkM0Q29udHJhY3QpOgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgLy8gYXJjXzU2L2NvbnRyYWN0LnB5Ojk1CiAgICAvLyBAYXJjNC5hYmltZXRob2QocmVhZG9ubHk9VHJ1ZSkKICAgIGNhbGxzdWIgc3RydWN0X3JldHVybgogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18wIC8vIDEKICAgIHJldHVybgoKbWFpbl9zdHJ1Y3RfYXJnX3JvdXRlQDY6CiAgICAvLyBhcmNfNTYvY29udHJhY3QucHk6ODkKICAgIC8vIEBhcmM0LmFiaW1ldGhvZCgpCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICAhCiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIGFyY181Ni9jb250cmFjdC5weTo1NAogICAgLy8gY2xhc3MgQ29udHJhY3QoQVJDNENvbnRyYWN0KToKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIC8vIGFyY181Ni9jb250cmFjdC5weTo4OQogICAgLy8gQGFyYzQuYWJpbWV0aG9kKCkKICAgIGNhbGxzdWIgc3RydWN0X2FyZwogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18wIC8vIDEKICAgIHJldHVybgoKbWFpbl9jcmVhdGVfcm91dGVANToKICAgIC8vIGFyY181Ni9jb250cmFjdC5weTo4MQogICAgLy8gQGFyYzQuYWJpbWV0aG9kKGNyZWF0ZT0iYWxsb3ciLCBhbGxvd19hY3Rpb25zPVsiTm9PcCIsICJPcHRJbiJdKQogICAgaW50Y18wIC8vIDEKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIHNobAogICAgcHVzaGludCAzIC8vIDMKICAgICYKICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IG9uZSBvZiBOb09wLCBPcHRJbgogICAgaW50Y18wIC8vIDEKICAgIHJldHVybgoKbWFpbl9iYXJlX3JvdXRpbmdAMTM6CiAgICAvLyBhcmNfNTYvY29udHJhY3QucHk6NTQKICAgIC8vIGNsYXNzIENvbnRyYWN0KEFSQzRDb250cmFjdCk6CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBzd2l0Y2ggbWFpbl9iYXJlX2NyZWF0ZUAxNCBtYWluX2JhcmVfY3JlYXRlQDE0IG1haW5fYWZ0ZXJfaWZfZWxzZUAxNiBtYWluX2FmdGVyX2lmX2Vsc2VAMTYgbWFpbl9hZnRlcl9pZl9lbHNlQDE2IG1haW5fdHJhbnNpZW50QDE1CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxNgoKbWFpbl90cmFuc2llbnRAMTU6CiAgICAvLyBhcmNfNTYvY29udHJhY3QucHk6ODUKICAgIC8vIEBhcmM0LmJhcmVtZXRob2QoY3JlYXRlPSJyZXF1aXJlIiwgYWxsb3dfYWN0aW9ucz1bIkRlbGV0ZUFwcGxpY2F0aW9uIl0pCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgIQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgaW50Y18wIC8vIDEKICAgIHJldHVybgoKbWFpbl9iYXJlX2NyZWF0ZUAxNDoKICAgIC8vIGFyY181Ni9jb250cmFjdC5weTo3NwogICAgLy8gQGFyYzQuYmFyZW1ldGhvZChjcmVhdGU9ImFsbG93IiwgYWxsb3dfYWN0aW9ucz1bIk5vT3AiLCAiT3B0SW4iXSkKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCgovLyB0ZXN0X2Nhc2VzLmFyY181Ni5jb250cmFjdC5Db250cmFjdC5zdHJ1Y3RfYXJnKGFyZzogYnl0ZXMsIHNoYXJlZDogYnl0ZXMpIC0+IHVpbnQ2NDoKc3RydWN0X2FyZzoKICAgIC8vIGFyY181Ni9jb250cmFjdC5weTo4OS05MAogICAgLy8gQGFyYzQuYWJpbWV0aG9kKCkKICAgIC8vIGRlZiBzdHJ1Y3RfYXJnKHNlbGYsIGFyZzogVG9wTGV2ZWxTdHJ1Y3QsIHNoYXJlZDogU2hhcmVkU3RydWN0KSAtPiBVSW50NjQ6CiAgICBwcm90byAyIDEKICAgIC8vIGFyY181Ni9jb250cmFjdC5weTo5MgogICAgLy8gYXNzZXJ0IGFyZy5zaGFyZWQgPT0gc2hhcmVkLCAidGhpcyBtaWdodCBlcnJvciIKICAgIGZyYW1lX2RpZyAtMgogICAgaW50Y18yIC8vIDEwCiAgICBleHRyYWN0X3VpbnQxNgogICAgZnJhbWVfZGlnIC0yCiAgICBsZW4KICAgIGZyYW1lX2RpZyAtMgogICAgY292ZXIgMgogICAgc3Vic3RyaW5nMwogICAgZnJhbWVfZGlnIC0xCiAgICA9PQogICAgYXNzZXJ0IC8vIHRoaXMgbWlnaHQgZXJyb3IKICAgIC8vIGFyY181Ni9jb250cmFjdC5weTo5MwogICAgLy8gcmV0dXJuIFVJbnQ2NCg0MikKICAgIGludGNfMyAvLyA0MgogICAgcmV0c3ViCgoKLy8gdGVzdF9jYXNlcy5hcmNfNTYuY29udHJhY3QuQ29udHJhY3Quc3RydWN0X3JldHVybihhcmc6IGJ5dGVzKSAtPiBieXRlczoKc3RydWN0X3JldHVybjoKICAgIC8vIGFyY181Ni9jb250cmFjdC5weTo5NS05NgogICAgLy8gQGFyYzQuYWJpbWV0aG9kKHJlYWRvbmx5PVRydWUpCiAgICAvLyBkZWYgc3RydWN0X3JldHVybihzZWxmLCBhcmc6IFRvcExldmVsU3RydWN0KSAtPiBTaGFyZWRTdHJ1Y3Q6CiAgICBwcm90byAxIDEKICAgIC8vIGFyY181Ni9jb250cmFjdC5weTo5NwogICAgLy8gYXNzZXJ0IGFyZy5zaGFyZWQgPT0gZWNobyhhcmcuc2hhcmVkKSwgInRoaXMgd29uJ3QgZXJyb3IiCiAgICBmcmFtZV9kaWcgLTEKICAgIGludGNfMiAvLyAxMAogICAgZXh0cmFjdF91aW50MTYKICAgIGZyYW1lX2RpZyAtMQogICAgbGVuCiAgICBmcmFtZV9kaWcgLTEKICAgIGNvdmVyIDIKICAgIHN1YnN0cmluZzMKICAgIC8vIGFyY181Ni9jb250cmFjdC5weTo5OAogICAgLy8gcmV0dXJuIGFyZy5zaGFyZWQKICAgIHJldHN1YgoKCi8vIHRlc3RfY2FzZXMuYXJjXzU2LmNvbnRyYWN0LkNvbnRyYWN0LmVycm9ycyhhcmc6IGJ5dGVzKSAtPiB2b2lkOgplcnJvcnM6CiAgICAvLyBhcmNfNTYvY29udHJhY3QucHk6MTAwLTEwMQogICAgLy8gQGFyYzQuYWJpbWV0aG9kKG5hbWU9ImVtaXRzX2Vycm9yIiwgcmVhZG9ubHk9VHJ1ZSkKICAgIC8vIGRlZiBlcnJvcnMoc2VsZiwgYXJnOiBUb3BMZXZlbFN0cnVjdCkgLT4gTm9uZToKICAgIHByb3RvIDEgMAogICAgLy8gYXJjXzU2L2NvbnRyYWN0LnB5OjEwMgogICAgLy8gYXNzZXJ0IGFyZy5hLmJ5dGVzID09IGFyYzQuVUludDgoMCkuYnl0ZXMsICJ0aGlzIHdpbGwgZXJyb3IiCiAgICBmcmFtZV9kaWcgLTEKICAgIGV4dHJhY3QgMCA4IC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgcHVzaGJ5dGVzIDB4MDAKICAgID09CiAgICBhc3NlcnQgLy8gdGhpcyB3aWxsIGVycm9yCiAgICByZXRzdWIKCgovLyB0ZXN0X2Nhc2VzLmFyY181Ni5jb250cmFjdC5Db250cmFjdC5lbWl0dGVyKCkgLT4gdm9pZDoKZW1pdHRlcjoKICAgIC8vIGFyY181Ni9jb250cmFjdC5weToxMDYKICAgIC8vIGFyYzQuZW1pdChTaGFyZWRTdHJ1Y3QoZm9vPWFyYzQuRHluYW1pY0J5dGVzKGIiaGVsbG8xIiksIGJhcj1hcmM0LlVJbnQ4KDQyKSkpCiAgICBwdXNoYnl0ZXMgMHhkOTNmMzc0ZTAwMDMyYTAwMDY2ODY1NmM2YzZmMzEKICAgIGxvZwogICAgLy8gYXJjXzU2L2NvbnRyYWN0LnB5OjEwOC0xMTIKICAgIC8vIGFyYzQuZW1pdCgKICAgIC8vICAgICAiQW5vbnltb3VzIiwKICAgIC8vICAgICBTdHJpbmcoImhlbGxvIiksCiAgICAvLyAgICAgU2hhcmVkU3RydWN0KGZvbz1hcmM0LkR5bmFtaWNCeXRlcyhiImhlbGxvMiIpLCBiYXI9YXJjNC5VSW50OCg0MikpLAogICAgLy8gKQogICAgcHVzaGJ5dGVzIDB4MWU3MmFmNGUwMDA0MDAwYjAwMDU2ODY1NmM2YzZmMDAwMzJhMDAwNjY4NjU2YzZjNmYzMgogICAgbG9nCiAgICByZXRzdWIKCgovLyB0ZXN0X2Nhc2VzLmFyY181Ni5jb250cmFjdC5Db250cmFjdC5jb25kaXRpb25hbF9lbWl0KHNob3VsZF9lbWl0OiB1aW50NjQpIC0+IHZvaWQ6CmNvbmRpdGlvbmFsX2VtaXQ6CiAgICAvLyBhcmNfNTYvY29udHJhY3QucHk6MTE0LTExNQogICAgLy8gQGFyYzQuYWJpbWV0aG9kKCkKICAgIC8vIGRlZiBjb25kaXRpb25hbF9lbWl0KHNlbGYsIHNob3VsZF9lbWl0OiBib29sKSAtPiBOb25lOgogICAgcHJvdG8gMSAwCiAgICAvLyBhcmNfNTYvY29udHJhY3QucHk6MTE2CiAgICAvLyBpZiBzaG91bGRfZW1pdDoKICAgIGZyYW1lX2RpZyAtMQogICAgYnogY29uZGl0aW9uYWxfZW1pdF9hZnRlcl9pZl9lbHNlQDIKICAgIC8vIGFyY181Ni9jb250cmFjdC5weToxMTctMTIxCiAgICAvLyBhcmM0LmVtaXQoCiAgICAvLyAgICAgIkFub255bW91czIiLAogICAgLy8gICAgIEV2ZW50T25seShhcmM0LlVJbnQ2NCg0MiksIGFyYzQuVUludDY0KDQzKSksCiAgICAvLyAgICAgU2hhcmVkU3RydWN0KGZvbz1hcmM0LkR5bmFtaWNCeXRlcyhiImhlbGxvMyIpLCBiYXI9YXJjNC5VSW50OCg0MikpLAogICAgLy8gKQogICAgcHVzaGJ5dGVzIDB4MTFjNTQ3YmEwMDAwMDAwMDAwMDAwMDJhMDAwMDAwMDAwMDAwMDAyYjAwMTIwMDAzMmEwMDA2Njg2NTZjNmM2ZjMzCiAgICBsb2cKCmNvbmRpdGlvbmFsX2VtaXRfYWZ0ZXJfaWZfZWxzZUAyOgogICAgcmV0c3ViCgoKLy8gdGVzdF9jYXNlcy5hcmNfNTYuY29udHJhY3QuQ29udHJhY3Qud2l0aF9jb25zdGFudF9kZWZhdWx0cyhhOiBieXRlcywgYjogdWludDY0LCBjOiBieXRlcywgZDogYnl0ZXMsIGUuMDogdWludDY0LCBlLjE6IGJ5dGVzLCBmOiBieXRlcywgZzogYnl0ZXMsIGg6IHVpbnQ2NCwgaTogdWludDY0KSAtPiB2b2lkOgp3aXRoX2NvbnN0YW50X2RlZmF1bHRzOgogICAgLy8gYXJjXzU2L2NvbnRyYWN0LnB5OjEzMi0xNTYKICAgIC8vIEBhcmM0LmFiaW1ldGhvZCgKICAgIC8vICAgICBkZWZhdWx0X2FyZ3M9ewogICAgLy8gICAgICAgICAiYSI6IGFyYzQuVUludDY0KDEyMyksCiAgICAvLyAgICAgICAgICJjIjogQnl0ZXMoYiIxMjMiKSwKICAgIC8vICAgICAgICAgImIiOiBVSW50NjQoMjM0KSwKICAgIC8vICAgICAgICAgImQiOiBFdmVudE9ubHkoeD1hcmM0LlVJbnQ2NCgxKSwgeT1hcmM0LlVJbnQ2NCgyKSksCiAgICAvLyAgICAgICAgICJlIjogKFVJbnQ2NCg0MiksIFN0cmluZygib24gdGhlIGVkZ2UiKSksCiAgICAvLyAgICAgICAgICJmIjogYXJjNC5TdGF0aWNBcnJheShhcmM0LlN0cmluZygiaGkiKSwgYXJjNC5TdHJpbmcoInRoZXJlISIpKSwKICAgIC8vICAgICAgICAgImciOiBhcmM0LkR5bmFtaWNBcnJheShhcmM0LlN0cmluZygib25lIiksIGFyYzQuU3RyaW5nKCJ0d28iKSksCiAgICAvLyAgICAgICAgICJoIjogY29uc3RhbnRfbWV0aG9kKCksCiAgICAvLyAgICAgICAgICJpIjogZWNob19udW1iZXIoVUludDY0KDEyMzQpKSwKICAgIC8vICAgICB9CiAgICAvLyApCiAgICAvLyBkZWYgd2l0aF9jb25zdGFudF9kZWZhdWx0cygKICAgIC8vICAgICBzZWxmLAogICAgLy8gICAgIGE6IGFyYzQuVUludDY0LAogICAgLy8gICAgIGI6IFVJbnQ2NCwKICAgIC8vICAgICBjOiBCeXRlcywKICAgIC8vICAgICBkOiBFdmVudE9ubHksCiAgICAvLyAgICAgZTogdHVwbGVbVUludDY0LCBTdHJpbmddLAogICAgLy8gICAgIGY6IGFyYzQuU3RhdGljQXJyYXlbYXJjNC5TdHJpbmcsIHR5cGluZy5MaXRlcmFsWzJdXSwKICAgIC8vICAgICBnOiBhcmM0LkR5bmFtaWNBcnJheVthcmM0LlN0cmluZ10sCiAgICAvLyAgICAgaDogVUludDY0LAogICAgLy8gICAgIGk6IFVJbnQ2NCwKICAgIC8vICkgLT4gTm9uZToKICAgIHByb3RvIDEwIDAKICAgIC8vIGFyY181Ni9jb250cmFjdC5weToxNTcKICAgIC8vIGFzc2VydCBhCiAgICBmcmFtZV9kaWcgLTEwCiAgICBieXRlY18xIC8vIDB4MDAwMDAwMDAwMDAwMDAwMAogICAgIT0KICAgIGFzc2VydAogICAgLy8gYXJjXzU2L2NvbnRyYWN0LnB5OjE1OAogICAgLy8gYXNzZXJ0IGIKICAgIGZyYW1lX2RpZyAtOQogICAgYXNzZXJ0CiAgICAvLyBhcmNfNTYvY29udHJhY3QucHk6MTU5CiAgICAvLyBhc3NlcnQgYwogICAgZnJhbWVfZGlnIC04CiAgICBsZW4KICAgIGFzc2VydAogICAgLy8gYXJjXzU2L2NvbnRyYWN0LnB5OjE2MAogICAgLy8gYXNzZXJ0IGQueCBvciBkLnkKICAgIGZyYW1lX2RpZyAtNwogICAgZXh0cmFjdCAwIDggLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBieXRlY18xIC8vIDB4MDAwMDAwMDAwMDAwMDAwMAogICAgIT0KICAgIGJueiB3aXRoX2NvbnN0YW50X2RlZmF1bHRzX2Jvb2xfdHJ1ZUAyCiAgICBmcmFtZV9kaWcgLTcKICAgIGV4dHJhY3QgOCA4IC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnl0ZWNfMSAvLyAweDAwMDAwMDAwMDAwMDAwMDAKICAgICE9CiAgICBieiB3aXRoX2NvbnN0YW50X2RlZmF1bHRzX2Jvb2xfZmFsc2VAMwoKd2l0aF9jb25zdGFudF9kZWZhdWx0c19ib29sX3RydWVAMjoKICAgIGludGNfMCAvLyAxCgp3aXRoX2NvbnN0YW50X2RlZmF1bHRzX2Jvb2xfbWVyZ2VANDoKICAgIC8vIGFyY181Ni9jb250cmFjdC5weToxNjAKICAgIC8vIGFzc2VydCBkLnggb3IgZC55CiAgICBhc3NlcnQKICAgIC8vIGFyY181Ni9jb250cmFjdC5weToxNjEKICAgIC8vIGFzc2VydCBlWzBdIG9yIGVbMV0KICAgIGZyYW1lX2RpZyAtNgogICAgYm56IHdpdGhfY29uc3RhbnRfZGVmYXVsdHNfYm9vbF90cnVlQDYKICAgIGZyYW1lX2RpZyAtNQogICAgbGVuCiAgICBieiB3aXRoX2NvbnN0YW50X2RlZmF1bHRzX2Jvb2xfZmFsc2VANwoKd2l0aF9jb25zdGFudF9kZWZhdWx0c19ib29sX3RydWVANjoKICAgIGludGNfMCAvLyAxCgp3aXRoX2NvbnN0YW50X2RlZmF1bHRzX2Jvb2xfbWVyZ2VAODoKICAgIC8vIGFyY181Ni9jb250cmFjdC5weToxNjEKICAgIC8vIGFzc2VydCBlWzBdIG9yIGVbMV0KICAgIGFzc2VydAogICAgLy8gYXJjXzU2L2NvbnRyYWN0LnB5OjE2MgogICAgLy8gYXNzZXJ0IGZbMF0gPT0gImhpIgogICAgZnJhbWVfZGlnIC00CiAgICBpbnRjXzEgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGZyYW1lX2RpZyAtNAogICAgZGlnIDEKICAgIGV4dHJhY3RfdWludDE2CiAgICBwdXNoaW50IDIgLy8gMgogICAgKwogICAgZnJhbWVfZGlnIC00CiAgICBjb3ZlciAyCiAgICBleHRyYWN0MwogICAgcHVzaGJ5dGVzIDB4MDAwMjY4NjkKICAgID09CiAgICBhc3NlcnQKICAgIC8vIGFyY181Ni9jb250cmFjdC5weToxNjMKICAgIC8vIGFzc2VydCBnLmxlbmd0aCA9PSAyCiAgICBmcmFtZV9kaWcgLTMKICAgIGludGNfMSAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgcHVzaGludCAyIC8vIDIKICAgID09CiAgICBhc3NlcnQKICAgIC8vIGFyY181Ni9jb250cmFjdC5weToxNjQKICAgIC8vIGFzc2VydCBoID09IDQyCiAgICBmcmFtZV9kaWcgLTIKICAgIGludGNfMyAvLyA0MgogICAgPT0KICAgIGFzc2VydAogICAgLy8gYXJjXzU2L2NvbnRyYWN0LnB5OjE2NQogICAgLy8gYXNzZXJ0IGkgPT0gMTIzNAogICAgZnJhbWVfZGlnIC0xCiAgICBwdXNoaW50IDEyMzQgLy8gMTIzNAogICAgPT0KICAgIGFzc2VydAogICAgcmV0c3ViCgp3aXRoX2NvbnN0YW50X2RlZmF1bHRzX2Jvb2xfZmFsc2VANzoKICAgIGludGNfMSAvLyAwCiAgICBiIHdpdGhfY29uc3RhbnRfZGVmYXVsdHNfYm9vbF9tZXJnZUA4Cgp3aXRoX2NvbnN0YW50X2RlZmF1bHRzX2Jvb2xfZmFsc2VAMzoKICAgIGludGNfMSAvLyAwCiAgICBiIHdpdGhfY29uc3RhbnRfZGVmYXVsdHNfYm9vbF9tZXJnZUA0Cg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBhbGdvcHkuYXJjNC5BUkM0Q29udHJhY3QuY2xlYXJfc3RhdGVfcHJvZ3JhbSgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIHB1c2hpbnQgMSAvLyAxCiAgICByZXR1cm4K" }, "byteCode": { "approval": "CiAFAQAKKnsmBQQVH3x1CAAAAAAAAAAAAf8HAAP/AAJIaQVIZWxsbzEbQQEagggETFxhugSX6OSnBHbE3hEEwcp3CQRt52LCBFn8UoIEnZ7ssAReju+aNhoAjggA0QC6AKcAmACMAHsAQgACI0MxGRREMRhENhoBNhoCFzYaA1cCADYaBDYaBUkjW0sBgQhZSwIVTwNOAlJXAgA2GgY2Ggc2GggXNhoJF4gBRiJDMRkURDEYRCorJwQhBBZLARUWVwYCTwJQSwIVgQ0IgAIADU8DUEwWVwYCUE8DUE8CUExQKExQsCJDMRkURDEYRDYaASNTiADPIkMxGRREMRhEiACTIkMxGRREMRhENhoBiAB2IkMxGRREMRhENhoBiABXKExQsCJDMRkURDEYRDYaATYaAogALBYoTFCwIkMiMRmQgQMaRCJDMRmNBgAJAAn/Ff8V/xUAA0L/EjEYFEQiQyJDigIBi/4kWYv+FYv+TgJSi/8SRCWJigEBi/8kWYv/FYv/TgJSiYoBAIv/VwAIgAEAEkSJgA/ZPzdOAAMqAAZoZWxsbzGwgBoecq9OAAQACwAFaGVsbG8AAyoABmhlbGxvMrCJigEAi/9BACSAIRHFR7oAAAAAAAAAKgAAAAAAAAArABIAAyoABmhlbGxvM7CJigoAi/YpE0SL90SL+BVEi/lXAAgpE0AACov5VwgIKRNBAEEiRIv6QAAGi/sVQQAwIkSL/CNZi/xLAVmBAgiL/E4CWIAEAAJoaRJEi/0jWYECEkSL/iUSRIv/gdIJEkSJI0L/zSNC/7w=", "clear": "CoEBQw==" }, "compilerInfo": { "compiler": "puya", "compilerVersion": { "major": 99, "minor": 99, "patch": 99 } }, "events": [ { "name": "SharedStruct", "args": [ { "type": "byte[]", "name": "foo" }, { "type": "uint8", "name": "bar" } ], "desc": "This struct is shared" }, { "name": "Anonymous", "args": [ { "type": "string", "name": "field1" }, { "type": "(byte[],uint8)", "name": "field2", "struct": "SharedStruct" } ] }, { "name": "Anonymous2", "args": [ { "type": "(uint64,uint64)", "name": "field1", "struct": "EventOnly" }, { "type": "(byte[],uint8)", "name": "field2", "struct": "SharedStruct" } ] } ], "templateVariables": { "AVM_UINT64": { "type": "AVMUint64", "value": "AAAAAAAAAHs=" }, "ARC4_UINT8": { "type": "uint8", "value": "/w==" }, "STRUCT": { "type": "SharedStruct", "value": "AAP/AAJIaQ==" }, "AVM_STRING": { "type": "AVMString", "value": "SGVsbG8=" } } }