tx · 89BvCeFYBQokQWxnR2LjsG8tV5deDHdfmQa3sRZzP1ds

3MwukwUkp3PsyCrkjMgqiAnSfc1hBD5FQhH:  -0.02600000 Waves

2023.03.21 15:20 [2499767] smart account 3MwukwUkp3PsyCrkjMgqiAnSfc1hBD5FQhH > SELF 0.00000000 Waves

{ "type": 13, "id": "89BvCeFYBQokQWxnR2LjsG8tV5deDHdfmQa3sRZzP1ds", "fee": 2600000, "feeAssetId": null, "timestamp": 1679401259159, "version": 2, "chainId": 84, "sender": "3MwukwUkp3PsyCrkjMgqiAnSfc1hBD5FQhH", "senderPublicKey": "5JqBVJpMCyD7dJLJttqYjL6CmJc4zahBHSFjFb7qQTga", "proofs": [ "4Gw231FTBPH49rvhUzSFxs7duyS1kxtSCnueTyMuBgsqw9v5M4GTkdNsE3sLpezSjqdpjUvg8hAToy7DbkWWVEGx" ], "script": "base64:BgIhCAISBAoCAQESBgoECAgICBIDCgEYEgASAwoBCBIDCgEBRgADU0VQAgFfAA5fbWluTG9ja3BlcmlvZAABAA1fdW5pdERlY2ltYWxzAIDC1y8ADl9taW5Mb2NrQW1vdW50CQBoAgABBQ1fdW5pdERlY2ltYWxzAA5fbWF4TG9ja0Ftb3VudAkAaAIA6AcFDV91bml0RGVjaW1hbHMAA19EdACAuJkpAQRfUHB5AQpsb2NrUGVyaW9kCQBrAwUNX3VuaXREZWNpbWFscwDtAgUKbG9ja1BlcmlvZAANX2luY3JlbWVudFJlZgDAhD0ADl9wZXJjZW50YWdlRmVlCQBrAwUNX3VuaXREZWNpbWFscwAKAGQAGl9wZXJjZW50YWdlUmVkdWN0aW9uRmFjdG9yAilDdXJyZW50X1BlcmNlbnRhZ2VSZWR1Y3Rpb25fRmFjdG9yX0Zvcl9NcgADX01yAgxNaW50aW5nX1JhdGUADF9zdGF3QXNzZXRJZAIMU3Rhd19Bc3NldElkAAhfbWFuYWdlcgIHbWFuYWdlcgAEX0RmeAIDRGZ4ABVfY2lyY3VsYXRpb25JbmNySW5kZXgCGUNpcmN1bGF0aW9uSW5jcmVtZW50SW5kZXgADl9sZXNzZWVBZGRyZXNzAglMZWFzZU5vZGUAGl91c2VyRW1pc3Npb25BbW91bnRDbGFpbWVkAhVFbWlzc2lvbkFtb3VudENsYWltZWQAG191c2VyQ2FuQ2xhaW1FbWlzc2lvbkFtb3VudAIWQ2FuQ2xhaW1FbWlzc2lvbkFtb3VudAAMX3VzZXJBZGRyZXNzAg1XYWxsZXRBZGRyZXNzABRfdXNlckxvY2FsSW5kZXhDb3VudAIUVG90YWxFbnRyeUluZGV4Q291bnQAEF91c2VyVG90YWxMb2NrZWQCC1RvdGFsTG9ja2VkAA1fbG9ja0R1cmF0aW9uAgxMb2NrRHVyYXRpb24ACl9sb2NrSW5kZXgCD0dsb2JhbExvY2tJbmRleAAHX2xvY2tJZAIOTG9ja0lkZW50aWZpZXIADF93YXZlc0Ftb3VudAINQW1vdW50SW5XYXZlcwALX3N0YXdBbW91bnQCDEFtb3VudEluU3RhdwANX3N0YXdMUEFtb3VudAIOQW1vdW50SW5TdGF3TFAABV90eElkAgRUWElEAA1fbG9ja0F0SGVpZ2h0AgxMb2NrQXRIZWlnaHQAFF9sb2NrUGVyaW9kSW5NaWxpU2VjAhRMb2NLUGVyaW9kSW5NaWxsaVNlYwASX3RvdGFsV2F2ZXNDbGFpbWVkAhFUb3RhbFdhdmVzQ2xhaW1lZAAPX3VzZXJMZWFzZVN0YXRlAgpMZWFzZVN0YXRlAApfdG90YWxTdGF3Ag9Ub3RhbFN0YXdNaW50ZWQADl90b3RhbFdhdmVzUmVmAhBUb3RhbFdhdmVzTG9ja2VkAAxfdG90YWxTdGF3TFACC1RvdGFsU3Rhd0xQABFfZ2xvYmFsSW5kZXhDb3VudAIKSW5kZXhDb3VudAAUX2RheXNBZnRlckxvY2tQZXJpb2QCGkRheXNBZnRlckxvY2tQZXJpb2RFbGFzcGVkAQVfZ2V0SQEDa2V5CQCaCAIFBHRoaXMFA2tleQEFX2dldFMBA2tleQkAnQgCBQR0aGlzBQNrZXkBBV9nZXRCAQNrZXkJAJsIAgUEdGhpcwUDa2V5AQZfZ2V0QlYBA2tleQkBBXZhbHVlAQkAmwgCBQR0aGlzBQNrZXkBBl9nZXRJVgEDa2V5CQEFdmFsdWUBCQCaCAIFBHRoaXMFA2tleQEGX2dldFNWAQNrZXkJAQV2YWx1ZQEJAJ0IAgUEdGhpcwUDa2V5AQxfc2V0UGFyYW1WYWwCA2tleQpkZWZhdWx0VmFsBAckbWF0Y2gwBQpkZWZhdWx0VmFsAwkAAQIFByRtYXRjaDACBlN0cmluZwQKZGVmYXVsdFZhbAUHJG1hdGNoMAMJAQlpc0RlZmluZWQBCQEFX2dldFMBBQNrZXkJAQZfZ2V0U1YBBQNrZXkFCmRlZmF1bHRWYWwDCQABAgUHJG1hdGNoMAIDSW50BApkZWZhdWx0VmFsBQckbWF0Y2gwAwkBCWlzRGVmaW5lZAEJAQVfZ2V0SQEFA2tleQkBBl9nZXRJVgEFA2tleQUKZGVmYXVsdFZhbAMJAAECBQckbWF0Y2gwAgdCb29sZWFuBApkZWZhdWx0VmFsBQckbWF0Y2gwAwkBCWlzRGVmaW5lZAEJAQVfZ2V0QgEFA2tleQkBBl9nZXRCVgEFA2tleQUKZGVmYXVsdFZhbAkAAgEJAKwCAgIddmFsdWUgdHlwZSBub3Qgc3VwcG9ydGVkIGZvciAFA2tleQEPX3Rocm93T3JSZXR1cm5TAgN2YWwFZXJyb3IEByRtYXRjaDAFA3ZhbAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEA3ZhbAUHJG1hdGNoMAUDdmFsCQACAQUFZXJyb3IBD190aHJvd09yUmV0dXJuSQIDdmFsBWVycm9yBAckbWF0Y2gwBQN2YWwDCQABAgUHJG1hdGNoMAIDSW50BAN2YWwFByRtYXRjaDAFA3ZhbAkAAgEFBWVycm9yARJfdGhyb3dPclJldHVybkJvb2wCA3ZhbAVlcnJvcgQHJG1hdGNoMAUDdmFsAwkAAQIFByRtYXRjaDACB0Jvb2xlYW4EA3ZhbAUHJG1hdGNoMAUDdmFsCQACAQUFZXJyb3IBCV93cml0ZUludAIDa2V5BXZhbHVlAwkAZgIAAAUFdmFsdWUJAAIBCQCsAgIJAKwCAgkArAICAhd3cml0aW5nIG5lZ2F0aXZlIHZhbHVlIAkApAMBBQV2YWx1ZQIJIGZvciBrZXkgBQNrZXkJAQxJbnRlZ2VyRW50cnkCBQNrZXkFBXZhbHVlAQlfd3JpdGVTdHICA2tleQV2YWx1ZQMJAAACAgEgBQV2YWx1ZQkAAgEJAKwCAgIYd3JpdGluZyBhbiBlbXB0eSBzdHJpbmcgBQV2YWx1ZQkBC1N0cmluZ0VudHJ5AgUDa2V5BQV2YWx1ZQEIX3Rocm93SWYCCWNvbmRpdGlvbgVlcnJvcgMFCWNvbmRpdGlvbgkAAgEFBWVycm9yBgERX3dyaXRlR2xvYmFsUGFyYW0CA2tleQZfdmFsdWUEByRtYXRjaDAFBl92YWx1ZQMJAAECBQckbWF0Y2gwAgNJbnQEBl92YWx1ZQUHJG1hdGNoMAQFZW50cnkJALkJAgkAzAgCAgIlZAkAzAgCCQCkAwEFBl92YWx1ZQUDbmlsBQNTRVAJAQlfd3JpdGVTdHICBQNrZXkFBWVudHJ5AwkAAQIFByRtYXRjaDACBlN0cmluZwQGX3ZhbHVlBQckbWF0Y2gwBAVlbnRyeQkAuQkCCQDMCAICAiVzCQDMCAIFBl92YWx1ZQUDbmlsBQNTRVAJAQlfd3JpdGVTdHICBQNrZXkFBWVudHJ5AwkAAQIFByRtYXRjaDACB0Jvb2xlYW4EBl92YWx1ZQUHJG1hdGNoMAQFZW50cnkJALkJAgkAzAgCAgIlYgkAzAgCCQClAwEFBl92YWx1ZQUDbmlsBQNTRVAJAQlfd3JpdGVTdHICBQNrZXkFBWVudHJ5CQACAQISdHlwZSBub3Qgc3VwcG9ydGVkARZfZ2V0UmVnaXN0cnlFbnRyeVZhbHVlAQNrZXkECV9yYXdWYWx1ZQkBD190aHJvd09yUmV0dXJuUwIJAQVfZ2V0UwEFA2tleQkArAICAhRlbnRyeSBub3QgZm91bmQgZm9yIAUDa2V5AwkAAAIFCV9yYXdWYWx1ZQUJX3Jhd1ZhbHVlBAF4CQC1CQIFCV9yYXdWYWx1ZQUDU0VQBA9mb3JtYXRTcGVjaWZpZXIJALICAgkAkQMCBQF4AAAAAQQMX3ZhbHVlU3RyaW5nCQCRAwIFAXgJAGUCCQCQAwEFAXgAAQQGX3ZhbHVlAwkAAAIFD2Zvcm1hdFNwZWNpZmllcgIBcwUMX3ZhbHVlU3RyaW5nAwkAAAIFD2Zvcm1hdFNwZWNpZmllcgIBZAkBDXBhcnNlSW50VmFsdWUBBQxfdmFsdWVTdHJpbmcDCQAAAgUPZm9ybWF0U3BlY2lmaWVyAgFiCQDZBAEFDF92YWx1ZVN0cmluZwkAAgEJAKwCAgIjY291bGQgbm90IHBhcnNlIHJlZ2lzdHJ5IHZhbHVlIGZvciAFA2tleQUGX3ZhbHVlCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQ5fZGF5c1RvTWlsaVNlYwEEZGF5cwQFY2hlY2sJAQhfdGhyb3dJZgIJAGcCAAAFBGRheXMCFWludmFsaWQgbG9ja2luZyBkYXlzIQMJAAACBQVjaGVjawUFY2hlY2sJAGgCBQRkYXlzBQNfRHQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BEV93cml0ZUNvbnN0U3RyaW5nAgNrZXkFdmFsdWUDCQEBIQEJAQlpc0RlZmluZWQBCQEFX2dldFMBBQNrZXkJAQlfd3JpdGVTdHICBQNrZXkFBXZhbHVlCQACAQkArAICAhtlbnRyeSBhbHJlYWR5IGluaXRpYWxpemVkOiAFA2tleQESX3dyaXRlQ29uc3RJbnRlZ2VyAgNrZXkFdmFsdWUDCQEBIQEJAQlpc0RlZmluZWQBCQEFX2dldFMBBQNrZXkJAQlfd3JpdGVJbnQCBQNrZXkFBXZhbHVlCQACAQkArAICAhwgZW50cnkgYWxyZWFkeSBpbml0aWFsaXplZDogBQNrZXkBDF9vbmx5TWFuYWdlcgEBaQQHbWFuYWdlcgQHJG1hdGNoMAkBFl9nZXRSZWdpc3RyeUVudHJ5VmFsdWUBBQhfbWFuYWdlcgMJAAECBQckbWF0Y2gwAgZTdHJpbmcEA3ZhbAUHJG1hdGNoMAUDdmFsAhVmYWlsZWQgdG8gZ2V0IG1hbmFnZXIDCQAAAgUHbWFuYWdlcgUHbWFuYWdlcgkBCF90aHJvd0lmAgkBAiE9AgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzBQdtYW5hZ2VyAhZhZGRyZXNzIG5vdCBhdXRob3JpemVkCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQRfYWJzAQN2YWwDCQBmAgAABQN2YWwJAQEtAQUDdmFsBQN2YWwBEF92YWxpZGF0ZUFkZHJlc3MCB2FkZHJlc3MIZXJyb3JNc2cEByRtYXRjaDAFB2FkZHJlc3MDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAdhZGRyZXNzBQckbWF0Y2gwBAhfYWRkcmVzcwkApggBBQdhZGRyZXNzBAckbWF0Y2gxBQhfYWRkcmVzcwMJAAECBQckbWF0Y2gxAgdBZGRyZXNzBAhfYWRkcmVzcwUHJG1hdGNoMQYEByRtYXRjaDIFCGVycm9yTXNnAwkAAQIFByRtYXRjaDICBlN0cmluZwQDbXNnBQckbWF0Y2gyCQACAQUDbXNnBwMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAdhZGRyZXNzBQckbWF0Y2gwBAhfYWRkcmVzcwkApwgBBQdhZGRyZXNzBAckbWF0Y2gxBQhfYWRkcmVzcwMJAAECBQckbWF0Y2gxAgdBZGRyZXNzBAhfYWRkcmVzcwUHJG1hdGNoMQYEByRtYXRjaDIFCGVycm9yTXNnAwkAAQIFByRtYXRjaDICBlN0cmluZwQDbXNnBQckbWF0Y2gyCQACAQUDbXNnBwkAAgECEmludmFsaWQgaW5wdXQgdHlwZQEOX3ZhbGlkYXRlQXNzZXQCB2Fzc2V0SUQIZXJyb3JNc2cEByRtYXRjaDAJAOwHAQkA2QQBBQdhc3NldElEAwkAAQIFByRtYXRjaDACBUFzc2V0BAVhc3NldAUHJG1hdGNoMAYEByRtYXRjaDEFCGVycm9yTXNnAwkAAQIFByRtYXRjaDECBlN0cmluZwQDbXNnBQckbWF0Y2gxCQACAQUDbXNnBwEKX2NvbXB1dGVNcgAEEGN1cnJlbnRDaXJjSW5kZXgEByRtYXRjaDAJARZfZ2V0UmVnaXN0cnlFbnRyeVZhbHVlAQUVX2NpcmN1bGF0aW9uSW5jckluZGV4AwkAAQIFByRtYXRjaDACA0ludAQBdAUHJG1hdGNoMAUBdAkAAgECKGNpcmN1bGF0aW9uIGluZGV4IG5vdCBwcmV2aW91c2x5IGRlZmluZWQDCQAAAgUQY3VycmVudENpcmNJbmRleAUQY3VycmVudENpcmNJbmRleAQLc3Rhd0Fzc2V0SWQEByRtYXRjaDAJARZfZ2V0UmVnaXN0cnlFbnRyeVZhbHVlAQUMX3N0YXdBc3NldElkAwkAAQIFByRtYXRjaDACBlN0cmluZwQBdAUHJG1hdGNoMAUBdAkAAgECH2Fzc2V0IGlkIG5vdCBwcmV2aW91c2x5IGRlZmluZWQDCQAAAgULc3Rhd0Fzc2V0SWQFC3N0YXdBc3NldElkBBVzdGF3Q2lyY3VsYXRpbmdTdXBwbHkEByRtYXRjaDAJAOwHAQkA2QQBBQtzdGF3QXNzZXRJZAMJAAECBQckbWF0Y2gwAgVBc3NldAQFYXNzZXQFByRtYXRjaDAJAGkCCAUFYXNzZXQIcXVhbnRpdHkFDV91bml0RGVjaW1hbHMJAAIBCQCsAgICFGFzc2V0IG5vdCBmb3VuZCBmb3IgBQtzdGF3QXNzZXRJZAQNdW5pdEluY3JlbWVudAkAaQIJAQRfYWJzAQkAZQIFFXN0YXdDaXJjdWxhdGluZ1N1cHBseQUNX2luY3JlbWVudFJlZgUNX2luY3JlbWVudFJlZgQXbmV3Q2lyY3VsYXRpb25JbmNySW5kZXgDCQBmAgUNdW5pdEluY3JlbWVudAUQY3VycmVudENpcmNJbmRleAkAZAIFDXVuaXRJbmNyZW1lbnQFEGN1cnJlbnRDaXJjSW5kZXgFEGN1cnJlbnRDaXJjSW5kZXgECWN1cnJlbnRNcgQHJG1hdGNoMAkBFl9nZXRSZWdpc3RyeUVudHJ5VmFsdWUBBQNfTXIDCQABAgUHJG1hdGNoMAIDSW50BAF0BQckbWF0Y2gwBQF0CQACAQIbZmFpbGVkIHRvIGdldCBtaW5pdGluZyByYXRlAwkAAAIFF25ld0NpcmN1bGF0aW9uSW5jckluZGV4BRBjdXJyZW50Q2lyY0luZGV4CQCUCgIFCWN1cnJlbnRNcgUDbmlsBBJuZXdyZWR1Y3Rpb25GYWN0b3IEByRtYXRjaDAJARZfZ2V0UmVnaXN0cnlFbnRyeVZhbHVlAQUaX3BlcmNlbnRhZ2VSZWR1Y3Rpb25GYWN0b3IDCQABAgUHJG1hdGNoMAIDSW50BAF0BQckbWF0Y2gwCQBkAgUBdAAKCQACAQIpZmFpbGVkIHRvIGdldCBwZXJjZW50YWdlIHJlZHVjdGlvbiBmYWN0b3IEDG5ld0N1cnJlbnRNcgkAZQIFCWN1cnJlbnRNcgkAawMFCWN1cnJlbnRNcgUSbmV3cmVkdWN0aW9uRmFjdG9yAGQEBnN0b3JlMQkBEV93cml0ZUdsb2JhbFBhcmFtAgUDX01yBQxuZXdDdXJyZW50TXIEBnN0b3JlMgkBEV93cml0ZUdsb2JhbFBhcmFtAgUaX3BlcmNlbnRhZ2VSZWR1Y3Rpb25GYWN0b3IFEm5ld3JlZHVjdGlvbkZhY3RvcgQGc3RvcmUzCQERX3dyaXRlR2xvYmFsUGFyYW0CBRVfY2lyY3VsYXRpb25JbmNySW5kZXgFF25ld0NpcmN1bGF0aW9uSW5jckluZGV4CQCUCgIFDG5ld0N1cnJlbnRNcgkAzAgCBQZzdG9yZTEJAMwIAgUGc3RvcmUyCQDMCAIFBnN0b3JlMwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuARJfdXBkYXRlR2xvYmFsRW50cnkEC3dhdmVzQW1vdW50CnN0YXdBbW91bnQGc3Rhd1BMCmluZGV4Q291bnQEGl9uZXdHbG9iYWxUb3RhbFdhdmVzQW10UmVmBAckbWF0Y2gwCQEWX2dldFJlZ2lzdHJ5RW50cnlWYWx1ZQEFDl90b3RhbFdhdmVzUmVmAwkAAQIFByRtYXRjaDACA0ludAQBdAUHJG1hdGNoMAkAZAIFAXQFC3dhdmVzQW1vdW50CQACAQIgZmFpbGVkIHRvIGdldCBnbG9iYWwgdG90YWwgd2F2ZXMDCQAAAgUaX25ld0dsb2JhbFRvdGFsV2F2ZXNBbXRSZWYFGl9uZXdHbG9iYWxUb3RhbFdhdmVzQW10UmVmBBlfbmV3R2xvYmFsVG90YWxTdGF3TWludGVkBAckbWF0Y2gwCQEWX2dldFJlZ2lzdHJ5RW50cnlWYWx1ZQEFCl90b3RhbFN0YXcDCQABAgUHJG1hdGNoMAIDSW50BAF0BQckbWF0Y2gwCQBkAgUBdAUKc3Rhd0Ftb3VudAkAAgECJmZhaWxlZCB0byBnZXQgZ2xvYmFsIHRvdGFsIHN0YXcgbWludGVkAwkAAAIFGV9uZXdHbG9iYWxUb3RhbFN0YXdNaW50ZWQFGV9uZXdHbG9iYWxUb3RhbFN0YXdNaW50ZWQEFV9uZXdHbG9iYWxUb3RhbFN0YXdQTAQHJG1hdGNoMAkBFl9nZXRSZWdpc3RyeUVudHJ5VmFsdWUBBQxfdG90YWxTdGF3TFADCQABAgUHJG1hdGNoMAIDSW50BAF0BQckbWF0Y2gwCQBkAgUBdAUGc3Rhd1BMCQACAQIhZmFpbGVkIHRvIGdldCBnbG9iYWwgdG90YWwgc3Rhd3BsAwkAAAIFFV9uZXdHbG9iYWxUb3RhbFN0YXdQTAUVX25ld0dsb2JhbFRvdGFsU3Rhd1BMBBNfbmV3R2xvYmFJbmRleENvdW50BAckbWF0Y2gwCQEWX2dldFJlZ2lzdHJ5RW50cnlWYWx1ZQEFEV9nbG9iYWxJbmRleENvdW50AwkAAQIFByRtYXRjaDACA0ludAQBdAUHJG1hdGNoMAkAZAIFAXQFCmluZGV4Q291bnQJAAIBAiBmYWlsZWQgdG8gZ2V0IGdsb2JhbCBpbmRleCBjb3VudAMJAAACBRNfbmV3R2xvYmFJbmRleENvdW50BRNfbmV3R2xvYmFJbmRleENvdW50CQDMCAIJARFfd3JpdGVHbG9iYWxQYXJhbQIFDl90b3RhbFdhdmVzUmVmBRpfbmV3R2xvYmFsVG90YWxXYXZlc0FtdFJlZgkAzAgCCQERX3dyaXRlR2xvYmFsUGFyYW0CBQpfdG90YWxTdGF3BRlfbmV3R2xvYmFsVG90YWxTdGF3TWludGVkCQDMCAIJARFfd3JpdGVHbG9iYWxQYXJhbQIFDF90b3RhbFN0YXdMUAUVX25ld0dsb2JhbFRvdGFsU3Rhd1BMCQDMCAIJARFfd3JpdGVHbG9iYWxQYXJhbQIFEV9nbG9iYWxJbmRleENvdW50BRNfbmV3R2xvYmFJbmRleENvdW50BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BEl9yZWdpc3RlclVzZXJFbnRyeQ0NdHJhbnNhY3Rpb25JRAt1c2VyQWRkcmVzcwxsb2NrRHVyYXRpb24SbG9ja0R1cmF0aW9uSW5NaWxpCWxvY2tJbmRleAt3YXZlc0Ftb3VudApzdGF3QW1vdW50DHN0YXdMUEFtb3VudAxsb2NrQXRIZWlnaHQGbG9ja0lkC3RvdGFsTG9ja2VkD2xvY2FsSW5kZXhDb3VudApsZWFzZVN0YXRlBAhfdHhJZEtleQkAuQkCCQDMCAIFC3VzZXJBZGRyZXNzCQDMCAIFDXRyYW5zYWN0aW9uSUQJAMwIAgUFX3R4SWQFA25pbAUDU0VQBBBfbG9ja0R1cmF0aW9uS2V5CQC5CQIJAMwIAgULdXNlckFkZHJlc3MJAMwIAgUNdHJhbnNhY3Rpb25JRAkAzAgCBQ1fbG9ja0R1cmF0aW9uBQNuaWwFA1NFUAQNX2xvY2tJbmRleEtleQkAuQkCCQDMCAIFC3VzZXJBZGRyZXNzCQDMCAIFDXRyYW5zYWN0aW9uSUQJAMwIAgUKX2xvY2tJbmRleAUDbmlsBQNTRVAED193YXZlc0Ftb3VudEtleQkAuQkCCQDMCAIFC3VzZXJBZGRyZXNzCQDMCAIFDXRyYW5zYWN0aW9uSUQJAMwIAgUMX3dhdmVzQW1vdW50BQNuaWwFA1NFUAQOX3N0YXdBbW91bnRLZXkJALkJAgkAzAgCBQt1c2VyQWRkcmVzcwkAzAgCBQ10cmFuc2FjdGlvbklECQDMCAIFC19zdGF3QW1vdW50BQNuaWwFA1NFUAQQX3N0YXdMUEFtb3VudEtleQkAuQkCCQDMCAIFC3VzZXJBZGRyZXNzCQDMCAIFDXRyYW5zYWN0aW9uSUQJAMwIAgUNX3N0YXdMUEFtb3VudAUDbmlsBQNTRVAEEF9sb2NrQXRIZWlnaHRLZXkJALkJAgkAzAgCBQt1c2VyQWRkcmVzcwkAzAgCBQ10cmFuc2FjdGlvbklECQDMCAIFDV9sb2NrQXRIZWlnaHQFA25pbAUDU0VQBApfbG9ja0lkS2V5CQC5CQIJAMwIAgULdXNlckFkZHJlc3MJAMwIAgUNdHJhbnNhY3Rpb25JRAkAzAgCBQdfbG9ja0lkBQNuaWwFA1NFUAQPX3RvdGFsTG9ja2VkS2V5CQC5CQIJAMwIAgULdXNlckFkZHJlc3MJAMwIAgUQX3VzZXJUb3RhbExvY2tlZAUDbmlsBQNTRVAEEl9sb2NhbExvY2tJbmRleEtleQkAuQkCCQDMCAIFC3VzZXJBZGRyZXNzCQDMCAIFFF91c2VyTG9jYWxJbmRleENvdW50BQNuaWwFA1NFUAQXX2xvY2tQZXJpb2RJbk1pbGlTZWNLZXkJALkJAgkAzAgCBQt1c2VyQWRkcmVzcwkAzAgCBQ10cmFuc2FjdGlvbklECQDMCAIFFF9sb2NrUGVyaW9kSW5NaWxpU2VjBQNuaWwFA1NFUAQVX3RvdGFsV2F2ZXNDbGFpbWVkS2V5CQC5CQIJAMwIAgULdXNlckFkZHJlc3MJAMwIAgUNdHJhbnNhY3Rpb25JRAkAzAgCBRJfdG90YWxXYXZlc0NsYWltZWQFA25pbAUDU0VQBBJfdXNlckxlYXNlU3RhdGVLZXkJALkJAgkAzAgCBQt1c2VyQWRkcmVzcwkAzAgCBQ10cmFuc2FjdGlvbklECQDMCAIFD191c2VyTGVhc2VTdGF0ZQUDbmlsBQNTRVAECnRyeElkRW50cnkJALkJAgkAzAgCAgIlcwkAzAgCBQ10cmFuc2FjdGlvbklEBQNuaWwFA1NFUAQRbG9ja0R1cmF0aW9uRW50cnkJALkJAgkAzAgCAgIlZAkAzAgCCQCkAwEFDGxvY2tEdXJhdGlvbgUDbmlsBQNTRVAEDmxvY2tJbmRleEVudHJ5CQC5CQIJAMwIAgICJWQJAMwIAgkApAMBBQlsb2NrSW5kZXgFA25pbAUDU0VQBBB3YXZlc0Ftb3VudEVudHJ5CQC5CQIJAMwIAgICJWQJAMwIAgkApAMBBQt3YXZlc0Ftb3VudAUDbmlsBQNTRVAED3N0YXdBbW91bnRFbnRyeQkAuQkCCQDMCAICAiVkCQDMCAIJAKQDAQUKc3Rhd0Ftb3VudAUDbmlsBQNTRVAEEXN0YXdMUEFtb3VudEVudHJ5CQC5CQIJAMwIAgICJWQJAMwIAgkApAMBBQxzdGF3TFBBbW91bnQFA25pbAUDU0VQBBFsb2NrQXRIZWlnaHRFbnRyeQkAuQkCCQDMCAICAiVkCQDMCAIJAKQDAQUMbG9ja0F0SGVpZ2h0BQNuaWwFA1NFUAQLbG9ja0lkRW50cnkJALkJAgkAzAgCAgIlYgkAzAgCBQZsb2NrSWQFA25pbAUDU0VQBBB0b3RhbExvY2tlZEVudHJ5CQC5CQIJAMwIAgICJWQJAMwIAgkApAMBBQt0b3RhbExvY2tlZAUDbmlsBQNTRVAEE3VzZXJMb2NhbEluZGV4RW50cnkJALkJAgkAzAgCAgIlZAkAzAgCCQCkAwEFD2xvY2FsSW5kZXhDb3VudAUDbmlsBQNTRVAEGGxvY2tQZXJpb2RJbk1pbGlTZWNFbnRyeQkAuQkCCQDMCAICAiVkCQDMCAIJAKQDAQUSbG9ja0R1cmF0aW9uSW5NaWxpBQNuaWwFA1NFUAQWdG90YWxXYXZlc0NsYWltZWRFbnRyeQkAuQkCCQDMCAICAiVkCQDMCAIJAKQDAQAABQNuaWwFA1NFUAQTdXNlckxlYXNlU3RhdGVFbnRyeQkAuQkCCQDMCAICAiVzCQDMCAIFCmxlYXNlU3RhdGUFA25pbAUDU0VQCQDMCAIJARFfd3JpdGVDb25zdFN0cmluZwIFCF90eElkS2V5BQp0cnhJZEVudHJ5CQDMCAIJARFfd3JpdGVDb25zdFN0cmluZwIFDV9sb2NrSW5kZXhLZXkFDmxvY2tJbmRleEVudHJ5CQDMCAIJAQlfd3JpdGVTdHICBRJfbG9jYWxMb2NrSW5kZXhLZXkFE3VzZXJMb2NhbEluZGV4RW50cnkJAMwIAgkBCV93cml0ZVN0cgIFD190b3RhbExvY2tlZEtleQUQdG90YWxMb2NrZWRFbnRyeQkAzAgCCQERX3dyaXRlQ29uc3RTdHJpbmcCBRBfbG9ja0R1cmF0aW9uS2V5BRFsb2NrRHVyYXRpb25FbnRyeQkAzAgCCQERX3dyaXRlQ29uc3RTdHJpbmcCBRdfbG9ja1BlcmlvZEluTWlsaVNlY0tleQUYbG9ja1BlcmlvZEluTWlsaVNlY0VudHJ5CQDMCAIJARFfd3JpdGVDb25zdFN0cmluZwIFD193YXZlc0Ftb3VudEtleQUQd2F2ZXNBbW91bnRFbnRyeQkAzAgCCQERX3dyaXRlQ29uc3RTdHJpbmcCBQ5fc3Rhd0Ftb3VudEtleQUPc3Rhd0Ftb3VudEVudHJ5CQDMCAIJAQlfd3JpdGVTdHICBRBfc3Rhd0xQQW1vdW50S2V5BRFzdGF3TFBBbW91bnRFbnRyeQkAzAgCCQEJX3dyaXRlU3RyAgUVX3RvdGFsV2F2ZXNDbGFpbWVkS2V5BRZ0b3RhbFdhdmVzQ2xhaW1lZEVudHJ5CQDMCAIJARFfd3JpdGVDb25zdFN0cmluZwIFEF9sb2NrQXRIZWlnaHRLZXkFEWxvY2tBdEhlaWdodEVudHJ5CQDMCAIJARFfd3JpdGVDb25zdFN0cmluZwIFCl9sb2NrSWRLZXkFC2xvY2tJZEVudHJ5CQDMCAIJAQlfd3JpdGVTdHICBRJfdXNlckxlYXNlU3RhdGVLZXkFE3VzZXJMZWFzZVN0YXRlRW50cnkFA25pbAEHX3N0YXdNRgIKbG9ja1BlcmlvZA9jb2xsYXRlcmFsV2F2ZXMEC19hZGp1c3RlZE1yCQEKX2NvbXB1dGVNcgAEA3JldAkAaQIJAGsDBQ9jb2xsYXRlcmFsV2F2ZXMJAGgCBQNfRHQIBQtfYWRqdXN0ZWRNcgJfMQkBBF9QcHkBBQpsb2NrUGVyaW9kBQ1fdW5pdERlY2ltYWxzAwkAAAIJAJADAQgFC19hZGp1c3RlZE1yAl8yAAAJAJQKAgUDcmV0BQNuaWwJAJQKAgUDcmV0CAULX2FkanVzdGVkTXICXzIBEl9lbWlzc2lvblJhdGVXYXZlcwIKbG9ja1BlcmlvZApjb2xsYXRlcmFsBA9leHRlbnNpb25GYWN0b3IJAGsDBQpsb2NrUGVyaW9kAA8ACgQBcgkAaQIJAGsDBQNfRHQFCmNvbGxhdGVyYWwJAGUCBQ9leHRlbnNpb25GYWN0b3IFCmxvY2tQZXJpb2QAAgQMZW1pc3Npb25SYXRlCQBoAgkAawMFDV91bml0RGVjaW1hbHMFAXIAAQUDX0R0BQxlbWlzc2lvblJhdGUBEF9pbmNyVG90YWxTdGF3TFABBmFtb3VudAQJb2xkU3Rhd0xQCQEPX3Rocm93T3JSZXR1cm5JAgkBBV9nZXRJAQUMX3RvdGFsU3Rhd0xQAiBjb3VsZCBub3QgZ2V0IHRoZSBydW5uaW5nIFN0YXdMUAkAzAgCCQEJX3dyaXRlSW50AgUMX3RvdGFsU3Rhd0xQCQBkAgUJb2xkU3Rhd0xQBQZhbW91bnQFA25pbAEQX2RlY3JUb3RhbFN0YXdMUAEGYW1vdW50BAlvbGRTdGF3TFAJAQ9fdGhyb3dPclJldHVybkkCCQEFX2dldEkBBQxfdG90YWxTdGF3TFACIGNvdWxkIG5vdCBnZXQgdGhlIHJ1bm5pbmcgU3Rhd0xQCQDMCAIJAQlfd3JpdGVJbnQCBQxfdG90YWxTdGF3TFAJAGUCBQlvbGRTdGF3TFAFBmFtb3VudAUDbmlsARJfaW5jclRvdGFsV2F2ZXNSZWYBBmFtb3VudAQLb2xkV2F2ZXNSZWYJAQ9fdGhyb3dPclJldHVybkkCCQEFX2dldEkBBQ5fdG90YWxXYXZlc1JlZgIgY291bGQgbm90IGdldCB0b3RhbCBsb2NrZWQgd2F2ZXMJAMwIAgkBCV93cml0ZUludAIFDl90b3RhbFdhdmVzUmVmCQBkAgULb2xkV2F2ZXNSZWYFBmFtb3VudAUDbmlsARJfZGVjclRvdGFsV2F2ZXNSZWYBBmFtb3VudAQLb2xkV2F2ZXNSZWYJAQ9fdGhyb3dPclJldHVybkkCCQEFX2dldEkBBQ5fdG90YWxXYXZlc1JlZgIgY291bGQgbm90IGdldCB0b3RhbCBsb2NrZWQgd2F2ZXMJAMwIAgkBCV93cml0ZUludAIFDl90b3RhbFdhdmVzUmVmCQBlAgULb2xkV2F2ZXNSZWYFBmFtb3VudAUDbmlsARBfZ2V0TmV3VGltZVN0YW1wAQtibG9ja0hlaWdodAQEdGltZQQHJG1hdGNoMAkA7QcBBQtibG9ja0hlaWdodAMJAAECBQckbWF0Y2gwAglCbG9ja0luZm8ECHRpbWVJbmZvBQckbWF0Y2gwCAUIdGltZUluZm8JdGltZXN0YW1wCQACAQIUY291bmxkIGdldCB0aW1lc3RhbXAFBHRpbWUBEGdldEFzc2V0UXVhbnRpdHkBB2Fzc2V0SUQEByRtYXRjaDAJAOwHAQkA2QQBBQdhc3NldElEAwkAAQIFByRtYXRjaDACBUFzc2V0BAF0BQckbWF0Y2gwCAUBdAhxdWFudGl0eQkAAgECD2Fzc2V0IG5vdCBmb3VuZAYBaQELZ2V0RW1pc3Npb24CCmxvY2tQZXJpb2QKY29sbGF0ZXJhbAQGY2hlY2sxCQEMX29ubHlNYW5hZ2VyAQUBaQMJAAACBQZjaGVjazEFBmNoZWNrMQkAlAoCBQNuaWwJARJfZW1pc3Npb25SYXRlV2F2ZXMCBQpsb2NrUGVyaW9kBQpjb2xsYXRlcmFsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBBGluaXQEB21hbmFnZXIDZGZ4B2Fzc2V0SUQJbGVhc2VOb2RlBBRtYW5hZ2VyQWxyZWFkeUV4aXN0cwMJAQlpc0RlZmluZWQBCQEFX2dldFMBBQhfbWFuYWdlcgkBDF9vbmx5TWFuYWdlcgEFAWkGAwkAAAIFFG1hbmFnZXJBbHJlYWR5RXhpc3RzBRRtYW5hZ2VyQWxyZWFkeUV4aXN0cwQGY2hlY2sxCQEQX3ZhbGlkYXRlQWRkcmVzcwIFB21hbmFnZXICD2ludmFsaWQgYWRkcmVzcwMJAAACBQZjaGVjazEFBmNoZWNrMQQGY2hlY2syCQEQX3ZhbGlkYXRlQWRkcmVzcwIFA2RmeAIPaW52YWxpZCBhZGRyZXNzAwkAAAIFBmNoZWNrMgUGY2hlY2syBAZjaGVjazMJARBfdmFsaWRhdGVBZGRyZXNzAgUJbGVhc2VOb2RlAg9pbnZhbGlkIGFkZHJlc3MDCQAAAgUGY2hlY2szBQZjaGVjazMEBmNoZWNrNAMJAQ5fdmFsaWRhdGVBc3NldAIFB2Fzc2V0SUQCDWludmFsaWQgYXNzZXQGCQACAQIQaW52YWxpZCBhc3NldCBJZAMJAAACBQZjaGVjazQFBmNoZWNrNAQQY2lyY3VsYXRpb25JbmRleAkBDF9zZXRQYXJhbVZhbAIFFV9jaXJjdWxhdGlvbkluY3JJbmRleAAABBdwZXJjZW50YWdlUmVkdWN0aW9uSW5NcgkBDF9zZXRQYXJhbVZhbAIFGl9wZXJjZW50YWdlUmVkdWN0aW9uRmFjdG9yAAAEAk1yCQEMX3NldFBhcmFtVmFsAgUDX01yBQ1fdW5pdERlY2ltYWxzBA90b3RhbFN0YXdNaW50ZWQJAQxfc2V0UGFyYW1WYWwCBQpfdG90YWxTdGF3AAAEGHRvdGFsU3Rhd0xQSW5DaXJjdWxhdGlvbgkBDF9zZXRQYXJhbVZhbAIFDF90b3RhbFN0YXdMUAAABBBnbG9iYWxJbmRleENvdW50CQEMX3NldFBhcmFtVmFsAgURX2dsb2JhbEluZGV4Q291bnQAAAQNdG90YWxXYXZlc1JlZgkBDF9zZXRQYXJhbVZhbAIFDl90b3RhbFdhdmVzUmVmAAAJAMwIAgkBEV93cml0ZUdsb2JhbFBhcmFtAgUIX21hbmFnZXIFB21hbmFnZXIJAMwIAgkBEV93cml0ZUdsb2JhbFBhcmFtAgUEX0RmeAUDZGZ4CQDMCAIJARFfd3JpdGVHbG9iYWxQYXJhbQIFDF9zdGF3QXNzZXRJZAUHYXNzZXRJRAkAzAgCCQERX3dyaXRlR2xvYmFsUGFyYW0CBQ5fbGVzc2VlQWRkcmVzcwUJbGVhc2VOb2RlCQDMCAIJARFfd3JpdGVHbG9iYWxQYXJhbQIFFV9jaXJjdWxhdGlvbkluY3JJbmRleAUQY2lyY3VsYXRpb25JbmRleAkAzAgCCQERX3dyaXRlR2xvYmFsUGFyYW0CBQNfTXIFAk1yCQDMCAIJARFfd3JpdGVHbG9iYWxQYXJhbQIFGl9wZXJjZW50YWdlUmVkdWN0aW9uRmFjdG9yBRdwZXJjZW50YWdlUmVkdWN0aW9uSW5NcgkAzAgCCQERX3dyaXRlR2xvYmFsUGFyYW0CBQ5fdG90YWxXYXZlc1JlZgUNdG90YWxXYXZlc1JlZgkAzAgCCQERX3dyaXRlR2xvYmFsUGFyYW0CBQxfdG90YWxTdGF3TFAFGHRvdGFsU3Rhd0xQSW5DaXJjdWxhdGlvbgkAzAgCCQERX3dyaXRlR2xvYmFsUGFyYW0CBQpfdG90YWxTdGF3BQ90b3RhbFN0YXdNaW50ZWQJAMwIAgkBEV93cml0ZUdsb2JhbFBhcmFtAgURX2dsb2JhbEluZGV4Q291bnQFEGdsb2JhbEluZGV4Q291bnQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARJtb2RpZnlHbG9iYWxQYXJhbXMBA3ZhbAQGY2hlY2sxCQEMX29ubHlNYW5hZ2VyAQUBaQMJAAACBQZjaGVjazEFBmNoZWNrMQQIZXJyb3JNc2cJALkJAgkAzAgCAgNnb3QJAMwIAgIMbGlzdCBzaXplIG9mCQDMCAIJAKQDAQkAkAMBBQN2YWwJAMwIAgIlYnV0IGV4cGVjdGVkIFtnbG9iYWxfa2V5LCB2YWx1ZV0gcGFpcgUDbmlsAgEgBAZjaGVjazIJAQhfdGhyb3dJZgIJAQIhPQIJAJADAQUDdmFsAAIFCGVycm9yTXNnAwkAAAIFBmNoZWNrMgUGY2hlY2syBANrZXkJAJEDAgUDdmFsAAAEB3ZhbFR5cGUJALYJAQkAkQMCBQN2YWwAAQQHJG1hdGNoMAUHdmFsVHlwZQMJAAECBQckbWF0Y2gwAgNJbnQEAXgFByRtYXRjaDAEC3ZhbGlkYXRlS2V5CQEIX3Rocm93SWYCCQAAAgkBBV9nZXRTAQUDa2V5BQR1bml0CQCsAgIJAKwCAgIEa2V5IAUDa2V5Ag8gbm90IHJlY29nbml6ZWQDCQAAAgULdmFsaWRhdGVLZXkFC3ZhbGlkYXRlS2V5BBBlbnN1cmVWYWxpZFBhaXJzBAckbWF0Y2gxCQEWX2dldFJlZ2lzdHJ5RW50cnlWYWx1ZQEFA2tleQMJAAECBQckbWF0Y2gxAgNJbnQEAXQFByRtYXRjaDEGCQACAQIWaW52YWxpZCBrZXktdmFsdWUgcGFpcgMJAAACBRBlbnN1cmVWYWxpZFBhaXJzBRBlbnN1cmVWYWxpZFBhaXJzCQDMCAIJARFfd3JpdGVHbG9iYWxQYXJhbQIFA2tleQUBeAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAwkAAQIFByRtYXRjaDACBFVuaXQEAXgFByRtYXRjaDAEC3ZhbGlkYXRlS2V5CQEIX3Rocm93SWYCCQAAAgkBBV9nZXRTAQUDa2V5BQR1bml0CQCsAgIJAKwCAgIEa2V5IAUDa2V5Ag8gbm90IHJlY29nbml6ZWQDCQAAAgULdmFsaWRhdGVLZXkFC3ZhbGlkYXRlS2V5BAtzdHJpbmdWYWx1ZQkAkQMCBQN2YWwAAQQKcmVmQWRkcmVzcwkBFl9nZXRSZWdpc3RyeUVudHJ5VmFsdWUBBQhfbWFuYWdlcgQGY2hlY2s0BAckbWF0Y2gxBQpyZWZBZGRyZXNzAwkAAQIFByRtYXRjaDECBlN0cmluZwQHc3RyVHlwZQUHJG1hdGNoMQMJAAACCQCxAgEFB3N0clR5cGUJALECAQULc3RyaW5nVmFsdWUJARBfdmFsaWRhdGVBZGRyZXNzAgULc3RyaW5nVmFsdWUCI3N0cmluZyB0eXBlIGZvciB2YWx1ZSBub3Qgc3VwcG9ydGVkCQEOX3ZhbGlkYXRlQXNzZXQCBQtzdHJpbmdWYWx1ZQIjc3RyaW5nIHR5cGUgZm9yIHZhbHVlIG5vdCBzdXBwb3J0ZWQHAwkAAAIFBmNoZWNrNAUGY2hlY2s0CQDMCAIJARFfd3JpdGVHbG9iYWxQYXJhbQIFA2tleQULc3RyaW5nVmFsdWUFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgEJAKwCAgIRZmFpbGVkIHRvIG1vZGlmeSAJAJEDAgUDdmFsAAAJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEKcmV2b2tlTG9jawAEBmNoZWNrMQkBDF9vbmx5TWFuYWdlcgEFAWkDCQAAAgUGY2hlY2sxBQZjaGVjazEFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQVjbGFpbQENdHJhbnNhY3Rpb25JRAQNY2FsbGVyQWRkcmVzcwkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzBA1jb2xsYXRlcmFsS2V5CQC5CQIJAMwIAgUNY2FsbGVyQWRkcmVzcwkAzAgCBQ10cmFuc2FjdGlvbklECQDMCAIFDF93YXZlc0Ftb3VudAUDbmlsBQNTRVAEDWxvY2twZXJpb2RLZXkJALkJAgkAzAgCBQ1jYWxsZXJBZGRyZXNzCQDMCAIFDXRyYW5zYWN0aW9uSUQJAMwIAgUNX2xvY2tEdXJhdGlvbgUDbmlsBQNTRVAECWxvY2tJZEtleQkAuQkCCQDMCAIFDWNhbGxlckFkZHJlc3MJAMwIAgUNdHJhbnNhY3Rpb25JRAkAzAgCBQdfbG9ja0lkBQNuaWwFA1NFUAQTbG9ja3BlcmlvZEluTWlsaUtleQkAuQkCCQDMCAIFDWNhbGxlckFkZHJlc3MJAMwIAgUNdHJhbnNhY3Rpb25JRAkAzAgCBRRfbG9ja1BlcmlvZEluTWlsaVNlYwUDbmlsBQNTRVAEFHRvdGFsV2F2ZXNDbGFpbWVkS2V5CQC5CQIJAMwIAgUNY2FsbGVyQWRkcmVzcwkAzAgCBQ10cmFuc2FjdGlvbklECQDMCAIFEl90b3RhbFdhdmVzQ2xhaW1lZAUDbmlsBQNTRVAED3N0YXdMUEFtb3VudEtleQkAuQkCCQDMCAIFDWNhbGxlckFkZHJlc3MJAMwIAgUNdHJhbnNhY3Rpb25JRAkAzAgCBQ1fc3Rhd0xQQW1vdW50BQNuaWwFA1NFUAQOd2F2ZXNBbW91bnRLZXkJALkJAgkAzAgCBQ1jYWxsZXJBZGRyZXNzCQDMCAIFDXRyYW5zYWN0aW9uSUQJAMwIAgUMX3dhdmVzQW1vdW50BQNuaWwFA1NFUAQXdXNlclRvdGFsV2F2ZXNMb2NrZWRLZXkJALkJAgkAzAgCBQ1jYWxsZXJBZGRyZXNzCQDMCAIFEF91c2VyVG90YWxMb2NrZWQFA25pbAUDU0VQBBF1c2VyTGVhc2VTdGF0ZUtleQkAuQkCCQDMCAIFDWNhbGxlckFkZHJlc3MJAMwIAgUNdHJhbnNhY3Rpb25JRAkAzAgCBQ9fdXNlckxlYXNlU3RhdGUFA25pbAUDU0VQBA1sZWFzZVN0YXRlS2V5CQC5CQIJAMwIAgUNY2FsbGVyQWRkcmVzcwkAzAgCBQ10cmFuc2FjdGlvbklECQDMCAIFD191c2VyTGVhc2VTdGF0ZQUDbmlsBQNTRVAEHWRheXNBZnRlckxvY2tQZXJpb2RFbGFzcGVkS2V5CQC5CQIJAMwIAgUNY2FsbGVyQWRkcmVzcwkAzAgCBQ10cmFuc2FjdGlvbklECQDMCAIFFF9kYXlzQWZ0ZXJMb2NrUGVyaW9kBQNuaWwFA1NFUAQOZ2xvYmFsV2F2ZXNSZWYEByRtYXRjaDAJARZfZ2V0UmVnaXN0cnlFbnRyeVZhbHVlAQUOX3RvdGFsV2F2ZXNSZWYDCQABAgUHJG1hdGNoMAIDSW50BAF0BQckbWF0Y2gwBQF0CQACAQIgZmFpbGVkIHRvIGdldCBnbG9iYWwgdG90YWwgd2F2ZXMDCQAAAgUOZ2xvYmFsV2F2ZXNSZWYFDmdsb2JhbFdhdmVzUmVmBAxnbG9iYWxTdGF3UEwEByRtYXRjaDAJARZfZ2V0UmVnaXN0cnlFbnRyeVZhbHVlAQUMX3RvdGFsU3Rhd0xQAwkAAQIFByRtYXRjaDACA0ludAQBdAUHJG1hdGNoMAUBdAkAAgECIGZhaWxlZCB0byBnZXQgZ2xvYmFsIHRvdGFsIHdhdmVzAwkAAAIFDGdsb2JhbFN0YXdQTAUMZ2xvYmFsU3Rhd1BMBAZsb2NrSWQEByRtYXRjaDAJARZfZ2V0UmVnaXN0cnlFbnRyeVZhbHVlAQUJbG9ja0lkS2V5AwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAXQFByRtYXRjaDAFAXQJAAIBAhZmYWlsZWQgdG8gZ2V0IGxlYXNlIGlkAwkAAAIFBmxvY2tJZAUGbG9ja0lkBBR1c2VyVG90YWxXYXZlc0xvY2tlZAQHJG1hdGNoMAkBFl9nZXRSZWdpc3RyeUVudHJ5VmFsdWUBBRd1c2VyVG90YWxXYXZlc0xvY2tlZEtleQMJAAECBQckbWF0Y2gwAgNJbnQEAXQFByRtYXRjaDAFAXQJAAIBAjBmYWlsZWQgdG8gZ2V0IHRvdGFsIHdhdmVzIGxvY2tlZCBieSB0aGlzIGFkZHJlc3MDCQAAAgUUdXNlclRvdGFsV2F2ZXNMb2NrZWQFFHVzZXJUb3RhbFdhdmVzTG9ja2VkBAt3YXZlc0Ftb3VudAQHJG1hdGNoMAkBFl9nZXRSZWdpc3RyeUVudHJ5VmFsdWUBBQ53YXZlc0Ftb3VudEtleQMJAAECBQckbWF0Y2gwAgNJbnQEAXQFByRtYXRjaDAFAXQJAAIBAiBmYWlsZWQgdG8gZ2V0IHRvdGFsIHdhdmVzIGxvY2tlZAMJAAACBQt3YXZlc0Ftb3VudAULd2F2ZXNBbW91bnQEEXRvdGFsV2F2ZXNDbGFpbWVkBAckbWF0Y2gwCQEWX2dldFJlZ2lzdHJ5RW50cnlWYWx1ZQEFFHRvdGFsV2F2ZXNDbGFpbWVkS2V5AwkAAQIFByRtYXRjaDACA0ludAQBdAUHJG1hdGNoMAUBdAkAAgECIWZhaWxlZCB0byBnZXQgdG90YWwgd2F2ZXMgY2xhaW1lZAMJAAACBRF0b3RhbFdhdmVzQ2xhaW1lZAURdG90YWxXYXZlc0NsYWltZWQEDHN0YXdMUEFtb3VudAQHJG1hdGNoMAkBFl9nZXRSZWdpc3RyeUVudHJ5VmFsdWUBBQ9zdGF3TFBBbW91bnRLZXkDCQABAgUHJG1hdGNoMAIDSW50BAF0BQckbWF0Y2gwBQF0CQACAQIUZmFpbGVkIHRvIGdldCBzdGF3UEwDCQAAAgUMc3Rhd0xQQW1vdW50BQxzdGF3TFBBbW91bnQEEGxvY2tQZXJpb2RJbk1pbGkEByRtYXRjaDAJARZfZ2V0UmVnaXN0cnlFbnRyeVZhbHVlAQUTbG9ja3BlcmlvZEluTWlsaUtleQMJAAECBQckbWF0Y2gwAgNJbnQEAXQFByRtYXRjaDAFAXQJAAIBAiJmYWlsZWQgdG8gZ2V0IGxvY2sgcGVyaW9kIHRpbWVzcGFtAwkAAAIFEGxvY2tQZXJpb2RJbk1pbGkFEGxvY2tQZXJpb2RJbk1pbGkEEGN1cnJlbnRUaW1lU3RhbXAEByRtYXRjaDAJARBfZ2V0TmV3VGltZVN0YW1wAQUGaGVpZ2h0AwkAAQIFByRtYXRjaDACA0ludAQBdAUHJG1hdGNoMAUBdAkAAgECH2ZhaWxlZCB0byBnZXQgY3VycmVudCB0aW1lc3RhbXADCQAAAgUQY3VycmVudFRpbWVTdGFtcAUQY3VycmVudFRpbWVTdGFtcAQKY29sbGF0ZXJhbAQHJG1hdGNoMAkBFl9nZXRSZWdpc3RyeUVudHJ5VmFsdWUBBQ1jb2xsYXRlcmFsS2V5AwkAAQIFByRtYXRjaDACA0ludAQBdAUHJG1hdGNoMAUBdAkAAgECGGZhaWxlZCB0byBnZXQgY29sbGF0ZXJhbAMJAAACBQpjb2xsYXRlcmFsBQpjb2xsYXRlcmFsBApsb2NrUGVyaW9kBAckbWF0Y2gwCQEWX2dldFJlZ2lzdHJ5RW50cnlWYWx1ZQEFDWxvY2twZXJpb2RLZXkDCQABAgUHJG1hdGNoMAIDSW50BAF0BQckbWF0Y2gwBQF0CQACAQIYZmFpbGVkIHRvIGdldCBsb2NrUGVyaW9kAwkAAAIFCmxvY2tQZXJpb2QFCmxvY2tQZXJpb2QEEWN1cnJlbnRMZWFzZVN0YXRlBAckbWF0Y2gwCQEWX2dldFJlZ2lzdHJ5RW50cnlWYWx1ZQEFEXVzZXJMZWFzZVN0YXRlS2V5AwkAAQIFByRtYXRjaDACBlN0cmluZwQBdAUHJG1hdGNoMAUBdAkAAgECGWZhaWxlZCB0byBnZXQgbGVhc2Ugc3RhdGUDCQAAAgURY3VycmVudExlYXNlU3RhdGUFEWN1cnJlbnRMZWFzZVN0YXRlBApsZWFzZVN0YXRlBAckbWF0Y2gwCQEWX2dldFJlZ2lzdHJ5RW50cnlWYWx1ZQEFDWxlYXNlU3RhdGVLZXkDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAF0BQckbWF0Y2gwBQF0CQACAQIiZmFpbGVkIHRvIGdldCBsZWFzZSBzdGF0ZSBmb3IgdXNlcgMJAAACBQpsZWFzZVN0YXRlBQpsZWFzZVN0YXRlBBpkYXlzQWZ0ZXJMb2NrUGVyaW9kRWxhc3BlZAQHJG1hdGNoMAkBBV9nZXRTAQUdZGF5c0FmdGVyTG9ja1BlcmlvZEVsYXNwZWRLZXkDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAF0BQckbWF0Y2gwBAckbWF0Y2gxCQEWX2dldFJlZ2lzdHJ5RW50cnlWYWx1ZQEFHWRheXNBZnRlckxvY2tQZXJpb2RFbGFzcGVkS2V5AwkAAQIFByRtYXRjaDECA0ludAQBegUHJG1hdGNoMQUBegAAAAADCQAAAgUaZGF5c0FmdGVyTG9ja1BlcmlvZEVsYXNwZWQFGmRheXNBZnRlckxvY2tQZXJpb2RFbGFzcGVkBAZjaGVjazEJAQhfdGhyb3dJZgIJAGYCBRBsb2NrUGVyaW9kSW5NaWxpBRBjdXJyZW50VGltZVN0YW1wAipsb2NrIHBlcmlvZCBmb3IgdGhpcyBlbnRyeSBoYXMgbm90IGVsYXBzZWQDCQAAAgUGY2hlY2sxBQZjaGVjazEEC2xlYXNlQWN0aW9uAwkAAAIFEWN1cnJlbnRMZWFzZVN0YXRlAgZsZWFzZWQJAJQKAgkBC0xlYXNlQ2FuY2VsAQUGbG9ja0lkCQEJX3dyaXRlU3RyAgURdXNlckxlYXNlU3RhdGVLZXkCCWNhbmNlbGxlZAkAlAoCCQEJX3dyaXRlU3RyAgURdXNlckxlYXNlU3RhdGVLZXkCCWNhbmNlbGxlZAkBCV93cml0ZVN0cgIFEXVzZXJMZWFzZVN0YXRlS2V5AgljYW5jZWxsZWQEBmNoZWNrMgkBCF90aHJvd0lmAgMJAAACAAAFC3dhdmVzQW1vdW50BgkAAAIAAAUMc3Rhd0xQQW1vdW50AiFhbGwgY2xhaW1zIGV4aGF1c3RlZCBmb3IgdGhpcyB0cngDCQAAAgUGY2hlY2syBQZjaGVjazIEEmVtaXNzaW9uVmFsdWVQZXJEVAkBEl9lbWlzc2lvblJhdGVXYXZlcwIFCmxvY2tQZXJpb2QFCmNvbGxhdGVyYWwEC2NsYWltQWN0aW9uBA10aW1lU3RhbXBEaWZmCQBlAgUQY3VycmVudFRpbWVTdGFtcAUQbG9ja1BlcmlvZEluTWlsaQQFeGRheXMJAGkCBQ10aW1lU3RhbXBEaWZmBQNfRHQDCQAAAgUFeGRheXMAAAkAAgECImxlc3MgdGhhbiAyNGhycyBiZWZvcmUgZmlyc3QgY2xhaW0DCQBnAgUaZGF5c0FmdGVyTG9ja1BlcmlvZEVsYXNwZWQFBXhkYXlzCQACAQIfMjRocnMgb3IgbGVzcyBiZWZvcmUgbmV4dCBjbGFpbQQUdG90YWxBbW91bnRDbGFpbWFibGUJAGgCBRpkYXlzQWZ0ZXJMb2NrUGVyaW9kRWxhc3BlZAUSZW1pc3Npb25WYWx1ZVBlckRUBAhjaGVjazNfMQkBCF90aHJvd0lmAgkAAAIFFHRvdGFsQW1vdW50Q2xhaW1hYmxlBRF0b3RhbFdhdmVzQ2xhaW1lZAIcY2FuIG9ubHkgY2xhaW0gb25jZSBpbiAyNGhycwMJAAACBQhjaGVjazNfMQUIY2hlY2szXzEECGNoZWNrM18yCQEIX3Rocm93SWYCCQBmAgkAZAIFFHRvdGFsQW1vdW50Q2xhaW1hYmxlBRF0b3RhbFdhdmVzQ2xhaW1lZAULd2F2ZXNBbW91bnQCFGFsbCBjbGFpbXMgZXhoYXVzdGVkAwkAAAIFCGNoZWNrM18yBQhjaGVjazNfMgQRY2xhaW1BbW91bnRUb1NlbmQDCQAAAgUaZGF5c0FmdGVyTG9ja1BlcmlvZEVsYXNwZWQAAQUUdG90YWxBbW91bnRDbGFpbWFibGUJAGUCBRR0b3RhbEFtb3VudENsYWltYWJsZQURdG90YWxXYXZlc0NsYWltZWQEEm5ld1RvdGFsV2F2ZXNDbGFpbQUUdG90YWxBbW91bnRDbGFpbWFibGUEDm5ld1dhdmVzQW1vdW50AwkAAAIFGmRheXNBZnRlckxvY2tQZXJpb2RFbGFzcGVkAAEJAGUCBQt3YXZlc0Ftb3VudAUUdG90YWxBbW91bnRDbGFpbWFibGUJAGUCBQt3YXZlc0Ftb3VudAkAZQIFFHRvdGFsQW1vdW50Q2xhaW1hYmxlBRF0b3RhbFdhdmVzQ2xhaW1lZAQPbmV3U3Rhd0xQQW1vdW50AwkAAAIFGmRheXNBZnRlckxvY2tQZXJpb2RFbGFzcGVkAAEJAGUCBQxzdGF3TFBBbW91bnQFFHRvdGFsQW1vdW50Q2xhaW1hYmxlCQBlAgUMc3Rhd0xQQW1vdW50CQBlAgUUdG90YWxBbW91bnRDbGFpbWFibGUFEXRvdGFsV2F2ZXNDbGFpbWVkBBBuZXdHbG9iYWxXYXZlUmVmCQBlAgUOZ2xvYmFsV2F2ZXNSZWYFDm5ld1dhdmVzQW1vdW50BA9uZXdHbG9iYWxTdGF3UEwJAGUCBQxnbG9iYWxTdGF3UEwFD25ld1N0YXdMUEFtb3VudAQXbmV3VXNlclRvdGFsV2F2ZXNMb2NrZWQJAGUCBRR1c2VyVG90YWxXYXZlc0xvY2tlZAURY2xhaW1BbW91bnRUb1NlbmQEEHdhdmVzQW1vdW50RW50cnkJALkJAgkAzAgCAgIlZAkAzAgCCQCkAwEFDm5ld1dhdmVzQW1vdW50BQNuaWwFA1NFUAQRc3Rhd0xQQW1vdW50RW50cnkJALkJAgkAzAgCAgIlZAkAzAgCCQCkAwEFD25ld1N0YXdMUEFtb3VudAUDbmlsBQNTRVAEFnRvdGFsV2F2ZXNDbGFpbWVkRW50cnkJALkJAgkAzAgCAgIlZAkAzAgCCQCkAwEFEm5ld1RvdGFsV2F2ZXNDbGFpbQUDbmlsBQNTRVAEHG5ld1VzZXJUb3RhbFdhdmVzTG9ja2VkRW50cnkJALkJAgkAzAgCAgIlZAkAzAgCCQCkAwEFF25ld1VzZXJUb3RhbFdhdmVzTG9ja2VkBQNuaWwFA1NFUAQfZGF5c0FmdGVyTG9ja1BlcmlvZEVsYXNwZWRFbnRyeQkAuQkCCQDMCAICAiVkCQDMCAIJAKQDAQUFeGRheXMFA25pbAUDU0VQCQDMCAIIBQtsZWFzZUFjdGlvbgJfMQkAzAgCCAULbGVhc2VBY3Rpb24CXzIJAMwIAgkBCV93cml0ZVN0cgIFDndhdmVzQW1vdW50S2V5BRB3YXZlc0Ftb3VudEVudHJ5CQDMCAIJAQlfd3JpdGVTdHICBQ9zdGF3TFBBbW91bnRLZXkFEXN0YXdMUEFtb3VudEVudHJ5CQDMCAIJAQlfd3JpdGVTdHICBRR0b3RhbFdhdmVzQ2xhaW1lZEtleQUWdG90YWxXYXZlc0NsYWltZWRFbnRyeQkAzAgCCQEJX3dyaXRlU3RyAgUXdXNlclRvdGFsV2F2ZXNMb2NrZWRLZXkFHG5ld1VzZXJUb3RhbFdhdmVzTG9ja2VkRW50cnkJAMwIAgkBCV93cml0ZVN0cgIFHWRheXNBZnRlckxvY2tQZXJpb2RFbGFzcGVkS2V5BR9kYXlzQWZ0ZXJMb2NrUGVyaW9kRWxhc3BlZEVudHJ5CQDMCAIJARFfd3JpdGVHbG9iYWxQYXJhbQIFDl90b3RhbFdhdmVzUmVmBRBuZXdHbG9iYWxXYXZlUmVmCQDMCAIJARFfd3JpdGVHbG9iYWxQYXJhbQIFDF90b3RhbFN0YXdMUAUPbmV3R2xvYmFsU3Rhd1BMCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQgIBQFpBmNhbGxlcgVieXRlcwURY2xhaW1BbW91bnRUb1NlbmQFBHVuaXQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgMJAAACBQtjbGFpbUFjdGlvbgULY2xhaW1BY3Rpb24FC2NsYWltQWN0aW9uCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCG1pbnRTdGF3AQpsb2NrUGVyaW9kBA1jYWxsZXJBZGRyZXNzCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMEBXRyeElECQDYBAEIBQFpDXRyYW5zYWN0aW9uSWQEBmNoZWNrMQkBCF90aHJvd0lmAgkBAiE9AgABCQCQAwEIBQFpCHBheW1lbnRzAhRubyBwYXltZW50cyBhdHRhY2hlZAMJAAACBQZjaGVjazEFBmNoZWNrMQQGY2hlY2syAwkBCWlzRGVmaW5lZAEICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAkAAgECFG9ubHkgd2F2ZXMgc3VwcG9ydGVkBgMJAAACBQZjaGVjazIFBmNoZWNrMgQNYW1vdW50SW5XYXZlcwgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQEBmNoZWNrMwMDCQBmAgUOX21pbkxvY2tBbW91bnQFDWFtb3VudEluV2F2ZXMGCQBmAgUNYW1vdW50SW5XYXZlcwUOX21heExvY2tBbW91bnQJAAIBAj9sb2NrIGFtb3VudCBvdXQgb2YgcmFuZ2UsIG1pbmltdW06IDEgd2F2ZXMsIG1heGltdW06IDEwMDAgd2F2ZXMGAwkAAAIFBmNoZWNrMwUGY2hlY2szBAZjaGVjazQDCQBmAgUOX21pbkxvY2twZXJpb2QFCmxvY2tQZXJpb2QJAAIBAh5taW5pbXVtIG9mIDE0IGRheXMgbG9jayBwZXJpb2QGAwkAAAIFBmNoZWNrNAUGY2hlY2s0BA10b3RhbFN0YXdNaW50CQEHX3N0YXdNRgIFCmxvY2tQZXJpb2QFDWFtb3VudEluV2F2ZXMEBnN0YXdQTAUNYW1vdW50SW5XYXZlcwQDZmVlCQBrAwgFDXRvdGFsU3Rhd01pbnQCXzEACgBkBBF1c2VyR2V0U3Rhd0Ftb3VudAkAZQIIBQ10b3RhbFN0YXdNaW50Al8xBQNmZWUEE2xvY2tQZXJpb2RUb01pbGlzZWMJAGQCCQEQX2dldE5ld1RpbWVTdGFtcAEFBmhlaWdodAkBDl9kYXlzVG9NaWxpU2VjAQUKbG9ja1BlcmlvZAMJAAACBRNsb2NrUGVyaW9kVG9NaWxpc2VjBRNsb2NrUGVyaW9kVG9NaWxpc2VjBAluZXdfaW5kZXgEByRtYXRjaDAJARZfZ2V0UmVnaXN0cnlFbnRyeVZhbHVlAQURX2dsb2JhbEluZGV4Q291bnQDCQABAgUHJG1hdGNoMAIDSW50BAF0BQckbWF0Y2gwCQBkAgUBdAABCQACAQIoZmFpbGVkIHRvIGdldCBjdXJyZW50IGdsb2JhbCBpbmRleCBjb3VudAMJAAACBQluZXdfaW5kZXgFCW5ld19pbmRleAQKYWRkcmVzc0ZlZQQHJG1hdGNoMAkBFl9nZXRSZWdpc3RyeUVudHJ5VmFsdWUBBQRfRGZ4AwkAAQIFByRtYXRjaDACBlN0cmluZwQBdAUHJG1hdGNoMAkBB0FkZHJlc3MBCQDZBAEFAXQJAAIBAhlmYWlsZWQgdG8gZ2V0IGRmeCBhZGRyZXNzAwkAAAIFCmFkZHJlc3NGZWUFCmFkZHJlc3NGZWUEC3N0YXdBc3NldElkBAckbWF0Y2gwCQEWX2dldFJlZ2lzdHJ5RW50cnlWYWx1ZQEFDF9zdGF3QXNzZXRJZAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXQFByRtYXRjaDAJANkEAQUBdAkAAgECFmZhaWxlZCB0byBnZXQgYXNzZXQgaWQDCQAAAgULc3Rhd0Fzc2V0SWQFC3N0YXdBc3NldElkBAZsZXNzZWUEByRtYXRjaDAJARZfZ2V0UmVnaXN0cnlFbnRyeVZhbHVlAQUOX2xlc3NlZUFkZHJlc3MDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAF0BQckbWF0Y2gwCQEHQWRkcmVzcwEJANkEAQUBdAkAAgECIGZhaWxlZCB0byBnZXQgbGVhc2Ugbm9kZSBhZGRyZXNzAwkAAAIFBmxlc3NlZQUGbGVzc2VlBBB1c2VyTG9ja0luZGV4S2V5CQC5CQIJAMwIAgUNY2FsbGVyQWRkcmVzcwkAzAgCBRRfdXNlckxvY2FsSW5kZXhDb3VudAUDbmlsBQNTRVAEEnVzZXJUb3RhbExvY2tlZEtleQkAuQkCCQDMCAIFDWNhbGxlckFkZHJlc3MJAMwIAgUQX3VzZXJUb3RhbExvY2tlZAUDbmlsBQNTRVAEDnVzZXJJbmRleENvdW50BAckbWF0Y2gwCQEFX2dldFMBBRB1c2VyTG9ja0luZGV4S2V5AwkAAQIFByRtYXRjaDACBlN0cmluZwQBeAUHJG1hdGNoMAQHJG1hdGNoMQkBFl9nZXRSZWdpc3RyeUVudHJ5VmFsdWUBBRB1c2VyTG9ja0luZGV4S2V5AwkAAQIFByRtYXRjaDECA0ludAQBdAUHJG1hdGNoMQkAZAIFAXQAAQABAAEDCQAAAgUOdXNlckluZGV4Q291bnQFDnVzZXJJbmRleENvdW50BA91c2VyVG90YWxMb2NrZWQEByRtYXRjaDAJAQVfZ2V0UwEFEnVzZXJUb3RhbExvY2tlZEtleQMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXgFByRtYXRjaDAEByRtYXRjaDEJARZfZ2V0UmVnaXN0cnlFbnRyeVZhbHVlAQUSdXNlclRvdGFsTG9ja2VkS2V5AwkAAQIFByRtYXRjaDECA0ludAQBdAUHJG1hdGNoMQkAZAIFAXQFDWFtb3VudEluV2F2ZXMFDWFtb3VudEluV2F2ZXMFDWFtb3VudEluV2F2ZXMDCQAAAgUPdXNlclRvdGFsTG9ja2VkBQ91c2VyVG90YWxMb2NrZWQECGxlYXNlT3V0CQDECAIFBmxlc3NlZQUNYW1vdW50SW5XYXZlcwQKbGVhc2VJZFN0cgkA2AQBCQC5CAEFCGxlYXNlT3V0CQDOCAIJAM4IAgkAzggCCQDMCAIFCGxlYXNlT3V0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFCmFkZHJlc3NGZWUFA2ZlZQULc3Rhd0Fzc2V0SWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCAgFAWkGY2FsbGVyBWJ5dGVzBRF1c2VyR2V0U3Rhd0Ftb3VudAULc3Rhd0Fzc2V0SWQFA25pbAkBEl9yZWdpc3RlclVzZXJFbnRyeQ0FBXRyeElEBQ1jYWxsZXJBZGRyZXNzBQpsb2NrUGVyaW9kBRNsb2NrUGVyaW9kVG9NaWxpc2VjBQluZXdfaW5kZXgFDWFtb3VudEluV2F2ZXMFEXVzZXJHZXRTdGF3QW1vdW50BQZzdGF3UEwFBmhlaWdodAUKbGVhc2VJZFN0cgUPdXNlclRvdGFsTG9ja2VkBQ51c2VySW5kZXhDb3VudAIGbGVhc2VkCQESX3VwZGF0ZUdsb2JhbEVudHJ5BAUNYW1vdW50SW5XYXZlcwgFDXRvdGFsU3Rhd01pbnQCXzEFBnN0YXdQTAUJbmV3X2luZGV4CAUNdG90YWxTdGF3TWludAJfMgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgBTxFot", "height": 2499767, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: EpVdmF2w9bPsvaoq4LeXWzMaMTfKvoFBVThjYx6vF4N3 Next: meEohJXz5oMDLVnnc8nHWdTgY4moNt11HSq8KWSJaqT Diff:
OldNewDifferences
484484
485485 func bT (h,bU) = {
486486 let bV = fraction(h, 15, 10)
487- let bW = ((fraction(c, ((bU / ((bV - h) * f)) / 2), 1) * f) * f)
488- bW
487+ let bW = (fraction(f, bU, (bV - h)) / 2)
488+ let bX = (fraction(c, bW, 1) * f)
489+ bX
489490 }
490491
491492
492-func bX (bY) = {
493- let bZ = Z(M(J), "could not get the running StawLP")
494-[ab(J, (bZ + bY))]
493+func bY (bZ) = {
494+ let ca = Z(M(J), "could not get the running StawLP")
495+[ab(J, (ca + bZ))]
495496 }
496497
497498
498-func ca (bY) = {
499- let bZ = Z(M(J), "could not get the running StawLP")
500-[ab(J, (bZ - bY))]
499+func cb (bZ) = {
500+ let ca = Z(M(J), "could not get the running StawLP")
501+[ab(J, (ca - bZ))]
501502 }
502503
503504
504-func cb (bY) = {
505- let cc = Z(M(I), "could not get total locked waves")
506-[ab(I, (cc + bY))]
505+func cc (bZ) = {
506+ let cd = Z(M(I), "could not get total locked waves")
507+[ab(I, (cd + bZ))]
507508 }
508509
509510
510-func cd (bY) = {
511- let cc = Z(M(I), "could not get total locked waves")
512-[ab(I, (cc - bY))]
511+func ce (bZ) = {
512+ let cd = Z(M(I), "could not get total locked waves")
513+[ab(I, (cd - bZ))]
513514 }
514515
515516
516-func ce (cf) = {
517- let cg = {
518- let V = blockInfoByHeight(cf)
517+func cf (cg) = {
518+ let ch = {
519+ let V = blockInfoByHeight(cg)
519520 if ($isInstanceOf(V, "BlockInfo"))
520521 then {
521- let ch = V
522- ch.timestamp
522+ let ci = V
523+ ci.timestamp
523524 }
524525 else throw("counld get timestamp")
525526 }
526- cg
527+ ch
527528 }
528529
529530
530-func ci (aF) = {
531+func cj (aF) = {
531532 let V = assetInfo(fromBase58String(aF))
532533 if ($isInstanceOf(V, "Asset"))
533534 then {
540541
541542 @Callable(au)
542543 func getEmission (h,bU) = {
543- let cj = at(au)
544- if ((cj == cj))
544+ let ck = at(au)
545+ if ((ck == ck))
545546 then $Tuple2(nil, bT(h, bU))
546547 else throw("Strict value is not equal to itself.")
547548 }
549550
550551
551552 @Callable(au)
552-func init (av,ck,aF,cl) = {
553- let cm = if (isDefined(O(n)))
553+func init (av,cl,aF,cm) = {
554+ let cn = if (isDefined(O(n)))
554555 then at(au)
555556 else true
556- if ((cm == cm))
557+ if ((cn == cn))
557558 then {
558- let cj = ax(av, "invalid address")
559- if ((cj == cj))
559+ let ck = ax(av, "invalid address")
560+ if ((ck == ck))
560561 then {
561- let cn = ax(ck, "invalid address")
562- if ((cn == cn))
562+ let co = ax(cl, "invalid address")
563+ if ((co == co))
563564 then {
564- let co = ax(cl, "invalid address")
565- if ((co == co))
565+ let cp = ax(cm, "invalid address")
566+ if ((cp == cp))
566567 then {
567- let cp = if (aE(aF, "invalid asset"))
568+ let cq = if (aE(aF, "invalid asset"))
568569 then true
569570 else throw("invalid asset Id")
570- if ((cp == cp))
571+ if ((cq == cq))
571572 then {
572- let cq = T(p, 0)
573- let cr = T(k, 0)
574- let cs = T(l, c)
575- let ct = T(H, 0)
576- let cu = T(J, 0)
577- let cv = T(K, 0)
578- let cw = T(I, 0)
579-[ag(n, av), ag(o, ck), ag(m, aF), ag(q, cl), ag(p, cq), ag(l, cs), ag(k, cr), ag(I, cw), ag(J, cu), ag(H, ct), ag(K, cv)]
573+ let cr = T(p, 0)
574+ let cs = T(k, 0)
575+ let ct = T(l, c)
576+ let cu = T(H, 0)
577+ let cv = T(J, 0)
578+ let cw = T(K, 0)
579+ let cx = T(I, 0)
580+[ag(n, av), ag(o, cl), ag(m, aF), ag(q, cm), ag(p, cr), ag(l, ct), ag(k, cs), ag(I, cx), ag(J, cv), ag(H, cu), ag(K, cw)]
580581 }
581582 else throw("Strict value is not equal to itself.")
582583 }
593594
594595 @Callable(au)
595596 func modifyGlobalParams (X) = {
596- let cj = at(au)
597- if ((cj == cj))
597+ let ck = at(au)
598+ if ((ck == ck))
598599 then {
599600 let az = makeString(["got", "list size of", toString(size(X)), "but expected [global_key, value] pair"], " ")
600- let cn = ae((size(X) != 2), az)
601- if ((cn == cn))
601+ let co = ae((size(X) != 2), az)
602+ if ((co == co))
602603 then {
603604 let N = X[0]
604- let cx = parseInt(X[1])
605- let V = cx
605+ let cy = parseInt(X[1])
606+ let V = cy
606607 if ($isInstanceOf(V, "Int"))
607608 then {
608609 let al = V
609- let cy = ae((O(N) == unit), (("key " + N) + " not recognized"))
610- if ((cy == cy))
610+ let cz = ae((O(N) == unit), (("key " + N) + " not recognized"))
611+ if ((cz == cz))
611612 then {
612- let cz = {
613+ let cA = {
613614 let aB = aj(N)
614615 if ($isInstanceOf(aB, "Int"))
615616 then {
618619 }
619620 else throw("invalid key-value pair")
620621 }
621- if ((cz == cz))
622+ if ((cA == cA))
622623 then [ag(N, al)]
623624 else throw("Strict value is not equal to itself.")
624625 }
627628 else if ($isInstanceOf(V, "Unit"))
628629 then {
629630 let al = V
630- let cy = ae((O(N) == unit), (("key " + N) + " not recognized"))
631- if ((cy == cy))
631+ let cz = ae((O(N) == unit), (("key " + N) + " not recognized"))
632+ if ((cz == cz))
632633 then {
633- let cA = X[1]
634- let cB = aj(n)
635- let cp = {
636- let aB = cB
634+ let cB = X[1]
635+ let cC = aj(n)
636+ let cq = {
637+ let aB = cC
637638 if ($isInstanceOf(aB, "String"))
638639 then {
639- let cC = aB
640- if ((size(cC) == size(cA)))
641- then ax(cA, "string type for value not supported")
642- else aE(cA, "string type for value not supported")
640+ let cD = aB
641+ if ((size(cD) == size(cB)))
642+ then ax(cB, "string type for value not supported")
643+ else aE(cB, "string type for value not supported")
643644 }
644645 else false
645646 }
646- if ((cp == cp))
647- then [ag(N, cA)]
647+ if ((cq == cq))
648+ then [ag(N, cB)]
648649 else throw("Strict value is not equal to itself.")
649650 }
650651 else throw("Strict value is not equal to itself.")
660661
661662 @Callable(au)
662663 func revokeLock () = {
663- let cj = at(au)
664- if ((cj == cj))
664+ let ck = at(au)
665+ if ((ck == ck))
665666 then nil
666667 else throw("Strict value is not equal to itself.")
667668 }
670671
671672 @Callable(au)
672673 func claim (be) = {
673- let cD = toBase58String(au.caller.bytes)
674- let cE = makeString([cD, be, z], a)
675- let cF = makeString([cD, be, w], a)
676- let cG = makeString([cD, be, y], a)
677- let cH = makeString([cD, be, E], a)
678- let cI = makeString([cD, be, F], a)
679- let cJ = makeString([cD, be, B], a)
680- let cK = makeString([cD, be, z], a)
681- let cL = makeString([cD, v], a)
682- let cM = makeString([cD, be, G], a)
683- let cN = makeString([cD, be, G], a)
684- let cO = makeString([cD, be, L], a)
685- let cP = {
674+ let cE = toBase58String(au.caller.bytes)
675+ let cF = makeString([cE, be, z], a)
676+ let cG = makeString([cE, be, w], a)
677+ let cH = makeString([cE, be, y], a)
678+ let cI = makeString([cE, be, E], a)
679+ let cJ = makeString([cE, be, F], a)
680+ let cK = makeString([cE, be, B], a)
681+ let cL = makeString([cE, be, z], a)
682+ let cM = makeString([cE, v], a)
683+ let cN = makeString([cE, be, G], a)
684+ let cO = makeString([cE, be, G], a)
685+ let cP = makeString([cE, be, L], a)
686+ let cQ = {
686687 let V = aj(I)
687688 if ($isInstanceOf(V, "Int"))
688689 then {
691692 }
692693 else throw("failed to get global total waves")
693694 }
694- if ((cP == cP))
695+ if ((cQ == cQ))
695696 then {
696- let cQ = {
697+ let cR = {
697698 let V = aj(J)
698699 if ($isInstanceOf(V, "Int"))
699700 then {
702703 }
703704 else throw("failed to get global total waves")
704705 }
705- if ((cQ == cQ))
706+ if ((cR == cR))
706707 then {
707708 let bl = {
708- let V = aj(cG)
709+ let V = aj(cH)
709710 if ($isInstanceOf(V, "ByteVector"))
710711 then {
711712 let aJ = V
715716 }
716717 if ((bl == bl))
717718 then {
718- let cR = {
719- let V = aj(cL)
719+ let cS = {
720+ let V = aj(cM)
720721 if ($isInstanceOf(V, "Int"))
721722 then {
722723 let aJ = V
724725 }
725726 else throw("failed to get total waves locked by this address")
726727 }
727- if ((cR == cR))
728+ if ((cS == cS))
728729 then {
729730 let aV = {
730- let V = aj(cK)
731+ let V = aj(cL)
731732 if ($isInstanceOf(V, "Int"))
732733 then {
733734 let aJ = V
737738 }
738739 if ((aV == aV))
739740 then {
740- let cS = {
741- let V = aj(cI)
741+ let cT = {
742+ let V = aj(cJ)
742743 if ($isInstanceOf(V, "Int"))
743744 then {
744745 let aJ = V
746747 }
747748 else throw("failed to get total waves claimed")
748749 }
749- if ((cS == cS))
750+ if ((cT == cT))
750751 then {
751752 let bj = {
752- let V = aj(cJ)
753+ let V = aj(cK)
753754 if ($isInstanceOf(V, "Int"))
754755 then {
755756 let aJ = V
759760 }
760761 if ((bj == bj))
761762 then {
762- let cT = {
763- let V = aj(cH)
763+ let cU = {
764+ let V = aj(cI)
764765 if ($isInstanceOf(V, "Int"))
765766 then {
766767 let aJ = V
768769 }
769770 else throw("failed to get lock period timespam")
770771 }
771- if ((cT == cT))
772+ if ((cU == cU))
772773 then {
773- let cU = {
774- let V = ce(height)
774+ let cV = {
775+ let V = cf(height)
775776 if ($isInstanceOf(V, "Int"))
776777 then {
777778 let aJ = V
779780 }
780781 else throw("failed to get current timestamp")
781782 }
782- if ((cU == cU))
783+ if ((cV == cV))
783784 then {
784785 let bU = {
785- let V = aj(cE)
786+ let V = aj(cF)
786787 if ($isInstanceOf(V, "Int"))
787788 then {
788789 let aJ = V
793794 if ((bU == bU))
794795 then {
795796 let h = {
796- let V = aj(cF)
797+ let V = aj(cG)
797798 if ($isInstanceOf(V, "Int"))
798799 then {
799800 let aJ = V
803804 }
804805 if ((h == h))
805806 then {
806- let cV = {
807- let V = aj(cM)
807+ let cW = {
808+ let V = aj(cN)
808809 if ($isInstanceOf(V, "String"))
809810 then {
810811 let aJ = V
812813 }
813814 else throw("failed to get lease state")
814815 }
815- if ((cV == cV))
816+ if ((cW == cW))
816817 then {
817818 let bo = {
818- let V = aj(cN)
819+ let V = aj(cO)
819820 if ($isInstanceOf(V, "String"))
820821 then {
821822 let aJ = V
825826 }
826827 if ((bo == bo))
827828 then {
828- let cW = {
829- let V = O(cO)
829+ let cX = {
830+ let V = O(cP)
830831 if ($isInstanceOf(V, "String"))
831832 then {
832833 let aJ = V
833- let aB = aj(cO)
834+ let aB = aj(cP)
834835 if ($isInstanceOf(aB, "Int"))
835836 then {
836- let cX = aB
837- cX
837+ let cY = aB
838+ cY
838839 }
839840 else 0
840841 }
841842 else 0
842843 }
843- if ((cW == cW))
844+ if ((cX == cX))
844845 then {
845- let cj = ae((cT > cU), "lock period for this entry has not elapsed")
846- if ((cj == cj))
846+ let ck = ae((cU > cV), "lock period for this entry has not elapsed")
847+ if ((ck == ck))
847848 then {
848- let cY = if ((cV == "leased"))
849- then $Tuple2(LeaseCancel(bl), ad(cM, "cancelled"))
850- else $Tuple2(ad(cM, "cancelled"), ad(cM, "cancelled"))
851- let cn = ae(if ((0 == aV))
849+ let cZ = if ((cW == "leased"))
850+ then $Tuple2(LeaseCancel(bl), ad(cN, "cancelled"))
851+ else $Tuple2(ad(cN, "cancelled"), ad(cN, "cancelled"))
852+ let co = ae(if ((0 == aV))
852853 then true
853854 else (0 == bj), "all claims exhausted for this trx")
854- if ((cn == cn))
855+ if ((co == co))
855856 then {
856- let cZ = bT(h, bU)
857- let da = {
858- let db = (cU - cT)
859- let dc = (db / f)
860- if ((dc == 0))
857+ let da = bT(h, bU)
858+ let db = {
859+ let dc = (cV - cU)
860+ let dd = (dc / f)
861+ if ((dd == 0))
861862 then throw("less than 24hrs before first claim")
862- else if ((cW >= dc))
863+ else if ((cX >= dd))
863864 then throw("24hrs or less before next claim")
864865 else {
865- let dd = (cW * cZ)
866- let de = ae((dd == cS), "can only claim once in 24hrs")
867- if ((de == de))
866+ let de = (cX * da)
867+ let df = ae((de == cT), "can only claim once in 24hrs")
868+ if ((df == df))
868869 then {
869- let df = ae(((dd + cS) > aV), "all claims exhausted")
870- if ((df == df))
870+ let dg = ae(((de + cT) > aV), "all claims exhausted")
871+ if ((dg == dg))
871872 then {
872- let dg = if ((cW == 1))
873- then dd
874- else (dd - cS)
875- let dh = dd
876- let di = if ((cW == 1))
877- then (aV - dd)
878- else (aV - (dd - cS))
879- let dj = if ((cW == 1))
880- then (bj - dd)
881- else (bj - (dd - cS))
882- let dk = (cP - di)
873+ let dh = if ((cX == 1))
874+ then de
875+ else (de - cT)
876+ let di = de
877+ let dj = if ((cX == 1))
878+ then (aV - de)
879+ else (aV - (de - cT))
880+ let dk = if ((cX == 1))
881+ then (bj - de)
882+ else (bj - (de - cT))
883883 let dl = (cQ - dj)
884- let dm = (cR - dg)
885- let bF = makeString(["%d", toString(di)], a)
886- let bH = makeString(["%d", toString(dj)], a)
887- let bN = makeString(["%d", toString(dh)], a)
888- let dn = makeString(["%d", toString(dm)], a)
889- let do = makeString(["%d", toString(dc)], a)
890-[cY._1, cY._2, ad(cK, bF), ad(cJ, bH), ad(cI, bN), ad(cL, dn), ad(cO, do), ag(I, dk), ag(J, dl), ScriptTransfer(Address(au.caller.bytes), dg, unit)]
884+ let dm = (cR - dk)
885+ let dn = (cS - dh)
886+ let bF = makeString(["%d", toString(dj)], a)
887+ let bH = makeString(["%d", toString(dk)], a)
888+ let bN = makeString(["%d", toString(di)], a)
889+ let do = makeString(["%d", toString(dn)], a)
890+ let dp = makeString(["%d", toString(dd)], a)
891+[cZ._1, cZ._2, ad(cL, bF), ad(cK, bH), ad(cJ, bN), ad(cM, do), ad(cP, dp), ag(I, dl), ag(J, dm), ScriptTransfer(Address(au.caller.bytes), dh, unit)]
891892 }
892893 else throw("Strict value is not equal to itself.")
893894 }
894895 else throw("Strict value is not equal to itself.")
895896 }
896897 }
897- if ((da == da))
898- then da
898+ if ((db == db))
899+ then db
899900 else throw("Strict value is not equal to itself.")
900901 }
901902 else throw("Strict value is not equal to itself.")
935936
936937 @Callable(au)
937938 func mintStaw (h) = {
938- let cD = toBase58String(au.caller.bytes)
939- let dp = toBase58String(au.transactionId)
940- let cj = ae((1 != size(au.payments)), "no payments attached")
941- if ((cj == cj))
939+ let cE = toBase58String(au.caller.bytes)
940+ let dq = toBase58String(au.transactionId)
941+ let ck = ae((1 != size(au.payments)), "no payments attached")
942+ if ((ck == ck))
942943 then {
943- let cn = if (isDefined(au.payments[0].assetId))
944+ let co = if (isDefined(au.payments[0].assetId))
944945 then throw("only waves supported")
945946 else true
946- if ((cn == cn))
947+ if ((co == co))
947948 then {
948- let dq = au.payments[0].amount
949- let co = if (if ((d > dq))
949+ let dr = au.payments[0].amount
950+ let cp = if (if ((d > dr))
950951 then true
951- else (dq > e))
952+ else (dr > e))
952953 then throw("lock amount out of range, minimum: 1 waves, maximum: 1000 waves")
953954 else true
954- if ((co == co))
955+ if ((cp == cp))
955956 then {
956- let cp = if ((b > h))
957+ let cq = if ((b > h))
957958 then throw("minimum of 14 days lock period")
958959 else true
959- if ((cp == cp))
960+ if ((cq == cq))
960961 then {
961- let dr = bP(h, dq)
962- let aX = dq
963- let ds = fraction(dr._1, 10, 100)
964- let dt = (dr._1 - ds)
965- let du = (ce(height) + ao(h))
966- if ((du == du))
962+ let ds = bP(h, dr)
963+ let aX = dr
964+ let dt = fraction(ds._1, 10, 100)
965+ let du = (ds._1 - dt)
966+ let dv = (cf(height) + ao(h))
967+ if ((dv == dv))
967968 then {
968- let dv = {
969+ let dw = {
969970 let V = aj(K)
970971 if ($isInstanceOf(V, "Int"))
971972 then {
974975 }
975976 else throw("failed to get current global index count")
976977 }
977- if ((dv == dv))
978+ if ((dw == dw))
978979 then {
979- let dw = {
980+ let dx = {
980981 let V = aj(o)
981982 if ($isInstanceOf(V, "String"))
982983 then {
985986 }
986987 else throw("failed to get dfx address")
987988 }
988- if ((dw == dw))
989+ if ((dx == dx))
989990 then {
990991 let aK = {
991992 let V = aj(m)
998999 }
9991000 if ((aK == aK))
10001001 then {
1001- let dx = {
1002+ let dy = {
10021003 let V = aj(q)
10031004 if ($isInstanceOf(V, "String"))
10041005 then {
10071008 }
10081009 else throw("failed to get lease node address")
10091010 }
1010- if ((dx == dx))
1011+ if ((dy == dy))
10111012 then {
1012- let dy = makeString([cD, u], a)
1013- let dz = makeString([cD, v], a)
1014- let dA = {
1015- let V = O(dy)
1013+ let dz = makeString([cE, u], a)
1014+ let dA = makeString([cE, v], a)
1015+ let dB = {
1016+ let V = O(dz)
10161017 if ($isInstanceOf(V, "String"))
10171018 then {
10181019 let al = V
1019- let aB = aj(dy)
1020+ let aB = aj(dz)
10201021 if ($isInstanceOf(aB, "Int"))
10211022 then {
10221023 let aJ = aB
10261027 }
10271028 else 1
10281029 }
1029- if ((dA == dA))
1030+ if ((dB == dB))
10301031 then {
1031- let dB = {
1032- let V = O(dz)
1032+ let dC = {
1033+ let V = O(dA)
10331034 if ($isInstanceOf(V, "String"))
10341035 then {
10351036 let al = V
1036- let aB = aj(dz)
1037+ let aB = aj(dA)
10371038 if ($isInstanceOf(aB, "Int"))
10381039 then {
10391040 let aJ = aB
1040- (aJ + dq)
1041+ (aJ + dr)
10411042 }
1042- else dq
1043+ else dr
10431044 }
1044- else dq
1045+ else dr
10451046 }
1046- if ((dB == dB))
1047+ if ((dC == dC))
10471048 then {
1048- let dC = Lease(dx, dq)
1049- let dD = toBase58String(calculateLeaseId(dC))
1050- ((([dC, ScriptTransfer(dw, ds, aK), ScriptTransfer(Address(au.caller.bytes), dt, aK)] ++ bd(dp, cD, h, du, dv, dq, dt, aX, height, dD, dB, dA, "leased")) ++ aU(dq, dr._1, aX, dv)) ++ dr._2)
1049+ let dD = Lease(dy, dr)
1050+ let dE = toBase58String(calculateLeaseId(dD))
1051+ ((([dD, ScriptTransfer(dx, dt, aK), ScriptTransfer(Address(au.caller.bytes), du, aK)] ++ bd(dq, cE, h, dv, dw, dr, du, aX, height, dE, dC, dB, "leased")) ++ aU(dr, ds._1, aX, dw)) ++ ds._2)
10511052 }
10521053 else throw("Strict value is not equal to itself.")
10531054 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "_"
55
66 let b = 1
77
88 let c = 100000000
99
1010 let d = (1 * c)
1111
1212 let e = (1000 * c)
1313
1414 let f = 86400000
1515
1616 func g (h) = fraction(c, 365, h)
1717
1818
1919 let i = 1000000
2020
2121 let j = fraction(c, 10, 100)
2222
2323 let k = "Current_PercentageReduction_Factor_For_Mr"
2424
2525 let l = "Minting_Rate"
2626
2727 let m = "Staw_AssetId"
2828
2929 let n = "manager"
3030
3131 let o = "Dfx"
3232
3333 let p = "CirculationIncrementIndex"
3434
3535 let q = "LeaseNode"
3636
3737 let r = "EmissionAmountClaimed"
3838
3939 let s = "CanClaimEmissionAmount"
4040
4141 let t = "WalletAddress"
4242
4343 let u = "TotalEntryIndexCount"
4444
4545 let v = "TotalLocked"
4646
4747 let w = "LockDuration"
4848
4949 let x = "GlobalLockIndex"
5050
5151 let y = "LockIdentifier"
5252
5353 let z = "AmountInWaves"
5454
5555 let A = "AmountInStaw"
5656
5757 let B = "AmountInStawLP"
5858
5959 let C = "TXID"
6060
6161 let D = "LockAtHeight"
6262
6363 let E = "LocKPeriodInMilliSec"
6464
6565 let F = "TotalWavesClaimed"
6666
6767 let G = "LeaseState"
6868
6969 let H = "TotalStawMinted"
7070
7171 let I = "TotalWavesLocked"
7272
7373 let J = "TotalStawLP"
7474
7575 let K = "IndexCount"
7676
7777 let L = "DaysAfterLockPeriodElasped"
7878
7979 func M (N) = getInteger(this, N)
8080
8181
8282 func O (N) = getString(this, N)
8383
8484
8585 func P (N) = getBoolean(this, N)
8686
8787
8888 func Q (N) = value(getBoolean(this, N))
8989
9090
9191 func R (N) = value(getInteger(this, N))
9292
9393
9494 func S (N) = value(getString(this, N))
9595
9696
9797 func T (N,U) = {
9898 let V = U
9999 if ($isInstanceOf(V, "String"))
100100 then {
101101 let U = V
102102 if (isDefined(O(N)))
103103 then S(N)
104104 else U
105105 }
106106 else if ($isInstanceOf(V, "Int"))
107107 then {
108108 let U = V
109109 if (isDefined(M(N)))
110110 then R(N)
111111 else U
112112 }
113113 else if ($isInstanceOf(V, "Boolean"))
114114 then {
115115 let U = V
116116 if (isDefined(P(N)))
117117 then Q(N)
118118 else U
119119 }
120120 else throw(("value type not supported for " + N))
121121 }
122122
123123
124124 func W (X,Y) = {
125125 let V = X
126126 if ($isInstanceOf(V, "String"))
127127 then {
128128 let X = V
129129 X
130130 }
131131 else throw(Y)
132132 }
133133
134134
135135 func Z (X,Y) = {
136136 let V = X
137137 if ($isInstanceOf(V, "Int"))
138138 then {
139139 let X = V
140140 X
141141 }
142142 else throw(Y)
143143 }
144144
145145
146146 func aa (X,Y) = {
147147 let V = X
148148 if ($isInstanceOf(V, "Boolean"))
149149 then {
150150 let X = V
151151 X
152152 }
153153 else throw(Y)
154154 }
155155
156156
157157 func ab (N,ac) = if ((0 > ac))
158158 then throw(((("writing negative value " + toString(ac)) + " for key ") + N))
159159 else IntegerEntry(N, ac)
160160
161161
162162 func ad (N,ac) = if ((" " == ac))
163163 then throw(("writing an empty string " + ac))
164164 else StringEntry(N, ac)
165165
166166
167167 func ae (af,Y) = if (af)
168168 then throw(Y)
169169 else true
170170
171171
172172 func ag (N,ah) = {
173173 let V = ah
174174 if ($isInstanceOf(V, "Int"))
175175 then {
176176 let ah = V
177177 let ai = makeString(["%d", toString(ah)], a)
178178 ad(N, ai)
179179 }
180180 else if ($isInstanceOf(V, "String"))
181181 then {
182182 let ah = V
183183 let ai = makeString(["%s", ah], a)
184184 ad(N, ai)
185185 }
186186 else if ($isInstanceOf(V, "Boolean"))
187187 then {
188188 let ah = V
189189 let ai = makeString(["%b", toString(ah)], a)
190190 ad(N, ai)
191191 }
192192 else throw("type not supported")
193193 }
194194
195195
196196 func aj (N) = {
197197 let ak = W(O(N), ("entry not found for " + N))
198198 if ((ak == ak))
199199 then {
200200 let al = split(ak, a)
201201 let am = takeRight(al[0], 1)
202202 let an = al[(size(al) - 1)]
203203 let ah = if ((am == "s"))
204204 then an
205205 else if ((am == "d"))
206206 then parseIntValue(an)
207207 else if ((am == "b"))
208208 then fromBase58String(an)
209209 else throw(("could not parse registry value for " + N))
210210 ah
211211 }
212212 else throw("Strict value is not equal to itself.")
213213 }
214214
215215
216216 func ao (ap) = {
217217 let aq = ae((0 >= ap), "invalid locking days!")
218218 if ((aq == aq))
219219 then (ap * f)
220220 else throw("Strict value is not equal to itself.")
221221 }
222222
223223
224224 func ar (N,ac) = if (!(isDefined(O(N))))
225225 then ad(N, ac)
226226 else throw(("entry already initialized: " + N))
227227
228228
229229 func as (N,ac) = if (!(isDefined(O(N))))
230230 then ab(N, ac)
231231 else throw((" entry already initialized: " + N))
232232
233233
234234 func at (au) = {
235235 let av = {
236236 let V = aj(n)
237237 if ($isInstanceOf(V, "String"))
238238 then {
239239 let X = V
240240 X
241241 }
242242 else "failed to get manager"
243243 }
244244 if ((av == av))
245245 then ae((toBase58String(au.caller.bytes) != av), "address not authorized")
246246 else throw("Strict value is not equal to itself.")
247247 }
248248
249249
250250 func aw (X) = if ((0 > X))
251251 then -(X)
252252 else X
253253
254254
255255 func ax (ay,az) = {
256256 let V = ay
257257 if ($isInstanceOf(V, "String"))
258258 then {
259259 let ay = V
260260 let aA = addressFromString(ay)
261261 let aB = aA
262262 if ($isInstanceOf(aB, "Address"))
263263 then {
264264 let aA = aB
265265 true
266266 }
267267 else {
268268 let aC = az
269269 if ($isInstanceOf(aC, "String"))
270270 then {
271271 let aD = aC
272272 throw(aD)
273273 }
274274 else false
275275 }
276276 }
277277 else if ($isInstanceOf(V, "ByteVector"))
278278 then {
279279 let ay = V
280280 let aA = addressFromPublicKey(ay)
281281 let aB = aA
282282 if ($isInstanceOf(aB, "Address"))
283283 then {
284284 let aA = aB
285285 true
286286 }
287287 else {
288288 let aC = az
289289 if ($isInstanceOf(aC, "String"))
290290 then {
291291 let aD = aC
292292 throw(aD)
293293 }
294294 else false
295295 }
296296 }
297297 else throw("invalid input type")
298298 }
299299
300300
301301 func aE (aF,az) = {
302302 let V = assetInfo(fromBase58String(aF))
303303 if ($isInstanceOf(V, "Asset"))
304304 then {
305305 let aG = V
306306 true
307307 }
308308 else {
309309 let aB = az
310310 if ($isInstanceOf(aB, "String"))
311311 then {
312312 let aD = aB
313313 throw(aD)
314314 }
315315 else false
316316 }
317317 }
318318
319319
320320 func aH () = {
321321 let aI = {
322322 let V = aj(p)
323323 if ($isInstanceOf(V, "Int"))
324324 then {
325325 let aJ = V
326326 aJ
327327 }
328328 else throw("circulation index not previously defined")
329329 }
330330 if ((aI == aI))
331331 then {
332332 let aK = {
333333 let V = aj(m)
334334 if ($isInstanceOf(V, "String"))
335335 then {
336336 let aJ = V
337337 aJ
338338 }
339339 else throw("asset id not previously defined")
340340 }
341341 if ((aK == aK))
342342 then {
343343 let aL = {
344344 let V = assetInfo(fromBase58String(aK))
345345 if ($isInstanceOf(V, "Asset"))
346346 then {
347347 let aG = V
348348 (aG.quantity / c)
349349 }
350350 else throw(("asset not found for " + aK))
351351 }
352352 let aM = (aw((aL - i)) / i)
353353 let aN = if ((aM > aI))
354354 then (aM + aI)
355355 else aI
356356 let aO = {
357357 let V = aj(l)
358358 if ($isInstanceOf(V, "Int"))
359359 then {
360360 let aJ = V
361361 aJ
362362 }
363363 else throw("failed to get miniting rate")
364364 }
365365 if ((aN == aI))
366366 then $Tuple2(aO, nil)
367367 else {
368368 let aP = {
369369 let V = aj(k)
370370 if ($isInstanceOf(V, "Int"))
371371 then {
372372 let aJ = V
373373 (aJ + 10)
374374 }
375375 else throw("failed to get percentage reduction factor")
376376 }
377377 let aQ = (aO - fraction(aO, aP, 100))
378378 let aR = ag(l, aQ)
379379 let aS = ag(k, aP)
380380 let aT = ag(p, aN)
381381 $Tuple2(aQ, [aR, aS, aT])
382382 }
383383 }
384384 else throw("Strict value is not equal to itself.")
385385 }
386386 else throw("Strict value is not equal to itself.")
387387 }
388388
389389
390390 func aU (aV,aW,aX,aY) = {
391391 let aZ = {
392392 let V = aj(I)
393393 if ($isInstanceOf(V, "Int"))
394394 then {
395395 let aJ = V
396396 (aJ + aV)
397397 }
398398 else throw("failed to get global total waves")
399399 }
400400 if ((aZ == aZ))
401401 then {
402402 let ba = {
403403 let V = aj(H)
404404 if ($isInstanceOf(V, "Int"))
405405 then {
406406 let aJ = V
407407 (aJ + aW)
408408 }
409409 else throw("failed to get global total staw minted")
410410 }
411411 if ((ba == ba))
412412 then {
413413 let bb = {
414414 let V = aj(J)
415415 if ($isInstanceOf(V, "Int"))
416416 then {
417417 let aJ = V
418418 (aJ + aX)
419419 }
420420 else throw("failed to get global total stawpl")
421421 }
422422 if ((bb == bb))
423423 then {
424424 let bc = {
425425 let V = aj(K)
426426 if ($isInstanceOf(V, "Int"))
427427 then {
428428 let aJ = V
429429 (aJ + aY)
430430 }
431431 else throw("failed to get global index count")
432432 }
433433 if ((bc == bc))
434434 then [ag(I, aZ), ag(H, ba), ag(J, bb), ag(K, bc)]
435435 else throw("Strict value is not equal to itself.")
436436 }
437437 else throw("Strict value is not equal to itself.")
438438 }
439439 else throw("Strict value is not equal to itself.")
440440 }
441441 else throw("Strict value is not equal to itself.")
442442 }
443443
444444
445445 func bd (be,bf,bg,bh,bi,aV,aW,bj,bk,bl,bm,bn,bo) = {
446446 let bp = makeString([bf, be, C], a)
447447 let bq = makeString([bf, be, w], a)
448448 let br = makeString([bf, be, x], a)
449449 let bs = makeString([bf, be, z], a)
450450 let bt = makeString([bf, be, A], a)
451451 let bu = makeString([bf, be, B], a)
452452 let bv = makeString([bf, be, D], a)
453453 let bw = makeString([bf, be, y], a)
454454 let bx = makeString([bf, v], a)
455455 let by = makeString([bf, u], a)
456456 let bz = makeString([bf, be, E], a)
457457 let bA = makeString([bf, be, F], a)
458458 let bB = makeString([bf, be, G], a)
459459 let bC = makeString(["%s", be], a)
460460 let bD = makeString(["%d", toString(bg)], a)
461461 let bE = makeString(["%d", toString(bi)], a)
462462 let bF = makeString(["%d", toString(aV)], a)
463463 let bG = makeString(["%d", toString(aW)], a)
464464 let bH = makeString(["%d", toString(bj)], a)
465465 let bI = makeString(["%d", toString(bk)], a)
466466 let bJ = makeString(["%b", bl], a)
467467 let bK = makeString(["%d", toString(bm)], a)
468468 let bL = makeString(["%d", toString(bn)], a)
469469 let bM = makeString(["%d", toString(bh)], a)
470470 let bN = makeString(["%d", toString(0)], a)
471471 let bO = makeString(["%s", bo], a)
472472 [ar(bp, bC), ar(br, bE), ad(by, bL), ad(bx, bK), ar(bq, bD), ar(bz, bM), ar(bs, bF), ar(bt, bG), ad(bu, bH), ad(bA, bN), ar(bv, bI), ar(bw, bJ), ad(bB, bO)]
473473 }
474474
475475
476476 func bP (h,bQ) = {
477477 let bR = aH()
478478 let bS = (fraction(bQ, (f * bR._1), g(h)) / c)
479479 if ((size(bR._2) == 0))
480480 then $Tuple2(bS, nil)
481481 else $Tuple2(bS, bR._2)
482482 }
483483
484484
485485 func bT (h,bU) = {
486486 let bV = fraction(h, 15, 10)
487- let bW = ((fraction(c, ((bU / ((bV - h) * f)) / 2), 1) * f) * f)
488- bW
487+ let bW = (fraction(f, bU, (bV - h)) / 2)
488+ let bX = (fraction(c, bW, 1) * f)
489+ bX
489490 }
490491
491492
492-func bX (bY) = {
493- let bZ = Z(M(J), "could not get the running StawLP")
494-[ab(J, (bZ + bY))]
493+func bY (bZ) = {
494+ let ca = Z(M(J), "could not get the running StawLP")
495+[ab(J, (ca + bZ))]
495496 }
496497
497498
498-func ca (bY) = {
499- let bZ = Z(M(J), "could not get the running StawLP")
500-[ab(J, (bZ - bY))]
499+func cb (bZ) = {
500+ let ca = Z(M(J), "could not get the running StawLP")
501+[ab(J, (ca - bZ))]
501502 }
502503
503504
504-func cb (bY) = {
505- let cc = Z(M(I), "could not get total locked waves")
506-[ab(I, (cc + bY))]
505+func cc (bZ) = {
506+ let cd = Z(M(I), "could not get total locked waves")
507+[ab(I, (cd + bZ))]
507508 }
508509
509510
510-func cd (bY) = {
511- let cc = Z(M(I), "could not get total locked waves")
512-[ab(I, (cc - bY))]
511+func ce (bZ) = {
512+ let cd = Z(M(I), "could not get total locked waves")
513+[ab(I, (cd - bZ))]
513514 }
514515
515516
516-func ce (cf) = {
517- let cg = {
518- let V = blockInfoByHeight(cf)
517+func cf (cg) = {
518+ let ch = {
519+ let V = blockInfoByHeight(cg)
519520 if ($isInstanceOf(V, "BlockInfo"))
520521 then {
521- let ch = V
522- ch.timestamp
522+ let ci = V
523+ ci.timestamp
523524 }
524525 else throw("counld get timestamp")
525526 }
526- cg
527+ ch
527528 }
528529
529530
530-func ci (aF) = {
531+func cj (aF) = {
531532 let V = assetInfo(fromBase58String(aF))
532533 if ($isInstanceOf(V, "Asset"))
533534 then {
534535 let aJ = V
535536 aJ.quantity
536537 }
537538 else throw("asset not found")
538539 }
539540
540541
541542 @Callable(au)
542543 func getEmission (h,bU) = {
543- let cj = at(au)
544- if ((cj == cj))
544+ let ck = at(au)
545+ if ((ck == ck))
545546 then $Tuple2(nil, bT(h, bU))
546547 else throw("Strict value is not equal to itself.")
547548 }
548549
549550
550551
551552 @Callable(au)
552-func init (av,ck,aF,cl) = {
553- let cm = if (isDefined(O(n)))
553+func init (av,cl,aF,cm) = {
554+ let cn = if (isDefined(O(n)))
554555 then at(au)
555556 else true
556- if ((cm == cm))
557+ if ((cn == cn))
557558 then {
558- let cj = ax(av, "invalid address")
559- if ((cj == cj))
559+ let ck = ax(av, "invalid address")
560+ if ((ck == ck))
560561 then {
561- let cn = ax(ck, "invalid address")
562- if ((cn == cn))
562+ let co = ax(cl, "invalid address")
563+ if ((co == co))
563564 then {
564- let co = ax(cl, "invalid address")
565- if ((co == co))
565+ let cp = ax(cm, "invalid address")
566+ if ((cp == cp))
566567 then {
567- let cp = if (aE(aF, "invalid asset"))
568+ let cq = if (aE(aF, "invalid asset"))
568569 then true
569570 else throw("invalid asset Id")
570- if ((cp == cp))
571+ if ((cq == cq))
571572 then {
572- let cq = T(p, 0)
573- let cr = T(k, 0)
574- let cs = T(l, c)
575- let ct = T(H, 0)
576- let cu = T(J, 0)
577- let cv = T(K, 0)
578- let cw = T(I, 0)
579-[ag(n, av), ag(o, ck), ag(m, aF), ag(q, cl), ag(p, cq), ag(l, cs), ag(k, cr), ag(I, cw), ag(J, cu), ag(H, ct), ag(K, cv)]
573+ let cr = T(p, 0)
574+ let cs = T(k, 0)
575+ let ct = T(l, c)
576+ let cu = T(H, 0)
577+ let cv = T(J, 0)
578+ let cw = T(K, 0)
579+ let cx = T(I, 0)
580+[ag(n, av), ag(o, cl), ag(m, aF), ag(q, cm), ag(p, cr), ag(l, ct), ag(k, cs), ag(I, cx), ag(J, cv), ag(H, cu), ag(K, cw)]
580581 }
581582 else throw("Strict value is not equal to itself.")
582583 }
583584 else throw("Strict value is not equal to itself.")
584585 }
585586 else throw("Strict value is not equal to itself.")
586587 }
587588 else throw("Strict value is not equal to itself.")
588589 }
589590 else throw("Strict value is not equal to itself.")
590591 }
591592
592593
593594
594595 @Callable(au)
595596 func modifyGlobalParams (X) = {
596- let cj = at(au)
597- if ((cj == cj))
597+ let ck = at(au)
598+ if ((ck == ck))
598599 then {
599600 let az = makeString(["got", "list size of", toString(size(X)), "but expected [global_key, value] pair"], " ")
600- let cn = ae((size(X) != 2), az)
601- if ((cn == cn))
601+ let co = ae((size(X) != 2), az)
602+ if ((co == co))
602603 then {
603604 let N = X[0]
604- let cx = parseInt(X[1])
605- let V = cx
605+ let cy = parseInt(X[1])
606+ let V = cy
606607 if ($isInstanceOf(V, "Int"))
607608 then {
608609 let al = V
609- let cy = ae((O(N) == unit), (("key " + N) + " not recognized"))
610- if ((cy == cy))
610+ let cz = ae((O(N) == unit), (("key " + N) + " not recognized"))
611+ if ((cz == cz))
611612 then {
612- let cz = {
613+ let cA = {
613614 let aB = aj(N)
614615 if ($isInstanceOf(aB, "Int"))
615616 then {
616617 let aJ = aB
617618 true
618619 }
619620 else throw("invalid key-value pair")
620621 }
621- if ((cz == cz))
622+ if ((cA == cA))
622623 then [ag(N, al)]
623624 else throw("Strict value is not equal to itself.")
624625 }
625626 else throw("Strict value is not equal to itself.")
626627 }
627628 else if ($isInstanceOf(V, "Unit"))
628629 then {
629630 let al = V
630- let cy = ae((O(N) == unit), (("key " + N) + " not recognized"))
631- if ((cy == cy))
631+ let cz = ae((O(N) == unit), (("key " + N) + " not recognized"))
632+ if ((cz == cz))
632633 then {
633- let cA = X[1]
634- let cB = aj(n)
635- let cp = {
636- let aB = cB
634+ let cB = X[1]
635+ let cC = aj(n)
636+ let cq = {
637+ let aB = cC
637638 if ($isInstanceOf(aB, "String"))
638639 then {
639- let cC = aB
640- if ((size(cC) == size(cA)))
641- then ax(cA, "string type for value not supported")
642- else aE(cA, "string type for value not supported")
640+ let cD = aB
641+ if ((size(cD) == size(cB)))
642+ then ax(cB, "string type for value not supported")
643+ else aE(cB, "string type for value not supported")
643644 }
644645 else false
645646 }
646- if ((cp == cp))
647- then [ag(N, cA)]
647+ if ((cq == cq))
648+ then [ag(N, cB)]
648649 else throw("Strict value is not equal to itself.")
649650 }
650651 else throw("Strict value is not equal to itself.")
651652 }
652653 else throw(("failed to modify " + X[0]))
653654 }
654655 else throw("Strict value is not equal to itself.")
655656 }
656657 else throw("Strict value is not equal to itself.")
657658 }
658659
659660
660661
661662 @Callable(au)
662663 func revokeLock () = {
663- let cj = at(au)
664- if ((cj == cj))
664+ let ck = at(au)
665+ if ((ck == ck))
665666 then nil
666667 else throw("Strict value is not equal to itself.")
667668 }
668669
669670
670671
671672 @Callable(au)
672673 func claim (be) = {
673- let cD = toBase58String(au.caller.bytes)
674- let cE = makeString([cD, be, z], a)
675- let cF = makeString([cD, be, w], a)
676- let cG = makeString([cD, be, y], a)
677- let cH = makeString([cD, be, E], a)
678- let cI = makeString([cD, be, F], a)
679- let cJ = makeString([cD, be, B], a)
680- let cK = makeString([cD, be, z], a)
681- let cL = makeString([cD, v], a)
682- let cM = makeString([cD, be, G], a)
683- let cN = makeString([cD, be, G], a)
684- let cO = makeString([cD, be, L], a)
685- let cP = {
674+ let cE = toBase58String(au.caller.bytes)
675+ let cF = makeString([cE, be, z], a)
676+ let cG = makeString([cE, be, w], a)
677+ let cH = makeString([cE, be, y], a)
678+ let cI = makeString([cE, be, E], a)
679+ let cJ = makeString([cE, be, F], a)
680+ let cK = makeString([cE, be, B], a)
681+ let cL = makeString([cE, be, z], a)
682+ let cM = makeString([cE, v], a)
683+ let cN = makeString([cE, be, G], a)
684+ let cO = makeString([cE, be, G], a)
685+ let cP = makeString([cE, be, L], a)
686+ let cQ = {
686687 let V = aj(I)
687688 if ($isInstanceOf(V, "Int"))
688689 then {
689690 let aJ = V
690691 aJ
691692 }
692693 else throw("failed to get global total waves")
693694 }
694- if ((cP == cP))
695+ if ((cQ == cQ))
695696 then {
696- let cQ = {
697+ let cR = {
697698 let V = aj(J)
698699 if ($isInstanceOf(V, "Int"))
699700 then {
700701 let aJ = V
701702 aJ
702703 }
703704 else throw("failed to get global total waves")
704705 }
705- if ((cQ == cQ))
706+ if ((cR == cR))
706707 then {
707708 let bl = {
708- let V = aj(cG)
709+ let V = aj(cH)
709710 if ($isInstanceOf(V, "ByteVector"))
710711 then {
711712 let aJ = V
712713 aJ
713714 }
714715 else throw("failed to get lease id")
715716 }
716717 if ((bl == bl))
717718 then {
718- let cR = {
719- let V = aj(cL)
719+ let cS = {
720+ let V = aj(cM)
720721 if ($isInstanceOf(V, "Int"))
721722 then {
722723 let aJ = V
723724 aJ
724725 }
725726 else throw("failed to get total waves locked by this address")
726727 }
727- if ((cR == cR))
728+ if ((cS == cS))
728729 then {
729730 let aV = {
730- let V = aj(cK)
731+ let V = aj(cL)
731732 if ($isInstanceOf(V, "Int"))
732733 then {
733734 let aJ = V
734735 aJ
735736 }
736737 else throw("failed to get total waves locked")
737738 }
738739 if ((aV == aV))
739740 then {
740- let cS = {
741- let V = aj(cI)
741+ let cT = {
742+ let V = aj(cJ)
742743 if ($isInstanceOf(V, "Int"))
743744 then {
744745 let aJ = V
745746 aJ
746747 }
747748 else throw("failed to get total waves claimed")
748749 }
749- if ((cS == cS))
750+ if ((cT == cT))
750751 then {
751752 let bj = {
752- let V = aj(cJ)
753+ let V = aj(cK)
753754 if ($isInstanceOf(V, "Int"))
754755 then {
755756 let aJ = V
756757 aJ
757758 }
758759 else throw("failed to get stawPL")
759760 }
760761 if ((bj == bj))
761762 then {
762- let cT = {
763- let V = aj(cH)
763+ let cU = {
764+ let V = aj(cI)
764765 if ($isInstanceOf(V, "Int"))
765766 then {
766767 let aJ = V
767768 aJ
768769 }
769770 else throw("failed to get lock period timespam")
770771 }
771- if ((cT == cT))
772+ if ((cU == cU))
772773 then {
773- let cU = {
774- let V = ce(height)
774+ let cV = {
775+ let V = cf(height)
775776 if ($isInstanceOf(V, "Int"))
776777 then {
777778 let aJ = V
778779 aJ
779780 }
780781 else throw("failed to get current timestamp")
781782 }
782- if ((cU == cU))
783+ if ((cV == cV))
783784 then {
784785 let bU = {
785- let V = aj(cE)
786+ let V = aj(cF)
786787 if ($isInstanceOf(V, "Int"))
787788 then {
788789 let aJ = V
789790 aJ
790791 }
791792 else throw("failed to get collateral")
792793 }
793794 if ((bU == bU))
794795 then {
795796 let h = {
796- let V = aj(cF)
797+ let V = aj(cG)
797798 if ($isInstanceOf(V, "Int"))
798799 then {
799800 let aJ = V
800801 aJ
801802 }
802803 else throw("failed to get lockPeriod")
803804 }
804805 if ((h == h))
805806 then {
806- let cV = {
807- let V = aj(cM)
807+ let cW = {
808+ let V = aj(cN)
808809 if ($isInstanceOf(V, "String"))
809810 then {
810811 let aJ = V
811812 aJ
812813 }
813814 else throw("failed to get lease state")
814815 }
815- if ((cV == cV))
816+ if ((cW == cW))
816817 then {
817818 let bo = {
818- let V = aj(cN)
819+ let V = aj(cO)
819820 if ($isInstanceOf(V, "String"))
820821 then {
821822 let aJ = V
822823 aJ
823824 }
824825 else throw("failed to get lease state for user")
825826 }
826827 if ((bo == bo))
827828 then {
828- let cW = {
829- let V = O(cO)
829+ let cX = {
830+ let V = O(cP)
830831 if ($isInstanceOf(V, "String"))
831832 then {
832833 let aJ = V
833- let aB = aj(cO)
834+ let aB = aj(cP)
834835 if ($isInstanceOf(aB, "Int"))
835836 then {
836- let cX = aB
837- cX
837+ let cY = aB
838+ cY
838839 }
839840 else 0
840841 }
841842 else 0
842843 }
843- if ((cW == cW))
844+ if ((cX == cX))
844845 then {
845- let cj = ae((cT > cU), "lock period for this entry has not elapsed")
846- if ((cj == cj))
846+ let ck = ae((cU > cV), "lock period for this entry has not elapsed")
847+ if ((ck == ck))
847848 then {
848- let cY = if ((cV == "leased"))
849- then $Tuple2(LeaseCancel(bl), ad(cM, "cancelled"))
850- else $Tuple2(ad(cM, "cancelled"), ad(cM, "cancelled"))
851- let cn = ae(if ((0 == aV))
849+ let cZ = if ((cW == "leased"))
850+ then $Tuple2(LeaseCancel(bl), ad(cN, "cancelled"))
851+ else $Tuple2(ad(cN, "cancelled"), ad(cN, "cancelled"))
852+ let co = ae(if ((0 == aV))
852853 then true
853854 else (0 == bj), "all claims exhausted for this trx")
854- if ((cn == cn))
855+ if ((co == co))
855856 then {
856- let cZ = bT(h, bU)
857- let da = {
858- let db = (cU - cT)
859- let dc = (db / f)
860- if ((dc == 0))
857+ let da = bT(h, bU)
858+ let db = {
859+ let dc = (cV - cU)
860+ let dd = (dc / f)
861+ if ((dd == 0))
861862 then throw("less than 24hrs before first claim")
862- else if ((cW >= dc))
863+ else if ((cX >= dd))
863864 then throw("24hrs or less before next claim")
864865 else {
865- let dd = (cW * cZ)
866- let de = ae((dd == cS), "can only claim once in 24hrs")
867- if ((de == de))
866+ let de = (cX * da)
867+ let df = ae((de == cT), "can only claim once in 24hrs")
868+ if ((df == df))
868869 then {
869- let df = ae(((dd + cS) > aV), "all claims exhausted")
870- if ((df == df))
870+ let dg = ae(((de + cT) > aV), "all claims exhausted")
871+ if ((dg == dg))
871872 then {
872- let dg = if ((cW == 1))
873- then dd
874- else (dd - cS)
875- let dh = dd
876- let di = if ((cW == 1))
877- then (aV - dd)
878- else (aV - (dd - cS))
879- let dj = if ((cW == 1))
880- then (bj - dd)
881- else (bj - (dd - cS))
882- let dk = (cP - di)
873+ let dh = if ((cX == 1))
874+ then de
875+ else (de - cT)
876+ let di = de
877+ let dj = if ((cX == 1))
878+ then (aV - de)
879+ else (aV - (de - cT))
880+ let dk = if ((cX == 1))
881+ then (bj - de)
882+ else (bj - (de - cT))
883883 let dl = (cQ - dj)
884- let dm = (cR - dg)
885- let bF = makeString(["%d", toString(di)], a)
886- let bH = makeString(["%d", toString(dj)], a)
887- let bN = makeString(["%d", toString(dh)], a)
888- let dn = makeString(["%d", toString(dm)], a)
889- let do = makeString(["%d", toString(dc)], a)
890-[cY._1, cY._2, ad(cK, bF), ad(cJ, bH), ad(cI, bN), ad(cL, dn), ad(cO, do), ag(I, dk), ag(J, dl), ScriptTransfer(Address(au.caller.bytes), dg, unit)]
884+ let dm = (cR - dk)
885+ let dn = (cS - dh)
886+ let bF = makeString(["%d", toString(dj)], a)
887+ let bH = makeString(["%d", toString(dk)], a)
888+ let bN = makeString(["%d", toString(di)], a)
889+ let do = makeString(["%d", toString(dn)], a)
890+ let dp = makeString(["%d", toString(dd)], a)
891+[cZ._1, cZ._2, ad(cL, bF), ad(cK, bH), ad(cJ, bN), ad(cM, do), ad(cP, dp), ag(I, dl), ag(J, dm), ScriptTransfer(Address(au.caller.bytes), dh, unit)]
891892 }
892893 else throw("Strict value is not equal to itself.")
893894 }
894895 else throw("Strict value is not equal to itself.")
895896 }
896897 }
897- if ((da == da))
898- then da
898+ if ((db == db))
899+ then db
899900 else throw("Strict value is not equal to itself.")
900901 }
901902 else throw("Strict value is not equal to itself.")
902903 }
903904 else throw("Strict value is not equal to itself.")
904905 }
905906 else throw("Strict value is not equal to itself.")
906907 }
907908 else throw("Strict value is not equal to itself.")
908909 }
909910 else throw("Strict value is not equal to itself.")
910911 }
911912 else throw("Strict value is not equal to itself.")
912913 }
913914 else throw("Strict value is not equal to itself.")
914915 }
915916 else throw("Strict value is not equal to itself.")
916917 }
917918 else throw("Strict value is not equal to itself.")
918919 }
919920 else throw("Strict value is not equal to itself.")
920921 }
921922 else throw("Strict value is not equal to itself.")
922923 }
923924 else throw("Strict value is not equal to itself.")
924925 }
925926 else throw("Strict value is not equal to itself.")
926927 }
927928 else throw("Strict value is not equal to itself.")
928929 }
929930 else throw("Strict value is not equal to itself.")
930931 }
931932 else throw("Strict value is not equal to itself.")
932933 }
933934
934935
935936
936937 @Callable(au)
937938 func mintStaw (h) = {
938- let cD = toBase58String(au.caller.bytes)
939- let dp = toBase58String(au.transactionId)
940- let cj = ae((1 != size(au.payments)), "no payments attached")
941- if ((cj == cj))
939+ let cE = toBase58String(au.caller.bytes)
940+ let dq = toBase58String(au.transactionId)
941+ let ck = ae((1 != size(au.payments)), "no payments attached")
942+ if ((ck == ck))
942943 then {
943- let cn = if (isDefined(au.payments[0].assetId))
944+ let co = if (isDefined(au.payments[0].assetId))
944945 then throw("only waves supported")
945946 else true
946- if ((cn == cn))
947+ if ((co == co))
947948 then {
948- let dq = au.payments[0].amount
949- let co = if (if ((d > dq))
949+ let dr = au.payments[0].amount
950+ let cp = if (if ((d > dr))
950951 then true
951- else (dq > e))
952+ else (dr > e))
952953 then throw("lock amount out of range, minimum: 1 waves, maximum: 1000 waves")
953954 else true
954- if ((co == co))
955+ if ((cp == cp))
955956 then {
956- let cp = if ((b > h))
957+ let cq = if ((b > h))
957958 then throw("minimum of 14 days lock period")
958959 else true
959- if ((cp == cp))
960+ if ((cq == cq))
960961 then {
961- let dr = bP(h, dq)
962- let aX = dq
963- let ds = fraction(dr._1, 10, 100)
964- let dt = (dr._1 - ds)
965- let du = (ce(height) + ao(h))
966- if ((du == du))
962+ let ds = bP(h, dr)
963+ let aX = dr
964+ let dt = fraction(ds._1, 10, 100)
965+ let du = (ds._1 - dt)
966+ let dv = (cf(height) + ao(h))
967+ if ((dv == dv))
967968 then {
968- let dv = {
969+ let dw = {
969970 let V = aj(K)
970971 if ($isInstanceOf(V, "Int"))
971972 then {
972973 let aJ = V
973974 (aJ + 1)
974975 }
975976 else throw("failed to get current global index count")
976977 }
977- if ((dv == dv))
978+ if ((dw == dw))
978979 then {
979- let dw = {
980+ let dx = {
980981 let V = aj(o)
981982 if ($isInstanceOf(V, "String"))
982983 then {
983984 let aJ = V
984985 Address(fromBase58String(aJ))
985986 }
986987 else throw("failed to get dfx address")
987988 }
988- if ((dw == dw))
989+ if ((dx == dx))
989990 then {
990991 let aK = {
991992 let V = aj(m)
992993 if ($isInstanceOf(V, "String"))
993994 then {
994995 let aJ = V
995996 fromBase58String(aJ)
996997 }
997998 else throw("failed to get asset id")
998999 }
9991000 if ((aK == aK))
10001001 then {
1001- let dx = {
1002+ let dy = {
10021003 let V = aj(q)
10031004 if ($isInstanceOf(V, "String"))
10041005 then {
10051006 let aJ = V
10061007 Address(fromBase58String(aJ))
10071008 }
10081009 else throw("failed to get lease node address")
10091010 }
1010- if ((dx == dx))
1011+ if ((dy == dy))
10111012 then {
1012- let dy = makeString([cD, u], a)
1013- let dz = makeString([cD, v], a)
1014- let dA = {
1015- let V = O(dy)
1013+ let dz = makeString([cE, u], a)
1014+ let dA = makeString([cE, v], a)
1015+ let dB = {
1016+ let V = O(dz)
10161017 if ($isInstanceOf(V, "String"))
10171018 then {
10181019 let al = V
1019- let aB = aj(dy)
1020+ let aB = aj(dz)
10201021 if ($isInstanceOf(aB, "Int"))
10211022 then {
10221023 let aJ = aB
10231024 (aJ + 1)
10241025 }
10251026 else 1
10261027 }
10271028 else 1
10281029 }
1029- if ((dA == dA))
1030+ if ((dB == dB))
10301031 then {
1031- let dB = {
1032- let V = O(dz)
1032+ let dC = {
1033+ let V = O(dA)
10331034 if ($isInstanceOf(V, "String"))
10341035 then {
10351036 let al = V
1036- let aB = aj(dz)
1037+ let aB = aj(dA)
10371038 if ($isInstanceOf(aB, "Int"))
10381039 then {
10391040 let aJ = aB
1040- (aJ + dq)
1041+ (aJ + dr)
10411042 }
1042- else dq
1043+ else dr
10431044 }
1044- else dq
1045+ else dr
10451046 }
1046- if ((dB == dB))
1047+ if ((dC == dC))
10471048 then {
1048- let dC = Lease(dx, dq)
1049- let dD = toBase58String(calculateLeaseId(dC))
1050- ((([dC, ScriptTransfer(dw, ds, aK), ScriptTransfer(Address(au.caller.bytes), dt, aK)] ++ bd(dp, cD, h, du, dv, dq, dt, aX, height, dD, dB, dA, "leased")) ++ aU(dq, dr._1, aX, dv)) ++ dr._2)
1049+ let dD = Lease(dy, dr)
1050+ let dE = toBase58String(calculateLeaseId(dD))
1051+ ((([dD, ScriptTransfer(dx, dt, aK), ScriptTransfer(Address(au.caller.bytes), du, aK)] ++ bd(dq, cE, h, dv, dw, dr, du, aX, height, dE, dC, dB, "leased")) ++ aU(dr, ds._1, aX, dw)) ++ ds._2)
10511052 }
10521053 else throw("Strict value is not equal to itself.")
10531054 }
10541055 else throw("Strict value is not equal to itself.")
10551056 }
10561057 else throw("Strict value is not equal to itself.")
10571058 }
10581059 else throw("Strict value is not equal to itself.")
10591060 }
10601061 else throw("Strict value is not equal to itself.")
10611062 }
10621063 else throw("Strict value is not equal to itself.")
10631064 }
10641065 else throw("Strict value is not equal to itself.")
10651066 }
10661067 else throw("Strict value is not equal to itself.")
10671068 }
10681069 else throw("Strict value is not equal to itself.")
10691070 }
10701071 else throw("Strict value is not equal to itself.")
10711072 }
10721073 else throw("Strict value is not equal to itself.")
10731074 }
10741075
10751076

github/deemru/w8io/169f3d6 
468.62 ms