{ "name": "HelloZKP", "desc": "", "methods": [ { "name": "doMath", "desc": "A method that takes two numbers and does either addition or subtraction", "args": [ { "name": "a", "type": "uint64", "desc": "The first uint64" }, { "name": "b", "type": "uint64", "desc": "The second uint64" }, { "name": "operation", "type": "string", "desc": "The operation to perform. Can be either 'sum' or 'difference'" } ], "returns": { "type": "uint64", "desc": "The result of the operation" }, "actions": { "create": [], "call": [ "NoOp" ] } }, { "name": "hello", "desc": "A demonstration method used in the AlgoKit fullstack template.\nGreets the user by name.", "args": [ { "name": "name", "type": "string", "desc": "The name of the user to greet." } ], "returns": { "type": "string", "desc": "A greeting message to the user." }, "actions": { "create": [], "call": [ "NoOp" ] } }, { "name": "createApplication", "args": [], "returns": { "type": "void" }, "actions": { "create": [ "NoOp" ], "call": [] } } ], "arcs": [ 4, 56 ], "structs": {}, "state": { "schema": { "global": { "bytes": 0, "ints": 0 }, "local": { "bytes": 0, "ints": 0 } }, "keys": { "global": {}, "local": {}, "box": {} }, "maps": { "global": {}, "local": {}, "box": {} } }, "bareActions": { "create": [], "call": [] }, "sourceInfo": { "approval": { "sourceInfo": [ { "teal": 1, "source": "contracts\\HelloZKP.algo.ts:3", "pc": [ 0 ] }, { "teal": 2, "source": "contracts\\HelloZKP.algo.ts:3", "pc": [ 1, 2, 3 ] }, { "teal": 3, "source": "contracts\\HelloZKP.algo.ts:3", "pc": [ 4, 5, 6, 7, 8, 9, 10 ] }, { "teal": 15, "source": "contracts\\HelloZKP.algo.ts:3", "pc": [ 11, 12 ] }, { "teal": 16, "source": "contracts\\HelloZKP.algo.ts:3", "pc": [ 13 ] }, { "teal": 17, "source": "contracts\\HelloZKP.algo.ts:3", "pc": [ 14, 15 ] }, { "teal": 18, "source": "contracts\\HelloZKP.algo.ts:3", "pc": [ 16 ] }, { "teal": 19, "source": "contracts\\HelloZKP.algo.ts:3", "pc": [ 17, 18 ] }, { "teal": 20, "source": "contracts\\HelloZKP.algo.ts:3", "pc": [ 19 ] }, { "teal": 21, "source": "contracts\\HelloZKP.algo.ts:3", "pc": [ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45 ] }, { "teal": 25, "source": "contracts\\HelloZKP.algo.ts:3", "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", "pc": [ 46 ] }, { "teal": 35, "source": "contracts\\HelloZKP.algo.ts:11", "pc": [ 47, 48, 49 ] }, { "teal": 39, "source": "contracts\\HelloZKP.algo.ts:12", "pc": [ 50, 51 ] }, { "teal": 40, "source": "contracts\\HelloZKP.algo.ts:12", "pc": [ 52, 53 ] }, { "teal": 41, "source": "contracts\\HelloZKP.algo.ts:12", "pc": [ 54 ] }, { "teal": 42, "source": "contracts\\HelloZKP.algo.ts:11", "pc": [ 55 ] }, { "teal": 52, "source": "contracts\\HelloZKP.algo.ts:22", "pc": [ 56, 57, 58 ] }, { "teal": 56, "source": "contracts\\HelloZKP.algo.ts:23", "pc": [ 59, 60 ] }, { "teal": 57, "source": "contracts\\HelloZKP.algo.ts:23", "pc": [ 61, 62 ] }, { "teal": 58, "source": "contracts\\HelloZKP.algo.ts:23", "pc": [ 63 ] }, { "teal": 59, "source": "contracts\\HelloZKP.algo.ts:23", "pc": [ 64, 65, 66 ] }, { "teal": 60, "source": "contracts\\HelloZKP.algo.ts:23", "pc": [ 67, 68 ] }, { "teal": 61, "source": "contracts\\HelloZKP.algo.ts:23", "pc": [ 69, 70 ] }, { "teal": 62, "source": "contracts\\HelloZKP.algo.ts:23", "pc": [ 71 ] }, { "teal": 63, "source": "contracts\\HelloZKP.algo.ts:23", "pc": [ 72, 73, 74 ] }, { "teal": 66, "source": "contracts\\HelloZKP.algo.ts:23", "pc": [ 75, 76 ] }, { "teal": 67, "source": "contracts\\HelloZKP.algo.ts:23", "pc": [ 77, 78 ] }, { "teal": 68, "source": "contracts\\HelloZKP.algo.ts:23", "pc": [ 79 ] }, { "teal": 71, "source": "contracts\\HelloZKP.algo.ts:22", "pc": [ 80 ] }, { "teal": 76, "source": "contracts\\HelloZKP.algo.ts:35", "pc": [ 81 ] }, { "teal": 79, "source": "contracts\\HelloZKP.algo.ts:35", "pc": [ 82, 83, 84 ] }, { "teal": 80, "source": "contracts\\HelloZKP.algo.ts:35", "pc": [ 85, 86, 87 ] }, { "teal": 83, "source": "contracts\\HelloZKP.algo.ts:35", "pc": [ 88, 89, 90 ] }, { "teal": 84, "source": "contracts\\HelloZKP.algo.ts:35", "pc": [ 91 ] }, { "teal": 87, "source": "contracts\\HelloZKP.algo.ts:35", "pc": [ 92, 93, 94 ] }, { "teal": 88, "source": "contracts\\HelloZKP.algo.ts:35", "pc": [ 95 ] }, { "teal": 91, "source": "contracts\\HelloZKP.algo.ts:35", "pc": [ 96, 97, 98 ] }, { "teal": 92, "source": "contracts\\HelloZKP.algo.ts:35", "pc": [ 99 ] }, { "teal": 93, "source": "contracts\\HelloZKP.algo.ts:35", "pc": [ 100 ] }, { "teal": 94, "source": "contracts\\HelloZKP.algo.ts:35", "pc": [ 101 ] }, { "teal": 95, "source": "contracts\\HelloZKP.algo.ts:35", "pc": [ 102 ] }, { "teal": 96, "source": "contracts\\HelloZKP.algo.ts:35", "pc": [ 103 ] }, { "teal": 108, "source": "contracts\\HelloZKP.algo.ts:35", "pc": [ 104, 105, 106 ] }, { "teal": 111, "source": "contracts\\HelloZKP.algo.ts:35", "pc": [ 107, 108 ] }, { "teal": 116, "source": "contracts\\HelloZKP.algo.ts:38", "pc": [ 109, 110 ] }, { "teal": 117, "source": "contracts\\HelloZKP.algo.ts:38", "pc": [ 111, 112, 113, 114, 115 ] }, { "teal": 118, "source": "contracts\\HelloZKP.algo.ts:38", "pc": [ 116 ] }, { "teal": 119, "source": "contracts\\HelloZKP.algo.ts:38", "pc": [ 117, 118, 119 ] }, { "teal": 124, "source": "contracts\\HelloZKP.algo.ts:39", "pc": [ 120, 121 ] }, { "teal": 125, "source": "contracts\\HelloZKP.algo.ts:39", "pc": [ 122, 123 ] }, { "teal": 126, "source": "contracts\\HelloZKP.algo.ts:39", "pc": [ 124, 125, 126 ] }, { "teal": 127, "source": "contracts\\HelloZKP.algo.ts:39", "pc": [ 127, 128 ] }, { "teal": 128, "source": "contracts\\HelloZKP.algo.ts:38", "pc": [ 129, 130, 131 ] }, { "teal": 133, "source": "contracts\\HelloZKP.algo.ts:40", "pc": [ 132, 133 ] }, { "teal": 134, "source": "contracts\\HelloZKP.algo.ts:40", "pc": [ 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145 ] }, { "teal": 135, "source": "contracts\\HelloZKP.algo.ts:40", "pc": [ 146 ] }, { "teal": 136, "source": "contracts\\HelloZKP.algo.ts:40", "pc": [ 147, 148, 149 ] }, { "teal": 141, "source": "contracts\\HelloZKP.algo.ts:41", "pc": [ 150, 151 ] }, { "teal": 142, "source": "contracts\\HelloZKP.algo.ts:41", "pc": [ 152, 153 ] }, { "teal": 143, "source": "contracts\\HelloZKP.algo.ts:41", "pc": [ 154, 155, 156 ] }, { "teal": 144, "source": "contracts\\HelloZKP.algo.ts:41", "pc": [ 157, 158 ] }, { "teal": 145, "source": "contracts\\HelloZKP.algo.ts:40", "pc": [ 159, 160, 161 ] }, { "teal": 149, "source": "contracts\\HelloZKP.algo.ts:42", "errorMessage": "Invalid operation", "pc": [ 162 ] }, { "teal": 154, "source": "contracts\\HelloZKP.algo.ts:44", "pc": [ 163, 164 ] }, { "teal": 157, "source": "contracts\\HelloZKP.algo.ts:35", "pc": [ 165, 166 ] }, { "teal": 158, "source": "contracts\\HelloZKP.algo.ts:35", "pc": [ 167 ] }, { "teal": 163, "source": "contracts\\HelloZKP.algo.ts:54", "pc": [ 168 ] }, { "teal": 166, "source": "contracts\\HelloZKP.algo.ts:54", "pc": [ 169, 170, 171 ] }, { "teal": 167, "source": "contracts\\HelloZKP.algo.ts:54", "pc": [ 172, 173, 174 ] }, { "teal": 170, "source": "contracts\\HelloZKP.algo.ts:54", "pc": [ 175, 176, 177 ] }, { "teal": 171, "source": "contracts\\HelloZKP.algo.ts:54", "pc": [ 178 ] }, { "teal": 172, "source": "contracts\\HelloZKP.algo.ts:54", "pc": [ 179 ] }, { "teal": 173, "source": "contracts\\HelloZKP.algo.ts:54", "pc": [ 180 ] }, { "teal": 174, "source": "contracts\\HelloZKP.algo.ts:54", "pc": [ 181, 182, 183 ] }, { "teal": 175, "source": "contracts\\HelloZKP.algo.ts:54", "pc": [ 184 ] }, { "teal": 176, "source": "contracts\\HelloZKP.algo.ts:54", "pc": [ 185 ] }, { "teal": 177, "source": "contracts\\HelloZKP.algo.ts:54", "pc": [ 186 ] }, { "teal": 178, "source": "contracts\\HelloZKP.algo.ts:54", "pc": [ 187 ] }, { "teal": 179, "source": "contracts\\HelloZKP.algo.ts:54", "pc": [ 188 ] }, { "teal": 180, "source": "contracts\\HelloZKP.algo.ts:54", "pc": [ 189 ] }, { "teal": 190, "source": "contracts\\HelloZKP.algo.ts:54", "pc": [ 190, 191, 192 ] }, { "teal": 194, "source": "contracts\\HelloZKP.algo.ts:55", "pc": [ 193, 194, 195, 196, 197, 198, 199, 200, 201 ] }, { "teal": 195, "source": "contracts\\HelloZKP.algo.ts:55", "pc": [ 202, 203 ] }, { "teal": 196, "source": "contracts\\HelloZKP.algo.ts:55", "pc": [ 204 ] }, { "teal": 197, "source": "contracts\\HelloZKP.algo.ts:54", "pc": [ 205 ] }, { "teal": 200, "source": "contracts\\HelloZKP.algo.ts:3", "pc": [ 206 ] }, { "teal": 201, "source": "contracts\\HelloZKP.algo.ts:3", "pc": [ 207 ] }, { "teal": 204, "source": "contracts\\HelloZKP.algo.ts:3", "pc": [ 208, 209, 210, 211, 212, 213 ] }, { "teal": 205, "source": "contracts\\HelloZKP.algo.ts:3", "pc": [ 214, 215, 216 ] }, { "teal": 206, "source": "contracts\\HelloZKP.algo.ts:3", "pc": [ 217, 218, 219, 220 ] }, { "teal": 209, "source": "contracts\\HelloZKP.algo.ts:3", "errorMessage": "this contract does not implement the given ABI method for create NoOp", "pc": [ 221 ] }, { "teal": 212, "source": "contracts\\HelloZKP.algo.ts:3", "pc": [ 222, 223, 224, 225, 226, 227 ] }, { "teal": 213, "source": "contracts\\HelloZKP.algo.ts:3", "pc": [ 228, 229, 230, 231, 232, 233 ] }, { "teal": 214, "source": "contracts\\HelloZKP.algo.ts:3", "pc": [ 234, 235, 236 ] }, { "teal": 215, "source": "contracts\\HelloZKP.algo.ts:3", "pc": [ 237, 238, 239, 240, 241, 242 ] }, { "teal": 218, "source": "contracts\\HelloZKP.algo.ts:3", "errorMessage": "this contract does not implement the given ABI method for call NoOp", "pc": [ 243 ] } ], "pcOffsetMethod": "none" }, "clear": { "sourceInfo": [], "pcOffsetMethod": "none" } }, "source": { "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxCmJ5dGVjYmxvY2sgMHgxNTFmN2M3NQoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDYuMgovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIGdldFN1bShhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQ2NAovLwovLyBDYWxjdWxhdGVzIHRoZSBzdW0gb2YgdHdvIG51bWJlcnMKLy8KLy8gQHBhcmFtIGEKLy8gQHBhcmFtIGIKLy8gQHJldHVybnMgVGhlIHN1bSBvZiBhIGFuZCBiCmdldFN1bToKCXByb3RvIDIgMQoKCS8vIGNvbnRyYWN0c1xIZWxsb1pLUC5hbGdvLnRzOjEyCgkvLyByZXR1cm4gYSArIGI7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CgkrCglyZXRzdWIKCi8vIGdldERpZmZlcmVuY2UoYTogdWludDY0LCBiOiB1aW50NjQpOiB1aW50NjQKLy8KLy8gQ2FsY3VsYXRlcyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHR3byBudW1iZXJzCi8vCi8vIEBwYXJhbSBhCi8vIEBwYXJhbSBiCi8vIEByZXR1cm5zIFRoZSBkaWZmZXJlbmNlIGJldHdlZW4gYSBhbmQgYi4KZ2V0RGlmZmVyZW5jZToKCXByb3RvIDIgMQoKCS8vIGNvbnRyYWN0c1xIZWxsb1pLUC5hbGdvLnRzOjIzCgkvLyByZXR1cm4gYSA+PSBiID8gYSAtIGIgOiBiIC0gYTsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCT49CglieiAqdGVybmFyeTBfZmFsc2UKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCS0KCWIgKnRlcm5hcnkwX2VuZAoKKnRlcm5hcnkwX2ZhbHNlOgoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJLQoKKnRlcm5hcnkwX2VuZDoKCXJldHN1YgoKLy8gZG9NYXRoKHVpbnQ2NCx1aW50NjQsc3RyaW5nKXVpbnQ2NAoqYWJpX3JvdXRlX2RvTWF0aDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZWMgMCAvLyAweDE1MWY3Yzc1CgoJLy8gb3BlcmF0aW9uOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWV4dHJhY3QgMiAwCgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBkb01hdGgodWludDY0LHVpbnQ2NCxzdHJpbmcpdWludDY0CgljYWxsc3ViIGRvTWF0aAoJaXRvYgoJY29uY2F0Cglsb2cKCWludGMgMCAvLyAxCglyZXR1cm4KCi8vIGRvTWF0aChhOiB1aW50NjQsIGI6IHVpbnQ2NCwgb3BlcmF0aW9uOiBzdHJpbmcpOiB1aW50NjQKLy8KLy8gQSBtZXRob2QgdGhhdCB0YWtlcyB0d28gbnVtYmVycyBhbmQgZG9lcyBlaXRoZXIgYWRkaXRpb24gb3Igc3VidHJhY3Rpb24KLy8KLy8gQHBhcmFtIGEgVGhlIGZpcnN0IHVpbnQ2NAovLyBAcGFyYW0gYiBUaGUgc2Vjb25kIHVpbnQ2NAovLyBAcGFyYW0gb3BlcmF0aW9uIFRoZSBvcGVyYXRpb24gdG8gcGVyZm9ybS4gQ2FuIGJlIGVpdGhlciAnc3VtJyBvciAnZGlmZmVyZW5jZScKLy8KLy8gQHJldHVybnMgVGhlIHJlc3VsdCBvZiB0aGUgb3BlcmF0aW9uCmRvTWF0aDoKCXByb3RvIDMgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglwdXNoYnl0ZXMgMHgKCgkvLyAqaWYwX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzXEhlbGxvWktQLmFsZ28udHM6MzgKCS8vIG9wZXJhdGlvbiA9PT0gJ3N1bScKCWZyYW1lX2RpZyAtMyAvLyBvcGVyYXRpb246IHN0cmluZwoJcHVzaGJ5dGVzIDB4NzM3NTZkIC8vICJzdW0iCgk9PQoJYnogKmlmMF9lbHNlaWYxX2NvbmRpdGlvbgoKCS8vICppZjBfY29uc2VxdWVudAoJLy8gY29udHJhY3RzXEhlbGxvWktQLmFsZ28udHM6MzkKCS8vIHJlc3VsdCA9IHRoaXMuZ2V0U3VtKGEsIGIpCglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CgljYWxsc3ViIGdldFN1bQoJZnJhbWVfYnVyeSAwIC8vIHJlc3VsdDogdWludDY0CgliICppZjBfZW5kCgoqaWYwX2Vsc2VpZjFfY29uZGl0aW9uOgoJLy8gY29udHJhY3RzXEhlbGxvWktQLmFsZ28udHM6NDAKCS8vIG9wZXJhdGlvbiA9PT0gJ2RpZmZlcmVuY2UnCglmcmFtZV9kaWcgLTMgLy8gb3BlcmF0aW9uOiBzdHJpbmcKCXB1c2hieXRlcyAweDY0Njk2NjY2NjU3MjY1NmU2MzY1IC8vICJkaWZmZXJlbmNlIgoJPT0KCWJ6ICppZjBfZWxzZQoKCS8vICppZjBfZWxzZWlmMV9jb25zZXF1ZW50CgkvLyBjb250cmFjdHNcSGVsbG9aS1AuYWxnby50czo0MQoJLy8gcmVzdWx0ID0gdGhpcy5nZXREaWZmZXJlbmNlKGEsIGIpCglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CgljYWxsc3ViIGdldERpZmZlcmVuY2UKCWZyYW1lX2J1cnkgMCAvLyByZXN1bHQ6IHVpbnQ2NAoJYiAqaWYwX2VuZAoKKmlmMF9lbHNlOgoJLy8gSW52YWxpZCBvcGVyYXRpb24KCWVycgoKKmlmMF9lbmQ6CgkvLyBjb250cmFjdHNcSGVsbG9aS1AuYWxnby50czo0NAoJLy8gcmV0dXJuIHJlc3VsdDsKCWZyYW1lX2RpZyAwIC8vIHJlc3VsdDogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIGhlbGxvKHN0cmluZylzdHJpbmcKKmFiaV9yb3V0ZV9oZWxsbzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZWMgMCAvLyAweDE1MWY3Yzc1CgoJLy8gbmFtZTogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgaGVsbG8oc3RyaW5nKXN0cmluZwoJY2FsbHN1YiBoZWxsbwoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnRjIDAgLy8gMQoJcmV0dXJuCgovLyBoZWxsbyhuYW1lOiBzdHJpbmcpOiBzdHJpbmcKLy8KLy8gQSBkZW1vbnN0cmF0aW9uIG1ldGhvZCB1c2VkIGluIHRoZSBBbGdvS2l0IGZ1bGxzdGFjayB0ZW1wbGF0ZS4KLy8gR3JlZXRzIHRoZSB1c2VyIGJ5IG5hbWUuCi8vCi8vIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSB1c2VyIHRvIGdyZWV0LgovLyBAcmV0dXJucyBBIGdyZWV0aW5nIG1lc3NhZ2UgdG8gdGhlIHVzZXIuCmhlbGxvOgoJcHJvdG8gMSAxCgoJLy8gY29udHJhY3RzXEhlbGxvWktQLmFsZ28udHM6NTUKCS8vIHJldHVybiAnSGVsbG8sICcgKyBuYW1lOwoJcHVzaGJ5dGVzIDB4NDg2NTZjNmM2ZjJjMjAgLy8gIkhlbGxvLCAiCglmcmFtZV9kaWcgLTEgLy8gbmFtZTogc3RyaW5nCgljb25jYXQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludGMgMCAvLyAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHg3NmE3ZWYzMyAvLyBtZXRob2QgImRvTWF0aCh1aW50NjQsdWludDY0LHN0cmluZyl1aW50NjQiCglwdXNoYnl0ZXMgMHgwMmJlY2UxMSAvLyBtZXRob2QgImhlbGxvKHN0cmluZylzdHJpbmciCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2RvTWF0aCAqYWJpX3JvdXRlX2hlbGxvCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { "approval": "CiABASYBBBUffHUxGBSBBgsxGQiNDACwAAAAAAAAAAAAAACiAAAAAAAAAAAAAACKAgGL/4v+CImKAgGL/4v+D0EACIv/i/4JQgAFi/6L/wmJKDYaA1cCADYaAhc2GgEXiAAFFlCwIkOKAwGAAIv9gANzdW0SQQAMi/6L/4j/sIwAQgAfi/2ACmRpZmZlcmVuY2USQQAMi/6L/4j/m4wAQgABAIsAjACJKDYaAVcCAIgADEkVFlcGAkxQULAiQ4oBAYAHSGVsbG8sIIv/UIkiQ4AEuER7NjYaAI4B//EAgAR2p+8zgAQCvs4RNhoAjgL/Xv+1AA==", "clear": "Cg==" }, "compilerInfo": { "compiler": "algod", "compilerVersion": { "major": 4, "minor": 0, "patch": 2, "commitHash": "6b940281" } } }