tx · 3rSTnyXJaMwa8kjU9ftu4g8L9VgB6cd8xrQYj6cGFUkt

3NBPx1Fciu3JQNEGZ21jSnTdutLNGGBUSXh:  -0.03800000 Waves

2024.12.14 00:37 [3413355] smart account 3NBPx1Fciu3JQNEGZ21jSnTdutLNGGBUSXh > SELF 0.00000000 Waves

{ "type": 13, "id": "3rSTnyXJaMwa8kjU9ftu4g8L9VgB6cd8xrQYj6cGFUkt", "fee": 3800000, "feeAssetId": null, "timestamp": 1734125873080, "version": 2, "chainId": 84, "sender": "3NBPx1Fciu3JQNEGZ21jSnTdutLNGGBUSXh", "senderPublicKey": "3QtfC1XbLZXdeawMDeSERy9vvjUmj1XYd2GFmrvx7pWQ", "proofs": [ "2cxgTMa1sZix75LE8WydDEBhCsiccJxPFgiPBzfaxBYo21MstvN8eGaye9jpP7gNJJ5dqsvxXqHxA95ajXG6XVhn" ], "script": "base64:BgJLCAISABIECgIICBIDCgEEEgMKAQESABIAEgMKAQESABIECgIIARIAEgMKAQgSAwoBCBIECgIIARIDCgEIEgASAwoBCBIAEgASABIAjAEAA1NFUAICX18ABU1VTFQ2AMCEPQAFTVVMVDcAgK3iBAAFTVVMVDgAgMLXLwAGTVVMVDE0AICA6YOx3hYACkRBWV9NSUxMSVMAgLiZKQAVVVNEVDJBQ1JFU19NVUxUSVBMSUVSAAoAE09ORV9QRVJDRU5UX0RJVklTT1IAZAAMUkFORE9NX0RFTEFZAAIAFE5GVF9DSEVTVF9QUklDRV9VU0RUAMCWsQIABWNoYWluCQDJAQIJAMoBAggFBHRoaXMFYnl0ZXMAAQABABdEQUlMWV9QUk9NT19TVEFSVF9CTE9DSwQHJG1hdGNoMAUFY2hhaW4DCQAAAgEBVwUHJG1hdGNoMACA75ECAwkAAAIBAVQFByRtYXRjaDAAwKbQAQkAAgECDVVua25vd24gY2hhaW4AFURBSUxZX1BST01PX0VORF9CTE9DSwQHJG1hdGNoMAUFY2hhaW4DCQAAAgEBVwUHJG1hdGNoMACg25MCAwkAAAIBAVQFByRtYXRjaDAA4JLSAQkAAgECDVVua25vd24gY2hhaW4ACkRBWV9CTE9DS1MEByRtYXRjaDAFBWNoYWluAwkAAAIBAVcFByRtYXRjaDAAoAsDCQAAAgEBVAUHJG1hdGNoMAA8CQACAQINVW5rbm93biBjaGFpbgALV0VFS19CTE9DS1MEByRtYXRjaDAFBWNoYWluAwkAAAIBAVcFByRtYXRjaDAA4E4DCQAAAgEBVAUHJG1hdGNoMAC0AQkAAgECDVVua25vd24gY2hhaW4AClZSRl9PRkZTRVQEByRtYXRjaDAFBWNoYWluAwkAAAIBAVcFByRtYXRjaDAAAAMJAAACAQFUBQckbWF0Y2gwAJD5RQkAAgECDVVua25vd24gY2hhaW4AC3VzZHRBc3NldElkBAckbWF0Y2gwBQVjaGFpbgMJAAACAQFXBQckbWF0Y2gwASCE2nqyCAM/TtG7yo7ui5O8yYLdC136B5ao1CP5qA//uQMJAAACAQFUBQckbWF0Y2gwASBVsdifcoeC7+XjW42sBatl3ppDoS8WuwXzGreHpfHFGAkAAgECDVVua25vd24gY2hhaW4AFmRlZmF1bHRSZXN0MkFkZHJlc3NTdHIEByRtYXRjaDAFBWNoYWluAwkAAAIBAVcFByRtYXRjaDACIzNQRndZdGE4YmlFejMxenBlRmU1REpLOHdFNXRyU3BRVkY4AwkAAAIBAVQFByRtYXRjaDACIzNON1V1WWFyNjI2NFA1OEZCaFZXS1BRQWg0WXVhMmhnbmd2CQACAQINVW5rbm93biBjaGFpbgAOYXJiaXRyYWdlRGVsYXkEByRtYXRjaDAFBWNoYWluAwkAAAIBAVcFByRtYXRjaDAFCkRBWV9NSUxMSVMDCQAAAgEBVAUHJG1hdGNoMADg1AMJAAIBAg1Vbmtub3duIGNoYWluABVvbGRTdGFraW5nQ29udHJhY3RTdHIEByRtYXRjaDAFBWNoYWluAwkAAAIBAVcFByRtYXRjaDACIzNQTG5jWHRTMVU4M0Q2Y1FiRkQzSDhyQkhQTGd6eFNGS1oxAwkAAAIBAVQFByRtYXRjaDACIzNOREN5Qkc1cTg1SnVhUmlpZ1VlRXRhaW55akNRVDNYcFptCQACAQINVW5rbm93biBjaGFpbgEPZ2V0U3RyaW5nT3JGYWlsAgdhZGRyZXNzA2tleQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFB2FkZHJlc3MFA2tleQkAuQkCCQDMCAICCm1hbmRhdG9yeSAJAMwIAgkApQgBBQdhZGRyZXNzCQDMCAICAS4JAMwIAgUDa2V5CQDMCAICDyBpcyBub3QgZGVmaW5lZAUDbmlsAgAAEElkeENmZ0FjcmVzMkRhcHAAAQANSWR4Q2ZnV2xnRGFwcAACABRJZHhDZmdJbnZlc3RGdW5kRGFwcAAFABBJZHhDZmdNYXJrZXREYXBwAAYBCmtleVJlc3RDZmcAAg4lc19fcmVzdENvbmZpZwEPa2V5UmVzdDJBZGRyZXNzAAINJXNfX3Jlc3QyQWRkcgERcmVhZFJlc3RDZmdPckZhaWwBBHJlc3QJALwJAgkBD2dldFN0cmluZ09yRmFpbAIFBHJlc3QJAQprZXlSZXN0Q2ZnAAUDU0VQARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCCHJlc3QyQ2ZnA2lkeAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUIcmVzdDJDZmcFA2lkeAkArAICAipSZXN0IGNmZyBkb2Vzbid0IGNvbnRhaW4gYWRkcmVzcyBhdCBpbmRleCAJAKQDAQUDaWR4AA1yZXN0MkNvbnRyYWN0CQERQGV4dHJOYXRpdmUoMTA2MikBCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQ9rZXlSZXN0MkFkZHJlc3MABRZkZWZhdWx0UmVzdDJBZGRyZXNzU3RyAAhyZXN0MkNmZwkBEXJlYWRSZXN0Q2ZnT3JGYWlsAQUNcmVzdDJDb250cmFjdAAOYWNyZXMyQ29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQhyZXN0MkNmZwUQSWR4Q2ZnQWNyZXMyRGFwcAALd2xnQ29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQhyZXN0MkNmZwUNSWR4Q2ZnV2xnRGFwcAASaW52ZXN0RnVuZENvbnRyYWN0CQEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgUIcmVzdDJDZmcFFElkeENmZ0ludmVzdEZ1bmREYXBwAA5tYXJrZXRDb250cmFjdAkBGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIFCHJlc3QyQ2ZnBRBJZHhDZmdNYXJrZXREYXBwABNvbGRBY3Jlc0NvbnRyYWN0S2V5AhBvbGRBY3Jlc0NvbnRyYWN0AQprZXlCbG9ja2VkAAIQY29udHJhY3RzQmxvY2tlZAEVa2V5TGFzdFdlZWtUeElkQnlVc2VyAQRhZGRyCQCsAgICE2xhc3RXZWVrVHhJZEJ5VXNlcl8FBGFkZHIBFGtleUN1cldlZWtUeElkQnlVc2VyAQRhZGRyCQCsAgICEmN1cldlZWtUeElkQnlVc2VyXwUEYWRkcgEJa2V5Q29tbWl0AQdhZGRyZXNzCQCsAgICD2ZpbmlzaEJsb2NrRm9yXwUHYWRkcmVzcwANd2xnQXNzZXRJZEtleQILd2xnX2Fzc2V0SWQACndsZ0Fzc2V0SWQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnAgCBQt3bGdDb250cmFjdAUNd2xnQXNzZXRJZEtleQIYV0xHT0xEIGlzIG5vdCBpc3N1ZWQgeWV0ABRhY3Jlc0lzc3VlZEFtb3VudEtleQIRYWNyZXNJc3N1ZWRBbW91bnQAD2FjcmVzQXNzZXRJZEtleQIMYWNyZXNBc3NldElkAAxhY3Jlc0Fzc2V0SWQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnAgCBQ5hY3JlczJDb250cmFjdAUPYWNyZXNBc3NldElkS2V5AhdBQ1JFUyBpcyBub3QgaXNzdWVkIHlldAEYa2V5QWNyZXNTdGFrZWRUaW1lQnlVc2VyAQRhZGRyCQCsAgICFmFjcmVzU3Rha2VkVGltZUJ5VXNlcl8FBGFkZHIBFWtleVN0YWtlZExhbmRzQnlPd25lcgEJb3duZXJBZGRyCQCsAgICE3N0YWtlZExhbmRzQnlPd25lcl8FCW93bmVyQWRkcgEUa2V5U3Rha2VkRHVja0J5T3duZXIBCW93bmVyQWRkcgkArAICAhJzdGFrZWREdWNrQnlPd25lcl8FCW93bmVyQWRkcgEea2V5U3Rha2VkVGltZUJ5QXNzZXRJZEFuZE93bmVyAgdhc3NldElkBGFkZHIJAKwCAgkArAICCQCsAgICA3N0XwUHYXNzZXRJZAIBXwUEYWRkcgEUa2V5U3Rha2VkTkZUc0J5T3duZXIBCW93bmVyQWRkcgkArAICAhJzdGFrZWRORlRzQnlPd25lcl8FCW93bmVyQWRkcgERa2V5VXNlclByb21vQWNyZXMBB2FkZHJlc3MJAKwCAgILcHJvbW9BY3Jlc18FB2FkZHJlc3MBE2tleVVzZXJQcm9tb1RpY2tldHMBB2FkZHJlc3MJAKwCAgINcHJvbW9UaWNrZXRzXwUHYWRkcmVzcwAUa2V5VG90YWxQcm9tb1RpY2tldHMCEXRvdGFsUHJvbW9UaWNrZXRzAAtrZXlQcm9tb01hcAIIcHJvbW9NYXABD2tleURhaWx5V2lubmVycwEDZGF5CQCsAgICDWRhaWx5V2lubmVyc18JAKQDAQUDZGF5AQVhc0ludAEBdgQHJG1hdGNoMAUBdgMJAAECBQckbWF0Y2gwAgNJbnQEAW4FByRtYXRjaDAFAW4JAAIBAhVmYWlsIHRvIGNhc3QgaW50byBJbnQBDGFzVHVwbGU1SW50cwEDdmFsBAckbWF0Y2gwBQN2YWwDCQABAgUHJG1hdGNoMAIZKEludCwgSW50LCBJbnQsIEludCwgSW50KQQBdAUHJG1hdGNoMAUBdAkAAgECK2ZhaWwgdG8gY2FzdCBpbnRvIChJbnQsIEludCwgSW50LCBJbnQsIEludCkBDGFzVHVwbGU0SW50cwEDdmFsBAckbWF0Y2gwBQN2YWwDCQABAgUHJG1hdGNoMAIUKEludCwgSW50LCBJbnQsIEludCkEAXQFByRtYXRjaDAFAXQJAAIBAiZmYWlsIHRvIGNhc3QgaW50byAoSW50LCBJbnQsIEludCwgSW50KQEMYXNUdXBsZTNJbnRzAQN2YWwEByRtYXRjaDAFA3ZhbAMJAAECBQckbWF0Y2gwAg8oSW50LCBJbnQsIEludCkEAXQFByRtYXRjaDAFAXQJAAIBAiFmYWlsIHRvIGNhc3QgaW50byAoSW50LCBJbnQsIEludCkBDGFzVHVwbGUySW50cwEDdmFsBAckbWF0Y2gwBQN2YWwDCQABAgUHJG1hdGNoMAIKKEludCwgSW50KQQBdAUHJG1hdGNoMAUBdAkAAgECHGZhaWwgdG8gY2FzdCBpbnRvIChJbnQsIEludCkBCmZpeGVkUG9pbnQCA3ZhbAhkZWNpbWFscwQGdGVuUG93CQBsBgAKAAAFCGRlY2ltYWxzAAAAAAUERE9XTgQHbG93UGFydAkApAMBCQBqAgUDdmFsBQZ0ZW5Qb3cEBnplcm9lcwkAsAICCQCkAwEFBnRlblBvdwkAZAIAAQkAsQIBBQdsb3dQYXJ0CQCsAgIJAKwCAgkArAICCQCkAwEJAGkCBQN2YWwFBnRlblBvdwIBLgUGemVyb2VzBQdsb3dQYXJ0AQ9nZXRSYW5kb21OdW1iZXIDCG1heFZhbHVlBHNhbHQHZW50cm9weQMJAGcCAAAFCG1heFZhbHVlCQACAQIWbWF4VmFsdWUgc2hvdWxkIGJlID4gMAQKcmFuZG9tSGFzaAkA1BYBCQDLAQIFBHNhbHQFB2VudHJvcHkJAGoCCQCxCQEFCnJhbmRvbUhhc2gFCG1heFZhbHVlAQRwYWRMAgN2YWwDbGVuBAR2YWxTCQCkAwEFA3ZhbAQGemVyb2VzCQCwAgIJAKQDAQkAbAYACgAACQBlAgUDbGVuCQCxAgEFBHZhbFMAAAAABQRET1dOAAEJAKwCAgUGemVyb2VzBQR2YWxTAANNNl8AwIQ9AANNOF8AgMLXLwAPd2xnSXNzdWVkQW10S2V5AhB3bGdfaXNzdWVkQW1vdW50AA56Yklzc3VlZEFtdEtleQISemJpbGxfaXNzdWVkQW1vdW50ARdrZXlBY3Jlc1N0YWtlZEFtdEJ5VXNlcgEEYWRkcgkArAICAhhhY3Jlc1N0YWtlZEFtb3VudEJ5VXNlcl8FBGFkZHIBFWtleUZhcm1pbmdQb3dlckJ5VXNlcgEEYWRkcgkArAICAhNmYXJtaW5nUG93ZXJCeVVzZXJfBQRhZGRyABJhY3Jlc1N0YWtkVG90YWxLZXkCFmFjcmVzU3Rha2VkQW1vdW50VG90YWwAFHRvdGFsRmFybWluZ1Bvd2VyS2V5AhF0b3RhbEZhcm1pbmdQb3dlcgALTUFYX1dMX05GVFMAAwAMTUFYX0FSS19ORlRTAAEADUFSS19ORlRfQk9OVVMAiCcAF01BWF9ORlRTX1NUQUtFRF9CWV9VU0VSAAQAEWtleU5mdFRvdGFsSXNzdWVkAg5uZnRUb3RhbElzc3VlZAARa2V5TmZ0VG90YWxCdXJuZWQCDm5mdFRvdGFsQnVybmVkABNrZXlXbE5mdFRvdGFsU3Rha2VkAhBXbE5mdFRvdGFsU3Rha2VkABRrZXlBcmtOZnRUb3RhbFN0YWtlZAIRQXJrTmZ0VG90YWxTdGFrZWQBFWtleU5mdE51bWJlckJ5QXNzZXRJZAEHYXNzZXRJZAkArAICAhNuZnROdW1iZXJCeUFzc2V0SWRfBQdhc3NldElkARJrZXlVc2VyV2xOZnROdW1iZXIBBGFkZHIJAKwCAgIQdXNlcldsTmZ0TnVtYmVyXwUEYWRkcgETa2V5VXNlckFya05mdE51bWJlcgEEYWRkcgkArAICAhF1c2VyQXJrTmZ0TnVtYmVyXwUEYWRkcgEQa2V5VXNlckZ1bGxCb251cwEEYWRkcgkArAICAg51c2VyRnVsbEJvbnVzXwUEYWRkcgAKbGV2ZWxBY3JlcwkAzAgCAAAJAMwIAgAKCQDMCAIAFAkAzAgCACgJAMwIAgBQCQDMCAIAlgEJAMwIAgD6AQkAzAgCAJADCQDMCAIAvAUJAMwIAgDoBwUDbmlsAQ9nZXRMZXZlbEJ5QWNyZXMBBWFjcmVzBANhY3IJAGkCCQBkAgUFYWNyZXMA/8HXLwUDTThfCgEHY2hlY2tlcgIDYWNjBGl0ZW0DCQBnAgUEaXRlbQUDYWNyBQNhY2MJAGQCBQNhY2MAAQoAAiRsBQpsZXZlbEFjcmVzCgACJHMJAJADAQUCJGwKAAUkYWNjMAAACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQdjaGVja2VyAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKARZnZXRGYXJtaW5nUG93ZXJCeUFjcmVzAQVhY3JlcwkAaAIJAGgCBQVhY3JlcwAUCQBkAgkBD2dldExldmVsQnlBY3JlcwEFBWFjcmVzAAQBHmdldEZhcm1pbmdQb3dlckJ5QWNyZXNBbmRCb251cwIFYWNyZXMGYm9udXM2BApub3RCb251c2VkCQEWZ2V0RmFybWluZ1Bvd2VyQnlBY3JlcwEFBWFjcmVzCQCUCgIJAGsDBQpub3RCb251c2VkCQBkAgUDTTZfBQZib251czYFA002XwUKbm90Qm9udXNlZAALdGVhbUFkZHJLZXkCCHRlYW1BZGRyARlrZXlMYXN0V2xnVHJhZGVUaW1lQnlVc2VyAQRhZGRyCQCsAgICEGxhc3RBcmJUaW1lVXNlcl8FBGFkZHIAEU9MRF9TVEFLSU5HX0RFQURMAID545u5MgAUTUFYX0xBTkRTX1RPX0NPTlZFUlQADgAUa2V5TGFzdEFjcmVzU2VsbFRpbWUCEWxhc3RBY3Jlc1NlbGxUaW1lABBrZXlMYXN0TGltaXRMZWZ0Ag1sYXN0TGltaXRMZWZ0AAVuYW1lcwkAzAgCAgtHb2xkIHNob3ZlbAkAzAgCAgdQaWNrYXhlBQNuaWwADGRlc2NyaXB0aW9ucwkAzAgCAhZSZXdhcmQgZm9yIGVhcmx5IGJpcmRzCQDMCAICE0luY3JlYXNlcyBGYXJtUG93ZXIFA25pbAAOaWR4RGVzY3JTaG92ZWwAAAAPaWR4RGVzY3JQaWNrYXhlAAEAEHJhcml0eVRocmVzaG9sZHMJAMwIAgAFCQDMCAIACgkAzAgCABQFA25pbAANaWR4VGhyZXNob2xkQwAAAA1pZHhUaHJlc2hvbGRVAAEADWlkeFRocmVzaG9sZEwAAgAFbmFtZXoJAMwIAgIGU0hPVkVMCQDMCAICB1BJQ0tBWEUFA25pbAANaWR4TmFtZVNob3ZlbAAAAA5pZHhOYW1lUGlja2F4ZQABAAtjb250ZW50S2V5egkAzAgCAg9jb250ZW50UGlja2F4ZUMJAMwIAgIPY29udGVudFBpY2theGVVCQDMCAICD2NvbnRlbnRQaWNrYXhlTAkAzAgCAg9jb250ZW50UGlja2F4ZUUJAMwIAgIOY29udGVudFNob3ZlbFAFA25pbAAHaWR4S2V5QwAAAAdpZHhLZXlQAAQAC3Jhcml0eU5hbWVzCQDMCAICBkNvbW1vbgkAzAgCAghVbmNvbW1vbgkAzAgCAglMZWdlbmRhcnkJAMwIAgIERXBpYwkAzAgCAgVQcm9tbwUDbmlsAAppZHhSYXJpdHlDAAAACmlkeFJhcml0eVUAAQAKaWR4UmFyaXR5TAACAAppZHhSYXJpdHlFAAMACmlkeFJhcml0eVAABAALY29sbGVjdGlvbnoJAMwIAgINRGlnZ2luZyB0b29scwUDbmlsAAppZHhDb2xsRGlnAAAACmJvbnVzVHlwZXoJAMwIAgIJRmFybVBvd2VyBQNuaWwADmlkeEJvbnVzVHlwZUZwAAABBnByb2xvZwEBaQMDCQECIT0CCAUBaQxvcmlnaW5DYWxsZXIFDXJlc3QyQ29udHJhY3QJAQt2YWx1ZU9yRWxzZQIJAKAIAQkBCmtleUJsb2NrZWQABwcJAAIBAh9Db250cmFjdHMgYXJlIHVuZGVyIG1haW50ZW5hbmNlBARhZGRyCQClCAEIBQFpDG9yaWdpbkNhbGxlcgQEd2VlawkAaQIFBmhlaWdodAULV0VFS19CTE9DS1MEC2xhc3RXZWVrS2V5CQEVa2V5TGFzdFdlZWtUeElkQnlVc2VyAQUEYWRkcgQSbGFzdFdlZWtUeElkQnlVc2VyCQCiCAEFC2xhc3RXZWVrS2V5BAR0eElkCQDYBAEIBQFpDXRyYW5zYWN0aW9uSWQEA3d0eAkArAICCQCsAgIJAKQDAQUEd2VlawIBXwUEdHhJZAQKY3VyV2Vla0tleQkBFGtleUN1cldlZWtUeElkQnlVc2VyAQUEYWRkcgMJAQlpc0RlZmluZWQBBRJsYXN0V2Vla1R4SWRCeVVzZXIECmxhc3RXZWVrVHgJALUJAgkBBXZhbHVlAQUSbGFzdFdlZWtUeElkQnlVc2VyAgFfAwkAAAIJAJEDAgUKbGFzdFdlZWtUeAAACQCkAwEFBHdlZWsJAMwIAgkBC1N0cmluZ0VudHJ5AgULbGFzdFdlZWtLZXkFA3d0eAkAzAgCCQELU3RyaW5nRW50cnkCBQpjdXJXZWVrS2V5BQN3dHgFA25pbAMJAAACCQCRAwIFCmxhc3RXZWVrVHgAAAkApAMBCQBlAgUEd2VlawABCQDMCAIJAQtTdHJpbmdFbnRyeQIFCmN1cldlZWtLZXkFA3d0eAUDbmlsBBFjdXJXZWVrVHhJZEJ5VXNlcgkBEUBleHRyTmF0aXZlKDEwNTgpAQUKY3VyV2Vla0tleQQJY3VyV2Vla1R4CQC1CQIFEWN1cldlZWtUeElkQnlVc2VyAgFfAwkAAAIJAJEDAgUJY3VyV2Vla1R4AAAJAKQDAQUEd2VlawkAzAgCCQELU3RyaW5nRW50cnkCBQpjdXJXZWVrS2V5BQN3dHgFA25pbAkAzAgCCQELU3RyaW5nRW50cnkCBQtsYXN0V2Vla0tleQURY3VyV2Vla1R4SWRCeVVzZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgUKY3VyV2Vla0tleQUDd3R4BQNuaWwJAMwIAgkBC1N0cmluZ0VudHJ5AgULbGFzdFdlZWtLZXkFA3d0eAkAzAgCCQELU3RyaW5nRW50cnkCBQpjdXJXZWVrS2V5BQN3dHgFA25pbAEUY3JlYXRlTmZ0RGVzY3JDdXN0b20IB2NvbnRLZXkJbmZ0U2VyaWFsCmNvbGxlY3Rpb24EbmFtZQVkZXNjcgZyYXJpdHkFYm9udXMJYm9udXNUeXBlCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAiJ7InVybCI6ICJodHRwczovL3dhdmVzbGFuZHMuY29tIiwgAg8iY29udGVudEtleSI6ICIFB2NvbnRLZXkCAyIsIAIKIm51bWJlciI6IAkApAMBBQluZnRTZXJpYWwCAiwgAg8iY29sbGVjdGlvbiI6ICIFCmNvbGxlY3Rpb24CAyIsIAIJIm5hbWUiOiAiBQRuYW1lAgMiLCACECJkZXNjcmlwdGlvbiI6ICIFBWRlc2NyAgMiLCACCSJyYXJlIjogIgUGcmFyaXR5AgMiLCACCSJib251cyI6IAkApAMBBQVib251cwICLCACDiJib251c1R5cGUiOiAiBQlib251c1R5cGUCAiJ9AQ5pc3N1ZU5mdEN1c3RvbQgHbmFtZUlkeApjb250S2V5SWR4B2NvbGxJZHgJcmFyaXR5SWR4CWJvbnVzUGVyYwhkZXNjcklkeAxib251c1R5cGVJZHgEYWRkcgQJbmZ0U2VyaWFsCQELdmFsdWVPckVsc2UCCQCfCAEFEWtleU5mdFRvdGFsSXNzdWVkAAAEBnJhcml0eQkAkQMCBQtyYXJpdHlOYW1lcwUJcmFyaXR5SWR4BARuYW1lCQCsAgIJAKwCAgkArAICCQCRAwIFBW5hbWV6BQduYW1lSWR4AgEtCQCvAgIFBnJhcml0eQABCQCkAwEFCWJvbnVzUGVyYwQFaXNzdWUJAMIIBQUEbmFtZQkBFGNyZWF0ZU5mdERlc2NyQ3VzdG9tCAkAkQMCBQtjb250ZW50S2V5egUKY29udEtleUlkeAUJbmZ0U2VyaWFsCQCRAwIFC2NvbGxlY3Rpb256BQdjb2xsSWR4CQCRAwIFBW5hbWVzBQduYW1lSWR4CQCRAwIFDGRlc2NyaXB0aW9ucwUIZGVzY3JJZHgJAJEDAgULcmFyaXR5TmFtZXMFCXJhcml0eUlkeAUJYm9udXNQZXJjCQCRAwIFCmJvbnVzVHlwZXoFDGJvbnVzVHlwZUlkeAABAAAHBApuZnRBc3NldElkCQC4CAEFBWlzc3VlCQCUCgIJAMwIAgUFaXNzdWUJAMwIAgkBDEludGVnZXJFbnRyeQIFEWtleU5mdFRvdGFsSXNzdWVkCQBkAgUJbmZ0U2VyaWFsAAEJAMwIAgkBDEludGVnZXJFbnRyeQIJARVrZXlOZnROdW1iZXJCeUFzc2V0SWQBCQDYBAEFCm5mdEFzc2V0SWQFCW5mdFNlcmlhbAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQRhZGRyAAEFCm5mdEFzc2V0SWQFA25pbAUKbmZ0QXNzZXRJZAESYm9udXNCeURlc2NyaXB0aW9uAQVkZXNjcgMJAQEhAQkBCGNvbnRhaW5zAgUFZGVzY3ICGCJib251c1R5cGUiOiAiRmFybVBvd2VyIgkAAgEJAKwCAgIWTkZUIGlzIG5vdCBzdXBwb3J0ZWQ6IAUFZGVzY3IECGJvbnVzU3RyCQCRAwIJALwJAgkAkQMCCQC8CQIFBWRlc2NyAggiYm9udXMiOgABAgEsAAAJAQ1wYXJzZUludFZhbHVlAQkAsAICBQhib251c1N0cgkAZAIJAQt2YWx1ZU9yRWxzZQIJALcJAgUIYm9udXNTdHICASAA////////////AQABARZyYXJpdHlJZHhCeURlc2NyaXByaW9uAQVkZXNjcgMJAQEhAQkBCGNvbnRhaW5zAgUFZGVzY3ICBiJyYXJlIgkAAgEJAKwCAgIWTkZUIGlzIG5vdCBzdXBwb3J0ZWQ6IAUFZGVzY3IECXJhcml0eVN0cgkAkQMCCQC8CQIJAJEDAgkAvAkCCQCRAwIJALwJAgUFZGVzY3ICBiJyYXJlIgABAgEsAAACASIAAQkBBXZhbHVlAQkAzwgCBQtyYXJpdHlOYW1lcwUJcmFyaXR5U3RyARlzdGFrZVVuc3Rha2VBY3Jlc0ludGVybmFsAwNhbXQHYWRkcmVzcwpib251c0RlbHRhAwMJAAACBQNhbXQAAAkAAAIFCmJvbnVzRGVsdGEAAAcJAAIBAg1Ob3RoaW5nIHRvIGRvBAl3bGdSZXN1bHQJAPwHBAULd2xnQ29udHJhY3QCEm9uU3Rha2VVbnN0YWtlTGFuZAkAzAgCBQdhZGRyZXNzBQNuaWwFA25pbAMJAAACBQl3bGdSZXN1bHQFCXdsZ1Jlc3VsdAQDbm93CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAQHdGltZUtleQkBGGtleUFjcmVzU3Rha2VkVGltZUJ5VXNlcgEFB2FkZHJlc3MECWFtb3VudEtleQkBF2tleUFjcmVzU3Rha2VkQW10QnlVc2VyAQUHYWRkcmVzcwQOb2xkQWNyZXNBbW91bnQJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUJYW1vdW50S2V5AAADAwkAZgIAAAUDYW10CQBmAgAACQBkAgUOb2xkQWNyZXNBbW91bnQFA2FtdAcJAAIBCQCsAgIJAKwCAgkArAICAg5Zb3UgaGF2ZSBvbmx5IAkBCmZpeGVkUG9pbnQCBQ5vbGRBY3Jlc0Ftb3VudAAIAiAgQUNSRVMgc3Rha2VkLCB0cmllZCB0byB1bnN0YWtlIAkBCmZpeGVkUG9pbnQCCQEBLQEFA2FtdAAIBA5uZXdBY3Jlc0Ftb3VudAkAZAIFDm9sZEFjcmVzQW1vdW50BQNhbXQECG9sZFRvdGFsCQELdmFsdWVPckVsc2UCCQCfCAEFEmFjcmVzU3Rha2RUb3RhbEtleQAABAl1c2VyRnBLZXkJARVrZXlGYXJtaW5nUG93ZXJCeVVzZXIBBQdhZGRyZXNzBAVvbGRGcAkBC3ZhbHVlT3JFbHNlAgkAnwgBBQl1c2VyRnBLZXkAAAQIYm9udXNLZXkJARBrZXlVc2VyRnVsbEJvbnVzAQUHYWRkcmVzcwQIb2xkQm9udXMJAQt2YWx1ZU9yRWxzZQIJAJoIAgUOYWNyZXMyQ29udHJhY3QFCGJvbnVzS2V5AAADAwkAZgIAAAUKYm9udXNEZWx0YQkAZgIAAAkAZAIFCG9sZEJvbnVzBQpib251c0RlbHRhBwkAAgEJAKwCAgkArAICCQCsAgIJAKwCAgIOWW91IGhhdmUgb25seSAJAQpmaXhlZFBvaW50AgUIb2xkQm9udXMABAIeJSBib251cywgYW5kIHRyaWVkIHRvIHVuc3Rha2UgCQEKZml4ZWRQb2ludAIJAQEtAQUKYm9udXNEZWx0YQAEAgElBAskdDA2Mjk5NjM5OAkBHmdldEZhcm1pbmdQb3dlckJ5QWNyZXNBbmRCb251cwIFDm5ld0FjcmVzQW1vdW50CQBkAgUIb2xkQm9udXMFCmJvbnVzRGVsdGEEDG5ld0JvbnVzZWRGcAgFCyR0MDYyOTk2Mzk4Al8xBAdpZ25vcmVkCAULJHQwNjI5OTYzOTgCXzIECm9sZFRvdGFsRnAJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUUdG90YWxGYXJtaW5nUG93ZXJLZXkAAAQMYWNyZXNBY3Rpb25zAwkAAAIFA2FtdAAABQNuaWwJAMwIAgkBDEludGVnZXJFbnRyeQIFCWFtb3VudEtleQUObmV3QWNyZXNBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIFEmFjcmVzU3Rha2RUb3RhbEtleQkAZAIFCG9sZFRvdGFsBQNhbXQFA25pbAQMYm9udXNBY3Rpb25zAwkAAAIFCmJvbnVzRGVsdGEAAAUDbmlsCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQhib251c0tleQkAZAIFCG9sZEJvbnVzBQpib251c0RlbHRhBQNuaWwJAJQKAgkAzQgCCQDNCAIJAM0IAgkAzggCBQxhY3Jlc0FjdGlvbnMFDGJvbnVzQWN0aW9ucwkBDEludGVnZXJFbnRyeQIFB3RpbWVLZXkIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQEMSW50ZWdlckVudHJ5AgUJdXNlckZwS2V5BQxuZXdCb251c2VkRnAJAQxJbnRlZ2VyRW50cnkCBRR0b3RhbEZhcm1pbmdQb3dlcktleQkAZQIJAGQCBQpvbGRUb3RhbEZwBQxuZXdCb251c2VkRnAFBW9sZEZwBQl3bGdSZXN1bHQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BC2dldFdsZ1ByaWNlARV1c2R0QmFsYW5jZUNvcnJlY3Rpb24EDGlzc3VlZEFtb3VudAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFC3dsZ0NvbnRyYWN0BQ93bGdJc3N1ZWRBbXRLZXkCGFdMR09MRCBpcyBub3QgaXNzdWVkIHlldAQGd2xnVXNkCQDwBwIFC3dsZ0NvbnRyYWN0BQt1c2R0QXNzZXRJZAQJYWNyZXMyVXNkCQBlAgkA8AcCBQ5hY3JlczJDb250cmFjdAULdXNkdEFzc2V0SWQFFXVzZHRCYWxhbmNlQ29ycmVjdGlvbgQPaW52ZXN0RnVuZFRvdGFsCQBkAgkA8AcCBRJpbnZlc3RGdW5kQ29udHJhY3QFC3VzZHRBc3NldElkCQELdmFsdWVPckVsc2UCCQCaCAIFEmludmVzdEZ1bmRDb250cmFjdAUOemJJc3N1ZWRBbXRLZXkAAAQNdG90YWxGdW5kc1VzZAkAZAIJAGQCBQlhY3JlczJVc2QFBndsZ1VzZAUPaW52ZXN0RnVuZFRvdGFsCQBrAwUNdG90YWxGdW5kc1VzZAUFTVVMVDgFDGlzc3VlZEFtb3VudAERZ2V0U3dhcExpbWl0QWNyZXMABAZ3bGdVc2QJAPAHAgULd2xnQ29udHJhY3QFC3VzZHRBc3NldElkBAlhY3JlczJVc2QJAPAHAgUEdGhpcwULdXNkdEFzc2V0SWQED2ludmVzdEZ1bmRUb3RhbAkAZAIJAPAHAgUSaW52ZXN0RnVuZENvbnRyYWN0BQt1c2R0QXNzZXRJZAkBC3ZhbHVlT3JFbHNlAgkAmggCBRJpbnZlc3RGdW5kQ29udHJhY3QFDnpiSXNzdWVkQW10S2V5AAAEDGRlZmF1bHRMaW1pdAkAaQIJAGQCCQBkAgUJYWNyZXMyVXNkBQZ3bGdVc2QFD2ludmVzdEZ1bmRUb3RhbAUTT05FX1BFUkNFTlRfRElWSVNPUgQNbGFzdExpbWl0TGVmdAkBC3ZhbHVlT3JFbHNlAgkAnwgBBRBrZXlMYXN0TGltaXRMZWZ0BQxkZWZhdWx0TGltaXQECGxhc3RUaW1lCQELdmFsdWVPckVsc2UCCQCfCAEFFGtleUxhc3RBY3Jlc1NlbGxUaW1lAAAEA25vdwgFCWxhc3RCbG9jawl0aW1lc3RhbXAEDGN1cnJlbnRMaW1pdAkAZAIFDWxhc3RMaW1pdExlZnQJAGsDBQxkZWZhdWx0TGltaXQJAGUCBQNub3cFCGxhc3RUaW1lBQpEQVlfTUlMTElTBA1saW1pdExlZnRVc2R0CQCXAwEJAMwIAgUMY3VycmVudExpbWl0CQDMCAIFDGRlZmF1bHRMaW1pdAUDbmlsCQCUCgIJAQxJbnRlZ2VyRW50cnkCBRRrZXlMYXN0QWNyZXNTZWxsVGltZQUDbm93BQ1saW1pdExlZnRVc2R0AAlhcmtPcmFjbGUJARFAZXh0ck5hdGl2ZSgxMDYyKQECIzNQSmdaNkFLMVdWQ3BkQ21FWnBlc0htYUt2clFEZFhHNW9nAAlpbmN1YmF0b3IJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUJYXJrT3JhY2xlAhdzdGF0aWNfaW5jdWJhdG9yQWRkcmVzcwIAAAdicmVlZGVyCQELdmFsdWVPckVsc2UCCQCdCAIFCWFya09yYWNsZQIVc3RhdGljX2JyZWVkZXJBZGRyZXNzAgAAD3R1cnRsZUluY3ViYXRvcgkBC3ZhbHVlT3JFbHNlAgkAnQgCBQlhcmtPcmFjbGUCHXN0YXRpY190dXJ0bGVJbmN1YmF0b3JBZGRyZXNzAgAADXR1cnRsZUJyZWVkZXIJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUJYXJrT3JhY2xlAhtzdGF0aWNfdHVydGxlQnJlZWRlckFkZHJlc3MCAAAPY2FuaW5lSW5jdWJhdG9yCQELdmFsdWVPckVsc2UCCQCdCAIFCWFya09yYWNsZQIdc3RhdGljX2NhbmluZUluY3ViYXRvckFkZHJlc3MCAAANY2FuaW5lQnJlZWRlcgkBC3ZhbHVlT3JFbHNlAgkAnQgCBQlhcmtPcmFjbGUCG3N0YXRpY19jYW5pbmVCcmVlZGVyQWRkcmVzcwIAAA9mZWxpbmVJbmN1YmF0b3IJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUJYXJrT3JhY2xlAh1zdGF0aWNfZmVsaW5lSW5jdWJhdG9yQWRkcmVzcwIAAA1mZWxpbmVCcmVlZGVyCQELdmFsdWVPckVsc2UCCQCdCAIFCWFya09yYWNsZQIbc3RhdGljX2ZlbGluZUJyZWVkZXJBZGRyZXNzAgAADW11dGFudEJyZWVkZXIJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUJYXJrT3JhY2xlAh1zdGF0aWNfbXV0YW50SW5jdWJhdG9yQWRkcmVzcwIAAQ9pc0Fya2ltYWxJc3N1ZWQBA25mbwQGaXNzdWVyCQClCAEIBQNuZm8GaXNzdWVyAwMDAwMDAwMDAwkAAAIFBWNoYWluAQFUCQAAAgUGaXNzdWVyBRVvbGRTdGFraW5nQ29udHJhY3RTdHIHBgkAAAIFBmlzc3VlcgUJaW5jdWJhdG9yBgkAAAIFBmlzc3VlcgUHYnJlZWRlcgYJAAACBQZpc3N1ZXIFD3R1cnRsZUluY3ViYXRvcgYJAAACBQZpc3N1ZXIFDXR1cnRsZUJyZWVkZXIGCQAAAgUGaXNzdWVyBQ9jYW5pbmVJbmN1YmF0b3IGCQAAAgUGaXNzdWVyBQ1jYW5pbmVCcmVlZGVyBgkAAAIFBmlzc3VlcgUPZmVsaW5lSW5jdWJhdG9yBgkAAAIFBmlzc3VlcgUNZmVsaW5lQnJlZWRlcggFA25mbwRuYW1lAwkAAAIFBmlzc3VlcgUNbXV0YW50QnJlZWRlcggFA25mbwtkZXNjcmlwdGlvbgIAARBzdGFrZU5mdEludGVybmFsBgRhZGRyCmFzc2V0SWRTdHIGYm9udXM2CnVzZXJOdW1LZXkLdG90YWxOdW1LZXkFbGltaXQECW5mdE51bWJlcgkBC3ZhbHVlT3JFbHNlAgkAnwgBBQp1c2VyTnVtS2V5AAADCQBnAgUJbmZ0TnVtYmVyBQVsaW1pdAkAAgEJAKwCAgkArAICAhJZb3UgY2FuIHN0YWtlIG1heCAJAKQDAQUFbGltaXQCDSBvZiBzdWNoIE5GVHMEDSR0MDEwNjc3MTA3NTMJARlzdGFrZVVuc3Rha2VBY3Jlc0ludGVybmFsAwAABQRhZGRyBQZib251czYEB2FjdGlvbnMIBQ0kdDAxMDY3NzEwNzUzAl8xBBB3bGdDbGFpbWVkQW1vdW50CAUNJHQwMTA2NzcxMDc1MwJfMgkAlAoCCQDNCAIJAM0IAgkAzQgCBQdhY3Rpb25zCQEMSW50ZWdlckVudHJ5AgUKdXNlck51bUtleQkAZAIFCW5mdE51bWJlcgABCQEMSW50ZWdlckVudHJ5AgULdG90YWxOdW1LZXkJAGQCCQELdmFsdWVPckVsc2UCCQCfCAEFC3RvdGFsTnVtS2V5AAAAAQkBDEludGVnZXJFbnRyeQIJAR5rZXlTdGFrZWRUaW1lQnlBc3NldElkQW5kT3duZXICBQphc3NldElkU3RyBQRhZGRyCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUQd2xnQ2xhaW1lZEFtb3VudAAOcHJvbW9OdW1Qcml6ZXMAAwAScHJvbW9Bd2FyZFBlclJvdW5kCQDMCAIAgOHrFwkAzAgCAMDw9QsJAMwIAgDA8PULBQNuaWwBDXN0YWtlQWNyZXNGb3IDB2FkZHJlc3MDYW10EHNob3VsZENsZWFuUHJvbW8EDSR0MDExMjI1MTEzMDEJARlzdGFrZVVuc3Rha2VBY3Jlc0ludGVybmFsAwUDYW10BQdhZGRyZXNzAAAEB2FjdGlvbnMIBQ0kdDAxMTIyNTExMzAxAl8xBBB3bGdDbGFpbWVkQW1vdW50CAUNJHQwMTEyMjUxMTMwMQJfMgQMcHJvbW9BY3Rpb25zAwMJAGcCBQZoZWlnaHQFF0RBSUxZX1BST01PX1NUQVJUX0JMT0NLCQBmAgUVREFJTFlfUFJPTU9fRU5EX0JMT0NLBQZoZWlnaHQHBA1wcm9tb0FjcmVzS2V5CQERa2V5VXNlclByb21vQWNyZXMBBQdhZGRyZXNzBApwcm9tb0FjcmVzCQBkAgMFEHNob3VsZENsZWFuUHJvbW8AAAkBC3ZhbHVlT3JFbHNlAgkAnwgBBQ1wcm9tb0FjcmVzS2V5AAAFA2FtdAQHdGlja2V0cwkAaQIFCnByb21vQWNyZXMFBU1VTFQ4BAp0aWNrZXRzS2V5CQETa2V5VXNlclByb21vVGlja2V0cwEFB2FkZHJlc3MEDGRlbHRhVGlja2V0cwkAZQIFB3RpY2tldHMJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUKdGlja2V0c0tleQAABAx0b3RhbFRpY2tldHMJAGQCCQELdmFsdWVPckVsc2UCCQCfCAEFFGtleVRvdGFsUHJvbW9UaWNrZXRzAAAFDGRlbHRhVGlja2V0cwMDBRBzaG91bGRDbGVhblByb21vBgkAZgIFDGRlbHRhVGlja2V0cwAABAhwcm9tb01hcAkBC3ZhbHVlT3JFbHNlAgkAoggBBQtrZXlQcm9tb01hcAIABAp1c2VyUmVjb3JkCQCsAgIJAKwCAgUHYWRkcmVzcwIBOgkBBHBhZEwCBQd0aWNrZXRzAAMEBm5ld01hcAMJAQhjb250YWlucwIFCHByb21vTWFwBQdhZGRyZXNzBAhtYXBQYXJ0cwkAvQkCBQhwcm9tb01hcAUHYWRkcmVzcwMJAAACCQCRAwIFCG1hcFBhcnRzAAACAAQBcgkAsAICCQCRAwIFCG1hcFBhcnRzAAEABAMJAAACBQFyAgADCQAAAgUHdGlja2V0cwAAAgAFCnVzZXJSZWNvcmQDCQAAAgUHdGlja2V0cwAACQCwAgIFAXIAAQkArAICBQp1c2VyUmVjb3JkBQFyBAFyCQCwAgIJAJEDAgUIbWFwUGFydHMAAQAEAwkAAAIFAXICAAMJAAACBQd0aWNrZXRzAAAJALMCAgkAkQMCBQhtYXBQYXJ0cwAAAAEJAKwCAgkAkQMCBQhtYXBQYXJ0cwAABQp1c2VyUmVjb3JkAwkAAAIFB3RpY2tldHMAAAkArAICCQCRAwIFCG1hcFBhcnRzAAAJALACAgUBcgABCQCsAgIJAKwCAgkAkQMCBQhtYXBQYXJ0cwAABQp1c2VyUmVjb3JkBQFyAwkAAAIFB3RpY2tldHMAAAUIcHJvbW9NYXADCQAAAgUIcHJvbW9NYXACAAUKdXNlclJlY29yZAkArAICCQCsAgIFCHByb21vTWFwAgFfBQp1c2VyUmVjb3JkCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ1wcm9tb0FjcmVzS2V5BQpwcm9tb0FjcmVzCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQp0aWNrZXRzS2V5BQd0aWNrZXRzCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRRrZXlUb3RhbFByb21vVGlja2V0cwUMdG90YWxUaWNrZXRzCQDMCAIJAQtTdHJpbmdFbnRyeQIFC2tleVByb21vTWFwBQZuZXdNYXAFA25pbAkAzAgCCQEMSW50ZWdlckVudHJ5AgUNcHJvbW9BY3Jlc0tleQUKcHJvbW9BY3JlcwUDbmlsBQNuaWwJAJQKAgkAzggCBQdhY3Rpb25zBQxwcm9tb0FjdGlvbnMFEHdsZ0NsYWltZWRBbW91bnQUAWkBCnNhdmVMYXN0VHgAAwkBASEBCQEPY29udGFpbnNFbGVtZW50AgkAzAgCBQt3bGdDb250cmFjdAkAzAgCBQ5tYXJrZXRDb250cmFjdAUDbmlsCAUBaQZjYWxsZXIJAAIBAg1BY2Nlc3MgZGVuaWVkCQCUCgIJAQZwcm9sb2cBBQFpACoBaQENY29uc3RydWN0b3JWMQIJcmVzdDJBZGRyDm9sZEFjckNvbnRyYWN0AwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIRUGVybWlzc2lvbiBkZW5pZWQEDm9sZEFjckNvbnRBZGRyCQERQGV4dHJOYXRpdmUoMTA2MikBBQ5vbGRBY3JDb250cmFjdAkAzAgCCQEMSW50ZWdlckVudHJ5AgUUYWNyZXNJc3N1ZWRBbW91bnRLZXkJARFAZXh0ck5hdGl2ZSgxMDUwKQIFDm9sZEFjckNvbnRBZGRyBRRhY3Jlc0lzc3VlZEFtb3VudEtleQkAzAgCCQELQmluYXJ5RW50cnkCBQ9hY3Jlc0Fzc2V0SWRLZXkJARFAZXh0ck5hdGl2ZSgxMDUyKQIFDm9sZEFjckNvbnRBZGRyBQ9hY3Jlc0Fzc2V0SWRLZXkJAMwIAgkBC1N0cmluZ0VudHJ5AgkBD2tleVJlc3QyQWRkcmVzcwAFCXJlc3QyQWRkcgkAzAgCCQELU3RyaW5nRW50cnkCBRNvbGRBY3Jlc0NvbnRyYWN0S2V5BQ5vbGRBY3JDb250cmFjdAUDbmlsAWkBCnNldEJsb2NrZWQBCWlzQmxvY2tlZAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECEXBlcm1pc3Npb24gZGVuaWVkCQDMCAIJAQxCb29sZWFuRW50cnkCCQEKa2V5QmxvY2tlZAAFCWlzQmxvY2tlZAUDbmlsAWkBDHVuc3Rha2VBY3JlcwEGYW1vdW50BA1wcm9sb2dBY3Rpb25zCQEGcHJvbG9nAQUBaQMDCQBnAgUGaGVpZ2h0BRdEQUlMWV9QUk9NT19TVEFSVF9CTE9DSwkAZgIFFURBSUxZX1BST01PX0VORF9CTE9DSwUGaGVpZ2h0BwkAAgECKllvdSBjYW4ndCB1bnN0YWtlIGR1cmluZyBYbWFzIHByb21vIHBlcmlvZAMJAGcCAAAFBmFtb3VudAkAAgECGUFtb3VudCBzaG91bGQgYmUgcG9zaXRpdmUEB2FkZHJlc3MJAKUIAQgFAWkGY2FsbGVyAwkBAiE9AgkAkAMBCAUBaQhwYXltZW50cwAACQACAQIUTm8gcGF5bWVudHMgcmVxdWlyZWQEDmFyYlJlbGVhc2VUaW1lCQBkAgkBC3ZhbHVlT3JFbHNlAgkAmggCBQt3bGdDb250cmFjdAkBGWtleUxhc3RXbGdUcmFkZVRpbWVCeVVzZXIBBQdhZGRyZXNzAAAFDmFyYml0cmFnZURlbGF5AwkAZgIFDmFyYlJlbGVhc2VUaW1lCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAAgEJAKwCAgItWW91IHRyYWRlZCBzb21lIFdMR09MRCwgY2Fubm90IHVuc3Rha2UgdW50aWwgCQCkAwEFDmFyYlJlbGVhc2VUaW1lBA0kdDAxNTMwNDE1Mzg0CQEZc3Rha2VVbnN0YWtlQWNyZXNJbnRlcm5hbAMJAQEtAQUGYW1vdW50BQdhZGRyZXNzAAAEB2FjdGlvbnMIBQ0kdDAxNTMwNDE1Mzg0Al8xBBB3bGdDbGFpbWVkQW1vdW50CAUNJHQwMTUzMDQxNTM4NAJfMgkAlAoCCQDOCAIJAM0IAgUHYWN0aW9ucwkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQZhbW91bnQFDGFjcmVzQXNzZXRJZAUNcHJvbG9nQWN0aW9ucwUQd2xnQ2xhaW1lZEFtb3VudAFpAQpzdGFrZUFjcmVzAAQNcHJvbG9nQWN0aW9ucwkBBnByb2xvZwEFAWkEB2FkZHJlc3MJAKUIAQgFAWkGY2FsbGVyAwkBAiE9AgkAkAMBCAUBaQhwYXltZW50cwABCQACAQIiZXhhY3RseSAxIHBheW1lbnQgbXVzdCBiZSBhdHRhY2hlZAQDcG10CQCRAwIIBQFpCHBheW1lbnRzAAAEA2FtdAgFA3BtdAZhbW91bnQDAwkBASEBCQEJaXNEZWZpbmVkAQgFA3BtdAdhc3NldElkBgkBAiE9AgkBBXZhbHVlAQgFA3BtdAdhc3NldElkBQxhY3Jlc0Fzc2V0SWQJAAIBAhRBQ1JFUyBwYXltZW50cyBvbmx5IQQNJHQwMTU4MzUxNTkwOAkBDXN0YWtlQWNyZXNGb3IDBQdhZGRyZXNzBQNhbXQHBAxzdGFrZUFjdGlvbnMIBQ0kdDAxNTgzNTE1OTA4Al8xBBB3bGdDbGFpbWVkQW1vdW50CAUNJHQwMTU4MzUxNTkwOAJfMgkAlAoCCQDOCAIFDHN0YWtlQWN0aW9ucwUNcHJvbG9nQWN0aW9ucwUQd2xnQ2xhaW1lZEFtb3VudAFpAQhidXlBY3JlcwAEDXByb2xvZ0FjdGlvbnMJAQZwcm9sb2cBBQFpAwkBAiE9AgkAkAMBCAUBaQhwYXltZW50cwABCQACAQIiZXhhY3RseSAxIHBheW1lbnQgbXVzdCBiZSBhdHRhY2hlZAQDcG10CQCRAwIIBQFpCHBheW1lbnRzAAAECnVzZHRBbW91bnQIBQNwbXQGYW1vdW50AwMJAQEhAQkBCWlzRGVmaW5lZAEIBQNwbXQHYXNzZXRJZAYJAQIhPQIJAQV2YWx1ZQEIBQNwbXQHYXNzZXRJZAULdXNkdEFzc2V0SWQJAAIBAhNVU0RUIHBheW1lbnRzIG9ubHkhAwkAZgIFBU1VTFQ2BQp1c2R0QW1vdW50CQACAQkArAICCQCsAgICFk1pbiBwYXltZW50IHNob3VsZCBiZSAJAQpmaXhlZFBvaW50AgUFTVVMVDYABgIFIFVTRFQEC2FjcmVzQW1vdW50CQBoAgUKdXNkdEFtb3VudAUVVVNEVDJBQ1JFU19NVUxUSVBMSUVSBAl3bGdBbW91bnQJAGsDBQp1c2R0QW1vdW50BQVNVUxUOAkBC2dldFdsZ1ByaWNlAQUKdXNkdEFtb3VudAQPb2xkQWNyZXNBZGRyZXNzCQERQGV4dHJOYXRpdmUoMTA2MikBCQERQGV4dHJOYXRpdmUoMTA1OCkBBRNvbGRBY3Jlc0NvbnRyYWN0S2V5BANyZXEJAPwHBAUPb2xkQWNyZXNBZGRyZXNzAhRyZXF1ZXN0QWNyZXNDYWxsYmFjawkAzAgCBQthY3Jlc0Ftb3VudAUDbmlsBQNuaWwDCQAAAgUDcmVxBQNyZXEECXdsZ1JlbWFpbgkBBWFzSW50AQkA/AcEBQt3bGdDb250cmFjdAIKYnVybldsZ29sZAkAzAgCBQl3bGdBbW91bnQFA25pbAUDbmlsCQCUCgIJAM4IAgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFC2FjcmVzQW1vdW50BQxhY3Jlc0Fzc2V0SWQFA25pbAUNcHJvbG9nQWN0aW9ucwUJd2xnUmVtYWluCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBEGJ1eUFjcmVzUkVBRE9OTFkBCnVzZHRBbW91bnQEC2FjcmVzQW1vdW50CQBoAgUKdXNkdEFtb3VudAUVVVNEVDJBQ1JFU19NVUxUSVBMSUVSBAl3bGdUb0J1cm4JAGsDBQp1c2R0QW1vdW50BQVNVUxUOAkBC2dldFdsZ1ByaWNlAQUKdXNkdEFtb3VudAkAlAoCBQNuaWwJAMwIAgULYWNyZXNBbW91bnQJAMwIAgUFTVVMVDYJAMwIAgULYWNyZXNBbW91bnQJAMwIAgUJd2xnVG9CdXJuBQNuaWwBaQEJc2VsbEFjcmVzAAQNcHJvbG9nQWN0aW9ucwkBBnByb2xvZwEFAWkDCQECIT0CCQCQAwEIBQFpCHBheW1lbnRzAAEJAAIBAiJleGFjdGx5IDEgcGF5bWVudCBtdXN0IGJlIGF0dGFjaGVkBANwbXQJAJEDAggFAWkIcGF5bWVudHMAAAQLYWNyZXNBbW91bnQIBQNwbXQGYW1vdW50AwMJAQEhAQkBCWlzRGVmaW5lZAEIBQNwbXQHYXNzZXRJZAYJAQIhPQIJAQV2YWx1ZQEIBQNwbXQHYXNzZXRJZAUMYWNyZXNBc3NldElkCQACAQIUQUNSRVMgcGF5bWVudHMgb25seSEDCQBmAgUFTVVMVDcFC2FjcmVzQW1vdW50CQACAQkArAICCQCsAgICFk1pbiBwYXltZW50IHNob3VsZCBiZSAJAQpmaXhlZFBvaW50AgUFTVVMVDcACAIGIEFDUkVTBARhZGRyCQClCAEIBQFpBmNhbGxlcgQNJHQwMTc3NzAxNzgxOAkBEWdldFN3YXBMaW1pdEFjcmVzAAQLbGltaXRBY3Rpb24IBQ0kdDAxNzc3MDE3ODE4Al8xBAdtYXhVc2R0CAUNJHQwMTc3NzAxNzgxOAJfMgQIbWF4QWNyZXMJAGgCBQdtYXhVc2R0BRVVU0RUMkFDUkVTX01VTFRJUExJRVIDCQBmAgULYWNyZXNBbW91bnQFCG1heEFjcmVzCQACAQkArAICCQCsAgICEVlvdSBjYW4gc2VsbCBtYXggCQEKZml4ZWRQb2ludAIFCG1heEFjcmVzAAgCBiBBQ1JFUwQKdXNkdEFtb3VudAkAaQIJAGkCBQthY3Jlc0Ftb3VudAUVVVNEVDJBQ1JFU19NVUxUSVBMSUVSAAIJAJQKAgkAzggCCQDMCAIFC2xpbWl0QWN0aW9uCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRBrZXlMYXN0TGltaXRMZWZ0CQBlAgUHbWF4VXNkdAUKdXNkdEFtb3VudAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFCnVzZHRBbW91bnQFC3VzZHRBc3NldElkBQNuaWwFDXByb2xvZ0FjdGlvbnMFCnVzZHRBbW91bnQBaQERc2VsbEFjcmVzUkVBRE9OTFkCB2FkZHJlc3MLYWNyZXNBbW91bnQEDSR0MDE4MzE0MTgzNjIJARFnZXRTd2FwTGltaXRBY3JlcwAEC2xpbWl0QWN0aW9uCAUNJHQwMTgzMTQxODM2MgJfMQQHbWF4VXNkdAgFDSR0MDE4MzE0MTgzNjICXzIECnVzZHRBbW91bnQJAGkCCQBpAgULYWNyZXNBbW91bnQFFVVTRFQyQUNSRVNfTVVMVElQTElFUgACCQCUCgIFA25pbAkAzAgCBQp1c2R0QW1vdW50CQDMCAIFBU1VTFQ3CQDMCAIJAGgCBQdtYXhVc2R0BRVVU0RUMkFDUkVTX01VTFRJUExJRVIJAMwIAgAABQNuaWwBaQEQY29udmVydE9sZFN0YWtlcwAEDXByb2xvZ0FjdGlvbnMJAQZwcm9sb2cBBQFpAwkAZgIFEU9MRF9TVEFLSU5HX0RFQURMCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAAgEJAKwCAgIPRGlzYWJsZWQgdW50aWwgCQCkAwEJAGkCBRFPTERfU1RBS0lOR19ERUFETADoBwQHYWRkcmVzcwkApQgBCAUBaQZjYWxsZXIDCQECIT0CCQCQAwEIBQFpCHBheW1lbnRzAAAJAAIBAhRObyBwYXltZW50cyByZXF1aXJlZAQPb2xkQWNyZXNBZGRyZXNzCQERQGV4dHJOYXRpdmUoMTA2MikBCQERQGV4dHJOYXRpdmUoMTA1OCkBBRNvbGRBY3Jlc0NvbnRyYWN0S2V5BAZhbW91bnQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUPb2xkQWNyZXNBZGRyZXNzCQEXa2V5QWNyZXNTdGFrZWRBbXRCeVVzZXIBBQdhZGRyZXNzAAAECWdvdEFjcmVzMAMJAGYCBQZhbW91bnQAAAkBDGFzVHVwbGUySW50cwEJAPwHBAUPb2xkQWNyZXNBZGRyZXNzAhR1bnN0YWtlQWNyZXNDYWxsYmFjawkAzAgCBQZhbW91bnQJAMwIAgUHYWRkcmVzcwUDbmlsBQNuaWwJAJQKAgAAAAAEEW9sZFN0YWtpbmdBZGRyZXNzCQERQGV4dHJOYXRpdmUoMTA2MikBBRVvbGRTdGFraW5nQ29udHJhY3RTdHIECGxhbmRzU3RyCQCdCAIFEW9sZFN0YWtpbmdBZGRyZXNzCQEVa2V5U3Rha2VkTGFuZHNCeU93bmVyAQUHYWRkcmVzcwQLbGFuZHNSZXN1bHQDCQEJaXNEZWZpbmVkAQUIbGFuZHNTdHIEBWxhbmRzCQC9CQIJAQV2YWx1ZQEFCGxhbmRzU3RyAgFfAwkAZgIJAJADAQUFbGFuZHMFFE1BWF9MQU5EU19UT19DT05WRVJUCQACAQkArAICCQCsAgICE1lvdSBoYXZlIG1vcmUgdGhhbiAJAKQDAQUUTUFYX0xBTkRTX1RPX0NPTlZFUlQCRyBsYW5kcyBzdGFrZWQsIHBsZWFzZSBjb250YWN0IHN1cHBvcnQsIHdlJ2xsIHByb2Nlc3MgeW91ciBjYXNlIG1hbnVhbGx5CgEHb25lTGFuZAIDYWNjC2xhbmRBc3NldElkAwkAAAIFC2xhbmRBc3NldElkAgAJAAIBAhdsYW5kQXNzZXRJZCBpcyByZXF1aXJlZAQBcgkBDGFzVHVwbGU1SW50cwEJAPwHBAURb2xkU3Rha2luZ0FkZHJlc3MCE3Vuc3Rha2VMYW5kQ2FsbGJhY2sJAMwIAgULbGFuZEFzc2V0SWQJAMwIAgUHYWRkcmVzcwUDbmlsBQNuaWwDCQAAAgUBcgUBcgkAlwoFCQBkAggFA2FjYwJfMQgFAXICXzEJAGQCCAUDYWNjAl8yCAUBcgJfMgkAZAIIBQNhY2MCXzMIBQFyAl8zCQBkAggFA2FjYwJfNAgFAXICXzQJAGQCCAUDYWNjAl81CAUBcgJfNQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgQCcnIKAAIkbAUFbGFuZHMKAAIkcwkAkAMBBQIkbAoABSRhY2MwCQCXCgUAAAAAAAAAAAAACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQdvbmVMYW5kAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxNAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4DCQAAAgUCcnIFAnJyBAhmaW5hbGl6ZQkA/AcEBRFvbGRTdGFraW5nQWRkcmVzcwIcdW5zdGFrZUxhbmRzRmluYWxpemVDYWxsYmFjawkAzAgCBQdhZGRyZXNzBQNuaWwFA25pbAMJAAACBQhmaW5hbGl6ZQUIZmluYWxpemUEA3JlcQkA/AcEBQ9vbGRBY3Jlc0FkZHJlc3MCFHJlcXVlc3RBY3Jlc0NhbGxiYWNrCQDMCAIJAGQCCQBkAgkAZAIIBQJycgJfMQgFAnJyAl8yCAUCcnICXzMIBQJycgJfNAUDbmlsBQNuaWwDCQAAAgUDcmVxBQNyZXEEDSR0MDIwODc2MjEwMTQJAQ5pc3N1ZU5mdEN1c3RvbQgFDWlkeE5hbWVTaG92ZWwFB2lkeEtleVAFCmlkeENvbGxEaWcFCmlkeFJhcml0eVAAAwUOaWR4RGVzY3JTaG92ZWwFDmlkeEJvbnVzVHlwZUZwCAUBaQZjYWxsZXIECm5mdEFjdGlvbnMIBQ0kdDAyMDg3NjIxMDE0Al8xBApuZnRBc3NldElkCAUNJHQwMjA4NzYyMTAxNAJfMgkAmAoGCAUCcnICXzEIBQJycgJfMggFAnJyAl8zCAUCcnICXzQIBQJycgJfNQUKbmZ0QWN0aW9ucwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAmAoGAAAAAAAAAAAAAAUDbmlsBAtkdWNrQXNzZXRJZAkBC3ZhbHVlT3JFbHNlAgkAnQgCBRFvbGRTdGFraW5nQWRkcmVzcwkBFGtleVN0YWtlZER1Y2tCeU93bmVyAQUHYWRkcmVzcwIABApkdWNrUmVzdWx0AwkBAiE9AgULZHVja0Fzc2V0SWQCAAkBDGFzVHVwbGUzSW50cwEJAPwHBAURb2xkU3Rha2luZ0FkZHJlc3MCE3Vuc3Rha2VEdWNrQ2FsbGJhY2sJAMwIAgULZHVja0Fzc2V0SWQJAMwIAgUHYWRkcmVzcwUDbmlsBQNuaWwJAJUKAwAAAAAAAAQBeAkBGXN0YWtlVW5zdGFrZUFjcmVzSW50ZXJuYWwDCQBkAgkAZAIJAGQCCQBkAgkAZAIJAGQCCQBkAggFCWdvdEFjcmVzMAJfMQgFC2xhbmRzUmVzdWx0Al8xCAULbGFuZHNSZXN1bHQCXzIIBQtsYW5kc1Jlc3VsdAJfMwgFC2xhbmRzUmVzdWx0Al80CAUKZHVja1Jlc3VsdAJfMQgFCmR1Y2tSZXN1bHQCXzIIBQpkdWNrUmVzdWx0Al8zBQdhZGRyZXNzAAAJAJQKAgkAzggCCQDOCAIIBQtsYW5kc1Jlc3VsdAJfNggFAXgCXzEFDXByb2xvZ0FjdGlvbnMJAJUKAwgFCWdvdEFjcmVzMAJfMggFC2xhbmRzUmVzdWx0Al81CAUBeAJfMgFpARR1bnN0YWtlTGFuZHNSRUFET05MWQEHYWRkcmVzcwQRb2xkU3Rha2luZ0FkZHJlc3MJARFAZXh0ck5hdGl2ZSgxMDYyKQEFFW9sZFN0YWtpbmdDb250cmFjdFN0cgQIbGFuZHNTdHIJAJ0IAgURb2xkU3Rha2luZ0FkZHJlc3MJARVrZXlTdGFrZWRMYW5kc0J5T3duZXIBBQdhZGRyZXNzBAtsYW5kc1Jlc3VsdAMJAQlpc0RlZmluZWQBBQhsYW5kc1N0cgQFbGFuZHMJAL0JAgkBBXZhbHVlAQUIbGFuZHNTdHICAV8KAQdvbmVMYW5kAgNhY2MLbGFuZEFzc2V0SWQDCQAAAgULbGFuZEFzc2V0SWQCAAkAAgECF2xhbmRBc3NldElkIGlzIHJlcXVpcmVkBAFyCQEMYXNUdXBsZTRJbnRzAQkA/AcEBRFvbGRTdGFraW5nQWRkcmVzcwITdW5zdGFrZUxhbmRSRUFET05MWQkAzAgCBQtsYW5kQXNzZXRJZAkAzAgCBQdhZGRyZXNzBQNuaWwFA25pbAkAlgoECQBkAggFA2FjYwJfMQgFAXICXzEJAGQCCAUDYWNjAl8yCAUBcgJfMgkAZAIIBQNhY2MCXzMIBQFyAl8zCQBkAggFA2FjYwJfNAgFAXICXzQKAAIkbAUFbGFuZHMKAAIkcwkAkAMBBQIkbAoABSRhY2MwCQCWCgQAAAAAAAAAAAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEHb25lTGFuZAIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIVTGlzdCBzaXplIGV4Y2VlZHMgMTAwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIAIwAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzADQANQA2ADcAOAA5ADoAOwA8AD0APgA/AEAAQQBCAEMARABFAEYARwBIAEkASgBLAEwATQBOAE8AUABRAFIAUwBUAFUAVgBXAFgAWQBaAFsAXABdAF4AXwBgAGEAYgBjAGQJAJYKBAAAAAAAAAAACQCUCgIFA25pbAULbGFuZHNSZXN1bHQBaQESc3Rha2VBY3Jlc0NhbGxiYWNrAQRhZGRyAwkBAiE9AggFAWkGY2FsbGVyCQERQGV4dHJOYXRpdmUoMTA2MikBBRVvbGRTdGFraW5nQ29udHJhY3RTdHIJAAIBAhFQZXJtaXNzaW9uIGRlbmllZAkBGXN0YWtlVW5zdGFrZUFjcmVzSW50ZXJuYWwDCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAUEYWRkcgAAAWkBGnNpbXVsYXRlU3Rha2VBY3Jlc1JFQURPTkxZAgdhZGRyZXNzC2FkZGVkQW1vdW50BAlhbW91bnRLZXkJARdrZXlBY3Jlc1N0YWtlZEFtdEJ5VXNlcgEFB2FkZHJlc3MEDm5ld0FjcmVzQW1vdW50CQBkAgkBC3ZhbHVlT3JFbHNlAgkAnwgBBQlhbW91bnRLZXkAAAULYWRkZWRBbW91bnQECG9sZFRvdGFsCQELdmFsdWVPckVsc2UCCQCfCAEFEmFjcmVzU3Rha2RUb3RhbEtleQAABAl1c2VyRnBLZXkJARVrZXlGYXJtaW5nUG93ZXJCeVVzZXIBBQdhZGRyZXNzBAVvbGRGcAkBC3ZhbHVlT3JFbHNlAgkAnwgBBQl1c2VyRnBLZXkAAAQJdXNlckJvbnVzCQELdmFsdWVPckVsc2UCCQCaCAIFDmFjcmVzMkNvbnRyYWN0CQEQa2V5VXNlckZ1bGxCb251cwEFB2FkZHJlc3MAAAQNJHQwMjMyODUyMzM3MgkBHmdldEZhcm1pbmdQb3dlckJ5QWNyZXNBbmRCb251cwIFDm5ld0FjcmVzQW1vdW50BQl1c2VyQm9udXMEDG5ld0JvbnVzZWRGcAgFDSR0MDIzMjg1MjMzNzICXzEEB2lnbm9yZWQIBQ0kdDAyMzI4NTIzMzcyAl8yBApvbGRUb3RhbEZwCQELdmFsdWVPckVsc2UCCQCfCAEFFHRvdGFsRmFybWluZ1Bvd2VyS2V5AAAECm5ld1RvdGFsRnAJAGUCCQBkAgUKb2xkVG90YWxGcAUMbmV3Qm9udXNlZEZwBQVvbGRGcAkAlAoCBQNuaWwJAMwIAgUFb2xkRnAJAMwIAgUMbmV3Qm9udXNlZEZwCQDMCAIFCm9sZFRvdGFsRnAJAMwIAgUKbmV3VG90YWxGcAUDbmlsAWkBC2lzc3VlUGlja0MxAQpmb3JBZGRyZXNzAwkBAiE9AggFAWkGY2FsbGVyBQt3bGdDb250cmFjdAkAAgECEVBlcm1pc3Npb24gZGVuaWVkCQEOaXNzdWVOZnRDdXN0b20IBQ5pZHhOYW1lUGlja2F4ZQUHaWR4S2V5QwUKaWR4Q29sbERpZwUKaWR4UmFyaXR5QwABBQ9pZHhEZXNjclBpY2theGUFDmlkeEJvbnVzVHlwZUZwCQERQGV4dHJOYXRpdmUoMTA2MikBBQpmb3JBZGRyZXNzAWkBCHN0YWtlTkZUAAQNcHJvbG9nQWN0aW9ucwkBBnByb2xvZwEFAWkDCQECIT0CCQCQAwEIBQFpCHBheW1lbnRzAAEJAAIBAhxFeGFjdGx5IG9uZSBwYXltZW50IHJlcXVpcmVkBANwbXQJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAMJAQIhPQIIBQNwbXQGYW1vdW50AAEJAAIBAidORlQgdG9rZW4gc2hvdWxkIGJlIGF0dGFjaGVkIGFzIHBheW1lbnQEB2Fzc2V0SWQJAQV2YWx1ZQEIBQNwbXQHYXNzZXRJZAQFYXNzZXQJAQV2YWx1ZQEJAOwHAQUHYXNzZXRJZAQKYXNzZXRJZFN0cgkA2AQBBQdhc3NldElkBARhZGRyCQClCAEIBQFpBmNhbGxlcgQHbmZ0c0tleQkBFGtleVN0YWtlZE5GVHNCeU93bmVyAQUEYWRkcgQHbmZ0c1N0cgkAoggBBQduZnRzS2V5BARuZnRzAwkBCWlzRGVmaW5lZAEFB25mdHNTdHIJALwJAgkBBXZhbHVlAQUHbmZ0c1N0cgIBXwUDbmlsAwkBD2NvbnRhaW5zRWxlbWVudAIFBG5mdHMFCmFzc2V0SWRTdHIJAAIBCQCsAgICIVlvdXIgc3Rha2VkIE5GVHMgYWxyZWFkeSBjb250YWluIAUKYXNzZXRJZFN0cgMJAGcCCQCQAwEFBG5mdHMFF01BWF9ORlRTX1NUQUtFRF9CWV9VU0VSCQACAQkArAICCQCsAgICGVlvdXIgYWxyZWFkeSBzdGFrZWQgbWF4ICgJAKQDAQUXTUFYX05GVFNfU1RBS0VEX0JZX1VTRVICBikgTkZUcwQKbGlzdEFjdGlvbgkBC1N0cmluZ0VudHJ5AgUHbmZ0c0tleQkAugkCCQDNCAIFBG5mdHMFCmFzc2V0SWRTdHICAV8DCQAAAggFBWFzc2V0Bmlzc3VlcgUEdGhpcwQNJHQwMjQ3ODEyNDk3MQkBEHN0YWtlTmZ0SW50ZXJuYWwGBQRhZGRyBQphc3NldElkU3RyCQBoAgkBEmJvbnVzQnlEZXNjcmlwdGlvbgEJAQV2YWx1ZQEIBQVhc3NldAtkZXNjcmlwdGlvbgCQTgkBEmtleVVzZXJXbE5mdE51bWJlcgEFBGFkZHIFE2tleVdsTmZ0VG90YWxTdGFrZWQFC01BWF9XTF9ORlRTBAdhY3Rpb25zCAUNJHQwMjQ3ODEyNDk3MQJfMQQQd2xnQ2xhaW1lZEFtb3VudAgFDSR0MDI0NzgxMjQ5NzECXzIJAJQKAgkAzQgCCQDOCAIFDXByb2xvZ0FjdGlvbnMFB2FjdGlvbnMFCmxpc3RBY3Rpb24FEHdsZ0NsYWltZWRBbW91bnQDCQAAAgkBD2lzQXJraW1hbElzc3VlZAEFBWFzc2V0AgAJAAIBAjRPbmx5IFdhdmVzTGFuZHMgYW5kIEFya2ltYWxzIE5GVCB0b2tlbnMgYXJlIGFjY2VwdGVkBA0kdDAyNTE1MjI1MzAzCQEQc3Rha2VOZnRJbnRlcm5hbAYFBGFkZHIFCmFzc2V0SWRTdHIFDUFSS19ORlRfQk9OVVMJARNrZXlVc2VyQXJrTmZ0TnVtYmVyAQUEYWRkcgUUa2V5QXJrTmZ0VG90YWxTdGFrZWQFDE1BWF9BUktfTkZUUwQHYWN0aW9ucwgFDSR0MDI1MTUyMjUzMDMCXzEEEHdsZ0NsYWltZWRBbW91bnQIBQ0kdDAyNTE1MjI1MzAzAl8yCQCUCgIJAM0IAgkAzggCBQ1wcm9sb2dBY3Rpb25zBQdhY3Rpb25zBQpsaXN0QWN0aW9uBRB3bGdDbGFpbWVkQW1vdW50AWkBCnVuc3Rha2VORlQBCmFzc2V0SWRTdHIEDXByb2xvZ0FjdGlvbnMJAQZwcm9sb2cBBQFpAwkBAiE9AgkAkAMBCAUBaQhwYXltZW50cwAACQACAQIUTm8gcGF5bWVudHMgcmVxdWlyZWQEB2Fzc2V0SWQJANkEAQUKYXNzZXRJZFN0cgQEYWRkcgkApQgBCAUBaQZjYWxsZXIEBWFzc2V0CQEFdmFsdWUBCQDsBwEFB2Fzc2V0SWQEB3RpbWVLZXkJAR5rZXlTdGFrZWRUaW1lQnlBc3NldElkQW5kT3duZXICBQphc3NldElkU3RyBQRhZGRyAwkBASEBCQEJaXNEZWZpbmVkAQkAnwgBBQd0aW1lS2V5CQACAQkArAICCQCsAgICBE5GVCAIBQVhc3NldARuYW1lAhUgaXMgbm90IHN0YWtlZCBieSB5b3UEB25mdHNLZXkJARRrZXlTdGFrZWRORlRzQnlPd25lcgEFBGFkZHIEBG5mdHMJALwJAgkBC3ZhbHVlT3JFbHNlAgkAoggBBQduZnRzS2V5AgACAV8EA2lkeAkAzwgCBQRuZnRzBQphc3NldElkU3RyAwkBASEBCQEJaXNEZWZpbmVkAQUDaWR4CQACAQkArAICAh9Zb3VyIHN0YWtlZCBORlRzIGRvbid0IGNvbnRhaW4gBQphc3NldElkU3RyBApsaXN0QWN0aW9uAwkAZgIJAJADAQUEbmZ0cwABCQELU3RyaW5nRW50cnkCBQduZnRzS2V5CQC6CQIJANEIAgUEbmZ0cwkBBXZhbHVlAQUDaWR4AgFfCQELRGVsZXRlRW50cnkBBQduZnRzS2V5BARpc1dMCQAAAggFBWFzc2V0Bmlzc3VlcgUEdGhpcwMFBGlzV0wEC3dsTmZ0TnVtYmVyCQELdmFsdWVPckVsc2UCCQCfCAEJARJrZXlVc2VyV2xOZnROdW1iZXIBBQRhZGRyAAAECGJvbnVzVmFsCQBoAgkBEmJvbnVzQnlEZXNjcmlwdGlvbgEJAQV2YWx1ZQEIBQVhc3NldAtkZXNjcmlwdGlvbgCQTgQNJHQwMjY0NjgyNjU0NwkBGXN0YWtlVW5zdGFrZUFjcmVzSW50ZXJuYWwDAAAFBGFkZHIJAQEtAQUIYm9udXNWYWwEB2FjdGlvbnMIBQ0kdDAyNjQ2ODI2NTQ3Al8xBBB3bGdDbGFpbWVkQW1vdW50CAUNJHQwMjY0NjgyNjU0NwJfMgkAlAoCCQDOCAIJAM0IAgkAzQgCCQDNCAIJAM0IAgkAzQgCBQdhY3Rpb25zBQpsaXN0QWN0aW9uCQEMSW50ZWdlckVudHJ5AgkBEmtleVVzZXJXbE5mdE51bWJlcgEFBGFkZHIJAGUCBQt3bE5mdE51bWJlcgABCQEMSW50ZWdlckVudHJ5AgUTa2V5V2xOZnRUb3RhbFN0YWtlZAkAlgMBCQDMCAIAAAkAzAgCCQBlAgkBC3ZhbHVlT3JFbHNlAgkAnwgBBRNrZXlXbE5mdFRvdGFsU3Rha2VkAAAAAQUDbmlsCQELRGVsZXRlRW50cnkBCQEea2V5U3Rha2VkVGltZUJ5QXNzZXRJZEFuZE93bmVyAgkA2AQBBQdhc3NldElkBQRhZGRyCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIAAQUHYXNzZXRJZAUNcHJvbG9nQWN0aW9ucwUQd2xnQ2xhaW1lZEFtb3VudAQLYXJraW1hbE5hbWUJAQ9pc0Fya2ltYWxJc3N1ZWQBBQVhc3NldAMJAAACBQthcmtpbWFsTmFtZQIACQACAQI0T25seSBXYXZlc0xhbmRzIGFuZCBBcmtpbWFscyBORlQgdG9rZW5zIGFyZSBhY2NlcHRlZAQMYXJrTmZ0TnVtYmVyCQELdmFsdWVPckVsc2UCCQCfCAEJARNrZXlVc2VyQXJrTmZ0TnVtYmVyAQUEYWRkcgAABA0kdDAyNzIwNzI3MjkxCQEZc3Rha2VVbnN0YWtlQWNyZXNJbnRlcm5hbAMAAAUEYWRkcgkBAS0BBQ1BUktfTkZUX0JPTlVTBAdhY3Rpb25zCAUNJHQwMjcyMDcyNzI5MQJfMQQQd2xnQ2xhaW1lZEFtb3VudAgFDSR0MDI3MjA3MjcyOTECXzIJAJQKAgkAzggCCQDNCAIJAM0IAgkAzQgCCQDNCAIFB2FjdGlvbnMFCmxpc3RBY3Rpb24JAQxJbnRlZ2VyRW50cnkCCQETa2V5VXNlckFya05mdE51bWJlcgEFBGFkZHIJAGUCBQxhcmtOZnROdW1iZXIAAQkBC0RlbGV0ZUVudHJ5AQkBHmtleVN0YWtlZFRpbWVCeUFzc2V0SWRBbmRPd25lcgIJANgEAQUHYXNzZXRJZAUEYWRkcgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyAAEFB2Fzc2V0SWQFDXByb2xvZ0FjdGlvbnMFEHdsZ0NsYWltZWRBbW91bnQBaQEMZXhjaGFuZ2VORlRzAAQNcHJvbG9nQWN0aW9ucwkBBnByb2xvZwEFAWkDCQBmAgADCQCQAwEIBQFpCHBheW1lbnRzCQACAQIpTWluIG9uZSBXTEdPTEQgYW5kIDIgTkZUIHBheW1lbnRzIGFsbG93ZWQDCQBmAgkAkAMBCAUBaQhwYXltZW50cwAKCQACAQIpTWF4IG9uZSBXTEdPTEQgYW5kIDkgTkZUIHBheW1lbnRzIGFsbG93ZWQEBGFkZHIJAKUIAQgFAWkGY2FsbGVyCgEFYWRkVXACA2FjYwNwbXQEB2Fzc2V0SWQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAggFA3BtdAdhc3NldElkAhpXQVZFUyBwYXltZW50cyBub3QgYWxsb3dlZAMJAAACBQdhc3NldElkBQp3bGdBc3NldElkCQCWCgQJAGQCCAUDYWNjAl8xCAUDcG10BmFtb3VudAgFA2FjYwJfMggFA2FjYwJfMwgFA2FjYwJfNAQFYXNzZXQJAQV2YWx1ZQEJAOwHAQUHYXNzZXRJZAMJAQIhPQIIBQVhc3NldAZpc3N1ZXIFBHRoaXMJAAIBAhtPbmx5IFdMLWlzc3VlZCBORlRzIGFsbG93ZWQECHJhcml0eUl4CQEWcmFyaXR5SWR4QnlEZXNjcmlwcmlvbgEJAQV2YWx1ZQEIBQVhc3NldAtkZXNjcmlwdGlvbgMDCQBmAggFA2FjYwJfNAAACQECIT0CBQhyYXJpdHlJeAgFA2FjYwJfNAcJAAIBAi1Zb3UgY2FuIGV4Y2hhbmdlIG9ubHkgTkZUcyBvZiB0aGUgc2FtZSByYXJpdHkECWJvbnVzUGVyYwkBEmJvbnVzQnlEZXNjcmlwdGlvbgEJAQV2YWx1ZQEIBQVhc3NldAtkZXNjcmlwdGlvbgkAlgoECAUDYWNjAl8xCQBkAggFA2FjYwJfMgUJYm9udXNQZXJjCQDNCAIIBQNhY2MCXzMJAQRCdXJuAgUHYXNzZXRJZAABBQhyYXJpdHlJeAQNJHQwMjg2ODAyODg5NgoAAiRsCAUBaQhwYXltZW50cwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAJAJYKBAAAAAAFA25pbAD///////////8BCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQVhZGRVcAIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgQGd2xnRmVlCAUNJHQwMjg2ODAyODg5NgJfMQQKdG90YWxCb251cwgFDSR0MDI4NjgwMjg4OTYCXzIEC2J1cm5BY3Rpb25zCAUNJHQwMjg2ODAyODg5NgJfMwQJcmFyaXR5SWR4CAUNJHQwMjg2ODAyODg5NgJfNAQMbmV3UmFyaXR5SWR4AwkAAAIFCXJhcml0eUlkeAUKaWR4UmFyaXR5QwMJAGYCCQCRAwIFEHJhcml0eVRocmVzaG9sZHMFDWlkeFRocmVzaG9sZEMFCnRvdGFsQm9udXMFCmlkeFJhcml0eUMDCQBmAgkAkQMCBRByYXJpdHlUaHJlc2hvbGRzBQ1pZHhUaHJlc2hvbGRVBQp0b3RhbEJvbnVzBQppZHhSYXJpdHlVCQACAQkArAICCQCsAgICOllvdSBjYW4gYWR2YW5jZSBvbmx5IG9uZSBsZXZlbCBvZiByYXJpdHksIG1heCB0b3RhbCBib251cyAJAKQDAQkAkQMCBRByYXJpdHlUaHJlc2hvbGRzBQ1pZHhUaHJlc2hvbGRVAgElAwkAAAIFCXJhcml0eUlkeAUKaWR4UmFyaXR5VQMJAGYCCQCRAwIFEHJhcml0eVRocmVzaG9sZHMFDWlkeFRocmVzaG9sZFUFCnRvdGFsQm9udXMFCmlkeFJhcml0eVUDCQBmAgkAkQMCBRByYXJpdHlUaHJlc2hvbGRzBQ1pZHhUaHJlc2hvbGRMBQp0b3RhbEJvbnVzBQppZHhSYXJpdHlMCQACAQkArAICCQCsAgICOllvdSBjYW4gYWR2YW5jZSBvbmx5IG9uZSBsZXZlbCBvZiByYXJpdHksIG1heCB0b3RhbCBib251cyAJAKQDAQkAkQMCBRByYXJpdHlUaHJlc2hvbGRzBQ1pZHhUaHJlc2hvbGRMAgElAwkAAAIFCXJhcml0eUlkeAUKaWR4UmFyaXR5TAMJAGYCCQCRAwIFEHJhcml0eVRocmVzaG9sZHMFDWlkeFRocmVzaG9sZEwFCnRvdGFsQm9udXMFCmlkeFJhcml0eUwFCmlkeFJhcml0eUUDCQAAAgUJcmFyaXR5SWR4BQppZHhSYXJpdHlFBQppZHhSYXJpdHlFAwkAAAIFCXJhcml0eUlkeAUKaWR4UmFyaXR5UAkAAgECJllvdSBjYW4ndCBleGNoYW5nZSBORlRzIG9mIHRoaXMgcmFyaXR5CQACAQIOVW5rbm93biByYXJpdHkECW1pbldsZ0ZlZQkAawMFCnRvdGFsQm9udXMFBk1VTFQxNAkBC2dldFdsZ1ByaWNlAQAABAZjaGFuZ2UJAGUCBQZ3bGdGZWUFCW1pbldsZ0ZlZQQHZm9yVGVhbQkAaQIFCW1pbldsZ0ZlZQACBAl3bGdSZW1haW4JAQVhc0ludAEJAPwHBAULd2xnQ29udHJhY3QCCmJ1cm5XbGdvbGQJAMwIAgkAZQIFCW1pbldsZ0ZlZQUHZm9yVGVhbQUDbmlsBQNuaWwDCQBmAgAABQZjaGFuZ2UJAAIBCQCsAgIJAKwCAgITWW91IG5lZWQgdG8gYXR0YWNoIAkBCmZpeGVkUG9pbnQCBQltaW5XbGdGZWUACAIOIFdMR09MRCBhcyBmZWUEDWNoYW5nZUFjdGlvbnMDCQBmAgUGY2hhbmdlAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQZjaGFuZ2UFCndsZ0Fzc2V0SWQFA25pbAUDbmlsBA0kdDAzMDQzMzMwNTk0CQEOaXNzdWVOZnRDdXN0b20IBQ5pZHhOYW1lUGlja2F4ZQUMbmV3UmFyaXR5SWR4BQppZHhDb2xsRGlnBQxuZXdSYXJpdHlJZHgFCnRvdGFsQm9udXMFD2lkeERlc2NyUGlja2F4ZQUOaWR4Qm9udXNUeXBlRnAIBQFpBmNhbGxlcgQPaXNzdWVOZnRBY3Rpb25zCAUNJHQwMzA0MzMzMDU5NAJfMQQKbmZ0QXNzZXRJZAgFDSR0MDMwNDMzMzA1OTQCXzIEBmJ1cm5lZAkAkAMBBQtidXJuQWN0aW9ucwQSYnVybkNvdW50ZXJBY3Rpb25zAwkAAAIFBmJ1cm5lZAAABQNuaWwJAMwIAgkBDEludGVnZXJFbnRyeQIFEWtleU5mdFRvdGFsQnVybmVkCQBkAgkBC3ZhbHVlT3JFbHNlAgkAnwgBBRFrZXlOZnRUb3RhbEJ1cm5lZAAABQZidXJuZWQFA25pbAkAlAoCCQDNCAIJAM4IAgkAzggCCQDOCAIJAM4IAgUPaXNzdWVOZnRBY3Rpb25zBQtidXJuQWN0aW9ucwUSYnVybkNvdW50ZXJBY3Rpb25zBQ1wcm9sb2dBY3Rpb25zBQ1jaGFuZ2VBY3Rpb25zCQEOU2NyaXB0VHJhbnNmZXIDCQERQGV4dHJOYXRpdmUoMTA2MikBCQERQGV4dHJOYXRpdmUoMTA1MykCBQt3bGdDb250cmFjdAULdGVhbUFkZHJLZXkFB2ZvclRlYW0FCndsZ0Fzc2V0SWQJAJQKAgUKbmZ0QXNzZXRJZAUJd2xnUmVtYWluAWkBDG9wZW5OZnRDaGVzdAAEDXByb2xvZ0FjdGlvbnMJAQZwcm9sb2cBBQFpAwkBAiE9AgkAkAMBCAUBaQhwYXltZW50cwABCQACAQIiZXhhY3RseSAxIHBheW1lbnQgbXVzdCBiZSBhdHRhY2hlZAQDcG10CQCRAwIIBQFpCHBheW1lbnRzAAAECXdsZ0Ftb3VudAgFA3BtdAZhbW91bnQDAwkBASEBCQEJaXNEZWZpbmVkAQgFA3BtdAdhc3NldElkBgkBAiE9AgkBBXZhbHVlAQgFA3BtdAdhc3NldElkBQp3bGdBc3NldElkCQACAQIVV0xHT0xEIHBheW1lbnRzIG9ubHkhBAltaW5XbGdGZWUJAGsDBRRORlRfQ0hFU1RfUFJJQ0VfVVNEVAUFTVVMVDgJAQtnZXRXbGdQcmljZQEAAAQGY2hhbmdlCQBlAgUJd2xnQW1vdW50BQltaW5XbGdGZWUEB2ZvclRlYW0JAGkCBQltaW5XbGdGZWUAAgQJd2xnUmVtYWluCQEFYXNJbnQBCQD8BwQFC3dsZ0NvbnRyYWN0AgpidXJuV2xnb2xkCQDMCAIJAGUCBQltaW5XbGdGZWUFB2ZvclRlYW0FA25pbAUDbmlsAwkAZgIAAAUGY2hhbmdlCQACAQkArAICCQCsAgICE1lvdSBuZWVkIHRvIGF0dGFjaCAJAQpmaXhlZFBvaW50AgUJbWluV2xnRmVlAAgCDiBXTEdPTEQgYXMgZmVlBA1jaGFuZ2VBY3Rpb25zAwkAZgIFBmNoYW5nZQAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUGY2hhbmdlBQp3bGdBc3NldElkBQNuaWwFA25pbAQEYWRkcgkApQgBCAUBaQZjYWxsZXIECWZpbmlzaEtleQkBCWtleUNvbW1pdAEFBGFkZHIEC2ZpbmlzaEJsb2NrCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ8IAQUJZmluaXNoS2V5AiRZb3UgaGF2ZSB0byBjb21taXRGb3JSYW5kb20oKSBmaXJzdCEDCQBmAgULZmluaXNoQmxvY2sFBmhlaWdodAkAAgEJAKwCAgI0UmFuZG9tIG51bWJlciBpcyBub3QgcmVhZHkgeWV0LCB3YWl0IHVudGlsIGhlaWdodCA9IAkApAMBBQtmaW5pc2hCbG9jawQHZW50cm9weQkBBXZhbHVlAQgJAQV2YWx1ZQEJAO0HAQULZmluaXNoQmxvY2sDdnJmBARzYWx0CQDZBAEJAJEDAgkAtQkCCQELdmFsdWVPckVsc2UCCQCiCAEJARRrZXlDdXJXZWVrVHhJZEJ5VXNlcgEFBGFkZHICCjQyX0RFRkFVTFQCAV8AAQQEcmFuZAkBD2dldFJhbmRvbU51bWJlcgMAZAUEc2FsdAUHZW50cm9weQQNJHQwMzI2MTMzMjg4NQMJAGYCAFQFBHJhbmQJAJQKAgABBQppZHhSYXJpdHlDAwkAZgIAYgUEcmFuZAkAlAoCAAUFCmlkeFJhcml0eVUJAJQKAgAKBQppZHhSYXJpdHlMBAVib251cwgFDSR0MDMyNjEzMzI4ODUCXzEECXJhcml0eUlkeAgFDSR0MDMyNjEzMzI4ODUCXzIEDSR0MDMyODg4MzMwMzgJAQ5pc3N1ZU5mdEN1c3RvbQgFDmlkeE5hbWVQaWNrYXhlBQlyYXJpdHlJZHgFCmlkeENvbGxEaWcFCXJhcml0eUlkeAUFYm9udXMFD2lkeERlc2NyUGlja2F4ZQUOaWR4Qm9udXNUeXBlRnAIBQFpBmNhbGxlcgQPaXNzdWVOZnRBY3Rpb25zCAUNJHQwMzI4ODgzMzAzOAJfMQQKbmZ0QXNzZXRJZAgFDSR0MDMyODg4MzMwMzgCXzIJAJQKAgkAzQgCCQDNCAIJAM4IAgkAzggCBQ9pc3N1ZU5mdEFjdGlvbnMFDXByb2xvZ0FjdGlvbnMFDWNoYW5nZUFjdGlvbnMJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDUzKQIFC3dsZ0NvbnRyYWN0BQt0ZWFtQWRkcktleQUHZm9yVGVhbQUKd2xnQXNzZXRJZAkBC0RlbGV0ZUVudHJ5AQUJZmluaXNoS2V5CQCUCgIFCm5mdEFzc2V0SWQFCXdsZ1JlbWFpbgFpAQ9jb21taXRGb3JSYW5kb20ABA1wcm9sb2dBY3Rpb25zCQEGcHJvbG9nAQUBaQQEYWRkcgkApQgBCAUBaQZjYWxsZXIECWZpbmlzaEtleQkBCWtleUNvbW1pdAEFBGFkZHIDCQEJaXNEZWZpbmVkAQkAnwgBBQlmaW5pc2hLZXkJAAIBAi5Zb3UgYWxyZWFkeSBjb21taXRlZCBmb3IgcmFuZG9tLCBwbGVhc2UgdXNlIGl0BAtmaW5pc2hCbG9jawkAZAIFBmhlaWdodAUMUkFORE9NX0RFTEFZCQCUCgIJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUJZmluaXNoS2V5BQtmaW5pc2hCbG9jawUDbmlsBQ1wcm9sb2dBY3Rpb25zBQtmaW5pc2hCbG9jawFpAQ5kcmF3RGF5bHlQcm9tbwADCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhFQZXJtaXNzaW9uIGRlbmllZAQFdG9kYXkJAGkCBQZoZWlnaHQFCkRBWV9CTE9DS1MECG1heFZhbHVlCQELdmFsdWVPckVsc2UCCQCfCAEFFGtleVRvdGFsUHJvbW9UaWNrZXRzAAADCQAAAgUIbWF4VmFsdWUAAAkAAgECEk5vIHRpY2tldHMgdG8gZHJhdwQBYgkAaAIFBXRvZGF5BQpEQVlfQkxPQ0tTBAFoAwkAZgIFAWIFClZSRl9PRkZTRVQFAWIJAGQCBQFiBQpWUkZfT0ZGU0VUBAdlbnRyb3B5CQEFdmFsdWUBCAkBBXZhbHVlAQkA7QcBBQFoA3ZyZgQIcHJvbW9NYXAJAQt2YWx1ZU9yRWxzZQIJAKIIAQULa2V5UHJvbW9NYXACAAMJAAACBQhwcm9tb01hcAIACQACAQIPTm8gcGFydGljaXBhbnRzCgEKc2luZ2xlRHJhdwICYWMBagMJAGcCBQFqBQ5wcm9tb051bVByaXplcwUCYWMEBHJhbmQJAQ9nZXRSYW5kb21OdW1iZXIDCAUCYWMCXzEIBQJhYwJfMgUHZW50cm9weQQJcHJvbW9MaXN0AwkAAAIIBQJhYwJfMwIABQNuaWwJAL0JAggFAmFjAl8zAgFfCgEMY291bnRUaWNrZXRzAgNhY2MCZWwEBXBhcnRzCQC1CQIFAmVsAgE6BARhZGRyCQCRAwIFBXBhcnRzAAAEB3RpY2tldHMJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQVwYXJ0cwABBAhuZXdUb3RhbAkAZAIIBQNhY2MCXzEFB3RpY2tldHMDAwkAAAIIBQNhY2MCXzMCAAkAZgIFCG5ld1RvdGFsBQRyYW5kBwkAlQoDBQhuZXdUb3RhbAUHdGlja2V0cwUEYWRkcgkAlQoDBQhuZXdUb3RhbAgFA2FjYwJfMggFA2FjYwJfMwQBcgoAAiRsBQlwcm9tb0xpc3QKAAIkcwkAkAMBBQIkbAoABSRhY2MwCQCVCgMAAAAAAgAKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBDGNvdW50VGlja2V0cwIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIVTGlzdCBzaXplIGV4Y2VlZHMgMjAwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIAIwAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzADQANQA2ADcAOAA5ADoAOwA8AD0APgA/AEAAQQBCAEMARABFAEYARwBIAEkASgBLAEwATQBOAE8AUABRAFIAUwBUAFUAVgBXAFgAWQBaAFsAXABdAF4AXwBgAGEAYgBjAGQAZQBmAGcAaABpAGoAawBsAG0AbgBvAHAAcQByAHMAdAB1AHYAdwB4AHkAegB7AHwAfQB+AH8AgAEAgQEAggEAgwEAhAEAhQEAhgEAhwEAiAEAiQEAigEAiwEAjAEAjQEAjgEAjwEAkAEAkQEAkgEAkwEAlAEAlQEAlgEAlwEAmAEAmQEAmgEAmwEAnAEAnQEAngEAnwEAoAEAoQEAogEAowEApAEApQEApgEApwEAqAEAqQEAqgEAqwEArAEArQEArgEArwEAsAEAsQEAsgEAswEAtAEAtQEAtgEAtwEAuAEAuQEAugEAuwEAvAEAvQEAvgEAvwEAwAEAwQEAwgEAwwEAxAEAxQEAxgEAxwEAyAEEBndpbm5lcggFAXICXzMDCQAAAgUGd2lubmVyAgAFAmFjBAhtYXBQYXJ0cwkAvQkCCAUCYWMCXzMFBndpbm5lcgQGbmV3TWFwAwkAAAIJAJEDAgUIbWFwUGFydHMAAAIACQCwAgIJAJEDAgUIbWFwUGFydHMAAQAFCQCsAgIJALMCAgkAkQMCBQhtYXBQYXJ0cwAAAAEJALACAgkAkQMCBQhtYXBQYXJ0cwABAAQEDSR0MDM1NTg0MzU3MzUJAQ1zdGFrZUFjcmVzRm9yAwUGd2lubmVyCQCRAwIFEnByb21vQXdhcmRQZXJSb3VuZAUBagYEDHN0YWtlQWN0aW9ucwgFDSR0MDM1NTg0MzU3MzUCXzEEF2lnbm9yZWRXbGdDbGFpbWVkQW1vdW50CAUNJHQwMzU1ODQzNTczNQJfMgQHbmV3U2FsdAkA2QQBCQCRAwIJALUJAgkBC3ZhbHVlT3JFbHNlAgkAoggBCQEUa2V5Q3VyV2Vla1R4SWRCeVVzZXIBBQZ3aW5uZXICCTBfREVGQVVMVAIBXwABCQCXCgUJAGUCCAUCYWMCXzEIBQFyAl8yBQduZXdTYWx0BQZuZXdNYXAJAM0IAggFAmFjAl80BQxzdGFrZUFjdGlvbnMJAM0IAggFAmFjAl81BQZ3aW5uZXIEBWRyYXdzCgACJGwJAMwIAgAACQDMCAIAAQkAzAgCAAIFA25pbAoAAiRzCQCQAwEFAiRsCgAFJGFjYzAJAJcKBQUIbWF4VmFsdWUIBQFpDXRyYW5zYWN0aW9uSWQFCHByb21vTWFwBQNuaWwFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEKc2luZ2xlRHJhdwIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQITTGlzdCBzaXplIGV4Y2VlZHMgMwkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwkAlAoCCQDNCAIJAM0IAgkAzQgCCAUFZHJhd3MCXzQJAQtTdHJpbmdFbnRyeQIFC2tleVByb21vTWFwCAUFZHJhd3MCXzMJAQxJbnRlZ2VyRW50cnkCBRRrZXlUb3RhbFByb21vVGlja2V0cwgFBWRyYXdzAl8xCQELU3RyaW5nRW50cnkCCQEPa2V5RGFpbHlXaW5uZXJzAQUFdG9kYXkJALkJAggFBWRyYXdzAl81AgFfAAAAp9AHPQ==", "height": 3413355, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GF9ZrVqtxwtdcPSkGuZrsZqMwPgyMXE3CcAW8SQHdkx2 Next: GRvh9pRReqPEmcr6A8J1gyRWRFE2nT5GCBaUP1bJG8hu Diff:
OldNewDifferences
8989 let t = {
9090 let m = k
9191 if ((base58'2W' == m))
92- then "3PQCuvFbvh4LkPUnrnU1z3jnbA1p9m3WNhv"
93- else if ((base58'2T' == m))
94- then "3MumkGGztCKAXpWDqxkddofqXSUbqQkvSJy"
95- else throw("Unknown chain")
96- }
97-
98-let u = {
99- let m = k
100- if ((base58'2W' == m))
10192 then f
10293 else if ((base58'2T' == m))
10394 then 60000
10495 else throw("Unknown chain")
10596 }
10697
107-let v = {
98+let u = {
10899 let m = k
109100 if ((base58'2W' == m))
110101 then "3PLncXtS1U83D6cQbFD3H8rBHPLgzxSFKZ1"
113104 else throw("Unknown chain")
114105 }
115106
116-func w (x,y) = valueOrErrorMessage(getString(x, y), makeString(["mandatory ", toString(x), ".", y, " is not defined"], ""))
107+func v (w,x) = valueOrErrorMessage(getString(w, x), makeString(["mandatory ", toString(w), ".", x, " is not defined"], ""))
117108
118109
119-let z = 1
110+let y = 1
120111
121-let A = 2
112+let z = 2
122113
123-let B = 5
114+let A = 5
124115
125-let C = 6
116+let B = 6
126117
127-func D () = "%s__restConfig"
118+func C () = "%s__restConfig"
128119
129120
130-func E () = "%s__rest2Addr"
121+func D () = "%s__rest2Addr"
131122
132123
133-func F () = "%s__restAddr"
124+func E (F) = split_4C(v(F, C()), a)
134125
135126
136-let G = addressFromStringValue(valueOrElse(getString(this, F()), t))
137-
138-func H (I) = split_4C(w(I, D()), a)
127+func G (H,I) = valueOrErrorMessage(addressFromString(H[I]), ("Rest cfg doesn't contain address at index " + toString(I)))
139128
140129
141-func J (K,L) = valueOrErrorMessage(addressFromString(K[L]), ("Rest cfg doesn't contain address at index " + toString(L)))
130+let J = addressFromStringValue(valueOrElse(getString(this, D()), s))
131+
132+let H = E(J)
133+
134+let K = G(H, y)
135+
136+let L = G(H, z)
137+
138+let M = G(H, A)
139+
140+let N = G(H, B)
141+
142+let O = "oldAcresContract"
143+
144+func P () = "contractsBlocked"
142145
143146
144-let M = 1
145-
146-let N = H(G)
147-
148-let O = J(N, M)
149-
150-let P = addressFromStringValue(valueOrElse(getString(this, E()), s))
151-
152-let K = H(P)
153-
154-let Q = J(K, z)
155-
156-let R = J(K, A)
157-
158-let S = J(K, B)
159-
160-let T = J(K, C)
161-
162-let U = "oldAcresContract"
163-
164-func V () = "contractsBlocked"
147+func Q (R) = ("lastWeekTxIdByUser_" + R)
165148
166149
167-func W (X) = ("lastWeekTxIdByUser_" + X)
150+func S (R) = ("curWeekTxIdByUser_" + R)
168151
169152
170-func Y (X) = ("curWeekTxIdByUser_" + X)
153+func T (w) = ("finishBlockFor_" + w)
171154
172155
173-func Z (x) = ("finishBlockFor_" + x)
156+let U = "wlg_assetId"
157+
158+let V = valueOrErrorMessage(getBinary(L, U), "WLGOLD is not issued yet")
159+
160+let W = "acresIssuedAmount"
161+
162+let X = "acresAssetId"
163+
164+let Y = valueOrErrorMessage(getBinary(K, X), "ACRES is not issued yet")
165+
166+func Z (R) = ("acresStakedTimeByUser_" + R)
174167
175168
176-let aa = "wlg_assetId"
177-
178-let ab = valueOrErrorMessage(getBinary(R, aa), "WLGOLD is not issued yet")
179-
180-let ac = "acresIssuedAmount"
181-
182-let ad = "acresAssetId"
183-
184-let ae = valueOrErrorMessage(getBinary(Q, ad), "ACRES is not issued yet")
185-
186-func af (X) = ("acresStakedTimeByUser_" + X)
169+func aa (ab) = ("stakedLandsByOwner_" + ab)
187170
188171
189-func ag (ah) = ("stakedLandsByOwner_" + ah)
172+func ac (ab) = ("stakedDuckByOwner_" + ab)
190173
191174
192-func ai (ah) = ("stakedDuckByOwner_" + ah)
175+func ad (ae,R) = ((("st_" + ae) + "_") + R)
193176
194177
195-func aj (ak,X) = ((("st_" + ak) + "_") + X)
178+func af (ab) = ("stakedNFTsByOwner_" + ab)
196179
197180
198-func al (ah) = ("stakedNFTsByOwner_" + ah)
181+func ag (w) = ("promoAcres_" + w)
199182
200183
201-func am (x) = ("promoAcres_" + x)
184+func ah (w) = ("promoTickets_" + w)
202185
203186
204-func an (x) = ("promoTickets_" + x)
187+let ai = "totalPromoTickets"
188+
189+let aj = "promoMap"
190+
191+func ak (al) = ("dailyWinners_" + toString(al))
205192
206193
207-let ao = "totalPromoTickets"
208-
209-let ap = "promoMap"
210-
211-func aq (ar) = ("dailyWinners_" + toString(ar))
212-
213-
214-func as (at) = {
215- let m = at
194+func am (an) = {
195+ let m = an
216196 if ($isInstanceOf(m, "Int"))
217197 then {
218- let au = m
219- au
198+ let ao = m
199+ ao
220200 }
221201 else throw("fail to cast into Int")
222202 }
223203
224204
225-func av (aw) = {
226- let m = aw
205+func ap (aq) = {
206+ let m = aq
227207 if ($isInstanceOf(m, "(Int, Int, Int, Int, Int)"))
228208 then {
229- let ax = m
230- ax
209+ let ar = m
210+ ar
231211 }
232212 else throw("fail to cast into (Int, Int, Int, Int, Int)")
233213 }
234214
235215
236-func ay (aw) = {
237- let m = aw
216+func as (aq) = {
217+ let m = aq
238218 if ($isInstanceOf(m, "(Int, Int, Int, Int)"))
239219 then {
240- let ax = m
241- ax
220+ let ar = m
221+ ar
242222 }
243223 else throw("fail to cast into (Int, Int, Int, Int)")
244224 }
245225
246226
247-func az (aw) = {
248- let m = aw
227+func at (aq) = {
228+ let m = aq
249229 if ($isInstanceOf(m, "(Int, Int, Int)"))
250230 then {
251- let ax = m
252- ax
231+ let ar = m
232+ ar
253233 }
254234 else throw("fail to cast into (Int, Int, Int)")
255235 }
256236
257237
258-func aA (aw) = {
259- let m = aw
238+func au (aq) = {
239+ let m = aq
260240 if ($isInstanceOf(m, "(Int, Int)"))
261241 then {
262- let ax = m
263- ax
242+ let ar = m
243+ ar
264244 }
265245 else throw("fail to cast into (Int, Int)")
266246 }
267247
268248
269-func aB (aw,aC) = {
270- let aD = pow(10, 0, aC, 0, 0, DOWN)
271- let aE = toString((aw % aD))
272- let aF = drop(toString(aD), (1 + size(aE)))
273- (((toString((aw / aD)) + ".") + aF) + aE)
249+func av (aq,aw) = {
250+ let ax = pow(10, 0, aw, 0, 0, DOWN)
251+ let ay = toString((aq % ax))
252+ let az = drop(toString(ax), (1 + size(ay)))
253+ (((toString((aq / ax)) + ".") + az) + ay)
274254 }
275255
276256
277-func aG (aH,aI,aJ) = if ((0 >= aH))
257+func aA (aB,aC,aD) = if ((0 >= aB))
278258 then throw("maxValue should be > 0")
279259 else {
280- let aK = sha256_16Kb((aI + aJ))
281- (toInt(aK) % aH)
260+ let aE = sha256_16Kb((aC + aD))
261+ (toInt(aE) % aB)
282262 }
283263
284264
285-func aL (aw,aM) = {
286- let aN = toString(aw)
287- let aF = drop(toString(pow(10, 0, (aM - size(aN)), 0, 0, DOWN)), 1)
288- (aF + aN)
265+func aF (aq,aG) = {
266+ let aH = toString(aq)
267+ let az = drop(toString(pow(10, 0, (aG - size(aH)), 0, 0, DOWN)), 1)
268+ (az + aH)
289269 }
290270
291271
292-let aO = 1000000
272+let aI = 1000000
293273
294-let aP = 100000000
274+let aJ = 100000000
295275
296-let aQ = "wlg_issuedAmount"
276+let aK = "wlg_issuedAmount"
297277
298-let aR = "zbill_issuedAmount"
278+let aL = "zbill_issuedAmount"
299279
300-func aS (X) = ("acresStakedAmountByUser_" + X)
280+func aM (R) = ("acresStakedAmountByUser_" + R)
301281
302282
303-func aT (X) = ("farmingPowerByUser_" + X)
283+func aN (R) = ("farmingPowerByUser_" + R)
304284
305285
306-let aU = "acresStakedAmountTotal"
286+let aO = "acresStakedAmountTotal"
307287
308-let aV = "totalFarmingPower"
288+let aP = "totalFarmingPower"
309289
310-let aW = 3
290+let aQ = 3
311291
312-let aX = 1
292+let aR = 1
313293
314-let aY = 5000
294+let aS = 5000
315295
316-let aZ = 4
296+let aT = 4
317297
318-let ba = "nftTotalIssued"
298+let aU = "nftTotalIssued"
319299
320-let bb = "nftTotalBurned"
300+let aV = "nftTotalBurned"
321301
322-let bc = "WlNftTotalStaked"
302+let aW = "WlNftTotalStaked"
323303
324-let bd = "ArkNftTotalStaked"
304+let aX = "ArkNftTotalStaked"
325305
326-func be (ak) = ("nftNumberByAssetId_" + ak)
306+func aY (ae) = ("nftNumberByAssetId_" + ae)
327307
328308
329-func bf (X) = ("userWlNftNumber_" + X)
309+func aZ (R) = ("userWlNftNumber_" + R)
330310
331311
332-func bg (X) = ("userArkNftNumber_" + X)
312+func ba (R) = ("userArkNftNumber_" + R)
333313
334314
335-func bh (X) = ("userFullBonus_" + X)
315+func bb (R) = ("userFullBonus_" + R)
336316
337317
338-let bi = [0, 10, 20, 40, 80, 150, 250, 400, 700, 1000]
318+let bc = [0, 10, 20, 40, 80, 150, 250, 400, 700, 1000]
339319
340-func bj (bk) = {
341- let bl = ((bk + 99999999) / aP)
342- func bm (bn,bo) = if ((bo >= bl))
320+func bd (be) = {
321+ let bf = ((be + 99999999) / aJ)
322+ func bg (bh,bi) = if ((bi >= bf))
323+ then bh
324+ else (bh + 1)
325+
326+ let bj = bc
327+ let bk = size(bj)
328+ let bl = 0
329+ func bm (bn,bo) = if ((bo >= bk))
343330 then bn
344- else (bn + 1)
331+ else bg(bn, bj[bo])
345332
346- let bp = bi
347- let bq = size(bp)
348- let br = 0
349- func bs (bt,bu) = if ((bu >= bq))
350- then bt
351- else bm(bt, bp[bu])
352-
353- func bv (bt,bu) = if ((bu >= bq))
354- then bt
333+ func bp (bn,bo) = if ((bo >= bk))
334+ then bn
355335 else throw("List size exceeds 10")
356336
357- bv(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(br, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
337+ bp(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bl, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
358338 }
359339
360340
361-func bw (bk) = ((bk * 20) * (bj(bk) + 4))
341+func bq (be) = ((be * 20) * (bd(be) + 4))
362342
363343
364-func bx (bk,by) = {
365- let bz = bw(bk)
366- $Tuple2(fraction(bz, (aO + by), aO), bz)
344+func br (be,bs) = {
345+ let bt = bq(be)
346+ $Tuple2(fraction(bt, (aI + bs), aI), bt)
367347 }
368348
369349
370-let bA = "teamAddr"
350+let bu = "teamAddr"
371351
372-func bB (X) = ("lastArbTimeUser_" + X)
352+func bv (R) = ("lastArbTimeUser_" + R)
373353
374354
375-let bC = 1733346000000
355+let bw = 1733346000000
376356
377-let bD = 14
357+let bx = 14
378358
379-let bE = "lastAcresSellTime"
359+let by = "lastAcresSellTime"
380360
381-let bF = "lastLimitLeft"
361+let bz = "lastLimitLeft"
382362
383-let bG = ["Gold shovel", "Pickaxe"]
363+let bA = ["Gold shovel", "Pickaxe"]
384364
385-let bH = ["Reward for early birds", "Increases FarmPower"]
365+let bB = ["Reward for early birds", "Increases FarmPower"]
386366
387-let bI = 0
367+let bC = 0
388368
389-let bJ = 1
369+let bD = 1
390370
391-let bK = [5, 10, 20]
371+let bE = [5, 10, 20]
392372
393-let bL = 0
373+let bF = 0
394374
395-let bM = 1
375+let bG = 1
396376
397-let bN = 2
377+let bH = 2
398378
399-let bO = ["SHOVEL", "PICKAXE"]
379+let bI = ["SHOVEL", "PICKAXE"]
380+
381+let bJ = 0
382+
383+let bK = 1
384+
385+let bL = ["contentPickaxeC", "contentPickaxeU", "contentPickaxeL", "contentPickaxeE", "contentShovelP"]
386+
387+let bM = 0
388+
389+let bN = 4
390+
391+let bO = ["Common", "Uncommon", "Legendary", "Epic", "Promo"]
400392
401393 let bP = 0
402394
403395 let bQ = 1
404396
405-let bR = ["contentPickaxeC", "contentPickaxeU", "contentPickaxeL", "contentPickaxeE", "contentShovelP"]
397+let bR = 2
406398
407-let bS = 0
399+let bS = 3
408400
409401 let bT = 4
410402
411-let bU = ["Common", "Uncommon", "Legendary", "Epic", "Promo"]
403+let bU = ["Digging tools"]
412404
413405 let bV = 0
414406
415-let bW = 1
407+let bW = ["FarmPower"]
416408
417-let bX = 2
409+let bX = 0
418410
419-let bY = 3
420-
421-let bZ = 4
422-
423-let ca = ["Digging tools"]
424-
425-let cb = 0
426-
427-let cc = ["FarmPower"]
428-
429-let cd = 0
430-
431-func ce (cf) = if (if ((cf.originCaller != P))
432- then valueOrElse(getBoolean(V()), false)
411+func bY (bZ) = if (if ((bZ.originCaller != J))
412+ then valueOrElse(getBoolean(P()), false)
433413 else false)
434414 then throw("Contracts are under maintenance")
435415 else {
436- let X = toString(cf.originCaller)
437- let cg = (height / p)
438- let ch = W(X)
439- let ci = getString(ch)
440- let cj = toBase58String(cf.transactionId)
441- let ck = ((toString(cg) + "_") + cj)
442- let cl = Y(X)
443- if (isDefined(ci))
416+ let R = toString(bZ.originCaller)
417+ let ca = (height / p)
418+ let cb = Q(R)
419+ let cc = getString(cb)
420+ let cd = toBase58String(bZ.transactionId)
421+ let ce = ((toString(ca) + "_") + cd)
422+ let cf = S(R)
423+ if (isDefined(cc))
444424 then {
445- let cm = split(value(ci), "_")
446- if ((cm[0] == toString(cg)))
447- then [StringEntry(ch, ck), StringEntry(cl, ck)]
448- else if ((cm[0] == toString((cg - 1))))
449- then [StringEntry(cl, ck)]
425+ let cg = split(value(cc), "_")
426+ if ((cg[0] == toString(ca)))
427+ then [StringEntry(cb, ce), StringEntry(cf, ce)]
428+ else if ((cg[0] == toString((ca - 1))))
429+ then [StringEntry(cf, ce)]
450430 else {
451- let cn = getStringValue(cl)
452- let co = split(cn, "_")
453- if ((co[0] == toString(cg)))
454- then [StringEntry(cl, ck)]
455- else [StringEntry(ch, cn), StringEntry(cl, ck)]
431+ let ch = getStringValue(cf)
432+ let ci = split(ch, "_")
433+ if ((ci[0] == toString(ca)))
434+ then [StringEntry(cf, ce)]
435+ else [StringEntry(cb, ch), StringEntry(cf, ce)]
456436 }
457437 }
458- else [StringEntry(ch, ck), StringEntry(cl, ck)]
438+ else [StringEntry(cb, ce), StringEntry(cf, ce)]
459439 }
460440
461441
462-func cp (cq,cr,cs,ct,cu,cv,cw,cx) = (((((((((((((((((((((((("{\"url\": \"https://waveslands.com\", " + "\"contentKey\": \"") + cq) + "\", ") + "\"number\": ") + toString(cr)) + ", ") + "\"collection\": \"") + cs) + "\", ") + "\"name\": \"") + ct) + "\", ") + "\"description\": \"") + cu) + "\", ") + "\"rare\": \"") + cv) + "\", ") + "\"bonus\": ") + toString(cw)) + ", ") + "\"bonusType\": \"") + cx) + "\"}")
442+func cj (ck,cl,cm,cn,co,cp,cq,cr) = (((((((((((((((((((((((("{\"url\": \"https://waveslands.com\", " + "\"contentKey\": \"") + ck) + "\", ") + "\"number\": ") + toString(cl)) + ", ") + "\"collection\": \"") + cm) + "\", ") + "\"name\": \"") + cn) + "\", ") + "\"description\": \"") + co) + "\", ") + "\"rare\": \"") + cp) + "\", ") + "\"bonus\": ") + toString(cq)) + ", ") + "\"bonusType\": \"") + cr) + "\"}")
463443
464444
465-func cy (cz,cA,cB,cC,cD,cE,cF,X) = {
466- let cr = valueOrElse(getInteger(ba), 0)
467- let cv = bU[cC]
468- let ct = (((bO[cz] + "-") + take(cv, 1)) + toString(cD))
469- let cG = Issue(ct, cp(bR[cA], cr, ca[cB], bG[cz], bH[cE], bU[cC], cD, cc[cF]), 1, 0, false)
470- let cH = calculateAssetId(cG)
471- $Tuple2([cG, IntegerEntry(ba, (cr + 1)), IntegerEntry(be(toBase58String(cH)), cr), ScriptTransfer(X, 1, cH)], cH)
445+func cs (ct,cu,cv,cw,cx,cy,cz,R) = {
446+ let cl = valueOrElse(getInteger(aU), 0)
447+ let cp = bO[cw]
448+ let cn = (((bI[ct] + "-") + take(cp, 1)) + toString(cx))
449+ let cA = Issue(cn, cj(bL[cu], cl, bU[cv], bA[ct], bB[cy], bO[cw], cx, bW[cz]), 1, 0, false)
450+ let cB = calculateAssetId(cA)
451+ $Tuple2([cA, IntegerEntry(aU, (cl + 1)), IntegerEntry(aY(toBase58String(cB)), cl), ScriptTransfer(R, 1, cB)], cB)
472452 }
473453
474454
475-func cI (cu) = if (!(contains(cu, "\"bonusType\": \"FarmPower\"")))
476- then throw(("NFT is not supported: " + cu))
455+func cC (co) = if (!(contains(co, "\"bonusType\": \"FarmPower\"")))
456+ then throw(("NFT is not supported: " + co))
477457 else {
478- let cJ = split_4C(split_4C(cu, "\"bonus\":")[1], ",")[0]
479- parseIntValue(drop(cJ, (valueOrElse(lastIndexOf(cJ, " "), -1) + 1)))
458+ let cD = split_4C(split_4C(co, "\"bonus\":")[1], ",")[0]
459+ parseIntValue(drop(cD, (valueOrElse(lastIndexOf(cD, " "), -1) + 1)))
480460 }
481461
482462
483-func cK (cu) = if (!(contains(cu, "\"rare\"")))
484- then throw(("NFT is not supported: " + cu))
463+func cE (co) = if (!(contains(co, "\"rare\"")))
464+ then throw(("NFT is not supported: " + co))
485465 else {
486- let cL = split_4C(split_4C(split_4C(cu, "\"rare\"")[1], ",")[0], "\"")[1]
487- value(indexOf(bU, cL))
466+ let cF = split_4C(split_4C(split_4C(co, "\"rare\"")[1], ",")[0], "\"")[1]
467+ value(indexOf(bO, cF))
488468 }
489469
490470
491-func cM (cN,x,cO) = if (if ((cN == 0))
492- then (cO == 0)
471+func cG (cH,w,cI) = if (if ((cH == 0))
472+ then (cI == 0)
493473 else false)
494474 then throw("Nothing to do")
495475 else {
496- let cP = invoke(R, "onStakeUnstakeLand", [x], nil)
497- if ((cP == cP))
476+ let cJ = invoke(L, "onStakeUnstakeLand", [w], nil)
477+ if ((cJ == cJ))
498478 then {
499- let cQ = lastBlock.timestamp
500- let cR = af(x)
501- let cS = aS(x)
502- let cT = valueOrElse(getInteger(cS), 0)
503- if (if ((0 > cN))
504- then (0 > (cT + cN))
479+ let cK = lastBlock.timestamp
480+ let cL = Z(w)
481+ let cM = aM(w)
482+ let cN = valueOrElse(getInteger(cM), 0)
483+ if (if ((0 > cH))
484+ then (0 > (cN + cH))
505485 else false)
506- then throw(((("You have only " + aB(cT, 8)) + " ACRES staked, tried to unstake ") + aB(-(cN), 8)))
486+ then throw(((("You have only " + av(cN, 8)) + " ACRES staked, tried to unstake ") + av(-(cH), 8)))
507487 else {
508- let cU = (cT + cN)
509- let cV = valueOrElse(getInteger(aU), 0)
510- let cW = aT(x)
511- let cX = valueOrElse(getInteger(cW), 0)
512- let cY = bh(x)
513- let cZ = valueOrElse(getInteger(Q, cY), 0)
514- if (if ((0 > cO))
515- then (0 > (cZ + cO))
488+ let cO = (cN + cH)
489+ let cP = valueOrElse(getInteger(aO), 0)
490+ let cQ = aN(w)
491+ let cR = valueOrElse(getInteger(cQ), 0)
492+ let cS = bb(w)
493+ let cT = valueOrElse(getInteger(K, cS), 0)
494+ if (if ((0 > cI))
495+ then (0 > (cT + cI))
516496 else false)
517- then throw((((("You have only " + aB(cZ, 4)) + "% bonus, and tried to unstake ") + aB(-(cO), 4)) + "%"))
497+ then throw((((("You have only " + av(cT, 4)) + "% bonus, and tried to unstake ") + av(-(cI), 4)) + "%"))
518498 else {
519- let da = bx(cU, (cZ + cO))
520- let db = da._1
521- let dc = da._2
522- let dd = valueOrElse(getInteger(aV), 0)
523- let de = if ((cN == 0))
499+ let cU = br(cO, (cT + cI))
500+ let cV = cU._1
501+ let cW = cU._2
502+ let cX = valueOrElse(getInteger(aP), 0)
503+ let cY = if ((cH == 0))
524504 then nil
525- else [IntegerEntry(cS, cU), IntegerEntry(aU, (cV + cN))]
526- let df = if ((cO == 0))
505+ else [IntegerEntry(cM, cO), IntegerEntry(aO, (cP + cH))]
506+ let cZ = if ((cI == 0))
527507 then nil
528- else [IntegerEntry(cY, (cZ + cO))]
529- $Tuple2(((((de ++ df) :+ IntegerEntry(cR, lastBlock.timestamp)) :+ IntegerEntry(cW, db)) :+ IntegerEntry(aV, ((dd + db) - cX))), cP)
508+ else [IntegerEntry(cS, (cT + cI))]
509+ $Tuple2(((((cY ++ cZ) :+ IntegerEntry(cL, lastBlock.timestamp)) :+ IntegerEntry(cQ, cV)) :+ IntegerEntry(aP, ((cX + cV) - cR))), cJ)
530510 }
531511 }
532512 }
534514 }
535515
536516
537-func dg (dh) = {
538- let di = valueOrErrorMessage(getInteger(R, aQ), "WLGOLD is not issued yet")
539- let dj = assetBalance(R, r)
540- let dk = (assetBalance(Q, r) - dh)
541- let dl = (assetBalance(S, r) + valueOrElse(getInteger(S, aR), 0))
542- let dm = ((dk + dj) + dl)
543- fraction(dm, d, di)
517+func da (db) = {
518+ let dc = valueOrErrorMessage(getInteger(L, aK), "WLGOLD is not issued yet")
519+ let dd = assetBalance(L, r)
520+ let de = (assetBalance(K, r) - db)
521+ let df = (assetBalance(M, r) + valueOrElse(getInteger(M, aL), 0))
522+ let dg = ((de + dd) + df)
523+ fraction(dg, d, dc)
544524 }
545525
546526
547-func dn () = {
548- let dj = assetBalance(R, r)
549- let dk = assetBalance(this, r)
550- let dl = (assetBalance(S, r) + valueOrElse(getInteger(S, aR), 0))
551- let do = (((dk + dj) + dl) / h)
552- let dp = valueOrElse(getInteger(bF), do)
553- let dq = valueOrElse(getInteger(bE), 0)
554- let cQ = lastBlock.timestamp
555- let dr = (dp + fraction(do, (cQ - dq), f))
556- let ds = min([dr, do])
557- $Tuple2(IntegerEntry(bE, cQ), ds)
527+func dh () = {
528+ let dd = assetBalance(L, r)
529+ let de = assetBalance(this, r)
530+ let df = (assetBalance(M, r) + valueOrElse(getInteger(M, aL), 0))
531+ let di = (((de + dd) + df) / h)
532+ let dj = valueOrElse(getInteger(bz), di)
533+ let dk = valueOrElse(getInteger(by), 0)
534+ let cK = lastBlock.timestamp
535+ let dl = (dj + fraction(di, (cK - dk), f))
536+ let dm = min([dl, di])
537+ $Tuple2(IntegerEntry(by, cK), dm)
558538 }
559539
560540
561-let dt = addressFromStringValue("3PJgZ6AK1WVCpdCmEZpesHmaKvrQDdXG5og")
541+let dn = addressFromStringValue("3PJgZ6AK1WVCpdCmEZpesHmaKvrQDdXG5og")
562542
563-let du = valueOrElse(getString(dt, "static_incubatorAddress"), "")
543+let do = valueOrElse(getString(dn, "static_incubatorAddress"), "")
564544
565-let dv = valueOrElse(getString(dt, "static_breederAddress"), "")
545+let dp = valueOrElse(getString(dn, "static_breederAddress"), "")
566546
567-let dw = valueOrElse(getString(dt, "static_turtleIncubatorAddress"), "")
547+let dq = valueOrElse(getString(dn, "static_turtleIncubatorAddress"), "")
568548
569-let dx = valueOrElse(getString(dt, "static_turtleBreederAddress"), "")
549+let dr = valueOrElse(getString(dn, "static_turtleBreederAddress"), "")
570550
571-let dy = valueOrElse(getString(dt, "static_canineIncubatorAddress"), "")
551+let ds = valueOrElse(getString(dn, "static_canineIncubatorAddress"), "")
572552
573-let dz = valueOrElse(getString(dt, "static_canineBreederAddress"), "")
553+let dt = valueOrElse(getString(dn, "static_canineBreederAddress"), "")
574554
575-let dA = valueOrElse(getString(dt, "static_felineIncubatorAddress"), "")
555+let du = valueOrElse(getString(dn, "static_felineIncubatorAddress"), "")
576556
577-let dB = valueOrElse(getString(dt, "static_felineBreederAddress"), "")
557+let dv = valueOrElse(getString(dn, "static_felineBreederAddress"), "")
578558
579-let dC = valueOrElse(getString(dt, "static_mutantIncubatorAddress"), "")
559+let dw = valueOrElse(getString(dn, "static_mutantIncubatorAddress"), "")
580560
581-func dD (dE) = {
582- let dF = toString(dE.issuer)
561+func dx (dy) = {
562+ let dz = toString(dy.issuer)
583563 if (if (if (if (if (if (if (if (if (if ((k == base58'2T'))
584- then (dF == v)
564+ then (dz == u)
585565 else false)
586566 then true
587- else (dF == du))
567+ else (dz == do))
588568 then true
589- else (dF == dv))
569+ else (dz == dp))
590570 then true
591- else (dF == dw))
571+ else (dz == dq))
592572 then true
593- else (dF == dx))
573+ else (dz == dr))
594574 then true
595- else (dF == dy))
575+ else (dz == ds))
596576 then true
597- else (dF == dz))
577+ else (dz == dt))
598578 then true
599- else (dF == dA))
579+ else (dz == du))
600580 then true
601- else (dF == dB))
602- then dE.name
603- else if ((dF == dC))
604- then dE.description
581+ else (dz == dv))
582+ then dy.name
583+ else if ((dz == dw))
584+ then dy.description
605585 else ""
606586 }
607587
608588
609-func dG (X,dH,by,dI,dJ,dK) = {
610- let dL = valueOrElse(getInteger(dI), 0)
611- if ((dL >= dK))
612- then throw((("You can stake max " + toString(dK)) + " of such NFTs"))
589+func dA (R,dB,bs,dC,dD,dE) = {
590+ let dF = valueOrElse(getInteger(dC), 0)
591+ if ((dF >= dE))
592+ then throw((("You can stake max " + toString(dE)) + " of such NFTs"))
613593 else {
614- let dM = cM(0, X, by)
615- let dN = dM._1
616- let dO = dM._2
617- $Tuple2((((dN :+ IntegerEntry(dI, (dL + 1))) :+ IntegerEntry(dJ, (valueOrElse(getInteger(dJ), 0) + 1))) :+ IntegerEntry(aj(dH, X), lastBlock.timestamp)), dO)
594+ let dG = cG(0, R, bs)
595+ let dH = dG._1
596+ let dI = dG._2
597+ $Tuple2((((dH :+ IntegerEntry(dC, (dF + 1))) :+ IntegerEntry(dD, (valueOrElse(getInteger(dD), 0) + 1))) :+ IntegerEntry(ad(dB, R), lastBlock.timestamp)), dI)
618598 }
619599 }
620600
621601
622-let dP = 3
602+let dJ = 3
623603
624-let dQ = [50000000, 25000000, 25000000]
604+let dK = [50000000, 25000000, 25000000]
625605
626-func dR (x,cN,dS) = {
627- let dT = cM(cN, x, 0)
628- let dN = dT._1
629- let dO = dT._2
630- let dU = if (if ((height >= l))
606+func dL (w,cH,dM) = {
607+ let dN = cG(cH, w, 0)
608+ let dH = dN._1
609+ let dI = dN._2
610+ let dO = if (if ((height >= l))
631611 then (n > height)
632612 else false)
633613 then {
634- let dV = am(x)
635- let dW = ((if (dS)
614+ let dP = ag(w)
615+ let dQ = ((if (dM)
636616 then 0
637- else valueOrElse(getInteger(dV), 0)) + cN)
638- let dX = (dW / d)
639- let dY = an(x)
640- let dZ = (dX - valueOrElse(getInteger(dY), 0))
641- let ea = (valueOrElse(getInteger(ao), 0) + dZ)
642- if (if (dS)
617+ else valueOrElse(getInteger(dP), 0)) + cH)
618+ let dR = (dQ / d)
619+ let dS = ah(w)
620+ let dT = (dR - valueOrElse(getInteger(dS), 0))
621+ let dU = (valueOrElse(getInteger(ai), 0) + dT)
622+ if (if (dM)
643623 then true
644- else (dZ > 0))
624+ else (dT > 0))
645625 then {
646- let eb = valueOrElse(getString(ap), "")
647- let ec = ((x + ":") + aL(dX, 3))
648- let ed = if (contains(eb, x))
626+ let dV = valueOrElse(getString(aj), "")
627+ let dW = ((w + ":") + aF(dR, 3))
628+ let dX = if (contains(dV, w))
649629 then {
650- let ee = split_51C(eb, x)
651- if ((ee[0] == ""))
630+ let dY = split_51C(dV, w)
631+ if ((dY[0] == ""))
652632 then {
653- let ef = drop(ee[1], 4)
654- if ((ef == ""))
655- then if ((dX == 0))
633+ let dZ = drop(dY[1], 4)
634+ if ((dZ == ""))
635+ then if ((dR == 0))
656636 then ""
657- else ec
658- else if ((dX == 0))
659- then drop(ef, 1)
660- else (ec + ef)
637+ else dW
638+ else if ((dR == 0))
639+ then drop(dZ, 1)
640+ else (dW + dZ)
661641 }
662642 else {
663- let ef = drop(ee[1], 4)
664- if ((ef == ""))
665- then if ((dX == 0))
666- then dropRight(ee[0], 1)
667- else (ee[0] + ec)
668- else if ((dX == 0))
669- then (ee[0] + drop(ef, 1))
670- else ((ee[0] + ec) + ef)
643+ let dZ = drop(dY[1], 4)
644+ if ((dZ == ""))
645+ then if ((dR == 0))
646+ then dropRight(dY[0], 1)
647+ else (dY[0] + dW)
648+ else if ((dR == 0))
649+ then (dY[0] + drop(dZ, 1))
650+ else ((dY[0] + dW) + dZ)
671651 }
672652 }
673- else if ((dX == 0))
674- then eb
675- else if ((eb == ""))
676- then ec
677- else ((eb + "_") + ec)
678-[IntegerEntry(dV, dW), IntegerEntry(dY, dX), IntegerEntry(ao, ea), StringEntry(ap, ed)]
653+ else if ((dR == 0))
654+ then dV
655+ else if ((dV == ""))
656+ then dW
657+ else ((dV + "_") + dW)
658+[IntegerEntry(dP, dQ), IntegerEntry(dS, dR), IntegerEntry(ai, dU), StringEntry(aj, dX)]
679659 }
680- else [IntegerEntry(dV, dW)]
660+ else [IntegerEntry(dP, dQ)]
681661 }
682662 else nil
683- $Tuple2((dN ++ dU), dO)
663+ $Tuple2((dH ++ dO), dI)
684664 }
685665
686666
687-@Callable(cf)
688-func saveLastTx () = if (!(containsElement([R, T], cf.caller)))
667+@Callable(bZ)
668+func saveLastTx () = if (!(containsElement([L, N], bZ.caller)))
689669 then throw("Access denied")
690- else $Tuple2(ce(cf), 42)
670+ else $Tuple2(bY(bZ), 42)
691671
692672
693673
694-@Callable(cf)
695-func constructorV1 (eg,eh) = if ((cf.caller != this))
674+@Callable(bZ)
675+func constructorV1 (ea,eb) = if ((bZ.caller != this))
696676 then throw("Permission denied")
697677 else {
698- let ei = addressFromStringValue(eh)
699-[IntegerEntry(ac, getIntegerValue(ei, ac)), BinaryEntry(ad, getBinaryValue(ei, ad)), StringEntry(E(), eg), StringEntry(U, eh)]
678+ let ec = addressFromStringValue(eb)
679+[IntegerEntry(W, getIntegerValue(ec, W)), BinaryEntry(X, getBinaryValue(ec, X)), StringEntry(D(), ea), StringEntry(O, eb)]
700680 }
701681
702682
703683
704-@Callable(cf)
705-func setBlocked (ej) = if ((cf.caller != this))
684+@Callable(bZ)
685+func setBlocked (ed) = if ((bZ.caller != this))
706686 then throw("permission denied")
707- else [BooleanEntry(V(), ej)]
687+ else [BooleanEntry(P(), ed)]
708688
709689
710690
711-@Callable(cf)
712-func unstakeAcres (ek) = {
713- let el = ce(cf)
691+@Callable(bZ)
692+func unstakeAcres (ee) = {
693+ let ef = bY(bZ)
714694 if (if ((height >= l))
715695 then (n > height)
716696 else false)
717697 then throw("You can't unstake during Xmas promo period")
718- else if ((0 >= ek))
698+ else if ((0 >= ee))
719699 then throw("Amount should be positive")
720700 else {
721- let x = toString(cf.caller)
722- if ((size(cf.payments) != 0))
701+ let w = toString(bZ.caller)
702+ if ((size(bZ.payments) != 0))
723703 then throw("No payments required")
724704 else {
725- let em = (valueOrElse(getInteger(R, bB(x)), 0) + u)
726- if ((em > lastBlock.timestamp))
727- then throw(("You traded some WLGOLD, cannot unstake until " + toString(em)))
705+ let eg = (valueOrElse(getInteger(L, bv(w)), 0) + t)
706+ if ((eg > lastBlock.timestamp))
707+ then throw(("You traded some WLGOLD, cannot unstake until " + toString(eg)))
728708 else {
729- let en = cM(-(ek), x, 0)
730- let dN = en._1
731- let dO = en._2
732- $Tuple2(((dN :+ ScriptTransfer(cf.caller, ek, ae)) ++ el), dO)
709+ let eh = cG(-(ee), w, 0)
710+ let dH = eh._1
711+ let dI = eh._2
712+ $Tuple2(((dH :+ ScriptTransfer(bZ.caller, ee, Y)) ++ ef), dI)
733713 }
734714 }
735715 }
737717
738718
739719
740-@Callable(cf)
720+@Callable(bZ)
741721 func stakeAcres () = {
742- let el = ce(cf)
743- let x = toString(cf.caller)
744- if ((size(cf.payments) != 1))
722+ let ef = bY(bZ)
723+ let w = toString(bZ.caller)
724+ if ((size(bZ.payments) != 1))
745725 then throw("exactly 1 payment must be attached")
746726 else {
747- let eo = cf.payments[0]
748- let cN = eo.amount
749- if (if (!(isDefined(eo.assetId)))
727+ let ei = bZ.payments[0]
728+ let cH = ei.amount
729+ if (if (!(isDefined(ei.assetId)))
750730 then true
751- else (value(eo.assetId) != ae))
731+ else (value(ei.assetId) != Y))
752732 then throw("ACRES payments only!")
753733 else {
754- let ep = dR(x, cN, false)
755- let eq = ep._1
756- let dO = ep._2
757- $Tuple2((eq ++ el), dO)
734+ let ej = dL(w, cH, false)
735+ let ek = ej._1
736+ let dI = ej._2
737+ $Tuple2((ek ++ ef), dI)
758738 }
759739 }
760740 }
761741
762742
763743
764-@Callable(cf)
744+@Callable(bZ)
765745 func buyAcres () = {
766- let el = ce(cf)
767- if ((size(cf.payments) != 1))
746+ let ef = bY(bZ)
747+ if ((size(bZ.payments) != 1))
768748 then throw("exactly 1 payment must be attached")
769749 else {
770- let eo = cf.payments[0]
771- let er = eo.amount
772- if (if (!(isDefined(eo.assetId)))
750+ let ei = bZ.payments[0]
751+ let el = ei.amount
752+ if (if (!(isDefined(ei.assetId)))
773753 then true
774- else (value(eo.assetId) != r))
754+ else (value(ei.assetId) != r))
775755 then throw("USDT payments only!")
776- else if ((b > er))
777- then throw((("Min payment should be " + aB(b, 6)) + " USDT"))
756+ else if ((b > el))
757+ then throw((("Min payment should be " + av(b, 6)) + " USDT"))
778758 else {
779- let es = (er * g)
780- let et = fraction(er, d, dg(er))
781- let eu = addressFromStringValue(getStringValue(U))
782- let ev = invoke(eu, "requestAcresCallback", [es], nil)
783- if ((ev == ev))
759+ let em = (el * g)
760+ let en = fraction(el, d, da(el))
761+ let eo = addressFromStringValue(getStringValue(O))
762+ let ep = invoke(eo, "requestAcresCallback", [em], nil)
763+ if ((ep == ep))
784764 then {
785- let ew = as(invoke(R, "burnWlgold", [et], nil))
786- $Tuple2(([ScriptTransfer(cf.caller, es, ae)] ++ el), ew)
765+ let eq = am(invoke(L, "burnWlgold", [en], nil))
766+ $Tuple2(([ScriptTransfer(bZ.caller, em, Y)] ++ ef), eq)
787767 }
788768 else throw("Strict value is not equal to itself.")
789769 }
792772
793773
794774
795-@Callable(cf)
796-func buyAcresREADONLY (er) = {
797- let es = (er * g)
798- let ex = fraction(er, d, dg(er))
799- $Tuple2(nil, [es, b, es, ex])
775+@Callable(bZ)
776+func buyAcresREADONLY (el) = {
777+ let em = (el * g)
778+ let er = fraction(el, d, da(el))
779+ $Tuple2(nil, [em, b, em, er])
800780 }
801781
802782
803783
804-@Callable(cf)
784+@Callable(bZ)
805785 func sellAcres () = {
806- let el = ce(cf)
807- if ((size(cf.payments) != 1))
786+ let ef = bY(bZ)
787+ if ((size(bZ.payments) != 1))
808788 then throw("exactly 1 payment must be attached")
809789 else {
810- let eo = cf.payments[0]
811- let es = eo.amount
812- if (if (!(isDefined(eo.assetId)))
790+ let ei = bZ.payments[0]
791+ let em = ei.amount
792+ if (if (!(isDefined(ei.assetId)))
813793 then true
814- else (value(eo.assetId) != ae))
794+ else (value(ei.assetId) != Y))
815795 then throw("ACRES payments only!")
816- else if ((c > es))
817- then throw((("Min payment should be " + aB(c, 8)) + " ACRES"))
796+ else if ((c > em))
797+ then throw((("Min payment should be " + av(c, 8)) + " ACRES"))
818798 else {
819- let X = toString(cf.caller)
820- let ey = dn()
821- let ez = ey._1
822- let eA = ey._2
823- let eB = (eA * g)
824- if ((es > eB))
825- then throw((("You can sell max " + aB(eB, 8)) + " ACRES"))
799+ let R = toString(bZ.caller)
800+ let es = dh()
801+ let et = es._1
802+ let eu = es._2
803+ let ev = (eu * g)
804+ if ((em > ev))
805+ then throw((("You can sell max " + av(ev, 8)) + " ACRES"))
826806 else {
827- let er = ((es / g) / 2)
828- $Tuple2(([ez, IntegerEntry(bF, (eA - er)), ScriptTransfer(cf.caller, er, r)] ++ el), er)
807+ let el = ((em / g) / 2)
808+ $Tuple2(([et, IntegerEntry(bz, (eu - el)), ScriptTransfer(bZ.caller, el, r)] ++ ef), el)
829809 }
830810 }
831811 }
833813
834814
835815
836-@Callable(cf)
837-func sellAcresREADONLY (x,es) = {
838- let eC = dn()
839- let ez = eC._1
840- let eA = eC._2
841- let er = ((es / g) / 2)
842- $Tuple2(nil, [er, c, (eA * g), 0])
816+@Callable(bZ)
817+func sellAcresREADONLY (w,em) = {
818+ let ew = dh()
819+ let et = ew._1
820+ let eu = ew._2
821+ let el = ((em / g) / 2)
822+ $Tuple2(nil, [el, c, (eu * g), 0])
843823 }
844824
845825
846826
847-@Callable(cf)
827+@Callable(bZ)
848828 func convertOldStakes () = {
849- let el = ce(cf)
850- if ((bC > lastBlock.timestamp))
851- then throw(("Disabled until " + toString((bC / 1000))))
829+ let ef = bY(bZ)
830+ if ((bw > lastBlock.timestamp))
831+ then throw(("Disabled until " + toString((bw / 1000))))
852832 else {
853- let x = toString(cf.caller)
854- if ((size(cf.payments) != 0))
833+ let w = toString(bZ.caller)
834+ if ((size(bZ.payments) != 0))
855835 then throw("No payments required")
856836 else {
857- let eu = addressFromStringValue(getStringValue(U))
858- let ek = valueOrElse(getInteger(eu, aS(x)), 0)
859- let eD = if ((ek > 0))
860- then aA(invoke(eu, "unstakeAcresCallback", [ek, x], nil))
837+ let eo = addressFromStringValue(getStringValue(O))
838+ let ee = valueOrElse(getInteger(eo, aM(w)), 0)
839+ let ex = if ((ee > 0))
840+ then au(invoke(eo, "unstakeAcresCallback", [ee, w], nil))
861841 else $Tuple2(0, 0)
862- let eE = addressFromStringValue(v)
863- let eF = getString(eE, ag(x))
864- let eG = if (isDefined(eF))
842+ let ey = addressFromStringValue(u)
843+ let ez = getString(ey, aa(w))
844+ let eA = if (isDefined(ez))
865845 then {
866- let eH = split_51C(value(eF), "_")
867- if ((size(eH) > bD))
868- then throw((("You have more than " + toString(bD)) + " lands staked, please contact support, we'll process your case manually"))
846+ let eB = split_51C(value(ez), "_")
847+ if ((size(eB) > bx))
848+ then throw((("You have more than " + toString(bx)) + " lands staked, please contact support, we'll process your case manually"))
869849 else {
870- func eI (bn,eJ) = if ((eJ == ""))
850+ func eC (bh,eD) = if ((eD == ""))
871851 then throw("landAssetId is required")
872852 else {
873- let ef = av(invoke(eE, "unstakeLandCallback", [eJ, x], nil))
874- if ((ef == ef))
875- then $Tuple5((bn._1 + ef._1), (bn._2 + ef._2), (bn._3 + ef._3), (bn._4 + ef._4), (bn._5 + ef._5))
853+ let dZ = ap(invoke(ey, "unstakeLandCallback", [eD, w], nil))
854+ if ((dZ == dZ))
855+ then $Tuple5((bh._1 + dZ._1), (bh._2 + dZ._2), (bh._3 + dZ._3), (bh._4 + dZ._4), (bh._5 + dZ._5))
876856 else throw("Strict value is not equal to itself.")
877857 }
878858
879- let eK = {
880- let bp = eH
881- let bq = size(bp)
882- let br = $Tuple5(0, 0, 0, 0, 0)
883- func bs (bt,bu) = if ((bu >= bq))
884- then bt
885- else eI(bt, bp[bu])
859+ let eE = {
860+ let bj = eB
861+ let bk = size(bj)
862+ let bl = $Tuple5(0, 0, 0, 0, 0)
863+ func bm (bn,bo) = if ((bo >= bk))
864+ then bn
865+ else eC(bn, bj[bo])
886866
887- func bv (bt,bu) = if ((bu >= bq))
888- then bt
867+ func bp (bn,bo) = if ((bo >= bk))
868+ then bn
889869 else throw("List size exceeds 14")
890870
891- bv(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(br, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14)
871+ bp(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bl, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14)
892872 }
893- if ((eK == eK))
873+ if ((eE == eE))
894874 then {
895- let eL = invoke(eE, "unstakeLandsFinalizeCallback", [x], nil)
896- if ((eL == eL))
875+ let eF = invoke(ey, "unstakeLandsFinalizeCallback", [w], nil)
876+ if ((eF == eF))
897877 then {
898- let ev = invoke(eu, "requestAcresCallback", [(((eK._1 + eK._2) + eK._3) + eK._4)], nil)
899- if ((ev == ev))
878+ let ep = invoke(eo, "requestAcresCallback", [(((eE._1 + eE._2) + eE._3) + eE._4)], nil)
879+ if ((ep == ep))
900880 then {
901- let eM = cy(bP, bT, cb, bZ, 3, bI, cd, cf.caller)
902- let eN = eM._1
903- let cH = eM._2
904- $Tuple6(eK._1, eK._2, eK._3, eK._4, eK._5, eN)
881+ let eG = cs(bJ, bN, bV, bT, 3, bC, bX, bZ.caller)
882+ let eH = eG._1
883+ let cB = eG._2
884+ $Tuple6(eE._1, eE._2, eE._3, eE._4, eE._5, eH)
905885 }
906886 else throw("Strict value is not equal to itself.")
907887 }
911891 }
912892 }
913893 else $Tuple6(0, 0, 0, 0, 0, nil)
914- let eO = valueOrElse(getString(eE, ai(x)), "")
915- let eP = if ((eO != ""))
916- then az(invoke(eE, "unstakeDuckCallback", [eO, x], nil))
894+ let eI = valueOrElse(getString(ey, ac(w)), "")
895+ let eJ = if ((eI != ""))
896+ then at(invoke(ey, "unstakeDuckCallback", [eI, w], nil))
917897 else $Tuple3(0, 0, 0)
918- let eQ = cM((((((((eD._1 + eG._1) + eG._2) + eG._3) + eG._4) + eP._1) + eP._2) + eP._3), x, 0)
919- $Tuple2(((eG._6 ++ eQ._1) ++ el), $Tuple3(eD._2, eG._5, eQ._2))
898+ let eK = cG((((((((ex._1 + eA._1) + eA._2) + eA._3) + eA._4) + eJ._1) + eJ._2) + eJ._3), w, 0)
899+ $Tuple2(((eA._6 ++ eK._1) ++ ef), $Tuple3(ex._2, eA._5, eK._2))
920900 }
921901 }
922902 }
923903
924904
925905
926-@Callable(cf)
927-func unstakeLandsREADONLY (x) = {
928- let eE = addressFromStringValue(v)
929- let eF = getString(eE, ag(x))
930- let eG = if (isDefined(eF))
906+@Callable(bZ)
907+func unstakeLandsREADONLY (w) = {
908+ let ey = addressFromStringValue(u)
909+ let ez = getString(ey, aa(w))
910+ let eA = if (isDefined(ez))
931911 then {
932- let eH = split_51C(value(eF), "_")
933- func eI (bn,eJ) = if ((eJ == ""))
912+ let eB = split_51C(value(ez), "_")
913+ func eC (bh,eD) = if ((eD == ""))
934914 then throw("landAssetId is required")
935915 else {
936- let ef = ay(invoke(eE, "unstakeLandREADONLY", [eJ, x], nil))
937- $Tuple4((bn._1 + ef._1), (bn._2 + ef._2), (bn._3 + ef._3), (bn._4 + ef._4))
916+ let dZ = as(invoke(ey, "unstakeLandREADONLY", [eD, w], nil))
917+ $Tuple4((bh._1 + dZ._1), (bh._2 + dZ._2), (bh._3 + dZ._3), (bh._4 + dZ._4))
938918 }
939919
940- let bp = eH
941- let bq = size(bp)
942- let br = $Tuple4(0, 0, 0, 0)
943- func bs (bt,bu) = if ((bu >= bq))
944- then bt
945- else eI(bt, bp[bu])
920+ let bj = eB
921+ let bk = size(bj)
922+ let bl = $Tuple4(0, 0, 0, 0)
923+ func bm (bn,bo) = if ((bo >= bk))
924+ then bn
925+ else eC(bn, bj[bo])
946926
947- func bv (bt,bu) = if ((bu >= bq))
948- then bt
927+ func bp (bn,bo) = if ((bo >= bk))
928+ then bn
949929 else throw("List size exceeds 100")
950930
951- bv(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(br, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
931+ bp(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bl, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
952932 }
953933 else $Tuple4(0, 0, 0, 0)
954- $Tuple2(nil, eG)
934+ $Tuple2(nil, eA)
955935 }
956936
957937
958938
959-@Callable(cf)
960-func stakeAcresCallback (X) = if ((cf.caller != addressFromStringValue(v)))
939+@Callable(bZ)
940+func stakeAcresCallback (R) = if ((bZ.caller != addressFromStringValue(u)))
961941 then throw("Permission denied")
962- else cM(cf.payments[0].amount, X, 0)
942+ else cG(bZ.payments[0].amount, R, 0)
963943
964944
965945
966-@Callable(cf)
967-func simulateStakeAcresREADONLY (x,eR) = {
968- let cS = aS(x)
969- let cU = (valueOrElse(getInteger(cS), 0) + eR)
970- let cV = valueOrElse(getInteger(aU), 0)
971- let cW = aT(x)
972- let cX = valueOrElse(getInteger(cW), 0)
973- let eS = valueOrElse(getInteger(Q, bh(x)), 0)
974- let eT = bx(cU, eS)
975- let db = eT._1
976- let dc = eT._2
977- let dd = valueOrElse(getInteger(aV), 0)
978- let eU = ((dd + db) - cX)
979- $Tuple2(nil, [cX, db, dd, eU])
946+@Callable(bZ)
947+func simulateStakeAcresREADONLY (w,eL) = {
948+ let cM = aM(w)
949+ let cO = (valueOrElse(getInteger(cM), 0) + eL)
950+ let cP = valueOrElse(getInteger(aO), 0)
951+ let cQ = aN(w)
952+ let cR = valueOrElse(getInteger(cQ), 0)
953+ let eM = valueOrElse(getInteger(K, bb(w)), 0)
954+ let eN = br(cO, eM)
955+ let cV = eN._1
956+ let cW = eN._2
957+ let cX = valueOrElse(getInteger(aP), 0)
958+ let eO = ((cX + cV) - cR)
959+ $Tuple2(nil, [cR, cV, cX, eO])
980960 }
981961
982962
983963
984-@Callable(cf)
985-func issuePickC1 (eV) = if ((cf.caller != R))
964+@Callable(bZ)
965+func issuePickC1 (eP) = if ((bZ.caller != L))
986966 then throw("Permission denied")
987- else cy(bQ, bS, cb, bV, 1, bJ, cd, addressFromStringValue(eV))
967+ else cs(bK, bM, bV, bP, 1, bD, bX, addressFromStringValue(eP))
988968
989969
990970
991-@Callable(cf)
971+@Callable(bZ)
992972 func stakeNFT () = {
993- let el = ce(cf)
994- if ((size(cf.payments) != 1))
973+ let ef = bY(bZ)
974+ if ((size(bZ.payments) != 1))
995975 then throw("Exactly one payment required")
996976 else {
997- let eo = value(cf.payments[0])
998- if ((eo.amount != 1))
977+ let ei = value(bZ.payments[0])
978+ if ((ei.amount != 1))
999979 then throw("NFT token should be attached as payment")
1000980 else {
1001- let ak = value(eo.assetId)
1002- let eW = value(assetInfo(ak))
1003- let dH = toBase58String(ak)
1004- let X = toString(cf.caller)
1005- let eX = al(X)
1006- let eY = getString(eX)
1007- let eZ = if (isDefined(eY))
1008- then split_4C(value(eY), "_")
981+ let ae = value(ei.assetId)
982+ let eQ = value(assetInfo(ae))
983+ let dB = toBase58String(ae)
984+ let R = toString(bZ.caller)
985+ let eR = af(R)
986+ let eS = getString(eR)
987+ let eT = if (isDefined(eS))
988+ then split_4C(value(eS), "_")
1009989 else nil
1010- if (containsElement(eZ, dH))
1011- then throw(("Your staked NFTs already contain " + dH))
1012- else if ((size(eZ) >= aZ))
1013- then throw((("Your already staked max (" + toString(aZ)) + ") NFTs"))
990+ if (containsElement(eT, dB))
991+ then throw(("Your staked NFTs already contain " + dB))
992+ else if ((size(eT) >= aT))
993+ then throw((("Your already staked max (" + toString(aT)) + ") NFTs"))
1014994 else {
1015- let fa = StringEntry(eX, makeString_2C((eZ :+ dH), "_"))
1016- if ((eW.issuer == this))
995+ let eU = StringEntry(eR, makeString_2C((eT :+ dB), "_"))
996+ if ((eQ.issuer == this))
1017997 then {
1018- let fb = dG(X, dH, (cI(value(eW.description)) * 10000), bf(X), bc, aW)
1019- let dN = fb._1
1020- let dO = fb._2
1021- $Tuple2(((el ++ dN) :+ fa), dO)
998+ let eV = dA(R, dB, (cC(value(eQ.description)) * 10000), aZ(R), aW, aQ)
999+ let dH = eV._1
1000+ let dI = eV._2
1001+ $Tuple2(((ef ++ dH) :+ eU), dI)
10221002 }
1023- else if ((dD(eW) == ""))
1003+ else if ((dx(eQ) == ""))
10241004 then throw("Only WavesLands and Arkimals NFT tokens are accepted")
10251005 else {
1026- let fc = dG(X, dH, aY, bg(X), bd, aX)
1027- let dN = fc._1
1028- let dO = fc._2
1029- $Tuple2(((el ++ dN) :+ fa), dO)
1006+ let eW = dA(R, dB, aS, ba(R), aX, aR)
1007+ let dH = eW._1
1008+ let dI = eW._2
1009+ $Tuple2(((ef ++ dH) :+ eU), dI)
10301010 }
10311011 }
10321012 }
10351015
10361016
10371017
1038-@Callable(cf)
1039-func unstakeNFT (dH) = {
1040- let el = ce(cf)
1041- if ((size(cf.payments) != 0))
1018+@Callable(bZ)
1019+func unstakeNFT (dB) = {
1020+ let ef = bY(bZ)
1021+ if ((size(bZ.payments) != 0))
10421022 then throw("No payments required")
10431023 else {
1044- let ak = fromBase58String(dH)
1045- let X = toString(cf.caller)
1046- let eW = value(assetInfo(ak))
1047- let cR = aj(dH, X)
1048- if (!(isDefined(getInteger(cR))))
1049- then throw((("NFT " + eW.name) + " is not staked by you"))
1024+ let ae = fromBase58String(dB)
1025+ let R = toString(bZ.caller)
1026+ let eQ = value(assetInfo(ae))
1027+ let cL = ad(dB, R)
1028+ if (!(isDefined(getInteger(cL))))
1029+ then throw((("NFT " + eQ.name) + " is not staked by you"))
10501030 else {
1051- let eX = al(X)
1052- let eZ = split_4C(valueOrElse(getString(eX), ""), "_")
1053- let L = indexOf(eZ, dH)
1054- if (!(isDefined(L)))
1055- then throw(("Your staked NFTs don't contain " + dH))
1031+ let eR = af(R)
1032+ let eT = split_4C(valueOrElse(getString(eR), ""), "_")
1033+ let I = indexOf(eT, dB)
1034+ if (!(isDefined(I)))
1035+ then throw(("Your staked NFTs don't contain " + dB))
10561036 else {
1057- let fa = if ((size(eZ) > 1))
1058- then StringEntry(eX, makeString_2C(removeByIndex(eZ, value(L)), "_"))
1059- else DeleteEntry(eX)
1060- let fd = (eW.issuer == this)
1061- if (fd)
1037+ let eU = if ((size(eT) > 1))
1038+ then StringEntry(eR, makeString_2C(removeByIndex(eT, value(I)), "_"))
1039+ else DeleteEntry(eR)
1040+ let eX = (eQ.issuer == this)
1041+ if (eX)
10621042 then {
1063- let fe = valueOrElse(getInteger(bf(X)), 0)
1064- let ff = (cI(value(eW.description)) * 10000)
1065- let fg = cM(0, X, -(ff))
1066- let dN = fg._1
1067- let dO = fg._2
1068- $Tuple2(((((((dN :+ fa) :+ IntegerEntry(bf(X), (fe - 1))) :+ IntegerEntry(bc, max([0, (valueOrElse(getInteger(bc), 0) - 1)]))) :+ DeleteEntry(aj(toBase58String(ak), X))) :+ ScriptTransfer(cf.caller, 1, ak)) ++ el), dO)
1043+ let eY = valueOrElse(getInteger(aZ(R)), 0)
1044+ let eZ = (cC(value(eQ.description)) * 10000)
1045+ let fa = cG(0, R, -(eZ))
1046+ let dH = fa._1
1047+ let dI = fa._2
1048+ $Tuple2(((((((dH :+ eU) :+ IntegerEntry(aZ(R), (eY - 1))) :+ IntegerEntry(aW, max([0, (valueOrElse(getInteger(aW), 0) - 1)]))) :+ DeleteEntry(ad(toBase58String(ae), R))) :+ ScriptTransfer(bZ.caller, 1, ae)) ++ ef), dI)
10691049 }
10701050 else {
1071- let fh = dD(eW)
1072- if ((fh == ""))
1051+ let fb = dx(eQ)
1052+ if ((fb == ""))
10731053 then throw("Only WavesLands and Arkimals NFT tokens are accepted")
10741054 else {
1075- let fi = valueOrElse(getInteger(bg(X)), 0)
1076- let fj = cM(0, X, -(aY))
1077- let dN = fj._1
1078- let dO = fj._2
1079- $Tuple2((((((dN :+ fa) :+ IntegerEntry(bg(X), (fi - 1))) :+ DeleteEntry(aj(toBase58String(ak), X))) :+ ScriptTransfer(cf.caller, 1, ak)) ++ el), dO)
1055+ let fc = valueOrElse(getInteger(ba(R)), 0)
1056+ let fd = cG(0, R, -(aS))
1057+ let dH = fd._1
1058+ let dI = fd._2
1059+ $Tuple2((((((dH :+ eU) :+ IntegerEntry(ba(R), (fc - 1))) :+ DeleteEntry(ad(toBase58String(ae), R))) :+ ScriptTransfer(bZ.caller, 1, ae)) ++ ef), dI)
10801060 }
10811061 }
10821062 }
10861066
10871067
10881068
1089-@Callable(cf)
1069+@Callable(bZ)
10901070 func exchangeNFTs () = {
1091- let el = ce(cf)
1092- if ((3 > size(cf.payments)))
1071+ let ef = bY(bZ)
1072+ if ((3 > size(bZ.payments)))
10931073 then throw("Min one WLGOLD and 2 NFT payments allowed")
1094- else if ((size(cf.payments) > 10))
1074+ else if ((size(bZ.payments) > 10))
10951075 then throw("Max one WLGOLD and 9 NFT payments allowed")
10961076 else {
1097- let X = toString(cf.caller)
1098- func fk (bn,eo) = {
1099- let ak = valueOrErrorMessage(eo.assetId, "WAVES payments not allowed")
1100- if ((ak == ab))
1101- then $Tuple4((bn._1 + eo.amount), bn._2, bn._3, bn._4)
1077+ let R = toString(bZ.caller)
1078+ func fe (bh,ei) = {
1079+ let ae = valueOrErrorMessage(ei.assetId, "WAVES payments not allowed")
1080+ if ((ae == V))
1081+ then $Tuple4((bh._1 + ei.amount), bh._2, bh._3, bh._4)
11021082 else {
1103- let eW = value(assetInfo(ak))
1104- if ((eW.issuer != this))
1083+ let eQ = value(assetInfo(ae))
1084+ if ((eQ.issuer != this))
11051085 then throw("Only WL-issued NFTs allowed")
11061086 else {
1107- let fl = cK(value(eW.description))
1108- if (if ((bn._4 > 0))
1109- then (fl != bn._4)
1087+ let ff = cE(value(eQ.description))
1088+ if (if ((bh._4 > 0))
1089+ then (ff != bh._4)
11101090 else false)
11111091 then throw("You can exchange only NFTs of the same rarity")
11121092 else {
1113- let cD = cI(value(eW.description))
1114- $Tuple4(bn._1, (bn._2 + cD), (bn._3 :+ Burn(ak, 1)), fl)
1093+ let cx = cC(value(eQ.description))
1094+ $Tuple4(bh._1, (bh._2 + cx), (bh._3 :+ Burn(ae, 1)), ff)
11151095 }
11161096 }
11171097 }
11181098 }
11191099
1120- let fm = {
1121- let bp = cf.payments
1122- let bq = size(bp)
1123- let br = $Tuple4(0, 0, nil, -1)
1124- func bs (bt,bu) = if ((bu >= bq))
1125- then bt
1126- else fk(bt, bp[bu])
1100+ let fg = {
1101+ let bj = bZ.payments
1102+ let bk = size(bj)
1103+ let bl = $Tuple4(0, 0, nil, -1)
1104+ func bm (bn,bo) = if ((bo >= bk))
1105+ then bn
1106+ else fe(bn, bj[bo])
11271107
1128- func bv (bt,bu) = if ((bu >= bq))
1129- then bt
1108+ func bp (bn,bo) = if ((bo >= bk))
1109+ then bn
11301110 else throw("List size exceeds 10")
11311111
1132- bv(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(br, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
1112+ bp(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bl, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
11331113 }
1134- let fn = fm._1
1135- let fo = fm._2
1136- let fp = fm._3
1137- let cC = fm._4
1138- let fq = if ((cC == bV))
1139- then if ((bK[bL] > fo))
1140- then bV
1141- else if ((bK[bM] > fo))
1142- then bW
1143- else throw((("You can advance only one level of rarity, max total bonus " + toString(bK[bM])) + "%"))
1144- else if ((cC == bW))
1145- then if ((bK[bM] > fo))
1146- then bW
1147- else if ((bK[bN] > fo))
1148- then bX
1149- else throw((("You can advance only one level of rarity, max total bonus " + toString(bK[bN])) + "%"))
1150- else if ((cC == bX))
1151- then if ((bK[bN] > fo))
1152- then bX
1153- else bY
1154- else if ((cC == bY))
1155- then bY
1156- else if ((cC == bZ))
1114+ let fh = fg._1
1115+ let fi = fg._2
1116+ let fj = fg._3
1117+ let cw = fg._4
1118+ let fk = if ((cw == bP))
1119+ then if ((bE[bF] > fi))
1120+ then bP
1121+ else if ((bE[bG] > fi))
1122+ then bQ
1123+ else throw((("You can advance only one level of rarity, max total bonus " + toString(bE[bG])) + "%"))
1124+ else if ((cw == bQ))
1125+ then if ((bE[bG] > fi))
1126+ then bQ
1127+ else if ((bE[bH] > fi))
1128+ then bR
1129+ else throw((("You can advance only one level of rarity, max total bonus " + toString(bE[bH])) + "%"))
1130+ else if ((cw == bR))
1131+ then if ((bE[bH] > fi))
1132+ then bR
1133+ else bS
1134+ else if ((cw == bS))
1135+ then bS
1136+ else if ((cw == bT))
11571137 then throw("You can't exchange NFTs of this rarity")
11581138 else throw("Unknown rarity")
1159- let fr = fraction(fo, e, dg(0))
1160- let fs = (fn - fr)
1161- let ft = (fr / 2)
1162- let ew = as(invoke(R, "burnWlgold", [(fr - ft)], nil))
1163- if ((0 > fs))
1164- then throw((("You need to attach " + aB(fr, 8)) + " WLGOLD as fee"))
1139+ let fl = fraction(fi, e, da(0))
1140+ let fm = (fh - fl)
1141+ let fn = (fl / 2)
1142+ let eq = am(invoke(L, "burnWlgold", [(fl - fn)], nil))
1143+ if ((0 > fm))
1144+ then throw((("You need to attach " + av(fl, 8)) + " WLGOLD as fee"))
11651145 else {
1166- let fu = if ((fs > 0))
1167- then [ScriptTransfer(cf.caller, fs, ab)]
1146+ let fo = if ((fm > 0))
1147+ then [ScriptTransfer(bZ.caller, fm, V)]
11681148 else nil
1169- let fv = cy(bQ, fq, cb, fq, fo, bJ, cd, cf.caller)
1170- let fw = fv._1
1171- let cH = fv._2
1172- let fx = size(fp)
1173- let fy = if ((fx == 0))
1149+ let fp = cs(bK, fk, bV, fk, fi, bD, bX, bZ.caller)
1150+ let fq = fp._1
1151+ let cB = fp._2
1152+ let fr = size(fj)
1153+ let fs = if ((fr == 0))
11741154 then nil
1175- else [IntegerEntry(bb, (valueOrElse(getInteger(bb), 0) + fx))]
1176- $Tuple2((((((fw ++ fp) ++ fy) ++ el) ++ fu) :+ ScriptTransfer(addressFromStringValue(getStringValue(R, bA)), ft, ab)), $Tuple2(cH, ew))
1155+ else [IntegerEntry(aV, (valueOrElse(getInteger(aV), 0) + fr))]
1156+ $Tuple2((((((fq ++ fj) ++ fs) ++ ef) ++ fo) :+ ScriptTransfer(addressFromStringValue(getStringValue(L, bu)), fn, V)), $Tuple2(cB, eq))
11771157 }
11781158 }
11791159 }
11801160
11811161
11821162
1183-@Callable(cf)
1163+@Callable(bZ)
11841164 func openNftChest () = {
1185- let el = ce(cf)
1186- if ((size(cf.payments) != 1))
1165+ let ef = bY(bZ)
1166+ if ((size(bZ.payments) != 1))
11871167 then throw("exactly 1 payment must be attached")
11881168 else {
1189- let eo = cf.payments[0]
1190- let et = eo.amount
1191- if (if (!(isDefined(eo.assetId)))
1169+ let ei = bZ.payments[0]
1170+ let en = ei.amount
1171+ if (if (!(isDefined(ei.assetId)))
11921172 then true
1193- else (value(eo.assetId) != ab))
1173+ else (value(ei.assetId) != V))
11941174 then throw("WLGOLD payments only!")
11951175 else {
1196- let fr = fraction(j, d, dg(0))
1197- let fs = (et - fr)
1198- let ft = (fr / 2)
1199- let ew = as(invoke(R, "burnWlgold", [(fr - ft)], nil))
1200- if ((0 > fs))
1201- then throw((("You need to attach " + aB(fr, 8)) + " WLGOLD as fee"))
1176+ let fl = fraction(j, d, da(0))
1177+ let fm = (en - fl)
1178+ let fn = (fl / 2)
1179+ let eq = am(invoke(L, "burnWlgold", [(fl - fn)], nil))
1180+ if ((0 > fm))
1181+ then throw((("You need to attach " + av(fl, 8)) + " WLGOLD as fee"))
12021182 else {
1203- let fu = if ((fs > 0))
1204- then [ScriptTransfer(cf.caller, fs, ab)]
1183+ let fo = if ((fm > 0))
1184+ then [ScriptTransfer(bZ.caller, fm, V)]
12051185 else nil
1206- let X = toString(cf.caller)
1207- let fz = Z(X)
1208- let fA = valueOrErrorMessage(getInteger(fz), "You have to commitForRandom() first!")
1209- if ((fA > height))
1210- then throw(("Random number is not ready yet, wait until height = " + toString(fA)))
1186+ let R = toString(bZ.caller)
1187+ let ft = T(R)
1188+ let fu = valueOrErrorMessage(getInteger(ft), "You have to commitForRandom() first!")
1189+ if ((fu > height))
1190+ then throw(("Random number is not ready yet, wait until height = " + toString(fu)))
12111191 else {
1212- let aJ = value(value(blockInfoByHeight(fA)).vrf)
1213- let aI = fromBase58String(split(valueOrElse(getString(Y(X)), "42_DEFAULT"), "_")[1])
1214- let fB = aG(100, aI, aJ)
1215- let fC = if ((84 > fB))
1216- then $Tuple2(1, bV)
1217- else if ((98 > fB))
1218- then $Tuple2(5, bW)
1219- else $Tuple2(10, bX)
1220- let cw = fC._1
1221- let cC = fC._2
1222- let fD = cy(bQ, cC, cb, cC, cw, bJ, cd, cf.caller)
1223- let fw = fD._1
1224- let cH = fD._2
1225- $Tuple2(((((fw ++ el) ++ fu) :+ ScriptTransfer(addressFromStringValue(getStringValue(R, bA)), ft, ab)) :+ DeleteEntry(fz)), $Tuple2(cH, ew))
1192+ let aD = value(value(blockInfoByHeight(fu)).vrf)
1193+ let aC = fromBase58String(split(valueOrElse(getString(S(R)), "42_DEFAULT"), "_")[1])
1194+ let fv = aA(100, aC, aD)
1195+ let fw = if ((84 > fv))
1196+ then $Tuple2(1, bP)
1197+ else if ((98 > fv))
1198+ then $Tuple2(5, bQ)
1199+ else $Tuple2(10, bR)
1200+ let cq = fw._1
1201+ let cw = fw._2
1202+ let fx = cs(bK, cw, bV, cw, cq, bD, bX, bZ.caller)
1203+ let fq = fx._1
1204+ let cB = fx._2
1205+ $Tuple2(((((fq ++ ef) ++ fo) :+ ScriptTransfer(addressFromStringValue(getStringValue(L, bu)), fn, V)) :+ DeleteEntry(ft)), $Tuple2(cB, eq))
12261206 }
12271207 }
12281208 }
12311211
12321212
12331213
1234-@Callable(cf)
1214+@Callable(bZ)
12351215 func commitForRandom () = {
1236- let el = ce(cf)
1237- let X = toString(cf.caller)
1238- let fz = Z(X)
1239- if (isDefined(getInteger(fz)))
1216+ let ef = bY(bZ)
1217+ let R = toString(bZ.caller)
1218+ let ft = T(R)
1219+ if (isDefined(getInteger(ft)))
12401220 then throw("You already commited for random, please use it")
12411221 else {
1242- let fA = (height + i)
1243- $Tuple2(([IntegerEntry(fz, fA)] ++ el), fA)
1222+ let fu = (height + i)
1223+ $Tuple2(([IntegerEntry(ft, fu)] ++ ef), fu)
12441224 }
12451225 }
12461226
12471227
12481228
1249-@Callable(cf)
1250-func drawDaylyPromo () = if ((cf.caller != this))
1229+@Callable(bZ)
1230+func drawDaylyPromo () = if ((bZ.caller != this))
12511231 then throw("Permission denied")
12521232 else {
1253- let fE = (height / o)
1254- let aH = valueOrElse(getInteger(ao), 0)
1255- if ((aH == 0))
1233+ let fy = (height / o)
1234+ let aB = valueOrElse(getInteger(ai), 0)
1235+ if ((aB == 0))
12561236 then throw("No tickets to draw")
12571237 else {
1258- let fF = (fE * o)
1259- let fG = if ((fF > q))
1260- then fF
1261- else (fF + q)
1262- let aJ = value(value(blockInfoByHeight(fG)).vrf)
1263- let eb = valueOrElse(getString(ap), "")
1264- if ((eb == ""))
1238+ let fz = (fy * o)
1239+ let fA = if ((fz > q))
1240+ then fz
1241+ else (fz + q)
1242+ let aD = value(value(blockInfoByHeight(fA)).vrf)
1243+ let dV = valueOrElse(getString(aj), "")
1244+ if ((dV == ""))
12651245 then throw("No participants")
12661246 else {
1267- func fH (fI,fJ) = if ((fJ >= dP))
1268- then fI
1247+ func fB (fC,fD) = if ((fD >= dJ))
1248+ then fC
12691249 else {
1270- let fB = aG(fI._1, fI._2, aJ)
1271- let fK = if ((fI._3 == ""))
1250+ let fv = aA(fC._1, fC._2, aD)
1251+ let fE = if ((fC._3 == ""))
12721252 then nil
1273- else split_51C(fI._3, "_")
1274- func fL (bn,fM) = {
1275- let fN = split(fM, ":")
1276- let X = fN[0]
1277- let dX = parseIntValue(fN[1])
1278- let fO = (bn._1 + dX)
1279- if (if ((bn._3 == ""))
1280- then (fO > fB)
1253+ else split_51C(fC._3, "_")
1254+ func fF (bh,fG) = {
1255+ let fH = split(fG, ":")
1256+ let R = fH[0]
1257+ let dR = parseIntValue(fH[1])
1258+ let fI = (bh._1 + dR)
1259+ if (if ((bh._3 == ""))
1260+ then (fI > fv)
12811261 else false)
1282- then $Tuple3(fO, dX, X)
1283- else $Tuple3(fO, bn._2, bn._3)
1262+ then $Tuple3(fI, dR, R)
1263+ else $Tuple3(fI, bh._2, bh._3)
12841264 }
12851265
1286- let ef = {
1287- let bp = fK
1288- let bq = size(bp)
1289- let br = $Tuple3(0, 0, "")
1290- func bs (bt,bu) = if ((bu >= bq))
1291- then bt
1292- else fL(bt, bp[bu])
1266+ let dZ = {
1267+ let bj = fE
1268+ let bk = size(bj)
1269+ let bl = $Tuple3(0, 0, "")
1270+ func bm (bn,bo) = if ((bo >= bk))
1271+ then bn
1272+ else fF(bn, bj[bo])
12931273
1294- func bv (bt,bu) = if ((bu >= bq))
1295- then bt
1274+ func bp (bn,bo) = if ((bo >= bk))
1275+ then bn
12961276 else throw("List size exceeds 200")
12971277
1298- bv(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(br, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100), 101), 102), 103), 104), 105), 106), 107), 108), 109), 110), 111), 112), 113), 114), 115), 116), 117), 118), 119), 120), 121), 122), 123), 124), 125), 126), 127), 128), 129), 130), 131), 132), 133), 134), 135), 136), 137), 138), 139), 140), 141), 142), 143), 144), 145), 146), 147), 148), 149), 150), 151), 152), 153), 154), 155), 156), 157), 158), 159), 160), 161), 162), 163), 164), 165), 166), 167), 168), 169), 170), 171), 172), 173), 174), 175), 176), 177), 178), 179), 180), 181), 182), 183), 184), 185), 186), 187), 188), 189), 190), 191), 192), 193), 194), 195), 196), 197), 198), 199), 200)
1278+ bp(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bl, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100), 101), 102), 103), 104), 105), 106), 107), 108), 109), 110), 111), 112), 113), 114), 115), 116), 117), 118), 119), 120), 121), 122), 123), 124), 125), 126), 127), 128), 129), 130), 131), 132), 133), 134), 135), 136), 137), 138), 139), 140), 141), 142), 143), 144), 145), 146), 147), 148), 149), 150), 151), 152), 153), 154), 155), 156), 157), 158), 159), 160), 161), 162), 163), 164), 165), 166), 167), 168), 169), 170), 171), 172), 173), 174), 175), 176), 177), 178), 179), 180), 181), 182), 183), 184), 185), 186), 187), 188), 189), 190), 191), 192), 193), 194), 195), 196), 197), 198), 199), 200)
12991279 }
1300- let fP = ef._3
1301- if ((fP == ""))
1302- then fI
1280+ let fJ = dZ._3
1281+ if ((fJ == ""))
1282+ then fC
13031283 else {
1304- let ee = split_51C(fI._3, fP)
1305- let ed = if ((ee[0] == ""))
1306- then drop(ee[1], 5)
1307- else (dropRight(ee[0], 1) + drop(ee[1], 4))
1308- let fQ = dR(fP, dQ[fJ], true)
1309- let eq = fQ._1
1310- let fR = fQ._2
1311- let fS = fromBase58String(valueOrElse(getString(O, Y(fP)), "DEFAULT"))
1312- $Tuple5((fI._1 - ef._2), fS, ed, (fI._4 :+ eq), (fI._5 :+ fP))
1284+ let dY = split_51C(fC._3, fJ)
1285+ let dX = if ((dY[0] == ""))
1286+ then drop(dY[1], 5)
1287+ else (dropRight(dY[0], 1) + drop(dY[1], 4))
1288+ let fK = dL(fJ, dK[fD], true)
1289+ let ek = fK._1
1290+ let fL = fK._2
1291+ let fM = fromBase58String(split(valueOrElse(getString(S(fJ)), "0_DEFAULT"), "_")[1])
1292+ $Tuple5((fC._1 - dZ._2), fM, dX, (fC._4 :+ ek), (fC._5 :+ fJ))
13131293 }
13141294 }
13151295
1316- let fT = {
1317- let bp = [0, 1, 2]
1318- let bq = size(bp)
1319- let br = $Tuple5(aH, cf.transactionId, eb, nil, nil)
1320- func bs (bt,bu) = if ((bu >= bq))
1321- then bt
1322- else fH(bt, bp[bu])
1296+ let fN = {
1297+ let bj = [0, 1, 2]
1298+ let bk = size(bj)
1299+ let bl = $Tuple5(aB, bZ.transactionId, dV, nil, nil)
1300+ func bm (bn,bo) = if ((bo >= bk))
1301+ then bn
1302+ else fB(bn, bj[bo])
13231303
1324- func bv (bt,bu) = if ((bu >= bq))
1325- then bt
1304+ func bp (bn,bo) = if ((bo >= bk))
1305+ then bn
13261306 else throw("List size exceeds 3")
13271307
1328- bv(bs(bs(bs(br, 0), 1), 2), 3)
1308+ bp(bm(bm(bm(bl, 0), 1), 2), 3)
13291309 }
1330- $Tuple2((((fT._4 :+ StringEntry(ap, fT._3)) :+ IntegerEntry(ao, fT._1)) :+ StringEntry(aq(fE), makeString(fT._5, "_"))), 0)
1310+ $Tuple2((((fN._4 :+ StringEntry(aj, fN._3)) :+ IntegerEntry(ai, fN._1)) :+ StringEntry(ak(fy), makeString(fN._5, "_"))), 0)
13311311 }
13321312 }
13331313 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = 1000000
77
88 let c = 10000000
99
1010 let d = 100000000
1111
1212 let e = 100000000000000
1313
1414 let f = 86400000
1515
1616 let g = 10
1717
1818 let h = 100
1919
2020 let i = 2
2121
2222 let j = 5000000
2323
2424 let k = take(drop(this.bytes, 1), 1)
2525
2626 let l = {
2727 let m = k
2828 if ((base58'2W' == m))
2929 then 4487040
3030 else if ((base58'2T' == m))
3131 then 3412800
3232 else throw("Unknown chain")
3333 }
3434
3535 let n = {
3636 let m = k
3737 if ((base58'2W' == m))
3838 then 4517280
3939 else if ((base58'2T' == m))
4040 then 3443040
4141 else throw("Unknown chain")
4242 }
4343
4444 let o = {
4545 let m = k
4646 if ((base58'2W' == m))
4747 then 1440
4848 else if ((base58'2T' == m))
4949 then 60
5050 else throw("Unknown chain")
5151 }
5252
5353 let p = {
5454 let m = k
5555 if ((base58'2W' == m))
5656 then 10080
5757 else if ((base58'2T' == m))
5858 then 180
5959 else throw("Unknown chain")
6060 }
6161
6262 let q = {
6363 let m = k
6464 if ((base58'2W' == m))
6565 then 0
6666 else if ((base58'2T' == m))
6767 then 1146000
6868 else throw("Unknown chain")
6969 }
7070
7171 let r = {
7272 let m = k
7373 if ((base58'2W' == m))
7474 then base58'9wc3LXNA4TEBsXyKtoLE9mrbDD7WMHXvXrCjZvabLAsi'
7575 else if ((base58'2T' == m))
7676 then base58'6mWwf9mZBjVgkC54idpyaZLQfAosD914wT8fGf2iiY63'
7777 else throw("Unknown chain")
7878 }
7979
8080 let s = {
8181 let m = k
8282 if ((base58'2W' == m))
8383 then "3PFwYta8biEz31zpeFe5DJK8wE5trSpQVF8"
8484 else if ((base58'2T' == m))
8585 then "3N7UuYar6264P58FBhVWKPQAh4Yua2hgngv"
8686 else throw("Unknown chain")
8787 }
8888
8989 let t = {
9090 let m = k
9191 if ((base58'2W' == m))
92- then "3PQCuvFbvh4LkPUnrnU1z3jnbA1p9m3WNhv"
93- else if ((base58'2T' == m))
94- then "3MumkGGztCKAXpWDqxkddofqXSUbqQkvSJy"
95- else throw("Unknown chain")
96- }
97-
98-let u = {
99- let m = k
100- if ((base58'2W' == m))
10192 then f
10293 else if ((base58'2T' == m))
10394 then 60000
10495 else throw("Unknown chain")
10596 }
10697
107-let v = {
98+let u = {
10899 let m = k
109100 if ((base58'2W' == m))
110101 then "3PLncXtS1U83D6cQbFD3H8rBHPLgzxSFKZ1"
111102 else if ((base58'2T' == m))
112103 then "3NDCyBG5q85JuaRiigUeEtainyjCQT3XpZm"
113104 else throw("Unknown chain")
114105 }
115106
116-func w (x,y) = valueOrErrorMessage(getString(x, y), makeString(["mandatory ", toString(x), ".", y, " is not defined"], ""))
107+func v (w,x) = valueOrErrorMessage(getString(w, x), makeString(["mandatory ", toString(w), ".", x, " is not defined"], ""))
117108
118109
119-let z = 1
110+let y = 1
120111
121-let A = 2
112+let z = 2
122113
123-let B = 5
114+let A = 5
124115
125-let C = 6
116+let B = 6
126117
127-func D () = "%s__restConfig"
118+func C () = "%s__restConfig"
128119
129120
130-func E () = "%s__rest2Addr"
121+func D () = "%s__rest2Addr"
131122
132123
133-func F () = "%s__restAddr"
124+func E (F) = split_4C(v(F, C()), a)
134125
135126
136-let G = addressFromStringValue(valueOrElse(getString(this, F()), t))
137-
138-func H (I) = split_4C(w(I, D()), a)
127+func G (H,I) = valueOrErrorMessage(addressFromString(H[I]), ("Rest cfg doesn't contain address at index " + toString(I)))
139128
140129
141-func J (K,L) = valueOrErrorMessage(addressFromString(K[L]), ("Rest cfg doesn't contain address at index " + toString(L)))
130+let J = addressFromStringValue(valueOrElse(getString(this, D()), s))
131+
132+let H = E(J)
133+
134+let K = G(H, y)
135+
136+let L = G(H, z)
137+
138+let M = G(H, A)
139+
140+let N = G(H, B)
141+
142+let O = "oldAcresContract"
143+
144+func P () = "contractsBlocked"
142145
143146
144-let M = 1
145-
146-let N = H(G)
147-
148-let O = J(N, M)
149-
150-let P = addressFromStringValue(valueOrElse(getString(this, E()), s))
151-
152-let K = H(P)
153-
154-let Q = J(K, z)
155-
156-let R = J(K, A)
157-
158-let S = J(K, B)
159-
160-let T = J(K, C)
161-
162-let U = "oldAcresContract"
163-
164-func V () = "contractsBlocked"
147+func Q (R) = ("lastWeekTxIdByUser_" + R)
165148
166149
167-func W (X) = ("lastWeekTxIdByUser_" + X)
150+func S (R) = ("curWeekTxIdByUser_" + R)
168151
169152
170-func Y (X) = ("curWeekTxIdByUser_" + X)
153+func T (w) = ("finishBlockFor_" + w)
171154
172155
173-func Z (x) = ("finishBlockFor_" + x)
156+let U = "wlg_assetId"
157+
158+let V = valueOrErrorMessage(getBinary(L, U), "WLGOLD is not issued yet")
159+
160+let W = "acresIssuedAmount"
161+
162+let X = "acresAssetId"
163+
164+let Y = valueOrErrorMessage(getBinary(K, X), "ACRES is not issued yet")
165+
166+func Z (R) = ("acresStakedTimeByUser_" + R)
174167
175168
176-let aa = "wlg_assetId"
177-
178-let ab = valueOrErrorMessage(getBinary(R, aa), "WLGOLD is not issued yet")
179-
180-let ac = "acresIssuedAmount"
181-
182-let ad = "acresAssetId"
183-
184-let ae = valueOrErrorMessage(getBinary(Q, ad), "ACRES is not issued yet")
185-
186-func af (X) = ("acresStakedTimeByUser_" + X)
169+func aa (ab) = ("stakedLandsByOwner_" + ab)
187170
188171
189-func ag (ah) = ("stakedLandsByOwner_" + ah)
172+func ac (ab) = ("stakedDuckByOwner_" + ab)
190173
191174
192-func ai (ah) = ("stakedDuckByOwner_" + ah)
175+func ad (ae,R) = ((("st_" + ae) + "_") + R)
193176
194177
195-func aj (ak,X) = ((("st_" + ak) + "_") + X)
178+func af (ab) = ("stakedNFTsByOwner_" + ab)
196179
197180
198-func al (ah) = ("stakedNFTsByOwner_" + ah)
181+func ag (w) = ("promoAcres_" + w)
199182
200183
201-func am (x) = ("promoAcres_" + x)
184+func ah (w) = ("promoTickets_" + w)
202185
203186
204-func an (x) = ("promoTickets_" + x)
187+let ai = "totalPromoTickets"
188+
189+let aj = "promoMap"
190+
191+func ak (al) = ("dailyWinners_" + toString(al))
205192
206193
207-let ao = "totalPromoTickets"
208-
209-let ap = "promoMap"
210-
211-func aq (ar) = ("dailyWinners_" + toString(ar))
212-
213-
214-func as (at) = {
215- let m = at
194+func am (an) = {
195+ let m = an
216196 if ($isInstanceOf(m, "Int"))
217197 then {
218- let au = m
219- au
198+ let ao = m
199+ ao
220200 }
221201 else throw("fail to cast into Int")
222202 }
223203
224204
225-func av (aw) = {
226- let m = aw
205+func ap (aq) = {
206+ let m = aq
227207 if ($isInstanceOf(m, "(Int, Int, Int, Int, Int)"))
228208 then {
229- let ax = m
230- ax
209+ let ar = m
210+ ar
231211 }
232212 else throw("fail to cast into (Int, Int, Int, Int, Int)")
233213 }
234214
235215
236-func ay (aw) = {
237- let m = aw
216+func as (aq) = {
217+ let m = aq
238218 if ($isInstanceOf(m, "(Int, Int, Int, Int)"))
239219 then {
240- let ax = m
241- ax
220+ let ar = m
221+ ar
242222 }
243223 else throw("fail to cast into (Int, Int, Int, Int)")
244224 }
245225
246226
247-func az (aw) = {
248- let m = aw
227+func at (aq) = {
228+ let m = aq
249229 if ($isInstanceOf(m, "(Int, Int, Int)"))
250230 then {
251- let ax = m
252- ax
231+ let ar = m
232+ ar
253233 }
254234 else throw("fail to cast into (Int, Int, Int)")
255235 }
256236
257237
258-func aA (aw) = {
259- let m = aw
238+func au (aq) = {
239+ let m = aq
260240 if ($isInstanceOf(m, "(Int, Int)"))
261241 then {
262- let ax = m
263- ax
242+ let ar = m
243+ ar
264244 }
265245 else throw("fail to cast into (Int, Int)")
266246 }
267247
268248
269-func aB (aw,aC) = {
270- let aD = pow(10, 0, aC, 0, 0, DOWN)
271- let aE = toString((aw % aD))
272- let aF = drop(toString(aD), (1 + size(aE)))
273- (((toString((aw / aD)) + ".") + aF) + aE)
249+func av (aq,aw) = {
250+ let ax = pow(10, 0, aw, 0, 0, DOWN)
251+ let ay = toString((aq % ax))
252+ let az = drop(toString(ax), (1 + size(ay)))
253+ (((toString((aq / ax)) + ".") + az) + ay)
274254 }
275255
276256
277-func aG (aH,aI,aJ) = if ((0 >= aH))
257+func aA (aB,aC,aD) = if ((0 >= aB))
278258 then throw("maxValue should be > 0")
279259 else {
280- let aK = sha256_16Kb((aI + aJ))
281- (toInt(aK) % aH)
260+ let aE = sha256_16Kb((aC + aD))
261+ (toInt(aE) % aB)
282262 }
283263
284264
285-func aL (aw,aM) = {
286- let aN = toString(aw)
287- let aF = drop(toString(pow(10, 0, (aM - size(aN)), 0, 0, DOWN)), 1)
288- (aF + aN)
265+func aF (aq,aG) = {
266+ let aH = toString(aq)
267+ let az = drop(toString(pow(10, 0, (aG - size(aH)), 0, 0, DOWN)), 1)
268+ (az + aH)
289269 }
290270
291271
292-let aO = 1000000
272+let aI = 1000000
293273
294-let aP = 100000000
274+let aJ = 100000000
295275
296-let aQ = "wlg_issuedAmount"
276+let aK = "wlg_issuedAmount"
297277
298-let aR = "zbill_issuedAmount"
278+let aL = "zbill_issuedAmount"
299279
300-func aS (X) = ("acresStakedAmountByUser_" + X)
280+func aM (R) = ("acresStakedAmountByUser_" + R)
301281
302282
303-func aT (X) = ("farmingPowerByUser_" + X)
283+func aN (R) = ("farmingPowerByUser_" + R)
304284
305285
306-let aU = "acresStakedAmountTotal"
286+let aO = "acresStakedAmountTotal"
307287
308-let aV = "totalFarmingPower"
288+let aP = "totalFarmingPower"
309289
310-let aW = 3
290+let aQ = 3
311291
312-let aX = 1
292+let aR = 1
313293
314-let aY = 5000
294+let aS = 5000
315295
316-let aZ = 4
296+let aT = 4
317297
318-let ba = "nftTotalIssued"
298+let aU = "nftTotalIssued"
319299
320-let bb = "nftTotalBurned"
300+let aV = "nftTotalBurned"
321301
322-let bc = "WlNftTotalStaked"
302+let aW = "WlNftTotalStaked"
323303
324-let bd = "ArkNftTotalStaked"
304+let aX = "ArkNftTotalStaked"
325305
326-func be (ak) = ("nftNumberByAssetId_" + ak)
306+func aY (ae) = ("nftNumberByAssetId_" + ae)
327307
328308
329-func bf (X) = ("userWlNftNumber_" + X)
309+func aZ (R) = ("userWlNftNumber_" + R)
330310
331311
332-func bg (X) = ("userArkNftNumber_" + X)
312+func ba (R) = ("userArkNftNumber_" + R)
333313
334314
335-func bh (X) = ("userFullBonus_" + X)
315+func bb (R) = ("userFullBonus_" + R)
336316
337317
338-let bi = [0, 10, 20, 40, 80, 150, 250, 400, 700, 1000]
318+let bc = [0, 10, 20, 40, 80, 150, 250, 400, 700, 1000]
339319
340-func bj (bk) = {
341- let bl = ((bk + 99999999) / aP)
342- func bm (bn,bo) = if ((bo >= bl))
320+func bd (be) = {
321+ let bf = ((be + 99999999) / aJ)
322+ func bg (bh,bi) = if ((bi >= bf))
323+ then bh
324+ else (bh + 1)
325+
326+ let bj = bc
327+ let bk = size(bj)
328+ let bl = 0
329+ func bm (bn,bo) = if ((bo >= bk))
343330 then bn
344- else (bn + 1)
331+ else bg(bn, bj[bo])
345332
346- let bp = bi
347- let bq = size(bp)
348- let br = 0
349- func bs (bt,bu) = if ((bu >= bq))
350- then bt
351- else bm(bt, bp[bu])
352-
353- func bv (bt,bu) = if ((bu >= bq))
354- then bt
333+ func bp (bn,bo) = if ((bo >= bk))
334+ then bn
355335 else throw("List size exceeds 10")
356336
357- bv(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(br, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
337+ bp(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bl, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
358338 }
359339
360340
361-func bw (bk) = ((bk * 20) * (bj(bk) + 4))
341+func bq (be) = ((be * 20) * (bd(be) + 4))
362342
363343
364-func bx (bk,by) = {
365- let bz = bw(bk)
366- $Tuple2(fraction(bz, (aO + by), aO), bz)
344+func br (be,bs) = {
345+ let bt = bq(be)
346+ $Tuple2(fraction(bt, (aI + bs), aI), bt)
367347 }
368348
369349
370-let bA = "teamAddr"
350+let bu = "teamAddr"
371351
372-func bB (X) = ("lastArbTimeUser_" + X)
352+func bv (R) = ("lastArbTimeUser_" + R)
373353
374354
375-let bC = 1733346000000
355+let bw = 1733346000000
376356
377-let bD = 14
357+let bx = 14
378358
379-let bE = "lastAcresSellTime"
359+let by = "lastAcresSellTime"
380360
381-let bF = "lastLimitLeft"
361+let bz = "lastLimitLeft"
382362
383-let bG = ["Gold shovel", "Pickaxe"]
363+let bA = ["Gold shovel", "Pickaxe"]
384364
385-let bH = ["Reward for early birds", "Increases FarmPower"]
365+let bB = ["Reward for early birds", "Increases FarmPower"]
386366
387-let bI = 0
367+let bC = 0
388368
389-let bJ = 1
369+let bD = 1
390370
391-let bK = [5, 10, 20]
371+let bE = [5, 10, 20]
392372
393-let bL = 0
373+let bF = 0
394374
395-let bM = 1
375+let bG = 1
396376
397-let bN = 2
377+let bH = 2
398378
399-let bO = ["SHOVEL", "PICKAXE"]
379+let bI = ["SHOVEL", "PICKAXE"]
380+
381+let bJ = 0
382+
383+let bK = 1
384+
385+let bL = ["contentPickaxeC", "contentPickaxeU", "contentPickaxeL", "contentPickaxeE", "contentShovelP"]
386+
387+let bM = 0
388+
389+let bN = 4
390+
391+let bO = ["Common", "Uncommon", "Legendary", "Epic", "Promo"]
400392
401393 let bP = 0
402394
403395 let bQ = 1
404396
405-let bR = ["contentPickaxeC", "contentPickaxeU", "contentPickaxeL", "contentPickaxeE", "contentShovelP"]
397+let bR = 2
406398
407-let bS = 0
399+let bS = 3
408400
409401 let bT = 4
410402
411-let bU = ["Common", "Uncommon", "Legendary", "Epic", "Promo"]
403+let bU = ["Digging tools"]
412404
413405 let bV = 0
414406
415-let bW = 1
407+let bW = ["FarmPower"]
416408
417-let bX = 2
409+let bX = 0
418410
419-let bY = 3
420-
421-let bZ = 4
422-
423-let ca = ["Digging tools"]
424-
425-let cb = 0
426-
427-let cc = ["FarmPower"]
428-
429-let cd = 0
430-
431-func ce (cf) = if (if ((cf.originCaller != P))
432- then valueOrElse(getBoolean(V()), false)
411+func bY (bZ) = if (if ((bZ.originCaller != J))
412+ then valueOrElse(getBoolean(P()), false)
433413 else false)
434414 then throw("Contracts are under maintenance")
435415 else {
436- let X = toString(cf.originCaller)
437- let cg = (height / p)
438- let ch = W(X)
439- let ci = getString(ch)
440- let cj = toBase58String(cf.transactionId)
441- let ck = ((toString(cg) + "_") + cj)
442- let cl = Y(X)
443- if (isDefined(ci))
416+ let R = toString(bZ.originCaller)
417+ let ca = (height / p)
418+ let cb = Q(R)
419+ let cc = getString(cb)
420+ let cd = toBase58String(bZ.transactionId)
421+ let ce = ((toString(ca) + "_") + cd)
422+ let cf = S(R)
423+ if (isDefined(cc))
444424 then {
445- let cm = split(value(ci), "_")
446- if ((cm[0] == toString(cg)))
447- then [StringEntry(ch, ck), StringEntry(cl, ck)]
448- else if ((cm[0] == toString((cg - 1))))
449- then [StringEntry(cl, ck)]
425+ let cg = split(value(cc), "_")
426+ if ((cg[0] == toString(ca)))
427+ then [StringEntry(cb, ce), StringEntry(cf, ce)]
428+ else if ((cg[0] == toString((ca - 1))))
429+ then [StringEntry(cf, ce)]
450430 else {
451- let cn = getStringValue(cl)
452- let co = split(cn, "_")
453- if ((co[0] == toString(cg)))
454- then [StringEntry(cl, ck)]
455- else [StringEntry(ch, cn), StringEntry(cl, ck)]
431+ let ch = getStringValue(cf)
432+ let ci = split(ch, "_")
433+ if ((ci[0] == toString(ca)))
434+ then [StringEntry(cf, ce)]
435+ else [StringEntry(cb, ch), StringEntry(cf, ce)]
456436 }
457437 }
458- else [StringEntry(ch, ck), StringEntry(cl, ck)]
438+ else [StringEntry(cb, ce), StringEntry(cf, ce)]
459439 }
460440
461441
462-func cp (cq,cr,cs,ct,cu,cv,cw,cx) = (((((((((((((((((((((((("{\"url\": \"https://waveslands.com\", " + "\"contentKey\": \"") + cq) + "\", ") + "\"number\": ") + toString(cr)) + ", ") + "\"collection\": \"") + cs) + "\", ") + "\"name\": \"") + ct) + "\", ") + "\"description\": \"") + cu) + "\", ") + "\"rare\": \"") + cv) + "\", ") + "\"bonus\": ") + toString(cw)) + ", ") + "\"bonusType\": \"") + cx) + "\"}")
442+func cj (ck,cl,cm,cn,co,cp,cq,cr) = (((((((((((((((((((((((("{\"url\": \"https://waveslands.com\", " + "\"contentKey\": \"") + ck) + "\", ") + "\"number\": ") + toString(cl)) + ", ") + "\"collection\": \"") + cm) + "\", ") + "\"name\": \"") + cn) + "\", ") + "\"description\": \"") + co) + "\", ") + "\"rare\": \"") + cp) + "\", ") + "\"bonus\": ") + toString(cq)) + ", ") + "\"bonusType\": \"") + cr) + "\"}")
463443
464444
465-func cy (cz,cA,cB,cC,cD,cE,cF,X) = {
466- let cr = valueOrElse(getInteger(ba), 0)
467- let cv = bU[cC]
468- let ct = (((bO[cz] + "-") + take(cv, 1)) + toString(cD))
469- let cG = Issue(ct, cp(bR[cA], cr, ca[cB], bG[cz], bH[cE], bU[cC], cD, cc[cF]), 1, 0, false)
470- let cH = calculateAssetId(cG)
471- $Tuple2([cG, IntegerEntry(ba, (cr + 1)), IntegerEntry(be(toBase58String(cH)), cr), ScriptTransfer(X, 1, cH)], cH)
445+func cs (ct,cu,cv,cw,cx,cy,cz,R) = {
446+ let cl = valueOrElse(getInteger(aU), 0)
447+ let cp = bO[cw]
448+ let cn = (((bI[ct] + "-") + take(cp, 1)) + toString(cx))
449+ let cA = Issue(cn, cj(bL[cu], cl, bU[cv], bA[ct], bB[cy], bO[cw], cx, bW[cz]), 1, 0, false)
450+ let cB = calculateAssetId(cA)
451+ $Tuple2([cA, IntegerEntry(aU, (cl + 1)), IntegerEntry(aY(toBase58String(cB)), cl), ScriptTransfer(R, 1, cB)], cB)
472452 }
473453
474454
475-func cI (cu) = if (!(contains(cu, "\"bonusType\": \"FarmPower\"")))
476- then throw(("NFT is not supported: " + cu))
455+func cC (co) = if (!(contains(co, "\"bonusType\": \"FarmPower\"")))
456+ then throw(("NFT is not supported: " + co))
477457 else {
478- let cJ = split_4C(split_4C(cu, "\"bonus\":")[1], ",")[0]
479- parseIntValue(drop(cJ, (valueOrElse(lastIndexOf(cJ, " "), -1) + 1)))
458+ let cD = split_4C(split_4C(co, "\"bonus\":")[1], ",")[0]
459+ parseIntValue(drop(cD, (valueOrElse(lastIndexOf(cD, " "), -1) + 1)))
480460 }
481461
482462
483-func cK (cu) = if (!(contains(cu, "\"rare\"")))
484- then throw(("NFT is not supported: " + cu))
463+func cE (co) = if (!(contains(co, "\"rare\"")))
464+ then throw(("NFT is not supported: " + co))
485465 else {
486- let cL = split_4C(split_4C(split_4C(cu, "\"rare\"")[1], ",")[0], "\"")[1]
487- value(indexOf(bU, cL))
466+ let cF = split_4C(split_4C(split_4C(co, "\"rare\"")[1], ",")[0], "\"")[1]
467+ value(indexOf(bO, cF))
488468 }
489469
490470
491-func cM (cN,x,cO) = if (if ((cN == 0))
492- then (cO == 0)
471+func cG (cH,w,cI) = if (if ((cH == 0))
472+ then (cI == 0)
493473 else false)
494474 then throw("Nothing to do")
495475 else {
496- let cP = invoke(R, "onStakeUnstakeLand", [x], nil)
497- if ((cP == cP))
476+ let cJ = invoke(L, "onStakeUnstakeLand", [w], nil)
477+ if ((cJ == cJ))
498478 then {
499- let cQ = lastBlock.timestamp
500- let cR = af(x)
501- let cS = aS(x)
502- let cT = valueOrElse(getInteger(cS), 0)
503- if (if ((0 > cN))
504- then (0 > (cT + cN))
479+ let cK = lastBlock.timestamp
480+ let cL = Z(w)
481+ let cM = aM(w)
482+ let cN = valueOrElse(getInteger(cM), 0)
483+ if (if ((0 > cH))
484+ then (0 > (cN + cH))
505485 else false)
506- then throw(((("You have only " + aB(cT, 8)) + " ACRES staked, tried to unstake ") + aB(-(cN), 8)))
486+ then throw(((("You have only " + av(cN, 8)) + " ACRES staked, tried to unstake ") + av(-(cH), 8)))
507487 else {
508- let cU = (cT + cN)
509- let cV = valueOrElse(getInteger(aU), 0)
510- let cW = aT(x)
511- let cX = valueOrElse(getInteger(cW), 0)
512- let cY = bh(x)
513- let cZ = valueOrElse(getInteger(Q, cY), 0)
514- if (if ((0 > cO))
515- then (0 > (cZ + cO))
488+ let cO = (cN + cH)
489+ let cP = valueOrElse(getInteger(aO), 0)
490+ let cQ = aN(w)
491+ let cR = valueOrElse(getInteger(cQ), 0)
492+ let cS = bb(w)
493+ let cT = valueOrElse(getInteger(K, cS), 0)
494+ if (if ((0 > cI))
495+ then (0 > (cT + cI))
516496 else false)
517- then throw((((("You have only " + aB(cZ, 4)) + "% bonus, and tried to unstake ") + aB(-(cO), 4)) + "%"))
497+ then throw((((("You have only " + av(cT, 4)) + "% bonus, and tried to unstake ") + av(-(cI), 4)) + "%"))
518498 else {
519- let da = bx(cU, (cZ + cO))
520- let db = da._1
521- let dc = da._2
522- let dd = valueOrElse(getInteger(aV), 0)
523- let de = if ((cN == 0))
499+ let cU = br(cO, (cT + cI))
500+ let cV = cU._1
501+ let cW = cU._2
502+ let cX = valueOrElse(getInteger(aP), 0)
503+ let cY = if ((cH == 0))
524504 then nil
525- else [IntegerEntry(cS, cU), IntegerEntry(aU, (cV + cN))]
526- let df = if ((cO == 0))
505+ else [IntegerEntry(cM, cO), IntegerEntry(aO, (cP + cH))]
506+ let cZ = if ((cI == 0))
527507 then nil
528- else [IntegerEntry(cY, (cZ + cO))]
529- $Tuple2(((((de ++ df) :+ IntegerEntry(cR, lastBlock.timestamp)) :+ IntegerEntry(cW, db)) :+ IntegerEntry(aV, ((dd + db) - cX))), cP)
508+ else [IntegerEntry(cS, (cT + cI))]
509+ $Tuple2(((((cY ++ cZ) :+ IntegerEntry(cL, lastBlock.timestamp)) :+ IntegerEntry(cQ, cV)) :+ IntegerEntry(aP, ((cX + cV) - cR))), cJ)
530510 }
531511 }
532512 }
533513 else throw("Strict value is not equal to itself.")
534514 }
535515
536516
537-func dg (dh) = {
538- let di = valueOrErrorMessage(getInteger(R, aQ), "WLGOLD is not issued yet")
539- let dj = assetBalance(R, r)
540- let dk = (assetBalance(Q, r) - dh)
541- let dl = (assetBalance(S, r) + valueOrElse(getInteger(S, aR), 0))
542- let dm = ((dk + dj) + dl)
543- fraction(dm, d, di)
517+func da (db) = {
518+ let dc = valueOrErrorMessage(getInteger(L, aK), "WLGOLD is not issued yet")
519+ let dd = assetBalance(L, r)
520+ let de = (assetBalance(K, r) - db)
521+ let df = (assetBalance(M, r) + valueOrElse(getInteger(M, aL), 0))
522+ let dg = ((de + dd) + df)
523+ fraction(dg, d, dc)
544524 }
545525
546526
547-func dn () = {
548- let dj = assetBalance(R, r)
549- let dk = assetBalance(this, r)
550- let dl = (assetBalance(S, r) + valueOrElse(getInteger(S, aR), 0))
551- let do = (((dk + dj) + dl) / h)
552- let dp = valueOrElse(getInteger(bF), do)
553- let dq = valueOrElse(getInteger(bE), 0)
554- let cQ = lastBlock.timestamp
555- let dr = (dp + fraction(do, (cQ - dq), f))
556- let ds = min([dr, do])
557- $Tuple2(IntegerEntry(bE, cQ), ds)
527+func dh () = {
528+ let dd = assetBalance(L, r)
529+ let de = assetBalance(this, r)
530+ let df = (assetBalance(M, r) + valueOrElse(getInteger(M, aL), 0))
531+ let di = (((de + dd) + df) / h)
532+ let dj = valueOrElse(getInteger(bz), di)
533+ let dk = valueOrElse(getInteger(by), 0)
534+ let cK = lastBlock.timestamp
535+ let dl = (dj + fraction(di, (cK - dk), f))
536+ let dm = min([dl, di])
537+ $Tuple2(IntegerEntry(by, cK), dm)
558538 }
559539
560540
561-let dt = addressFromStringValue("3PJgZ6AK1WVCpdCmEZpesHmaKvrQDdXG5og")
541+let dn = addressFromStringValue("3PJgZ6AK1WVCpdCmEZpesHmaKvrQDdXG5og")
562542
563-let du = valueOrElse(getString(dt, "static_incubatorAddress"), "")
543+let do = valueOrElse(getString(dn, "static_incubatorAddress"), "")
564544
565-let dv = valueOrElse(getString(dt, "static_breederAddress"), "")
545+let dp = valueOrElse(getString(dn, "static_breederAddress"), "")
566546
567-let dw = valueOrElse(getString(dt, "static_turtleIncubatorAddress"), "")
547+let dq = valueOrElse(getString(dn, "static_turtleIncubatorAddress"), "")
568548
569-let dx = valueOrElse(getString(dt, "static_turtleBreederAddress"), "")
549+let dr = valueOrElse(getString(dn, "static_turtleBreederAddress"), "")
570550
571-let dy = valueOrElse(getString(dt, "static_canineIncubatorAddress"), "")
551+let ds = valueOrElse(getString(dn, "static_canineIncubatorAddress"), "")
572552
573-let dz = valueOrElse(getString(dt, "static_canineBreederAddress"), "")
553+let dt = valueOrElse(getString(dn, "static_canineBreederAddress"), "")
574554
575-let dA = valueOrElse(getString(dt, "static_felineIncubatorAddress"), "")
555+let du = valueOrElse(getString(dn, "static_felineIncubatorAddress"), "")
576556
577-let dB = valueOrElse(getString(dt, "static_felineBreederAddress"), "")
557+let dv = valueOrElse(getString(dn, "static_felineBreederAddress"), "")
578558
579-let dC = valueOrElse(getString(dt, "static_mutantIncubatorAddress"), "")
559+let dw = valueOrElse(getString(dn, "static_mutantIncubatorAddress"), "")
580560
581-func dD (dE) = {
582- let dF = toString(dE.issuer)
561+func dx (dy) = {
562+ let dz = toString(dy.issuer)
583563 if (if (if (if (if (if (if (if (if (if ((k == base58'2T'))
584- then (dF == v)
564+ then (dz == u)
585565 else false)
586566 then true
587- else (dF == du))
567+ else (dz == do))
588568 then true
589- else (dF == dv))
569+ else (dz == dp))
590570 then true
591- else (dF == dw))
571+ else (dz == dq))
592572 then true
593- else (dF == dx))
573+ else (dz == dr))
594574 then true
595- else (dF == dy))
575+ else (dz == ds))
596576 then true
597- else (dF == dz))
577+ else (dz == dt))
598578 then true
599- else (dF == dA))
579+ else (dz == du))
600580 then true
601- else (dF == dB))
602- then dE.name
603- else if ((dF == dC))
604- then dE.description
581+ else (dz == dv))
582+ then dy.name
583+ else if ((dz == dw))
584+ then dy.description
605585 else ""
606586 }
607587
608588
609-func dG (X,dH,by,dI,dJ,dK) = {
610- let dL = valueOrElse(getInteger(dI), 0)
611- if ((dL >= dK))
612- then throw((("You can stake max " + toString(dK)) + " of such NFTs"))
589+func dA (R,dB,bs,dC,dD,dE) = {
590+ let dF = valueOrElse(getInteger(dC), 0)
591+ if ((dF >= dE))
592+ then throw((("You can stake max " + toString(dE)) + " of such NFTs"))
613593 else {
614- let dM = cM(0, X, by)
615- let dN = dM._1
616- let dO = dM._2
617- $Tuple2((((dN :+ IntegerEntry(dI, (dL + 1))) :+ IntegerEntry(dJ, (valueOrElse(getInteger(dJ), 0) + 1))) :+ IntegerEntry(aj(dH, X), lastBlock.timestamp)), dO)
594+ let dG = cG(0, R, bs)
595+ let dH = dG._1
596+ let dI = dG._2
597+ $Tuple2((((dH :+ IntegerEntry(dC, (dF + 1))) :+ IntegerEntry(dD, (valueOrElse(getInteger(dD), 0) + 1))) :+ IntegerEntry(ad(dB, R), lastBlock.timestamp)), dI)
618598 }
619599 }
620600
621601
622-let dP = 3
602+let dJ = 3
623603
624-let dQ = [50000000, 25000000, 25000000]
604+let dK = [50000000, 25000000, 25000000]
625605
626-func dR (x,cN,dS) = {
627- let dT = cM(cN, x, 0)
628- let dN = dT._1
629- let dO = dT._2
630- let dU = if (if ((height >= l))
606+func dL (w,cH,dM) = {
607+ let dN = cG(cH, w, 0)
608+ let dH = dN._1
609+ let dI = dN._2
610+ let dO = if (if ((height >= l))
631611 then (n > height)
632612 else false)
633613 then {
634- let dV = am(x)
635- let dW = ((if (dS)
614+ let dP = ag(w)
615+ let dQ = ((if (dM)
636616 then 0
637- else valueOrElse(getInteger(dV), 0)) + cN)
638- let dX = (dW / d)
639- let dY = an(x)
640- let dZ = (dX - valueOrElse(getInteger(dY), 0))
641- let ea = (valueOrElse(getInteger(ao), 0) + dZ)
642- if (if (dS)
617+ else valueOrElse(getInteger(dP), 0)) + cH)
618+ let dR = (dQ / d)
619+ let dS = ah(w)
620+ let dT = (dR - valueOrElse(getInteger(dS), 0))
621+ let dU = (valueOrElse(getInteger(ai), 0) + dT)
622+ if (if (dM)
643623 then true
644- else (dZ > 0))
624+ else (dT > 0))
645625 then {
646- let eb = valueOrElse(getString(ap), "")
647- let ec = ((x + ":") + aL(dX, 3))
648- let ed = if (contains(eb, x))
626+ let dV = valueOrElse(getString(aj), "")
627+ let dW = ((w + ":") + aF(dR, 3))
628+ let dX = if (contains(dV, w))
649629 then {
650- let ee = split_51C(eb, x)
651- if ((ee[0] == ""))
630+ let dY = split_51C(dV, w)
631+ if ((dY[0] == ""))
652632 then {
653- let ef = drop(ee[1], 4)
654- if ((ef == ""))
655- then if ((dX == 0))
633+ let dZ = drop(dY[1], 4)
634+ if ((dZ == ""))
635+ then if ((dR == 0))
656636 then ""
657- else ec
658- else if ((dX == 0))
659- then drop(ef, 1)
660- else (ec + ef)
637+ else dW
638+ else if ((dR == 0))
639+ then drop(dZ, 1)
640+ else (dW + dZ)
661641 }
662642 else {
663- let ef = drop(ee[1], 4)
664- if ((ef == ""))
665- then if ((dX == 0))
666- then dropRight(ee[0], 1)
667- else (ee[0] + ec)
668- else if ((dX == 0))
669- then (ee[0] + drop(ef, 1))
670- else ((ee[0] + ec) + ef)
643+ let dZ = drop(dY[1], 4)
644+ if ((dZ == ""))
645+ then if ((dR == 0))
646+ then dropRight(dY[0], 1)
647+ else (dY[0] + dW)
648+ else if ((dR == 0))
649+ then (dY[0] + drop(dZ, 1))
650+ else ((dY[0] + dW) + dZ)
671651 }
672652 }
673- else if ((dX == 0))
674- then eb
675- else if ((eb == ""))
676- then ec
677- else ((eb + "_") + ec)
678-[IntegerEntry(dV, dW), IntegerEntry(dY, dX), IntegerEntry(ao, ea), StringEntry(ap, ed)]
653+ else if ((dR == 0))
654+ then dV
655+ else if ((dV == ""))
656+ then dW
657+ else ((dV + "_") + dW)
658+[IntegerEntry(dP, dQ), IntegerEntry(dS, dR), IntegerEntry(ai, dU), StringEntry(aj, dX)]
679659 }
680- else [IntegerEntry(dV, dW)]
660+ else [IntegerEntry(dP, dQ)]
681661 }
682662 else nil
683- $Tuple2((dN ++ dU), dO)
663+ $Tuple2((dH ++ dO), dI)
684664 }
685665
686666
687-@Callable(cf)
688-func saveLastTx () = if (!(containsElement([R, T], cf.caller)))
667+@Callable(bZ)
668+func saveLastTx () = if (!(containsElement([L, N], bZ.caller)))
689669 then throw("Access denied")
690- else $Tuple2(ce(cf), 42)
670+ else $Tuple2(bY(bZ), 42)
691671
692672
693673
694-@Callable(cf)
695-func constructorV1 (eg,eh) = if ((cf.caller != this))
674+@Callable(bZ)
675+func constructorV1 (ea,eb) = if ((bZ.caller != this))
696676 then throw("Permission denied")
697677 else {
698- let ei = addressFromStringValue(eh)
699-[IntegerEntry(ac, getIntegerValue(ei, ac)), BinaryEntry(ad, getBinaryValue(ei, ad)), StringEntry(E(), eg), StringEntry(U, eh)]
678+ let ec = addressFromStringValue(eb)
679+[IntegerEntry(W, getIntegerValue(ec, W)), BinaryEntry(X, getBinaryValue(ec, X)), StringEntry(D(), ea), StringEntry(O, eb)]
700680 }
701681
702682
703683
704-@Callable(cf)
705-func setBlocked (ej) = if ((cf.caller != this))
684+@Callable(bZ)
685+func setBlocked (ed) = if ((bZ.caller != this))
706686 then throw("permission denied")
707- else [BooleanEntry(V(), ej)]
687+ else [BooleanEntry(P(), ed)]
708688
709689
710690
711-@Callable(cf)
712-func unstakeAcres (ek) = {
713- let el = ce(cf)
691+@Callable(bZ)
692+func unstakeAcres (ee) = {
693+ let ef = bY(bZ)
714694 if (if ((height >= l))
715695 then (n > height)
716696 else false)
717697 then throw("You can't unstake during Xmas promo period")
718- else if ((0 >= ek))
698+ else if ((0 >= ee))
719699 then throw("Amount should be positive")
720700 else {
721- let x = toString(cf.caller)
722- if ((size(cf.payments) != 0))
701+ let w = toString(bZ.caller)
702+ if ((size(bZ.payments) != 0))
723703 then throw("No payments required")
724704 else {
725- let em = (valueOrElse(getInteger(R, bB(x)), 0) + u)
726- if ((em > lastBlock.timestamp))
727- then throw(("You traded some WLGOLD, cannot unstake until " + toString(em)))
705+ let eg = (valueOrElse(getInteger(L, bv(w)), 0) + t)
706+ if ((eg > lastBlock.timestamp))
707+ then throw(("You traded some WLGOLD, cannot unstake until " + toString(eg)))
728708 else {
729- let en = cM(-(ek), x, 0)
730- let dN = en._1
731- let dO = en._2
732- $Tuple2(((dN :+ ScriptTransfer(cf.caller, ek, ae)) ++ el), dO)
709+ let eh = cG(-(ee), w, 0)
710+ let dH = eh._1
711+ let dI = eh._2
712+ $Tuple2(((dH :+ ScriptTransfer(bZ.caller, ee, Y)) ++ ef), dI)
733713 }
734714 }
735715 }
736716 }
737717
738718
739719
740-@Callable(cf)
720+@Callable(bZ)
741721 func stakeAcres () = {
742- let el = ce(cf)
743- let x = toString(cf.caller)
744- if ((size(cf.payments) != 1))
722+ let ef = bY(bZ)
723+ let w = toString(bZ.caller)
724+ if ((size(bZ.payments) != 1))
745725 then throw("exactly 1 payment must be attached")
746726 else {
747- let eo = cf.payments[0]
748- let cN = eo.amount
749- if (if (!(isDefined(eo.assetId)))
727+ let ei = bZ.payments[0]
728+ let cH = ei.amount
729+ if (if (!(isDefined(ei.assetId)))
750730 then true
751- else (value(eo.assetId) != ae))
731+ else (value(ei.assetId) != Y))
752732 then throw("ACRES payments only!")
753733 else {
754- let ep = dR(x, cN, false)
755- let eq = ep._1
756- let dO = ep._2
757- $Tuple2((eq ++ el), dO)
734+ let ej = dL(w, cH, false)
735+ let ek = ej._1
736+ let dI = ej._2
737+ $Tuple2((ek ++ ef), dI)
758738 }
759739 }
760740 }
761741
762742
763743
764-@Callable(cf)
744+@Callable(bZ)
765745 func buyAcres () = {
766- let el = ce(cf)
767- if ((size(cf.payments) != 1))
746+ let ef = bY(bZ)
747+ if ((size(bZ.payments) != 1))
768748 then throw("exactly 1 payment must be attached")
769749 else {
770- let eo = cf.payments[0]
771- let er = eo.amount
772- if (if (!(isDefined(eo.assetId)))
750+ let ei = bZ.payments[0]
751+ let el = ei.amount
752+ if (if (!(isDefined(ei.assetId)))
773753 then true
774- else (value(eo.assetId) != r))
754+ else (value(ei.assetId) != r))
775755 then throw("USDT payments only!")
776- else if ((b > er))
777- then throw((("Min payment should be " + aB(b, 6)) + " USDT"))
756+ else if ((b > el))
757+ then throw((("Min payment should be " + av(b, 6)) + " USDT"))
778758 else {
779- let es = (er * g)
780- let et = fraction(er, d, dg(er))
781- let eu = addressFromStringValue(getStringValue(U))
782- let ev = invoke(eu, "requestAcresCallback", [es], nil)
783- if ((ev == ev))
759+ let em = (el * g)
760+ let en = fraction(el, d, da(el))
761+ let eo = addressFromStringValue(getStringValue(O))
762+ let ep = invoke(eo, "requestAcresCallback", [em], nil)
763+ if ((ep == ep))
784764 then {
785- let ew = as(invoke(R, "burnWlgold", [et], nil))
786- $Tuple2(([ScriptTransfer(cf.caller, es, ae)] ++ el), ew)
765+ let eq = am(invoke(L, "burnWlgold", [en], nil))
766+ $Tuple2(([ScriptTransfer(bZ.caller, em, Y)] ++ ef), eq)
787767 }
788768 else throw("Strict value is not equal to itself.")
789769 }
790770 }
791771 }
792772
793773
794774
795-@Callable(cf)
796-func buyAcresREADONLY (er) = {
797- let es = (er * g)
798- let ex = fraction(er, d, dg(er))
799- $Tuple2(nil, [es, b, es, ex])
775+@Callable(bZ)
776+func buyAcresREADONLY (el) = {
777+ let em = (el * g)
778+ let er = fraction(el, d, da(el))
779+ $Tuple2(nil, [em, b, em, er])
800780 }
801781
802782
803783
804-@Callable(cf)
784+@Callable(bZ)
805785 func sellAcres () = {
806- let el = ce(cf)
807- if ((size(cf.payments) != 1))
786+ let ef = bY(bZ)
787+ if ((size(bZ.payments) != 1))
808788 then throw("exactly 1 payment must be attached")
809789 else {
810- let eo = cf.payments[0]
811- let es = eo.amount
812- if (if (!(isDefined(eo.assetId)))
790+ let ei = bZ.payments[0]
791+ let em = ei.amount
792+ if (if (!(isDefined(ei.assetId)))
813793 then true
814- else (value(eo.assetId) != ae))
794+ else (value(ei.assetId) != Y))
815795 then throw("ACRES payments only!")
816- else if ((c > es))
817- then throw((("Min payment should be " + aB(c, 8)) + " ACRES"))
796+ else if ((c > em))
797+ then throw((("Min payment should be " + av(c, 8)) + " ACRES"))
818798 else {
819- let X = toString(cf.caller)
820- let ey = dn()
821- let ez = ey._1
822- let eA = ey._2
823- let eB = (eA * g)
824- if ((es > eB))
825- then throw((("You can sell max " + aB(eB, 8)) + " ACRES"))
799+ let R = toString(bZ.caller)
800+ let es = dh()
801+ let et = es._1
802+ let eu = es._2
803+ let ev = (eu * g)
804+ if ((em > ev))
805+ then throw((("You can sell max " + av(ev, 8)) + " ACRES"))
826806 else {
827- let er = ((es / g) / 2)
828- $Tuple2(([ez, IntegerEntry(bF, (eA - er)), ScriptTransfer(cf.caller, er, r)] ++ el), er)
807+ let el = ((em / g) / 2)
808+ $Tuple2(([et, IntegerEntry(bz, (eu - el)), ScriptTransfer(bZ.caller, el, r)] ++ ef), el)
829809 }
830810 }
831811 }
832812 }
833813
834814
835815
836-@Callable(cf)
837-func sellAcresREADONLY (x,es) = {
838- let eC = dn()
839- let ez = eC._1
840- let eA = eC._2
841- let er = ((es / g) / 2)
842- $Tuple2(nil, [er, c, (eA * g), 0])
816+@Callable(bZ)
817+func sellAcresREADONLY (w,em) = {
818+ let ew = dh()
819+ let et = ew._1
820+ let eu = ew._2
821+ let el = ((em / g) / 2)
822+ $Tuple2(nil, [el, c, (eu * g), 0])
843823 }
844824
845825
846826
847-@Callable(cf)
827+@Callable(bZ)
848828 func convertOldStakes () = {
849- let el = ce(cf)
850- if ((bC > lastBlock.timestamp))
851- then throw(("Disabled until " + toString((bC / 1000))))
829+ let ef = bY(bZ)
830+ if ((bw > lastBlock.timestamp))
831+ then throw(("Disabled until " + toString((bw / 1000))))
852832 else {
853- let x = toString(cf.caller)
854- if ((size(cf.payments) != 0))
833+ let w = toString(bZ.caller)
834+ if ((size(bZ.payments) != 0))
855835 then throw("No payments required")
856836 else {
857- let eu = addressFromStringValue(getStringValue(U))
858- let ek = valueOrElse(getInteger(eu, aS(x)), 0)
859- let eD = if ((ek > 0))
860- then aA(invoke(eu, "unstakeAcresCallback", [ek, x], nil))
837+ let eo = addressFromStringValue(getStringValue(O))
838+ let ee = valueOrElse(getInteger(eo, aM(w)), 0)
839+ let ex = if ((ee > 0))
840+ then au(invoke(eo, "unstakeAcresCallback", [ee, w], nil))
861841 else $Tuple2(0, 0)
862- let eE = addressFromStringValue(v)
863- let eF = getString(eE, ag(x))
864- let eG = if (isDefined(eF))
842+ let ey = addressFromStringValue(u)
843+ let ez = getString(ey, aa(w))
844+ let eA = if (isDefined(ez))
865845 then {
866- let eH = split_51C(value(eF), "_")
867- if ((size(eH) > bD))
868- then throw((("You have more than " + toString(bD)) + " lands staked, please contact support, we'll process your case manually"))
846+ let eB = split_51C(value(ez), "_")
847+ if ((size(eB) > bx))
848+ then throw((("You have more than " + toString(bx)) + " lands staked, please contact support, we'll process your case manually"))
869849 else {
870- func eI (bn,eJ) = if ((eJ == ""))
850+ func eC (bh,eD) = if ((eD == ""))
871851 then throw("landAssetId is required")
872852 else {
873- let ef = av(invoke(eE, "unstakeLandCallback", [eJ, x], nil))
874- if ((ef == ef))
875- then $Tuple5((bn._1 + ef._1), (bn._2 + ef._2), (bn._3 + ef._3), (bn._4 + ef._4), (bn._5 + ef._5))
853+ let dZ = ap(invoke(ey, "unstakeLandCallback", [eD, w], nil))
854+ if ((dZ == dZ))
855+ then $Tuple5((bh._1 + dZ._1), (bh._2 + dZ._2), (bh._3 + dZ._3), (bh._4 + dZ._4), (bh._5 + dZ._5))
876856 else throw("Strict value is not equal to itself.")
877857 }
878858
879- let eK = {
880- let bp = eH
881- let bq = size(bp)
882- let br = $Tuple5(0, 0, 0, 0, 0)
883- func bs (bt,bu) = if ((bu >= bq))
884- then bt
885- else eI(bt, bp[bu])
859+ let eE = {
860+ let bj = eB
861+ let bk = size(bj)
862+ let bl = $Tuple5(0, 0, 0, 0, 0)
863+ func bm (bn,bo) = if ((bo >= bk))
864+ then bn
865+ else eC(bn, bj[bo])
886866
887- func bv (bt,bu) = if ((bu >= bq))
888- then bt
867+ func bp (bn,bo) = if ((bo >= bk))
868+ then bn
889869 else throw("List size exceeds 14")
890870
891- bv(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(br, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14)
871+ bp(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bl, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14)
892872 }
893- if ((eK == eK))
873+ if ((eE == eE))
894874 then {
895- let eL = invoke(eE, "unstakeLandsFinalizeCallback", [x], nil)
896- if ((eL == eL))
875+ let eF = invoke(ey, "unstakeLandsFinalizeCallback", [w], nil)
876+ if ((eF == eF))
897877 then {
898- let ev = invoke(eu, "requestAcresCallback", [(((eK._1 + eK._2) + eK._3) + eK._4)], nil)
899- if ((ev == ev))
878+ let ep = invoke(eo, "requestAcresCallback", [(((eE._1 + eE._2) + eE._3) + eE._4)], nil)
879+ if ((ep == ep))
900880 then {
901- let eM = cy(bP, bT, cb, bZ, 3, bI, cd, cf.caller)
902- let eN = eM._1
903- let cH = eM._2
904- $Tuple6(eK._1, eK._2, eK._3, eK._4, eK._5, eN)
881+ let eG = cs(bJ, bN, bV, bT, 3, bC, bX, bZ.caller)
882+ let eH = eG._1
883+ let cB = eG._2
884+ $Tuple6(eE._1, eE._2, eE._3, eE._4, eE._5, eH)
905885 }
906886 else throw("Strict value is not equal to itself.")
907887 }
908888 else throw("Strict value is not equal to itself.")
909889 }
910890 else throw("Strict value is not equal to itself.")
911891 }
912892 }
913893 else $Tuple6(0, 0, 0, 0, 0, nil)
914- let eO = valueOrElse(getString(eE, ai(x)), "")
915- let eP = if ((eO != ""))
916- then az(invoke(eE, "unstakeDuckCallback", [eO, x], nil))
894+ let eI = valueOrElse(getString(ey, ac(w)), "")
895+ let eJ = if ((eI != ""))
896+ then at(invoke(ey, "unstakeDuckCallback", [eI, w], nil))
917897 else $Tuple3(0, 0, 0)
918- let eQ = cM((((((((eD._1 + eG._1) + eG._2) + eG._3) + eG._4) + eP._1) + eP._2) + eP._3), x, 0)
919- $Tuple2(((eG._6 ++ eQ._1) ++ el), $Tuple3(eD._2, eG._5, eQ._2))
898+ let eK = cG((((((((ex._1 + eA._1) + eA._2) + eA._3) + eA._4) + eJ._1) + eJ._2) + eJ._3), w, 0)
899+ $Tuple2(((eA._6 ++ eK._1) ++ ef), $Tuple3(ex._2, eA._5, eK._2))
920900 }
921901 }
922902 }
923903
924904
925905
926-@Callable(cf)
927-func unstakeLandsREADONLY (x) = {
928- let eE = addressFromStringValue(v)
929- let eF = getString(eE, ag(x))
930- let eG = if (isDefined(eF))
906+@Callable(bZ)
907+func unstakeLandsREADONLY (w) = {
908+ let ey = addressFromStringValue(u)
909+ let ez = getString(ey, aa(w))
910+ let eA = if (isDefined(ez))
931911 then {
932- let eH = split_51C(value(eF), "_")
933- func eI (bn,eJ) = if ((eJ == ""))
912+ let eB = split_51C(value(ez), "_")
913+ func eC (bh,eD) = if ((eD == ""))
934914 then throw("landAssetId is required")
935915 else {
936- let ef = ay(invoke(eE, "unstakeLandREADONLY", [eJ, x], nil))
937- $Tuple4((bn._1 + ef._1), (bn._2 + ef._2), (bn._3 + ef._3), (bn._4 + ef._4))
916+ let dZ = as(invoke(ey, "unstakeLandREADONLY", [eD, w], nil))
917+ $Tuple4((bh._1 + dZ._1), (bh._2 + dZ._2), (bh._3 + dZ._3), (bh._4 + dZ._4))
938918 }
939919
940- let bp = eH
941- let bq = size(bp)
942- let br = $Tuple4(0, 0, 0, 0)
943- func bs (bt,bu) = if ((bu >= bq))
944- then bt
945- else eI(bt, bp[bu])
920+ let bj = eB
921+ let bk = size(bj)
922+ let bl = $Tuple4(0, 0, 0, 0)
923+ func bm (bn,bo) = if ((bo >= bk))
924+ then bn
925+ else eC(bn, bj[bo])
946926
947- func bv (bt,bu) = if ((bu >= bq))
948- then bt
927+ func bp (bn,bo) = if ((bo >= bk))
928+ then bn
949929 else throw("List size exceeds 100")
950930
951- bv(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(br, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
931+ bp(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bl, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
952932 }
953933 else $Tuple4(0, 0, 0, 0)
954- $Tuple2(nil, eG)
934+ $Tuple2(nil, eA)
955935 }
956936
957937
958938
959-@Callable(cf)
960-func stakeAcresCallback (X) = if ((cf.caller != addressFromStringValue(v)))
939+@Callable(bZ)
940+func stakeAcresCallback (R) = if ((bZ.caller != addressFromStringValue(u)))
961941 then throw("Permission denied")
962- else cM(cf.payments[0].amount, X, 0)
942+ else cG(bZ.payments[0].amount, R, 0)
963943
964944
965945
966-@Callable(cf)
967-func simulateStakeAcresREADONLY (x,eR) = {
968- let cS = aS(x)
969- let cU = (valueOrElse(getInteger(cS), 0) + eR)
970- let cV = valueOrElse(getInteger(aU), 0)
971- let cW = aT(x)
972- let cX = valueOrElse(getInteger(cW), 0)
973- let eS = valueOrElse(getInteger(Q, bh(x)), 0)
974- let eT = bx(cU, eS)
975- let db = eT._1
976- let dc = eT._2
977- let dd = valueOrElse(getInteger(aV), 0)
978- let eU = ((dd + db) - cX)
979- $Tuple2(nil, [cX, db, dd, eU])
946+@Callable(bZ)
947+func simulateStakeAcresREADONLY (w,eL) = {
948+ let cM = aM(w)
949+ let cO = (valueOrElse(getInteger(cM), 0) + eL)
950+ let cP = valueOrElse(getInteger(aO), 0)
951+ let cQ = aN(w)
952+ let cR = valueOrElse(getInteger(cQ), 0)
953+ let eM = valueOrElse(getInteger(K, bb(w)), 0)
954+ let eN = br(cO, eM)
955+ let cV = eN._1
956+ let cW = eN._2
957+ let cX = valueOrElse(getInteger(aP), 0)
958+ let eO = ((cX + cV) - cR)
959+ $Tuple2(nil, [cR, cV, cX, eO])
980960 }
981961
982962
983963
984-@Callable(cf)
985-func issuePickC1 (eV) = if ((cf.caller != R))
964+@Callable(bZ)
965+func issuePickC1 (eP) = if ((bZ.caller != L))
986966 then throw("Permission denied")
987- else cy(bQ, bS, cb, bV, 1, bJ, cd, addressFromStringValue(eV))
967+ else cs(bK, bM, bV, bP, 1, bD, bX, addressFromStringValue(eP))
988968
989969
990970
991-@Callable(cf)
971+@Callable(bZ)
992972 func stakeNFT () = {
993- let el = ce(cf)
994- if ((size(cf.payments) != 1))
973+ let ef = bY(bZ)
974+ if ((size(bZ.payments) != 1))
995975 then throw("Exactly one payment required")
996976 else {
997- let eo = value(cf.payments[0])
998- if ((eo.amount != 1))
977+ let ei = value(bZ.payments[0])
978+ if ((ei.amount != 1))
999979 then throw("NFT token should be attached as payment")
1000980 else {
1001- let ak = value(eo.assetId)
1002- let eW = value(assetInfo(ak))
1003- let dH = toBase58String(ak)
1004- let X = toString(cf.caller)
1005- let eX = al(X)
1006- let eY = getString(eX)
1007- let eZ = if (isDefined(eY))
1008- then split_4C(value(eY), "_")
981+ let ae = value(ei.assetId)
982+ let eQ = value(assetInfo(ae))
983+ let dB = toBase58String(ae)
984+ let R = toString(bZ.caller)
985+ let eR = af(R)
986+ let eS = getString(eR)
987+ let eT = if (isDefined(eS))
988+ then split_4C(value(eS), "_")
1009989 else nil
1010- if (containsElement(eZ, dH))
1011- then throw(("Your staked NFTs already contain " + dH))
1012- else if ((size(eZ) >= aZ))
1013- then throw((("Your already staked max (" + toString(aZ)) + ") NFTs"))
990+ if (containsElement(eT, dB))
991+ then throw(("Your staked NFTs already contain " + dB))
992+ else if ((size(eT) >= aT))
993+ then throw((("Your already staked max (" + toString(aT)) + ") NFTs"))
1014994 else {
1015- let fa = StringEntry(eX, makeString_2C((eZ :+ dH), "_"))
1016- if ((eW.issuer == this))
995+ let eU = StringEntry(eR, makeString_2C((eT :+ dB), "_"))
996+ if ((eQ.issuer == this))
1017997 then {
1018- let fb = dG(X, dH, (cI(value(eW.description)) * 10000), bf(X), bc, aW)
1019- let dN = fb._1
1020- let dO = fb._2
1021- $Tuple2(((el ++ dN) :+ fa), dO)
998+ let eV = dA(R, dB, (cC(value(eQ.description)) * 10000), aZ(R), aW, aQ)
999+ let dH = eV._1
1000+ let dI = eV._2
1001+ $Tuple2(((ef ++ dH) :+ eU), dI)
10221002 }
1023- else if ((dD(eW) == ""))
1003+ else if ((dx(eQ) == ""))
10241004 then throw("Only WavesLands and Arkimals NFT tokens are accepted")
10251005 else {
1026- let fc = dG(X, dH, aY, bg(X), bd, aX)
1027- let dN = fc._1
1028- let dO = fc._2
1029- $Tuple2(((el ++ dN) :+ fa), dO)
1006+ let eW = dA(R, dB, aS, ba(R), aX, aR)
1007+ let dH = eW._1
1008+ let dI = eW._2
1009+ $Tuple2(((ef ++ dH) :+ eU), dI)
10301010 }
10311011 }
10321012 }
10331013 }
10341014 }
10351015
10361016
10371017
1038-@Callable(cf)
1039-func unstakeNFT (dH) = {
1040- let el = ce(cf)
1041- if ((size(cf.payments) != 0))
1018+@Callable(bZ)
1019+func unstakeNFT (dB) = {
1020+ let ef = bY(bZ)
1021+ if ((size(bZ.payments) != 0))
10421022 then throw("No payments required")
10431023 else {
1044- let ak = fromBase58String(dH)
1045- let X = toString(cf.caller)
1046- let eW = value(assetInfo(ak))
1047- let cR = aj(dH, X)
1048- if (!(isDefined(getInteger(cR))))
1049- then throw((("NFT " + eW.name) + " is not staked by you"))
1024+ let ae = fromBase58String(dB)
1025+ let R = toString(bZ.caller)
1026+ let eQ = value(assetInfo(ae))
1027+ let cL = ad(dB, R)
1028+ if (!(isDefined(getInteger(cL))))
1029+ then throw((("NFT " + eQ.name) + " is not staked by you"))
10501030 else {
1051- let eX = al(X)
1052- let eZ = split_4C(valueOrElse(getString(eX), ""), "_")
1053- let L = indexOf(eZ, dH)
1054- if (!(isDefined(L)))
1055- then throw(("Your staked NFTs don't contain " + dH))
1031+ let eR = af(R)
1032+ let eT = split_4C(valueOrElse(getString(eR), ""), "_")
1033+ let I = indexOf(eT, dB)
1034+ if (!(isDefined(I)))
1035+ then throw(("Your staked NFTs don't contain " + dB))
10561036 else {
1057- let fa = if ((size(eZ) > 1))
1058- then StringEntry(eX, makeString_2C(removeByIndex(eZ, value(L)), "_"))
1059- else DeleteEntry(eX)
1060- let fd = (eW.issuer == this)
1061- if (fd)
1037+ let eU = if ((size(eT) > 1))
1038+ then StringEntry(eR, makeString_2C(removeByIndex(eT, value(I)), "_"))
1039+ else DeleteEntry(eR)
1040+ let eX = (eQ.issuer == this)
1041+ if (eX)
10621042 then {
1063- let fe = valueOrElse(getInteger(bf(X)), 0)
1064- let ff = (cI(value(eW.description)) * 10000)
1065- let fg = cM(0, X, -(ff))
1066- let dN = fg._1
1067- let dO = fg._2
1068- $Tuple2(((((((dN :+ fa) :+ IntegerEntry(bf(X), (fe - 1))) :+ IntegerEntry(bc, max([0, (valueOrElse(getInteger(bc), 0) - 1)]))) :+ DeleteEntry(aj(toBase58String(ak), X))) :+ ScriptTransfer(cf.caller, 1, ak)) ++ el), dO)
1043+ let eY = valueOrElse(getInteger(aZ(R)), 0)
1044+ let eZ = (cC(value(eQ.description)) * 10000)
1045+ let fa = cG(0, R, -(eZ))
1046+ let dH = fa._1
1047+ let dI = fa._2
1048+ $Tuple2(((((((dH :+ eU) :+ IntegerEntry(aZ(R), (eY - 1))) :+ IntegerEntry(aW, max([0, (valueOrElse(getInteger(aW), 0) - 1)]))) :+ DeleteEntry(ad(toBase58String(ae), R))) :+ ScriptTransfer(bZ.caller, 1, ae)) ++ ef), dI)
10691049 }
10701050 else {
1071- let fh = dD(eW)
1072- if ((fh == ""))
1051+ let fb = dx(eQ)
1052+ if ((fb == ""))
10731053 then throw("Only WavesLands and Arkimals NFT tokens are accepted")
10741054 else {
1075- let fi = valueOrElse(getInteger(bg(X)), 0)
1076- let fj = cM(0, X, -(aY))
1077- let dN = fj._1
1078- let dO = fj._2
1079- $Tuple2((((((dN :+ fa) :+ IntegerEntry(bg(X), (fi - 1))) :+ DeleteEntry(aj(toBase58String(ak), X))) :+ ScriptTransfer(cf.caller, 1, ak)) ++ el), dO)
1055+ let fc = valueOrElse(getInteger(ba(R)), 0)
1056+ let fd = cG(0, R, -(aS))
1057+ let dH = fd._1
1058+ let dI = fd._2
1059+ $Tuple2((((((dH :+ eU) :+ IntegerEntry(ba(R), (fc - 1))) :+ DeleteEntry(ad(toBase58String(ae), R))) :+ ScriptTransfer(bZ.caller, 1, ae)) ++ ef), dI)
10801060 }
10811061 }
10821062 }
10831063 }
10841064 }
10851065 }
10861066
10871067
10881068
1089-@Callable(cf)
1069+@Callable(bZ)
10901070 func exchangeNFTs () = {
1091- let el = ce(cf)
1092- if ((3 > size(cf.payments)))
1071+ let ef = bY(bZ)
1072+ if ((3 > size(bZ.payments)))
10931073 then throw("Min one WLGOLD and 2 NFT payments allowed")
1094- else if ((size(cf.payments) > 10))
1074+ else if ((size(bZ.payments) > 10))
10951075 then throw("Max one WLGOLD and 9 NFT payments allowed")
10961076 else {
1097- let X = toString(cf.caller)
1098- func fk (bn,eo) = {
1099- let ak = valueOrErrorMessage(eo.assetId, "WAVES payments not allowed")
1100- if ((ak == ab))
1101- then $Tuple4((bn._1 + eo.amount), bn._2, bn._3, bn._4)
1077+ let R = toString(bZ.caller)
1078+ func fe (bh,ei) = {
1079+ let ae = valueOrErrorMessage(ei.assetId, "WAVES payments not allowed")
1080+ if ((ae == V))
1081+ then $Tuple4((bh._1 + ei.amount), bh._2, bh._3, bh._4)
11021082 else {
1103- let eW = value(assetInfo(ak))
1104- if ((eW.issuer != this))
1083+ let eQ = value(assetInfo(ae))
1084+ if ((eQ.issuer != this))
11051085 then throw("Only WL-issued NFTs allowed")
11061086 else {
1107- let fl = cK(value(eW.description))
1108- if (if ((bn._4 > 0))
1109- then (fl != bn._4)
1087+ let ff = cE(value(eQ.description))
1088+ if (if ((bh._4 > 0))
1089+ then (ff != bh._4)
11101090 else false)
11111091 then throw("You can exchange only NFTs of the same rarity")
11121092 else {
1113- let cD = cI(value(eW.description))
1114- $Tuple4(bn._1, (bn._2 + cD), (bn._3 :+ Burn(ak, 1)), fl)
1093+ let cx = cC(value(eQ.description))
1094+ $Tuple4(bh._1, (bh._2 + cx), (bh._3 :+ Burn(ae, 1)), ff)
11151095 }
11161096 }
11171097 }
11181098 }
11191099
1120- let fm = {
1121- let bp = cf.payments
1122- let bq = size(bp)
1123- let br = $Tuple4(0, 0, nil, -1)
1124- func bs (bt,bu) = if ((bu >= bq))
1125- then bt
1126- else fk(bt, bp[bu])
1100+ let fg = {
1101+ let bj = bZ.payments
1102+ let bk = size(bj)
1103+ let bl = $Tuple4(0, 0, nil, -1)
1104+ func bm (bn,bo) = if ((bo >= bk))
1105+ then bn
1106+ else fe(bn, bj[bo])
11271107
1128- func bv (bt,bu) = if ((bu >= bq))
1129- then bt
1108+ func bp (bn,bo) = if ((bo >= bk))
1109+ then bn
11301110 else throw("List size exceeds 10")
11311111
1132- bv(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(br, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
1112+ bp(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bl, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
11331113 }
1134- let fn = fm._1
1135- let fo = fm._2
1136- let fp = fm._3
1137- let cC = fm._4
1138- let fq = if ((cC == bV))
1139- then if ((bK[bL] > fo))
1140- then bV
1141- else if ((bK[bM] > fo))
1142- then bW
1143- else throw((("You can advance only one level of rarity, max total bonus " + toString(bK[bM])) + "%"))
1144- else if ((cC == bW))
1145- then if ((bK[bM] > fo))
1146- then bW
1147- else if ((bK[bN] > fo))
1148- then bX
1149- else throw((("You can advance only one level of rarity, max total bonus " + toString(bK[bN])) + "%"))
1150- else if ((cC == bX))
1151- then if ((bK[bN] > fo))
1152- then bX
1153- else bY
1154- else if ((cC == bY))
1155- then bY
1156- else if ((cC == bZ))
1114+ let fh = fg._1
1115+ let fi = fg._2
1116+ let fj = fg._3
1117+ let cw = fg._4
1118+ let fk = if ((cw == bP))
1119+ then if ((bE[bF] > fi))
1120+ then bP
1121+ else if ((bE[bG] > fi))
1122+ then bQ
1123+ else throw((("You can advance only one level of rarity, max total bonus " + toString(bE[bG])) + "%"))
1124+ else if ((cw == bQ))
1125+ then if ((bE[bG] > fi))
1126+ then bQ
1127+ else if ((bE[bH] > fi))
1128+ then bR
1129+ else throw((("You can advance only one level of rarity, max total bonus " + toString(bE[bH])) + "%"))
1130+ else if ((cw == bR))
1131+ then if ((bE[bH] > fi))
1132+ then bR
1133+ else bS
1134+ else if ((cw == bS))
1135+ then bS
1136+ else if ((cw == bT))
11571137 then throw("You can't exchange NFTs of this rarity")
11581138 else throw("Unknown rarity")
1159- let fr = fraction(fo, e, dg(0))
1160- let fs = (fn - fr)
1161- let ft = (fr / 2)
1162- let ew = as(invoke(R, "burnWlgold", [(fr - ft)], nil))
1163- if ((0 > fs))
1164- then throw((("You need to attach " + aB(fr, 8)) + " WLGOLD as fee"))
1139+ let fl = fraction(fi, e, da(0))
1140+ let fm = (fh - fl)
1141+ let fn = (fl / 2)
1142+ let eq = am(invoke(L, "burnWlgold", [(fl - fn)], nil))
1143+ if ((0 > fm))
1144+ then throw((("You need to attach " + av(fl, 8)) + " WLGOLD as fee"))
11651145 else {
1166- let fu = if ((fs > 0))
1167- then [ScriptTransfer(cf.caller, fs, ab)]
1146+ let fo = if ((fm > 0))
1147+ then [ScriptTransfer(bZ.caller, fm, V)]
11681148 else nil
1169- let fv = cy(bQ, fq, cb, fq, fo, bJ, cd, cf.caller)
1170- let fw = fv._1
1171- let cH = fv._2
1172- let fx = size(fp)
1173- let fy = if ((fx == 0))
1149+ let fp = cs(bK, fk, bV, fk, fi, bD, bX, bZ.caller)
1150+ let fq = fp._1
1151+ let cB = fp._2
1152+ let fr = size(fj)
1153+ let fs = if ((fr == 0))
11741154 then nil
1175- else [IntegerEntry(bb, (valueOrElse(getInteger(bb), 0) + fx))]
1176- $Tuple2((((((fw ++ fp) ++ fy) ++ el) ++ fu) :+ ScriptTransfer(addressFromStringValue(getStringValue(R, bA)), ft, ab)), $Tuple2(cH, ew))
1155+ else [IntegerEntry(aV, (valueOrElse(getInteger(aV), 0) + fr))]
1156+ $Tuple2((((((fq ++ fj) ++ fs) ++ ef) ++ fo) :+ ScriptTransfer(addressFromStringValue(getStringValue(L, bu)), fn, V)), $Tuple2(cB, eq))
11771157 }
11781158 }
11791159 }
11801160
11811161
11821162
1183-@Callable(cf)
1163+@Callable(bZ)
11841164 func openNftChest () = {
1185- let el = ce(cf)
1186- if ((size(cf.payments) != 1))
1165+ let ef = bY(bZ)
1166+ if ((size(bZ.payments) != 1))
11871167 then throw("exactly 1 payment must be attached")
11881168 else {
1189- let eo = cf.payments[0]
1190- let et = eo.amount
1191- if (if (!(isDefined(eo.assetId)))
1169+ let ei = bZ.payments[0]
1170+ let en = ei.amount
1171+ if (if (!(isDefined(ei.assetId)))
11921172 then true
1193- else (value(eo.assetId) != ab))
1173+ else (value(ei.assetId) != V))
11941174 then throw("WLGOLD payments only!")
11951175 else {
1196- let fr = fraction(j, d, dg(0))
1197- let fs = (et - fr)
1198- let ft = (fr / 2)
1199- let ew = as(invoke(R, "burnWlgold", [(fr - ft)], nil))
1200- if ((0 > fs))
1201- then throw((("You need to attach " + aB(fr, 8)) + " WLGOLD as fee"))
1176+ let fl = fraction(j, d, da(0))
1177+ let fm = (en - fl)
1178+ let fn = (fl / 2)
1179+ let eq = am(invoke(L, "burnWlgold", [(fl - fn)], nil))
1180+ if ((0 > fm))
1181+ then throw((("You need to attach " + av(fl, 8)) + " WLGOLD as fee"))
12021182 else {
1203- let fu = if ((fs > 0))
1204- then [ScriptTransfer(cf.caller, fs, ab)]
1183+ let fo = if ((fm > 0))
1184+ then [ScriptTransfer(bZ.caller, fm, V)]
12051185 else nil
1206- let X = toString(cf.caller)
1207- let fz = Z(X)
1208- let fA = valueOrErrorMessage(getInteger(fz), "You have to commitForRandom() first!")
1209- if ((fA > height))
1210- then throw(("Random number is not ready yet, wait until height = " + toString(fA)))
1186+ let R = toString(bZ.caller)
1187+ let ft = T(R)
1188+ let fu = valueOrErrorMessage(getInteger(ft), "You have to commitForRandom() first!")
1189+ if ((fu > height))
1190+ then throw(("Random number is not ready yet, wait until height = " + toString(fu)))
12111191 else {
1212- let aJ = value(value(blockInfoByHeight(fA)).vrf)
1213- let aI = fromBase58String(split(valueOrElse(getString(Y(X)), "42_DEFAULT"), "_")[1])
1214- let fB = aG(100, aI, aJ)
1215- let fC = if ((84 > fB))
1216- then $Tuple2(1, bV)
1217- else if ((98 > fB))
1218- then $Tuple2(5, bW)
1219- else $Tuple2(10, bX)
1220- let cw = fC._1
1221- let cC = fC._2
1222- let fD = cy(bQ, cC, cb, cC, cw, bJ, cd, cf.caller)
1223- let fw = fD._1
1224- let cH = fD._2
1225- $Tuple2(((((fw ++ el) ++ fu) :+ ScriptTransfer(addressFromStringValue(getStringValue(R, bA)), ft, ab)) :+ DeleteEntry(fz)), $Tuple2(cH, ew))
1192+ let aD = value(value(blockInfoByHeight(fu)).vrf)
1193+ let aC = fromBase58String(split(valueOrElse(getString(S(R)), "42_DEFAULT"), "_")[1])
1194+ let fv = aA(100, aC, aD)
1195+ let fw = if ((84 > fv))
1196+ then $Tuple2(1, bP)
1197+ else if ((98 > fv))
1198+ then $Tuple2(5, bQ)
1199+ else $Tuple2(10, bR)
1200+ let cq = fw._1
1201+ let cw = fw._2
1202+ let fx = cs(bK, cw, bV, cw, cq, bD, bX, bZ.caller)
1203+ let fq = fx._1
1204+ let cB = fx._2
1205+ $Tuple2(((((fq ++ ef) ++ fo) :+ ScriptTransfer(addressFromStringValue(getStringValue(L, bu)), fn, V)) :+ DeleteEntry(ft)), $Tuple2(cB, eq))
12261206 }
12271207 }
12281208 }
12291209 }
12301210 }
12311211
12321212
12331213
1234-@Callable(cf)
1214+@Callable(bZ)
12351215 func commitForRandom () = {
1236- let el = ce(cf)
1237- let X = toString(cf.caller)
1238- let fz = Z(X)
1239- if (isDefined(getInteger(fz)))
1216+ let ef = bY(bZ)
1217+ let R = toString(bZ.caller)
1218+ let ft = T(R)
1219+ if (isDefined(getInteger(ft)))
12401220 then throw("You already commited for random, please use it")
12411221 else {
1242- let fA = (height + i)
1243- $Tuple2(([IntegerEntry(fz, fA)] ++ el), fA)
1222+ let fu = (height + i)
1223+ $Tuple2(([IntegerEntry(ft, fu)] ++ ef), fu)
12441224 }
12451225 }
12461226
12471227
12481228
1249-@Callable(cf)
1250-func drawDaylyPromo () = if ((cf.caller != this))
1229+@Callable(bZ)
1230+func drawDaylyPromo () = if ((bZ.caller != this))
12511231 then throw("Permission denied")
12521232 else {
1253- let fE = (height / o)
1254- let aH = valueOrElse(getInteger(ao), 0)
1255- if ((aH == 0))
1233+ let fy = (height / o)
1234+ let aB = valueOrElse(getInteger(ai), 0)
1235+ if ((aB == 0))
12561236 then throw("No tickets to draw")
12571237 else {
1258- let fF = (fE * o)
1259- let fG = if ((fF > q))
1260- then fF
1261- else (fF + q)
1262- let aJ = value(value(blockInfoByHeight(fG)).vrf)
1263- let eb = valueOrElse(getString(ap), "")
1264- if ((eb == ""))
1238+ let fz = (fy * o)
1239+ let fA = if ((fz > q))
1240+ then fz
1241+ else (fz + q)
1242+ let aD = value(value(blockInfoByHeight(fA)).vrf)
1243+ let dV = valueOrElse(getString(aj), "")
1244+ if ((dV == ""))
12651245 then throw("No participants")
12661246 else {
1267- func fH (fI,fJ) = if ((fJ >= dP))
1268- then fI
1247+ func fB (fC,fD) = if ((fD >= dJ))
1248+ then fC
12691249 else {
1270- let fB = aG(fI._1, fI._2, aJ)
1271- let fK = if ((fI._3 == ""))
1250+ let fv = aA(fC._1, fC._2, aD)
1251+ let fE = if ((fC._3 == ""))
12721252 then nil
1273- else split_51C(fI._3, "_")
1274- func fL (bn,fM) = {
1275- let fN = split(fM, ":")
1276- let X = fN[0]
1277- let dX = parseIntValue(fN[1])
1278- let fO = (bn._1 + dX)
1279- if (if ((bn._3 == ""))
1280- then (fO > fB)
1253+ else split_51C(fC._3, "_")
1254+ func fF (bh,fG) = {
1255+ let fH = split(fG, ":")
1256+ let R = fH[0]
1257+ let dR = parseIntValue(fH[1])
1258+ let fI = (bh._1 + dR)
1259+ if (if ((bh._3 == ""))
1260+ then (fI > fv)
12811261 else false)
1282- then $Tuple3(fO, dX, X)
1283- else $Tuple3(fO, bn._2, bn._3)
1262+ then $Tuple3(fI, dR, R)
1263+ else $Tuple3(fI, bh._2, bh._3)
12841264 }
12851265
1286- let ef = {
1287- let bp = fK
1288- let bq = size(bp)
1289- let br = $Tuple3(0, 0, "")
1290- func bs (bt,bu) = if ((bu >= bq))
1291- then bt
1292- else fL(bt, bp[bu])
1266+ let dZ = {
1267+ let bj = fE
1268+ let bk = size(bj)
1269+ let bl = $Tuple3(0, 0, "")
1270+ func bm (bn,bo) = if ((bo >= bk))
1271+ then bn
1272+ else fF(bn, bj[bo])
12931273
1294- func bv (bt,bu) = if ((bu >= bq))
1295- then bt
1274+ func bp (bn,bo) = if ((bo >= bk))
1275+ then bn
12961276 else throw("List size exceeds 200")
12971277
1298- bv(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(bs(br, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100), 101), 102), 103), 104), 105), 106), 107), 108), 109), 110), 111), 112), 113), 114), 115), 116), 117), 118), 119), 120), 121), 122), 123), 124), 125), 126), 127), 128), 129), 130), 131), 132), 133), 134), 135), 136), 137), 138), 139), 140), 141), 142), 143), 144), 145), 146), 147), 148), 149), 150), 151), 152), 153), 154), 155), 156), 157), 158), 159), 160), 161), 162), 163), 164), 165), 166), 167), 168), 169), 170), 171), 172), 173), 174), 175), 176), 177), 178), 179), 180), 181), 182), 183), 184), 185), 186), 187), 188), 189), 190), 191), 192), 193), 194), 195), 196), 197), 198), 199), 200)
1278+ bp(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bm(bl, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100), 101), 102), 103), 104), 105), 106), 107), 108), 109), 110), 111), 112), 113), 114), 115), 116), 117), 118), 119), 120), 121), 122), 123), 124), 125), 126), 127), 128), 129), 130), 131), 132), 133), 134), 135), 136), 137), 138), 139), 140), 141), 142), 143), 144), 145), 146), 147), 148), 149), 150), 151), 152), 153), 154), 155), 156), 157), 158), 159), 160), 161), 162), 163), 164), 165), 166), 167), 168), 169), 170), 171), 172), 173), 174), 175), 176), 177), 178), 179), 180), 181), 182), 183), 184), 185), 186), 187), 188), 189), 190), 191), 192), 193), 194), 195), 196), 197), 198), 199), 200)
12991279 }
1300- let fP = ef._3
1301- if ((fP == ""))
1302- then fI
1280+ let fJ = dZ._3
1281+ if ((fJ == ""))
1282+ then fC
13031283 else {
1304- let ee = split_51C(fI._3, fP)
1305- let ed = if ((ee[0] == ""))
1306- then drop(ee[1], 5)
1307- else (dropRight(ee[0], 1) + drop(ee[1], 4))
1308- let fQ = dR(fP, dQ[fJ], true)
1309- let eq = fQ._1
1310- let fR = fQ._2
1311- let fS = fromBase58String(valueOrElse(getString(O, Y(fP)), "DEFAULT"))
1312- $Tuple5((fI._1 - ef._2), fS, ed, (fI._4 :+ eq), (fI._5 :+ fP))
1284+ let dY = split_51C(fC._3, fJ)
1285+ let dX = if ((dY[0] == ""))
1286+ then drop(dY[1], 5)
1287+ else (dropRight(dY[0], 1) + drop(dY[1], 4))
1288+ let fK = dL(fJ, dK[fD], true)
1289+ let ek = fK._1
1290+ let fL = fK._2
1291+ let fM = fromBase58String(split(valueOrElse(getString(S(fJ)), "0_DEFAULT"), "_")[1])
1292+ $Tuple5((fC._1 - dZ._2), fM, dX, (fC._4 :+ ek), (fC._5 :+ fJ))
13131293 }
13141294 }
13151295
1316- let fT = {
1317- let bp = [0, 1, 2]
1318- let bq = size(bp)
1319- let br = $Tuple5(aH, cf.transactionId, eb, nil, nil)
1320- func bs (bt,bu) = if ((bu >= bq))
1321- then bt
1322- else fH(bt, bp[bu])
1296+ let fN = {
1297+ let bj = [0, 1, 2]
1298+ let bk = size(bj)
1299+ let bl = $Tuple5(aB, bZ.transactionId, dV, nil, nil)
1300+ func bm (bn,bo) = if ((bo >= bk))
1301+ then bn
1302+ else fB(bn, bj[bo])
13231303
1324- func bv (bt,bu) = if ((bu >= bq))
1325- then bt
1304+ func bp (bn,bo) = if ((bo >= bk))
1305+ then bn
13261306 else throw("List size exceeds 3")
13271307
1328- bv(bs(bs(bs(br, 0), 1), 2), 3)
1308+ bp(bm(bm(bm(bl, 0), 1), 2), 3)
13291309 }
1330- $Tuple2((((fT._4 :+ StringEntry(ap, fT._3)) :+ IntegerEntry(ao, fT._1)) :+ StringEntry(aq(fE), makeString(fT._5, "_"))), 0)
1310+ $Tuple2((((fN._4 :+ StringEntry(aj, fN._3)) :+ IntegerEntry(ai, fN._1)) :+ StringEntry(ak(fy), makeString(fN._5, "_"))), 0)
13311311 }
13321312 }
13331313 }
13341314
13351315

github/deemru/w8io/169f3d6 
1291.81 ms