tx · GTrSpgmsDcgs3Yz7WkLKXEyUAZtnguqUei7puENiVaj4

3NBPx1Fciu3JQNEGZ21jSnTdutLNGGBUSXh:  -0.02900000 Waves

2024.11.29 21:02 [3393050] smart account 3NBPx1Fciu3JQNEGZ21jSnTdutLNGGBUSXh > SELF 0.00000000 Waves

{ "type": 13, "id": "GTrSpgmsDcgs3Yz7WkLKXEyUAZtnguqUei7puENiVaj4", "fee": 2900000, "feeAssetId": null, "timestamp": 1732903339353, "version": 2, "chainId": 84, "sender": "3NBPx1Fciu3JQNEGZ21jSnTdutLNGGBUSXh", "senderPublicKey": "3QtfC1XbLZXdeawMDeSERy9vvjUmj1XYd2GFmrvx7pWQ", "proofs": [ "22UkMKxeBGDLH2E4cg2FsgZ1xjTRnX7CJUykx5kQH9Wpyhwd2snH1pYmoMyABqM1GG8kJ7ddQ8gzFnxTQAaymij4" ], "script": "base64:BgJHCAISABIECgIICBIDCgEEEgMKAQESABIAEgMKAQESABIECgIIARIAEgMKAQgSAwoBCBIECgIIARIDCgEIEgASAwoBCBIAEgB2AANTRVACAl9fAAVNVUxUNgDAhD0ABU1VTFQ3AICt4gQABU1VTFQ4AIDC1y8ACkRBWV9NSUxMSVMAgLiZKQAVVVNEVDJBQ1JFU19NVUxUSVBMSUVSAAoAE09ORV9QRVJDRU5UX0RJVklTT1IAZAAFY2hhaW4JAMkBAgkAygECCAUEdGhpcwVieXRlcwABAAEAC1dFRUtfQkxPQ0tTBAckbWF0Y2gwBQVjaGFpbgMJAAACAQFXBQckbWF0Y2gwAOBOAwkAAAIBAVQFByRtYXRjaDAAtAEJAAIBAg1Vbmtub3duIGNoYWluAAt1c2R0QXNzZXRJZAQHJG1hdGNoMAUFY2hhaW4DCQAAAgEBVwUHJG1hdGNoMAEghNp6sggDP07Ru8qO7ouTvMmC3Qtd+geWqNQj+agP/7kDCQAAAgEBVAUHJG1hdGNoMAEgVbHYn3KHgu/l41uNrAWrZd6aQ6EvFrsF8xq3h6XxxRgJAAIBAg1Vbmtub3duIGNoYWluABZkZWZhdWx0UmVzdDJBZGRyZXNzU3RyBAckbWF0Y2gwBQVjaGFpbgMJAAACAQFXBQckbWF0Y2gwAiMzUEZ3WXRhOGJpRXozMXpwZUZlNURKSzh3RTV0clNwUVZGOAMJAAACAQFUBQckbWF0Y2gwAiMzTjdVdVlhcjYyNjRQNThGQmhWV0tQUUFoNFl1YTJoZ25ndgkAAgECDVVua25vd24gY2hhaW4ADmFyYml0cmFnZURlbGF5BAckbWF0Y2gwBQVjaGFpbgMJAAACAQFXBQckbWF0Y2gwBQpEQVlfTUlMTElTAwkAAAIBAVQFByRtYXRjaDAA4NQDCQACAQINVW5rbm93biBjaGFpbgAVb2xkU3Rha2luZ0NvbnRyYWN0U3RyBAckbWF0Y2gwBQVjaGFpbgMJAAACAQFXBQckbWF0Y2gwAiMzUExuY1h0UzFVODNENmNRYkZEM0g4ckJIUExnenhTRktaMQMJAAACAQFUBQckbWF0Y2gwAiMzTkRDeUJHNXE4NUp1YVJpaWdVZUV0YWlueWpDUVQzWHBabQkAAgECDVVua25vd24gY2hhaW4BD2dldFN0cmluZ09yRmFpbAIHYWRkcmVzcwNrZXkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQdhZGRyZXNzBQNrZXkJALkJAgkAzAgCAgptYW5kYXRvcnkgCQDMCAIJAKUIAQUHYWRkcmVzcwkAzAgCAgEuCQDMCAIFA2tleQkAzAgCAg8gaXMgbm90IGRlZmluZWQFA25pbAIAABBJZHhDZmdBY3JlczJEYXBwAAEADUlkeENmZ1dsZ0RhcHAAAgAUSWR4Q2ZnSW52ZXN0RnVuZERhcHAABQEKa2V5UmVzdENmZwACDiVzX19yZXN0Q29uZmlnAQ9rZXlSZXN0MkFkZHJlc3MAAg0lc19fcmVzdDJBZGRyARFyZWFkUmVzdENmZ09yRmFpbAEEcmVzdAkAvAkCCQEPZ2V0U3RyaW5nT3JGYWlsAgUEcmVzdAkBCmtleVJlc3RDZmcABQNTRVABGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIIcmVzdDJDZmcDaWR4CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCBQhyZXN0MkNmZwUDaWR4CQCsAgICKlJlc3QgY2ZnIGRvZXNuJ3QgY29udGFpbiBhZGRyZXNzIGF0IGluZGV4IAkApAMBBQNpZHgADXJlc3QyQ29udHJhY3QJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBD2tleVJlc3QyQWRkcmVzcwAFFmRlZmF1bHRSZXN0MkFkZHJlc3NTdHIACHJlc3QyQ2ZnCQERcmVhZFJlc3RDZmdPckZhaWwBBQ1yZXN0MkNvbnRyYWN0AA5hY3JlczJDb250cmFjdAkBGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIFCHJlc3QyQ2ZnBRBJZHhDZmdBY3JlczJEYXBwAAt3bGdDb250cmFjdAkBGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIFCHJlc3QyQ2ZnBQ1JZHhDZmdXbGdEYXBwABJpbnZlc3RGdW5kQ29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQhyZXN0MkNmZwUUSWR4Q2ZnSW52ZXN0RnVuZERhcHAAE29sZEFjcmVzQ29udHJhY3RLZXkCEG9sZEFjcmVzQ29udHJhY3QBCmtleUJsb2NrZWQAAhBjb250cmFjdHNCbG9ja2VkARVrZXlMYXN0V2Vla1R4SWRCeVVzZXIBBGFkZHIJAKwCAgITbGFzdFdlZWtUeElkQnlVc2VyXwUEYWRkcgEUa2V5Q3VyV2Vla1R4SWRCeVVzZXIBBGFkZHIJAKwCAgISY3VyV2Vla1R4SWRCeVVzZXJfBQRhZGRyAA13bGdBc3NldElkS2V5Agt3bGdfYXNzZXRJZAAKd2xnQXNzZXRJZAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCcCAIFC3dsZ0NvbnRyYWN0BQ13bGdBc3NldElkS2V5AhhXTEdPTEQgaXMgbm90IGlzc3VlZCB5ZXQAFGFjcmVzSXNzdWVkQW1vdW50S2V5AhFhY3Jlc0lzc3VlZEFtb3VudAAPYWNyZXNBc3NldElkS2V5AgxhY3Jlc0Fzc2V0SWQADGFjcmVzQXNzZXRJZAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCcCAIFDmFjcmVzMkNvbnRyYWN0BQ9hY3Jlc0Fzc2V0SWRLZXkCF0FDUkVTIGlzIG5vdCBpc3N1ZWQgeWV0ARhrZXlBY3Jlc1N0YWtlZFRpbWVCeVVzZXIBBGFkZHIJAKwCAgIWYWNyZXNTdGFrZWRUaW1lQnlVc2VyXwUEYWRkcgEVa2V5U3Rha2VkTGFuZHNCeU93bmVyAQlvd25lckFkZHIJAKwCAgITc3Rha2VkTGFuZHNCeU93bmVyXwUJb3duZXJBZGRyARRrZXlTdGFrZWREdWNrQnlPd25lcgEJb3duZXJBZGRyCQCsAgICEnN0YWtlZER1Y2tCeU93bmVyXwUJb3duZXJBZGRyAR5rZXlTdGFrZWRUaW1lQnlBc3NldElkQW5kT3duZXICB2Fzc2V0SWQEYWRkcgkArAICCQCsAgIJAKwCAgIDc3RfBQdhc3NldElkAgFfBQRhZGRyARRrZXlTdGFrZWRORlRzQnlPd25lcgEJb3duZXJBZGRyCQCsAgICEnN0YWtlZE5GVHNCeU93bmVyXwUJb3duZXJBZGRyAQVhc0ludAEBdgQHJG1hdGNoMAUBdgMJAAECBQckbWF0Y2gwAgNJbnQEAW4FByRtYXRjaDAFAW4JAAIBAhVmYWlsIHRvIGNhc3QgaW50byBJbnQBDGFzVHVwbGU1SW50cwEDdmFsBAckbWF0Y2gwBQN2YWwDCQABAgUHJG1hdGNoMAIZKEludCwgSW50LCBJbnQsIEludCwgSW50KQQBdAUHJG1hdGNoMAUBdAkAAgECK2ZhaWwgdG8gY2FzdCBpbnRvIChJbnQsIEludCwgSW50LCBJbnQsIEludCkBDGFzVHVwbGU0SW50cwEDdmFsBAckbWF0Y2gwBQN2YWwDCQABAgUHJG1hdGNoMAIUKEludCwgSW50LCBJbnQsIEludCkEAXQFByRtYXRjaDAFAXQJAAIBAiZmYWlsIHRvIGNhc3QgaW50byAoSW50LCBJbnQsIEludCwgSW50KQEMYXNUdXBsZTNJbnRzAQN2YWwEByRtYXRjaDAFA3ZhbAMJAAECBQckbWF0Y2gwAg8oSW50LCBJbnQsIEludCkEAXQFByRtYXRjaDAFAXQJAAIBAiFmYWlsIHRvIGNhc3QgaW50byAoSW50LCBJbnQsIEludCkBDGFzVHVwbGUySW50cwEDdmFsBAckbWF0Y2gwBQN2YWwDCQABAgUHJG1hdGNoMAIKKEludCwgSW50KQQBdAUHJG1hdGNoMAUBdAkAAgECHGZhaWwgdG8gY2FzdCBpbnRvIChJbnQsIEludCkBCmZpeGVkUG9pbnQCA3ZhbAhkZWNpbWFscwQGdGVuUG93CQBsBgAKAAAFCGRlY2ltYWxzAAAAAAUERE9XTgQHbG93UGFydAkApAMBCQBqAgUDdmFsBQZ0ZW5Qb3cEBnplcm9lcwkAsAICCQCkAwEFBnRlblBvdwkAZAIAAQkAsQIBBQdsb3dQYXJ0CQCsAgIJAKwCAgkArAICCQCkAwEJAGkCBQN2YWwFBnRlblBvdwIBLgUGemVyb2VzBQdsb3dQYXJ0AANNNl8AwIQ9AANNOF8AgMLXLwAPd2xnSXNzdWVkQW10S2V5AhB3bGdfaXNzdWVkQW1vdW50AA56Yklzc3VlZEFtdEtleQISemJpbGxfaXNzdWVkQW1vdW50ARdrZXlBY3Jlc1N0YWtlZEFtdEJ5VXNlcgEEYWRkcgkArAICAhhhY3Jlc1N0YWtlZEFtb3VudEJ5VXNlcl8FBGFkZHIBFWtleUZhcm1pbmdQb3dlckJ5VXNlcgEEYWRkcgkArAICAhNmYXJtaW5nUG93ZXJCeVVzZXJfBQRhZGRyABJhY3Jlc1N0YWtkVG90YWxLZXkCFmFjcmVzU3Rha2VkQW1vdW50VG90YWwAFHRvdGFsRmFybWluZ1Bvd2VyS2V5AhF0b3RhbEZhcm1pbmdQb3dlcgALTUFYX1dMX05GVFMAAwAMTUFYX0FSS19ORlRTAAEADUFSS19ORlRfQk9OVVMAiCcAF01BWF9ORlRTX1NUQUtFRF9CWV9VU0VSAAQAEWtleU5mdFRvdGFsSXNzdWVkAg5uZnRUb3RhbElzc3VlZAARa2V5TmZ0VG90YWxCdXJuZWQCDm5mdFRvdGFsQnVybmVkABNrZXlXbE5mdFRvdGFsU3Rha2VkAhBXbE5mdFRvdGFsU3Rha2VkABRrZXlBcmtOZnRUb3RhbFN0YWtlZAIRQXJrTmZ0VG90YWxTdGFrZWQBFWtleU5mdE51bWJlckJ5QXNzZXRJZAEHYXNzZXRJZAkArAICAhNuZnROdW1iZXJCeUFzc2V0SWRfBQdhc3NldElkARJrZXlVc2VyV2xOZnROdW1iZXIBBGFkZHIJAKwCAgIQdXNlcldsTmZ0TnVtYmVyXwUEYWRkcgETa2V5VXNlckFya05mdE51bWJlcgEEYWRkcgkArAICAhF1c2VyQXJrTmZ0TnVtYmVyXwUEYWRkcgEQa2V5VXNlckZ1bGxCb251cwEEYWRkcgkArAICAg51c2VyRnVsbEJvbnVzXwUEYWRkcgAKbGV2ZWxBY3JlcwkAzAgCAAAJAMwIAgAKCQDMCAIAFAkAzAgCACgJAMwIAgBQCQDMCAIAlgEJAMwIAgD6AQkAzAgCAJADCQDMCAIAvAUJAMwIAgDoBwUDbmlsAQ9nZXRMZXZlbEJ5QWNyZXMBBWFjcmVzBANhY3IJAGkCCQBkAgUFYWNyZXMA/8HXLwUDTThfCgEHY2hlY2tlcgIDYWNjBGl0ZW0DCQBnAgUEaXRlbQUDYWNyBQNhY2MJAGQCBQNhY2MAAQoAAiRsBQpsZXZlbEFjcmVzCgACJHMJAJADAQUCJGwKAAUkYWNjMAAACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQdjaGVja2VyAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKARZnZXRGYXJtaW5nUG93ZXJCeUFjcmVzAQVhY3JlcwkAaAIJAGgCBQVhY3JlcwAUCQBkAgkBD2dldExldmVsQnlBY3JlcwEFBWFjcmVzAAQBHmdldEZhcm1pbmdQb3dlckJ5QWNyZXNBbmRCb251cwIFYWNyZXMGYm9udXM2BApub3RCb251c2VkCQEWZ2V0RmFybWluZ1Bvd2VyQnlBY3JlcwEFBWFjcmVzCQCUCgIJAGsDBQpub3RCb251c2VkCQBkAgUDTTZfBQZib251czYFA002XwUKbm90Qm9udXNlZAALdGVhbUFkZHJLZXkCCHRlYW1BZGRyARlrZXlMYXN0V2xnVHJhZGVUaW1lQnlVc2VyAQRhZGRyCQCsAgICEGxhc3RBcmJUaW1lVXNlcl8FBGFkZHIAFGtleUxhc3RBY3Jlc1NlbGxUaW1lAhFsYXN0QWNyZXNTZWxsVGltZQAQa2V5TGFzdExpbWl0TGVmdAINbGFzdExpbWl0TGVmdAAFbmFtZXMJAMwIAgILR29sZCBzaG92ZWwJAMwIAgIHUGlja2F4ZQUDbmlsAAxkZXNjcmlwdGlvbnMJAMwIAgIWUmV3YXJkIGZvciBlYXJseSBiaXJkcwkAzAgCAhNJbmNyZWFzZXMgRmFybVBvd2VyBQNuaWwADmlkeERlc2NyU2hvdmVsAAAAD2lkeERlc2NyUGlja2F4ZQABABByYXJpdHlUaHJlc2hvbGRzCQDMCAIABQkAzAgCAAoJAMwIAgAUBQNuaWwADWlkeFRocmVzaG9sZEMAAAANaWR4VGhyZXNob2xkVQABAA1pZHhUaHJlc2hvbGRMAAIABW5hbWV6CQDMCAICBlNIT1ZFTAkAzAgCAgdQSUNLQVhFBQNuaWwADWlkeE5hbWVTaG92ZWwAAAAOaWR4TmFtZVBpY2theGUAAQALY29udGVudEtleXoJAMwIAgIPY29udGVudFBpY2theGVDCQDMCAICD2NvbnRlbnRQaWNrYXhlVQkAzAgCAg9jb250ZW50UGlja2F4ZUwJAMwIAgIPY29udGVudFBpY2theGVFCQDMCAICDmNvbnRlbnRTaG92ZWxQBQNuaWwAB2lkeEtleUMAAAAHaWR4S2V5UAAEAAtyYXJpdHlOYW1lcwkAzAgCAgZDb21tb24JAMwIAgIIVW5jb21tb24JAMwIAgIJTGVnZW5kYXJ5CQDMCAICBEVwaWMJAMwIAgIFUHJvbW8FA25pbAAKaWR4UmFyaXR5QwAAAAppZHhSYXJpdHlVAAEACmlkeFJhcml0eUwAAgAKaWR4UmFyaXR5RQADAAppZHhSYXJpdHlQAAQAC2NvbGxlY3Rpb256CQDMCAICDURpZ2dpbmcgdG9vbHMFA25pbAAKaWR4Q29sbERpZwAAAApib251c1R5cGV6CQDMCAICCUZhcm1Qb3dlcgUDbmlsAA5pZHhCb251c1R5cGVGcAAAAQZwcm9sb2cBAWkDAwkBAiE9AggFAWkMb3JpZ2luQ2FsbGVyBQ1yZXN0MkNvbnRyYWN0CQELdmFsdWVPckVsc2UCCQCgCAEJAQprZXlCbG9ja2VkAAcHCQACAQIfQ29udHJhY3RzIGFyZSB1bmRlciBtYWludGVuYW5jZQQEYWRkcgkApQgBCAUBaQxvcmlnaW5DYWxsZXIEBHdlZWsJAGkCBQZoZWlnaHQFC1dFRUtfQkxPQ0tTBAtsYXN0V2Vla0tleQkBFWtleUxhc3RXZWVrVHhJZEJ5VXNlcgEFBGFkZHIEEmxhc3RXZWVrVHhJZEJ5VXNlcgkAoggBBQtsYXN0V2Vla0tleQQEdHhJZAkA2AQBCAUBaQ10cmFuc2FjdGlvbklkBAN3dHgJAKwCAgkArAICCQCkAwEFBHdlZWsCAV8FBHR4SWQECmN1cldlZWtLZXkJARRrZXlDdXJXZWVrVHhJZEJ5VXNlcgEFBGFkZHIDCQEJaXNEZWZpbmVkAQUSbGFzdFdlZWtUeElkQnlVc2VyBApsYXN0V2Vla1R4CQC1CQIJAQV2YWx1ZQEFEmxhc3RXZWVrVHhJZEJ5VXNlcgIBXwMJAAACCQCRAwIFCmxhc3RXZWVrVHgAAAkApAMBBQR3ZWVrCQDMCAIJAQtTdHJpbmdFbnRyeQIFC2xhc3RXZWVrS2V5BQN3dHgJAMwIAgkBC1N0cmluZ0VudHJ5AgUKY3VyV2Vla0tleQUDd3R4BQNuaWwDCQAAAgkAkQMCBQpsYXN0V2Vla1R4AAAJAKQDAQkAZQIFBHdlZWsAAQkAzAgCCQELU3RyaW5nRW50cnkCBQpjdXJXZWVrS2V5BQN3dHgFA25pbAQRY3VyV2Vla1R4SWRCeVVzZXIJARFAZXh0ck5hdGl2ZSgxMDU4KQEFCmN1cldlZWtLZXkECWN1cldlZWtUeAkAtQkCBRFjdXJXZWVrVHhJZEJ5VXNlcgIBXwMJAAACCQCRAwIFCWN1cldlZWtUeAAACQCkAwEFBHdlZWsJAMwIAgkBC1N0cmluZ0VudHJ5AgUKY3VyV2Vla0tleQUDd3R4BQNuaWwJAMwIAgkBC1N0cmluZ0VudHJ5AgULbGFzdFdlZWtLZXkFEWN1cldlZWtUeElkQnlVc2VyCQDMCAIJAQtTdHJpbmdFbnRyeQIFCmN1cldlZWtLZXkFA3d0eAUDbmlsCQDMCAIJAQtTdHJpbmdFbnRyeQIFC2xhc3RXZWVrS2V5BQN3dHgJAMwIAgkBC1N0cmluZ0VudHJ5AgUKY3VyV2Vla0tleQUDd3R4BQNuaWwBFGNyZWF0ZU5mdERlc2NyQ3VzdG9tCAdjb250S2V5CW5mdFNlcmlhbApjb2xsZWN0aW9uBG5hbWUFZGVzY3IGcmFyaXR5BWJvbnVzCWJvbnVzVHlwZQkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIieyJ1cmwiOiAiaHR0cHM6Ly93YXZlc2xhbmRzLmNvbSIsIAIPImNvbnRlbnRLZXkiOiAiBQdjb250S2V5AgMiLCACCiJudW1iZXIiOiAJAKQDAQUJbmZ0U2VyaWFsAgIsIAIPImNvbGxlY3Rpb24iOiAiBQpjb2xsZWN0aW9uAgMiLCACCSJuYW1lIjogIgUEbmFtZQIDIiwgAhAiZGVzY3JpcHRpb24iOiAiBQVkZXNjcgIDIiwgAgkicmFyZSI6ICIFBnJhcml0eQIDIiwgAgkiYm9udXMiOiAJAKQDAQUFYm9udXMCAiwgAg4iYm9udXNUeXBlIjogIgUJYm9udXNUeXBlAgIifQEOaXNzdWVOZnRDdXN0b20IB25hbWVJZHgKY29udEtleUlkeAdjb2xsSWR4CXJhcml0eUlkeAlib251c1BlcmMIZGVzY3JJZHgMYm9udXNUeXBlSWR4BGFkZHIECW5mdFNlcmlhbAkBC3ZhbHVlT3JFbHNlAgkAnwgBBRFrZXlOZnRUb3RhbElzc3VlZAAABAZyYXJpdHkJAJEDAgULcmFyaXR5TmFtZXMFCXJhcml0eUlkeAQEbmFtZQkArAICCQCsAgIJAKwCAgkAkQMCBQVuYW1legUHbmFtZUlkeAIBLQkArwICBQZyYXJpdHkAAQkApAMBBQlib251c1BlcmMEBWlzc3VlCQDCCAUFBG5hbWUJARRjcmVhdGVOZnREZXNjckN1c3RvbQgJAJEDAgULY29udGVudEtleXoFCmNvbnRLZXlJZHgFCW5mdFNlcmlhbAkAkQMCBQtjb2xsZWN0aW9uegUHY29sbElkeAkAkQMCBQVuYW1lcwUHbmFtZUlkeAkAkQMCBQxkZXNjcmlwdGlvbnMFCGRlc2NySWR4CQCRAwIFC3Jhcml0eU5hbWVzBQlyYXJpdHlJZHgFCWJvbnVzUGVyYwkAkQMCBQpib251c1R5cGV6BQxib251c1R5cGVJZHgAAQAABwQKbmZ0QXNzZXRJZAkAuAgBBQVpc3N1ZQkAlAoCCQDMCAIFBWlzc3VlCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRFrZXlOZnRUb3RhbElzc3VlZAkAZAIFCW5mdFNlcmlhbAABCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEVa2V5TmZ0TnVtYmVyQnlBc3NldElkAQkA2AQBBQpuZnRBc3NldElkBQluZnRTZXJpYWwJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUEYWRkcgABBQpuZnRBc3NldElkBQNuaWwFCm5mdEFzc2V0SWQBGXN0YWtlVW5zdGFrZUFjcmVzSW50ZXJuYWwDA2FtdAdhZGRyZXNzCmJvbnVzRGVsdGEDAwkAAAIFA2FtdAAACQAAAgUKYm9udXNEZWx0YQAABwkAAgECDU5vdGhpbmcgdG8gZG8ECXdsZ1Jlc3VsdAkA/AcEBQt3bGdDb250cmFjdAISb25TdGFrZVVuc3Rha2VMYW5kCQDMCAIFB2FkZHJlc3MFA25pbAUDbmlsAwkAAAIFCXdsZ1Jlc3VsdAUJd2xnUmVzdWx0BANub3cIBQlsYXN0QmxvY2sJdGltZXN0YW1wBAd0aW1lS2V5CQEYa2V5QWNyZXNTdGFrZWRUaW1lQnlVc2VyAQUHYWRkcmVzcwQJYW1vdW50S2V5CQEXa2V5QWNyZXNTdGFrZWRBbXRCeVVzZXIBBQdhZGRyZXNzBA5vbGRBY3Jlc0Ftb3VudAkBC3ZhbHVlT3JFbHNlAgkAnwgBBQlhbW91bnRLZXkAAAMDCQBmAgAABQNhbXQJAGYCAAAJAGQCBQ5vbGRBY3Jlc0Ftb3VudAUDYW10BwkAAgEJAKwCAgkArAICCQCsAgICDllvdSBoYXZlIG9ubHkgCQEKZml4ZWRQb2ludAIFDm9sZEFjcmVzQW1vdW50AAgCICBBQ1JFUyBzdGFrZWQsIHRyaWVkIHRvIHVuc3Rha2UgCQEKZml4ZWRQb2ludAIJAQEtAQUDYW10AAgEDm5ld0FjcmVzQW1vdW50CQBkAgUOb2xkQWNyZXNBbW91bnQFA2FtdAQIb2xkVG90YWwJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUSYWNyZXNTdGFrZFRvdGFsS2V5AAAECXVzZXJGcEtleQkBFWtleUZhcm1pbmdQb3dlckJ5VXNlcgEFB2FkZHJlc3MEBW9sZEZwCQELdmFsdWVPckVsc2UCCQCfCAEFCXVzZXJGcEtleQAABAhib251c0tleQkBEGtleVVzZXJGdWxsQm9udXMBBQdhZGRyZXNzBAhvbGRCb251cwkBC3ZhbHVlT3JFbHNlAgkAmggCBQ5hY3JlczJDb250cmFjdAUIYm9udXNLZXkAAAMDCQBmAgAABQpib251c0RlbHRhCQBmAgAACQBkAgUIb2xkQm9udXMFCmJvbnVzRGVsdGEHCQACAQkArAICCQCsAgIJAKwCAgkArAICAg5Zb3UgaGF2ZSBvbmx5IAkBCmZpeGVkUG9pbnQCBQhvbGRCb251cwAEAh4lIGJvbnVzLCBhbmQgdHJpZWQgdG8gdW5zdGFrZSAJAQpmaXhlZFBvaW50AgkBAS0BBQpib251c0RlbHRhAAQCASUECyR0MDY4Mzg2OTM3CQEeZ2V0RmFybWluZ1Bvd2VyQnlBY3Jlc0FuZEJvbnVzAgUObmV3QWNyZXNBbW91bnQJAGQCBQhvbGRCb251cwUKYm9udXNEZWx0YQQMbmV3Qm9udXNlZEZwCAULJHQwNjgzODY5MzcCXzEEB2lnbm9yZWQIBQskdDA2ODM4NjkzNwJfMgQKb2xkVG90YWxGcAkBC3ZhbHVlT3JFbHNlAgkAnwgBBRR0b3RhbEZhcm1pbmdQb3dlcktleQAABAxhY3Jlc0FjdGlvbnMDCQAAAgUDYW10AAAFA25pbAkAzAgCCQEMSW50ZWdlckVudHJ5AgUJYW1vdW50S2V5BQ5uZXdBY3Jlc0Ftb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgUSYWNyZXNTdGFrZFRvdGFsS2V5CQBkAgUIb2xkVG90YWwFA2FtdAUDbmlsCQCUCgIJAM0IAgkAzQgCCQDNCAIJAM0IAgUMYWNyZXNBY3Rpb25zCQEMSW50ZWdlckVudHJ5AgUHdGltZUtleQgFCWxhc3RCbG9jawl0aW1lc3RhbXAJAQxJbnRlZ2VyRW50cnkCBQl1c2VyRnBLZXkFDG5ld0JvbnVzZWRGcAkBDEludGVnZXJFbnRyeQIFFHRvdGFsRmFybWluZ1Bvd2VyS2V5CQBlAgkAZAIFCm9sZFRvdGFsRnAFDG5ld0JvbnVzZWRGcAUFb2xkRnAJAQxJbnRlZ2VyRW50cnkCBQhib251c0tleQkAZAIFCG9sZEJvbnVzBQpib251c0RlbHRhBQl3bGdSZXN1bHQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BC2dldFdsZ1ByaWNlARV1c2R0QmFsYW5jZUNvcnJlY3Rpb24EDGlzc3VlZEFtb3VudAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFC3dsZ0NvbnRyYWN0BQ93bGdJc3N1ZWRBbXRLZXkCGFdMR09MRCBpcyBub3QgaXNzdWVkIHlldAQGd2xnVXNkCQDwBwIFC3dsZ0NvbnRyYWN0BQt1c2R0QXNzZXRJZAQJYWNyZXMyVXNkCQBlAgkA8AcCBQ5hY3JlczJDb250cmFjdAULdXNkdEFzc2V0SWQFFXVzZHRCYWxhbmNlQ29ycmVjdGlvbgQPaW52ZXN0RnVuZFRvdGFsCQBkAgkA8AcCBRJpbnZlc3RGdW5kQ29udHJhY3QFC3VzZHRBc3NldElkCQELdmFsdWVPckVsc2UCCQCaCAIFEmludmVzdEZ1bmRDb250cmFjdAUOemJJc3N1ZWRBbXRLZXkAAAQNdG90YWxGdW5kc1VzZAkAZAIJAGQCBQlhY3JlczJVc2QFBndsZ1VzZAUPaW52ZXN0RnVuZFRvdGFsCQBrAwUNdG90YWxGdW5kc1VzZAUFTVVMVDgFDGlzc3VlZEFtb3VudAERZ2V0U3dhcExpbWl0QWNyZXMABAZ3bGdVc2QJAPAHAgULd2xnQ29udHJhY3QFC3VzZHRBc3NldElkBAlhY3JlczJVc2QJAPAHAgUEdGhpcwULdXNkdEFzc2V0SWQED2ludmVzdEZ1bmRUb3RhbAkAZAIJAPAHAgUSaW52ZXN0RnVuZENvbnRyYWN0BQt1c2R0QXNzZXRJZAkBC3ZhbHVlT3JFbHNlAgkAmggCBRJpbnZlc3RGdW5kQ29udHJhY3QFDnpiSXNzdWVkQW10S2V5AAAEDGRlZmF1bHRMaW1pdAkAaQIJAGQCCQBkAgUJYWNyZXMyVXNkBQZ3bGdVc2QFD2ludmVzdEZ1bmRUb3RhbAUTT05FX1BFUkNFTlRfRElWSVNPUgQNbGFzdExpbWl0TGVmdAkBC3ZhbHVlT3JFbHNlAgkAnwgBBRBrZXlMYXN0TGltaXRMZWZ0BQxkZWZhdWx0TGltaXQECGxhc3RUaW1lCQELdmFsdWVPckVsc2UCCQCfCAEFFGtleUxhc3RBY3Jlc1NlbGxUaW1lAAAEA25vdwgFCWxhc3RCbG9jawl0aW1lc3RhbXAEDGN1cnJlbnRMaW1pdAkAZAIFDWxhc3RMaW1pdExlZnQJAGsDBQxkZWZhdWx0TGltaXQJAGUCBQNub3cFCGxhc3RUaW1lBQpEQVlfTUlMTElTBA1saW1pdExlZnRVc2R0CQCXAwEJAMwIAgUMY3VycmVudExpbWl0CQDMCAIFDGRlZmF1bHRMaW1pdAUDbmlsCQCUCgIJAQxJbnRlZ2VyRW50cnkCBRRrZXlMYXN0QWNyZXNTZWxsVGltZQUDbm93BQ1saW1pdExlZnRVc2R0AAlhcmtPcmFjbGUJARFAZXh0ck5hdGl2ZSgxMDYyKQECIzNQSmdaNkFLMVdWQ3BkQ21FWnBlc0htYUt2clFEZFhHNW9nAAlpbmN1YmF0b3IJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUJYXJrT3JhY2xlAhdzdGF0aWNfaW5jdWJhdG9yQWRkcmVzcwIAAAdicmVlZGVyCQELdmFsdWVPckVsc2UCCQCdCAIFCWFya09yYWNsZQIVc3RhdGljX2JyZWVkZXJBZGRyZXNzAgAAD3R1cnRsZUluY3ViYXRvcgkBC3ZhbHVlT3JFbHNlAgkAnQgCBQlhcmtPcmFjbGUCHXN0YXRpY190dXJ0bGVJbmN1YmF0b3JBZGRyZXNzAgAADXR1cnRsZUJyZWVkZXIJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUJYXJrT3JhY2xlAhtzdGF0aWNfdHVydGxlQnJlZWRlckFkZHJlc3MCAAAPY2FuaW5lSW5jdWJhdG9yCQELdmFsdWVPckVsc2UCCQCdCAIFCWFya09yYWNsZQIdc3RhdGljX2NhbmluZUluY3ViYXRvckFkZHJlc3MCAAANY2FuaW5lQnJlZWRlcgkBC3ZhbHVlT3JFbHNlAgkAnQgCBQlhcmtPcmFjbGUCG3N0YXRpY19jYW5pbmVCcmVlZGVyQWRkcmVzcwIAAA9mZWxpbmVJbmN1YmF0b3IJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUJYXJrT3JhY2xlAh1zdGF0aWNfZmVsaW5lSW5jdWJhdG9yQWRkcmVzcwIAAA1mZWxpbmVCcmVlZGVyCQELdmFsdWVPckVsc2UCCQCdCAIFCWFya09yYWNsZQIbc3RhdGljX2ZlbGluZUJyZWVkZXJBZGRyZXNzAgAADW11dGFudEJyZWVkZXIJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUJYXJrT3JhY2xlAh1zdGF0aWNfbXV0YW50SW5jdWJhdG9yQWRkcmVzcwIAAQ9pc0Fya2ltYWxJc3N1ZWQBA25mbwQGaXNzdWVyCQClCAEIBQNuZm8GaXNzdWVyAwMDAwMDAwMDAwkAAAIFBWNoYWluAQFUCQAAAgUGaXNzdWVyBRVvbGRTdGFraW5nQ29udHJhY3RTdHIHBgkAAAIFBmlzc3VlcgUJaW5jdWJhdG9yBgkAAAIFBmlzc3VlcgUHYnJlZWRlcgYJAAACBQZpc3N1ZXIFD3R1cnRsZUluY3ViYXRvcgYJAAACBQZpc3N1ZXIFDXR1cnRsZUJyZWVkZXIGCQAAAgUGaXNzdWVyBQ9jYW5pbmVJbmN1YmF0b3IGCQAAAgUGaXNzdWVyBQ1jYW5pbmVCcmVlZGVyBgkAAAIFBmlzc3VlcgUPZmVsaW5lSW5jdWJhdG9yBgkAAAIFBmlzc3VlcgUNZmVsaW5lQnJlZWRlcggFA25mbwRuYW1lAwkAAAIFBmlzc3VlcgUNbXV0YW50QnJlZWRlcggFA25mbwtkZXNjcmlwdGlvbgIAARJib251c0J5RGVzY3JpcHRpb24BBWRlc2NyAwkBASEBCQEIY29udGFpbnMCBQVkZXNjcgIYImJvbnVzVHlwZSI6ICJGYXJtUG93ZXIiCQACAQkArAICAhZORlQgaXMgbm90IHN1cHBvcnRlZDogBQVkZXNjcgQIYm9udXNTdHIJAJEDAgkAvAkCCQCRAwIJALwJAgUFZGVzY3ICCCJib251cyI6AAECASwAAAkBDXBhcnNlSW50VmFsdWUBCQCwAgIFCGJvbnVzU3RyCQBkAgkBC3ZhbHVlT3JFbHNlAgkAtwkCBQhib251c1N0cgIBIAD///////////8BAAEBFnJhcml0eUlkeEJ5RGVzY3JpcHJpb24BBWRlc2NyAwkBASEBCQEIY29udGFpbnMCBQVkZXNjcgIGInJhcmUiCQACAQkArAICAhZORlQgaXMgbm90IHN1cHBvcnRlZDogBQVkZXNjcgQJcmFyaXR5U3RyCQCRAwIJALwJAgkAkQMCCQC8CQIJAJEDAgkAvAkCBQVkZXNjcgIGInJhcmUiAAECASwAAAIBIgABCQEFdmFsdWUBCQDPCAIFC3Jhcml0eU5hbWVzBQlyYXJpdHlTdHIBEHN0YWtlTmZ0SW50ZXJuYWwGBGFkZHIKYXNzZXRJZFN0cgZib251czYKdXNlck51bUtleQt0b3RhbE51bUtleQVsaW1pdAQJbmZ0TnVtYmVyCQELdmFsdWVPckVsc2UCCQCfCAEFCnVzZXJOdW1LZXkAAAMJAGcCBQluZnROdW1iZXIFBWxpbWl0CQACAQkArAICCQCsAgICEllvdSBjYW4gc3Rha2UgbWF4IAkApAMBBQVsaW1pdAINIG9mIHN1Y2ggTkZUcwQNJHQwMTE3NTcxMTgzMwkBGXN0YWtlVW5zdGFrZUFjcmVzSW50ZXJuYWwDAAAFBGFkZHIFBmJvbnVzNgQHYWN0aW9ucwgFDSR0MDExNzU3MTE4MzMCXzEEEHdsZ0NsYWltZWRBbW91bnQIBQ0kdDAxMTc1NzExODMzAl8yCQCUCgIJAM0IAgkAzQgCCQDNCAIFB2FjdGlvbnMJAQxJbnRlZ2VyRW50cnkCBQp1c2VyTnVtS2V5CQBkAgUJbmZ0TnVtYmVyAAEJAQxJbnRlZ2VyRW50cnkCBQt0b3RhbE51bUtleQkAZAIJAQt2YWx1ZU9yRWxzZQIJAJ8IAQULdG90YWxOdW1LZXkAAAABCQEMSW50ZWdlckVudHJ5AgkBHmtleVN0YWtlZFRpbWVCeUFzc2V0SWRBbmRPd25lcgIFCmFzc2V0SWRTdHIFBGFkZHIIBQlsYXN0QmxvY2sJdGltZXN0YW1wBRB3bGdDbGFpbWVkQW1vdW50EgFpAQpzYXZlTGFzdFR4AAMJAQEhAQkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgULd2xnQ29udHJhY3QFA25pbAgFAWkGY2FsbGVyCQACAQINQWNjZXNzIGRlbmllZAkAlAoCCQEGcHJvbG9nAQUBaQAqAWkBDWNvbnN0cnVjdG9yVjECCXJlc3QyQWRkcg5vbGRBY3JDb250cmFjdAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECEVBlcm1pc3Npb24gZGVuaWVkBA5vbGRBY3JDb250QWRkcgkBEUBleHRyTmF0aXZlKDEwNjIpAQUOb2xkQWNyQ29udHJhY3QJAMwIAgkBDEludGVnZXJFbnRyeQIFFGFjcmVzSXNzdWVkQW1vdW50S2V5CQERQGV4dHJOYXRpdmUoMTA1MCkCBQ5vbGRBY3JDb250QWRkcgUUYWNyZXNJc3N1ZWRBbW91bnRLZXkJAMwIAgkBC0JpbmFyeUVudHJ5AgUPYWNyZXNBc3NldElkS2V5CQERQGV4dHJOYXRpdmUoMTA1MikCBQ5vbGRBY3JDb250QWRkcgUPYWNyZXNBc3NldElkS2V5CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ9rZXlSZXN0MkFkZHJlc3MABQlyZXN0MkFkZHIJAMwIAgkBC1N0cmluZ0VudHJ5AgUTb2xkQWNyZXNDb250cmFjdEtleQUOb2xkQWNyQ29udHJhY3QFA25pbAFpAQpzZXRCbG9ja2VkAQlpc0Jsb2NrZWQDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhFwZXJtaXNzaW9uIGRlbmllZAkAzAgCCQEMQm9vbGVhbkVudHJ5AgkBCmtleUJsb2NrZWQABQlpc0Jsb2NrZWQFA25pbAFpAQx1bnN0YWtlQWNyZXMBBmFtb3VudAQNcHJvbG9nQWN0aW9ucwkBBnByb2xvZwEFAWkDCQBnAgAABQZhbW91bnQJAAIBAhlBbW91bnQgc2hvdWxkIGJlIHBvc2l0aXZlBAdhZGRyZXNzCQClCAEIBQFpBmNhbGxlcgMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAAkAAgECFE5vIHBheW1lbnRzIHJlcXVpcmVkBA5hcmJSZWxlYXNlVGltZQkAZAIJAQt2YWx1ZU9yRWxzZQIJAJoIAgULd2xnQ29udHJhY3QJARlrZXlMYXN0V2xnVHJhZGVUaW1lQnlVc2VyAQUHYWRkcmVzcwAABQ5hcmJpdHJhZ2VEZWxheQMJAGYCBQ5hcmJSZWxlYXNlVGltZQgFCWxhc3RCbG9jawl0aW1lc3RhbXAJAAIBCQCsAgICLVlvdSB0cmFkZWQgc29tZSBXTEdPTEQsIGNhbm5vdCB1bnN0YWtlIHVudGlsIAkApAMBBQ5hcmJSZWxlYXNlVGltZQQNJHQwMTM0MDcxMzQ4NwkBGXN0YWtlVW5zdGFrZUFjcmVzSW50ZXJuYWwDCQEBLQEFBmFtb3VudAUHYWRkcmVzcwAABAdhY3Rpb25zCAUNJHQwMTM0MDcxMzQ4NwJfMQQQd2xnQ2xhaW1lZEFtb3VudAgFDSR0MDEzNDA3MTM0ODcCXzIJAJQKAgkAzggCCQDNCAIFB2FjdGlvbnMJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUGYW1vdW50BQxhY3Jlc0Fzc2V0SWQFDXByb2xvZ0FjdGlvbnMFEHdsZ0NsYWltZWRBbW91bnQBaQEKc3Rha2VBY3JlcwAEDXByb2xvZ0FjdGlvbnMJAQZwcm9sb2cBBQFpBAdhZGRyZXNzCQClCAEIBQFpBmNhbGxlcgMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAQkAAgECImV4YWN0bHkgMSBwYXltZW50IG11c3QgYmUgYXR0YWNoZWQEA3BtdAkAkQMCCAUBaQhwYXltZW50cwAABANhbXQIBQNwbXQGYW1vdW50AwMJAQEhAQkBCWlzRGVmaW5lZAEIBQNwbXQHYXNzZXRJZAYJAQIhPQIJAQV2YWx1ZQEIBQNwbXQHYXNzZXRJZAUMYWNyZXNBc3NldElkCQACAQIUQUNSRVMgcGF5bWVudHMgb25seSEEDSR0MDEzOTM4MTQwMTQJARlzdGFrZVVuc3Rha2VBY3Jlc0ludGVybmFsAwUDYW10BQdhZGRyZXNzAAAEB2FjdGlvbnMIBQ0kdDAxMzkzODE0MDE0Al8xBBB3bGdDbGFpbWVkQW1vdW50CAUNJHQwMTM5MzgxNDAxNAJfMgkAlAoCCQDOCAIFB2FjdGlvbnMFDXByb2xvZ0FjdGlvbnMFEHdsZ0NsYWltZWRBbW91bnQBaQEIYnV5QWNyZXMABA1wcm9sb2dBY3Rpb25zCQEGcHJvbG9nAQUBaQMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAQkAAgECImV4YWN0bHkgMSBwYXltZW50IG11c3QgYmUgYXR0YWNoZWQEA3BtdAkAkQMCCAUBaQhwYXltZW50cwAABAp1c2R0QW1vdW50CAUDcG10BmFtb3VudAMDCQEBIQEJAQlpc0RlZmluZWQBCAUDcG10B2Fzc2V0SWQGCQECIT0CCQEFdmFsdWUBCAUDcG10B2Fzc2V0SWQFC3VzZHRBc3NldElkCQACAQITVVNEVCBwYXltZW50cyBvbmx5IQMJAGYCBQVNVUxUNgUKdXNkdEFtb3VudAkAAgEJAKwCAgkArAICAhZNaW4gcGF5bWVudCBzaG91bGQgYmUgCQEKZml4ZWRQb2ludAIFBU1VTFQ2AAYCBSBVU0RUBAthY3Jlc0Ftb3VudAkAaAIFCnVzZHRBbW91bnQFFVVTRFQyQUNSRVNfTVVMVElQTElFUgQJd2xnQW1vdW50CQBrAwUKdXNkdEFtb3VudAUFTVVMVDgJAQtnZXRXbGdQcmljZQEFCnVzZHRBbW91bnQED29sZEFjcmVzQWRkcmVzcwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTgpAQUTb2xkQWNyZXNDb250cmFjdEtleQQDcmVxCQD8BwQFD29sZEFjcmVzQWRkcmVzcwIUcmVxdWVzdEFjcmVzQ2FsbGJhY2sJAMwIAgULYWNyZXNBbW91bnQFA25pbAUDbmlsAwkAAAIFA3JlcQUDcmVxBAl3bGdSZW1haW4JAQVhc0ludAEJAPwHBAULd2xnQ29udHJhY3QCCmJ1cm5XbGdvbGQJAMwIAgUJd2xnQW1vdW50BQNuaWwFA25pbAkAlAoCCQDOCAIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQthY3Jlc0Ftb3VudAUMYWNyZXNBc3NldElkBQNuaWwFDXByb2xvZ0FjdGlvbnMFCXdsZ1JlbWFpbgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARBidXlBY3Jlc1JFQURPTkxZAQp1c2R0QW1vdW50BAthY3Jlc0Ftb3VudAkAaAIFCnVzZHRBbW91bnQFFVVTRFQyQUNSRVNfTVVMVElQTElFUgQJd2xnVG9CdXJuCQBrAwUKdXNkdEFtb3VudAUFTVVMVDgJAQtnZXRXbGdQcmljZQEFCnVzZHRBbW91bnQJAJQKAgUDbmlsCQDMCAIFC2FjcmVzQW1vdW50CQDMCAIFBU1VTFQ2CQDMCAIFC2FjcmVzQW1vdW50CQDMCAIFCXdsZ1RvQnVybgUDbmlsAWkBCXNlbGxBY3JlcwAEDXByb2xvZ0FjdGlvbnMJAQZwcm9sb2cBBQFpAwkBAiE9AgkAkAMBCAUBaQhwYXltZW50cwABCQACAQIiZXhhY3RseSAxIHBheW1lbnQgbXVzdCBiZSBhdHRhY2hlZAQDcG10CQCRAwIIBQFpCHBheW1lbnRzAAAEC2FjcmVzQW1vdW50CAUDcG10BmFtb3VudAMDCQEBIQEJAQlpc0RlZmluZWQBCAUDcG10B2Fzc2V0SWQGCQECIT0CCQEFdmFsdWUBCAUDcG10B2Fzc2V0SWQFDGFjcmVzQXNzZXRJZAkAAgECFEFDUkVTIHBheW1lbnRzIG9ubHkhAwkAZgIFBU1VTFQ3BQthY3Jlc0Ftb3VudAkAAgEJAKwCAgkArAICAhZNaW4gcGF5bWVudCBzaG91bGQgYmUgCQEKZml4ZWRQb2ludAIFBU1VTFQ3AAgCBiBBQ1JFUwQEYWRkcgkApQgBCAUBaQZjYWxsZXIEDSR0MDE1ODcxMTU5MTkJARFnZXRTd2FwTGltaXRBY3JlcwAEC2xpbWl0QWN0aW9uCAUNJHQwMTU4NzExNTkxOQJfMQQHbWF4VXNkdAgFDSR0MDE1ODcxMTU5MTkCXzIECG1heEFjcmVzCQBoAgUHbWF4VXNkdAUVVVNEVDJBQ1JFU19NVUxUSVBMSUVSAwkAZgIFC2FjcmVzQW1vdW50BQhtYXhBY3JlcwkAAgEJAKwCAgkArAICAhFZb3UgY2FuIHNlbGwgbWF4IAkBCmZpeGVkUG9pbnQCBQhtYXhBY3JlcwAIAgYgQUNSRVMECnVzZHRBbW91bnQJAGkCCQBpAgULYWNyZXNBbW91bnQFFVVTRFQyQUNSRVNfTVVMVElQTElFUgACCQCUCgIJAM4IAgkAzAgCBQtsaW1pdEFjdGlvbgkAzAgCCQEMSW50ZWdlckVudHJ5AgUQa2V5TGFzdExpbWl0TGVmdAkAZQIFB21heFVzZHQFCnVzZHRBbW91bnQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQp1c2R0QW1vdW50BQt1c2R0QXNzZXRJZAUDbmlsBQ1wcm9sb2dBY3Rpb25zBQp1c2R0QW1vdW50AWkBEXNlbGxBY3Jlc1JFQURPTkxZAgdhZGRyZXNzC2FjcmVzQW1vdW50BA0kdDAxNjQxNTE2NDYzCQERZ2V0U3dhcExpbWl0QWNyZXMABAtsaW1pdEFjdGlvbggFDSR0MDE2NDE1MTY0NjMCXzEEB21heFVzZHQIBQ0kdDAxNjQxNTE2NDYzAl8yBAp1c2R0QW1vdW50CQBpAgkAaQIFC2FjcmVzQW1vdW50BRVVU0RUMkFDUkVTX01VTFRJUExJRVIAAgkAlAoCBQNuaWwJAMwIAgUKdXNkdEFtb3VudAkAzAgCBQVNVUxUNwkAzAgCCQBoAgUHbWF4VXNkdAUVVVNEVDJBQ1JFU19NVUxUSVBMSUVSCQDMCAIAAAUDbmlsAWkBEGNvbnZlcnRPbGRTdGFrZXMAAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIUVGVtcG9yYXJpbHkgZGlzYWJsZWQEB2FkZHJlc3MJAKUIAQgFAWkGY2FsbGVyAwkBAiE9AgkAkAMBCAUBaQhwYXltZW50cwAACQACAQIUTm8gcGF5bWVudHMgcmVxdWlyZWQED29sZEFjcmVzQWRkcmVzcwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTgpAQUTb2xkQWNyZXNDb250cmFjdEtleQQGYW1vdW50CQELdmFsdWVPckVsc2UCCQCaCAIFD29sZEFjcmVzQWRkcmVzcwkBF2tleUFjcmVzU3Rha2VkQW10QnlVc2VyAQUHYWRkcmVzcwAABAlnb3RBY3JlczADCQBmAgUGYW1vdW50AAAJAQxhc1R1cGxlMkludHMBCQD8BwQFD29sZEFjcmVzQWRkcmVzcwIUdW5zdGFrZUFjcmVzQ2FsbGJhY2sJAMwIAgUGYW1vdW50CQDMCAIFB2FkZHJlc3MFA25pbAUDbmlsCQCUCgIAAAAABBFvbGRTdGFraW5nQWRkcmVzcwkBEUBleHRyTmF0aXZlKDEwNjIpAQUVb2xkU3Rha2luZ0NvbnRyYWN0U3RyBAhsYW5kc1N0cgkAnQgCBRFvbGRTdGFraW5nQWRkcmVzcwkBFWtleVN0YWtlZExhbmRzQnlPd25lcgEFB2FkZHJlc3MEC2xhbmRzUmVzdWx0AwkBCWlzRGVmaW5lZAEFCGxhbmRzU3RyBAVsYW5kcwkAvQkCCQEFdmFsdWUBBQhsYW5kc1N0cgIBXwoBB29uZUxhbmQCA2FjYwtsYW5kQXNzZXRJZAMJAAACBQtsYW5kQXNzZXRJZAIACQACAQIXbGFuZEFzc2V0SWQgaXMgcmVxdWlyZWQEAXIJAQxhc1R1cGxlNUludHMBCQD8BwQFEW9sZFN0YWtpbmdBZGRyZXNzAhN1bnN0YWtlTGFuZENhbGxiYWNrCQDMCAIFC2xhbmRBc3NldElkCQDMCAIFB2FkZHJlc3MFA25pbAUDbmlsCQCWCgQJAGQCCAUDYWNjAl8xCAUBcgJfMQkAZAIIBQNhY2MCXzIIBQFyAl8yCQBkAggFA2FjYwJfMwgFAXICXzMJAGQCCAUDYWNjAl80CAUBcgJfNAQCcnIKAAIkbAUFbGFuZHMKAAIkcwkAkAMBBQIkbAoABSRhY2MwCQCWCgQAAAAAAAAAAAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEHb25lTGFuZAIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIVTGlzdCBzaXplIGV4Y2VlZHMgMTAwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIAIwAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzADQANQA2ADcAOAA5ADoAOwA8AD0APgA/AEAAQQBCAEMARABFAEYARwBIAEkASgBLAEwATQBOAE8AUABRAFIAUwBUAFUAVgBXAFgAWQBaAFsAXABdAF4AXwBgAGEAYgBjAGQECGZpbmFsaXplCQD8BwQFEW9sZFN0YWtpbmdBZGRyZXNzAhx1bnN0YWtlTGFuZHNGaW5hbGl6ZUNhbGxiYWNrCQDMCAIFB2FkZHJlc3MFA25pbAUDbmlsAwkAAAIFCGZpbmFsaXplBQhmaW5hbGl6ZQQDcmVxCQD8BwQFD29sZEFjcmVzQWRkcmVzcwIUcmVxdWVzdEFjcmVzQ2FsbGJhY2sJAMwIAgkAZAIJAGQCCQBkAggFAnJyAl8xCAUCcnICXzIIBQJycgJfMwgFAnJyAl80BQNuaWwFA25pbAMJAAACBQNyZXEFA3JlcQQNJHQwMTgzMzIxODQ3MAkBDmlzc3VlTmZ0Q3VzdG9tCAUNaWR4TmFtZVNob3ZlbAUHaWR4S2V5UAUKaWR4Q29sbERpZwUKaWR4UmFyaXR5UAADBQ5pZHhEZXNjclNob3ZlbAUOaWR4Qm9udXNUeXBlRnAIBQFpBmNhbGxlcgQKbmZ0QWN0aW9ucwgFDSR0MDE4MzMyMTg0NzACXzEECm5mdEFzc2V0SWQIBQ0kdDAxODMzMjE4NDcwAl8yCQCXCgUIBQJycgJfMQgFAnJyAl8yCAUCcnICXzMIBQJycgJfNAUKbmZ0QWN0aW9ucwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAlwoFAAAAAAAAAAAFA25pbAQLZHVja0Fzc2V0SWQJAQt2YWx1ZU9yRWxzZQIJAJ0IAgURb2xkU3Rha2luZ0FkZHJlc3MJARRrZXlTdGFrZWREdWNrQnlPd25lcgEFB2FkZHJlc3MCAAQKZHVja1Jlc3VsdAMJAQIhPQIFC2R1Y2tBc3NldElkAgAJAQxhc1R1cGxlM0ludHMBCQD8BwQFEW9sZFN0YWtpbmdBZGRyZXNzAhN1bnN0YWtlRHVja0NhbGxiYWNrCQDMCAIFC2R1Y2tBc3NldElkCQDMCAIFB2FkZHJlc3MFA25pbAUDbmlsCQCVCgMAAAAAAAAEAXgJARlzdGFrZVVuc3Rha2VBY3Jlc0ludGVybmFsAwkAZAIJAGQCCQBkAgkAZAIJAGQCCQBkAgkAZAIIBQlnb3RBY3JlczACXzEIBQtsYW5kc1Jlc3VsdAJfMQgFC2xhbmRzUmVzdWx0Al8yCAULbGFuZHNSZXN1bHQCXzMIBQtsYW5kc1Jlc3VsdAJfNAgFCmR1Y2tSZXN1bHQCXzEIBQpkdWNrUmVzdWx0Al8yCAUKZHVja1Jlc3VsdAJfMwUHYWRkcmVzcwAACQCUCgIJAM4IAggFC2xhbmRzUmVzdWx0Al81CAUBeAJfMQgFAXgCXzIBaQEUdW5zdGFrZUxhbmRzUkVBRE9OTFkBB2FkZHJlc3MEEW9sZFN0YWtpbmdBZGRyZXNzCQERQGV4dHJOYXRpdmUoMTA2MikBBRVvbGRTdGFraW5nQ29udHJhY3RTdHIECGxhbmRzU3RyCQCdCAIFEW9sZFN0YWtpbmdBZGRyZXNzCQEVa2V5U3Rha2VkTGFuZHNCeU93bmVyAQUHYWRkcmVzcwQLbGFuZHNSZXN1bHQDCQEJaXNEZWZpbmVkAQUIbGFuZHNTdHIEBWxhbmRzCQC9CQIJAQV2YWx1ZQEFCGxhbmRzU3RyAgFfCgEHb25lTGFuZAIDYWNjC2xhbmRBc3NldElkAwkAAAIFC2xhbmRBc3NldElkAgAJAAIBAhdsYW5kQXNzZXRJZCBpcyByZXF1aXJlZAQBcgkBDGFzVHVwbGU0SW50cwEJAPwHBAURb2xkU3Rha2luZ0FkZHJlc3MCE3Vuc3Rha2VMYW5kUkVBRE9OTFkJAMwIAgULbGFuZEFzc2V0SWQJAMwIAgUHYWRkcmVzcwUDbmlsBQNuaWwJAJYKBAkAZAIIBQNhY2MCXzEIBQFyAl8xCQBkAggFA2FjYwJfMggFAXICXzIJAGQCCAUDYWNjAl8zCAUBcgJfMwkAZAIIBQNhY2MCXzQIBQFyAl80CgACJGwFBWxhbmRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAkAlgoEAAAAAAAAAAAKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBB29uZUxhbmQCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFUxpc3Qgc2l6ZSBleGNlZWRzIDEwMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AD4APwBAAEEAQgBDAEQARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQBeAF8AYABhAGIAYwBkCQCWCgQAAAAAAAAAAAkAlAoCBQNuaWwFC2xhbmRzUmVzdWx0AWkBEnN0YWtlQWNyZXNDYWxsYmFjawEEYWRkcgMJAQIhPQIIBQFpBmNhbGxlcgkBEUBleHRyTmF0aXZlKDEwNjIpAQUVb2xkU3Rha2luZ0NvbnRyYWN0U3RyCQACAQIRUGVybWlzc2lvbiBkZW5pZWQJARlzdGFrZVVuc3Rha2VBY3Jlc0ludGVybmFsAwgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQFBGFkZHIAAAFpARpzaW11bGF0ZVN0YWtlQWNyZXNSRUFET05MWQIHYWRkcmVzcwthZGRlZEFtb3VudAQJYW1vdW50S2V5CQEXa2V5QWNyZXNTdGFrZWRBbXRCeVVzZXIBBQdhZGRyZXNzBA5uZXdBY3Jlc0Ftb3VudAkAZAIJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUJYW1vdW50S2V5AAAFC2FkZGVkQW1vdW50BAhvbGRUb3RhbAkBC3ZhbHVlT3JFbHNlAgkAnwgBBRJhY3Jlc1N0YWtkVG90YWxLZXkAAAQJdXNlckZwS2V5CQEVa2V5RmFybWluZ1Bvd2VyQnlVc2VyAQUHYWRkcmVzcwQFb2xkRnAJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUJdXNlckZwS2V5AAAECXVzZXJCb251cwkBC3ZhbHVlT3JFbHNlAgkAmggCBQ5hY3JlczJDb250cmFjdAkBEGtleVVzZXJGdWxsQm9udXMBBQdhZGRyZXNzAAAEDSR0MDIwNjM1MjA3MjIJAR5nZXRGYXJtaW5nUG93ZXJCeUFjcmVzQW5kQm9udXMCBQ5uZXdBY3Jlc0Ftb3VudAUJdXNlckJvbnVzBAxuZXdCb251c2VkRnAIBQ0kdDAyMDYzNTIwNzIyAl8xBAdpZ25vcmVkCAUNJHQwMjA2MzUyMDcyMgJfMgQKb2xkVG90YWxGcAkBC3ZhbHVlT3JFbHNlAgkAnwgBBRR0b3RhbEZhcm1pbmdQb3dlcktleQAABApuZXdUb3RhbEZwCQBlAgkAZAIFCm9sZFRvdGFsRnAFDG5ld0JvbnVzZWRGcAUFb2xkRnAJAJQKAgUDbmlsCQDMCAIFBW9sZEZwCQDMCAIFDG5ld0JvbnVzZWRGcAkAzAgCBQpvbGRUb3RhbEZwCQDMCAIFCm5ld1RvdGFsRnAFA25pbAFpAQtpc3N1ZVBpY2tDMQEKZm9yQWRkcmVzcwMJAQIhPQIIBQFpBmNhbGxlcgULd2xnQ29udHJhY3QJAAIBAhFQZXJtaXNzaW9uIGRlbmllZAkBDmlzc3VlTmZ0Q3VzdG9tCAUOaWR4TmFtZVBpY2theGUFB2lkeEtleUMFCmlkeENvbGxEaWcFCmlkeFJhcml0eUMAAQUPaWR4RGVzY3JQaWNrYXhlBQ5pZHhCb251c1R5cGVGcAkBEUBleHRyTmF0aXZlKDEwNjIpAQUKZm9yQWRkcmVzcwFpAQhzdGFrZU5GVAAEDXByb2xvZ0FjdGlvbnMJAQZwcm9sb2cBBQFpAwkBAiE9AgkAkAMBCAUBaQhwYXltZW50cwABCQACAQIcRXhhY3RseSBvbmUgcGF5bWVudCByZXF1aXJlZAQDcG10CQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAADCQECIT0CCAUDcG10BmFtb3VudAABCQACAQInTkZUIHRva2VuIHNob3VsZCBiZSBhdHRhY2hlZCBhcyBwYXltZW50BAdhc3NldElkCQEFdmFsdWUBCAUDcG10B2Fzc2V0SWQEBWFzc2V0CQEFdmFsdWUBCQDsBwEFB2Fzc2V0SWQECmFzc2V0SWRTdHIJANgEAQUHYXNzZXRJZAQEYWRkcgkApQgBCAUBaQZjYWxsZXIEB25mdHNLZXkJARRrZXlTdGFrZWRORlRzQnlPd25lcgEFBGFkZHIEB25mdHNTdHIJAKIIAQUHbmZ0c0tleQQEbmZ0cwMJAQlpc0RlZmluZWQBBQduZnRzU3RyCQC8CQIJAQV2YWx1ZQEFB25mdHNTdHICAV8FA25pbAMJAQ9jb250YWluc0VsZW1lbnQCBQRuZnRzBQphc3NldElkU3RyCQACAQkArAICAiFZb3VyIHN0YWtlZCBORlRzIGFscmVhZHkgY29udGFpbiAFCmFzc2V0SWRTdHIDCQBnAgkAkAMBBQRuZnRzBRdNQVhfTkZUU19TVEFLRURfQllfVVNFUgkAAgEJAKwCAgkArAICAhlZb3VyIGFscmVhZHkgc3Rha2VkIG1heCAoCQCkAwEFF01BWF9ORlRTX1NUQUtFRF9CWV9VU0VSAgYpIE5GVHMECmxpc3RBY3Rpb24JAQtTdHJpbmdFbnRyeQIFB25mdHNLZXkJALoJAgkAzQgCBQRuZnRzBQphc3NldElkU3RyAgFfAwkAAAIIBQVhc3NldAZpc3N1ZXIFBHRoaXMEDSR0MDIyMTMxMjIzMjEJARBzdGFrZU5mdEludGVybmFsBgUEYWRkcgUKYXNzZXRJZFN0cgkAaAIJARJib251c0J5RGVzY3JpcHRpb24BCQEFdmFsdWUBCAUFYXNzZXQLZGVzY3JpcHRpb24AkE4JARJrZXlVc2VyV2xOZnROdW1iZXIBBQRhZGRyBRNrZXlXbE5mdFRvdGFsU3Rha2VkBQtNQVhfV0xfTkZUUwQHYWN0aW9ucwgFDSR0MDIyMTMxMjIzMjECXzEEEHdsZ0NsYWltZWRBbW91bnQIBQ0kdDAyMjEzMTIyMzIxAl8yCQCUCgIJAM0IAgkAzggCBQ1wcm9sb2dBY3Rpb25zBQdhY3Rpb25zBQpsaXN0QWN0aW9uBRB3bGdDbGFpbWVkQW1vdW50AwkAAAIJAQ9pc0Fya2ltYWxJc3N1ZWQBBQVhc3NldAIACQACAQI0T25seSBXYXZlc0xhbmRzIGFuZCBBcmtpbWFscyBORlQgdG9rZW5zIGFyZSBhY2NlcHRlZAQNJHQwMjI1MDIyMjY1MwkBEHN0YWtlTmZ0SW50ZXJuYWwGBQRhZGRyBQphc3NldElkU3RyBQ1BUktfTkZUX0JPTlVTCQETa2V5VXNlckFya05mdE51bWJlcgEFBGFkZHIFFGtleUFya05mdFRvdGFsU3Rha2VkBQxNQVhfQVJLX05GVFMEB2FjdGlvbnMIBQ0kdDAyMjUwMjIyNjUzAl8xBBB3bGdDbGFpbWVkQW1vdW50CAUNJHQwMjI1MDIyMjY1MwJfMgkAlAoCCQDNCAIJAM4IAgUNcHJvbG9nQWN0aW9ucwUHYWN0aW9ucwUKbGlzdEFjdGlvbgUQd2xnQ2xhaW1lZEFtb3VudAFpAQp1bnN0YWtlTkZUAQphc3NldElkU3RyBA1wcm9sb2dBY3Rpb25zCQEGcHJvbG9nAQUBaQMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAAkAAgECFE5vIHBheW1lbnRzIHJlcXVpcmVkBAdhc3NldElkCQDZBAEFCmFzc2V0SWRTdHIEBGFkZHIJAKUIAQgFAWkGY2FsbGVyBAVhc3NldAkBBXZhbHVlAQkA7AcBBQdhc3NldElkBAd0aW1lS2V5CQEea2V5U3Rha2VkVGltZUJ5QXNzZXRJZEFuZE93bmVyAgUKYXNzZXRJZFN0cgUEYWRkcgMJAQEhAQkBCWlzRGVmaW5lZAEJAJ8IAQUHdGltZUtleQkAAgEJAKwCAgkArAICAgRORlQgCAUFYXNzZXQEbmFtZQIVIGlzIG5vdCBzdGFrZWQgYnkgeW91BAduZnRzS2V5CQEUa2V5U3Rha2VkTkZUc0J5T3duZXIBBQRhZGRyBARuZnRzCQC8CQIJAQt2YWx1ZU9yRWxzZQIJAKIIAQUHbmZ0c0tleQIAAgFfBANpZHgJAM8IAgUEbmZ0cwUKYXNzZXRJZFN0cgMJAQEhAQkBCWlzRGVmaW5lZAEFA2lkeAkAAgEJAKwCAgIfWW91ciBzdGFrZWQgTkZUcyBkb24ndCBjb250YWluIAUKYXNzZXRJZFN0cgQKbGlzdEFjdGlvbgMJAGYCCQCQAwEFBG5mdHMAAQkBC1N0cmluZ0VudHJ5AgUHbmZ0c0tleQkAugkCCQDRCAIFBG5mdHMJAQV2YWx1ZQEFA2lkeAIBXwkBC0RlbGV0ZUVudHJ5AQUHbmZ0c0tleQQEaXNXTAkAAAIIBQVhc3NldAZpc3N1ZXIFBHRoaXMDBQRpc1dMBAt3bE5mdE51bWJlcgkBC3ZhbHVlT3JFbHNlAgkAnwgBCQESa2V5VXNlcldsTmZ0TnVtYmVyAQUEYWRkcgAABAhib251c1ZhbAkAaAIJARJib251c0J5RGVzY3JpcHRpb24BCQEFdmFsdWUBCAUFYXNzZXQLZGVzY3JpcHRpb24AkE4EDSR0MDIzODE4MjM4OTcJARlzdGFrZVVuc3Rha2VBY3Jlc0ludGVybmFsAwAABQRhZGRyCQEBLQEFCGJvbnVzVmFsBAdhY3Rpb25zCAUNJHQwMjM4MTgyMzg5NwJfMQQQd2xnQ2xhaW1lZEFtb3VudAgFDSR0MDIzODE4MjM4OTcCXzIJAJQKAgkAzggCCQDNCAIJAM0IAgkAzQgCCQDNCAIJAM0IAgUHYWN0aW9ucwUKbGlzdEFjdGlvbgkBDEludGVnZXJFbnRyeQIJARJrZXlVc2VyV2xOZnROdW1iZXIBBQRhZGRyCQBlAgULd2xOZnROdW1iZXIAAQkBDEludGVnZXJFbnRyeQIFE2tleVdsTmZ0VG90YWxTdGFrZWQJAJYDAQkAzAgCAAAJAMwIAgkAZQIJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUTa2V5V2xOZnRUb3RhbFN0YWtlZAAAAAEFA25pbAkBC0RlbGV0ZUVudHJ5AQkBHmtleVN0YWtlZFRpbWVCeUFzc2V0SWRBbmRPd25lcgIJANgEAQUHYXNzZXRJZAUEYWRkcgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyAAEFB2Fzc2V0SWQFDXByb2xvZ0FjdGlvbnMFEHdsZ0NsYWltZWRBbW91bnQEC2Fya2ltYWxOYW1lCQEPaXNBcmtpbWFsSXNzdWVkAQUFYXNzZXQDCQAAAgULYXJraW1hbE5hbWUCAAkAAgECNE9ubHkgV2F2ZXNMYW5kcyBhbmQgQXJraW1hbHMgTkZUIHRva2VucyBhcmUgYWNjZXB0ZWQEDGFya05mdE51bWJlcgkBC3ZhbHVlT3JFbHNlAgkAnwgBCQETa2V5VXNlckFya05mdE51bWJlcgEFBGFkZHIAAAQNJHQwMjQ1NTcyNDY0MQkBGXN0YWtlVW5zdGFrZUFjcmVzSW50ZXJuYWwDAAAFBGFkZHIJAQEtAQUNQVJLX05GVF9CT05VUwQHYWN0aW9ucwgFDSR0MDI0NTU3MjQ2NDECXzEEEHdsZ0NsYWltZWRBbW91bnQIBQ0kdDAyNDU1NzI0NjQxAl8yCQCUCgIJAM4IAgkAzQgCCQDNCAIJAM0IAgkAzQgCBQdhY3Rpb25zBQpsaXN0QWN0aW9uCQEMSW50ZWdlckVudHJ5AgkBE2tleVVzZXJBcmtOZnROdW1iZXIBBQRhZGRyCQBlAgUMYXJrTmZ0TnVtYmVyAAEJAQtEZWxldGVFbnRyeQEJAR5rZXlTdGFrZWRUaW1lQnlBc3NldElkQW5kT3duZXICCQDYBAEFB2Fzc2V0SWQFBGFkZHIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgABBQdhc3NldElkBQ1wcm9sb2dBY3Rpb25zBRB3bGdDbGFpbWVkQW1vdW50AWkBDGV4Y2hhbmdlTkZUcwAEDXByb2xvZ0FjdGlvbnMJAQZwcm9sb2cBBQFpAwkAZgIAAwkAkAMBCAUBaQhwYXltZW50cwkAAgECKU1pbiBvbmUgV0xHT0xEIGFuZCAyIE5GVCBwYXltZW50cyBhbGxvd2VkAwkAZgIJAJADAQgFAWkIcGF5bWVudHMABgkAAgECKU1heCBvbmUgV0xHT0xEIGFuZCA1IE5GVCBwYXltZW50cyBhbGxvd2VkBARhZGRyCQClCAEIBQFpBmNhbGxlcgoBBWFkZFVwAgNhY2MDcG10BAdhc3NldElkCQETdmFsdWVPckVycm9yTWVzc2FnZQIIBQNwbXQHYXNzZXRJZAIaV0FWRVMgcGF5bWVudHMgbm90IGFsbG93ZWQDCQAAAgUHYXNzZXRJZAUKd2xnQXNzZXRJZAkAlgoECQBkAggFA2FjYwJfMQgFA3BtdAZhbW91bnQIBQNhY2MCXzIIBQNhY2MCXzMIBQNhY2MCXzQEBWFzc2V0CQEFdmFsdWUBCQDsBwEFB2Fzc2V0SWQDCQECIT0CCAUFYXNzZXQGaXNzdWVyBQR0aGlzCQACAQIbT25seSBXTC1pc3N1ZWQgTkZUcyBhbGxvd2VkBAhyYXJpdHlJeAkBFnJhcml0eUlkeEJ5RGVzY3JpcHJpb24BCQEFdmFsdWUBCAUFYXNzZXQLZGVzY3JpcHRpb24DAwkAZgIIBQNhY2MCXzQAAAkBAiE9AgUIcmFyaXR5SXgIBQNhY2MCXzQHCQACAQItWW91IGNhbiBleGNoYW5nZSBvbmx5IE5GVHMgb2YgdGhlIHNhbWUgcmFyaXR5BAlib251c1BlcmMJARJib251c0J5RGVzY3JpcHRpb24BCQEFdmFsdWUBCAUFYXNzZXQLZGVzY3JpcHRpb24JAJYKBAgFA2FjYwJfMQkAZAIIBQNhY2MCXzIFCWJvbnVzUGVyYwkAzQgCCAUDYWNjAl8zCQEEQnVybgIFB2Fzc2V0SWQAAQUIcmFyaXR5SXgEDSR0MDI2MDMwMjYyNDUKAAIkbAgFAWkIcGF5bWVudHMKAAIkcwkAkAMBBQIkbAoABSRhY2MwCQCWCgQAAAAABQNuaWwA////////////AQoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEFYWRkVXACBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDYJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYEBndsZ0ZlZQgFDSR0MDI2MDMwMjYyNDUCXzEECnRvdGFsQm9udXMIBQ0kdDAyNjAzMDI2MjQ1Al8yBAtidXJuQWN0aW9ucwgFDSR0MDI2MDMwMjYyNDUCXzMECXJhcml0eUlkeAgFDSR0MDI2MDMwMjYyNDUCXzQEDG5ld1Jhcml0eUlkeAMJAAACBQlyYXJpdHlJZHgFCmlkeFJhcml0eUMDCQBmAgkAkQMCBRByYXJpdHlUaHJlc2hvbGRzBQ1pZHhUaHJlc2hvbGRDBQp0b3RhbEJvbnVzBQppZHhSYXJpdHlDAwkAZgIJAJEDAgUQcmFyaXR5VGhyZXNob2xkcwUNaWR4VGhyZXNob2xkVQUKdG90YWxCb251cwUKaWR4UmFyaXR5VQkAAgEJAKwCAgkArAICAjpZb3UgY2FuIGFkdmFuY2Ugb25seSBvbmUgbGV2ZWwgb2YgcmFyaXR5LCBtYXggdG90YWwgYm9udXMgCQCkAwEJAJEDAgUQcmFyaXR5VGhyZXNob2xkcwUNaWR4VGhyZXNob2xkVQIBJQMJAAACBQlyYXJpdHlJZHgFCmlkeFJhcml0eVUDCQBmAgkAkQMCBRByYXJpdHlUaHJlc2hvbGRzBQ1pZHhUaHJlc2hvbGRVBQp0b3RhbEJvbnVzBQppZHhSYXJpdHlVAwkAZgIJAJEDAgUQcmFyaXR5VGhyZXNob2xkcwUNaWR4VGhyZXNob2xkTAUKdG90YWxCb251cwUKaWR4UmFyaXR5TAkAAgEJAKwCAgkArAICAjpZb3UgY2FuIGFkdmFuY2Ugb25seSBvbmUgbGV2ZWwgb2YgcmFyaXR5LCBtYXggdG90YWwgYm9udXMgCQCkAwEJAJEDAgUQcmFyaXR5VGhyZXNob2xkcwUNaWR4VGhyZXNob2xkTAIBJQMJAAACBQlyYXJpdHlJZHgFCmlkeFJhcml0eUwDCQBmAgkAkQMCBRByYXJpdHlUaHJlc2hvbGRzBQ1pZHhUaHJlc2hvbGRMBQp0b3RhbEJvbnVzBQppZHhSYXJpdHlMBQppZHhSYXJpdHlFAwkAAAIFCXJhcml0eUlkeAUKaWR4UmFyaXR5RQUKaWR4UmFyaXR5RQMJAAACBQlyYXJpdHlJZHgFCmlkeFJhcml0eVAJAAIBAiZZb3UgY2FuJ3QgZXhjaGFuZ2UgTkZUcyBvZiB0aGlzIHJhcml0eQkAAgECDlVua25vd24gcmFyaXR5BAltaW5XbGdGZWUJAGsDBQp0b3RhbEJvbnVzAGQJAQtnZXRXbGdQcmljZQEAAAQGY2hhbmdlCQBlAgUGd2xnRmVlBQltaW5XbGdGZWUEB2ZvclRlYW0JAGkCBQltaW5XbGdGZWUAAgQJd2xnUmVtYWluCQEFYXNJbnQBCQD8BwQFC3dsZ0NvbnRyYWN0AgpidXJuV2xnb2xkCQDMCAIJAGUCBQltaW5XbGdGZWUFB2ZvclRlYW0FA25pbAUDbmlsAwkAZgIAAAUGY2hhbmdlCQACAQkArAICCQCsAgICE1lvdSBuZWVkIHRvIGF0dGFjaCAJAQpmaXhlZFBvaW50AgUJbWluV2xnRmVlAAgCDiBXTEdPTEQgYXMgZmVlBA1jaGFuZ2VBY3Rpb25zAwkAZgIFBmNoYW5nZQAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUGY2hhbmdlBQp3bGdBc3NldElkBQNuaWwFA25pbAQNJHQwMjc3NzkyNzk0MAkBDmlzc3VlTmZ0Q3VzdG9tCAUOaWR4TmFtZVBpY2theGUFDG5ld1Jhcml0eUlkeAUKaWR4Q29sbERpZwUMbmV3UmFyaXR5SWR4BQp0b3RhbEJvbnVzBQ9pZHhEZXNjclBpY2theGUFDmlkeEJvbnVzVHlwZUZwCAUBaQZjYWxsZXIED2lzc3VlTmZ0QWN0aW9ucwgFDSR0MDI3Nzc5Mjc5NDACXzEECm5mdEFzc2V0SWQIBQ0kdDAyNzc3OTI3OTQwAl8yBAZidXJuZWQJAJADAQULYnVybkFjdGlvbnMEEmJ1cm5Db3VudGVyQWN0aW9ucwMJAAACBQZidXJuZWQAAAUDbmlsCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRFrZXlOZnRUb3RhbEJ1cm5lZAkAZAIJAQt2YWx1ZU9yRWxzZQIJAJ8IAQURa2V5TmZ0VG90YWxCdXJuZWQAAAUGYnVybmVkBQNuaWwJAJQKAgkAzQgCCQDOCAIJAM4IAgkAzggCCQDOCAIFD2lzc3VlTmZ0QWN0aW9ucwULYnVybkFjdGlvbnMFEmJ1cm5Db3VudGVyQWN0aW9ucwUNcHJvbG9nQWN0aW9ucwUNY2hhbmdlQWN0aW9ucwkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTMpAgULd2xnQ29udHJhY3QFC3RlYW1BZGRyS2V5BQdmb3JUZWFtBQp3bGdBc3NldElkCQCUCgIFCm5mdEFzc2V0SWQFCXdsZ1JlbWFpbgFpAQxvcGVuTmZ0Q2hlc3QAAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIRUGVybWlzc2lvbiBkZW5pZWQJAJQKAgUDbmlsAAAANvI+Gg==", "height": 3393050, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BPmq2smDgemLBYyCjRFMiS7BBakxr9roAduCoumrGnuV Next: AgbM6Gs7awitt6iAHrrbSm2ESUEDiH41AJo2PQox3KYD Diff:
OldNewDifferences
912912 func em (aJ,dq) = {
913913 let U = valueOrErrorMessage(dq.assetId, "WAVES payments not allowed")
914914 if ((U == L))
915- then $Tuple3((aJ._1 + dq.amount), aJ._2, aJ._3)
915+ then $Tuple4((aJ._1 + dq.amount), aJ._2, aJ._3, aJ._4)
916916 else {
917917 let dY = value(assetInfo(U))
918918 if ((dY.issuer != this))
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 = 86400000
1313
1414 let f = 10
1515
1616 let g = 100
1717
1818 let h = take(drop(this.bytes, 1), 1)
1919
2020 let i = {
2121 let j = h
2222 if ((base58'2W' == j))
2323 then 10080
2424 else if ((base58'2T' == j))
2525 then 180
2626 else throw("Unknown chain")
2727 }
2828
2929 let k = {
3030 let j = h
3131 if ((base58'2W' == j))
3232 then base58'9wc3LXNA4TEBsXyKtoLE9mrbDD7WMHXvXrCjZvabLAsi'
3333 else if ((base58'2T' == j))
3434 then base58'6mWwf9mZBjVgkC54idpyaZLQfAosD914wT8fGf2iiY63'
3535 else throw("Unknown chain")
3636 }
3737
3838 let l = {
3939 let j = h
4040 if ((base58'2W' == j))
4141 then "3PFwYta8biEz31zpeFe5DJK8wE5trSpQVF8"
4242 else if ((base58'2T' == j))
4343 then "3N7UuYar6264P58FBhVWKPQAh4Yua2hgngv"
4444 else throw("Unknown chain")
4545 }
4646
4747 let m = {
4848 let j = h
4949 if ((base58'2W' == j))
5050 then e
5151 else if ((base58'2T' == j))
5252 then 60000
5353 else throw("Unknown chain")
5454 }
5555
5656 let n = {
5757 let j = h
5858 if ((base58'2W' == j))
5959 then "3PLncXtS1U83D6cQbFD3H8rBHPLgzxSFKZ1"
6060 else if ((base58'2T' == j))
6161 then "3NDCyBG5q85JuaRiigUeEtainyjCQT3XpZm"
6262 else throw("Unknown chain")
6363 }
6464
6565 func o (p,q) = valueOrErrorMessage(getString(p, q), makeString(["mandatory ", toString(p), ".", q, " is not defined"], ""))
6666
6767
6868 let r = 1
6969
7070 let s = 2
7171
7272 let t = 5
7373
7474 func u () = "%s__restConfig"
7575
7676
7777 func v () = "%s__rest2Addr"
7878
7979
8080 func w (x) = split_4C(o(x, u()), a)
8181
8282
8383 func y (z,A) = valueOrErrorMessage(addressFromString(z[A]), ("Rest cfg doesn't contain address at index " + toString(A)))
8484
8585
8686 let B = addressFromStringValue(valueOrElse(getString(this, v()), l))
8787
8888 let z = w(B)
8989
9090 let C = y(z, r)
9191
9292 let D = y(z, s)
9393
9494 let E = y(z, t)
9595
9696 let F = "oldAcresContract"
9797
9898 func G () = "contractsBlocked"
9999
100100
101101 func H (I) = ("lastWeekTxIdByUser_" + I)
102102
103103
104104 func J (I) = ("curWeekTxIdByUser_" + I)
105105
106106
107107 let K = "wlg_assetId"
108108
109109 let L = valueOrErrorMessage(getBinary(D, K), "WLGOLD is not issued yet")
110110
111111 let M = "acresIssuedAmount"
112112
113113 let N = "acresAssetId"
114114
115115 let O = valueOrErrorMessage(getBinary(C, N), "ACRES is not issued yet")
116116
117117 func P (I) = ("acresStakedTimeByUser_" + I)
118118
119119
120120 func Q (R) = ("stakedLandsByOwner_" + R)
121121
122122
123123 func S (R) = ("stakedDuckByOwner_" + R)
124124
125125
126126 func T (U,I) = ((("st_" + U) + "_") + I)
127127
128128
129129 func V (R) = ("stakedNFTsByOwner_" + R)
130130
131131
132132 func W (X) = {
133133 let j = X
134134 if ($isInstanceOf(j, "Int"))
135135 then {
136136 let Y = j
137137 Y
138138 }
139139 else throw("fail to cast into Int")
140140 }
141141
142142
143143 func Z (aa) = {
144144 let j = aa
145145 if ($isInstanceOf(j, "(Int, Int, Int, Int, Int)"))
146146 then {
147147 let ab = j
148148 ab
149149 }
150150 else throw("fail to cast into (Int, Int, Int, Int, Int)")
151151 }
152152
153153
154154 func ac (aa) = {
155155 let j = aa
156156 if ($isInstanceOf(j, "(Int, Int, Int, Int)"))
157157 then {
158158 let ab = j
159159 ab
160160 }
161161 else throw("fail to cast into (Int, Int, Int, Int)")
162162 }
163163
164164
165165 func ad (aa) = {
166166 let j = aa
167167 if ($isInstanceOf(j, "(Int, Int, Int)"))
168168 then {
169169 let ab = j
170170 ab
171171 }
172172 else throw("fail to cast into (Int, Int, Int)")
173173 }
174174
175175
176176 func ae (aa) = {
177177 let j = aa
178178 if ($isInstanceOf(j, "(Int, Int)"))
179179 then {
180180 let ab = j
181181 ab
182182 }
183183 else throw("fail to cast into (Int, Int)")
184184 }
185185
186186
187187 func af (aa,ag) = {
188188 let ah = pow(10, 0, ag, 0, 0, DOWN)
189189 let ai = toString((aa % ah))
190190 let aj = drop(toString(ah), (1 + size(ai)))
191191 (((toString((aa / ah)) + ".") + aj) + ai)
192192 }
193193
194194
195195 let ak = 1000000
196196
197197 let al = 100000000
198198
199199 let am = "wlg_issuedAmount"
200200
201201 let an = "zbill_issuedAmount"
202202
203203 func ao (I) = ("acresStakedAmountByUser_" + I)
204204
205205
206206 func ap (I) = ("farmingPowerByUser_" + I)
207207
208208
209209 let aq = "acresStakedAmountTotal"
210210
211211 let ar = "totalFarmingPower"
212212
213213 let as = 3
214214
215215 let at = 1
216216
217217 let au = 5000
218218
219219 let av = 4
220220
221221 let aw = "nftTotalIssued"
222222
223223 let ax = "nftTotalBurned"
224224
225225 let ay = "WlNftTotalStaked"
226226
227227 let az = "ArkNftTotalStaked"
228228
229229 func aA (U) = ("nftNumberByAssetId_" + U)
230230
231231
232232 func aB (I) = ("userWlNftNumber_" + I)
233233
234234
235235 func aC (I) = ("userArkNftNumber_" + I)
236236
237237
238238 func aD (I) = ("userFullBonus_" + I)
239239
240240
241241 let aE = [0, 10, 20, 40, 80, 150, 250, 400, 700, 1000]
242242
243243 func aF (aG) = {
244244 let aH = ((aG + 99999999) / al)
245245 func aI (aJ,aK) = if ((aK >= aH))
246246 then aJ
247247 else (aJ + 1)
248248
249249 let aL = aE
250250 let aM = size(aL)
251251 let aN = 0
252252 func aO (aP,aQ) = if ((aQ >= aM))
253253 then aP
254254 else aI(aP, aL[aQ])
255255
256256 func aR (aP,aQ) = if ((aQ >= aM))
257257 then aP
258258 else throw("List size exceeds 10")
259259
260260 aR(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aN, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
261261 }
262262
263263
264264 func aS (aG) = ((aG * 20) * (aF(aG) + 4))
265265
266266
267267 func aT (aG,aU) = {
268268 let aV = aS(aG)
269269 $Tuple2(fraction(aV, (ak + aU), ak), aV)
270270 }
271271
272272
273273 let aW = "teamAddr"
274274
275275 func aX (I) = ("lastArbTimeUser_" + I)
276276
277277
278278 let aY = "lastAcresSellTime"
279279
280280 let aZ = "lastLimitLeft"
281281
282282 let ba = ["Gold shovel", "Pickaxe"]
283283
284284 let bb = ["Reward for early birds", "Increases FarmPower"]
285285
286286 let bc = 0
287287
288288 let bd = 1
289289
290290 let be = [5, 10, 20]
291291
292292 let bf = 0
293293
294294 let bg = 1
295295
296296 let bh = 2
297297
298298 let bi = ["SHOVEL", "PICKAXE"]
299299
300300 let bj = 0
301301
302302 let bk = 1
303303
304304 let bl = ["contentPickaxeC", "contentPickaxeU", "contentPickaxeL", "contentPickaxeE", "contentShovelP"]
305305
306306 let bm = 0
307307
308308 let bn = 4
309309
310310 let bo = ["Common", "Uncommon", "Legendary", "Epic", "Promo"]
311311
312312 let bp = 0
313313
314314 let bq = 1
315315
316316 let br = 2
317317
318318 let bs = 3
319319
320320 let bt = 4
321321
322322 let bu = ["Digging tools"]
323323
324324 let bv = 0
325325
326326 let bw = ["FarmPower"]
327327
328328 let bx = 0
329329
330330 func by (bz) = if (if ((bz.originCaller != B))
331331 then valueOrElse(getBoolean(G()), false)
332332 else false)
333333 then throw("Contracts are under maintenance")
334334 else {
335335 let I = toString(bz.originCaller)
336336 let bA = (height / i)
337337 let bB = H(I)
338338 let bC = getString(bB)
339339 let bD = toBase58String(bz.transactionId)
340340 let bE = ((toString(bA) + "_") + bD)
341341 let bF = J(I)
342342 if (isDefined(bC))
343343 then {
344344 let bG = split(value(bC), "_")
345345 if ((bG[0] == toString(bA)))
346346 then [StringEntry(bB, bE), StringEntry(bF, bE)]
347347 else if ((bG[0] == toString((bA - 1))))
348348 then [StringEntry(bF, bE)]
349349 else {
350350 let bH = getStringValue(bF)
351351 let bI = split(bH, "_")
352352 if ((bI[0] == toString(bA)))
353353 then [StringEntry(bF, bE)]
354354 else [StringEntry(bB, bH), StringEntry(bF, bE)]
355355 }
356356 }
357357 else [StringEntry(bB, bE), StringEntry(bF, bE)]
358358 }
359359
360360
361361 func bJ (bK,bL,bM,bN,bO,bP,bQ,bR) = (((((((((((((((((((((((("{\"url\": \"https://waveslands.com\", " + "\"contentKey\": \"") + bK) + "\", ") + "\"number\": ") + toString(bL)) + ", ") + "\"collection\": \"") + bM) + "\", ") + "\"name\": \"") + bN) + "\", ") + "\"description\": \"") + bO) + "\", ") + "\"rare\": \"") + bP) + "\", ") + "\"bonus\": ") + toString(bQ)) + ", ") + "\"bonusType\": \"") + bR) + "\"}")
362362
363363
364364 func bS (bT,bU,bV,bW,bX,bY,bZ,I) = {
365365 let bL = valueOrElse(getInteger(aw), 0)
366366 let bP = bo[bW]
367367 let bN = (((bi[bT] + "-") + take(bP, 1)) + toString(bX))
368368 let ca = Issue(bN, bJ(bl[bU], bL, bu[bV], ba[bT], bb[bY], bo[bW], bX, bw[bZ]), 1, 0, false)
369369 let cb = calculateAssetId(ca)
370370 $Tuple2([ca, IntegerEntry(aw, (bL + 1)), IntegerEntry(aA(toBase58String(cb)), bL), ScriptTransfer(I, 1, cb)], cb)
371371 }
372372
373373
374374 func cc (cd,p,ce) = if (if ((cd == 0))
375375 then (ce == 0)
376376 else false)
377377 then throw("Nothing to do")
378378 else {
379379 let cf = invoke(D, "onStakeUnstakeLand", [p], nil)
380380 if ((cf == cf))
381381 then {
382382 let cg = lastBlock.timestamp
383383 let ch = P(p)
384384 let ci = ao(p)
385385 let cj = valueOrElse(getInteger(ci), 0)
386386 if (if ((0 > cd))
387387 then (0 > (cj + cd))
388388 else false)
389389 then throw(((("You have only " + af(cj, 8)) + " ACRES staked, tried to unstake ") + af(-(cd), 8)))
390390 else {
391391 let ck = (cj + cd)
392392 let cl = valueOrElse(getInteger(aq), 0)
393393 let cm = ap(p)
394394 let cn = valueOrElse(getInteger(cm), 0)
395395 let co = aD(p)
396396 let cp = valueOrElse(getInteger(C, co), 0)
397397 if (if ((0 > ce))
398398 then (0 > (cp + ce))
399399 else false)
400400 then throw((((("You have only " + af(cp, 4)) + "% bonus, and tried to unstake ") + af(-(ce), 4)) + "%"))
401401 else {
402402 let cq = aT(ck, (cp + ce))
403403 let cr = cq._1
404404 let cs = cq._2
405405 let ct = valueOrElse(getInteger(ar), 0)
406406 let cu = if ((cd == 0))
407407 then nil
408408 else [IntegerEntry(ci, ck), IntegerEntry(aq, (cl + cd))]
409409 $Tuple2(((((cu :+ IntegerEntry(ch, lastBlock.timestamp)) :+ IntegerEntry(cm, cr)) :+ IntegerEntry(ar, ((ct + cr) - cn))) :+ IntegerEntry(co, (cp + ce))), cf)
410410 }
411411 }
412412 }
413413 else throw("Strict value is not equal to itself.")
414414 }
415415
416416
417417 func cv (cw) = {
418418 let cx = valueOrErrorMessage(getInteger(D, am), "WLGOLD is not issued yet")
419419 let cy = assetBalance(D, k)
420420 let cz = (assetBalance(C, k) - cw)
421421 let cA = (assetBalance(E, k) + valueOrElse(getInteger(E, an), 0))
422422 let cB = ((cz + cy) + cA)
423423 fraction(cB, d, cx)
424424 }
425425
426426
427427 func cC () = {
428428 let cy = assetBalance(D, k)
429429 let cz = assetBalance(this, k)
430430 let cA = (assetBalance(E, k) + valueOrElse(getInteger(E, an), 0))
431431 let cD = (((cz + cy) + cA) / g)
432432 let cE = valueOrElse(getInteger(aZ), cD)
433433 let cF = valueOrElse(getInteger(aY), 0)
434434 let cg = lastBlock.timestamp
435435 let cG = (cE + fraction(cD, (cg - cF), e))
436436 let cH = min([cG, cD])
437437 $Tuple2(IntegerEntry(aY, cg), cH)
438438 }
439439
440440
441441 let cI = addressFromStringValue("3PJgZ6AK1WVCpdCmEZpesHmaKvrQDdXG5og")
442442
443443 let cJ = valueOrElse(getString(cI, "static_incubatorAddress"), "")
444444
445445 let cK = valueOrElse(getString(cI, "static_breederAddress"), "")
446446
447447 let cL = valueOrElse(getString(cI, "static_turtleIncubatorAddress"), "")
448448
449449 let cM = valueOrElse(getString(cI, "static_turtleBreederAddress"), "")
450450
451451 let cN = valueOrElse(getString(cI, "static_canineIncubatorAddress"), "")
452452
453453 let cO = valueOrElse(getString(cI, "static_canineBreederAddress"), "")
454454
455455 let cP = valueOrElse(getString(cI, "static_felineIncubatorAddress"), "")
456456
457457 let cQ = valueOrElse(getString(cI, "static_felineBreederAddress"), "")
458458
459459 let cR = valueOrElse(getString(cI, "static_mutantIncubatorAddress"), "")
460460
461461 func cS (cT) = {
462462 let cU = toString(cT.issuer)
463463 if (if (if (if (if (if (if (if (if (if ((h == base58'2T'))
464464 then (cU == n)
465465 else false)
466466 then true
467467 else (cU == cJ))
468468 then true
469469 else (cU == cK))
470470 then true
471471 else (cU == cL))
472472 then true
473473 else (cU == cM))
474474 then true
475475 else (cU == cN))
476476 then true
477477 else (cU == cO))
478478 then true
479479 else (cU == cP))
480480 then true
481481 else (cU == cQ))
482482 then cT.name
483483 else if ((cU == cR))
484484 then cT.description
485485 else ""
486486 }
487487
488488
489489 func cV (bO) = if (!(contains(bO, "\"bonusType\": \"FarmPower\"")))
490490 then throw(("NFT is not supported: " + bO))
491491 else {
492492 let cW = split_4C(split_4C(bO, "\"bonus\":")[1], ",")[0]
493493 parseIntValue(drop(cW, (valueOrElse(lastIndexOf(cW, " "), -1) + 1)))
494494 }
495495
496496
497497 func cX (bO) = if (!(contains(bO, "\"rare\"")))
498498 then throw(("NFT is not supported: " + bO))
499499 else {
500500 let cY = split_4C(split_4C(split_4C(bO, "\"rare\"")[1], ",")[0], "\"")[1]
501501 value(indexOf(bo, cY))
502502 }
503503
504504
505505 func cZ (I,da,aU,db,dc,dd) = {
506506 let de = valueOrElse(getInteger(db), 0)
507507 if ((de >= dd))
508508 then throw((("You can stake max " + toString(dd)) + " of such NFTs"))
509509 else {
510510 let df = cc(0, I, aU)
511511 let dg = df._1
512512 let dh = df._2
513513 $Tuple2((((dg :+ IntegerEntry(db, (de + 1))) :+ IntegerEntry(dc, (valueOrElse(getInteger(dc), 0) + 1))) :+ IntegerEntry(T(da, I), lastBlock.timestamp)), dh)
514514 }
515515 }
516516
517517
518518 @Callable(bz)
519519 func saveLastTx () = if (!(containsElement([D], bz.caller)))
520520 then throw("Access denied")
521521 else $Tuple2(by(bz), 42)
522522
523523
524524
525525 @Callable(bz)
526526 func constructorV1 (di,dj) = if ((bz.caller != this))
527527 then throw("Permission denied")
528528 else {
529529 let dk = addressFromStringValue(dj)
530530 [IntegerEntry(M, getIntegerValue(dk, M)), BinaryEntry(N, getBinaryValue(dk, N)), StringEntry(v(), di), StringEntry(F, dj)]
531531 }
532532
533533
534534
535535 @Callable(bz)
536536 func setBlocked (dl) = if ((bz.caller != this))
537537 then throw("permission denied")
538538 else [BooleanEntry(G(), dl)]
539539
540540
541541
542542 @Callable(bz)
543543 func unstakeAcres (dm) = {
544544 let dn = by(bz)
545545 if ((0 >= dm))
546546 then throw("Amount should be positive")
547547 else {
548548 let p = toString(bz.caller)
549549 if ((size(bz.payments) != 0))
550550 then throw("No payments required")
551551 else {
552552 let do = (valueOrElse(getInteger(D, aX(p)), 0) + m)
553553 if ((do > lastBlock.timestamp))
554554 then throw(("You traded some WLGOLD, cannot unstake until " + toString(do)))
555555 else {
556556 let dp = cc(-(dm), p, 0)
557557 let dg = dp._1
558558 let dh = dp._2
559559 $Tuple2(((dg :+ ScriptTransfer(bz.caller, dm, O)) ++ dn), dh)
560560 }
561561 }
562562 }
563563 }
564564
565565
566566
567567 @Callable(bz)
568568 func stakeAcres () = {
569569 let dn = by(bz)
570570 let p = toString(bz.caller)
571571 if ((size(bz.payments) != 1))
572572 then throw("exactly 1 payment must be attached")
573573 else {
574574 let dq = bz.payments[0]
575575 let cd = dq.amount
576576 if (if (!(isDefined(dq.assetId)))
577577 then true
578578 else (value(dq.assetId) != O))
579579 then throw("ACRES payments only!")
580580 else {
581581 let dr = cc(cd, p, 0)
582582 let dg = dr._1
583583 let dh = dr._2
584584 $Tuple2((dg ++ dn), dh)
585585 }
586586 }
587587 }
588588
589589
590590
591591 @Callable(bz)
592592 func buyAcres () = {
593593 let dn = by(bz)
594594 if ((size(bz.payments) != 1))
595595 then throw("exactly 1 payment must be attached")
596596 else {
597597 let dq = bz.payments[0]
598598 let ds = dq.amount
599599 if (if (!(isDefined(dq.assetId)))
600600 then true
601601 else (value(dq.assetId) != k))
602602 then throw("USDT payments only!")
603603 else if ((b > ds))
604604 then throw((("Min payment should be " + af(b, 6)) + " USDT"))
605605 else {
606606 let dt = (ds * f)
607607 let du = fraction(ds, d, cv(ds))
608608 let dv = addressFromStringValue(getStringValue(F))
609609 let dw = invoke(dv, "requestAcresCallback", [dt], nil)
610610 if ((dw == dw))
611611 then {
612612 let dx = W(invoke(D, "burnWlgold", [du], nil))
613613 $Tuple2(([ScriptTransfer(bz.caller, dt, O)] ++ dn), dx)
614614 }
615615 else throw("Strict value is not equal to itself.")
616616 }
617617 }
618618 }
619619
620620
621621
622622 @Callable(bz)
623623 func buyAcresREADONLY (ds) = {
624624 let dt = (ds * f)
625625 let dy = fraction(ds, d, cv(ds))
626626 $Tuple2(nil, [dt, b, dt, dy])
627627 }
628628
629629
630630
631631 @Callable(bz)
632632 func sellAcres () = {
633633 let dn = by(bz)
634634 if ((size(bz.payments) != 1))
635635 then throw("exactly 1 payment must be attached")
636636 else {
637637 let dq = bz.payments[0]
638638 let dt = dq.amount
639639 if (if (!(isDefined(dq.assetId)))
640640 then true
641641 else (value(dq.assetId) != O))
642642 then throw("ACRES payments only!")
643643 else if ((c > dt))
644644 then throw((("Min payment should be " + af(c, 8)) + " ACRES"))
645645 else {
646646 let I = toString(bz.caller)
647647 let dz = cC()
648648 let dA = dz._1
649649 let dB = dz._2
650650 let dC = (dB * f)
651651 if ((dt > dC))
652652 then throw((("You can sell max " + af(dC, 8)) + " ACRES"))
653653 else {
654654 let ds = ((dt / f) / 2)
655655 $Tuple2(([dA, IntegerEntry(aZ, (dB - ds)), ScriptTransfer(bz.caller, ds, k)] ++ dn), ds)
656656 }
657657 }
658658 }
659659 }
660660
661661
662662
663663 @Callable(bz)
664664 func sellAcresREADONLY (p,dt) = {
665665 let dD = cC()
666666 let dA = dD._1
667667 let dB = dD._2
668668 let ds = ((dt / f) / 2)
669669 $Tuple2(nil, [ds, c, (dB * f), 0])
670670 }
671671
672672
673673
674674 @Callable(bz)
675675 func convertOldStakes () = if ((bz.caller != this))
676676 then throw("Temporarily disabled")
677677 else {
678678 let p = toString(bz.caller)
679679 if ((size(bz.payments) != 0))
680680 then throw("No payments required")
681681 else {
682682 let dv = addressFromStringValue(getStringValue(F))
683683 let dm = valueOrElse(getInteger(dv, ao(p)), 0)
684684 let dE = if ((dm > 0))
685685 then ae(invoke(dv, "unstakeAcresCallback", [dm, p], nil))
686686 else $Tuple2(0, 0)
687687 let dF = addressFromStringValue(n)
688688 let dG = getString(dF, Q(p))
689689 let dH = if (isDefined(dG))
690690 then {
691691 let dI = split_51C(value(dG), "_")
692692 func dJ (aJ,dK) = if ((dK == ""))
693693 then throw("landAssetId is required")
694694 else {
695695 let dL = Z(invoke(dF, "unstakeLandCallback", [dK, p], nil))
696696 $Tuple4((aJ._1 + dL._1), (aJ._2 + dL._2), (aJ._3 + dL._3), (aJ._4 + dL._4))
697697 }
698698
699699 let dM = {
700700 let aL = dI
701701 let aM = size(aL)
702702 let aN = $Tuple4(0, 0, 0, 0)
703703 func aO (aP,aQ) = if ((aQ >= aM))
704704 then aP
705705 else dJ(aP, aL[aQ])
706706
707707 func aR (aP,aQ) = if ((aQ >= aM))
708708 then aP
709709 else throw("List size exceeds 100")
710710
711711 aR(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aN, 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)
712712 }
713713 let dN = invoke(dF, "unstakeLandsFinalizeCallback", [p], nil)
714714 if ((dN == dN))
715715 then {
716716 let dw = invoke(dv, "requestAcresCallback", [(((dM._1 + dM._2) + dM._3) + dM._4)], nil)
717717 if ((dw == dw))
718718 then {
719719 let dO = bS(bj, bn, bv, bt, 3, bc, bx, bz.caller)
720720 let dP = dO._1
721721 let cb = dO._2
722722 $Tuple5(dM._1, dM._2, dM._3, dM._4, dP)
723723 }
724724 else throw("Strict value is not equal to itself.")
725725 }
726726 else throw("Strict value is not equal to itself.")
727727 }
728728 else $Tuple5(0, 0, 0, 0, nil)
729729 let dQ = valueOrElse(getString(dF, S(p)), "")
730730 let dR = if ((dQ != ""))
731731 then ad(invoke(dF, "unstakeDuckCallback", [dQ, p], nil))
732732 else $Tuple3(0, 0, 0)
733733 let dS = cc((((((((dE._1 + dH._1) + dH._2) + dH._3) + dH._4) + dR._1) + dR._2) + dR._3), p, 0)
734734 $Tuple2((dH._5 ++ dS._1), dS._2)
735735 }
736736 }
737737
738738
739739
740740 @Callable(bz)
741741 func unstakeLandsREADONLY (p) = {
742742 let dF = addressFromStringValue(n)
743743 let dG = getString(dF, Q(p))
744744 let dH = if (isDefined(dG))
745745 then {
746746 let dI = split_51C(value(dG), "_")
747747 func dJ (aJ,dK) = if ((dK == ""))
748748 then throw("landAssetId is required")
749749 else {
750750 let dL = ac(invoke(dF, "unstakeLandREADONLY", [dK, p], nil))
751751 $Tuple4((aJ._1 + dL._1), (aJ._2 + dL._2), (aJ._3 + dL._3), (aJ._4 + dL._4))
752752 }
753753
754754 let aL = dI
755755 let aM = size(aL)
756756 let aN = $Tuple4(0, 0, 0, 0)
757757 func aO (aP,aQ) = if ((aQ >= aM))
758758 then aP
759759 else dJ(aP, aL[aQ])
760760
761761 func aR (aP,aQ) = if ((aQ >= aM))
762762 then aP
763763 else throw("List size exceeds 100")
764764
765765 aR(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aN, 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)
766766 }
767767 else $Tuple4(0, 0, 0, 0)
768768 $Tuple2(nil, dH)
769769 }
770770
771771
772772
773773 @Callable(bz)
774774 func stakeAcresCallback (I) = if ((bz.caller != addressFromStringValue(n)))
775775 then throw("Permission denied")
776776 else cc(bz.payments[0].amount, I, 0)
777777
778778
779779
780780 @Callable(bz)
781781 func simulateStakeAcresREADONLY (p,dT) = {
782782 let ci = ao(p)
783783 let ck = (valueOrElse(getInteger(ci), 0) + dT)
784784 let cl = valueOrElse(getInteger(aq), 0)
785785 let cm = ap(p)
786786 let cn = valueOrElse(getInteger(cm), 0)
787787 let dU = valueOrElse(getInteger(C, aD(p)), 0)
788788 let dV = aT(ck, dU)
789789 let cr = dV._1
790790 let cs = dV._2
791791 let ct = valueOrElse(getInteger(ar), 0)
792792 let dW = ((ct + cr) - cn)
793793 $Tuple2(nil, [cn, cr, ct, dW])
794794 }
795795
796796
797797
798798 @Callable(bz)
799799 func issuePickC1 (dX) = if ((bz.caller != D))
800800 then throw("Permission denied")
801801 else bS(bk, bm, bv, bp, 1, bd, bx, addressFromStringValue(dX))
802802
803803
804804
805805 @Callable(bz)
806806 func stakeNFT () = {
807807 let dn = by(bz)
808808 if ((size(bz.payments) != 1))
809809 then throw("Exactly one payment required")
810810 else {
811811 let dq = value(bz.payments[0])
812812 if ((dq.amount != 1))
813813 then throw("NFT token should be attached as payment")
814814 else {
815815 let U = value(dq.assetId)
816816 let dY = value(assetInfo(U))
817817 let da = toBase58String(U)
818818 let I = toString(bz.caller)
819819 let dZ = V(I)
820820 let ea = getString(dZ)
821821 let eb = if (isDefined(ea))
822822 then split_4C(value(ea), "_")
823823 else nil
824824 if (containsElement(eb, da))
825825 then throw(("Your staked NFTs already contain " + da))
826826 else if ((size(eb) >= av))
827827 then throw((("Your already staked max (" + toString(av)) + ") NFTs"))
828828 else {
829829 let ec = StringEntry(dZ, makeString_2C((eb :+ da), "_"))
830830 if ((dY.issuer == this))
831831 then {
832832 let ed = cZ(I, da, (cV(value(dY.description)) * 10000), aB(I), ay, as)
833833 let dg = ed._1
834834 let dh = ed._2
835835 $Tuple2(((dn ++ dg) :+ ec), dh)
836836 }
837837 else if ((cS(dY) == ""))
838838 then throw("Only WavesLands and Arkimals NFT tokens are accepted")
839839 else {
840840 let ee = cZ(I, da, au, aC(I), az, at)
841841 let dg = ee._1
842842 let dh = ee._2
843843 $Tuple2(((dn ++ dg) :+ ec), dh)
844844 }
845845 }
846846 }
847847 }
848848 }
849849
850850
851851
852852 @Callable(bz)
853853 func unstakeNFT (da) = {
854854 let dn = by(bz)
855855 if ((size(bz.payments) != 0))
856856 then throw("No payments required")
857857 else {
858858 let U = fromBase58String(da)
859859 let I = toString(bz.caller)
860860 let dY = value(assetInfo(U))
861861 let ch = T(da, I)
862862 if (!(isDefined(getInteger(ch))))
863863 then throw((("NFT " + dY.name) + " is not staked by you"))
864864 else {
865865 let dZ = V(I)
866866 let eb = split_4C(valueOrElse(getString(dZ), ""), "_")
867867 let A = indexOf(eb, da)
868868 if (!(isDefined(A)))
869869 then throw(("Your staked NFTs don't contain " + da))
870870 else {
871871 let ec = if ((size(eb) > 1))
872872 then StringEntry(dZ, makeString_2C(removeByIndex(eb, value(A)), "_"))
873873 else DeleteEntry(dZ)
874874 let ef = (dY.issuer == this)
875875 if (ef)
876876 then {
877877 let eg = valueOrElse(getInteger(aB(I)), 0)
878878 let eh = (cV(value(dY.description)) * 10000)
879879 let ei = cc(0, I, -(eh))
880880 let dg = ei._1
881881 let dh = ei._2
882882 $Tuple2(((((((dg :+ ec) :+ IntegerEntry(aB(I), (eg - 1))) :+ IntegerEntry(ay, max([0, (valueOrElse(getInteger(ay), 0) - 1)]))) :+ DeleteEntry(T(toBase58String(U), I))) :+ ScriptTransfer(bz.caller, 1, U)) ++ dn), dh)
883883 }
884884 else {
885885 let ej = cS(dY)
886886 if ((ej == ""))
887887 then throw("Only WavesLands and Arkimals NFT tokens are accepted")
888888 else {
889889 let ek = valueOrElse(getInteger(aC(I)), 0)
890890 let el = cc(0, I, -(au))
891891 let dg = el._1
892892 let dh = el._2
893893 $Tuple2((((((dg :+ ec) :+ IntegerEntry(aC(I), (ek - 1))) :+ DeleteEntry(T(toBase58String(U), I))) :+ ScriptTransfer(bz.caller, 1, U)) ++ dn), dh)
894894 }
895895 }
896896 }
897897 }
898898 }
899899 }
900900
901901
902902
903903 @Callable(bz)
904904 func exchangeNFTs () = {
905905 let dn = by(bz)
906906 if ((3 > size(bz.payments)))
907907 then throw("Min one WLGOLD and 2 NFT payments allowed")
908908 else if ((size(bz.payments) > 6))
909909 then throw("Max one WLGOLD and 5 NFT payments allowed")
910910 else {
911911 let I = toString(bz.caller)
912912 func em (aJ,dq) = {
913913 let U = valueOrErrorMessage(dq.assetId, "WAVES payments not allowed")
914914 if ((U == L))
915- then $Tuple3((aJ._1 + dq.amount), aJ._2, aJ._3)
915+ then $Tuple4((aJ._1 + dq.amount), aJ._2, aJ._3, aJ._4)
916916 else {
917917 let dY = value(assetInfo(U))
918918 if ((dY.issuer != this))
919919 then throw("Only WL-issued NFTs allowed")
920920 else {
921921 let en = cX(value(dY.description))
922922 if (if ((aJ._4 > 0))
923923 then (en != aJ._4)
924924 else false)
925925 then throw("You can exchange only NFTs of the same rarity")
926926 else {
927927 let bX = cV(value(dY.description))
928928 $Tuple4(aJ._1, (aJ._2 + bX), (aJ._3 :+ Burn(U, 1)), en)
929929 }
930930 }
931931 }
932932 }
933933
934934 let eo = {
935935 let aL = bz.payments
936936 let aM = size(aL)
937937 let aN = $Tuple4(0, 0, nil, -1)
938938 func aO (aP,aQ) = if ((aQ >= aM))
939939 then aP
940940 else em(aP, aL[aQ])
941941
942942 func aR (aP,aQ) = if ((aQ >= aM))
943943 then aP
944944 else throw("List size exceeds 6")
945945
946946 aR(aO(aO(aO(aO(aO(aO(aN, 0), 1), 2), 3), 4), 5), 6)
947947 }
948948 let ep = eo._1
949949 let eq = eo._2
950950 let er = eo._3
951951 let bW = eo._4
952952 let es = if ((bW == bp))
953953 then if ((be[bf] > eq))
954954 then bp
955955 else if ((be[bg] > eq))
956956 then bq
957957 else throw((("You can advance only one level of rarity, max total bonus " + toString(be[bg])) + "%"))
958958 else if ((bW == bq))
959959 then if ((be[bg] > eq))
960960 then bq
961961 else if ((be[bh] > eq))
962962 then br
963963 else throw((("You can advance only one level of rarity, max total bonus " + toString(be[bh])) + "%"))
964964 else if ((bW == br))
965965 then if ((be[bh] > eq))
966966 then br
967967 else bs
968968 else if ((bW == bs))
969969 then bs
970970 else if ((bW == bt))
971971 then throw("You can't exchange NFTs of this rarity")
972972 else throw("Unknown rarity")
973973 let et = fraction(eq, 100, cv(0))
974974 let eu = (ep - et)
975975 let ev = (et / 2)
976976 let dx = W(invoke(D, "burnWlgold", [(et - ev)], nil))
977977 if ((0 > eu))
978978 then throw((("You need to attach " + af(et, 8)) + " WLGOLD as fee"))
979979 else {
980980 let ew = if ((eu > 0))
981981 then [ScriptTransfer(bz.caller, eu, L)]
982982 else nil
983983 let ex = bS(bk, es, bv, es, eq, bd, bx, bz.caller)
984984 let ey = ex._1
985985 let cb = ex._2
986986 let ez = size(er)
987987 let eA = if ((ez == 0))
988988 then nil
989989 else [IntegerEntry(ax, (valueOrElse(getInteger(ax), 0) + ez))]
990990 $Tuple2((((((ey ++ er) ++ eA) ++ dn) ++ ew) :+ ScriptTransfer(addressFromStringValue(getStringValue(D, aW)), ev, L)), $Tuple2(cb, dx))
991991 }
992992 }
993993 }
994994
995995
996996
997997 @Callable(bz)
998998 func openNftChest () = if ((bz.caller != this))
999999 then throw("Permission denied")
10001000 else $Tuple2(nil, 0)
10011001
10021002

github/deemru/w8io/169f3d6 
119.61 ms