{ "name": "LocalStateContract", "structs": {}, "methods": [ { "name": "opt_in", "args": [], "returns": { "type": "void" }, "actions": { "create": [], "call": ["OptIn"] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "get_implicit_key_arc4_uint", "args": [ { "type": "address", "name": "a" } ], "returns": { "type": "uint64" }, "actions": { "create": [], "call": ["NoOp"] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "get_implicit_key_arc4_string", "args": [ { "type": "address", "name": "a" } ], "returns": { "type": "string" }, "actions": { "create": [], "call": ["NoOp"] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "get_implicit_key_arc4_byte", "args": [ { "type": "address", "name": "a" } ], "returns": { "type": "byte" }, "actions": { "create": [], "call": ["NoOp"] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "get_implicit_key_arc4_bool", "args": [ { "type": "address", "name": "a" } ], "returns": { "type": "bool" }, "actions": { "create": [], "call": ["NoOp"] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "get_implicit_key_arc4_address", "args": [ { "type": "address", "name": "a" } ], "returns": { "type": "address" }, "actions": { "create": [], "call": ["NoOp"] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "get_implicit_key_arc4_uint128", "args": [ { "type": "address", "name": "a" } ], "returns": { "type": "uint128" }, "actions": { "create": [], "call": ["NoOp"] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "get_implicit_key_arc4_dynamic_bytes", "args": [ { "type": "address", "name": "a" } ], "returns": { "type": "byte[]" }, "actions": { "create": [], "call": ["NoOp"] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "get_implicit_key_tuple", "args": [ { "type": "address", "name": "a" } ], "returns": { "type": "(uint64,byte[],bool)" }, "actions": { "create": [], "call": ["NoOp"] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "get_arc4_uint", "args": [ { "type": "address", "name": "a" } ], "returns": { "type": "uint64" }, "actions": { "create": [], "call": ["NoOp"] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "get_arc4_string", "args": [ { "type": "address", "name": "a" } ], "returns": { "type": "string" }, "actions": { "create": [], "call": ["NoOp"] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "get_arc4_byte", "args": [ { "type": "address", "name": "a" } ], "returns": { "type": "byte" }, "actions": { "create": [], "call": ["NoOp"] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "get_arc4_bool", "args": [ { "type": "address", "name": "a" } ], "returns": { "type": "bool" }, "actions": { "create": [], "call": ["NoOp"] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "get_arc4_address", "args": [ { "type": "address", "name": "a" } ], "returns": { "type": "address" }, "actions": { "create": [], "call": ["NoOp"] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "get_arc4_uint128", "args": [ { "type": "address", "name": "a" } ], "returns": { "type": "uint128" }, "actions": { "create": [], "call": ["NoOp"] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "get_arc4_dynamic_bytes", "args": [ { "type": "address", "name": "a" } ], "returns": { "type": "byte[]" }, "actions": { "create": [], "call": ["NoOp"] }, "readonly": false, "events": [], "recommendations": {} } ], "arcs": [22, 28], "networks": {}, "state": { "schema": { "global": { "ints": 0, "bytes": 0 }, "local": { "ints": 0, "bytes": 15 } }, "keys": { "global": {}, "local": { "implicit_key_arc4_uint": { "keyType": "AVMString", "valueType": "uint64", "key": "aW1wbGljaXRfa2V5X2FyYzRfdWludA==" }, "implicit_key_arc4_string": { "keyType": "AVMString", "valueType": "string", "key": "aW1wbGljaXRfa2V5X2FyYzRfc3RyaW5n" }, "implicit_key_arc4_byte": { "keyType": "AVMString", "valueType": "byte", "key": "aW1wbGljaXRfa2V5X2FyYzRfYnl0ZQ==" }, "implicit_key_arc4_bool": { "keyType": "AVMString", "valueType": "bool", "key": "aW1wbGljaXRfa2V5X2FyYzRfYm9vbA==" }, "implicit_key_arc4_address": { "keyType": "AVMString", "valueType": "address", "key": "aW1wbGljaXRfa2V5X2FyYzRfYWRkcmVzcw==" }, "implicit_key_arc4_uint128": { "keyType": "AVMString", "valueType": "uint128", "key": "aW1wbGljaXRfa2V5X2FyYzRfdWludDEyOA==" }, "implicit_key_arc4_dynamic_bytes": { "keyType": "AVMString", "valueType": "byte[]", "key": "aW1wbGljaXRfa2V5X2FyYzRfZHluYW1pY19ieXRlcw==" }, "implicit_key_tuple": { "keyType": "AVMString", "valueType": "(uint64,byte[],bool)", "key": "aW1wbGljaXRfa2V5X3R1cGxl" }, "arc4_uint": { "keyType": "AVMString", "valueType": "uint64", "key": "ZXhwbGljaXRfa2V5X2FyYzRfdWludA==" }, "arc4_string": { "keyType": "AVMString", "valueType": "string", "key": "ZXhwbGljaXRfa2V5X2FyYzRfc3RyaW5n" }, "arc4_byte": { "keyType": "AVMString", "valueType": "byte", "key": "ZXhwbGljaXRfa2V5X2FyYzRfYnl0ZQ==" }, "arc4_bool": { "keyType": "AVMString", "valueType": "bool", "key": "ZXhwbGljaXRfa2V5X2FyYzRfYm9vbA==" }, "arc4_address": { "keyType": "AVMString", "valueType": "address", "key": "ZXhwbGljaXRfa2V5X2FyYzRfYWRkcmVzcw==" }, "arc4_uint128": { "keyType": "AVMString", "valueType": "uint128", "key": "ZXhwbGljaXRfa2V5X2FyYzRfdWludDEyOA==" }, "arc4_dynamic_bytes": { "keyType": "AVMString", "valueType": "byte[]", "key": "ZXhwbGljaXRfa2V5X2FyYzRfZHluYW1pY19ieXRlcw==" } }, "box": {} }, "maps": { "global": {}, "local": {}, "box": {} } }, "bareActions": { "create": ["NoOp"], "call": [] }, "sourceInfo": { "approval": { "sourceInfo": [ { "pc": [891], "errorMessage": "check self.arc4_address exists for account" }, { "pc": [877], "errorMessage": "check self.arc4_bool exists for account" }, { "pc": [863], "errorMessage": "check self.arc4_byte exists for account" }, { "pc": [919], "errorMessage": "check self.arc4_dynamic_bytes exists for account" }, { "pc": [849], "errorMessage": "check self.arc4_string exists for account" }, { "pc": [835], "errorMessage": "check self.arc4_uint exists for account" }, { "pc": [905], "errorMessage": "check self.arc4_uint128 exists for account" }, { "pc": [779], "errorMessage": "check self.implicit_key_arc4_address exists for account" }, { "pc": [765], "errorMessage": "check self.implicit_key_arc4_bool exists for account" }, { "pc": [751], "errorMessage": "check self.implicit_key_arc4_byte exists for account" }, { "pc": [807], "errorMessage": "check self.implicit_key_arc4_dynamic_bytes exists for account" }, { "pc": [737], "errorMessage": "check self.implicit_key_arc4_string exists for account" }, { "pc": [724], "errorMessage": "check self.implicit_key_arc4_uint exists for account" }, { "pc": [793], "errorMessage": "check self.implicit_key_arc4_uint128 exists for account" }, { "pc": [821], "errorMessage": "check self.implicit_key_tuple exists for account" } ], "pcOffsetMethod": "none" }, "clear": { "sourceInfo": [], "pcOffsetMethod": "none" } }, "source": { "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBhbGdvcHkuYXJjNC5BUkM0Q29udHJhY3QuYXBwcm92YWxfcHJvZ3JhbSgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIGludGNibG9jayAxIDAKICAgIGJ5dGVjYmxvY2sgMHgxNTFmN2M3NSAiaW1wbGljaXRfa2V5X2FyYzRfdWludCIgMHgwMDAwMDAwMDAwMDAwNTM5ICJpbXBsaWNpdF9rZXlfYXJjNF9zdHJpbmciIDB4MDAwNTQ4NjU2YzZjNmYgImltcGxpY2l0X2tleV9hcmM0X2J5dGUiICJpbXBsaWNpdF9rZXlfYXJjNF9ib29sIiAiaW1wbGljaXRfa2V5X2FyYzRfYWRkcmVzcyIgImltcGxpY2l0X2tleV9hcmM0X3VpbnQxMjgiIDB4MDAwMDAwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAgImltcGxpY2l0X2tleV9hcmM0X2R5bmFtaWNfYnl0ZXMiIDB4MDAwZDY0Nzk2ZTYxNmQ2OTYzMjA2Mjc5NzQ2NTczICJpbXBsaWNpdF9rZXlfdHVwbGUiICJleHBsaWNpdF9rZXlfYXJjNF91aW50IiAiZXhwbGljaXRfa2V5X2FyYzRfc3RyaW5nIiAiZXhwbGljaXRfa2V5X2FyYzRfYnl0ZSIgImV4cGxpY2l0X2tleV9hcmM0X2Jvb2wiICJleHBsaWNpdF9rZXlfYXJjNF9hZGRyZXNzIiAiZXhwbGljaXRfa2V5X2FyYzRfdWludDEyOCIgImV4cGxpY2l0X2tleV9hcmM0X2R5bmFtaWNfYnl0ZXMiCiAgICAvLyB0ZXN0cy9hcnRpZmFjdHMvU3RhdGVPcHMvY29udHJhY3QucHk6Nzk3CiAgICAvLyBjbGFzcyBMb2NhbFN0YXRlQ29udHJhY3QoQVJDNENvbnRyYWN0KToKICAgIHR4biBOdW1BcHBBcmdzCiAgICBieiBtYWluX19fYWxnb3B5X2RlZmF1bHRfY3JlYXRlQDI2CiAgICBwdXNoYnl0ZXMgMHgzMGM2ZDU4YSAvLyBtZXRob2QgIm9wdF9pbigpdm9pZCIKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIG1hdGNoIG1haW5fb3B0X2luX3JvdXRlQDUKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA2OgogICAgLy8gdGVzdHMvYXJ0aWZhY3RzL1N0YXRlT3BzL2NvbnRyYWN0LnB5Ojc5NwogICAgLy8gY2xhc3MgTG9jYWxTdGF0ZUNvbnRyYWN0KEFSQzRDb250cmFjdCk6CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICAhCiAgICBhc3NlcnQKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBhc3NlcnQKICAgIHB1c2hieXRlc3MgMHhiM2NmYTM4OSAweGRiODU4MTc2IDB4NzgyNjc3NjIgMHg0MjYzNTFjOCAweDA3NWNhZTkxIDB4NTljMGI4MGIgMHgwZDZmYTY5MCAweDk3ZTEwZDljIDB4MmU0YThjNDkgMHhiMjJjZDIxZSAweGIzZjQ0NzAxIDB4ZWRkOTcyOTcgMHg2NzFkMzUzYyAweGEzZmQ2ZmRjIDB4Y2QyZTVkNjYgLy8gbWV0aG9kICJnZXRfaW1wbGljaXRfa2V5X2FyYzRfdWludChhZGRyZXNzKXVpbnQ2NCIsIG1ldGhvZCAiZ2V0X2ltcGxpY2l0X2tleV9hcmM0X3N0cmluZyhhZGRyZXNzKXN0cmluZyIsIG1ldGhvZCAiZ2V0X2ltcGxpY2l0X2tleV9hcmM0X2J5dGUoYWRkcmVzcylieXRlIiwgbWV0aG9kICJnZXRfaW1wbGljaXRfa2V5X2FyYzRfYm9vbChhZGRyZXNzKWJvb2wiLCBtZXRob2QgImdldF9pbXBsaWNpdF9rZXlfYXJjNF9hZGRyZXNzKGFkZHJlc3MpYWRkcmVzcyIsIG1ldGhvZCAiZ2V0X2ltcGxpY2l0X2tleV9hcmM0X3VpbnQxMjgoYWRkcmVzcyl1aW50MTI4IiwgbWV0aG9kICJnZXRfaW1wbGljaXRfa2V5X2FyYzRfZHluYW1pY19ieXRlcyhhZGRyZXNzKWJ5dGVbXSIsIG1ldGhvZCAiZ2V0X2ltcGxpY2l0X2tleV90dXBsZShhZGRyZXNzKSh1aW50NjQsYnl0ZVtdLGJvb2wpIiwgbWV0aG9kICJnZXRfYXJjNF91aW50KGFkZHJlc3MpdWludDY0IiwgbWV0aG9kICJnZXRfYXJjNF9zdHJpbmcoYWRkcmVzcylzdHJpbmciLCBtZXRob2QgImdldF9hcmM0X2J5dGUoYWRkcmVzcylieXRlIiwgbWV0aG9kICJnZXRfYXJjNF9ib29sKGFkZHJlc3MpYm9vbCIsIG1ldGhvZCAiZ2V0X2FyYzRfYWRkcmVzcyhhZGRyZXNzKWFkZHJlc3MiLCBtZXRob2QgImdldF9hcmM0X3VpbnQxMjgoYWRkcmVzcyl1aW50MTI4IiwgbWV0aG9kICJnZXRfYXJjNF9keW5hbWljX2J5dGVzKGFkZHJlc3MpYnl0ZVtdIgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgbWF0Y2ggZ2V0X2ltcGxpY2l0X2tleV9hcmM0X3VpbnQgZ2V0X2ltcGxpY2l0X2tleV9hcmM0X3N0cmluZyBnZXRfaW1wbGljaXRfa2V5X2FyYzRfYnl0ZSBnZXRfaW1wbGljaXRfa2V5X2FyYzRfYm9vbCBnZXRfaW1wbGljaXRfa2V5X2FyYzRfYWRkcmVzcyBnZXRfaW1wbGljaXRfa2V5X2FyYzRfdWludDEyOCBnZXRfaW1wbGljaXRfa2V5X2FyYzRfZHluYW1pY19ieXRlcyBnZXRfaW1wbGljaXRfa2V5X3R1cGxlIGdldF9hcmM0X3VpbnQgZ2V0X2FyYzRfc3RyaW5nIGdldF9hcmM0X2J5dGUgZ2V0X2FyYzRfYm9vbCBnZXRfYXJjNF9hZGRyZXNzIGdldF9hcmM0X3VpbnQxMjggZ2V0X2FyYzRfZHluYW1pY19ieXRlcwogICAgZXJyCgptYWluX29wdF9pbl9yb3V0ZUA1OgogICAgLy8gdGVzdHMvYXJ0aWZhY3RzL1N0YXRlT3BzL2NvbnRyYWN0LnB5OjgyMAogICAgLy8gQGFyYzQuYWJpbWV0aG9kKGFsbG93X2FjdGlvbnM9WyJPcHRJbiJdKQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE9wdEluCiAgICA9PQogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgICYmCiAgICBhc3NlcnQKICAgIGIgb3B0X2luCgptYWluX19fYWxnb3B5X2RlZmF1bHRfY3JlYXRlQDI2OgogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgICEKICAgICYmCiAgICByZXR1cm4KCgovLyB0ZXN0cy5hcnRpZmFjdHMuU3RhdGVPcHMuY29udHJhY3QuTG9jYWxTdGF0ZUNvbnRyYWN0Lm9wdF9pbltyb3V0aW5nXSgpIC0+IHZvaWQ6Cm9wdF9pbjoKICAgIC8vIHRlc3RzL2FydGlmYWN0cy9TdGF0ZU9wcy9jb250cmFjdC5weTo4MjIKICAgIC8vIHNlbGYuaW1wbGljaXRfa2V5X2FyYzRfdWludFtHbG9iYWwuY3JlYXRvcl9hZGRyZXNzXSA9IGFyYzQuVUludDY0KDEzMzcpCiAgICBnbG9iYWwgQ3JlYXRvckFkZHJlc3MKICAgIGJ5dGVjXzEgLy8gImltcGxpY2l0X2tleV9hcmM0X3VpbnQiCiAgICBieXRlY18yIC8vIDB4MDAwMDAwMDAwMDAwMDUzOQogICAgYXBwX2xvY2FsX3B1dAogICAgLy8gdGVzdHMvYXJ0aWZhY3RzL1N0YXRlT3BzL2NvbnRyYWN0LnB5OjgyMwogICAgLy8gc2VsZi5pbXBsaWNpdF9rZXlfYXJjNF9zdHJpbmdbR2xvYmFsLmNyZWF0b3JfYWRkcmVzc10gPSBhcmM0LlN0cmluZygiSGVsbG8iKQogICAgZ2xvYmFsIENyZWF0b3JBZGRyZXNzCiAgICBieXRlY18zIC8vICJpbXBsaWNpdF9rZXlfYXJjNF9zdHJpbmciCiAgICBieXRlYyA0IC8vIDB4MDAwNTQ4NjU2YzZjNmYKICAgIGFwcF9sb2NhbF9wdXQKICAgIC8vIHRlc3RzL2FydGlmYWN0cy9TdGF0ZU9wcy9jb250cmFjdC5weTo4MjQKICAgIC8vIHNlbGYuaW1wbGljaXRfa2V5X2FyYzRfYnl0ZVtHbG9iYWwuY3JlYXRvcl9hZGRyZXNzXSA9IGFyYzQuQnl0ZSgwKQogICAgZ2xvYmFsIENyZWF0b3JBZGRyZXNzCiAgICBieXRlYyA1IC8vICJpbXBsaWNpdF9rZXlfYXJjNF9ieXRlIgogICAgcHVzaGJ5dGVzIDB4MDAKICAgIGFwcF9sb2NhbF9wdXQKICAgIC8vIHRlc3RzL2FydGlmYWN0cy9TdGF0ZU9wcy9jb250cmFjdC5weTo4MjUKICAgIC8vIHNlbGYuaW1wbGljaXRfa2V5X2FyYzRfYm9vbFtHbG9iYWwuY3JlYXRvcl9hZGRyZXNzXSA9IGFyYzQuQm9vbChUcnVlKQogICAgZ2xvYmFsIENyZWF0b3JBZGRyZXNzCiAgICBieXRlYyA2IC8vICJpbXBsaWNpdF9rZXlfYXJjNF9ib29sIgogICAgcHVzaGJ5dGVzIDB4ODAKICAgIGFwcF9sb2NhbF9wdXQKICAgIC8vIHRlc3RzL2FydGlmYWN0cy9TdGF0ZU9wcy9jb250cmFjdC5weTo4MjYKICAgIC8vIHNlbGYuaW1wbGljaXRfa2V5X2FyYzRfYWRkcmVzc1tHbG9iYWwuY3JlYXRvcl9hZGRyZXNzXSA9IGFyYzQuQWRkcmVzcygKICAgIGdsb2JhbCBDcmVhdG9yQWRkcmVzcwogICAgYnl0ZWMgNyAvLyAiaW1wbGljaXRfa2V5X2FyYzRfYWRkcmVzcyIKICAgIC8vIHRlc3RzL2FydGlmYWN0cy9TdGF0ZU9wcy9jb250cmFjdC5weTo4MjcKICAgIC8vIEdsb2JhbC5jcmVhdG9yX2FkZHJlc3MKICAgIGdsb2JhbCBDcmVhdG9yQWRkcmVzcwogICAgLy8gdGVzdHMvYXJ0aWZhY3RzL1N0YXRlT3BzL2NvbnRyYWN0LnB5OjgyNi04MjgKICAgIC8vIHNlbGYuaW1wbGljaXRfa2V5X2FyYzRfYWRkcmVzc1tHbG9iYWwuY3JlYXRvcl9hZGRyZXNzXSA9IGFyYzQuQWRkcmVzcygKICAgIC8vICAgICBHbG9iYWwuY3JlYXRvcl9hZGRyZXNzCiAgICAvLyApCiAgICBhcHBfbG9jYWxfcHV0CiAgICAvLyB0ZXN0cy9hcnRpZmFjdHMvU3RhdGVPcHMvY29udHJhY3QucHk6ODI5CiAgICAvLyBzZWxmLmltcGxpY2l0X2tleV9hcmM0X3VpbnQxMjhbR2xvYmFsLmNyZWF0b3JfYWRkcmVzc10gPSBhcmM0LlVJbnQxMjgoMioqMTAwKQogICAgZ2xvYmFsIENyZWF0b3JBZGRyZXNzCiAgICBieXRlYyA4IC8vICJpbXBsaWNpdF9rZXlfYXJjNF91aW50MTI4IgogICAgYnl0ZWMgOSAvLyAweDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiAgICBhcHBfbG9jYWxfcHV0CiAgICAvLyB0ZXN0cy9hcnRpZmFjdHMvU3RhdGVPcHMvY29udHJhY3QucHk6ODMwCiAgICAvLyBzZWxmLmltcGxpY2l0X2tleV9hcmM0X2R5bmFtaWNfYnl0ZXNbR2xvYmFsLmNyZWF0b3JfYWRkcmVzc10gPSBhcmM0LkR5bmFtaWNCeXRlcygKICAgIGdsb2JhbCBDcmVhdG9yQWRkcmVzcwogICAgYnl0ZWMgMTAgLy8gImltcGxpY2l0X2tleV9hcmM0X2R5bmFtaWNfYnl0ZXMiCiAgICAvLyB0ZXN0cy9hcnRpZmFjdHMvU3RhdGVPcHMvY29udHJhY3QucHk6ODMwLTgzMgogICAgLy8gc2VsZi5pbXBsaWNpdF9rZXlfYXJjNF9keW5hbWljX2J5dGVzW0dsb2JhbC5jcmVhdG9yX2FkZHJlc3NdID0gYXJjNC5EeW5hbWljQnl0ZXMoCiAgICAvLyAgICAgYiJkeW5hbWljIGJ5dGVzIgogICAgLy8gKQogICAgYnl0ZWMgMTEgLy8gMHgwMDBkNjQ3OTZlNjE2ZDY5NjMyMDYyNzk3NDY1NzMKICAgIGFwcF9sb2NhbF9wdXQKICAgIC8vIHRlc3RzL2FydGlmYWN0cy9TdGF0ZU9wcy9jb250cmFjdC5weTo4MzMKICAgIC8vIHNlbGYuaW1wbGljaXRfa2V5X3R1cGxlW0dsb2JhbC5jcmVhdG9yX2FkZHJlc3NdID0gKFVJbnQ2NCgxMCksIEJ5dGVzKGIidGVzdCIpLCBGYWxzZSkKICAgIGdsb2JhbCBDcmVhdG9yQWRkcmVzcwogICAgYnl0ZWMgMTIgLy8gImltcGxpY2l0X2tleV90dXBsZSIKICAgIHB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMGEwMDBiMDAwMDA0NzQ2NTczNzQKICAgIGFwcF9sb2NhbF9wdXQKICAgIC8vIHRlc3RzL2FydGlmYWN0cy9TdGF0ZU9wcy9jb250cmFjdC5weTo4MzUKICAgIC8vIHNlbGYuYXJjNF91aW50W0dsb2JhbC5jcmVhdG9yX2FkZHJlc3NdID0gYXJjNC5VSW50NjQoMTMzNykKICAgIGdsb2JhbCBDcmVhdG9yQWRkcmVzcwogICAgYnl0ZWMgMTMgLy8gImV4cGxpY2l0X2tleV9hcmM0X3VpbnQiCiAgICBieXRlY18yIC8vIDB4MDAwMDAwMDAwMDAwMDUzOQogICAgYXBwX2xvY2FsX3B1dAogICAgLy8gdGVzdHMvYXJ0aWZhY3RzL1N0YXRlT3BzL2NvbnRyYWN0LnB5OjgzNgogICAgLy8gc2VsZi5hcmM0X3N0cmluZ1tHbG9iYWwuY3JlYXRvcl9hZGRyZXNzXSA9IGFyYzQuU3RyaW5nKCJIZWxsbyIpCiAgICBnbG9iYWwgQ3JlYXRvckFkZHJlc3MKICAgIGJ5dGVjIDE0IC8vICJleHBsaWNpdF9rZXlfYXJjNF9zdHJpbmciCiAgICAvLyB0ZXN0cy9hcnRpZmFjdHMvU3RhdGVPcHMvY29udHJhY3QucHk6ODIzCiAgICAvLyBzZWxmLmltcGxpY2l0X2tleV9hcmM0X3N0cmluZ1tHbG9iYWwuY3JlYXRvcl9hZGRyZXNzXSA9IGFyYzQuU3RyaW5nKCJIZWxsbyIpCiAgICBieXRlYyA0IC8vIDB4MDAwNTQ4NjU2YzZjNmYKICAgIC8vIHRlc3RzL2FydGlmYWN0cy9TdGF0ZU9wcy9jb250cmFjdC5weTo4MzYKICAgIC8vIHNlbGYuYXJjNF9zdHJpbmdbR2xvYmFsLmNyZWF0b3JfYWRkcmVzc10gPSBhcmM0LlN0cmluZygiSGVsbG8iKQogICAgYXBwX2xvY2FsX3B1dAogICAgLy8gdGVzdHMvYXJ0aWZhY3RzL1N0YXRlT3BzL2NvbnRyYWN0LnB5OjgzNwogICAgLy8gc2VsZi5hcmM0X2J5dGVbR2xvYmFsLmNyZWF0b3JfYWRkcmVzc10gPSBhcmM0LkJ5dGUoMCkKICAgIGdsb2JhbCBDcmVhdG9yQWRkcmVzcwogICAgYnl0ZWMgMTUgLy8gImV4cGxpY2l0X2tleV9hcmM0X2J5dGUiCiAgICBwdXNoYnl0ZXMgMHgwMAogICAgYXBwX2xvY2FsX3B1dAogICAgLy8gdGVzdHMvYXJ0aWZhY3RzL1N0YXRlT3BzL2NvbnRyYWN0LnB5OjgzOAogICAgLy8gc2VsZi5hcmM0X2Jvb2xbR2xvYmFsLmNyZWF0b3JfYWRkcmVzc10gPSBhcmM0LkJvb2woVHJ1ZSkKICAgIGdsb2JhbCBDcmVhdG9yQWRkcmVzcwogICAgYnl0ZWMgMTYgLy8gImV4cGxpY2l0X2tleV9hcmM0X2Jvb2wiCiAgICAvLyB0ZXN0cy9hcnRpZmFjdHMvU3RhdGVPcHMvY29udHJhY3QucHk6ODI1CiAgICAvLyBzZWxmLmltcGxpY2l0X2tleV9hcmM0X2Jvb2xbR2xvYmFsLmNyZWF0b3JfYWRkcmVzc10gPSBhcmM0LkJvb2woVHJ1ZSkKICAgIHB1c2hieXRlcyAweDgwCiAgICAvLyB0ZXN0cy9hcnRpZmFjdHMvU3RhdGVPcHMvY29udHJhY3QucHk6ODM4CiAgICAvLyBzZWxmLmFyYzRfYm9vbFtHbG9iYWwuY3JlYXRvcl9hZGRyZXNzXSA9IGFyYzQuQm9vbChUcnVlKQogICAgYXBwX2xvY2FsX3B1dAogICAgLy8gdGVzdHMvYXJ0aWZhY3RzL1N0YXRlT3BzL2NvbnRyYWN0LnB5OjgzOQogICAgLy8gc2VsZi5hcmM0X2FkZHJlc3NbR2xvYmFsLmNyZWF0b3JfYWRkcmVzc10gPSBhcmM0LkFkZHJlc3MoR2xvYmFsLmNyZWF0b3JfYWRkcmVzcykKICAgIGdsb2JhbCBDcmVhdG9yQWRkcmVzcwogICAgYnl0ZWMgMTcgLy8gImV4cGxpY2l0X2tleV9hcmM0X2FkZHJlc3MiCiAgICBnbG9iYWwgQ3JlYXRvckFkZHJlc3MKICAgIGFwcF9sb2NhbF9wdXQKICAgIC8vIHRlc3RzL2FydGlmYWN0cy9TdGF0ZU9wcy9jb250cmFjdC5weTo4NDAKICAgIC8vIHNlbGYuYXJjNF91aW50MTI4W0dsb2JhbC5jcmVhdG9yX2FkZHJlc3NdID0gYXJjNC5VSW50MTI4KDIqKjEwMCkKICAgIGdsb2JhbCBDcmVhdG9yQWRkcmVzcwogICAgYnl0ZWMgMTggLy8gImV4cGxpY2l0X2tleV9hcmM0X3VpbnQxMjgiCiAgICBieXRlYyA5IC8vIDB4MDAwMDAwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKICAgIGFwcF9sb2NhbF9wdXQKICAgIC8vIHRlc3RzL2FydGlmYWN0cy9TdGF0ZU9wcy9jb250cmFjdC5weTo4NDEKICAgIC8vIHNlbGYuYXJjNF9keW5hbWljX2J5dGVzW0dsb2JhbC5jcmVhdG9yX2FkZHJlc3NdID0gYXJjNC5EeW5hbWljQnl0ZXMoYiJkeW5hbWljIGJ5dGVzIikKICAgIGdsb2JhbCBDcmVhdG9yQWRkcmVzcwogICAgYnl0ZWMgMTkgLy8gImV4cGxpY2l0X2tleV9hcmM0X2R5bmFtaWNfYnl0ZXMiCiAgICAvLyB0ZXN0cy9hcnRpZmFjdHMvU3RhdGVPcHMvY29udHJhY3QucHk6ODMwLTgzMgogICAgLy8gc2VsZi5pbXBsaWNpdF9rZXlfYXJjNF9keW5hbWljX2J5dGVzW0dsb2JhbC5jcmVhdG9yX2FkZHJlc3NdID0gYXJjNC5EeW5hbWljQnl0ZXMoCiAgICAvLyAgICAgYiJkeW5hbWljIGJ5dGVzIgogICAgLy8gKQogICAgYnl0ZWMgMTEgLy8gMHgwMDBkNjQ3OTZlNjE2ZDY5NjMyMDYyNzk3NDY1NzMKICAgIC8vIHRlc3RzL2FydGlmYWN0cy9TdGF0ZU9wcy9jb250cmFjdC5weTo4NDEKICAgIC8vIHNlbGYuYXJjNF9keW5hbWljX2J5dGVzW0dsb2JhbC5jcmVhdG9yX2FkZHJlc3NdID0gYXJjNC5EeW5hbWljQnl0ZXMoYiJkeW5hbWljIGJ5dGVzIikKICAgIGFwcF9sb2NhbF9wdXQKICAgIC8vIHRlc3RzL2FydGlmYWN0cy9TdGF0ZU9wcy9jb250cmFjdC5weTo4MjAKICAgIC8vIEBhcmM0LmFiaW1ldGhvZChhbGxvd19hY3Rpb25zPVsiT3B0SW4iXSkKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCgovLyB0ZXN0cy5hcnRpZmFjdHMuU3RhdGVPcHMuY29udHJhY3QuTG9jYWxTdGF0ZUNvbnRyYWN0LmdldF9pbXBsaWNpdF9rZXlfYXJjNF91aW50W3JvdXRpbmddKCkgLT4gdm9pZDoKZ2V0X2ltcGxpY2l0X2tleV9hcmM0X3VpbnQ6CiAgICAvLyB0ZXN0cy9hcnRpZmFjdHMvU3RhdGVPcHMvY29udHJhY3QucHk6ODQzLTg0NAogICAgLy8gIyBHZXR0ZXIgbWV0aG9kcyBmb3IgaW1wbGljaXQga2V5IHN0YXRlIHZhcmlhYmxlcwogICAgLy8gQGFyYzQuYWJpbWV0aG9kKCkKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIC8vIHRlc3RzL2FydGlmYWN0cy9TdGF0ZU9wcy9jb250cmFjdC5weTo4NDYKICAgIC8vIHJldHVybiBzZWxmLmltcGxpY2l0X2tleV9hcmM0X3VpbnRbYV0KICAgIGludGNfMSAvLyAwCiAgICBieXRlY18xIC8vICJpbXBsaWNpdF9rZXlfYXJjNF91aW50IgogICAgYXBwX2xvY2FsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIHNlbGYuaW1wbGljaXRfa2V5X2FyYzRfdWludCBleGlzdHMgZm9yIGFjY291bnQKICAgIC8vIHRlc3RzL2FydGlmYWN0cy9TdGF0ZU9wcy9jb250cmFjdC5weTo4NDMtODQ0CiAgICAvLyAjIEdldHRlciBtZXRob2RzIGZvciBpbXBsaWNpdCBrZXkgc3RhdGUgdmFyaWFibGVzCiAgICAvLyBAYXJjNC5hYmltZXRob2QoKQogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18wIC8vIDEKICAgIHJldHVybgoKCi8vIHRlc3RzLmFydGlmYWN0cy5TdGF0ZU9wcy5jb250cmFjdC5Mb2NhbFN0YXRlQ29udHJhY3QuZ2V0X2ltcGxpY2l0X2tleV9hcmM0X3N0cmluZ1tyb3V0aW5nXSgpIC0+IHZvaWQ6CmdldF9pbXBsaWNpdF9rZXlfYXJjNF9zdHJpbmc6CiAgICAvLyB0ZXN0cy9hcnRpZmFjdHMvU3RhdGVPcHMvY29udHJhY3QucHk6ODQ4CiAgICAvLyBAYXJjNC5hYmltZXRob2QoKQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgLy8gdGVzdHMvYXJ0aWZhY3RzL1N0YXRlT3BzL2NvbnRyYWN0LnB5Ojg1MAogICAgLy8gcmV0dXJuIHNlbGYuaW1wbGljaXRfa2V5X2FyYzRfc3RyaW5nW2FdCiAgICBpbnRjXzEgLy8gMAogICAgYnl0ZWNfMyAvLyAiaW1wbGljaXRfa2V5X2FyYzRfc3RyaW5nIgogICAgYXBwX2xvY2FsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIHNlbGYuaW1wbGljaXRfa2V5X2FyYzRfc3RyaW5nIGV4aXN0cyBmb3IgYWNjb3VudAogICAgLy8gdGVzdHMvYXJ0aWZhY3RzL1N0YXRlT3BzL2NvbnRyYWN0LnB5Ojg0OAogICAgLy8gQGFyYzQuYWJpbWV0aG9kKCkKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCgovLyB0ZXN0cy5hcnRpZmFjdHMuU3RhdGVPcHMuY29udHJhY3QuTG9jYWxTdGF0ZUNvbnRyYWN0LmdldF9pbXBsaWNpdF9rZXlfYXJjNF9ieXRlW3JvdXRpbmddKCkgLT4gdm9pZDoKZ2V0X2ltcGxpY2l0X2tleV9hcmM0X2J5dGU6CiAgICAvLyB0ZXN0cy9hcnRpZmFjdHMvU3RhdGVPcHMvY29udHJhY3QucHk6ODUyCiAgICAvLyBAYXJjNC5hYmltZXRob2QoKQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgLy8gdGVzdHMvYXJ0aWZhY3RzL1N0YXRlT3BzL2NvbnRyYWN0LnB5Ojg1NAogICAgLy8gcmV0dXJuIHNlbGYuaW1wbGljaXRfa2V5X2FyYzRfYnl0ZVthXQogICAgaW50Y18xIC8vIDAKICAgIGJ5dGVjIDUgLy8gImltcGxpY2l0X2tleV9hcmM0X2J5dGUiCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi5pbXBsaWNpdF9rZXlfYXJjNF9ieXRlIGV4aXN0cyBmb3IgYWNjb3VudAogICAgLy8gdGVzdHMvYXJ0aWZhY3RzL1N0YXRlT3BzL2NvbnRyYWN0LnB5Ojg1MgogICAgLy8gQGFyYzQuYWJpbWV0aG9kKCkKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCgovLyB0ZXN0cy5hcnRpZmFjdHMuU3RhdGVPcHMuY29udHJhY3QuTG9jYWxTdGF0ZUNvbnRyYWN0LmdldF9pbXBsaWNpdF9rZXlfYXJjNF9ib29sW3JvdXRpbmddKCkgLT4gdm9pZDoKZ2V0X2ltcGxpY2l0X2tleV9hcmM0X2Jvb2w6CiAgICAvLyB0ZXN0cy9hcnRpZmFjdHMvU3RhdGVPcHMvY29udHJhY3QucHk6ODU2CiAgICAvLyBAYXJjNC5hYmltZXRob2QoKQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgLy8gdGVzdHMvYXJ0aWZhY3RzL1N0YXRlT3BzL2NvbnRyYWN0LnB5Ojg1OAogICAgLy8gcmV0dXJuIHNlbGYuaW1wbGljaXRfa2V5X2FyYzRfYm9vbFthXQogICAgaW50Y18xIC8vIDAKICAgIGJ5dGVjIDYgLy8gImltcGxpY2l0X2tleV9hcmM0X2Jvb2wiCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi5pbXBsaWNpdF9rZXlfYXJjNF9ib29sIGV4aXN0cyBmb3IgYWNjb3VudAogICAgLy8gdGVzdHMvYXJ0aWZhY3RzL1N0YXRlT3BzL2NvbnRyYWN0LnB5Ojg1NgogICAgLy8gQGFyYzQuYWJpbWV0aG9kKCkKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCgovLyB0ZXN0cy5hcnRpZmFjdHMuU3RhdGVPcHMuY29udHJhY3QuTG9jYWxTdGF0ZUNvbnRyYWN0LmdldF9pbXBsaWNpdF9rZXlfYXJjNF9hZGRyZXNzW3JvdXRpbmddKCkgLT4gdm9pZDoKZ2V0X2ltcGxpY2l0X2tleV9hcmM0X2FkZHJlc3M6CiAgICAvLyB0ZXN0cy9hcnRpZmFjdHMvU3RhdGVPcHMvY29udHJhY3QucHk6ODYwCiAgICAvLyBAYXJjNC5hYmltZXRob2QoKQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgLy8gdGVzdHMvYXJ0aWZhY3RzL1N0YXRlT3BzL2NvbnRyYWN0LnB5Ojg2MgogICAgLy8gcmV0dXJuIHNlbGYuaW1wbGljaXRfa2V5X2FyYzRfYWRkcmVzc1thXQogICAgaW50Y18xIC8vIDAKICAgIGJ5dGVjIDcgLy8gImltcGxpY2l0X2tleV9hcmM0X2FkZHJlc3MiCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi5pbXBsaWNpdF9rZXlfYXJjNF9hZGRyZXNzIGV4aXN0cyBmb3IgYWNjb3VudAogICAgLy8gdGVzdHMvYXJ0aWZhY3RzL1N0YXRlT3BzL2NvbnRyYWN0LnB5Ojg2MAogICAgLy8gQGFyYzQuYWJpbWV0aG9kKCkKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCgovLyB0ZXN0cy5hcnRpZmFjdHMuU3RhdGVPcHMuY29udHJhY3QuTG9jYWxTdGF0ZUNvbnRyYWN0LmdldF9pbXBsaWNpdF9rZXlfYXJjNF91aW50MTI4W3JvdXRpbmddKCkgLT4gdm9pZDoKZ2V0X2ltcGxpY2l0X2tleV9hcmM0X3VpbnQxMjg6CiAgICAvLyB0ZXN0cy9hcnRpZmFjdHMvU3RhdGVPcHMvY29udHJhY3QucHk6ODY0CiAgICAvLyBAYXJjNC5hYmltZXRob2QoKQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgLy8gdGVzdHMvYXJ0aWZhY3RzL1N0YXRlT3BzL2NvbnRyYWN0LnB5Ojg2NgogICAgLy8gcmV0dXJuIHNlbGYuaW1wbGljaXRfa2V5X2FyYzRfdWludDEyOFthXQogICAgaW50Y18xIC8vIDAKICAgIGJ5dGVjIDggLy8gImltcGxpY2l0X2tleV9hcmM0X3VpbnQxMjgiCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi5pbXBsaWNpdF9rZXlfYXJjNF91aW50MTI4IGV4aXN0cyBmb3IgYWNjb3VudAogICAgLy8gdGVzdHMvYXJ0aWZhY3RzL1N0YXRlT3BzL2NvbnRyYWN0LnB5Ojg2NAogICAgLy8gQGFyYzQuYWJpbWV0aG9kKCkKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCgovLyB0ZXN0cy5hcnRpZmFjdHMuU3RhdGVPcHMuY29udHJhY3QuTG9jYWxTdGF0ZUNvbnRyYWN0LmdldF9pbXBsaWNpdF9rZXlfYXJjNF9keW5hbWljX2J5dGVzW3JvdXRpbmddKCkgLT4gdm9pZDoKZ2V0X2ltcGxpY2l0X2tleV9hcmM0X2R5bmFtaWNfYnl0ZXM6CiAgICAvLyB0ZXN0cy9hcnRpZmFjdHMvU3RhdGVPcHMvY29udHJhY3QucHk6ODY4CiAgICAvLyBAYXJjNC5hYmltZXRob2QoKQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgLy8gdGVzdHMvYXJ0aWZhY3RzL1N0YXRlT3BzL2NvbnRyYWN0LnB5Ojg3MAogICAgLy8gcmV0dXJuIHNlbGYuaW1wbGljaXRfa2V5X2FyYzRfZHluYW1pY19ieXRlc1thXQogICAgaW50Y18xIC8vIDAKICAgIGJ5dGVjIDEwIC8vICJpbXBsaWNpdF9rZXlfYXJjNF9keW5hbWljX2J5dGVzIgogICAgYXBwX2xvY2FsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIHNlbGYuaW1wbGljaXRfa2V5X2FyYzRfZHluYW1pY19ieXRlcyBleGlzdHMgZm9yIGFjY291bnQKICAgIC8vIHRlc3RzL2FydGlmYWN0cy9TdGF0ZU9wcy9jb250cmFjdC5weTo4NjgKICAgIC8vIEBhcmM0LmFiaW1ldGhvZCgpCiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzAgLy8gMQogICAgcmV0dXJuCgoKLy8gdGVzdHMuYXJ0aWZhY3RzLlN0YXRlT3BzLmNvbnRyYWN0LkxvY2FsU3RhdGVDb250cmFjdC5nZXRfaW1wbGljaXRfa2V5X3R1cGxlW3JvdXRpbmddKCkgLT4gdm9pZDoKZ2V0X2ltcGxpY2l0X2tleV90dXBsZToKICAgIC8vIHRlc3RzL2FydGlmYWN0cy9TdGF0ZU9wcy9jb250cmFjdC5weTo4NzIKICAgIC8vIEBhcmM0LmFiaW1ldGhvZCgpCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICAvLyB0ZXN0cy9hcnRpZmFjdHMvU3RhdGVPcHMvY29udHJhY3QucHk6ODc0CiAgICAvLyByZXR1cm4gc2VsZi5pbXBsaWNpdF9rZXlfdHVwbGVbYV0KICAgIGludGNfMSAvLyAwCiAgICBieXRlYyAxMiAvLyAiaW1wbGljaXRfa2V5X3R1cGxlIgogICAgYXBwX2xvY2FsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIHNlbGYuaW1wbGljaXRfa2V5X3R1cGxlIGV4aXN0cyBmb3IgYWNjb3VudAogICAgLy8gdGVzdHMvYXJ0aWZhY3RzL1N0YXRlT3BzL2NvbnRyYWN0LnB5Ojg3MgogICAgLy8gQGFyYzQuYWJpbWV0aG9kKCkKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCgovLyB0ZXN0cy5hcnRpZmFjdHMuU3RhdGVPcHMuY29udHJhY3QuTG9jYWxTdGF0ZUNvbnRyYWN0LmdldF9hcmM0X3VpbnRbcm91dGluZ10oKSAtPiB2b2lkOgpnZXRfYXJjNF91aW50OgogICAgLy8gdGVzdHMvYXJ0aWZhY3RzL1N0YXRlT3BzL2NvbnRyYWN0LnB5Ojg3Ni04NzcKICAgIC8vICMgR2V0dGVyIG1ldGhvZHMgZm9yIGV4cGxpY2l0IGtleSBzdGF0ZSB2YXJpYWJsZXMKICAgIC8vIEBhcmM0LmFiaW1ldGhvZCgpCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICAvLyB0ZXN0cy9hcnRpZmFjdHMvU3RhdGVPcHMvY29udHJhY3QucHk6ODc5CiAgICAvLyByZXR1cm4gc2VsZi5hcmM0X3VpbnRbYV0KICAgIGludGNfMSAvLyAwCiAgICBieXRlYyAxMyAvLyAiZXhwbGljaXRfa2V5X2FyYzRfdWludCIKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBzZWxmLmFyYzRfdWludCBleGlzdHMgZm9yIGFjY291bnQKICAgIC8vIHRlc3RzL2FydGlmYWN0cy9TdGF0ZU9wcy9jb250cmFjdC5weTo4NzYtODc3CiAgICAvLyAjIEdldHRlciBtZXRob2RzIGZvciBleHBsaWNpdCBrZXkgc3RhdGUgdmFyaWFibGVzCiAgICAvLyBAYXJjNC5hYmltZXRob2QoKQogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18wIC8vIDEKICAgIHJldHVybgoKCi8vIHRlc3RzLmFydGlmYWN0cy5TdGF0ZU9wcy5jb250cmFjdC5Mb2NhbFN0YXRlQ29udHJhY3QuZ2V0X2FyYzRfc3RyaW5nW3JvdXRpbmddKCkgLT4gdm9pZDoKZ2V0X2FyYzRfc3RyaW5nOgogICAgLy8gdGVzdHMvYXJ0aWZhY3RzL1N0YXRlT3BzL2NvbnRyYWN0LnB5Ojg4MQogICAgLy8gQGFyYzQuYWJpbWV0aG9kKCkKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIC8vIHRlc3RzL2FydGlmYWN0cy9TdGF0ZU9wcy9jb250cmFjdC5weTo4ODMKICAgIC8vIHJldHVybiBzZWxmLmFyYzRfc3RyaW5nW2FdCiAgICBpbnRjXzEgLy8gMAogICAgYnl0ZWMgMTQgLy8gImV4cGxpY2l0X2tleV9hcmM0X3N0cmluZyIKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBzZWxmLmFyYzRfc3RyaW5nIGV4aXN0cyBmb3IgYWNjb3VudAogICAgLy8gdGVzdHMvYXJ0aWZhY3RzL1N0YXRlT3BzL2NvbnRyYWN0LnB5Ojg4MQogICAgLy8gQGFyYzQuYWJpbWV0aG9kKCkKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCgovLyB0ZXN0cy5hcnRpZmFjdHMuU3RhdGVPcHMuY29udHJhY3QuTG9jYWxTdGF0ZUNvbnRyYWN0LmdldF9hcmM0X2J5dGVbcm91dGluZ10oKSAtPiB2b2lkOgpnZXRfYXJjNF9ieXRlOgogICAgLy8gdGVzdHMvYXJ0aWZhY3RzL1N0YXRlT3BzL2NvbnRyYWN0LnB5Ojg4NQogICAgLy8gQGFyYzQuYWJpbWV0aG9kKCkKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIC8vIHRlc3RzL2FydGlmYWN0cy9TdGF0ZU9wcy9jb250cmFjdC5weTo4ODcKICAgIC8vIHJldHVybiBzZWxmLmFyYzRfYnl0ZVthXQogICAgaW50Y18xIC8vIDAKICAgIGJ5dGVjIDE1IC8vICJleHBsaWNpdF9rZXlfYXJjNF9ieXRlIgogICAgYXBwX2xvY2FsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIHNlbGYuYXJjNF9ieXRlIGV4aXN0cyBmb3IgYWNjb3VudAogICAgLy8gdGVzdHMvYXJ0aWZhY3RzL1N0YXRlT3BzL2NvbnRyYWN0LnB5Ojg4NQogICAgLy8gQGFyYzQuYWJpbWV0aG9kKCkKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCgovLyB0ZXN0cy5hcnRpZmFjdHMuU3RhdGVPcHMuY29udHJhY3QuTG9jYWxTdGF0ZUNvbnRyYWN0LmdldF9hcmM0X2Jvb2xbcm91dGluZ10oKSAtPiB2b2lkOgpnZXRfYXJjNF9ib29sOgogICAgLy8gdGVzdHMvYXJ0aWZhY3RzL1N0YXRlT3BzL2NvbnRyYWN0LnB5Ojg4OQogICAgLy8gQGFyYzQuYWJpbWV0aG9kKCkKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIC8vIHRlc3RzL2FydGlmYWN0cy9TdGF0ZU9wcy9jb250cmFjdC5weTo4OTEKICAgIC8vIHJldHVybiBzZWxmLmFyYzRfYm9vbFthXQogICAgaW50Y18xIC8vIDAKICAgIGJ5dGVjIDE2IC8vICJleHBsaWNpdF9rZXlfYXJjNF9ib29sIgogICAgYXBwX2xvY2FsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIHNlbGYuYXJjNF9ib29sIGV4aXN0cyBmb3IgYWNjb3VudAogICAgLy8gdGVzdHMvYXJ0aWZhY3RzL1N0YXRlT3BzL2NvbnRyYWN0LnB5Ojg4OQogICAgLy8gQGFyYzQuYWJpbWV0aG9kKCkKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCgovLyB0ZXN0cy5hcnRpZmFjdHMuU3RhdGVPcHMuY29udHJhY3QuTG9jYWxTdGF0ZUNvbnRyYWN0LmdldF9hcmM0X2FkZHJlc3Nbcm91dGluZ10oKSAtPiB2b2lkOgpnZXRfYXJjNF9hZGRyZXNzOgogICAgLy8gdGVzdHMvYXJ0aWZhY3RzL1N0YXRlT3BzL2NvbnRyYWN0LnB5Ojg5MwogICAgLy8gQGFyYzQuYWJpbWV0aG9kKCkKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIC8vIHRlc3RzL2FydGlmYWN0cy9TdGF0ZU9wcy9jb250cmFjdC5weTo4OTUKICAgIC8vIHJldHVybiBzZWxmLmFyYzRfYWRkcmVzc1thXQogICAgaW50Y18xIC8vIDAKICAgIGJ5dGVjIDE3IC8vICJleHBsaWNpdF9rZXlfYXJjNF9hZGRyZXNzIgogICAgYXBwX2xvY2FsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIHNlbGYuYXJjNF9hZGRyZXNzIGV4aXN0cyBmb3IgYWNjb3VudAogICAgLy8gdGVzdHMvYXJ0aWZhY3RzL1N0YXRlT3BzL2NvbnRyYWN0LnB5Ojg5MwogICAgLy8gQGFyYzQuYWJpbWV0aG9kKCkKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCgovLyB0ZXN0cy5hcnRpZmFjdHMuU3RhdGVPcHMuY29udHJhY3QuTG9jYWxTdGF0ZUNvbnRyYWN0LmdldF9hcmM0X3VpbnQxMjhbcm91dGluZ10oKSAtPiB2b2lkOgpnZXRfYXJjNF91aW50MTI4OgogICAgLy8gdGVzdHMvYXJ0aWZhY3RzL1N0YXRlT3BzL2NvbnRyYWN0LnB5Ojg5NwogICAgLy8gQGFyYzQuYWJpbWV0aG9kKCkKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIC8vIHRlc3RzL2FydGlmYWN0cy9TdGF0ZU9wcy9jb250cmFjdC5weTo4OTkKICAgIC8vIHJldHVybiBzZWxmLmFyYzRfdWludDEyOFthXQogICAgaW50Y18xIC8vIDAKICAgIGJ5dGVjIDE4IC8vICJleHBsaWNpdF9rZXlfYXJjNF91aW50MTI4IgogICAgYXBwX2xvY2FsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIHNlbGYuYXJjNF91aW50MTI4IGV4aXN0cyBmb3IgYWNjb3VudAogICAgLy8gdGVzdHMvYXJ0aWZhY3RzL1N0YXRlT3BzL2NvbnRyYWN0LnB5Ojg5NwogICAgLy8gQGFyYzQuYWJpbWV0aG9kKCkKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCgovLyB0ZXN0cy5hcnRpZmFjdHMuU3RhdGVPcHMuY29udHJhY3QuTG9jYWxTdGF0ZUNvbnRyYWN0LmdldF9hcmM0X2R5bmFtaWNfYnl0ZXNbcm91dGluZ10oKSAtPiB2b2lkOgpnZXRfYXJjNF9keW5hbWljX2J5dGVzOgogICAgLy8gdGVzdHMvYXJ0aWZhY3RzL1N0YXRlT3BzL2NvbnRyYWN0LnB5OjkwMQogICAgLy8gQGFyYzQuYWJpbWV0aG9kKCkKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIC8vIHRlc3RzL2FydGlmYWN0cy9TdGF0ZU9wcy9jb250cmFjdC5weTo5MDMKICAgIC8vIHJldHVybiBzZWxmLmFyYzRfZHluYW1pY19ieXRlc1thXQogICAgaW50Y18xIC8vIDAKICAgIGJ5dGVjIDE5IC8vICJleHBsaWNpdF9rZXlfYXJjNF9keW5hbWljX2J5dGVzIgogICAgYXBwX2xvY2FsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIHNlbGYuYXJjNF9keW5hbWljX2J5dGVzIGV4aXN0cyBmb3IgYWNjb3VudAogICAgLy8gdGVzdHMvYXJ0aWZhY3RzL1N0YXRlT3BzL2NvbnRyYWN0LnB5OjkwMQogICAgLy8gQGFyYzQuYWJpbWV0aG9kKCkKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4K", "clear": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBhbGdvcHkuYXJjNC5BUkM0Q29udHJhY3QuY2xlYXJfc3RhdGVfcHJvZ3JhbSgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIHB1c2hpbnQgMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CyACAQAmFAQVH3x1FmltcGxpY2l0X2tleV9hcmM0X3VpbnQIAAAAAAAABTkYaW1wbGljaXRfa2V5X2FyYzRfc3RyaW5nBwAFSGVsbG8WaW1wbGljaXRfa2V5X2FyYzRfYnl0ZRZpbXBsaWNpdF9rZXlfYXJjNF9ib29sGWltcGxpY2l0X2tleV9hcmM0X2FkZHJlc3MZaW1wbGljaXRfa2V5X2FyYzRfdWludDEyOBAAAAAQAAAAAAAAAAAAAAAAH2ltcGxpY2l0X2tleV9hcmM0X2R5bmFtaWNfYnl0ZXMPAA1keW5hbWljIGJ5dGVzEmltcGxpY2l0X2tleV90dXBsZRZleHBsaWNpdF9rZXlfYXJjNF91aW50GGV4cGxpY2l0X2tleV9hcmM0X3N0cmluZxZleHBsaWNpdF9rZXlfYXJjNF9ieXRlFmV4cGxpY2l0X2tleV9hcmM0X2Jvb2wZZXhwbGljaXRfa2V5X2FyYzRfYWRkcmVzcxlleHBsaWNpdF9rZXlfYXJjNF91aW50MTI4H2V4cGxpY2l0X2tleV9hcmM0X2R5bmFtaWNfYnl0ZXMxG0EAkIAEMMbVijYaAI4BAHgxGRREMRhEgg8Es8+jiQTbhYF2BHgmd2IEQmNRyAQHXK6RBFnAuAsEDW+mkASX4Q2cBC5KjEkEsizSHgSz9EcBBO3ZcpcEZx01PASj/W/cBM0uXWY2GgCODwCQAJ0AqgC4AMYA1ADiAPAA/gEMARoBKAE2AUQBUgAxGSISMRgQREIACDEZFDEYFBBDMgkpKmYyCSsnBGYyCScFgAEAZjIJJwaAAYBmMgknBzIJZjIJJwgnCWYyCScKJwtmMgknDIARAAAAAAAAAAoACwAABHRlc3RmMgknDSpmMgknDicEZjIJJw+AAQBmMgknEIABgGYyCScRMglmMgknEicJZjIJJxMnC2YiQzYaASMpY0QoTFCwIkM2GgEjK2NEKExQsCJDNhoBIycFY0QoTFCwIkM2GgEjJwZjRChMULAiQzYaASMnB2NEKExQsCJDNhoBIycIY0QoTFCwIkM2GgEjJwpjRChMULAiQzYaASMnDGNEKExQsCJDNhoBIycNY0QoTFCwIkM2GgEjJw5jRChMULAiQzYaASMnD2NEKExQsCJDNhoBIycQY0QoTFCwIkM2GgEjJxFjRChMULAiQzYaASMnEmNEKExQsCJDNhoBIycTY0QoTFCwIkM=", "clear": "C4EBQw==" }, "compilerInfo": { "compiler": "puya", "compilerVersion": { "major": 5, "minor": 8, "patch": 1 } }, "events": [], "templateVariables": {} }