tx · BPpyTiihRJGirnQXmY4GXjYhDFwGRLCajWNZJYiPUiMR

3NAPSMfbcrmXuEPgbH2XT6C5VEpYvo6pWYB:  -0.02200000 Waves

2023.03.14 10:07 [2489385] smart account 3NAPSMfbcrmXuEPgbH2XT6C5VEpYvo6pWYB > SELF 0.00000000 Waves

{ "type": 13, "id": "BPpyTiihRJGirnQXmY4GXjYhDFwGRLCajWNZJYiPUiMR", "fee": 2200000, "feeAssetId": null, "timestamp": 1678777672614, "version": 2, "chainId": 84, "sender": "3NAPSMfbcrmXuEPgbH2XT6C5VEpYvo6pWYB", "senderPublicKey": "3rNRpu3MBpb6rHrNeYq8HPF7Dgxu5tKH3JLhwu4oMX6E", "proofs": [ "4Z89WtZ7rppRtCiDvPiG1Pctb1H6CJ1tJCHgAyGLzN7snoLtinJTPhiWrEqvxjon774dNXi4zv2VmRZ6YmxBSs3X" ], "script": "base64:BgJJCAISBAoCCAESABIDCgEBEgASABIAEgMKAQgSAwoBCBIDCgEIEgUKAwEBARIFCgMBAQESABIDCgEIEgcKBQgICAgIEgMKAQgSAE8AA1NFUAICX18ABVNDQUxFAOgHAAVNVUxUOACAwtcvAAp6ZXJvQmlnSW50CQC2AgEAAAAUcHJvY2Vzc2luZ1N0YWdlVG90YWwAAAAVcHJvY2Vzc2luZ1N0YWdlU2hhcmVzAAEBDmdldE51bWJlckJ5S2V5AQNrZXkJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUDa2V5AAABD2dldE51bWJlck9yRmFpbAEDa2V5CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUEdGhpcwUDa2V5CQCsAgIJAKwCAgIPbWFuZGF0b3J5IHRoaXMuBQNrZXkCDyBpcyBub3QgZGVmaW5lZAEOZ2V0U3RyaW5nQnlLZXkBA2tleQkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzBQNrZXkCAAEPZ2V0U3RyaW5nT3JGYWlsAQNrZXkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQR0aGlzBQNrZXkJAKwCAgkArAICAg9tYW5kYXRvcnkgdGhpcy4FA2tleQIPIGlzIG5vdCBkZWZpbmVkAQNhYnMBA3ZhbAMJAGYCAAAFA3ZhbAkBAS0BBQN2YWwFA3ZhbAEJYWJzQmlnSW50AQN2YWwDCQC/AgIFCnplcm9CaWdJbnQFA3ZhbAkAvgIBBQN2YWwFA3ZhbAALa2V5TWF4RGVwdGgCDCVzX19tYXhEZXB0aAAPbWF4RGVwdGhEZWZhdWx0AB4ACG1heERlcHRoCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFC2tleU1heERlcHRoBQ9tYXhEZXB0aERlZmF1bHQBEWtleUZhY3RvcnlBZGRyZXNzAAIcJXMlc19fY29uZmlnX19mYWN0b3J5QWRkcmVzcwARZmFjdG9yeUFkZHJlc3NTdHIJAQ9nZXRTdHJpbmdPckZhaWwBCQERa2V5RmFjdG9yeUFkZHJlc3MAAA9mYWN0b3J5Q29udHJhY3QJARFAZXh0ck5hdGl2ZSgxMDYyKQEFEWZhY3RvcnlBZGRyZXNzU3RyARJrZXlFbWlzc2lvbkFkZHJlc3MAAh0lcyVzX19jb25maWdfX2VtaXNzaW9uQWRkcmVzcwETa2V5TnVtVG9Vc2VyTWFwcGluZwEDbnVtCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICB21hcHBpbmcJAMwIAgIIbnVtMnVzZXIJAMwIAgkApAMBBQNudW0FA25pbAUDU0VQABZrZXlSZWZlcnJhbFByb2dyYW1OYW1lCQC5CQIJAMwIAgIEJXMlcwkAzAgCAghyZWZlcnJhbAkAzAgCAgtwcm9ncmFtTmFtZQUDbmlsBQNTRVAAGnJlZmVycmFsUHJvZ3JhbU5hbWVEZWZhdWx0AgZ3eGxvY2sAE3JlZmVycmFsUHJvZ3JhbU5hbWUJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUWa2V5UmVmZXJyYWxQcm9ncmFtTmFtZQUacmVmZXJyYWxQcm9ncmFtTmFtZURlZmF1bHQAF2tleVJlZmVycmFsTWluR1d4QW1vdW50CQC5CQIJAMwIAgIEJXMlcwkAzAgCAghyZWZlcnJhbAkAzAgCAgxtaW5HV3hBbW91bnQFA25pbAUDU0VQABtyZWZlcnJhbE1pbkdXeEFtb3VudERlZmF1bHQJAGgCAPQDBQVNVUxUOAAUcmVmZXJyYWxNaW5HV3hBbW91bnQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUXa2V5UmVmZXJyYWxNaW5HV3hBbW91bnQFG3JlZmVycmFsTWluR1d4QW1vdW50RGVmYXVsdAAZa2V5UmVmZXJyZXJSZXdhcmRQZXJtaWxsZQkAuQkCCQDMCAICBCVzJXMJAMwIAgIIcmVmZXJyYWwJAMwIAgIWcmVmZXJyZXJSZXdhcmRQZXJtaWxsZQUDbmlsBQNTRVAAHXJlZmVycmVyUmV3YXJkUGVybWlsbGVEZWZhdWx0ADIAFnJlZmVycmVyUmV3YXJkUGVybWlsbGUJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUZa2V5UmVmZXJyZXJSZXdhcmRQZXJtaWxsZQUdcmVmZXJyZXJSZXdhcmRQZXJtaWxsZURlZmF1bHQAGWtleVJlZmVycmFsUmV3YXJkUGVybWlsbGUJALkJAgkAzAgCAgQlcyVzCQDMCAICCHJlZmVycmFsCQDMCAICFnJlZmVycmFsUmV3YXJkUGVybWlsbGUFA25pbAUDU0VQAB1yZWZlcnJhbFJld2FyZFBlcm1pbGxlRGVmYXVsdAAyABZyZWZlcnJhbFJld2FyZFBlcm1pbGxlCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFGWtleVJlZmVycmFsUmV3YXJkUGVybWlsbGUFHXJlZmVycmFsUmV3YXJkUGVybWlsbGVEZWZhdWx0AQtrZXlSZWZlcnJlcgEPcmVmZXJyYWxBZGRyZXNzCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICCHJlZmVycmVyCQDMCAIFE3JlZmVycmFsUHJvZ3JhbU5hbWUJAMwIAgUPcmVmZXJyYWxBZGRyZXNzBQNuaWwFA1NFUAEUa2V5VW5jbGFpbWVkUmVmZXJyYWwCC3Byb2dyYW1OYW1lDmNsYWltZXJBZGRyZXNzCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICEXVuY2xhaW1lZFJlZmVycmFsCQDMCAIFC3Byb2dyYW1OYW1lCQDMCAIFDmNsYWltZXJBZGRyZXNzBQNuaWwFA1NFUAASZW1pc3Npb25BZGRyZXNzU3RyCQEPZ2V0U3RyaW5nT3JGYWlsAQkBEmtleUVtaXNzaW9uQWRkcmVzcwAAEGVtaXNzaW9uQ29udHJhY3QJARFAZXh0ck5hdGl2ZSgxMDYyKQEFEmVtaXNzaW9uQWRkcmVzc1N0cgANSWR4Q2ZnQXNzZXRJZAABABZJZHhDZmdQYWNlbWFrZXJBZGRyZXNzAAIAFklkeENmZ0Jvb3N0aW5nQ29udHJhY3QAAwAOSWR4Q2ZnTWF4RGVwdGgABAEJa2V5Q29uZmlnAAIKJXNfX2NvbmZpZwEVcmVhZENvbmZpZ0FycmF5T3JGYWlsAAkAtQkCCQEPZ2V0U3RyaW5nT3JGYWlsAQkBCWtleUNvbmZpZwAFA1NFUAEMZm9ybWF0Q29uZmlnBAx3eEFzc2V0SWRTdHIabWF0Y2hlclBhY2VtYWtlckFkZHJlc3NTdHIaYm9vc3RpbmdDb250cmFjdEFkZHJlc3NTdHIIbWF4RGVwdGgJALkJAgkAzAgCAgglcyVzJXMlZAkAzAgCBQx3eEFzc2V0SWRTdHIJAMwIAgUabWF0Y2hlclBhY2VtYWtlckFkZHJlc3NTdHIJAMwIAgUaYm9vc3RpbmdDb250cmFjdEFkZHJlc3NTdHIJAMwIAgkApAMBBQhtYXhEZXB0aAUDbmlsBQNTRVABFmJvb3N0aW5nQ29udHJhY3RPckZhaWwABAhjZmdBcnJheQkBFXJlYWRDb25maWdBcnJheU9yRmFpbAAJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFCGNmZ0FycmF5BRZJZHhDZmdCb29zdGluZ0NvbnRyYWN0Aihib29zdGluZyBjb250cmFjdCBhZGRyZXNzIGlzIG5vdCBkZWZpbmVkAR9rZXlHd3hSZXdhcmRFbWlzc2lvblN0YXJ0SGVpZ2h0AAIoJXMlc19fZ3d4UmV3YXJkRW1pc3Npb25QYXJ0X19zdGFydEhlaWdodAENa2V5VXNlcnNDb3VudAACDyVzX19uZXh0VXNlck51bQEWa2V5UmF0ZVBlckJsb2NrQ3VycmVudAACGyVzJXNfX3JhdGVQZXJCbG9ja19fY3VycmVudAEUa2V5UG9vbFdlaWdodFZpcnR1YWwAAiAlcyVzX19wb29sV2VpZ2h0X19HV1h2aXJ0dWFsUE9PTAEUa2V5TmV4dFByb2Nlc3NlZFVzZXIAAhUlc19fbmV4dFByb2Nlc3NlZFVzZXIBD2tleUxhdGVzdFBlcmlvZAACECVzX19sYXRlc3RQZXJpb2QBDWtleU5leHRQZXJpb2QAAg4lc19fbmV4dFBlcmlvZAESa2V5UHJvY2Vzc2luZ1N0YWdlAAITJXNfX3Byb2Nlc3NpbmdTdGFnZQEWa2V5TmV4dFByb2Nlc3NlZFBlcmlvZAACFyVzX19uZXh0UHJvY2Vzc2VkUGVyaW9kARBrZXlVc2VyVW5jbGFpbWVkAQl1c2VySW5kZXgJALkJAgkAzAgCAgQlcyVkCQDMCAICDXVzZXJVbmNsYWltZWQJAMwIAgkApAMBBQl1c2VySW5kZXgFA25pbAUDU0VQARtrZXlOZXh0VW5sYWltZWRQZXJpb2RPZlVzZXIBCXVzZXJJbmRleAkAuQkCCQDMCAICFyVzJWRfX25leHRDbGFpbWVkUGVyaW9kCQDMCAIJAKQDAQUJdXNlckluZGV4BQNuaWwFA1NFUAEca2V5TGFzdFByb2Nlc3NlZFBlcmlvZE9mVXNlcgEJdXNlckluZGV4CQC5CQIJAMwIAgIZJXMlZF9fbGFzdFByb2Nlc3NlZFBlcmlvZAkAzAgCCQCkAwEFCXVzZXJJbmRleAUDbmlsBQNTRVABEmtleUhlaWdodEZvclBlcmlvZAEGcGVyaW9kCQC5CQIJAMwIAgIaJXMlZF9fc3RhcnRIZWlnaHRGb3JQZXJpb2QJAMwIAgkApAMBBQZwZXJpb2QFA25pbAUDU0VQAR1rZXlBdXhFbWlzc2lvblJld2FyZEZvclBlcmlvZAEGcGVyaW9kCQC5CQIJAMwIAgIXJXMlZF9fYXV4RW1pc3Npb25SZXdhcmQJAMwIAgkApAMBBQZwZXJpb2QFA25pbAUDU0VQARdrZXlUb3RhbEFtb3VudEZvclBlcmlvZAEGcGVyaW9kCQC5CQIJAMwIAgIaJXMlZF9fdG90YWxBbW91bnRGb3JQZXJpb2QJAMwIAgkApAMBBQZwZXJpb2QFA25pbAUDU0VQARFrZXlMYXN0UGF5b3V0SW5mbwACEiVzX19sYXN0UGF5b3V0SW5mbwEQUGVyaW9kUGF5b3V0SW5mbwMGcGVyaW9kDW1hdGNoZXJSZXdhcmQOZW1pc3Npb25SZXdhcmQJALkJAgkAzAgCAgYlZCVkJWQJAMwIAgkApAMBBQZwZXJpb2QJAMwIAgkApAMBBQ1tYXRjaGVyUmV3YXJkCQDMCAIJAKQDAQUOZW1pc3Npb25SZXdhcmQFA25pbAUDU0VQARRrZXlQYXlvdXRIaXN0b3J5SW5mbwEGcGVyaW9kCQC5CQIJAMwIAgIYJXMlcyVkX19wYXlvdXRzX19oaXN0b3J5CQDMCAIJAKQDAQUGcGVyaW9kBQNuaWwFA1NFUAEXa2V5VG90YWxXZWlnaHRGb3JQZXJpb2QBBnBlcmlvZAkAuQkCCQDMCAICGiVzJWRfX3RvdGFsV2VpZ2h0Rm9yUGVyaW9kCQDMCAIJAKQDAQUGcGVyaW9kBQNuaWwFA1NFUAEWa2V5VXNlcktWYWx1ZUZvclBlcmlvZAIGcGVyaW9kCXVzZXJJbmRleAkAuQkCCQDMCAICFyVzJWQlcyVkX19wYXJhbUJ5UGVyaW9kCQDMCAIJAKQDAQUJdXNlckluZGV4CQDMCAICAWsJAMwIAgkApAMBBQZwZXJpb2QFA25pbAUDU0VQARZrZXlVc2VyQlZhbHVlRm9yUGVyaW9kAgZwZXJpb2QJdXNlckluZGV4CQC5CQIJAMwIAgIXJXMlZCVzJWRfX3BhcmFtQnlQZXJpb2QJAMwIAgkApAMBBQl1c2VySW5kZXgJAMwIAgIBYgkAzAgCCQCkAwEFBnBlcmlvZAUDbmlsBQNTRVABFmtleVVzZXJXZWlnaHRGb3JQZXJpb2QCBnBlcmlvZAl1c2VySW5kZXgJALkJAgkAzAgCAhclcyVkJXMlZF9fcGFyYW1CeVBlcmlvZAkAzAgCCQCkAwEFCXVzZXJJbmRleAkAzAgCAgZ3ZWlnaHQJAMwIAgkApAMBBQZwZXJpb2QFA25pbAUDU0VQARtrZXlSZWZlcnJhbHNDb250cmFjdEFkZHJlc3MACQC5CQIJAMwIAgIEJXMlcwkAzAgCAgZjb25maWcJAMwIAgIYcmVmZXJyYWxzQ29udHJhY3RBZGRyZXNzBQNuaWwFA1NFUAAecmVmZXJyYWxzQ29udHJhY3RBZGRyZXNzT3JGYWlsCQERQGV4dHJOYXRpdmUoMTA2MikBCQEPZ2V0U3RyaW5nT3JGYWlsAQkBG2tleVJlZmVycmFsc0NvbnRyYWN0QWRkcmVzcwABDEhpc3RvcnlFbnRyeQQEdHlwZQR1c2VyBmFtb3VudAFpBApoaXN0b3J5S0VZCQC5CQIJAMwIAgIRJXMlcyVzJXNfX2hpc3RvcnkJAMwIAgUEdHlwZQkAzAgCBQR1c2VyCQDMCAIJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAUDbmlsBQNTRVAEC2hpc3RvcnlEQVRBCQC5CQIJAMwIAgIMJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQgFCWxhc3RCbG9jawZoZWlnaHQJAMwIAgkApAMBCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAzAgCCQCkAwEFBmFtb3VudAUDbmlsBQNTRVAJAQtTdHJpbmdFbnRyeQIFCmhpc3RvcnlLRVkFC2hpc3RvcnlEQVRBARNrZXlNYW5hZ2VyUHVibGljS2V5AAIUJXNfX21hbmFnZXJQdWJsaWNLZXkBGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAIbJXNfX3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5ARZtYW5hZ2VyUHVibGljS2V5T3JVbml0AAQHJG1hdGNoMAkAoggBCQETa2V5TWFuYWdlclB1YmxpY0tleQADCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQDZBAEFAXMDCQABAgUHJG1hdGNoMAIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAR1wZW5kaW5nTWFuYWdlclB1YmxpY0tleU9yVW5pdAAEByRtYXRjaDAJAKIIAQkBGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJANkEAQUBcwMJAAECBQckbWF0Y2gwAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IBC211c3RNYW5hZ2VyAQFpBAJwZAkAAgECEVBlcm1pc3Npb24gZGVuaWVkBAckbWF0Y2gwCQEWbWFuYWdlclB1YmxpY0tleU9yVW5pdAADCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQCcGsFByRtYXRjaDADCQAAAggFAWkPY2FsbGVyUHVibGljS2V5BQJwawYFAnBkAwkAAQIFByRtYXRjaDACBFVuaXQDCQAAAggFAWkGY2FsbGVyBQR0aGlzBgUCcGQJAAIBAgtNYXRjaCBlcnJvcgEOY2FsY1VzZXJXZWlnaHQEF2Jvb3N0aW5nQ29udHJhY3RBZGRyZXNzD2hlaWdodEZvclBlcmlvZAZwZXJpb2QJdXNlckluZGV4BAVrTGFzdAkBHGtleUxhc3RQcm9jZXNzZWRQZXJpb2RPZlVzZXIBBQl1c2VySW5kZXgEBGtLZXkJARZrZXlVc2VyS1ZhbHVlRm9yUGVyaW9kAgUGcGVyaW9kBQl1c2VySW5kZXgEBGtSYXcJAJoIAgUXYm9vc3RpbmdDb250cmFjdEFkZHJlc3MFBGtLZXkEC2tVc2VyV2VpZ2h0CQEWa2V5VXNlcldlaWdodEZvclBlcmlvZAIFBnBlcmlvZAUJdXNlckluZGV4AwkBCWlzRGVmaW5lZAEFBGtSYXcEAWsJAQV2YWx1ZQEFBGtSYXcEAWIJAQV2YWx1ZQEJAJoIAgUXYm9vc3RpbmdDb250cmFjdEFkZHJlc3MJARZrZXlVc2VyQlZhbHVlRm9yUGVyaW9kAgUGcGVyaW9kBQl1c2VySW5kZXgEAXcJAGQCCQBoAgUBawUPaGVpZ2h0Rm9yUGVyaW9kBQFiAwkAZgIFAXcAAAkAlAoCCQBpAgUBdwUFU0NBTEUJAMwIAgkBDEludGVnZXJFbnRyeQIFBWtMYXN0BQZwZXJpb2QJAMwIAgkBDEludGVnZXJFbnRyeQIFC2tVc2VyV2VpZ2h0BQF3BQNuaWwJAJQKAgAABQNuaWwEAXAJAJoIAgUEdGhpcwUFa0xhc3QDAwkBCWlzRGVmaW5lZAEFAXAJAGcCBQZwZXJpb2QJAQV2YWx1ZQEFAXAHBAJwdgkBBXZhbHVlAQUBcAQBawkBBXZhbHVlAQkAmggCBRdib29zdGluZ0NvbnRyYWN0QWRkcmVzcwkBFmtleVVzZXJLVmFsdWVGb3JQZXJpb2QCBQJwdgUJdXNlckluZGV4BAFiCQEFdmFsdWUBCQCaCAIFF2Jvb3N0aW5nQ29udHJhY3RBZGRyZXNzCQEWa2V5VXNlckJWYWx1ZUZvclBlcmlvZAIFAnB2BQl1c2VySW5kZXgEAXcJAGQCCQBoAgUBawUPaGVpZ2h0Rm9yUGVyaW9kBQFiAwkAZgIFAXcAAAkAlAoCCQBpAgUBdwUFU0NBTEUJAMwIAgkBDEludGVnZXJFbnRyeQIFC2tVc2VyV2VpZ2h0BQF3BQNuaWwJAJQKAgAABQNuaWwJAJQKAgAABQNuaWwBFmNhbGNVc2VyV2VpZ2h0Rm9yQ2xhaW0EF2Jvb3N0aW5nQ29udHJhY3RBZGRyZXNzD2hlaWdodEZvclBlcmlvZAZwZXJpb2QJdXNlckluZGV4BAtrVXNlcldlaWdodAkBFmtleVVzZXJXZWlnaHRGb3JQZXJpb2QCBQZwZXJpb2QFCXVzZXJJbmRleAQQdXNlcldlaWdodE9yVW5pdAkAnwgBBQtrVXNlcldlaWdodAQHJG1hdGNoMAUQdXNlcldlaWdodE9yVW5pdAMJAAECBQckbWF0Y2gwAgRVbml0AAADCQABAgUHJG1hdGNoMAIDSW50BAF3BQckbWF0Y2gwCQBpAgUBdwUFU0NBTEUJAAIBAgtNYXRjaCBlcnJvcgEVZ2V0VXNlckluZGV4QnlBZGRyZXNzAhpib29zdGluZ0NvbnRyYWN0QWRkcmVzc1N0cgt1c2VyQWRkcmVzcwQDa2V5CQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICB21hcHBpbmcJAMwIAgIIdXNlcjJudW0JAMwIAgULdXNlckFkZHJlc3MFA25pbAUDU0VQCQENcGFyc2VJbnRWYWx1ZQEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCCQEHQWRkcmVzcwEJANkEAQUaYm9vc3RpbmdDb250cmFjdEFkZHJlc3NTdHIFA2tleQkArAICCQCsAgIJAKwCAgINVXNlciBhZGRyZXNzIAULdXNlckFkZHJlc3MCLSBpcyBub3QgZm91bmQgaW4gYm9vc3RpbmcgY29udHJhY3QgZGF0YSwga2V5PQUDa2V5AQpuZXh0UGVyaW9kAAkBDmdldE51bWJlckJ5S2V5AQkBDWtleU5leHRQZXJpb2QAARFjb21tb25DbGFpbVJld2FyZAELdXNlckFkZHJlc3MECGNmZ0FycmF5CQEVcmVhZENvbmZpZ0FycmF5T3JGYWlsAAQHdXNlcklkeAkBFWdldFVzZXJJbmRleEJ5QWRkcmVzcwIJAJEDAgUIY2ZnQXJyYXkFFklkeENmZ0Jvb3N0aW5nQ29udHJhY3QFC3VzZXJBZGRyZXNzBBN1c2VyVW5jbGFpbWVkT3B0aW9uCQCfCAEJARBrZXlVc2VyVW5jbGFpbWVkAQUHdXNlcklkeAQHJG1hdGNoMAUTdXNlclVuY2xhaW1lZE9wdGlvbgMJAAECBQckbWF0Y2gwAgRVbml0CQCUCgIAAAUDbmlsAwkAAQIFByRtYXRjaDACA0ludAQBdQUHJG1hdGNoMAkAlAoCBQF1CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEQa2V5VXNlclVuY2xhaW1lZAEFB3VzZXJJZHgAAAUDbmlsCQACAQILTWF0Y2ggZXJyb3IQAWkBFnVwZGF0ZVJlZmVycmFsQWN0aXZpdHkCC3VzZXJBZGRyZXNzDmdXeEFtb3VudFN0YXJ0BAhyZWZlcnJlcgkAnQgCBR5yZWZlcnJhbHNDb250cmFjdEFkZHJlc3NPckZhaWwJAQtrZXlSZWZlcnJlcgEFC3VzZXJBZGRyZXNzBBFhY3RpdmVSZWZlcnJhbEludgMJAAACBQhyZWZlcnJlcgUEdW5pdAUEdW5pdAkA/AcEBR5yZWZlcnJhbHNDb250cmFjdEFkZHJlc3NPckZhaWwCFnVwZGF0ZVJlZmVycmFsQWN0aXZpdHkJAMwIAgUTcmVmZXJyYWxQcm9ncmFtTmFtZQkAzAgCBQt1c2VyQWRkcmVzcwkAzAgCCQBnAgUOZ1d4QW1vdW50U3RhcnQFFHJlZmVycmFsTWluR1d4QW1vdW50BQNuaWwFA25pbAMJAAACBRFhY3RpdmVSZWZlcnJhbEludgURYWN0aXZlUmVmZXJyYWxJbnYJAJQKAgUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBDmZpbmFsaXplSGVscGVyAAQPcHJvY2Vzc2luZ1N0YWdlCQELdmFsdWVPckVsc2UCCQCfCAEJARJrZXlQcm9jZXNzaW5nU3RhZ2UABRRwcm9jZXNzaW5nU3RhZ2VUb3RhbAQNY3VycmVudFBlcmlvZAkBDmdldE51bWJlckJ5S2V5AQkBFmtleU5leHRQcm9jZXNzZWRQZXJpb2QABAtjdXJyZW50VXNlcgkBDmdldE51bWJlckJ5S2V5AQkBFGtleU5leHRQcm9jZXNzZWRVc2VyAAQMbGF0ZXN0UGVyaW9kCQEOZ2V0TnVtYmVyQnlLZXkBCQEPa2V5TGF0ZXN0UGVyaW9kAAQKdXNlcnNDb3VudAkBC3ZhbHVlT3JFbHNlAgkAmggCCQEWYm9vc3RpbmdDb250cmFjdE9yRmFpbAAJAQ1rZXlVc2Vyc0NvdW50AAAABA50b3RhbFdlaWdodEtleQkBF2tleVRvdGFsV2VpZ2h0Rm9yUGVyaW9kAQUNY3VycmVudFBlcmlvZAQLdG90YWxXZWlnaHQJAQ5nZXROdW1iZXJCeUtleQEJARdrZXlUb3RhbFdlaWdodEZvclBlcmlvZAEFDWN1cnJlbnRQZXJpb2QED2hlaWdodEZvclBlcmlvZAkBDmdldE51bWJlckJ5S2V5AQkBEmtleUhlaWdodEZvclBlcmlvZAEFDWN1cnJlbnRQZXJpb2QDCQBmAgUNY3VycmVudFBlcmlvZAUMbGF0ZXN0UGVyaW9kCQCUCgIFA25pbAcDCQAAAgUPcHJvY2Vzc2luZ1N0YWdlBRRwcm9jZXNzaW5nU3RhZ2VUb3RhbAQNJHQwMTIwODIxMjE5OAkBDmNhbGNVc2VyV2VpZ2h0BAkBFmJvb3N0aW5nQ29udHJhY3RPckZhaWwABQ9oZWlnaHRGb3JQZXJpb2QFDWN1cnJlbnRQZXJpb2QFC2N1cnJlbnRVc2VyBAp1c2VyV2VpZ2h0CAUNJHQwMTIwODIxMjE5OAJfMQQLdXNlckFjdGlvbnMIBQ0kdDAxMjA4MjEyMTk4Al8yBA50b3RhbFdlaWdodE5ldwkAZAIFC3RvdGFsV2VpZ2h0BQp1c2VyV2VpZ2h0BBFwcm9jZXNzaW5nQWN0aW9ucwMJAGYCCQBlAgUKdXNlcnNDb3VudAABBQtjdXJyZW50VXNlcgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFGtleU5leHRQcm9jZXNzZWRVc2VyAAkAZAIFC2N1cnJlbnRVc2VyAAEFA25pbAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBEmtleVByb2Nlc3NpbmdTdGFnZQAFFXByb2Nlc3NpbmdTdGFnZVNoYXJlcwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFGtleU5leHRQcm9jZXNzZWRVc2VyAAAABQNuaWwJAJQKAgkAzggCCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIFDnRvdGFsV2VpZ2h0S2V5BQ50b3RhbFdlaWdodE5ldwUDbmlsBRFwcm9jZXNzaW5nQWN0aW9ucwULdXNlckFjdGlvbnMGAwkAAAIFD3Byb2Nlc3NpbmdTdGFnZQUVcHJvY2Vzc2luZ1N0YWdlU2hhcmVzBAp1c2VyV2VpZ2h0CQEWY2FsY1VzZXJXZWlnaHRGb3JDbGFpbQQJARZib29zdGluZ0NvbnRyYWN0T3JGYWlsAAUPaGVpZ2h0Rm9yUGVyaW9kBQ1jdXJyZW50UGVyaW9kBQtjdXJyZW50VXNlcgQadXNlckFtb3VudE1hdGNoZXJGb3JQZXJpb2QJAGsDCQEOZ2V0TnVtYmVyQnlLZXkBCQEXa2V5VG90YWxBbW91bnRGb3JQZXJpb2QBBQ1jdXJyZW50UGVyaW9kBQp1c2VyV2VpZ2h0BQt0b3RhbFdlaWdodAQbdXNlckFtb3VudEVtaXNzaW9uRm9yUGVyaW9kCQBrAwkBDmdldE51bWJlckJ5S2V5AQkBHWtleUF1eEVtaXNzaW9uUmV3YXJkRm9yUGVyaW9kAQUNY3VycmVudFBlcmlvZAUKdXNlcldlaWdodAULdG90YWxXZWlnaHQED3VzZXJUb3RhbEFtb3VudAkAZAIFG3VzZXJBbW91bnRFbWlzc2lvbkZvclBlcmlvZAUadXNlckFtb3VudE1hdGNoZXJGb3JQZXJpb2QEE3VzZXJVbmNsYWltZWRPcHRpb24JAJ8IAQkBEGtleVVzZXJVbmNsYWltZWQBBQtjdXJyZW50VXNlcgQLdXNlckFkZHJlc3MJARFAZXh0ck5hdGl2ZSgxMDUzKQIJARZib29zdGluZ0NvbnRyYWN0T3JGYWlsAAkBE2tleU51bVRvVXNlck1hcHBpbmcBBQtjdXJyZW50VXNlcgQIcmVmZXJyZXIJAJ0IAgUecmVmZXJyYWxzQ29udHJhY3RBZGRyZXNzT3JGYWlsCQELa2V5UmVmZXJyZXIBBQt1c2VyQWRkcmVzcwQRYWN0aXZlUmVmZXJyYWxJbnYDCQAAAgUIcmVmZXJyZXIFBHVuaXQFBHVuaXQJAPwHBAUecmVmZXJyYWxzQ29udHJhY3RBZGRyZXNzT3JGYWlsAhZ1cGRhdGVSZWZlcnJhbEFjdGl2aXR5CQDMCAIFE3JlZmVycmFsUHJvZ3JhbU5hbWUJAMwIAgULdXNlckFkZHJlc3MJAMwIAgkAZwIFCnVzZXJXZWlnaHQFFHJlZmVycmFsTWluR1d4QW1vdW50BQNuaWwFA25pbAMJAAACBRFhY3RpdmVSZWZlcnJhbEludgURYWN0aXZlUmVmZXJyYWxJbnYEC3JlZmVycmFsSW52AwMJAAACBQhyZWZlcnJlcgUEdW5pdAYJAGYCBRRyZWZlcnJhbE1pbkdXeEFtb3VudAUKdXNlcldlaWdodAUEdW5pdAQOcmVmZXJyZXJSZXdhcmQJAGsDBQ91c2VyVG90YWxBbW91bnQFFnJlZmVycmVyUmV3YXJkUGVybWlsbGUFBVNDQUxFBA5yZWZlcnJhbFJld2FyZAkAawMFD3VzZXJUb3RhbEFtb3VudAUWcmVmZXJyYWxSZXdhcmRQZXJtaWxsZQUFU0NBTEUJAPwHBAUecmVmZXJyYWxzQ29udHJhY3RBZGRyZXNzT3JGYWlsAgxpbmNVbmNsYWltZWQJAMwIAgUTcmVmZXJyYWxQcm9ncmFtTmFtZQkAzAgCBQt1c2VyQWRkcmVzcwkAzAgCBQ5yZWZlcnJlclJld2FyZAkAzAgCBQ5yZWZlcnJhbFJld2FyZAUDbmlsBQNuaWwDCQAAAgULcmVmZXJyYWxJbnYFC3JlZmVycmFsSW52BBB1bmNsYWltZWRBY3Rpb25zCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEQa2V5VXNlclVuY2xhaW1lZAEFC2N1cnJlbnRVc2VyCQBkAgkBC3ZhbHVlT3JFbHNlAgUTdXNlclVuY2xhaW1lZE9wdGlvbgAABQ91c2VyVG90YWxBbW91bnQFA25pbAQRcHJvY2Vzc2luZ0FjdGlvbnMDCQBmAgkAZQIFCnVzZXJzQ291bnQAAQULY3VycmVudFVzZXIJAMwIAgkBDEludGVnZXJFbnRyeQIJARRrZXlOZXh0UHJvY2Vzc2VkVXNlcgAJAGQCBQtjdXJyZW50VXNlcgABBQNuaWwJAMwIAgkBDEludGVnZXJFbnRyeQIJARZrZXlOZXh0UHJvY2Vzc2VkUGVyaW9kAAkAZAIFDWN1cnJlbnRQZXJpb2QAAQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFGtleU5leHRQcm9jZXNzZWRVc2VyAAAACQDMCAIJAQtEZWxldGVFbnRyeQEJARJrZXlQcm9jZXNzaW5nU3RhZ2UABQNuaWwJAJQKAgkAzggCBRB1bmNsYWltZWRBY3Rpb25zBRFwcm9jZXNzaW5nQWN0aW9ucwYJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAhhpbnZhbGlkIHByb2Nlc3Npbmcgc3RhZ2UBaQEPZmluYWxpemVXcmFwcGVyAQdjb3VudGVyBAZyZXN1bHQKAAFACQD8BwQFBHRoaXMCDmZpbmFsaXplSGVscGVyBQNuaWwFA25pbAMJAAECBQFAAgdCb29sZWFuBQFACQACAQkArAICCQADAQUBQAIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgMJAAACBQZyZXN1bHQFBnJlc3VsdAMJAQEhAQUGcmVzdWx0AwkAAAIFB2NvdW50ZXIFCG1heERlcHRoCQACAQISTm90aGluZyB0byBwcm9jZXNzCQCUCgIFA25pbAUEdW5pdAMJAGYCBQdjb3VudGVyAAAJAJQKAgUDbmlsCQD8BwQFBHRoaXMCD2ZpbmFsaXplV3JhcHBlcgkAzAgCCQBlAgUHY291bnRlcgABBQNuaWwFA25pbAkAlAoCBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEdcHJvY2Vzc1BlbmRpbmdQZXJpb2RzQW5kVXNlcnMACQCUCgIFA25pbAkA/AcEBQR0aGlzAg9maW5hbGl6ZVdyYXBwZXIJAMwIAgUIbWF4RGVwdGgFA25pbAUDbmlsAWkBB2RlcG9zaXQABAhjZmdBcnJheQkBFXJlYWRDb25maWdBcnJheU9yRmFpbAADCQECIT0CCAUBaQZjYWxsZXIJAQdBZGRyZXNzAQkA2QQBCQCRAwIFCGNmZ0FycmF5BRZJZHhDZmdQYWNlbWFrZXJBZGRyZXNzCQACAQIUV3JvbmcgY2FsbGVyIGFkZHJlc3MEB2Fzc2V0SWQJAQV2YWx1ZQEICQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAMJAQIhPQIFB2Fzc2V0SWQJANkEAQkAkQMCBQhjZmdBcnJheQUNSWR4Q2ZnQXNzZXRJZAkAAgECE1dyb25nIHBheW1lbnQgYXNzZXQEBnBlcmlvZAkBCm5leHRQZXJpb2QABAZkZWx0YUgJAGUCBQZoZWlnaHQJAQ9nZXROdW1iZXJPckZhaWwBCQEfa2V5R3d4UmV3YXJkRW1pc3Npb25TdGFydEhlaWdodAAEDGVtaXNzaW9uUmF0ZQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFEGVtaXNzaW9uQ29udHJhY3QJARZrZXlSYXRlUGVyQmxvY2tDdXJyZW50AAkArAICCQCsAgICHG1hbmRhdG9yeSBlbWlzc2lvbl9jb250cmFjdC4JARZrZXlSYXRlUGVyQmxvY2tDdXJyZW50AAIPIGlzIG5vdCBkZWZpbmVkBAZ3ZWlnaHQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQ9mYWN0b3J5Q29udHJhY3QJARRrZXlQb29sV2VpZ2h0VmlydHVhbAAJAKwCAgkArAICAhttYW5kYXRvcnkgZmFjdG9yeV9jb250cmFjdC4JARRrZXlQb29sV2VpZ2h0VmlydHVhbAACDyBpcyBub3QgZGVmaW5lZAQJYXV4QW1vdW50CQBrAwkAaAIFBmRlbHRhSAUGd2VpZ2h0BQxlbWlzc2lvblJhdGUFBU1VTFQ4BAJlbQkA/AcEBRBlbWlzc2lvbkNvbnRyYWN0AgRlbWl0CQDMCAIFCWF1eEFtb3VudAUDbmlsBQNuaWwDCQAAAgUCZW0FAmVtBAttYXRjaGVyUGFydAgJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQECnBheW91dEluZm8JARBQZXJpb2RQYXlvdXRJbmZvAwUGcGVyaW9kBQttYXRjaGVyUGFydAUJYXV4QW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEPa2V5TGF0ZXN0UGVyaW9kAAUGcGVyaW9kCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQESa2V5SGVpZ2h0Rm9yUGVyaW9kAQUGcGVyaW9kBQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIJAR1rZXlBdXhFbWlzc2lvblJld2FyZEZvclBlcmlvZAEFBnBlcmlvZAUJYXV4QW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEfa2V5R3d4UmV3YXJkRW1pc3Npb25TdGFydEhlaWdodAAFBmhlaWdodAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBF2tleVRvdGFsQW1vdW50Rm9yUGVyaW9kAQUGcGVyaW9kBQttYXRjaGVyUGFydAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDWtleU5leHRQZXJpb2QACQBkAgUGcGVyaW9kAAEJAMwIAgkBC1N0cmluZ0VudHJ5AgkBEWtleUxhc3RQYXlvdXRJbmZvAAUKcGF5b3V0SW5mbwkAzAgCCQELU3RyaW5nRW50cnkCCQEUa2V5UGF5b3V0SGlzdG9yeUluZm8BBQZwZXJpb2QFCnBheW91dEluZm8FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQtjbGFpbVJld2FyZAAECGNmZ0FycmF5CQEVcmVhZENvbmZpZ0FycmF5T3JGYWlsAAQHYWRkcmVzcwkApQgBCAUBaQZjYWxsZXIEDSR0MDE3NTQwMTc1OTAJARFjb21tb25DbGFpbVJld2FyZAEFB2FkZHJlc3MEBmFtb3VudAgFDSR0MDE3NTQwMTc1OTACXzEEB2FjdGlvbnMIBQ0kdDAxNzU0MDE3NTkwAl8yBAtjaGVja0Ftb3VudAMJAGYCBQZhbW91bnQAAAYJAAIBAhBOb3RoaW5nIHRvIGNsYWltAwkAAAIFC2NoZWNrQW1vdW50BQtjaGVja0Ftb3VudAQSYW1vdW50RnJvbUVtaXNzaW9uAAAED2NsYWltZWRSZWZlcnJhbAoAAUAJAPwHBAUecmVmZXJyYWxzQ29udHJhY3RBZGRyZXNzT3JGYWlsAgVjbGFpbQkAzAgCBRNyZWZlcnJhbFByb2dyYW1OYW1lBQNuaWwFA25pbAMJAAECBQFAAgNJbnQFAUAJAAIBCQCsAgIJAAMBBQFAAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQEC3RvdGFsQW1vdW50CQBkAgUGYW1vdW50BQ9jbGFpbWVkUmVmZXJyYWwJAJQKAgkAzggCCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgULdG90YWxBbW91bnQJANkEAQkAkQMCBQhjZmdBcnJheQUNSWR4Q2ZnQXNzZXRJZAkAzAgCCQEMSGlzdG9yeUVudHJ5BAIFY2xhaW0FB2FkZHJlc3MFBmFtb3VudAUBaQUDbmlsBQdhY3Rpb25zCQDMCAIFC3RvdGFsQW1vdW50CQDMCAIFEmFtb3VudEZyb21FbWlzc2lvbgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBE2NsYWltUmV3YXJkUkVBRE9OTFkBB2FkZHJlc3MEDSR0MDE4MTYzMTgyMTMJARFjb21tb25DbGFpbVJld2FyZAEFB2FkZHJlc3MEBmFtb3VudAgFDSR0MDE4MTYzMTgyMTMCXzEEB2FjdGlvbnMIBQ0kdDAxODE2MzE4MjEzAl8yBBFyZWZlcnJhbFVuY2xhaW1lZAkBC3ZhbHVlT3JFbHNlAgkAmggCBR5yZWZlcnJhbHNDb250cmFjdEFkZHJlc3NPckZhaWwJARRrZXlVbmNsYWltZWRSZWZlcnJhbAIFE3JlZmVycmFsUHJvZ3JhbU5hbWUFB2FkZHJlc3MAAAQLdG90YWxBbW91bnQJAGQCBQZhbW91bnQFEXJlZmVycmFsVW5jbGFpbWVkCQCUCgIFA25pbAULdG90YWxBbW91bnQBaQEdbGF0ZXN0RmluYWxpemVkUGVyaW9kUkVBRE9OTFkBB2FkZHJlc3MJAJQKAgUDbmlsCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQ9rZXlMYXRlc3RQZXJpb2QAAP///////////wEBaQEhbGF0ZXN0RmluYWxpemVkUGVyaW9kSW5mb1JFQURPTkxZAQdhZGRyZXNzCQCUCgIFA25pbAkBDmdldFN0cmluZ0J5S2V5AQkBEWtleUxhc3RQYXlvdXRJbmZvAAFpARVjYWxjR3d4UGFyYW1zUkVBRE9OTFkDDmd3eEFtb3VudFN0YXJ0D2xvY2tTdGFydEhlaWdodBJsb2NrRHVyYXRpb25CbG9ja3MEDWxvY2tFbmRIZWlnaHQJAGQCBQ9sb2NrU3RhcnRIZWlnaHQFEmxvY2tEdXJhdGlvbkJsb2NrcwQMc2NhbGU4UGFyYW1LCQEBLQEJAGsDBQ5nd3hBbW91bnRTdGFydAUFU0NBTEUFEmxvY2tEdXJhdGlvbkJsb2NrcwQMc2NhbGU4UGFyYW1CCQBoAgkAawMFDmd3eEFtb3VudFN0YXJ0BQVTQ0FMRQUSbG9ja0R1cmF0aW9uQmxvY2tzBQ1sb2NrRW5kSGVpZ2h0CQCUCgIFA25pbAkAzAgCBQxzY2FsZThQYXJhbUsJAMwIAgUMc2NhbGU4UGFyYW1CCQDMCAIJAQpuZXh0UGVyaW9kAAUDbmlsAWkBGmNhbGNHd3hBbW91bnRTdGFydFJFQURPTkxZAwx3eExvY2tBbW91bnQMbG9ja0R1cmF0aW9uD21heExvY2tEdXJhdGlvbgQHY29lZmZYOAkAawMFDGxvY2tEdXJhdGlvbgUFTVVMVDgFD21heExvY2tEdXJhdGlvbgQOZ1d4QW1vdW50U3RhcnQJAGsDBQx3eExvY2tBbW91bnQFB2NvZWZmWDgFBU1VTFQ4CQCUCgIFA25pbAkAzAgCBQ5nV3hBbW91bnRTdGFydAUDbmlsAWkBFW9uRW1pc3Npb25Gb3JHd3hTdGFydAADCQECIT0CCAUBaQZjYWxsZXIFD2ZhY3RvcnlDb250cmFjdAkAAgECEnBlcm1pc3Npb25zIGRlbmllZAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBH2tleUd3eFJld2FyZEVtaXNzaW9uU3RhcnRIZWlnaHQABQZoZWlnaHQFA25pbAFpASNsYXRlc3RQZXJpb2RFbWlzc2lvblJld2FyZHNSRUFET05MWQEHYWRkcmVzcwQGcGVyaW9kCQEKbmV4dFBlcmlvZAAJAJQKAgUDbmlsCQDMCAIJAQ5nZXROdW1iZXJCeUtleQEJAR1rZXlBdXhFbWlzc2lvblJld2FyZEZvclBlcmlvZAEFBnBlcmlvZAUDbmlsAWkBBWNhbGNEBQt4MUJpZ0ludFN0cgt4MkJpZ0ludFN0cgxhbXBCaWdJbnRTdHITYVByZWNpc2lvbkJpZ0ludFN0chh0YXJnZXRQcmVjaXNpb25CaWdJbnRTdHIEBm5Db2lucwkAtgIBAAIECmFQcmVjaXNpb24JAKcDAQUTYVByZWNpc2lvbkJpZ0ludFN0cgQPdGFyZ2V0UHJlY2lzaW9uCQCnAwEFGHRhcmdldFByZWNpc2lvbkJpZ0ludFN0cgQCeDEJAKcDAQULeDFCaWdJbnRTdHIEAngyCQCnAwEFC3gyQmlnSW50U3RyBANhbXAJALkCAgkApwMBBQxhbXBCaWdJbnRTdHIFCmFQcmVjaXNpb24EAXMJALcCAgUCeDEFAngyAwkAAAIFAXMFCnplcm9CaWdJbnQJAJQKAgUDbmlsCQCmAwEFCnplcm9CaWdJbnQEA2FubgkAuQICBQNhbXAFBm5Db2lucwQDYXJyCQDMCAIAAAkAzAgCAAEJAMwIAgACCQDMCAIAAwkAzAgCAAQJAMwIAgAFCQDMCAIABgUDbmlsCgEEY2FsYwIDYWNjA2N1cgQNJHQwMjA4NDYyMDg3MwUDYWNjBAFkCAUNJHQwMjA4NDYyMDg3MwJfMQQFZFByZXYIBQ0kdDAyMDg0NjIwODczAl8yBAVmb3VuZAgFDSR0MDIwODQ2MjA4NzMCXzMDCQECIT0CBQVmb3VuZAUEdW5pdAUDYWNjBAJkcAkAugICCQC5AgIJALkCAgUBZAUBZAUBZAkAuQICCQC5AgIJALkCAgUCeDEFAngyBQZuQ29pbnMFBm5Db2lucwQFZE5leHQJALoCAgkAuQICCQC3AgIJALoCAgkAuQICBQNhbm4FAXMFCmFQcmVjaXNpb24JALkCAgUCZHAFBm5Db2lucwUBZAkAtwICCQC6AgIJALkCAgkAuAICBQNhbm4FCmFQcmVjaXNpb24FAWQFCmFQcmVjaXNpb24JALkCAgkAtwICBQZuQ29pbnMJALYCAQABBQJkcAQFZERpZmYJAQlhYnNCaWdJbnQBCQC4AgIFBWROZXh0CQEFdmFsdWUBBQFkAwkAwAICBQ90YXJnZXRQcmVjaXNpb24FBWREaWZmCQCVCgMFBWROZXh0BQFkBQNjdXIJAJUKAwUFZE5leHQFAWQFBHVuaXQEDSR0MDIxNDcxMjE1MzQKAAIkbAUDYXJyCgACJHMJAJADAQUCJGwKAAUkYWNjMAkAlQoDBQFzBQR1bml0BQR1bml0CgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQRjYWxjAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhNMaXN0IHNpemUgZXhjZWVkcyA3CQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcEBWROZXh0CAUNJHQwMjE0NzEyMTUzNAJfMQQFZFByZXYIBQ0kdDAyMTQ3MTIxNTM0Al8yBAVmb3VuZAgFDSR0MDIxNDcxMjE1MzQCXzMDCQECIT0CBQVmb3VuZAUEdW5pdAkAlAoCBQNuaWwJAKYDAQUFZE5leHQEBWREaWZmCQEJYWJzQmlnSW50AQkAuAICBQVkTmV4dAkBBXZhbHVlAQUFZFByZXYJAAIBCQCsAgICHUQgY2FsY3VsYXRpb24gZXJyb3IsIGREaWZmID0gCQCmAwEFBWREaWZmAWkBCnNldE1hbmFnZXIBF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5BAtjaGVja0NhbGxlcgkBC211c3RNYW5hZ2VyAQUBaQMJAAACBQtjaGVja0NhbGxlcgULY2hlY2tDYWxsZXIEFWNoZWNrTWFuYWdlclB1YmxpY0tleQkA2QQBBRdwZW5kaW5nTWFuYWdlclB1YmxpY0tleQMJAAACBRVjaGVja01hbmFnZXJQdWJsaWNLZXkFFWNoZWNrTWFuYWdlclB1YmxpY0tleQkAzAgCCQELU3RyaW5nRW50cnkCCQEaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkABRdwZW5kaW5nTWFuYWdlclB1YmxpY0tleQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBDmNvbmZpcm1NYW5hZ2VyAAQCcG0JAR1wZW5kaW5nTWFuYWdlclB1YmxpY0tleU9yVW5pdAAEBWhhc1BNAwkBCWlzRGVmaW5lZAEFAnBtBgkAAgECEk5vIHBlbmRpbmcgbWFuYWdlcgMJAAACBQVoYXNQTQUFaGFzUE0EB2NoZWNrUE0DCQAAAggFAWkPY2FsbGVyUHVibGljS2V5CQEFdmFsdWUBBQJwbQYJAAIBAhtZb3UgYXJlIG5vdCBwZW5kaW5nIG1hbmFnZXIDCQAAAgUHY2hlY2tQTQUHY2hlY2tQTQkAzAgCCQELU3RyaW5nRW50cnkCCQETa2V5TWFuYWdlclB1YmxpY0tleQAJANgEAQkBBXZhbHVlAQUCcG0JAMwIAgkBC0RlbGV0ZUVudHJ5AQkBGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJ0eAEGdmVyaWZ5AAQPdGFyZ2V0UHVibGljS2V5BAckbWF0Y2gwCQEWbWFuYWdlclB1YmxpY0tleU9yVW5pdAADCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQCcGsFByRtYXRjaDAFAnBrAwkAAQIFByRtYXRjaDACBFVuaXQIBQJ0eA9zZW5kZXJQdWJsaWNLZXkJAAIBAgtNYXRjaCBlcnJvcgkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAUPdGFyZ2V0UHVibGljS2V53Wv5lA==", "height": 2489385, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8mrSKUbAZBs3372DDHMUbqkpkiNEbPQPPBvHWxsQ8Pnm Next: CBLC8DhNbtgW7udwhqfyM9GFqpq9927hxnVKXiAWBWaF Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = 1000
77
88 let c = 100000000
99
1010 let d = toBigInt(0)
1111
1212 let e = 0
1313
1414 let f = 1
1515
1616 func g (h) = valueOrElse(getInteger(this, h), 0)
1717
1818
1919 func i (h) = valueOrErrorMessage(getInteger(this, h), (("mandatory this." + h) + " is not defined"))
2020
2121
2222 func j (h) = valueOrElse(getString(this, h), "")
2323
2424
2525 func k (h) = valueOrErrorMessage(getString(this, h), (("mandatory this." + h) + " is not defined"))
2626
2727
2828 func l (m) = if ((0 > m))
2929 then -(m)
3030 else m
3131
3232
3333 func n (m) = if ((d > m))
3434 then -(m)
3535 else m
3636
3737
3838 let o = "%s__maxDepth"
3939
4040 let p = 30
4141
4242 let q = valueOrElse(getInteger(this, o), p)
4343
4444 func r () = "%s%s__config__factoryAddress"
4545
4646
4747 let s = k(r())
4848
4949 let t = addressFromStringValue(s)
5050
5151 func u () = "%s%s__config__emissionAddress"
5252
5353
5454 func v (w) = makeString(["%s%s%s", "mapping", "num2user", toString(w)], a)
5555
5656
5757 let x = makeString(["%s%s", "referral", "programName"], a)
5858
5959 let y = "wxlock"
6060
6161 let z = valueOrElse(getString(this, x), y)
6262
6363 let A = makeString(["%s%s", "referral", "minGWxAmount"], a)
6464
6565 let B = (500 * c)
6666
6767 let C = valueOrElse(getInteger(this, A), B)
6868
6969 let D = makeString(["%s%s", "referral", "referrerRewardPermille"], a)
7070
7171 let E = 50
7272
7373 let F = valueOrElse(getInteger(this, D), E)
7474
7575 let G = makeString(["%s%s", "referral", "referralRewardPermille"], a)
7676
7777 let H = 50
7878
7979 let I = valueOrElse(getInteger(this, G), H)
8080
8181 func J (K) = makeString(["%s%s%s", "referrer", z, K], a)
8282
8383
8484 func L (M,N) = makeString(["%s%s%s", "unclaimedReferral", M, N], a)
8585
8686
8787 let O = k(u())
8888
8989 let P = addressFromStringValue(O)
9090
9191 let Q = 1
9292
9393 let R = 2
9494
9595 let S = 3
9696
9797 let T = 4
9898
9999 func U () = "%s__config"
100100
101101
102102 func V () = split(k(U()), a)
103103
104104
105105 func W (X,Y,Z,q) = makeString(["%s%s%s%d", X, Y, Z, toString(q)], a)
106106
107107
108108 func aa () = {
109109 let ab = V()
110110 valueOrErrorMessage(addressFromString(ab[S]), "boosting contract address is not defined")
111111 }
112112
113113
114114 func ac () = "%s%s__gwxRewardEmissionPart__startHeight"
115115
116116
117117 func ad () = "%s__nextUserNum"
118118
119119
120120 func ae () = "%s%s__ratePerBlock__current"
121121
122122
123123 func af () = "%s%s__poolWeight__GWXvirtualPOOL"
124124
125125
126126 func ag () = "%s__nextProcessedUser"
127127
128128
129129 func ah () = "%s__latestPeriod"
130130
131131
132132 func ai () = "%s__nextPeriod"
133133
134134
135135 func aj () = "%s__processingStage"
136136
137137
138138 func ak () = "%s__nextProcessedPeriod"
139139
140140
141141 func al (am) = makeString(["%s%d", "userUnclaimed", toString(am)], a)
142142
143143
144144 func an (am) = makeString(["%s%d__nextClaimedPeriod", toString(am)], a)
145145
146146
147147 func ao (am) = makeString(["%s%d__lastProcessedPeriod", toString(am)], a)
148148
149149
150150 func ap (aq) = makeString(["%s%d__startHeightForPeriod", toString(aq)], a)
151151
152152
153153 func ar (aq) = makeString(["%s%d__auxEmissionReward", toString(aq)], a)
154154
155155
156156 func as (aq) = makeString(["%s%d__totalAmountForPeriod", toString(aq)], a)
157157
158158
159159 func at () = "%s__lastPayoutInfo"
160160
161161
162162 func au (aq,av,aw) = makeString(["%d%d%d", toString(aq), toString(av), toString(aw)], a)
163163
164164
165165 func ax (aq) = makeString(["%s%s%d__payouts__history", toString(aq)], a)
166166
167167
168168 func ay (aq) = makeString(["%s%d__totalWeightForPeriod", toString(aq)], a)
169169
170170
171171 func az (aq,am) = makeString(["%s%d%s%d__paramByPeriod", toString(am), "k", toString(aq)], a)
172172
173173
174174 func aA (aq,am) = makeString(["%s%d%s%d__paramByPeriod", toString(am), "b", toString(aq)], a)
175175
176176
177177 func aB (aq,am) = makeString(["%s%d%s%d__paramByPeriod", toString(am), "weight", toString(aq)], a)
178178
179179
180180 func aC () = makeString(["%s%s", "config", "referralsContractAddress"], a)
181181
182182
183183 let aD = addressFromStringValue(k(aC()))
184184
185185 func aE (aF,aG,aH,aI) = {
186186 let aJ = makeString(["%s%s%s%s__history", aF, aG, toBase58String(aI.transactionId)], a)
187187 let aK = makeString(["%d%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(aH)], a)
188188 StringEntry(aJ, aK)
189189 }
190190
191191
192192 func aL () = "%s__managerPublicKey"
193193
194194
195195 func aM () = "%s__pendingManagerPublicKey"
196196
197197
198198 func aN () = {
199199 let aO = getString(aL())
200200 if ($isInstanceOf(aO, "String"))
201201 then {
202202 let aP = aO
203203 fromBase58String(aP)
204204 }
205205 else if ($isInstanceOf(aO, "Unit"))
206206 then unit
207207 else throw("Match error")
208208 }
209209
210210
211211 func aQ () = {
212212 let aO = getString(aM())
213213 if ($isInstanceOf(aO, "String"))
214214 then {
215215 let aP = aO
216216 fromBase58String(aP)
217217 }
218218 else if ($isInstanceOf(aO, "Unit"))
219219 then unit
220220 else throw("Match error")
221221 }
222222
223223
224224 func aR (aI) = {
225225 let aS = throw("Permission denied")
226226 let aO = aN()
227227 if ($isInstanceOf(aO, "ByteVector"))
228228 then {
229229 let aT = aO
230230 if ((aI.callerPublicKey == aT))
231231 then true
232232 else aS
233233 }
234234 else if ($isInstanceOf(aO, "Unit"))
235235 then if ((aI.caller == this))
236236 then true
237237 else aS
238238 else throw("Match error")
239239 }
240240
241241
242242 func aU (aV,aW,aq,am) = {
243243 let aX = ao(am)
244244 let aY = az(aq, am)
245245 let aZ = getInteger(aV, aY)
246246 let ba = aB(aq, am)
247247 if (isDefined(aZ))
248248 then {
249249 let bb = value(aZ)
250250 let bc = value(getInteger(aV, aA(aq, am)))
251251 let bd = ((bb * aW) + bc)
252252 if ((bd > 0))
253253 then $Tuple2((bd / b), [IntegerEntry(aX, aq), IntegerEntry(ba, bd)])
254254 else $Tuple2(0, nil)
255255 }
256256 else {
257257 let be = getInteger(this, aX)
258258 if (if (isDefined(be))
259259 then (aq >= value(be))
260260 else false)
261261 then {
262262 let bf = value(be)
263263 let bb = value(getInteger(aV, az(bf, am)))
264264 let bc = value(getInteger(aV, aA(bf, am)))
265265 let bd = ((bb * aW) + bc)
266266 if ((bd > 0))
267267 then $Tuple2((bd / b), [IntegerEntry(ba, bd)])
268268 else $Tuple2(0, nil)
269269 }
270270 else $Tuple2(0, nil)
271271 }
272272 }
273273
274274
275275 func bg (aV,aW,aq,am) = {
276276 let ba = aB(aq, am)
277277 let bh = getInteger(ba)
278278 let aO = bh
279279 if ($isInstanceOf(aO, "Unit"))
280280 then 0
281281 else if ($isInstanceOf(aO, "Int"))
282282 then {
283283 let bd = aO
284284 (bd / b)
285285 }
286286 else throw("Match error")
287287 }
288288
289289
290290 func bi (Z,bj) = {
291291 let h = makeString(["%s%s%s", "mapping", "user2num", bj], a)
292292 parseIntValue(valueOrErrorMessage(getString(Address(fromBase58String(Z)), h), ((("User address " + bj) + " is not found in boosting contract data, key=") + h)))
293293 }
294294
295295
296296 func bk () = g(ai())
297297
298298
299299 func bl (bj) = {
300300 let ab = V()
301301 let bm = bi(ab[S], bj)
302302 let bn = getInteger(al(bm))
303303 let aO = bn
304304 if ($isInstanceOf(aO, "Unit"))
305305 then $Tuple2(0, nil)
306306 else if ($isInstanceOf(aO, "Int"))
307307 then {
308308 let bo = aO
309309 $Tuple2(bo, [IntegerEntry(al(bm), 0)])
310310 }
311311 else throw("Match error")
312312 }
313313
314314
315315 @Callable(aI)
316316 func updateReferralActivity (bj,bp) = {
317317 let bq = getString(aD, J(bj))
318318 let br = if ((bq == unit))
319319 then unit
320320 else invoke(aD, "updateReferralActivity", [z, bj, (bp >= C)], nil)
321321 if ((br == br))
322322 then $Tuple2(nil, unit)
323323 else throw("Strict value is not equal to itself.")
324324 }
325325
326326
327327
328328 @Callable(aI)
329329 func finalizeHelper () = {
330330 let bs = valueOrElse(getInteger(aj()), e)
331331 let bt = g(ak())
332332 let bu = g(ag())
333333 let bv = g(ah())
334334 let bw = valueOrElse(getInteger(aa(), ad()), 0)
335335 let bx = ay(bt)
336336 let by = g(ay(bt))
337337 let aW = g(ap(bt))
338338 if ((bt > bv))
339339 then $Tuple2(nil, false)
340340 else if ((bs == e))
341341 then {
342342 let bz = aU(aa(), aW, bt, bu)
343343 let bA = bz._1
344344 let bB = bz._2
345345 let bC = (by + bA)
346346 let bD = if (((bw - 1) > bu))
347347 then [IntegerEntry(ag(), (bu + 1))]
348348 else [IntegerEntry(aj(), f), IntegerEntry(ag(), 0)]
349349 $Tuple2((([IntegerEntry(bx, bC)] ++ bD) ++ bB), true)
350350 }
351351 else if ((bs == f))
352352 then {
353353 let bA = bg(aa(), aW, bt, bu)
354354 let bE = fraction(g(as(bt)), bA, by)
355355 let bF = fraction(g(ar(bt)), bA, by)
356356 let bG = (bF + bE)
357357 let bn = getInteger(al(bu))
358358 let bj = getStringValue(aa(), v(bu))
359359 let bq = getString(aD, J(bj))
360360 let br = if ((bq == unit))
361361 then unit
362362 else invoke(aD, "updateReferralActivity", [z, bj, (bA >= C)], nil)
363363 if ((br == br))
364364 then {
365365 let bH = if (if ((bq == unit))
366366 then true
367367 else (C > bA))
368368 then unit
369369 else {
370370 let bI = fraction(bG, F, b)
371371 let bJ = fraction(bG, I, b)
372372 invoke(aD, "incUnclaimed", [z, bj, bI, bJ], nil)
373373 }
374374 if ((bH == bH))
375375 then {
376376 let bK = [IntegerEntry(al(bu), (valueOrElse(bn, 0) + bG))]
377377 let bD = if (((bw - 1) > bu))
378378 then [IntegerEntry(ag(), (bu + 1))]
379379 else [IntegerEntry(ak(), (bt + 1)), IntegerEntry(ag(), 0), DeleteEntry(aj())]
380380 $Tuple2((bK ++ bD), true)
381381 }
382382 else throw("Strict value is not equal to itself.")
383383 }
384384 else throw("Strict value is not equal to itself.")
385385 }
386386 else throw("invalid processing stage")
387387 }
388388
389389
390390
391391 @Callable(aI)
392392 func finalizeWrapper (bL) = {
393393 let bM = {
394394 let bN = invoke(this, "finalizeHelper", nil, nil)
395395 if ($isInstanceOf(bN, "Boolean"))
396396 then bN
397397 else throw(($getType(bN) + " couldn't be cast to Boolean"))
398398 }
399399 if ((bM == bM))
400400 then if (!(bM))
401401 then if ((bL == q))
402402 then throw("Nothing to process")
403403 else $Tuple2(nil, unit)
404404 else if ((bL > 0))
405405 then $Tuple2(nil, invoke(this, "finalizeWrapper", [(bL - 1)], nil))
406406 else $Tuple2(nil, unit)
407407 else throw("Strict value is not equal to itself.")
408408 }
409409
410410
411411
412412 @Callable(aI)
413413 func processPendingPeriodsAndUsers () = $Tuple2(nil, invoke(this, "finalizeWrapper", [q], nil))
414414
415415
416416
417417 @Callable(aI)
418418 func deposit () = {
419419 let ab = V()
420420 if ((aI.caller != Address(fromBase58String(ab[R]))))
421421 then throw("Wrong caller address")
422422 else {
423423 let bO = value(value(aI.payments[0]).assetId)
424424 if ((bO != fromBase58String(ab[Q])))
425425 then throw("Wrong payment asset")
426426 else {
427427 let aq = bk()
428428 let bP = (height - i(ac()))
429429 let bQ = valueOrErrorMessage(getInteger(P, ae()), (("mandatory emission_contract." + ae()) + " is not defined"))
430430 let bR = valueOrErrorMessage(getInteger(t, af()), (("mandatory factory_contract." + af()) + " is not defined"))
431431 let bS = fraction((bP * bR), bQ, c)
432432 let bT = invoke(P, "emit", [bS], nil)
433433 if ((bT == bT))
434434 then {
435435 let bU = value(aI.payments[0]).amount
436436 let bV = au(aq, bU, bS)
437437 [IntegerEntry(ah(), aq), IntegerEntry(ap(aq), height), IntegerEntry(ar(aq), bS), IntegerEntry(ac(), height), IntegerEntry(as(aq), bU), IntegerEntry(ai(), (aq + 1)), StringEntry(at(), bV), StringEntry(ax(aq), bV)]
438438 }
439439 else throw("Strict value is not equal to itself.")
440440 }
441441 }
442442 }
443443
444444
445445
446446 @Callable(aI)
447447 func claimReward () = {
448448 let ab = V()
449449 let bW = toString(aI.caller)
450450 let bX = bl(bW)
451451 let aH = bX._1
452452 let bY = bX._2
453453 let bZ = if ((aH > 0))
454454 then true
455455 else throw("Nothing to claim")
456456 if ((bZ == bZ))
457457 then {
458458 let ca = 0
459459 let cb = {
460460 let bN = invoke(aD, "claim", [z], nil)
461461 if ($isInstanceOf(bN, "Int"))
462462 then bN
463463 else throw(($getType(bN) + " couldn't be cast to Int"))
464464 }
465465 let cc = (aH + cb)
466466 $Tuple2(([ScriptTransfer(aI.caller, cc, fromBase58String(ab[Q])), aE("claim", bW, aH, aI)] ++ bY), [cc, ca])
467467 }
468468 else throw("Strict value is not equal to itself.")
469469 }
470470
471471
472472
473473 @Callable(aI)
474474 func claimRewardREADONLY (bW) = {
475475 let cd = bl(bW)
476476 let aH = cd._1
477477 let bY = cd._2
478478 let ce = valueOrElse(getInteger(aD, L(z, bW)), 0)
479479 let cc = (aH + ce)
480480 $Tuple2(nil, cc)
481481 }
482482
483483
484484
485485 @Callable(aI)
486486 func latestFinalizedPeriodREADONLY (bW) = $Tuple2(nil, valueOrElse(getInteger(this, ah()), -1))
487487
488488
489489
490490 @Callable(aI)
491491 func latestFinalizedPeriodInfoREADONLY (bW) = $Tuple2(nil, j(at()))
492492
493493
494494
495495 @Callable(aI)
496496 func calcGwxParamsREADONLY (cf,cg,ch) = {
497497 let ci = (cg + ch)
498498 let cj = -(fraction(cf, b, ch))
499499 let ck = (fraction(cf, b, ch) * ci)
500500 $Tuple2(nil, [cj, ck, bk()])
501501 }
502502
503503
504504
505505 @Callable(aI)
506506 func calcGwxAmountStartREADONLY (cl,cm,cn) = {
507507 let co = fraction(cm, c, cn)
508508 let bp = fraction(cl, co, c)
509509 $Tuple2(nil, [bp])
510510 }
511511
512512
513513
514514 @Callable(aI)
515515 func onEmissionForGwxStart () = if ((aI.caller != t))
516516 then throw("permissions denied")
517517 else [IntegerEntry(ac(), height)]
518518
519519
520520
521521 @Callable(aI)
522522 func latestPeriodEmissionRewardsREADONLY (bW) = {
523523 let aq = bk()
524524 $Tuple2(nil, [g(ar(aq))])
525525 }
526526
527527
528528
529529 @Callable(aI)
530530 func calcD (cp,cq,cr,cs,ct) = {
531531 let cu = toBigInt(2)
532532 let cv = parseBigIntValue(cs)
533533 let cw = parseBigIntValue(ct)
534534 let cx = parseBigIntValue(cp)
535535 let cy = parseBigIntValue(cq)
536536 let cz = (parseBigIntValue(cr) * cv)
537537 let aP = (cx + cy)
538538 if ((aP == d))
539539 then $Tuple2(nil, toString(d))
540540 else {
541541 let cA = (cz * cu)
542542 let cB = [0, 1, 2, 3, 4, 5, 6]
543543 func cC (cD,cE) = {
544544 let cF = cD
545545 let cG = cF._1
546546 let cH = cF._2
547547 let cI = cF._3
548548 if ((cI != unit))
549549 then cD
550550 else {
551551 let cJ = (((cG * cG) * cG) / (((cx * cy) * cu) * cu))
552552 let cK = (((((cA * aP) / cv) + (cJ * cu)) * cG) / ((((cA - cv) * cG) / cv) + ((cu + toBigInt(1)) * cJ)))
553553 let cL = n((cK - value(cG)))
554554 if ((cw >= cL))
555555 then $Tuple3(cK, cG, cE)
556556 else $Tuple3(cK, cG, unit)
557557 }
558558 }
559559
560560 let cM = {
561561 let cN = cB
562562 let cO = size(cN)
563563 let cP = $Tuple3(aP, unit, unit)
564564 func cQ (cR,cS) = if ((cS >= cO))
565565 then cR
566566 else cC(cR, cN[cS])
567567
568568 func cT (cR,cS) = if ((cS >= cO))
569569 then cR
570570 else throw("List size exceeds 7")
571571
572572 cT(cQ(cQ(cQ(cQ(cQ(cQ(cQ(cP, 0), 1), 2), 3), 4), 5), 6), 7)
573573 }
574574 let cK = cM._1
575575 let cH = cM._2
576576 let cI = cM._3
577577 if ((cI != unit))
578578 then $Tuple2(nil, toString(cK))
579579 else {
580580 let cL = n((cK - value(cH)))
581581 throw(("D calculation error, dDiff = " + toString(cL)))
582582 }
583583 }
584584 }
585585
586586
587587
588588 @Callable(aI)
589589 func setManager (cU) = {
590590 let cV = aR(aI)
591591 if ((cV == cV))
592592 then {
593593 let cW = fromBase58String(cU)
594594 if ((cW == cW))
595595 then [StringEntry(aM(), cU)]
596596 else throw("Strict value is not equal to itself.")
597597 }
598598 else throw("Strict value is not equal to itself.")
599599 }
600600
601601
602602
603603 @Callable(aI)
604604 func confirmManager () = {
605605 let cX = aQ()
606606 let cY = if (isDefined(cX))
607607 then true
608608 else throw("No pending manager")
609609 if ((cY == cY))
610610 then {
611611 let cZ = if ((aI.callerPublicKey == value(cX)))
612612 then true
613613 else throw("You are not pending manager")
614614 if ((cZ == cZ))
615615 then [StringEntry(aL(), toBase58String(value(cX))), DeleteEntry(aM())]
616616 else throw("Strict value is not equal to itself.")
617617 }
618618 else throw("Strict value is not equal to itself.")
619619 }
620620
621621
622622 @Verifier(da)
623623 func db () = {
624624 let dc = {
625625 let aO = aN()
626626 if ($isInstanceOf(aO, "ByteVector"))
627627 then {
628628 let aT = aO
629629 aT
630630 }
631631 else if ($isInstanceOf(aO, "Unit"))
632632 then da.senderPublicKey
633633 else throw("Match error")
634634 }
635635 sigVerify(da.bodyBytes, da.proofs[0], dc)
636636 }
637637

github/deemru/w8io/873ac7e 
48.91 ms