tx · GwsfeCjPHUA2ZWTvfrdVFcd2TZ86yDRdhW4SUKY6VtLE

3MqzpRGNBq3GSxMonFoenAhNRDHJ2a8omm1:  -0.05000000 Waves

2023.08.23 13:37 [2723169] smart account 3MqzpRGNBq3GSxMonFoenAhNRDHJ2a8omm1 > SELF 0.00000000 Waves

{ "type": 13, "id": "GwsfeCjPHUA2ZWTvfrdVFcd2TZ86yDRdhW4SUKY6VtLE", "fee": 5000000, "feeAssetId": null, "timestamp": 1692786969672, "version": 2, "chainId": 84, "sender": "3MqzpRGNBq3GSxMonFoenAhNRDHJ2a8omm1", "senderPublicKey": "Cm1uVVKocYw3S4eL9bYUMNZe5vpBPipgiiTx37eL6E8F", "proofs": [ "581nvtvG9pM59v1XKKi26MEEJrnjMGww9pJFQGJ9vZJBNcEZPvuAHhLkHci99hDsMQvWAq82pYHH4MmM1dnUBxLc", "4em7GbdMuZawJVKggjqWTw7AcAW5FDJ3L7hhgVEpBzUG9npi1QA3H52Adg2k9MjhPBS2ZKQdwvRLSCXTxUKUTyqE" ], "script": "base64:BgJQCAISBAoCAQgSAwoBCBIUChIIAQEIAQEBAQEBAQEYBAEBBBgSBAoCAQgSBAoCAQgSBAoCAQgSBQoDAQEIEgMKAQESAwoBARIECgIBARIAEgBOAAlrZXlBY3RpdmUCBmFjdGl2ZQALa0FjdGl2ZUdsb2ICFGFjdGl2ZV9hbGxfY29udHJhY3RzAA9rZXlBZG1pblB1YktleTECC2FkbWluX3B1Yl8xAA9rZXlBZG1pblB1YktleTICC2FkbWluX3B1Yl8yAA9rZXlBZG1pblB1YktleTMCC2FkbWluX3B1Yl8zACFrZXlMYXVuY2hwYWREYXRhVHJhbnNhY3Rpb25TdGF0dXMCIWxhdW5jaHBhZF9kYXRhX3RyYW5zYWN0aW9uX3N0YXR1cwASa2V5TGF1bmNocGFkTmV4dElkAhFsYXVuY2hwYWRfbmV4dF9pZAAUa2V5TGF1bmNocGFkQWN0aXZlSWQCE2xhdW5jaHBhZF9hY3RpdmVfaWQADWtleUluaXRDYWxsZXICC2luaXRfY2FsbGVyAAprZXlBZGRyZXNzAghfYWRkcmVzcwANa2V5SW5pdEhlaWdodAIMX2luaXRfaGVpZ2h0AA5rZXlTdGFydEhlaWdodAINX3N0YXJ0X2hlaWdodAARa2V5RmluYWxpc2VIZWlnaHQCEF9maW5hbGlzZV9oZWlnaHQADGtleUNvbWlzc2lvbgIKX2NvbWlzc2lvbgAKa2V5QXNzZXRJZAIJX2Fzc2V0X2lkABNrZXlUb3RhbFRva2VuQW1vdW50AhNfdG90YWxfdG9rZW5fYW1vdW50ABprZXlUb3RhbEFtb3VudEJ1eUFzc2V0U29sZAIVX3RvdGFsX2J1eV9hc3NldF9zb2xkABJrZXlUb2tlbnNQZXJUaWNrZXQCEl90b2tlbnNfcGVyX3RpY2tldAAQa2V5UHJpY2VQZXJUb2tlbgIQX3ByaWNlX3Blcl90b2tlbgAQa2V5U3dvcFBlclRpY2tldAIQX3N3b3BfcGVyX3RpY2tldAAWa2V5U3dvcGZpVGlja2V0c0Ftb3VudAIXX3RpY2tldHNfc3dvcGZpX21lbWJlcnMAF2tleUNhbXBhaWduVG9rZW5zQW1vdW50AhNfdG9rZW5zX2FjY2Vzc19saXN0ABZrZXlUb2tlbnNQZXJBbGxvY2F0aW9uAhZfdG9rZW5zX3Blcl9hbGxvY2F0aW9uABNrZXlUaWNrZXRMYXN0TnVtYmVyAhNfdGlja2V0X2xhc3RfbnVtYmVyABNrZXlHb3Zlcm5hbmNlU3Rha2VkAg1fR1N3b3BfYW1vdW50AAxrZXlVc2VyUmVmSWQCB19yZWZfaWQADWtleVZlcmlmeUhhc2gCDF92ZXJpZnlfaGFzaAALa2V5RHVyYXRpb24CCV9kdXJhdGlvbgAca2V5QW1vdW50QnV5QXNzZXRJbk1hcmtldGluZwInX3RvdGFsX3B1cmNoYXNlZF9idXlfYXNzZXRfaW5fbWFya2V0aW5nACVrZXlBbW91bnRCdXlBc3NldEluTWFya2V0aW5nRmluYWxpemVkAjFfdG90YWxfcHVyY2hhc2VkX2J1eV9hc3NldF9pbl9tYXJrZXRpbmdfZmluYWxpemVkABNrZXlUcmFuc2ZlckJ1eUFzc2V0AhNfdHJhbnNmZXJfYnV5X2Fzc2V0ABRrZXlGcmVlelN3b3BEdXJhdGlvbgIVX2ZyZWV6ZV9zd29wX2R1cmF0aW9uABhrZXlGcmVlemVBZGRpdGlvbmFsVG9rZW4CGF9mcmVlemVfYWRkaXRpb25hbF90b2tlbgAQa2V5RnJlZXplVG9rZW5JZAIQX2ZyZWV6ZV90b2tlbl9pZAAWa2V5RnJlZXplVG9rZW5EdXJhdGlvbgIWX2ZyZWV6ZV90b2tlbl9kdXJhdGlvbgAXa2V5RnJlZXplVG9rZW5QZXJUaWNrZXQCGF9mcmVlemVfdG9rZW5fcGVyX3RpY2tldAALa2V5QnV5VG9rZW4CCl9idXlfdG9rZW4ADmtleUNsYWltUGFyYW1zAg1fY2xhaW1fcGFyYW1zABtrZXlIaWdoQ29tcGV0aXRpb25Db21pc3Npb24CG19oaWdoX2NvbXBldGl0aW9uX2NvbWlzc2lvbgAWa2V5SGlnaENvbXBldGl0aW9uU2FsZQIWX2hpZ2hfY29tcGV0aXRpb25fc2FsZQAVa2V5SENUaWNrZXRMYXN0TnVtYmVyAiRfaGlnaF9jb21wZXRpdGlvbl90aWNrZXRfbGFzdF9udW1iZXIAGGtleUhpZ2hDb21wZXRpdGlvbkFtb3VudAIZX3RpY2tldHNfaGlnaF9jb21wZXRpdGlvbgAca2V5VG90YWxBbW91bnRCdXlBc3NldFNvbGRIQwImX3RvdGFsX2J1eV9hc3NldF9zb2xkX2hpZ2hfY29tcGV0aXRpb24AFGtleVVzZXJDbGFpbWVkVG9rZW5zAg9fY2xhaW1lZF90b2tlbnMAF2tleVVzZXJDbGFpbWVkQnV5VG9rZW5zAhNfY2xhaW1lZF9idXlfdG9rZW5zABprZXlVc2VyQm91Z2h0VGlja2V0c0Ftb3VudAIPX2JvdWdodF90aWNrZXRzAA5rZXlVc2VyVGlja2V0cwIPX3RpY2tldHNfbnVtYmVyABBrZXlVc2VySENUaWNrZXRzAiBfdGlja2V0c19udW1iZXJfaGlnaF9jb21wZXRpdGlvbgAca2V5VXNlckhDQm91Z2h0VGlja2V0c0Ftb3VudAIgX2JvdWdodF90aWNrZXRzX2hpZ2hfY29tcGV0aXRpb24AG2tleVVzZXJBdmFpbGFibGVBbGxvY2F0aW9ucwIdX2F2YWlsYWJsZV9wdXJjaGFzZV9tYXJrZXRpbmcAIGtleVVzZXJBbW91bnRCdXlBc3NldEluTWFya2V0aW5nAiFfcHVyY2hhc2VkX2J1eV9hc3NldF9pbl9tYXJrZXRpbmcAGGtleVVzZXJCb3VnaHRBbGxvY2F0aW9ucwITX2JvdWdodF9hbGxvY2F0aW9ucwASa2V5VXNlckNsYWltU3RhdHVzAg1fY2xhaW1fc3RhdHVzABprZXlVc2VyV2lubmVkVGlja2V0c0Ftb3VudAIPX3RpY2tldHNfcmVzdWx0AClrZXlVc2VyV2lubmVkSGlnaENvbXBldGl0aW9uVGlja2V0c0Ftb3VudAIgX3RpY2tldHNfcmVzdWx0X2hpZ2hfY29tcGV0aXRpb24AEmtleVVzZXJGcmVlemVUb2tlbgIUX2ZyZWV6ZV90b2tlbl9hbW91bnQABm9yYWNsZQkBB0FkZHJlc3MBARoBVEgTlwzA0zPMJTKAtin3p2RogKvjzHtLmQAKZ292ZXJuYW5jZQkBB0FkZHJlc3MBARoBVMjcuWCotbWVPLfydaKVHLjfUPyH4RW0IgAQY29tbWlzc2lvbldhbGxldAkBB0FkZHJlc3MBARoBVIu67/x0Qcp5qolR7D86Zc0NPlB1AJuHDgASc3Rha2luZ1VTRE5BZGRyZXNzCQEHQWRkcmVzcwEBGgFUyzDUI2tI0RnhEQqOmg6HEPqnSokkZ5v9AARVU0ROASA0ARNWjmBG4n5bqbgBR4LnsQAmEpt25E5LoqB8nG3ugQASYWRtaW5QdWJLZXlTdGFraW5nASAEz3XlZNDBD05nuR8TZMQaDeqEJEIxfTOQXUBYCp2TSgAMV0FWRVNfWFROX0VYCQEHQWRkcmVzcwEBGgFUE+06HqYmRCC3D4wq0lzrbsHxoPvs0AmgABRtYXhBbGxvY2F0aW9uc0Ftb3VudAACABFhY3RpdmVMYXVuY2hwYWRJZAkBC3ZhbHVlT3JFbHNlAgkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwUUa2V5TGF1bmNocGFkQWN0aXZlSWQA////////////AQELZ2V0QWRtaW5QdWIBC2tleUFkbWluUHViBAckbWF0Y2gwCQCdCAIFBm9yYWNsZQULa2V5QWRtaW5QdWIDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAZzdHJpbmcFByRtYXRjaDAJANkEAQUGc3RyaW5nBAdub3RoaW5nBQckbWF0Y2gwCQACAQIZQWRtaW4gcHVibGljIGtleSBpcyBlbXB0eQAMYWRtaW5QdWJLZXkxCQELZ2V0QWRtaW5QdWIBBQ9rZXlBZG1pblB1YktleTEADGFkbWluUHViS2V5MgkBC2dldEFkbWluUHViAQUPa2V5QWRtaW5QdWJLZXkyAAxhZG1pblB1YktleTMJAQtnZXRBZG1pblB1YgEFD2tleUFkbWluUHViS2V5MwEMZ2V0QXNzZXRJbmZvAQdhc3NldElkBAckbWF0Y2gwBQdhc3NldElkAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAmlkBQckbWF0Y2gwBAhzdHJpbmdJZAkA2AQBBQJpZAQEaW5mbwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEFAmlkCQCsAgIJAKwCAgIGQXNzZXQgBQhzdHJpbmdJZAIOIGRvZXNuJ3QgZXhpc3QJAJUKAwUIc3RyaW5nSWQIBQRpbmZvBG5hbWUIBQRpbmZvCGRlY2ltYWxzAwkAAQIFByRtYXRjaDACBFVuaXQEBXdhdmVzBQckbWF0Y2gwCQCVCgMCBVdBVkVTAgVXQVZFUwAICQACAQILTWF0Y2ggZXJyb3IBEmdldExhdW5jaHBhZE5leHRJZAAJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUSa2V5TGF1bmNocGFkTmV4dElkAAEBEHN0YWtlZFVzZG5BbW91bnQACQELdmFsdWVPckVsc2UCCQCaCAIFEnN0YWtpbmdVU0ROQWRkcmVzcwkArAICCQCsAgIJAKwCAgIMcnBkX2JhbGFuY2VfCQDYBAEFBFVTRE4CAV8JAKUIAQUEdGhpcwAAAAZhY3RpdmUJAQt2YWx1ZU9yRWxzZQIJAJsIAgUEdGhpcwUJa2V5QWN0aXZlBgAKYWN0aXZlR2xvYgkBC3ZhbHVlT3JFbHNlAgkAmwgCBQZvcmFjbGUFC2tBY3RpdmVHbG9iBgEIaXNBY3RpdmUAAwMFBmFjdGl2ZQUKYWN0aXZlR2xvYgcFBHVuaXQJAAIBAh9EQXBwIGlzIGluYWN0aXZlIGF0IHRoaXMgbW9tZW50AQtpc0FkbWluQ2FsbAEBaQMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFDGFkbWluUHViS2V5MQkAzAgCBQxhZG1pblB1YktleTIJAMwIAgUMYWRtaW5QdWJLZXkzBQNuaWwIBQFpD2NhbGxlclB1YmxpY0tleQUEdW5pdAkAAgECIU9ubHkgYWRtaW4gY2FuIGNhbGwgdGhpcyBmdW5jdGlvbgEWZ2V0QXNzZXRJbmZvRnJvbVN0cmluZwEIYXNzZXRTdHIDCQAAAgUIYXNzZXRTdHICBVdBVkVTCQCWCgQFBHVuaXQCBVdBVkVTAgVXQVZFUwAIBAhzdHJpbmdJZAUIYXNzZXRTdHIEAmlkCQDZBAEFCGFzc2V0U3RyBARpbmZvCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCaWQJAKwCAgkArAICAgZBc3NldCAFCHN0cmluZ0lkAg4gZG9lc24ndCBleGlzdAkAlgoEBQJpZAUIc3RyaW5nSWQIBQRpbmZvBG5hbWUIBQRpbmZvCGRlY2ltYWxzAQpidXlJbldhdmVzAwtsYXVuY2hwYWRJZA10aWNrZXRzQW1vdW50BHR5cGUECyR0MDUxNTk1MzA5CQEWZ2V0QXNzZXRJbmZvRnJvbVN0cmluZwEJAQV2YWx1ZQEJAJ0IAgUEdGhpcwkArAICCQCkAwEFC2xhdW5jaHBhZElkBQtrZXlCdXlUb2tlbgQKYnV5QXNzZXRJZAgFCyR0MDUxNTk1MzA5Al8xBA1idXlBc3NldFN0cklkCAULJHQwNTE1OTUzMDkCXzIEDGJ1eUFzc2V0TmFtZQgFCyR0MDUxNTk1MzA5Al8zBBBidXlBc3NldERlY2ltYWxzCAULJHQwNTE1OTUzMDkCXzQECnRva2VuUHJpY2UJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMJAKwCAgkApAMBBQtsYXVuY2hwYWRJZAUQa2V5UHJpY2VQZXJUb2tlbgQPdG9rZW5zUGVyVGlja2V0CQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzCQCsAgIJAKQDAQULbGF1bmNocGFkSWQFEmtleVRva2Vuc1BlclRpY2tldAQLJHQwNTQ5MTU2MzUJARZnZXRBc3NldEluZm9Gcm9tU3RyaW5nAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwkArAICCQCkAwEFC2xhdW5jaHBhZElkBQprZXlBc3NldElkBAd0b2tlbklkCAULJHQwNTQ5MTU2MzUCXzEED3Rva2VuU3RyQXNzZXRJZAgFCyR0MDU0OTE1NjM1Al8yBA50b2tlbkFzc2V0TmFtZQgFCyR0MDU0OTE1NjM1Al8zBA10b2tlbkRlY2ltYWxzCAULJHQwNTQ5MTU2MzUCXzQEC3RpY2tldFByaWNlCQBrAwUPdG9rZW5zUGVyVGlja2V0BQp0b2tlblByaWNlCQBsBgAKAAAFDXRva2VuRGVjaW1hbHMAAAAABQRET1dOBBNjb21taXNzaW9uUGVyVGlja2V0AwkAAAIFBHR5cGUAAQkAawMFC3RpY2tldFByaWNlCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzCQCsAgIJAKQDAQULbGF1bmNocGFkSWQFDGtleUNvbWlzc2lvbgBkCQBrAwULdGlja2V0UHJpY2UJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMJAKwCAgkApAMBBQtsYXVuY2hwYWRJZAUba2V5SGlnaENvbXBldGl0aW9uQ29taXNzaW9uAGQEEGFtbnRUb0dldFRpY2tldHMJAGgCBQ10aWNrZXRzQW1vdW50CQBkAgULdGlja2V0UHJpY2UFE2NvbW1pc3Npb25QZXJUaWNrZXQECWFtbnRUb1BheQoAAUAJAJEDAgoAAUAJAPwHBAUMV0FWRVNfWFROX0VYAgxjYWxsRnVuY3Rpb24JAMwIAgIVaG93TWFueVlvdVBheVJFQURPTkxZCQDMCAIJAMwIAgkApAMBBRBhbW50VG9HZXRUaWNrZXRzCQDMCAIFCmJ1eUFzc2V0SWQFA25pbAUDbmlsBQNuaWwDCQABAgUBQAIJTGlzdFtBbnldBQFACQACAQkArAICCQADAQUBQAIeIGNvdWxkbid0IGJlIGNhc3QgdG8gTGlzdFtBbnldAAADCQABAgUBQAIDSW50BQFACQACAQkArAICCQADAQUBQAIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50AwkAAAIFCWFtbnRUb1BheQUJYW1udFRvUGF5CQBrAwUJYW1udFRvUGF5AGUAZAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgwBaQENaGFzaGluZ1JhbmRvbQILbGF1bmNocGFkSWQEaGFzaAkBC3ZhbHVlT3JFbHNlAgkBCGlzQWN0aXZlAAkBC3ZhbHVlT3JFbHNlAgkBC2lzQWRtaW5DYWxsAQUBaQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKQDAQULbGF1bmNocGFkSWQFDWtleVZlcmlmeUhhc2gFBGhhc2gFA25pbAFpAQppbml0Q2FsbGVyAQdhZGRyZXNzCQELdmFsdWVPckVsc2UCCQEIaXNBY3RpdmUACQELdmFsdWVPckVsc2UCCQELaXNBZG1pbkNhbGwBBQFpCQDMCAIJAQtTdHJpbmdFbnRyeQIFDWtleUluaXRDYWxsZXIFB2FkZHJlc3MFA25pbAFpAQRpbml0Eg5wcm9qZWN0QWRkcmVzcwtzdGFydEhlaWdodAhkdXJhdGlvbghidXlUb2tlbgpjb21taXNzaW9uD3Rva2Vuc1BlclRpY2tldA1wcmljZVBlclRva2VuE3N3b3BmaVRpY2tldHNBbW91bnQUY2FtcGFpZ25Ub2tlbnNBbW91bnQTdG9rZW5zUGVyQWxsb2NhdGlvbg1zd29wUGVyVGlja2V0EnN3b3BGcmVlemVEdXJhdGlvbgtjbGFpbVBhcmFtcxNIaWdoQ29tcGV0aXRpb25TYWxlGGhpZ2hDb21wZXRpdGlvbkNvbWlzc2lvbhxoaWdoQ29tcGV0aXRpb25UaWNrZXRzQW1vdW50FWZyZWV6ZUFkZGl0aW9uYWxUb2tlbgxmcmVlemVQYXJhbXMJAQt2YWx1ZU9yRWxzZQIJAQhpc0FjdGl2ZQADCQECIT0CCQClCAEIBQFpBmNhbGxlcgkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzBQ1rZXlJbml0Q2FsbGVyAgAJAAIBAilPbmx5IHByb2plY3QgYWRtaW4gY2FuIGNhbGwgaW5pdCBmdW5jdGlvbgMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAQkAAgECHU9uZSBhdHRhY2hlZCBwYXltZW50IGV4cGVjdGVkAwkAZgIFBmhlaWdodAULc3RhcnRIZWlnaHQJAAIBAjNTdGFydCBoZWlnaHQgbXVzdCBiZSBncmVhdGVyIHRoYW4gYmxvY2tjaGFpbiBoZWlnaHQDAwUVZnJlZXplQWRkaXRpb25hbFRva2VuCQECIT0CCQCQAwEFDGZyZWV6ZVBhcmFtcwADBwkAAgECJEZyZWV6ZSBwYXJhbXMgbGlzdCBtdXN0IGhhdmUgMyBpdGVtcwQLbGF1bmNocGFkSWQJARJnZXRMYXVuY2hwYWROZXh0SWQABA5sYXVuY2hwYWRJZFN0cgkApAMBBQtsYXVuY2hwYWRJZAQLJHQwNzc4OTc4NjQJAJQKAggJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAQJcG10QW1vdW50CAULJHQwNzc4OTc4NjQCXzEECnBtdEFzc2V0SWQIBQskdDA3Nzg5Nzg2NAJfMgQLJHQwNzg3Mzc5NDYJAQxnZXRBc3NldEluZm8BBQpwbXRBc3NldElkBA1wbXRTdHJBc3NldElkCAULJHQwNzg3Mzc5NDYCXzEEDHBtdEFzc2V0TmFtZQgFCyR0MDc4NzM3OTQ2Al8yBAtwbXREZWNpbWFscwgFCyR0MDc4NzM3OTQ2Al8zBBVmcmVlemVBZGRpdGlvbmFsRW50cnkDBRVmcmVlemVBZGRpdGlvbmFsVG9rZW4JAMwIAgkBDEJvb2xlYW5FbnRyeQIJAKwCAgUObGF1bmNocGFkSWRTdHIFGGtleUZyZWV6ZUFkZGl0aW9uYWxUb2tlbgYJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQ5sYXVuY2hwYWRJZFN0cgUQa2V5RnJlZXplVG9rZW5JZAkAkQMCBQxmcmVlemVQYXJhbXMAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQ5sYXVuY2hwYWRJZFN0cgUWa2V5RnJlZXplVG9rZW5EdXJhdGlvbgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFDGZyZWV6ZVBhcmFtcwABCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFDmxhdW5jaHBhZElkU3RyBRdrZXlGcmVlemVUb2tlblBlclRpY2tldAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFDGZyZWV6ZVBhcmFtcwACBQNuaWwFA25pbAkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFDXBtdFN0ckFzc2V0SWQCCl9sYXVuY2hwYWQFC2xhdW5jaHBhZElkCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRJrZXlMYXVuY2hwYWROZXh0SWQJAGQCBQtsYXVuY2hwYWRJZAABCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUObGF1bmNocGFkSWRTdHIFCmtleUFkZHJlc3MFDnByb2plY3RBZGRyZXNzCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFDmxhdW5jaHBhZElkU3RyBQ1rZXlJbml0SGVpZ2h0BQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUObGF1bmNocGFkSWRTdHIFDmtleVN0YXJ0SGVpZ2h0BQtzdGFydEhlaWdodAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQ5sYXVuY2hwYWRJZFN0cgULa2V5RHVyYXRpb24FCGR1cmF0aW9uCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUObGF1bmNocGFkSWRTdHIFC2tleUJ1eVRva2VuBQhidXlUb2tlbgkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQ5sYXVuY2hwYWRJZFN0cgUUa2V5RnJlZXpTd29wRHVyYXRpb24FEnN3b3BGcmVlemVEdXJhdGlvbgkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQ5sYXVuY2hwYWRJZFN0cgUTa2V5VG90YWxUb2tlbkFtb3VudAUJcG10QW1vdW50CQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUObGF1bmNocGFkSWRTdHIFCmtleUFzc2V0SWQFDXBtdFN0ckFzc2V0SWQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUObGF1bmNocGFkSWRTdHIFDGtleUNvbWlzc2lvbgUKY29tbWlzc2lvbgkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQ5sYXVuY2hwYWRJZFN0cgUTa2V5VGlja2V0TGFzdE51bWJlcgAACQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFDmxhdW5jaHBhZElkU3RyBRVrZXlIQ1RpY2tldExhc3ROdW1iZXIAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQ5sYXVuY2hwYWRJZFN0cgUSa2V5VG9rZW5zUGVyVGlja2V0BQ90b2tlbnNQZXJUaWNrZXQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUObGF1bmNocGFkSWRTdHIFEGtleVByaWNlUGVyVG9rZW4FDXByaWNlUGVyVG9rZW4JAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUObGF1bmNocGFkSWRTdHIFEGtleVN3b3BQZXJUaWNrZXQFDXN3b3BQZXJUaWNrZXQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUObGF1bmNocGFkSWRTdHIFFmtleVN3b3BmaVRpY2tldHNBbW91bnQFE3N3b3BmaVRpY2tldHNBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUObGF1bmNocGFkSWRTdHIFF2tleUNhbXBhaWduVG9rZW5zQW1vdW50BRRjYW1wYWlnblRva2Vuc0Ftb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQ5sYXVuY2hwYWRJZFN0cgUWa2V5VG9rZW5zUGVyQWxsb2NhdGlvbgUTdG9rZW5zUGVyQWxsb2NhdGlvbgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFDmxhdW5jaHBhZElkU3RyBQ5rZXlDbGFpbVBhcmFtcwkAuQkCBQtjbGFpbVBhcmFtcwIBLAkAzAgCCQEMQm9vbGVhbkVudHJ5AgkArAICBQ5sYXVuY2hwYWRJZFN0cgUWa2V5SGlnaENvbXBldGl0aW9uU2FsZQUTSGlnaENvbXBldGl0aW9uU2FsZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQ5sYXVuY2hwYWRJZFN0cgUba2V5SGlnaENvbXBldGl0aW9uQ29taXNzaW9uBRhoaWdoQ29tcGV0aXRpb25Db21pc3Npb24JAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUObGF1bmNocGFkSWRTdHIFGGtleUhpZ2hDb21wZXRpdGlvbkFtb3VudAUcaGlnaENvbXBldGl0aW9uVGlja2V0c0Ftb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgUUa2V5TGF1bmNocGFkQWN0aXZlSWQFC2xhdW5jaHBhZElkCQDMCAIJAQtTdHJpbmdFbnRyeQIFDWtleUluaXRDYWxsZXICAAUDbmlsBRVmcmVlemVBZGRpdGlvbmFsRW50cnkBaQEQY29tbWl0U3dvcGZpU2FsZQILbGF1bmNocGFkSWQFcmVmSWQJAQt2YWx1ZU9yRWxzZQIJAQhpc0FjdGl2ZQAECnRva2VuUHJpY2UJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMJAKwCAgkApAMBBQtsYXVuY2hwYWRJZAUQa2V5UHJpY2VQZXJUb2tlbgQPdG9rZW5zUGVyVGlja2V0CQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzCQCsAgIJAKQDAQULbGF1bmNocGFkSWQFEmtleVRva2Vuc1BlclRpY2tldAQNJHQwMTA3MjkxMDg3MwkBFmdldEFzc2V0SW5mb0Zyb21TdHJpbmcBCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQCsAgIJAKQDAQULbGF1bmNocGFkSWQFCmtleUFzc2V0SWQEB3Rva2VuSWQIBQ0kdDAxMDcyOTEwODczAl8xBA90b2tlblN0ckFzc2V0SWQIBQ0kdDAxMDcyOTEwODczAl8yBA50b2tlbkFzc2V0TmFtZQgFDSR0MDEwNzI5MTA4NzMCXzMEDXRva2VuRGVjaW1hbHMIBQ0kdDAxMDcyOTEwODczAl80BAt0aWNrZXRQcmljZQkAawMFD3Rva2Vuc1BlclRpY2tldAUKdG9rZW5QcmljZQkAbAYACgAABQ10b2tlbkRlY2ltYWxzAAAAAAUERE9XTgQTY29tbWlzc2lvblBlclRpY2tldAkAawMFC3RpY2tldFByaWNlCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzCQCsAgIJAKQDAQULbGF1bmNocGFkSWQFDGtleUNvbWlzc2lvbgBkBA0kdDAxMTA5MDExMjQwCQEWZ2V0QXNzZXRJbmZvRnJvbVN0cmluZwEJAQV2YWx1ZQEJAJ0IAgUEdGhpcwkArAICCQCkAwEFC2xhdW5jaHBhZElkBQtrZXlCdXlUb2tlbgQKYnV5QXNzZXRJZAgFDSR0MDExMDkwMTEyNDACXzEEDWJ1eUFzc2V0U3RySWQIBQ0kdDAxMTA5MDExMjQwAl8yBAxidXlBc3NldE5hbWUIBQ0kdDAxMTA5MDExMjQwAl8zBBBidXlBc3NldERlY2ltYWxzCAUNJHQwMTEwOTAxMTI0MAJfNAQLc3Rha2VkU3dvcHMJAQt2YWx1ZU9yRWxzZQIJAJoIAgUKZ292ZXJuYW5jZQkArAICCQClCAEIBQFpBmNhbGxlcgUTa2V5R292ZXJuYW5jZVN0YWtlZAAABBdhbGxvd2VkVGlja2V0c0Ftb3VudEFsbAkAaQIFC3N0YWtlZFN3b3BzCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzCQCsAgIJAKQDAQULbGF1bmNocGFkSWQFEGtleVN3b3BQZXJUaWNrZXQEE2JvdWdodFRpY2tldHNBbW91bnQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkArAICCQCsAgIJAKwCAgkApQgBCAUBaQZjYWxsZXICAV8JAKQDAQULbGF1bmNocGFkSWQFGmtleVVzZXJCb3VnaHRUaWNrZXRzQW1vdW50AAAEFGFsbG93ZWRUaWNrZXRzQW1vdW50CQBlAgUXYWxsb3dlZFRpY2tldHNBbW91bnRBbGwFE2JvdWdodFRpY2tldHNBbW91bnQEC3N0YXJ0SGVpZ2h0CQEFdmFsdWUBCQCaCAIFBHRoaXMJAKwCAgkApAMBBQtsYXVuY2hwYWRJZAUOa2V5U3RhcnRIZWlnaHQECGR1cmF0aW9uCQEFdmFsdWUBCQCaCAIFBHRoaXMJAKwCAgkApAMBBQtsYXVuY2hwYWRJZAULa2V5RHVyYXRpb24EFWZyZWV6ZUFkZGl0aW9uYWxUb2tlbgkBC3ZhbHVlT3JFbHNlAgkAmwgCBQR0aGlzCQCsAgIJAKQDAQULbGF1bmNocGFkSWQFGGtleUZyZWV6ZUFkZGl0aW9uYWxUb2tlbgcEDSR0MDExOTY1MTMwMjEDCQAAAggJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBQR1bml0BAlhbW50VG9HZXQKAAFACQCRAwIKAAFACQD8BwQFDFdBVkVTX1hUTl9FWAIMY2FsbEZ1bmN0aW9uCQDMCAICFWhvd01hbnlZb3VHZXRSRUFET05MWQkAzAgCCQDMCAIJAKQDAQgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQJAMwIAgUKYnV5QXNzZXRJZAUDbmlsBQNuaWwFA25pbAMJAAECBQFAAglMaXN0W0FueV0FAUAJAAIBCQCsAgIJAAMBBQFAAh4gY291bGRuJ3QgYmUgY2FzdCB0byBMaXN0W0FueV0AAAMJAAECBQFAAgNJbnQFAUAJAAIBCQCsAgIJAAMBBQFAAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQDCQAAAgUJYW1udFRvR2V0BQlhbW50VG9HZXQEDXRpY2tldHNBbW91bnQJAGkCBQlhbW50VG9HZXQJAGQCBQt0aWNrZXRQcmljZQUTY29tbWlzc2lvblBlclRpY2tldAQQYW1udFRvR2V0VGlja2V0cwkAaAIFDXRpY2tldHNBbW91bnQJAGQCBQt0aWNrZXRQcmljZQUTY29tbWlzc2lvblBlclRpY2tldAQJYW1udFRvUGF5CgABQAkAkQMCCgABQAkA/AcEBQxXQVZFU19YVE5fRVgCDGNhbGxGdW5jdGlvbgkAzAgCAhVob3dNYW55WW91UGF5UkVBRE9OTFkJAMwIAgkAzAgCCQCkAwEFEGFtbnRUb0dldFRpY2tldHMJAMwIAgUKYnV5QXNzZXRJZAUDbmlsBQNuaWwFA25pbAMJAAECBQFAAglMaXN0W0FueV0FAUAJAAIBCQCsAgIJAAMBBQFAAh4gY291bGRuJ3QgYmUgY2FzdCB0byBMaXN0W0FueV0AAAMJAAECBQFAAgNJbnQFAUAJAAIBCQCsAgIJAAMBBQFAAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQDCQAAAgUJYW1udFRvUGF5BQlhbW50VG9QYXkEAmV4CQD8BwQFDFdBVkVTX1hUTl9FWAIMY2FsbEZ1bmN0aW9uCQDMCAICCGV4Y2hhbmdlCQDMCAIJAMwIAgkApAMBBRBhbW50VG9HZXRUaWNrZXRzBQNuaWwFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUEdW5pdAUJYW1udFRvUGF5BQNuaWwDCQAAAgUCZXgFAmV4BAZjaGFuZ2UJAGUCCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAUQYW1udFRvR2V0VGlja2V0cwQGY0VudHJ5AwkAZgIFBmNoYW5nZQAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUGY2hhbmdlCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFA25pbAUDbmlsCQCVCgMFEGFtbnRUb0dldFRpY2tldHMFCmJ1eUFzc2V0SWQFBmNFbnRyeQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAlQoDCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBQNuaWwECXBtdEFtb3VudAgFDSR0MDExOTY1MTMwMjECXzEECnBtdEFzc2V0SWQIBQ0kdDAxMTk2NTEzMDIxAl8yBAtjaGFuZ2VFbnRyeQgFDSR0MDExOTY1MTMwMjECXzMDCQECIT0CBRFhY3RpdmVMYXVuY2hwYWRJZAULbGF1bmNocGFkSWQJAAIBAjdUaGVyZSBpcyBubyBhY3RpdmUgbGF1bmNocGFkIG9yIHRoaXMgbGF1bmNocGFkIGlzIGVuZGVkAwkAZgIFC3N0YXJ0SGVpZ2h0BQZoZWlnaHQJAAIBAh5MYXVuY2hwYWQgc2FsZSBub3Qgc3RhcnRlZCB5ZXQDCQBmAgUGaGVpZ2h0CQBkAgULc3RhcnRIZWlnaHQFCGR1cmF0aW9uCQACAQIUTGF1bmNocGFkIHNhbGUgZW5kZWQDAwkBASEBBRVmcmVlemVBZGRpdGlvbmFsVG9rZW4DCQECIT0CCQCQAwEIBQFpCHBheW1lbnRzAAEGCQECIT0CBQpwbXRBc3NldElkBQpidXlBc3NldElkBwkAAgEJAKwCAgkArAICAhhPbmUgYXR0YWNoZWQgcGF5bWVudCBpbiAFDGJ1eUFzc2V0TmFtZQIJIGV4cGVjdGVkAwMFFWZyZWV6ZUFkZGl0aW9uYWxUb2tlbgMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAgYJAQIhPQIFCnBtdEFzc2V0SWQFCmJ1eUFzc2V0SWQHBA1mcmVlemVUb2tlbklkCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQCsAgIJAKQDAQULbGF1bmNocGFkSWQFEGtleUZyZWV6ZVRva2VuSWQJAAIBCQCsAgIJAKwCAgkArAICAilUd28gYXR0YWNoZWQgcGF5bWVudHMgZXhwZWN0ZWQ6IEZpcnN0IGluIAUMYnV5QXNzZXROYW1lAgwsIHNlY29uZCBpbiAFDWZyZWV6ZVRva2VuSWQDAwkAZwIAAAUXYWxsb3dlZFRpY2tldHNBbW91bnRBbGwGCQBnAgAABRRhbGxvd2VkVGlja2V0c0Ftb3VudAkAAgECKk5vdCBlbm91Z2h0IFNXT1AgaW4gc3Rha2luZyB0byBidXkgdGlja2V0cwQPYnV5VGlja2V0QW1vdW50CQBpAgUJcG10QW1vdW50CQBkAgULdGlja2V0UHJpY2UFE2NvbW1pc3Npb25QZXJUaWNrZXQEFmFsbG93ZWRCdXlUaWNrZXRBbW91bnQJAJcDAQkAzAgCBQ9idXlUaWNrZXRBbW91bnQJAMwIAgUUYWxsb3dlZFRpY2tldHNBbW91bnQFA25pbAQcYWxsb3dlZEJ1eVByaWNlV2l0aENvbWlzc2lvbgkAaAIFFmFsbG93ZWRCdXlUaWNrZXRBbW91bnQJAGQCBQt0aWNrZXRQcmljZQUTY29tbWlzc2lvblBlclRpY2tldAQGY2hhbmdlCQBlAgUJcG10QW1vdW50BRxhbGxvd2VkQnV5UHJpY2VXaXRoQ29taXNzaW9uAwkAAAIFD2J1eVRpY2tldEFtb3VudAAACQACAQkArAICCQCsAgICDE5vdCBlbm91Z2h0IAUMYnV5QXNzZXROYW1lAg8gdG8gYnV5IHRpY2tldHMDCQECIT0CBQZjaGFuZ2UAAAkAAgEJAKwCAgkArAICCQCsAgIJAKwCAgIWV3JvbmcgcGF5bWVudC4gVG8gYnV5IAkApAMBBRZhbGxvd2VkQnV5VGlja2V0QW1vdW50Ahh0aWNrZXRzIHlvdSBuZWVkIHRvIHBheSAJAKQDAQUcYWxsb3dlZEJ1eVByaWNlV2l0aENvbWlzc2lvbgUMYnV5QXNzZXROYW1lBBVmcmVlemVBZGRpdGlvbmFsRW50cnkDBRVmcmVlemVBZGRpdGlvbmFsVG9rZW4EDWZyZWV6ZVRva2VuSWQJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAKwCAgkApAMBBQtsYXVuY2hwYWRJZAUQa2V5RnJlZXplVG9rZW5JZAQUZnJlZXplVG9rZW5QZXJUaWNrZXQJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMJAKwCAgkApAMBBQtsYXVuY2hwYWRJZAUXa2V5RnJlZXplVG9rZW5QZXJUaWNrZXQEDSR0MDE0ODY0MTQ5NTEJAJQKAggJAJEDAggFAWkIcGF5bWVudHMAAQZhbW91bnQICQCRAwIIBQFpCHBheW1lbnRzAAEHYXNzZXRJZAQPcG10QW1vdW50RnJlZXplCAUNJHQwMTQ4NjQxNDk1MQJfMQQQcG10QXNzZXRJZEZyZWV6ZQgFDSR0MDE0ODY0MTQ5NTECXzIEDSR0MDE0OTY4MTUwNTkJAQxnZXRBc3NldEluZm8BBQpwbXRBc3NldElkBBNwbXRGcmVlemVTdHJBc3NldElkCAUNJHQwMTQ5NjgxNTA1OQJfMQQScG10RnJlZXplQXNzZXROYW1lCAUNJHQwMTQ5NjgxNTA1OQJfMgQRcG10RnJlZXplRGVjaW1hbHMIBQ0kdDAxNDk2ODE1MDU5Al8zBBBuZWVkRnJlZXplVG9rZW5zCQBoAgUUZnJlZXplVG9rZW5QZXJUaWNrZXQFD2J1eVRpY2tldEFtb3VudAMDCQECIT0CBRNwbXRGcmVlemVTdHJBc3NldElkBQ1mcmVlemVUb2tlbklkBgkBAiE9AgUQbmVlZEZyZWV6ZVRva2VucwUPcG10QW1vdW50RnJlZXplCQACAQkArAICCQCsAgIJAKwCAgkArAICAhBZb3UgbmVlZCB0byBhZGQgCQCkAwEFEG5lZWRGcmVlemVUb2tlbnMCASAFEnBtdEZyZWV6ZUFzc2V0TmFtZQIUIGFzIGEgc2Vjb25kIHBheW1lbnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICCQCsAgIJAKUIAQgFAWkGY2FsbGVyAgFfCQCkAwEFC2xhdW5jaHBhZElkBRJrZXlVc2VyRnJlZXplVG9rZW4FD3BtdEFtb3VudEZyZWV6ZQUDbmlsBQNuaWwEGHVzZXJCb3VnaHRUaWNrZXRzTnVtYmVycwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQCsAgIJAKwCAgkArAICCQClCAEIBQFpBmNhbGxlcgIBXwkApAMBBQtsYXVuY2hwYWRJZAUOa2V5VXNlclRpY2tldHMCAAQWbGFzdEJvdWdodFRpY2tldE51bWJlcgkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwkArAICCQCkAwEFC2xhdW5jaHBhZElkBRNrZXlUaWNrZXRMYXN0TnVtYmVyBAtib3VnaHRSYW5nZQkArAICCQCsAgIJAKQDAQkAZAIFFmxhc3RCb3VnaHRUaWNrZXROdW1iZXIAAQIBLQkApAMBCQBkAgUWbGFzdEJvdWdodFRpY2tldE51bWJlcgUWYWxsb3dlZEJ1eVRpY2tldEFtb3VudAQbbmV3VXNlckJvdWdodFRpY2tldHNOdW1iZXJzCQCsAgIFGHVzZXJCb3VnaHRUaWNrZXRzTnVtYmVycwMJAQIhPQIFGHVzZXJCb3VnaHRUaWNrZXRzTnVtYmVycwIACQCsAgICASwFC2JvdWdodFJhbmdlCQCsAgICAAULYm91Z2h0UmFuZ2UEA2ludgMJAAACBQpidXlBc3NldElkBQRVU0ROCQD8BwQFEnN0YWtpbmdVU0ROQWRkcmVzcwIMbG9ja05ldXRyaW5vBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFCnBtdEFzc2V0SWQFCXBtdEFtb3VudAUDbmlsAAADCQAAAgUDaW52BQNpbnYECWJhc2VFbnRyeQkAzggCCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICCQCsAgIJAKUIAQgFAWkGY2FsbGVyAgFfCQCkAwEFC2xhdW5jaHBhZElkBRprZXlVc2VyQm91Z2h0VGlja2V0c0Ftb3VudAkAZAIFE2JvdWdodFRpY2tldHNBbW91bnQFFmFsbG93ZWRCdXlUaWNrZXRBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkApAMBBQtsYXVuY2hwYWRJZAUTa2V5VGlja2V0TGFzdE51bWJlcgkAZAIFFmxhc3RCb3VnaHRUaWNrZXROdW1iZXIFFmFsbG93ZWRCdXlUaWNrZXRBbW91bnQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkApQgBCAUBaQZjYWxsZXICAV8JAKQDAQULbGF1bmNocGFkSWQFDmtleVVzZXJUaWNrZXRzBRtuZXdVc2VyQm91Z2h0VGlja2V0c051bWJlcnMFA25pbAUVZnJlZXplQWRkaXRpb25hbEVudHJ5BQtjaGFuZ2VFbnRyeQMJAQEhAQkBCWlzRGVmaW5lZAEJAJ0IAgUEdGhpcwkArAICCQCsAgIJAKwCAgkApQgBCAUBaQZjYWxsZXICAV8JAKQDAQULbGF1bmNocGFkSWQFDGtleVVzZXJSZWZJZAkAzggCBQliYXNlRW50cnkJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkApQgBCAUBaQZjYWxsZXICAV8JAKQDAQULbGF1bmNocGFkSWQFDGtleVVzZXJSZWZJZAUFcmVmSWQFA25pbAUJYmFzZUVudHJ5CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBFGNvbW1pdEFjY2Vzc0xpc3RTYWxlAgtsYXVuY2hwYWRJZAVyZWZJZAkBC3ZhbHVlT3JFbHNlAgkBCGlzQWN0aXZlAAQNJHQwMTcxNDUxNzIyMAkAlAoCCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBAlwbXRBbW91bnQIBQ0kdDAxNzE0NTE3MjIwAl8xBApwbXRBc3NldElkCAUNJHQwMTcxNDUxNzIyMAJfMgQNJHQwMTcyMjUxNzM3NQkBFmdldEFzc2V0SW5mb0Zyb21TdHJpbmcBCQEFdmFsdWUBCQCdCAIFBHRoaXMJAKwCAgkApAMBBQtsYXVuY2hwYWRJZAULa2V5QnV5VG9rZW4ECmJ1eUFzc2V0SWQIBQ0kdDAxNzIyNTE3Mzc1Al8xBA1idXlBc3NldFN0cklkCAUNJHQwMTcyMjUxNzM3NQJfMgQMYnV5QXNzZXROYW1lCAUNJHQwMTcyMjUxNzM3NQJfMwQQYnV5QXNzZXREZWNpbWFscwgFDSR0MDE3MjI1MTczNzUCXzQEE3VzZXJVc2RuSW5NYXJrZXRpbmcJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkArAICCQCsAgIJAKwCAgkApQgBCAUBaQZjYWxsZXICAV8JAKQDAQULbGF1bmNocGFkSWQFIGtleVVzZXJBbW91bnRCdXlBc3NldEluTWFya2V0aW5nAAAED3VzZG5Jbk1hcmtldGluZwkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQCsAgIJAKQDAQULbGF1bmNocGFkSWQFHGtleUFtb3VudEJ1eUFzc2V0SW5NYXJrZXRpbmcAAAQRYm91Z2h0QWxsb2NhdGlvbnMJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkArAICCQCsAgIJAKwCAgkApQgBCAUBaQZjYWxsZXICAV8JAKQDAQULbGF1bmNocGFkSWQFGGtleVVzZXJCb3VnaHRBbGxvY2F0aW9ucwAABApjb21taXNzaW9uCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzCQCsAgIJAKQDAQULbGF1bmNocGFkSWQFDGtleUNvbWlzc2lvbgQKdG9rZW5QcmljZQkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwkArAICCQCkAwEFC2xhdW5jaHBhZElkBRBrZXlQcmljZVBlclRva2VuBBN0b2tlbnNQZXJBbGxvY2F0aW9uCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzCQCsAgIJAKQDAQULbGF1bmNocGFkSWQFFmtleVRva2Vuc1BlckFsbG9jYXRpb24EDSR0MDE4MDQ0MTgxODgJARZnZXRBc3NldEluZm9Gcm9tU3RyaW5nAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwkArAICCQCkAwEFC2xhdW5jaHBhZElkBQprZXlBc3NldElkBAd0b2tlbklkCAUNJHQwMTgwNDQxODE4OAJfMQQPdG9rZW5TdHJBc3NldElkCAUNJHQwMTgwNDQxODE4OAJfMgQOdG9rZW5Bc3NldE5hbWUIBQ0kdDAxODA0NDE4MTg4Al8zBA10b2tlbkRlY2ltYWxzCAUNJHQwMTgwNDQxODE4OAJfNAQcYWxsb2NhdGlvblByaWNlV2l0aENvbWlzc2lvbgkAawMJAGsDBQp0b2tlblByaWNlBRN0b2tlbnNQZXJBbGxvY2F0aW9uCQBsBgAKAAAFDXRva2VuRGVjaW1hbHMAAAAABQRET1dOCQBkAgBkBQpjb21taXNzaW9uAGQEC3N0YXJ0SGVpZ2h0CQEFdmFsdWUBCQCaCAIFBHRoaXMJAKwCAgkApAMBBQtsYXVuY2hwYWRJZAUOa2V5U3RhcnRIZWlnaHQECGR1cmF0aW9uCQEFdmFsdWUBCQCaCAIFBHRoaXMJAKwCAgkApAMBBQtsYXVuY2hwYWRJZAULa2V5RHVyYXRpb24DCQECIT0CBRFhY3RpdmVMYXVuY2hwYWRJZAULbGF1bmNocGFkSWQJAAIBAjdUaGVyZSBpcyBubyBhY3RpdmUgbGF1bmNocGFkIG9yIHRoaXMgbGF1bmNocGFkIGlzIGVuZGVkAwkAZgIFC3N0YXJ0SGVpZ2h0BQZoZWlnaHQJAAIBAh5MYXVuY2hwYWQgc2FsZSBub3Qgc3RhcnRlZCB5ZXQDCQBmAgUGaGVpZ2h0CQBkAgULc3RhcnRIZWlnaHQFCGR1cmF0aW9uCQACAQIUTGF1bmNocGFkIHNhbGUgZW5kZWQDAwkBAiE9AgkAkAMBCAUBaQhwYXltZW50cwABBgkBAiE9AgUKcG10QXNzZXRJZAUKYnV5QXNzZXRJZAkAAgEJAKwCAgkArAICAhhPbmUgYXR0YWNoZWQgcGF5bWVudCBpbiAFDGJ1eUFzc2V0TmFtZQIJIGV4cGVjdGVkAwkAZwIFEWJvdWdodEFsbG9jYXRpb25zBRRtYXhBbGxvY2F0aW9uc0Ftb3VudAkAAgEJAKwCAgkArAICAhFZb3UgY2FuIGJ1eSBvbmx5IAkApAMBBRRtYXhBbGxvY2F0aW9uc0Ftb3VudAILYWxsb2NhdGlvbnMDAwkBAiE9AgUcYWxsb2NhdGlvblByaWNlV2l0aENvbWlzc2lvbgUJcG10QW1vdW50CQECIT0CCQBoAgUcYWxsb2NhdGlvblByaWNlV2l0aENvbWlzc2lvbgACBQlwbXRBbW91bnQHCQACAQkArAICCQCsAgIJAKwCAgIyV3JvbmcgcGF5bWVudC4gWW91IGNhbiBidXkgMSBvciAyIGFsbG9jYXRpb25zIGZvciAJAKQDAQUcYWxsb2NhdGlvblByaWNlV2l0aENvbWlzc2lvbgUMYnV5QXNzZXROYW1lAg8gcGVyIGFsbG9jYXRpb24EFGJ1eUFsbG9jYXRpb25zQW1vdW50CQBpAgUJcG10QW1vdW50BRxhbGxvY2F0aW9uUHJpY2VXaXRoQ29taXNzaW9uBANpbnYDCQAAAgUKYnV5QXNzZXRJZAUEVVNETgkA/AcEBRJzdGFraW5nVVNETkFkZHJlc3MCDGxvY2tOZXV0cmlubwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQpwbXRBc3NldElkBQlwbXRBbW91bnQFA25pbAAAAwkAAAIFA2ludgUDaW52BAliYXNlRW50cnkJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICCQCsAgIJAKUIAQgFAWkGY2FsbGVyAgFfCQCkAwEFC2xhdW5jaHBhZElkBRhrZXlVc2VyQm91Z2h0QWxsb2NhdGlvbnMJAGQCBRFib3VnaHRBbGxvY2F0aW9ucwUUYnV5QWxsb2NhdGlvbnNBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICCQCsAgIJAKUIAQgFAWkGY2FsbGVyAgFfCQCkAwEFC2xhdW5jaHBhZElkBSBrZXlVc2VyQW1vdW50QnV5QXNzZXRJbk1hcmtldGluZwkAZAIFE3VzZXJVc2RuSW5NYXJrZXRpbmcFCXBtdEFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCkAwEFC2xhdW5jaHBhZElkBRxrZXlBbW91bnRCdXlBc3NldEluTWFya2V0aW5nCQBkAgUPdXNkbkluTWFya2V0aW5nBQlwbXRBbW91bnQFA25pbAMJAQEhAQkBCWlzRGVmaW5lZAEJAJ0IAgUEdGhpcwkArAICCQCsAgIJAKwCAgkApQgBCAUBaQZjYWxsZXICAV8JAKQDAQULbGF1bmNocGFkSWQFDGtleVVzZXJSZWZJZAkAzggCBQliYXNlRW50cnkJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkApQgBCAUBaQZjYWxsZXICAV8JAKQDAQULbGF1bmNocGFkSWQFDGtleVVzZXJSZWZJZAUFcmVmSWQFA25pbAUJYmFzZUVudHJ5CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBGWNvbW1pdEhpZ2hDb21wZXRpdGlvblNhbGUCC2xhdW5jaHBhZElkBXJlZklkCQELdmFsdWVPckVsc2UCCQEIaXNBY3RpdmUABA0kdDAyMDQ0NjIwNTk2CQEWZ2V0QXNzZXRJbmZvRnJvbVN0cmluZwEJAQV2YWx1ZQEJAJ0IAgUEdGhpcwkArAICCQCkAwEFC2xhdW5jaHBhZElkBQtrZXlCdXlUb2tlbgQKYnV5QXNzZXRJZAgFDSR0MDIwNDQ2MjA1OTYCXzEEDWJ1eUFzc2V0U3RySWQIBQ0kdDAyMDQ0NjIwNTk2Al8yBAxidXlBc3NldE5hbWUIBQ0kdDAyMDQ0NjIwNTk2Al8zBBBidXlBc3NldERlY2ltYWxzCAUNJHQwMjA0NDYyMDU5NgJfNAQLc3RhcnRIZWlnaHQJAQV2YWx1ZQEJAJoIAgUEdGhpcwkArAICCQCkAwEFC2xhdW5jaHBhZElkBQ5rZXlTdGFydEhlaWdodAQIZHVyYXRpb24JAQV2YWx1ZQEJAJoIAgUEdGhpcwkArAICCQCkAwEFC2xhdW5jaHBhZElkBQtrZXlEdXJhdGlvbgQVYm91Z2h0SENUaWNrZXRzQW1vdW50CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAKwCAgkArAICCQCsAgIJAKUIAQgFAWkGY2FsbGVyAgFfCQCkAwEFC2xhdW5jaHBhZElkBRxrZXlVc2VySENCb3VnaHRUaWNrZXRzQW1vdW50AAAEE2hpZ2hDb21wZXRpdGlvblNhbGUJAQt2YWx1ZU9yRWxzZQIJAJsIAgUEdGhpcwkArAICCQCkAwEFC2xhdW5jaHBhZElkBRZrZXlIaWdoQ29tcGV0aXRpb25TYWxlBwQKdG9rZW5QcmljZQkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwkArAICCQCkAwEFC2xhdW5jaHBhZElkBRBrZXlQcmljZVBlclRva2VuBA90b2tlbnNQZXJUaWNrZXQJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMJAKwCAgkApAMBBQtsYXVuY2hwYWRJZAUSa2V5VG9rZW5zUGVyVGlja2V0BA0kdDAyMTIwNjIxMzUwCQEWZ2V0QXNzZXRJbmZvRnJvbVN0cmluZwEJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAKwCAgkApAMBBQtsYXVuY2hwYWRJZAUKa2V5QXNzZXRJZAQHdG9rZW5JZAgFDSR0MDIxMjA2MjEzNTACXzEED3Rva2VuU3RyQXNzZXRJZAgFDSR0MDIxMjA2MjEzNTACXzIEDnRva2VuQXNzZXROYW1lCAUNJHQwMjEyMDYyMTM1MAJfMwQNdG9rZW5EZWNpbWFscwgFDSR0MDIxMjA2MjEzNTACXzQEC3RpY2tldFByaWNlCQBrAwUPdG9rZW5zUGVyVGlja2V0BQp0b2tlblByaWNlCQBsBgAKAAAFDXRva2VuRGVjaW1hbHMAAAAABQRET1dOBBNjb21taXNzaW9uUGVyVGlja2V0CQBrAwULdGlja2V0UHJpY2UJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMJAKwCAgkApAMBBQtsYXVuY2hwYWRJZAUba2V5SGlnaENvbXBldGl0aW9uQ29taXNzaW9uAGQEDSR0MDIxNTgzMjI2MzkDCQAAAggJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBQR1bml0BAlhbW50VG9HZXQKAAFACQCRAwIKAAFACQD8BwQFDFdBVkVTX1hUTl9FWAIMY2FsbEZ1bmN0aW9uCQDMCAICFWhvd01hbnlZb3VHZXRSRUFET05MWQkAzAgCCQDMCAIJAKQDAQgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQJAMwIAgUKYnV5QXNzZXRJZAUDbmlsBQNuaWwFA25pbAMJAAECBQFAAglMaXN0W0FueV0FAUAJAAIBCQCsAgIJAAMBBQFAAh4gY291bGRuJ3QgYmUgY2FzdCB0byBMaXN0W0FueV0AAAMJAAECBQFAAgNJbnQFAUAJAAIBCQCsAgIJAAMBBQFAAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQDCQAAAgUJYW1udFRvR2V0BQlhbW50VG9HZXQEDXRpY2tldHNBbW91bnQJAGkCBQlhbW50VG9HZXQJAGQCBQt0aWNrZXRQcmljZQUTY29tbWlzc2lvblBlclRpY2tldAQQYW1udFRvR2V0VGlja2V0cwkAaAIFDXRpY2tldHNBbW91bnQJAGQCBQt0aWNrZXRQcmljZQUTY29tbWlzc2lvblBlclRpY2tldAQJYW1udFRvUGF5CgABQAkAkQMCCgABQAkA/AcEBQxXQVZFU19YVE5fRVgCDGNhbGxGdW5jdGlvbgkAzAgCAhVob3dNYW55WW91UGF5UkVBRE9OTFkJAMwIAgkAzAgCCQCkAwEFEGFtbnRUb0dldFRpY2tldHMJAMwIAgUKYnV5QXNzZXRJZAUDbmlsBQNuaWwFA25pbAMJAAECBQFAAglMaXN0W0FueV0FAUAJAAIBCQCsAgIJAAMBBQFAAh4gY291bGRuJ3QgYmUgY2FzdCB0byBMaXN0W0FueV0AAAMJAAECBQFAAgNJbnQFAUAJAAIBCQCsAgIJAAMBBQFAAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQDCQAAAgUJYW1udFRvUGF5BQlhbW50VG9QYXkEAmV4CQD8BwQFDFdBVkVTX1hUTl9FWAIMY2FsbEZ1bmN0aW9uCQDMCAICCGV4Y2hhbmdlCQDMCAIJAMwIAgkApAMBBRBhbW50VG9HZXRUaWNrZXRzBQNuaWwFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUEdW5pdAUJYW1udFRvUGF5BQNuaWwDCQAAAgUCZXgFAmV4BAZjaGFuZ2UJAGUCCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAUQYW1udFRvR2V0VGlja2V0cwQGY0VudHJ5AwkAZgIFBmNoYW5nZQAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUGY2hhbmdlCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFA25pbAUDbmlsCQCVCgMFEGFtbnRUb0dldFRpY2tldHMFCmJ1eUFzc2V0SWQFBmNFbnRyeQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAlQoDCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBQNuaWwECXBtdEFtb3VudAgFDSR0MDIxNTgzMjI2MzkCXzEECnBtdEFzc2V0SWQIBQ0kdDAyMTU4MzIyNjM5Al8yBAtjaGFuZ2VFbnRyeQgFDSR0MDIxNTgzMjI2MzkCXzMDCQECIT0CBRFhY3RpdmVMYXVuY2hwYWRJZAULbGF1bmNocGFkSWQJAAIBAjdUaGVyZSBpcyBubyBhY3RpdmUgbGF1bmNocGFkIG9yIHRoaXMgbGF1bmNocGFkIGlzIGVuZGVkAwkBASEBBRNoaWdoQ29tcGV0aXRpb25TYWxlCQACAQI0VGhlcmUgaXMgbm8gaGlnaCBjb21wZXRpdGlvbiBzYWxlIGZvciB0aGlzIGxhdW5jaHBhZAMJAGYCBQtzdGFydEhlaWdodAUGaGVpZ2h0CQACAQIeTGF1bmNocGFkIHNhbGUgbm90IHN0YXJ0ZWQgeWV0AwkAZgIFBmhlaWdodAkAZAIFC3N0YXJ0SGVpZ2h0BQhkdXJhdGlvbgkAAgECFExhdW5jaHBhZCBzYWxlIGVuZGVkAwMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAQYJAQIhPQIFCnBtdEFzc2V0SWQFCmJ1eUFzc2V0SWQJAAIBCQCsAgIJAKwCAgIYT25lIGF0dGFjaGVkIHBheW1lbnQgaW4gBQxidXlBc3NldE5hbWUCCSBleHBlY3RlZAQPYnV5VGlja2V0QW1vdW50CQBpAgUJcG10QW1vdW50CQBkAgULdGlja2V0UHJpY2UFE2NvbW1pc3Npb25QZXJUaWNrZXQEFWJ1eVByaWNlV2l0aENvbWlzc2lvbgkAaAIFD2J1eVRpY2tldEFtb3VudAkAZAIFC3RpY2tldFByaWNlBRNjb21taXNzaW9uUGVyVGlja2V0BAZjaGFuZ2UJAGUCBQlwbXRBbW91bnQFFWJ1eVByaWNlV2l0aENvbWlzc2lvbgMJAAACBQ9idXlUaWNrZXRBbW91bnQAAAkAAgEJAKwCAgkArAICAgxOb3QgZW5vdWdodCAFDGJ1eUFzc2V0TmFtZQIPIHRvIGJ1eSB0aWNrZXRzAwkBAiE9AgUGY2hhbmdlAAAJAAIBCQCsAgIJAKwCAgkArAICCQCsAgICFldyb25nIHBheW1lbnQuIFRvIGJ1eSAJAKQDAQUPYnV5VGlja2V0QW1vdW50Ahh0aWNrZXRzIHlvdSBuZWVkIHRvIHBheSAJAKQDAQUVYnV5UHJpY2VXaXRoQ29taXNzaW9uBQxidXlBc3NldE5hbWUEGHVzZXJCb3VnaHRUaWNrZXRzTnVtYmVycwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQCsAgIJAKwCAgkArAICCQClCAEIBQFpBmNhbGxlcgIBXwkApAMBBQtsYXVuY2hwYWRJZAUQa2V5VXNlckhDVGlja2V0cwIABBZsYXN0Qm91Z2h0VGlja2V0TnVtYmVyCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzCQCsAgIJAKQDAQULbGF1bmNocGFkSWQFFWtleUhDVGlja2V0TGFzdE51bWJlcgQLYm91Z2h0UmFuZ2UJAKwCAgkArAICCQCkAwEJAGQCBRZsYXN0Qm91Z2h0VGlja2V0TnVtYmVyAAECAS0JAKQDAQkAZAIFFmxhc3RCb3VnaHRUaWNrZXROdW1iZXIFD2J1eVRpY2tldEFtb3VudAQbbmV3VXNlckJvdWdodFRpY2tldHNOdW1iZXJzCQCsAgIFGHVzZXJCb3VnaHRUaWNrZXRzTnVtYmVycwMJAQIhPQIFGHVzZXJCb3VnaHRUaWNrZXRzTnVtYmVycwIACQCsAgICASwFC2JvdWdodFJhbmdlCQCsAgICAAULYm91Z2h0UmFuZ2UEA2ludgMJAAACBQpidXlBc3NldElkBQRVU0ROCQD8BwQFEnN0YWtpbmdVU0ROQWRkcmVzcwIMbG9ja05ldXRyaW5vBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFCnBtdEFzc2V0SWQFCXBtdEFtb3VudAUDbmlsAAADCQAAAgUDaW52BQNpbnYECWJhc2VFbnRyeQkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICCQClCAEIBQFpBmNhbGxlcgIBXwkApAMBBQtsYXVuY2hwYWRJZAUca2V5VXNlckhDQm91Z2h0VGlja2V0c0Ftb3VudAkAZAIFFWJvdWdodEhDVGlja2V0c0Ftb3VudAUPYnV5VGlja2V0QW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKQDAQULbGF1bmNocGFkSWQFFWtleUhDVGlja2V0TGFzdE51bWJlcgkAZAIFFmxhc3RCb3VnaHRUaWNrZXROdW1iZXIFD2J1eVRpY2tldEFtb3VudAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQClCAEIBQFpBmNhbGxlcgIBXwkApAMBBQtsYXVuY2hwYWRJZAUQa2V5VXNlckhDVGlja2V0cwUbbmV3VXNlckJvdWdodFRpY2tldHNOdW1iZXJzBQNuaWwFC2NoYW5nZUVudHJ5AwkBASEBCQEJaXNEZWZpbmVkAQkAnQgCBQR0aGlzCQCsAgIJAKwCAgkArAICCQClCAEIBQFpBmNhbGxlcgIBXwkApAMBBQtsYXVuY2hwYWRJZAUMa2V5VXNlclJlZklkCQDOCAIFCWJhc2VFbnRyeQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQClCAEIBQFpBmNhbGxlcgIBXwkApAMBBQtsYXVuY2hwYWRJZAUMa2V5VXNlclJlZklkBQVyZWZJZAUDbmlsBQliYXNlRW50cnkJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEIZmluYWxpc2UDC2xhdW5jaHBhZElkCXZyZkhlaWdodApzZWNyZXRXb3JkCQELdmFsdWVPckVsc2UCCQEIaXNBY3RpdmUACQELdmFsdWVPckVsc2UCCQELaXNBZG1pbkNhbGwBBQFpBAlzYXZlZEhhc2gJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAKwCAgkApAMBBQtsYXVuY2hwYWRJZAUNa2V5VmVyaWZ5SGFzaAQIY2FsY0hhc2gJANgEAQkA9wMBCQDLAQIJAJoDAQUJdnJmSGVpZ2h0CQCbAwEFCnNlY3JldFdvcmQDCQECIT0CBQhjYWxjSGFzaAUJc2F2ZWRIYXNoCQACAQIcdnJmIEhlaWdodCBoYXNoIG5vdCBtYXRjaGluZwQNJHQwMjU1OTIyNTc0MgkBFmdldEFzc2V0SW5mb0Zyb21TdHJpbmcBCQEFdmFsdWUBCQCdCAIFBHRoaXMJAKwCAgkApAMBBQtsYXVuY2hwYWRJZAULa2V5QnV5VG9rZW4ECmJ1eUFzc2V0SWQIBQ0kdDAyNTU5MjI1NzQyAl8xBA1idXlBc3NldFN0cklkCAUNJHQwMjU1OTIyNTc0MgJfMgQMYnV5QXNzZXROYW1lCAUNJHQwMjU1OTIyNTc0MgJfMwQQYnV5QXNzZXREZWNpbWFscwgFDSR0MDI1NTkyMjU3NDICXzQEDnByb2plY3RBZGRyZXNzCQERQGV4dHJOYXRpdmUoMTA2MikBCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQCsAgIJAKQDAQULbGF1bmNocGFkSWQFCmtleUFkZHJlc3MECmNvbW1pc3Npb24JARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMJAKwCAgkApAMBBQtsYXVuY2hwYWRJZAUMa2V5Q29taXNzaW9uBAxjb21taXNzaW9uSEMJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMJAKwCAgkApAMBBQtsYXVuY2hwYWRJZAUba2V5SGlnaENvbXBldGl0aW9uQ29taXNzaW9uBBJ0cmFuc2ZlcmVkQnV5QXNzZXQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkArAICCQCkAwEFC2xhdW5jaHBhZElkBRNrZXlUcmFuc2ZlckJ1eUFzc2V0AAAEG3N3b3BmaU1lbWJlcnNCdXlBc3NldEFtb3VudAkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwkArAICCQCkAwEFC2xhdW5jaHBhZElkBRprZXlUb3RhbEFtb3VudEJ1eUFzc2V0U29sZAQWc3dvcGZpSENCdXlBc3NldEFtb3VudAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQCsAgIJAKQDAQULbGF1bmNocGFkSWQFHGtleVRvdGFsQW1vdW50QnV5QXNzZXRTb2xkSEMAAAQWc3dvcGZpTWVtYmVyc0NvbWlzc2lvbgkAawMFG3N3b3BmaU1lbWJlcnNCdXlBc3NldEFtb3VudAUKY29tbWlzc2lvbgBkBBFzd29wZmlIQ0NvbWlzc2lvbgkAawMFFnN3b3BmaUhDQnV5QXNzZXRBbW91bnQFDGNvbW1pc3Npb25IQwBkBB50b3RhbEFtb3VudEJ1eUFzc2V0SW5NYXJrZXRpbmcJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMJAKwCAgkApAMBBQtsYXVuY2hwYWRJZAUla2V5QW1vdW50QnV5QXNzZXRJbk1hcmtldGluZ0ZpbmFsaXplZAQSbWFya2V0aW5nQ29taXNzaW9uCQBrAwUedG90YWxBbW91bnRCdXlBc3NldEluTWFya2V0aW5nBQpjb21taXNzaW9uAGQEDXVuc3Rha2VBbW91bnQJAGUCCQBkAgkAZAIJAGQCCQBkAgkAZAIFG3N3b3BmaU1lbWJlcnNCdXlBc3NldEFtb3VudAUedG90YWxBbW91bnRCdXlBc3NldEluTWFya2V0aW5nBRZzd29wZmlNZW1iZXJzQ29taXNzaW9uBRJtYXJrZXRpbmdDb21pc3Npb24FFnN3b3BmaUhDQnV5QXNzZXRBbW91bnQFEXN3b3BmaUhDQ29taXNzaW9uBRJ0cmFuc2ZlcmVkQnV5QXNzZXQDCQBmAgUSdHJhbnNmZXJlZEJ1eUFzc2V0CQBkAgkAZAIFG3N3b3BmaU1lbWJlcnNCdXlBc3NldEFtb3VudAUedG90YWxBbW91bnRCdXlBc3NldEluTWFya2V0aW5nBRZzd29wZmlIQ0J1eUFzc2V0QW1vdW50CQACAQIoQ2FuJ3QgdHJhbnNmZXIgbmVnYXRpdmUgdmFsdWUgdG8gcHJvamVjdAQDaW52AwkAAAIFCmJ1eUFzc2V0SWQFBFVTRE4JAPwHBAUSc3Rha2luZ1VTRE5BZGRyZXNzAg51bmxvY2tOZXV0cmlubwkAzAgCBQ11bnN0YWtlQW1vdW50CQDMCAIJANgEAQUEVVNETgUDbmlsBQNuaWwAAAMJAAACBQNpbnYFA2ludgkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCkAwEFC2xhdW5jaHBhZElkBRFrZXlGaW5hbGlzZUhlaWdodAUGaGVpZ2h0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFDnByb2plY3RBZGRyZXNzCQBlAgkAZAIJAGQCBRtzd29wZmlNZW1iZXJzQnV5QXNzZXRBbW91bnQFFnN3b3BmaUhDQnV5QXNzZXRBbW91bnQFHnRvdGFsQW1vdW50QnV5QXNzZXRJbk1hcmtldGluZwUSdHJhbnNmZXJlZEJ1eUFzc2V0BQpidXlBc3NldElkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFEGNvbW1pc3Npb25XYWxsZXQJAGQCCQBkAgUWc3dvcGZpTWVtYmVyc0NvbWlzc2lvbgUSbWFya2V0aW5nQ29taXNzaW9uBRFzd29wZmlIQ0NvbWlzc2lvbgUKYnV5QXNzZXRJZAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBBWNsYWltAQtsYXVuY2hwYWRJZAkBC3ZhbHVlT3JFbHNlAgkBCGlzQWN0aXZlAAQNYm91Z2h0VGlja2V0cwkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQCsAgIJAKwCAgkArAICCQClCAEIBQFpBmNhbGxlcgIBXwkApAMBBQtsYXVuY2hwYWRJZAUaa2V5VXNlckJvdWdodFRpY2tldHNBbW91bnQAAAQPYm91Z2h0SENUaWNrZXRzCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAKwCAgkArAICCQCsAgIJAKUIAQgFAWkGY2FsbGVyAgFfCQCkAwEFC2xhdW5jaHBhZElkBRxrZXlVc2VySENCb3VnaHRUaWNrZXRzQW1vdW50AAAEEWJvdWdodEFsbG9jYXRpb25zCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAKwCAgkArAICCQCsAgIJAKUIAQgFAWkGY2FsbGVyAgFfCQCkAwEFC2xhdW5jaHBhZElkBRhrZXlVc2VyQm91Z2h0QWxsb2NhdGlvbnMAAAQPdXNlckNsYWltU3RhdHVzCQELdmFsdWVPckVsc2UCCQCbCAIFBHRoaXMJAKwCAgkArAICCQCsAgIJAKUIAQgFAWkGY2FsbGVyAgFfCQCkAwEFC2xhdW5jaHBhZElkBRJrZXlVc2VyQ2xhaW1TdGF0dXMHBA5maW5hbGl6ZUhlaWdodAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQCsAgIJAKQDAQULbGF1bmNocGFkSWQFEWtleUZpbmFsaXNlSGVpZ2h0AAADCQAAAgUOZmluYWxpemVIZWlnaHQAAAkAAgECMVlvdSBjYW4ndCBjbGFpbSBiZWNhdXNlIHJlc3VsdHMgYXJlIG5vdCBmaW5hbGl6ZWQDBQ91c2VyQ2xhaW1TdGF0dXMJAAIBAhdZb3UgYXJlIGFscmVhZHkgY2xhaW1lZAMDAwkAAAIFDWJvdWdodFRpY2tldHMAAAkAAAIFEWJvdWdodEFsbG9jYXRpb25zAAAHCQAAAgUPYm91Z2h0SENUaWNrZXRzAAAHCQACAQIuWW91IGNhbid0IGNsYWltIGJlY2F1c2UgeW91IGRvbid0IGJ1eSBhbnl0aGluZwQNJHQwMjg4MjYyOTAwMwkBFmdldEFzc2V0SW5mb0Zyb21TdHJpbmcBCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAKwCAgkApAMBBQtsYXVuY2hwYWRJZAULa2V5QnV5VG9rZW4JANgEAQUEVVNETgQKYnV5QXNzZXRJZAgFDSR0MDI4ODI2MjkwMDMCXzEEDWJ1eUFzc2V0U3RySWQIBQ0kdDAyODgyNjI5MDAzAl8yBAxidXlBc3NldE5hbWUIBQ0kdDAyODgyNjI5MDAzAl8zBBBidXlBc3NldERlY2ltYWxzCAUNJHQwMjg4MjYyOTAwMwJfNAQNd29ubmVkVGlja2V0cwkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQCsAgIJAKwCAgkArAICCQClCAEIBQFpBmNhbGxlcgIBXwkApAMBBQtsYXVuY2hwYWRJZAUaa2V5VXNlcldpbm5lZFRpY2tldHNBbW91bnQAAAQPd29ubmVkSENUaWNrZXRzCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAKwCAgkArAICCQCsAgIJAKUIAQgFAWkGY2FsbGVyAgFfCQCkAwEFC2xhdW5jaHBhZElkBSlrZXlVc2VyV2lubmVkSGlnaENvbXBldGl0aW9uVGlja2V0c0Ftb3VudAAABBRhd2FpbGFibGVBbGxvY2F0aW9ucwkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQCsAgIJAKwCAgkArAICCQClCAEIBQFpBmNhbGxlcgIBXwkApAMBBQtsYXVuY2hwYWRJZAUba2V5VXNlckF2YWlsYWJsZUFsbG9jYXRpb25zAAAECmNvbW1pc3Npb24JARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMJAKwCAgkApAMBBQtsYXVuY2hwYWRJZAUMa2V5Q29taXNzaW9uBAxjb21taXNzaW9uSEMJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkArAICCQCkAwEFC2xhdW5jaHBhZElkBRtrZXlIaWdoQ29tcGV0aXRpb25Db21pc3Npb24AAAQSYWxsb3dlZEFsbG9jYXRpb25zCQCXAwEJAMwIAgURYm91Z2h0QWxsb2NhdGlvbnMJAMwIAgUUYXdhaWxhYmxlQWxsb2NhdGlvbnMFA25pbAQKdG9rZW5QcmljZQkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwkArAICCQCkAwEFC2xhdW5jaHBhZElkBRBrZXlQcmljZVBlclRva2VuBA90b2tlbnNQZXJUaWNrZXQJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMJAKwCAgkApAMBBQtsYXVuY2hwYWRJZAUSa2V5VG9rZW5zUGVyVGlja2V0BA0kdDAyOTkxOTMwMDYzCQEWZ2V0QXNzZXRJbmZvRnJvbVN0cmluZwEJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAKwCAgkApAMBBQtsYXVuY2hwYWRJZAUKa2V5QXNzZXRJZAQHdG9rZW5JZAgFDSR0MDI5OTE5MzAwNjMCXzEED3Rva2VuU3RyQXNzZXRJZAgFDSR0MDI5OTE5MzAwNjMCXzIEDnRva2VuQXNzZXROYW1lCAUNJHQwMjk5MTkzMDA2MwJfMwQNdG9rZW5EZWNpbWFscwgFDSR0MDI5OTE5MzAwNjMCXzQEC3RpY2tldFByaWNlCQBrAwUPdG9rZW5zUGVyVGlja2V0BQp0b2tlblByaWNlCQBsBgAKAAAFDXRva2VuRGVjaW1hbHMAAAAABQRET1dOBBN0b2tlbnNQZXJBbGxvY2F0aW9uCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzCQCsAgIJAKQDAQULbGF1bmNocGFkSWQFFmtleVRva2Vuc1BlckFsbG9jYXRpb24EFHRyYW5zZmVyVG9rZW5zQW1vdW50CQBkAgkAZAIJAGgCBQ13b25uZWRUaWNrZXRzBQ90b2tlbnNQZXJUaWNrZXQJAGgCBRJhbGxvd2VkQWxsb2NhdGlvbnMFE3Rva2Vuc1BlckFsbG9jYXRpb24JAGgCBQ93b25uZWRIQ1RpY2tldHMFD3Rva2Vuc1BlclRpY2tldAQbbm90QWxsb3dlZEFsbG9jYXRpb25zVG9rZW5zCQBoAgkAZQIFEWJvdWdodEFsbG9jYXRpb25zBRJhbGxvd2VkQWxsb2NhdGlvbnMFE3Rva2Vuc1BlckFsbG9jYXRpb24EFmJ1eUFzc2V0Rm9yQWxsb2NhdGlvbnMJAGsDCQBrAwUbbm90QWxsb3dlZEFsbG9jYXRpb25zVG9rZW5zBQp0b2tlblByaWNlCQBsBgAKAAAFDXRva2VuRGVjaW1hbHMAAAAABQRET1dOCQBkAgBkBQpjb21taXNzaW9uAGQEGmJ1eUFzc2V0Rm9yVW53b25uZWRUaWNrZXRzCQBrAwkAaAIJAGUCBQ1ib3VnaHRUaWNrZXRzBQ13b25uZWRUaWNrZXRzBQt0aWNrZXRQcmljZQkAZAIAZAUKY29tbWlzc2lvbgBkBBxidXlBc3NldEZvckhDVW53b25uZWRUaWNrZXRzCQBrAwkAaAIJAGUCBQ9ib3VnaHRIQ1RpY2tldHMFD3dvbm5lZEhDVGlja2V0cwULdGlja2V0UHJpY2UJAGQCAGQFDGNvbW1pc3Npb25IQwBkBA9jbGFpbWVkQnV5VG9rZW4JAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkArAICCQCsAgIJAKwCAgkApQgBCAUBaQZjYWxsZXICAV8JAKQDAQULbGF1bmNocGFkSWQFF2tleVVzZXJDbGFpbWVkQnV5VG9rZW5zAAADAwMJAGYCAAAFFmJ1eUFzc2V0Rm9yQWxsb2NhdGlvbnMGCQBmAgAABRpidXlBc3NldEZvclVud29ubmVkVGlja2V0cwYJAGYCAAAFHGJ1eUFzc2V0Rm9ySENVbndvbm5lZFRpY2tldHMJAAIBAlJFcnJvciB3aXRoIGFsbG93ZWQgYWxsb2NhdGlvbiBwYXJhbSBvciB3b25uZWQgdGlja2V0cyBwYXJhbSBwbGVhc2UgY29udGFjdCBzdXBwb3J0BBZyZXR1cm5lZEJ1eUFzc2V0QW1vdW50CQBlAgkAZAIJAGQCBRpidXlBc3NldEZvclVud29ubmVkVGlja2V0cwUcYnV5QXNzZXRGb3JIQ1Vud29ubmVkVGlja2V0cwUWYnV5QXNzZXRGb3JBbGxvY2F0aW9ucwUPY2xhaW1lZEJ1eVRva2VuBBB0cmFuc2ZlckJ1eUFzc2V0AwkAZgIFFnJldHVybmVkQnV5QXNzZXRBbW91bnQAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFFnJldHVybmVkQnV5QXNzZXRBbW91bnQFCmJ1eUFzc2V0SWQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICCQCsAgIJAKUIAQgFAWkGY2FsbGVyAgFfCQCkAwEFC2xhdW5jaHBhZElkBRdrZXlVc2VyQ2xhaW1lZEJ1eVRva2VucwUWcmV0dXJuZWRCdXlBc3NldEFtb3VudAUDbmlsBQNuaWwEA2ludgMDCQBmAgUWcmV0dXJuZWRCdXlBc3NldEFtb3VudAAACQAAAgUKYnV5QXNzZXRJZAUEVVNETgcJAPwHBAUSc3Rha2luZ1VTRE5BZGRyZXNzAg51bmxvY2tOZXV0cmlubwkAzAgCBRZyZXR1cm5lZEJ1eUFzc2V0QW1vdW50CQDMCAIJANgEAQUEVVNETgUDbmlsBQNuaWwAAAMJAAACBQNpbnYFA2ludgQNY2xhaW1lZFBhcmFtcwkAtQkCCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAKwCAgkApAMBBQtsYXVuY2hwYWRJZAUOa2V5Q2xhaW1QYXJhbXMCCGNsYWltQWxsAgEsAwkAAAIJAJEDAgUNY2xhaW1lZFBhcmFtcwAAAghjbGFpbUFsbAQOdHJhbnNmZXJUb2tlbnMDCQBmAgUUdHJhbnNmZXJUb2tlbnNBbW91bnQAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFFHRyYW5zZmVyVG9rZW5zQW1vdW50BQd0b2tlbklkBQNuaWwFA25pbAkAzggCCQDOCAIJAMwIAgkBDEJvb2xlYW5FbnRyeQIJAKwCAgkArAICCQCsAgIJAKUIAQgFAWkGY2FsbGVyAgFfCQCkAwEFC2xhdW5jaHBhZElkBRJrZXlVc2VyQ2xhaW1TdGF0dXMGCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICCQClCAEIBQFpBmNhbGxlcgIBXwkApAMBBQtsYXVuY2hwYWRJZAUUa2V5VXNlckNsYWltZWRUb2tlbnMFFHRyYW5zZmVyVG9rZW5zQW1vdW50BQNuaWwFDnRyYW5zZmVyVG9rZW5zBRB0cmFuc2ZlckJ1eUFzc2V0AwkAAAIJAJEDAgUNY2xhaW1lZFBhcmFtcwAAAgtjbGFpbVBlcmlvZAQNY2xhaW1lZFRva2VucwkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQCsAgIJAKwCAgkArAICCQClCAEIBQFpBmNhbGxlcgIBXwkApAMBBQtsYXVuY2hwYWRJZAUUa2V5VXNlckNsYWltZWRUb2tlbnMAAAQMdW5sb2NrUGVyaW9kCQEFdmFsdWUBCQC2CQEJAJEDAgUNY2xhaW1lZFBhcmFtcwACBAtibG9ja0hlaWdodAkAZAIJAQV2YWx1ZQEJALYJAQkAkQMCBQ1jbGFpbWVkUGFyYW1zAAMFDmZpbmFsaXplSGVpZ2h0BAx1bmxvY2tIZWlnaHQJAGQCBQx1bmxvY2tQZXJpb2QFC2Jsb2NrSGVpZ2h0BBJhbGxvd2VkU3RhcnRBbW91bnQJAGsDBRR0cmFuc2ZlclRva2Vuc0Ftb3VudAkBBXZhbHVlAQkAtgkBCQCRAwIFDWNsYWltZWRQYXJhbXMAAQBkBBNhbGxvd2VkVG9rZW5zQW1vdW50CQBkAgUSYWxsb3dlZFN0YXJ0QW1vdW50AwkAZgIFBmhlaWdodAULYmxvY2tIZWlnaHQJAGUCCQBrAwkAZQIFFHRyYW5zZmVyVG9rZW5zQW1vdW50BRJhbGxvd2VkU3RhcnRBbW91bnQJAGUCCQCXAwEJAMwIAgUGaGVpZ2h0CQDMCAIFDHVubG9ja0hlaWdodAUDbmlsBQtibG9ja0hlaWdodAUMdW5sb2NrUGVyaW9kBQ1jbGFpbWVkVG9rZW5zCQBlAgAABQ1jbGFpbWVkVG9rZW5zBBBjbGFpbVN0YXR1c0VudHJ5AwkAZwIFFHRyYW5zZmVyVG9rZW5zQW1vdW50CQBkAgUNY2xhaW1lZFRva2VucwUTYWxsb3dlZFRva2Vuc0Ftb3VudAkAzAgCCQEMQm9vbGVhbkVudHJ5AgkArAICCQCsAgIJAKwCAgkApQgBCAUBaQZjYWxsZXICAV8JAKQDAQULbGF1bmNocGFkSWQFEmtleVVzZXJDbGFpbVN0YXR1cwYFA25pbAUDbmlsAwMJAGYCBRNhbGxvd2VkVG9rZW5zQW1vdW50AAAGCQBmAgUWcmV0dXJuZWRCdXlBc3NldEFtb3VudAAABA50cmFuc2ZlclRva2VucwMJAGYCBRNhbGxvd2VkVG9rZW5zQW1vdW50AAAJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICCQCsAgIJAKUIAQgFAWkGY2FsbGVyAgFfCQCkAwEFC2xhdW5jaHBhZElkBRRrZXlVc2VyQ2xhaW1lZFRva2VucwkAZAIFDWNsYWltZWRUb2tlbnMFE2FsbG93ZWRUb2tlbnNBbW91bnQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBRNhbGxvd2VkVG9rZW5zQW1vdW50BQd0b2tlbklkBQNuaWwFA25pbAkAzggCBRB0cmFuc2ZlckJ1eUFzc2V0BQ50cmFuc2ZlclRva2VucwkAAgECEE5vdGhpbmcgdG8gY2xhaW0JAAIBAhZVbmtub3duIGNsYWltIGZ1bmN0aW9uCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBEGNsYWltRnJlZXplVG9rZW4BC2xhdW5jaHBhZElkCQELdmFsdWVPckVsc2UCCQEIaXNBY3RpdmUABBVmcmVlemVBZGRpdGlvbmFsVG9rZW4JAQt2YWx1ZU9yRWxzZQIJAJsIAgUEdGhpcwkArAICCQCkAwEFC2xhdW5jaHBhZElkBRhrZXlGcmVlemVBZGRpdGlvbmFsVG9rZW4HAwkBASEBCQEJaXNEZWZpbmVkAQkAmggCBQR0aGlzCQCsAgIJAKQDAQULbGF1bmNocGFkSWQFEWtleUZpbmFsaXNlSGVpZ2h0CQACAQIxWW91IGNhbid0IGNsYWltIGJlY2F1c2UgcmVzdWx0cyBhcmUgbm90IGZpbmFsaXplZAMJAQEhAQUVZnJlZXplQWRkaXRpb25hbFRva2VuCQACAQI5VGhlcmUgYXJlIG5vIGFkZGl0aW9uYWwgdG9rZW4gZnJlZXppbmcgZm9yIHRoaXMgbGF1bmNocGFkBAd0b2tlbklkCQDZBAEJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAKwCAgkApAMBBQtsYXVuY2hwYWRJZAUQa2V5RnJlZXplVG9rZW5JZAQRdXNlclRva2Vuc0ZyZWV6ZWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkArAICCQCsAgIJAKwCAgkApQgBCAUBaQZjYWxsZXICAV8JAKQDAQULbGF1bmNocGFkSWQFEmtleVVzZXJGcmVlemVUb2tlbgAABAtzdGFydEhlaWdodAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQCsAgIJAKQDAQULbGF1bmNocGFkSWQFDmtleVN0YXJ0SGVpZ2h0AAAECGR1cmF0aW9uCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAKwCAgkApAMBBQtsYXVuY2hwYWRJZAULa2V5RHVyYXRpb24AAAQTZnJlZXplVG9rZW5EdXJhdGlvbgkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwkArAICCQCkAwEFC2xhdW5jaHBhZElkBRZrZXlGcmVlemVUb2tlbkR1cmF0aW9uBA5ibG9ja0VuZEhlaWdodAkAZAIJAGQCBQtzdGFydEhlaWdodAUIZHVyYXRpb24FE2ZyZWV6ZVRva2VuRHVyYXRpb24DCQAAAgURdXNlclRva2Vuc0ZyZWV6ZWQAAAkAAgECOFlvdSBhcmUgYWxyZWFkeSBjbGFpbWVkIHlvdXIgdG9rZW5zIG9yIG5vdCBwYWlkIGFueXRoaW5nAwkAZgIFDmJsb2NrRW5kSGVpZ2h0BQZoZWlnaHQJAAIBCQCsAgICGVlvdXIgdG9rZW5zIGZyZWV6ZWQgdGVlbCAJAKQDAQUOYmxvY2tFbmRIZWlnaHQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBRF1c2VyVG9rZW5zRnJlZXplZAUHdG9rZW5JZAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgIJAKwCAgkApQgBCAUBaQZjYWxsZXICAV8JAKQDAQULbGF1bmNocGFkSWQFEmtleVVzZXJGcmVlemVUb2tlbgAABQNuaWwBaQEQdHJhbnNmZXJCdXlBc3NldAILbGF1bmNocGFkSWQGYW1vdW50CQELdmFsdWVPckVsc2UCCQEIaXNBY3RpdmUACQELdmFsdWVPckVsc2UCCQELaXNBZG1pbkNhbGwBBQFpBA5wcm9qZWN0QWRkcmVzcwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwkArAICCQCkAwEFC2xhdW5jaHBhZElkBQprZXlBZGRyZXNzBA0kdDAzNjIyODM2Mzc4CQEWZ2V0QXNzZXRJbmZvRnJvbVN0cmluZwEJAQV2YWx1ZQEJAJ0IAgUEdGhpcwkArAICCQCkAwEFC2xhdW5jaHBhZElkBQtrZXlCdXlUb2tlbgQKYnV5QXNzZXRJZAgFDSR0MDM2MjI4MzYzNzgCXzEEDWJ1eUFzc2V0U3RySWQIBQ0kdDAzNjIyODM2Mzc4Al8yBAxidXlBc3NldE5hbWUIBQ0kdDAzNjIyODM2Mzc4Al8zBBBidXlBc3NldERlY2ltYWxzCAUNJHQwMzYyMjgzNjM3OAJfNAQSdHJhbnNmZXJlZEJ1eUFzc2V0CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAKwCAgkApAMBBQtsYXVuY2hwYWRJZAUTa2V5VHJhbnNmZXJCdXlBc3NldAAABANpbnYDAwkAZgIFBmFtb3VudAAACQAAAgUKYnV5QXNzZXRJZAUEVVNETgcJAPwHBAUSc3Rha2luZ1VTRE5BZGRyZXNzAg51bmxvY2tOZXV0cmlubwkAzAgCBQZhbW91bnQJAMwIAgkA2AQBBQRVU0ROBQNuaWwFA25pbAAAAwkAAAIFA2ludgUDaW52CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKQDAQULbGF1bmNocGFkSWQFE2tleVRyYW5zZmVyQnV5QXNzZXQJAGQCBRJ0cmFuc2ZlcmVkQnV5QXNzZXQFBmFtb3VudAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQ5wcm9qZWN0QWRkcmVzcwUGYW1vdW50BQpidXlBc3NldElkBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEIc2h1dGRvd24ACQELdmFsdWVPckVsc2UCCQELaXNBZG1pbkNhbGwBBQFpAwkBASEBBQZhY3RpdmUJAAIBAhVEQXBwIGFscmVhZHkgaW5hY3RpdmUJAMwIAgkBDEJvb2xlYW5FbnRyeQIFCWtleUFjdGl2ZQcFA25pbAFpAQhhY3RpdmF0ZQAJAQt2YWx1ZU9yRWxzZQIJAQtpc0FkbWluQ2FsbAEFAWkDBQZhY3RpdmUJAAIBAhNEQXBwIGFscmVhZHkgYWN0aXZlCQDMCAIJAQxCb29sZWFuRW50cnkCBQlrZXlBY3RpdmUGBQNuaWwBAnR4AQZ2ZXJpZnkABBNtdWx0aVNpZ25lZEJ5QWRtaW5zBBJhZG1pblB1YktleTFTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQxhZG1pblB1YktleTEAAQAABBJhZG1pblB1YktleTJTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwABBQxhZG1pblB1YktleTIAAQAABBJhZG1pblB1YktleTNTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwACBQxhZG1pblB1YktleTMAAQAACQBnAgkAZAIJAGQCBRJhZG1pblB1YktleTFTaWduZWQFEmFkbWluUHViS2V5MlNpZ25lZAUSYWRtaW5QdWJLZXkzU2lnbmVkAAIEDXNpZ25lZEJ5QWRtaW4DAwMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFDGFkbWluUHViS2V5MQYJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFDGFkbWluUHViS2V5MgYJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFDGFkbWluUHViS2V5MwYJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFEmFkbWluUHViS2V5U3Rha2luZwQHJG1hdGNoMAUCdHgDCQABAgUHJG1hdGNoMAIPRGF0YVRyYW5zYWN0aW9uBANkdHgFByRtYXRjaDADCQELdmFsdWVPckVsc2UCCQCbCAIFBm9yYWNsZQUha2V5TGF1bmNocGFkRGF0YVRyYW5zYWN0aW9uU3RhdHVzBwUNc2lnbmVkQnlBZG1pbgcFE211bHRpU2lnbmVkQnlBZG1pbnMp2dOT", "height": 2723169, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 2JDR8bGKCEusjNJXAdbsbmjLPUXmVRiKHsCpv13E7o8w Next: 3AF4QCzJ2Fpvh6QERPbz1DDUSiNZh3tzfYqCVsGuru6N Diff:
OldNewDifferences
219219 then fraction(ba, getIntegerValue(this, (toString(aL) + n)), 100)
220220 else fraction(ba, getIntegerValue(this, (toString(aL) + M)), 100)
221221 let bc = (aM * (ba + bb))
222- let bd = ( let be = invoke(ak, "callFunction", ["howManyYouPayREADONLY", [toString(bc), aP]], nil)
223- if ($isInstanceOf(be, "(Int, String)"))
224- then be
225- else throw(($getType(be) + " couldn't be cast to (Int, String)")))._1
222+ let bd = {
223+ let be = ({
224+ let be = invoke(ak, "callFunction", ["howManyYouPayREADONLY", [toString(bc), aP]], nil)
225+ if ($isInstanceOf(be, "List[Any]"))
226+ then be
227+ else throw(($getType(be) + " couldn't be cast to List[Any]"))
228+ })[0]
229+ if ($isInstanceOf(be, "Int"))
230+ then be
231+ else throw(($getType(be) + " couldn't be cast to Int"))
232+ }
226233 if ((bd == bd))
227234 then fraction(bd, 101, 100)
228235 else throw("Strict value is not equal to itself.")
293300 let bw = valueOrElse(getBoolean(this, (toString(aL) + G)), false)
294301 let bO = if ((aH.payments[0].assetId == unit))
295302 then {
296- let bP = ( let be = invoke(ak, "callFunction", ["howManyYouGetREADONLY", [toString(aH.payments[0].amount), aP]], nil)
297- if ($isInstanceOf(be, "(Int, String, Int, Int)"))
298- then be
299- else throw(($getType(be) + " couldn't be cast to (Int, String, Int, Int)")))._1
303+ let bP = {
304+ let be = ({
305+ let be = invoke(ak, "callFunction", ["howManyYouGetREADONLY", [toString(aH.payments[0].amount), aP]], nil)
306+ if ($isInstanceOf(be, "List[Any]"))
307+ then be
308+ else throw(($getType(be) + " couldn't be cast to List[Any]"))
309+ })[0]
310+ if ($isInstanceOf(be, "Int"))
311+ then be
312+ else throw(($getType(be) + " couldn't be cast to Int"))
313+ }
300314 if ((bP == bP))
301315 then {
302316 let aM = (bP / (ba + bb))
303317 let bc = (aM * (ba + bb))
304- let bd = ( let be = invoke(ak, "callFunction", ["howManyYouPayREADONLY", [toString(bc), aP]], nil)
305- if ($isInstanceOf(be, "(Int, String)"))
306- then be
307- else throw(($getType(be) + " couldn't be cast to (Int, String)")))._1
318+ let bd = {
319+ let be = ({
320+ let be = invoke(ak, "callFunction", ["howManyYouPayREADONLY", [toString(bc), aP]], nil)
321+ if ($isInstanceOf(be, "List[Any]"))
322+ then be
323+ else throw(($getType(be) + " couldn't be cast to List[Any]"))
324+ })[0]
325+ if ($isInstanceOf(be, "Int"))
326+ then be
327+ else throw(($getType(be) + " couldn't be cast to Int"))
328+ }
308329 if ((bd == bd))
309330 then {
310331 let bQ = invoke(ak, "callFunction", ["exchange", [toString(bc)]], [AttachedPayment(unit, bd)])
483504 let bb = fraction(ba, getIntegerValue(this, (toString(aL) + M)), 100)
484505 let cz = if ((aH.payments[0].assetId == unit))
485506 then {
486- let bP = ( let be = invoke(ak, "callFunction", ["howManyYouGetREADONLY", [toString(aH.payments[0].amount), aP]], nil)
487- if ($isInstanceOf(be, "(Int, String, Int, Int)"))
488- then be
489- else throw(($getType(be) + " couldn't be cast to (Int, String, Int, Int)")))._1
507+ let bP = {
508+ let be = ({
509+ let be = invoke(ak, "callFunction", ["howManyYouGetREADONLY", [toString(aH.payments[0].amount), aP]], nil)
510+ if ($isInstanceOf(be, "List[Any]"))
511+ then be
512+ else throw(($getType(be) + " couldn't be cast to List[Any]"))
513+ })[0]
514+ if ($isInstanceOf(be, "Int"))
515+ then be
516+ else throw(($getType(be) + " couldn't be cast to Int"))
517+ }
490518 if ((bP == bP))
491519 then {
492520 let aM = (bP / (ba + bb))
493521 let bc = (aM * (ba + bb))
494- let bd = ( let be = invoke(ak, "callFunction", ["howManyYouPayREADONLY", [toString(bc), aP]], nil)
495- if ($isInstanceOf(be, "(Int, String)"))
496- then be
497- else throw(($getType(be) + " couldn't be cast to (Int, String)")))._1
522+ let bd = {
523+ let be = ({
524+ let be = invoke(ak, "callFunction", ["howManyYouPayREADONLY", [toString(bc), aP]], nil)
525+ if ($isInstanceOf(be, "List[Any]"))
526+ then be
527+ else throw(($getType(be) + " couldn't be cast to List[Any]"))
528+ })[0]
529+ if ($isInstanceOf(be, "Int"))
530+ then be
531+ else throw(($getType(be) + " couldn't be cast to Int"))
532+ }
498533 if ((bd == bd))
499534 then {
500535 let bQ = invoke(ak, "callFunction", ["exchange", [toString(bc)]], [AttachedPayment(unit, bd)])
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "active"
55
66 let b = "active_all_contracts"
77
88 let c = "admin_pub_1"
99
1010 let d = "admin_pub_2"
1111
1212 let e = "admin_pub_3"
1313
1414 let f = "launchpad_data_transaction_status"
1515
1616 let g = "launchpad_next_id"
1717
1818 let h = "launchpad_active_id"
1919
2020 let i = "init_caller"
2121
2222 let j = "_address"
2323
2424 let k = "_init_height"
2525
2626 let l = "_start_height"
2727
2828 let m = "_finalise_height"
2929
3030 let n = "_comission"
3131
3232 let o = "_asset_id"
3333
3434 let p = "_total_token_amount"
3535
3636 let q = "_total_buy_asset_sold"
3737
3838 let r = "_tokens_per_ticket"
3939
4040 let s = "_price_per_token"
4141
4242 let t = "_swop_per_ticket"
4343
4444 let u = "_tickets_swopfi_members"
4545
4646 let v = "_tokens_access_list"
4747
4848 let w = "_tokens_per_allocation"
4949
5050 let x = "_ticket_last_number"
5151
5252 let y = "_GSwop_amount"
5353
5454 let z = "_ref_id"
5555
5656 let A = "_verify_hash"
5757
5858 let B = "_duration"
5959
6060 let C = "_total_purchased_buy_asset_in_marketing"
6161
6262 let D = "_total_purchased_buy_asset_in_marketing_finalized"
6363
6464 let E = "_transfer_buy_asset"
6565
6666 let F = "_freeze_swop_duration"
6767
6868 let G = "_freeze_additional_token"
6969
7070 let H = "_freeze_token_id"
7171
7272 let I = "_freeze_token_duration"
7373
7474 let J = "_freeze_token_per_ticket"
7575
7676 let K = "_buy_token"
7777
7878 let L = "_claim_params"
7979
8080 let M = "_high_competition_comission"
8181
8282 let N = "_high_competition_sale"
8383
8484 let O = "_high_competition_ticket_last_number"
8585
8686 let P = "_tickets_high_competition"
8787
8888 let Q = "_total_buy_asset_sold_high_competition"
8989
9090 let R = "_claimed_tokens"
9191
9292 let S = "_claimed_buy_tokens"
9393
9494 let T = "_bought_tickets"
9595
9696 let U = "_tickets_number"
9797
9898 let V = "_tickets_number_high_competition"
9999
100100 let W = "_bought_tickets_high_competition"
101101
102102 let X = "_available_purchase_marketing"
103103
104104 let Y = "_purchased_buy_asset_in_marketing"
105105
106106 let Z = "_bought_allocations"
107107
108108 let aa = "_claim_status"
109109
110110 let ab = "_tickets_result"
111111
112112 let ac = "_tickets_result_high_competition"
113113
114114 let ad = "_freeze_token_amount"
115115
116116 let ae = Address(base58'3MvVBtsXroQpy1tsPw21TU2ET9A8WfmrNjz')
117117
118118 let af = Address(base58'3N8E9LU71MDkdP8FWtbP4TBXCNhoc15hWfs')
119119
120120 let ag = Address(base58'3N2eueE5vLLKe8jXuBDbdbKcPaH36yG1Had')
121121
122122 let ah = Address(base58'3N8STSY7dWpBYLiCimEQMkRizyWePSX3qQx')
123123
124124 let ai = base58'4W19ndijcc2CsQa9HGW2dfXKTVXhnneWWttxXrtjPmEp'
125125
126126 let aj = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
127127
128128 let ak = Address(base58'3MqjSoPUdGHaan9uhxwTnFw1uH7uZ8dgt8f')
129129
130130 let al = 2
131131
132132 let am = valueOrElse(getIntegerValue(this, h), -1)
133133
134134 func an (ao) = {
135135 let ap = getString(ae, ao)
136136 if ($isInstanceOf(ap, "String"))
137137 then {
138138 let aq = ap
139139 fromBase58String(aq)
140140 }
141141 else {
142142 let ar = ap
143143 throw("Admin public key is empty")
144144 }
145145 }
146146
147147
148148 let as = an(c)
149149
150150 let at = an(d)
151151
152152 let au = an(e)
153153
154154 func av (aw) = {
155155 let ap = aw
156156 if ($isInstanceOf(ap, "ByteVector"))
157157 then {
158158 let ax = ap
159159 let ay = toBase58String(ax)
160160 let az = valueOrErrorMessage(assetInfo(ax), (("Asset " + ay) + " doesn't exist"))
161161 $Tuple3(ay, az.name, az.decimals)
162162 }
163163 else if ($isInstanceOf(ap, "Unit"))
164164 then {
165165 let aA = ap
166166 $Tuple3("WAVES", "WAVES", 8)
167167 }
168168 else throw("Match error")
169169 }
170170
171171
172172 func aB () = valueOrElse(getInteger(this, g), 1)
173173
174174
175175 func aC () = valueOrElse(getInteger(ah, ((("rpd_balance_" + toBase58String(ai)) + "_") + toString(this))), 0)
176176
177177
178178 let aD = valueOrElse(getBoolean(this, a), true)
179179
180180 let aE = valueOrElse(getBoolean(ae, b), true)
181181
182182 func aF () = if (if (aD)
183183 then aE
184184 else false)
185185 then unit
186186 else throw("DApp is inactive at this moment")
187187
188188
189189 func aG (aH) = if (containsElement([as, at, au], aH.callerPublicKey))
190190 then unit
191191 else throw("Only admin can call this function")
192192
193193
194194 func aI (aJ) = if ((aJ == "WAVES"))
195195 then $Tuple4(unit, "WAVES", "WAVES", 8)
196196 else {
197197 let ay = aJ
198198 let ax = fromBase58String(aJ)
199199 let az = valueOrErrorMessage(assetInfo(ax), (("Asset " + ay) + " doesn't exist"))
200200 $Tuple4(ax, ay, az.name, az.decimals)
201201 }
202202
203203
204204 func aK (aL,aM,aN) = {
205205 let aO = aI(value(getString(this, (toString(aL) + K))))
206206 let aP = aO._1
207207 let aQ = aO._2
208208 let aR = aO._3
209209 let aS = aO._4
210210 let aT = getIntegerValue(this, (toString(aL) + s))
211211 let aU = getIntegerValue(this, (toString(aL) + r))
212212 let aV = aI(getStringValue(this, (toString(aL) + o)))
213213 let aW = aV._1
214214 let aX = aV._2
215215 let aY = aV._3
216216 let aZ = aV._4
217217 let ba = fraction(aU, aT, pow(10, 0, aZ, 0, 0, DOWN))
218218 let bb = if ((aN == 1))
219219 then fraction(ba, getIntegerValue(this, (toString(aL) + n)), 100)
220220 else fraction(ba, getIntegerValue(this, (toString(aL) + M)), 100)
221221 let bc = (aM * (ba + bb))
222- let bd = ( let be = invoke(ak, "callFunction", ["howManyYouPayREADONLY", [toString(bc), aP]], nil)
223- if ($isInstanceOf(be, "(Int, String)"))
224- then be
225- else throw(($getType(be) + " couldn't be cast to (Int, String)")))._1
222+ let bd = {
223+ let be = ({
224+ let be = invoke(ak, "callFunction", ["howManyYouPayREADONLY", [toString(bc), aP]], nil)
225+ if ($isInstanceOf(be, "List[Any]"))
226+ then be
227+ else throw(($getType(be) + " couldn't be cast to List[Any]"))
228+ })[0]
229+ if ($isInstanceOf(be, "Int"))
230+ then be
231+ else throw(($getType(be) + " couldn't be cast to Int"))
232+ }
226233 if ((bd == bd))
227234 then fraction(bd, 101, 100)
228235 else throw("Strict value is not equal to itself.")
229236 }
230237
231238
232239 @Callable(aH)
233240 func hashingRandom (aL,bf) = valueOrElse(aF(), valueOrElse(aG(aH), [StringEntry((toString(aL) + A), bf)]))
234241
235242
236243
237244 @Callable(aH)
238245 func initCaller (bg) = valueOrElse(aF(), valueOrElse(aG(aH), [StringEntry(i, bg)]))
239246
240247
241248
242249 @Callable(aH)
243250 func init (bh,bi,bj,bk,bl,aU,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx) = valueOrElse(aF(), if ((toString(aH.caller) != valueOrElse(getString(this, i), "")))
244251 then throw("Only project admin can call init function")
245252 else if ((size(aH.payments) != 1))
246253 then throw("One attached payment expected")
247254 else if ((height > bi))
248255 then throw("Start height must be greater than blockchain height")
249256 else if (if (bw)
250257 then (size(bx) != 3)
251258 else false)
252259 then throw("Freeze params list must have 3 items")
253260 else {
254261 let aL = aB()
255262 let by = toString(aL)
256263 let bz = $Tuple2(aH.payments[0].amount, aH.payments[0].assetId)
257264 let bA = bz._1
258265 let bB = bz._2
259266 let bC = av(bB)
260267 let bD = bC._1
261268 let bE = bC._2
262269 let bF = bC._3
263270 let bG = if (bw)
264271 then [BooleanEntry((by + G), true), StringEntry((by + H), bx[0]), IntegerEntry((by + I), parseIntValue(bx[1])), IntegerEntry((by + J), parseIntValue(bx[2]))]
265272 else nil
266273 ([IntegerEntry((bD + "_launchpad"), aL), IntegerEntry(g, (aL + 1)), StringEntry((by + j), bh), IntegerEntry((by + k), height), IntegerEntry((by + l), bi), IntegerEntry((by + B), bj), StringEntry((by + K), bk), IntegerEntry((by + F), br), IntegerEntry((by + p), bA), StringEntry((by + o), bD), IntegerEntry((by + n), bl), IntegerEntry((by + x), 0), IntegerEntry((by + O), 0), IntegerEntry((by + r), aU), IntegerEntry((by + s), bm), IntegerEntry((by + t), bq), IntegerEntry((by + u), bn), IntegerEntry((by + v), bo), IntegerEntry((by + w), bp), StringEntry((by + L), makeString(bs, ",")), BooleanEntry((by + N), bt), IntegerEntry((by + M), bu), IntegerEntry((by + P), bv), IntegerEntry(h, aL), StringEntry(i, "")] ++ bG)
267274 })
268275
269276
270277
271278 @Callable(aH)
272279 func commitSwopfiSale (aL,bH) = valueOrElse(aF(), {
273280 let aT = getIntegerValue(this, (toString(aL) + s))
274281 let aU = getIntegerValue(this, (toString(aL) + r))
275282 let bI = aI(getStringValue(this, (toString(aL) + o)))
276283 let aW = bI._1
277284 let aX = bI._2
278285 let aY = bI._3
279286 let aZ = bI._4
280287 let ba = fraction(aU, aT, pow(10, 0, aZ, 0, 0, DOWN))
281288 let bb = fraction(ba, getIntegerValue(this, (toString(aL) + n)), 100)
282289 let bJ = aI(value(getString(this, (toString(aL) + K))))
283290 let aP = bJ._1
284291 let aQ = bJ._2
285292 let aR = bJ._3
286293 let aS = bJ._4
287294 let bK = valueOrElse(getInteger(af, (toString(aH.caller) + y)), 0)
288295 let bL = (bK / getIntegerValue(this, (toString(aL) + t)))
289296 let bM = valueOrElse(getInteger(this, (((toString(aH.caller) + "_") + toString(aL)) + T)), 0)
290297 let bN = (bL - bM)
291298 let bi = value(getInteger(this, (toString(aL) + l)))
292299 let bj = value(getInteger(this, (toString(aL) + B)))
293300 let bw = valueOrElse(getBoolean(this, (toString(aL) + G)), false)
294301 let bO = if ((aH.payments[0].assetId == unit))
295302 then {
296- let bP = ( let be = invoke(ak, "callFunction", ["howManyYouGetREADONLY", [toString(aH.payments[0].amount), aP]], nil)
297- if ($isInstanceOf(be, "(Int, String, Int, Int)"))
298- then be
299- else throw(($getType(be) + " couldn't be cast to (Int, String, Int, Int)")))._1
303+ let bP = {
304+ let be = ({
305+ let be = invoke(ak, "callFunction", ["howManyYouGetREADONLY", [toString(aH.payments[0].amount), aP]], nil)
306+ if ($isInstanceOf(be, "List[Any]"))
307+ then be
308+ else throw(($getType(be) + " couldn't be cast to List[Any]"))
309+ })[0]
310+ if ($isInstanceOf(be, "Int"))
311+ then be
312+ else throw(($getType(be) + " couldn't be cast to Int"))
313+ }
300314 if ((bP == bP))
301315 then {
302316 let aM = (bP / (ba + bb))
303317 let bc = (aM * (ba + bb))
304- let bd = ( let be = invoke(ak, "callFunction", ["howManyYouPayREADONLY", [toString(bc), aP]], nil)
305- if ($isInstanceOf(be, "(Int, String)"))
306- then be
307- else throw(($getType(be) + " couldn't be cast to (Int, String)")))._1
318+ let bd = {
319+ let be = ({
320+ let be = invoke(ak, "callFunction", ["howManyYouPayREADONLY", [toString(bc), aP]], nil)
321+ if ($isInstanceOf(be, "List[Any]"))
322+ then be
323+ else throw(($getType(be) + " couldn't be cast to List[Any]"))
324+ })[0]
325+ if ($isInstanceOf(be, "Int"))
326+ then be
327+ else throw(($getType(be) + " couldn't be cast to Int"))
328+ }
308329 if ((bd == bd))
309330 then {
310331 let bQ = invoke(ak, "callFunction", ["exchange", [toString(bc)]], [AttachedPayment(unit, bd)])
311332 if ((bQ == bQ))
312333 then {
313334 let bR = (aH.payments[0].amount - bc)
314335 let bS = if ((bR > 0))
315336 then [ScriptTransfer(aH.caller, bR, aH.payments[0].assetId)]
316337 else nil
317338 $Tuple3(bc, aP, bS)
318339 }
319340 else throw("Strict value is not equal to itself.")
320341 }
321342 else throw("Strict value is not equal to itself.")
322343 }
323344 else throw("Strict value is not equal to itself.")
324345 }
325346 else $Tuple3(aH.payments[0].amount, aH.payments[0].assetId, nil)
326347 let bA = bO._1
327348 let bB = bO._2
328349 let bT = bO._3
329350 if ((am != aL))
330351 then throw("There is no active launchpad or this launchpad is ended")
331352 else if ((bi > height))
332353 then throw("Launchpad sale not started yet")
333354 else if ((height > (bi + bj)))
334355 then throw("Launchpad sale ended")
335356 else if (if (!(bw))
336357 then if ((size(aH.payments) != 1))
337358 then true
338359 else (bB != aP)
339360 else false)
340361 then throw((("One attached payment in " + aR) + " expected"))
341362 else if (if (bw)
342363 then if ((size(aH.payments) != 2))
343364 then true
344365 else (bB != aP)
345366 else false)
346367 then {
347368 let bU = getStringValue(this, (toString(aL) + H))
348369 throw(((("Two attached payments expected: First in " + aR) + ", second in ") + bU))
349370 }
350371 else if (if ((0 >= bL))
351372 then true
352373 else (0 >= bN))
353374 then throw("Not enought SWOP in staking to buy tickets")
354375 else {
355376 let bV = (bA / (ba + bb))
356377 let bW = min([bV, bN])
357378 let bX = (bW * (ba + bb))
358379 let bR = (bA - bX)
359380 if ((bV == 0))
360381 then throw((("Not enought " + aR) + " to buy tickets"))
361382 else if ((bR != 0))
362383 then throw((((("Wrong payment. To buy " + toString(bW)) + "tickets you need to pay ") + toString(bX)) + aR))
363384 else {
364385 let bG = if (bw)
365386 then {
366387 let bU = getStringValue(this, (toString(aL) + H))
367388 let bY = getIntegerValue(this, (toString(aL) + J))
368389 let bZ = $Tuple2(aH.payments[1].amount, aH.payments[1].assetId)
369390 let ca = bZ._1
370391 let cb = bZ._2
371392 let cc = av(bB)
372393 let cd = cc._1
373394 let ce = cc._2
374395 let cf = cc._3
375396 let cg = (bY * bV)
376397 if (if ((cd != bU))
377398 then true
378399 else (cg != ca))
379400 then throw((((("You need to add " + toString(cg)) + " ") + ce) + " as a second payment"))
380401 else [IntegerEntry((((toString(aH.caller) + "_") + toString(aL)) + ad), ca)]
381402 }
382403 else nil
383404 let ch = valueOrElse(getString(this, (((toString(aH.caller) + "_") + toString(aL)) + U)), "")
384405 let ci = getIntegerValue(this, (toString(aL) + x))
385406 let cj = ((toString((ci + 1)) + "-") + toString((ci + bW)))
386407 let ck = (ch + (if ((ch != ""))
387408 then ("," + cj)
388409 else ("" + cj)))
389410 let cl = if ((aP == ai))
390411 then invoke(ah, "lockNeutrino", nil, [AttachedPayment(bB, bA)])
391412 else 0
392413 if ((cl == cl))
393414 then {
394415 let cm = (([IntegerEntry((((toString(aH.caller) + "_") + toString(aL)) + T), (bM + bW)), IntegerEntry((toString(aL) + x), (ci + bW)), StringEntry((((toString(aH.caller) + "_") + toString(aL)) + U), ck)] ++ bG) ++ bT)
395416 if (!(isDefined(getString(this, (((toString(aH.caller) + "_") + toString(aL)) + z)))))
396417 then (cm ++ [StringEntry((((toString(aH.caller) + "_") + toString(aL)) + z), bH)])
397418 else cm
398419 }
399420 else throw("Strict value is not equal to itself.")
400421 }
401422 }
402423 })
403424
404425
405426
406427 @Callable(aH)
407428 func commitAccessListSale (aL,bH) = valueOrElse(aF(), {
408429 let cn = $Tuple2(aH.payments[0].amount, aH.payments[0].assetId)
409430 let bA = cn._1
410431 let bB = cn._2
411432 let co = aI(value(getString(this, (toString(aL) + K))))
412433 let aP = co._1
413434 let aQ = co._2
414435 let aR = co._3
415436 let aS = co._4
416437 let cp = valueOrElse(getInteger(this, (((toString(aH.caller) + "_") + toString(aL)) + Y)), 0)
417438 let cq = valueOrElse(getInteger(this, (toString(aL) + C)), 0)
418439 let cr = valueOrElse(getInteger(this, (((toString(aH.caller) + "_") + toString(aL)) + Z)), 0)
419440 let bl = getIntegerValue(this, (toString(aL) + n))
420441 let aT = getIntegerValue(this, (toString(aL) + s))
421442 let bp = getIntegerValue(this, (toString(aL) + w))
422443 let cs = aI(getStringValue(this, (toString(aL) + o)))
423444 let aW = cs._1
424445 let aX = cs._2
425446 let aY = cs._3
426447 let aZ = cs._4
427448 let ct = fraction(fraction(aT, bp, pow(10, 0, aZ, 0, 0, DOWN)), (100 + bl), 100)
428449 let bi = value(getInteger(this, (toString(aL) + l)))
429450 let bj = value(getInteger(this, (toString(aL) + B)))
430451 if ((am != aL))
431452 then throw("There is no active launchpad or this launchpad is ended")
432453 else if ((bi > height))
433454 then throw("Launchpad sale not started yet")
434455 else if ((height > (bi + bj)))
435456 then throw("Launchpad sale ended")
436457 else if (if ((size(aH.payments) != 1))
437458 then true
438459 else (bB != aP))
439460 then throw((("One attached payment in " + aR) + " expected"))
440461 else if ((cr >= al))
441462 then throw((("You can buy only " + toString(al)) + "allocations"))
442463 else if (if ((ct != bA))
443464 then ((ct * 2) != bA)
444465 else false)
445466 then throw(((("Wrong payment. You can buy 1 or 2 allocations for " + toString(ct)) + aR) + " per allocation"))
446467 else {
447468 let cu = (bA / ct)
448469 let cl = if ((aP == ai))
449470 then invoke(ah, "lockNeutrino", nil, [AttachedPayment(bB, bA)])
450471 else 0
451472 if ((cl == cl))
452473 then {
453474 let cm = [IntegerEntry((((toString(aH.caller) + "_") + toString(aL)) + Z), (cr + cu)), IntegerEntry((((toString(aH.caller) + "_") + toString(aL)) + Y), (cp + bA)), IntegerEntry((toString(aL) + C), (cq + bA))]
454475 if (!(isDefined(getString(this, (((toString(aH.caller) + "_") + toString(aL)) + z)))))
455476 then (cm ++ [StringEntry((((toString(aH.caller) + "_") + toString(aL)) + z), bH)])
456477 else cm
457478 }
458479 else throw("Strict value is not equal to itself.")
459480 }
460481 })
461482
462483
463484
464485 @Callable(aH)
465486 func commitHighCompetitionSale (aL,bH) = valueOrElse(aF(), {
466487 let cv = aI(value(getString(this, (toString(aL) + K))))
467488 let aP = cv._1
468489 let aQ = cv._2
469490 let aR = cv._3
470491 let aS = cv._4
471492 let bi = value(getInteger(this, (toString(aL) + l)))
472493 let bj = value(getInteger(this, (toString(aL) + B)))
473494 let cw = valueOrElse(getInteger(this, (((toString(aH.caller) + "_") + toString(aL)) + W)), 0)
474495 let cx = valueOrElse(getBoolean(this, (toString(aL) + N)), false)
475496 let aT = getIntegerValue(this, (toString(aL) + s))
476497 let aU = getIntegerValue(this, (toString(aL) + r))
477498 let cy = aI(getStringValue(this, (toString(aL) + o)))
478499 let aW = cy._1
479500 let aX = cy._2
480501 let aY = cy._3
481502 let aZ = cy._4
482503 let ba = fraction(aU, aT, pow(10, 0, aZ, 0, 0, DOWN))
483504 let bb = fraction(ba, getIntegerValue(this, (toString(aL) + M)), 100)
484505 let cz = if ((aH.payments[0].assetId == unit))
485506 then {
486- let bP = ( let be = invoke(ak, "callFunction", ["howManyYouGetREADONLY", [toString(aH.payments[0].amount), aP]], nil)
487- if ($isInstanceOf(be, "(Int, String, Int, Int)"))
488- then be
489- else throw(($getType(be) + " couldn't be cast to (Int, String, Int, Int)")))._1
507+ let bP = {
508+ let be = ({
509+ let be = invoke(ak, "callFunction", ["howManyYouGetREADONLY", [toString(aH.payments[0].amount), aP]], nil)
510+ if ($isInstanceOf(be, "List[Any]"))
511+ then be
512+ else throw(($getType(be) + " couldn't be cast to List[Any]"))
513+ })[0]
514+ if ($isInstanceOf(be, "Int"))
515+ then be
516+ else throw(($getType(be) + " couldn't be cast to Int"))
517+ }
490518 if ((bP == bP))
491519 then {
492520 let aM = (bP / (ba + bb))
493521 let bc = (aM * (ba + bb))
494- let bd = ( let be = invoke(ak, "callFunction", ["howManyYouPayREADONLY", [toString(bc), aP]], nil)
495- if ($isInstanceOf(be, "(Int, String)"))
496- then be
497- else throw(($getType(be) + " couldn't be cast to (Int, String)")))._1
522+ let bd = {
523+ let be = ({
524+ let be = invoke(ak, "callFunction", ["howManyYouPayREADONLY", [toString(bc), aP]], nil)
525+ if ($isInstanceOf(be, "List[Any]"))
526+ then be
527+ else throw(($getType(be) + " couldn't be cast to List[Any]"))
528+ })[0]
529+ if ($isInstanceOf(be, "Int"))
530+ then be
531+ else throw(($getType(be) + " couldn't be cast to Int"))
532+ }
498533 if ((bd == bd))
499534 then {
500535 let bQ = invoke(ak, "callFunction", ["exchange", [toString(bc)]], [AttachedPayment(unit, bd)])
501536 if ((bQ == bQ))
502537 then {
503538 let bR = (aH.payments[0].amount - bc)
504539 let bS = if ((bR > 0))
505540 then [ScriptTransfer(aH.caller, bR, aH.payments[0].assetId)]
506541 else nil
507542 $Tuple3(bc, aP, bS)
508543 }
509544 else throw("Strict value is not equal to itself.")
510545 }
511546 else throw("Strict value is not equal to itself.")
512547 }
513548 else throw("Strict value is not equal to itself.")
514549 }
515550 else $Tuple3(aH.payments[0].amount, aH.payments[0].assetId, nil)
516551 let bA = cz._1
517552 let bB = cz._2
518553 let bT = cz._3
519554 if ((am != aL))
520555 then throw("There is no active launchpad or this launchpad is ended")
521556 else if (!(cx))
522557 then throw("There is no high competition sale for this launchpad")
523558 else if ((bi > height))
524559 then throw("Launchpad sale not started yet")
525560 else if ((height > (bi + bj)))
526561 then throw("Launchpad sale ended")
527562 else if (if ((size(aH.payments) != 1))
528563 then true
529564 else (bB != aP))
530565 then throw((("One attached payment in " + aR) + " expected"))
531566 else {
532567 let bV = (bA / (ba + bb))
533568 let cA = (bV * (ba + bb))
534569 let bR = (bA - cA)
535570 if ((bV == 0))
536571 then throw((("Not enought " + aR) + " to buy tickets"))
537572 else if ((bR != 0))
538573 then throw((((("Wrong payment. To buy " + toString(bV)) + "tickets you need to pay ") + toString(cA)) + aR))
539574 else {
540575 let ch = valueOrElse(getString(this, (((toString(aH.caller) + "_") + toString(aL)) + V)), "")
541576 let ci = getIntegerValue(this, (toString(aL) + O))
542577 let cj = ((toString((ci + 1)) + "-") + toString((ci + bV)))
543578 let ck = (ch + (if ((ch != ""))
544579 then ("," + cj)
545580 else ("" + cj)))
546581 let cl = if ((aP == ai))
547582 then invoke(ah, "lockNeutrino", nil, [AttachedPayment(bB, bA)])
548583 else 0
549584 if ((cl == cl))
550585 then {
551586 let cm = ([IntegerEntry((((toString(aH.caller) + "_") + toString(aL)) + W), (cw + bV)), IntegerEntry((toString(aL) + O), (ci + bV)), StringEntry((((toString(aH.caller) + "_") + toString(aL)) + V), ck)] ++ bT)
552587 if (!(isDefined(getString(this, (((toString(aH.caller) + "_") + toString(aL)) + z)))))
553588 then (cm ++ [StringEntry((((toString(aH.caller) + "_") + toString(aL)) + z), bH)])
554589 else cm
555590 }
556591 else throw("Strict value is not equal to itself.")
557592 }
558593 }
559594 })
560595
561596
562597
563598 @Callable(aH)
564599 func finalise (aL,cB,cC) = valueOrElse(aF(), valueOrElse(aG(aH), {
565600 let cD = getStringValue(this, (toString(aL) + A))
566601 let cE = toBase58String(sha256((toBytes(cB) + toBytes(cC))))
567602 if ((cE != cD))
568603 then throw("vrf Height hash not matching")
569604 else {
570605 let cF = aI(value(getString(this, (toString(aL) + K))))
571606 let aP = cF._1
572607 let aQ = cF._2
573608 let aR = cF._3
574609 let aS = cF._4
575610 let bh = addressFromStringValue(getStringValue(this, (toString(aL) + j)))
576611 let bl = getIntegerValue(this, (toString(aL) + n))
577612 let cG = getIntegerValue(this, (toString(aL) + M))
578613 let cH = valueOrElse(getInteger(this, (toString(aL) + E)), 0)
579614 let cI = getIntegerValue(this, (toString(aL) + q))
580615 let cJ = valueOrElse(getInteger(this, (toString(aL) + Q)), 0)
581616 let cK = fraction(cI, bl, 100)
582617 let cL = fraction(cJ, cG, 100)
583618 let cM = getIntegerValue(this, (toString(aL) + D))
584619 let cN = fraction(cM, bl, 100)
585620 let cO = ((((((cI + cM) + cK) + cN) + cJ) + cL) - cH)
586621 if ((cH > ((cI + cM) + cJ)))
587622 then throw("Can't transfer negative value to project")
588623 else {
589624 let cl = if ((aP == ai))
590625 then invoke(ah, "unlockNeutrino", [cO, toBase58String(ai)], nil)
591626 else 0
592627 if ((cl == cl))
593628 then [IntegerEntry((toString(aL) + m), height), ScriptTransfer(bh, (((cI + cJ) + cM) - cH), aP), ScriptTransfer(ag, ((cK + cN) + cL), aP)]
594629 else throw("Strict value is not equal to itself.")
595630 }
596631 }
597632 }))
598633
599634
600635
601636 @Callable(aH)
602637 func claim (aL) = valueOrElse(aF(), {
603638 let cP = valueOrElse(getInteger(this, (((toString(aH.caller) + "_") + toString(aL)) + T)), 0)
604639 let cQ = valueOrElse(getInteger(this, (((toString(aH.caller) + "_") + toString(aL)) + W)), 0)
605640 let cr = valueOrElse(getInteger(this, (((toString(aH.caller) + "_") + toString(aL)) + Z)), 0)
606641 let cR = valueOrElse(getBoolean(this, (((toString(aH.caller) + "_") + toString(aL)) + aa)), false)
607642 let cS = valueOrElse(getInteger(this, (toString(aL) + m)), 0)
608643 if ((cS == 0))
609644 then throw("You can't claim because results are not finalized")
610645 else if (cR)
611646 then throw("You are already claimed")
612647 else if (if (if ((cP == 0))
613648 then (cr == 0)
614649 else false)
615650 then (cQ == 0)
616651 else false)
617652 then throw("You can't claim because you don't buy anything")
618653 else {
619654 let cT = aI(valueOrElse(getString(this, (toString(aL) + K)), toBase58String(ai)))
620655 let aP = cT._1
621656 let aQ = cT._2
622657 let aR = cT._3
623658 let aS = cT._4
624659 let cU = valueOrElse(getInteger(this, (((toString(aH.caller) + "_") + toString(aL)) + ab)), 0)
625660 let cV = valueOrElse(getInteger(this, (((toString(aH.caller) + "_") + toString(aL)) + ac)), 0)
626661 let cW = valueOrElse(getInteger(this, (((toString(aH.caller) + "_") + toString(aL)) + X)), 0)
627662 let bl = getIntegerValue(this, (toString(aL) + n))
628663 let cG = valueOrElse(getInteger(this, (toString(aL) + M)), 0)
629664 let cX = min([cr, cW])
630665 let aT = getIntegerValue(this, (toString(aL) + s))
631666 let aU = getIntegerValue(this, (toString(aL) + r))
632667 let cY = aI(getStringValue(this, (toString(aL) + o)))
633668 let aW = cY._1
634669 let aX = cY._2
635670 let aY = cY._3
636671 let aZ = cY._4
637672 let ba = fraction(aU, aT, pow(10, 0, aZ, 0, 0, DOWN))
638673 let bp = getIntegerValue(this, (toString(aL) + w))
639674 let cZ = (((cU * aU) + (cX * bp)) + (cV * aU))
640675 let da = ((cr - cX) * bp)
641676 let db = fraction(fraction(da, aT, pow(10, 0, aZ, 0, 0, DOWN)), (100 + bl), 100)
642677 let dc = fraction(((cP - cU) * ba), (100 + bl), 100)
643678 let dd = fraction(((cQ - cV) * ba), (100 + cG), 100)
644679 let de = valueOrElse(getInteger(this, (((toString(aH.caller) + "_") + toString(aL)) + S)), 0)
645680 if (if (if ((0 > db))
646681 then true
647682 else (0 > dc))
648683 then true
649684 else (0 > dd))
650685 then throw("Error with allowed allocation param or wonned tickets param please contact support")
651686 else {
652687 let df = (((dc + dd) + db) - de)
653688 let dg = if ((df > 0))
654689 then [ScriptTransfer(aH.caller, df, aP), IntegerEntry((((toString(aH.caller) + "_") + toString(aL)) + S), df)]
655690 else nil
656691 let cl = if (if ((df > 0))
657692 then (aP == ai)
658693 else false)
659694 then invoke(ah, "unlockNeutrino", [df, toBase58String(ai)], nil)
660695 else 0
661696 if ((cl == cl))
662697 then {
663698 let dh = split(valueOrElse(getString(this, (toString(aL) + L)), "claimAll"), ",")
664699 if ((dh[0] == "claimAll"))
665700 then {
666701 let di = if ((cZ > 0))
667702 then [ScriptTransfer(aH.caller, cZ, aW)]
668703 else nil
669704 (([BooleanEntry((((toString(aH.caller) + "_") + toString(aL)) + aa), true), IntegerEntry((((toString(aH.caller) + "_") + toString(aL)) + R), cZ)] ++ di) ++ dg)
670705 }
671706 else if ((dh[0] == "claimPeriod"))
672707 then {
673708 let dj = valueOrElse(getInteger(this, (((toString(aH.caller) + "_") + toString(aL)) + R)), 0)
674709 let dk = value(parseInt(dh[2]))
675710 let dl = (value(parseInt(dh[3])) + cS)
676711 let dm = (dk + dl)
677712 let dn = fraction(cZ, value(parseInt(dh[1])), 100)
678713 let do = (dn + (if ((height > dl))
679714 then (fraction((cZ - dn), (min([height, dm]) - dl), dk) - dj)
680715 else (0 - dj)))
681716 let dp = if ((cZ >= (dj + do)))
682717 then [BooleanEntry((((toString(aH.caller) + "_") + toString(aL)) + aa), true)]
683718 else nil
684719 if (if ((do > 0))
685720 then true
686721 else (df > 0))
687722 then {
688723 let di = if ((do > 0))
689724 then [IntegerEntry((((toString(aH.caller) + "_") + toString(aL)) + R), (dj + do)), ScriptTransfer(aH.caller, do, aW)]
690725 else nil
691726 (dg ++ di)
692727 }
693728 else throw("Nothing to claim")
694729 }
695730 else throw("Unknown claim function")
696731 }
697732 else throw("Strict value is not equal to itself.")
698733 }
699734 }
700735 })
701736
702737
703738
704739 @Callable(aH)
705740 func claimFreezeToken (aL) = valueOrElse(aF(), {
706741 let bw = valueOrElse(getBoolean(this, (toString(aL) + G)), false)
707742 if (!(isDefined(getInteger(this, (toString(aL) + m)))))
708743 then throw("You can't claim because results are not finalized")
709744 else if (!(bw))
710745 then throw("There are no additional token freezing for this launchpad")
711746 else {
712747 let aW = fromBase58String(getStringValue(this, (toString(aL) + H)))
713748 let dq = valueOrElse(getInteger(this, (((toString(aH.caller) + "_") + toString(aL)) + ad)), 0)
714749 let bi = valueOrElse(getInteger(this, (toString(aL) + l)), 0)
715750 let bj = valueOrElse(getInteger(this, (toString(aL) + B)), 0)
716751 let dr = getIntegerValue(this, (toString(aL) + I))
717752 let ds = ((bi + bj) + dr)
718753 if ((dq == 0))
719754 then throw("You are already claimed your tokens or not paid anything")
720755 else if ((ds > height))
721756 then throw(("Your tokens freezed teel " + toString(ds)))
722757 else [ScriptTransfer(aH.caller, dq, aW), IntegerEntry((((toString(aH.caller) + "_") + toString(aL)) + ad), 0)]
723758 }
724759 })
725760
726761
727762
728763 @Callable(aH)
729764 func transferBuyAsset (aL,dt) = valueOrElse(aF(), valueOrElse(aG(aH), {
730765 let bh = addressFromStringValue(getStringValue(this, (toString(aL) + j)))
731766 let du = aI(value(getString(this, (toString(aL) + K))))
732767 let aP = du._1
733768 let aQ = du._2
734769 let aR = du._3
735770 let aS = du._4
736771 let cH = valueOrElse(getInteger(this, (toString(aL) + E)), 0)
737772 let cl = if (if ((dt > 0))
738773 then (aP == ai)
739774 else false)
740775 then invoke(ah, "unlockNeutrino", [dt, toBase58String(ai)], nil)
741776 else 0
742777 if ((cl == cl))
743778 then [IntegerEntry((toString(aL) + E), (cH + dt)), ScriptTransfer(bh, dt, aP)]
744779 else throw("Strict value is not equal to itself.")
745780 }))
746781
747782
748783
749784 @Callable(aH)
750785 func shutdown () = valueOrElse(aG(aH), if (!(aD))
751786 then throw("DApp already inactive")
752787 else [BooleanEntry(a, false)])
753788
754789
755790
756791 @Callable(aH)
757792 func activate () = valueOrElse(aG(aH), if (aD)
758793 then throw("DApp already active")
759794 else [BooleanEntry(a, true)])
760795
761796
762797 @Verifier(dv)
763798 func dw () = {
764799 let dx = {
765800 let dy = if (sigVerify(dv.bodyBytes, dv.proofs[0], as))
766801 then 1
767802 else 0
768803 let dz = if (sigVerify(dv.bodyBytes, dv.proofs[1], at))
769804 then 1
770805 else 0
771806 let dA = if (sigVerify(dv.bodyBytes, dv.proofs[2], au))
772807 then 1
773808 else 0
774809 (((dy + dz) + dA) >= 2)
775810 }
776811 let dB = if (if (if (sigVerify(dv.bodyBytes, dv.proofs[0], as))
777812 then true
778813 else sigVerify(dv.bodyBytes, dv.proofs[0], at))
779814 then true
780815 else sigVerify(dv.bodyBytes, dv.proofs[0], au))
781816 then true
782817 else sigVerify(dv.bodyBytes, dv.proofs[0], aj)
783818 let ap = dv
784819 if ($isInstanceOf(ap, "DataTransaction"))
785820 then {
786821 let dC = ap
787822 if (valueOrElse(getBoolean(ae, f), false))
788823 then dB
789824 else false
790825 }
791826 else dx
792827 }
793828

github/deemru/w8io/873ac7e 
127.59 ms