tx · T51BRMYhF1KvnSSyD5Mkz1Suatxs3KHJxsm2EMQVoVu

3P5E9xamcWoymiqLx8ZdmR7o4fJSRMGp1WR:  -0.02100000 Waves

2023.04.04 20:29 [3585740] smart account 3P5E9xamcWoymiqLx8ZdmR7o4fJSRMGp1WR > SELF 0.00000000 Waves

{ "type": 13, "id": "T51BRMYhF1KvnSSyD5Mkz1Suatxs3KHJxsm2EMQVoVu", "fee": 2100000, "feeAssetId": null, "timestamp": 1680629308540, "version": 2, "chainId": 87, "sender": "3P5E9xamcWoymiqLx8ZdmR7o4fJSRMGp1WR", "senderPublicKey": "6DknLGEJHLXmZB6ni3tGa8M3gccMMmc3uaaPhvCSuKvM", "proofs": [ "TyDbsNFg7T3HApKEPpdGzPbdxuU4a48Zr7C2qh8bu5Ryum8HZ5nrLtE6rpvqGzx4hmKNykWeLxkZCtJRGmSvCq9", "5Wcm8LM7vM8QXCnp1rk5E3nncBaU1WES6jcfHTe4Cs1opkkCaNX7y3C34nQpWuD3C3dRHBYwmtMtscMYtj1eBhcT" ], "script": "base64:BgJYCAISAwoBCBIECgIBCBIECgIBCBIDCgEIEgMKAQgSBAoCCAgSBQoDCAEBEgMKAQgSABIAEgASBAoCCAgSAwoBARIAEgoKCAEIAQQIAQEBEgMKAQESAwoBCC0BF3N0YXRpY0tleV9vcmFjbGVBZGRyZXNzAAIUc3RhdGljX29yYWNsZUFkZHJlc3MBGHN0YXRpY0tleV9icmVlZGVyQWRkcmVzcwACFXN0YXRpY19icmVlZGVyQWRkcmVzcwEUc3RhdGljS2V5X2VnZ0Fzc2V0SWQAAhFzdGF0aWNfZWdnQXNzZXRJZAEac3RhdGljS2V5X3RydXN0ZWRDb250cmFjdHMAAhdzdGF0aWNfdHJ1c3RlZENvbnRyYWN0cwEYc3RhdGljS2V5X3JlYmlydGhBZGRyZXNzAAIVc3RhdGljX3JlYmlydGhBZGRyZXNzARZzdGF0aWNLZXlfcGlwZWxpbmVVc2VyAAITc3RhdGljX3BpcGVsaW5lVXNlcgERa2V5X2FydGVmYWN0T3duZXICDGFydGVmYWN0TmFtZQVvd25lcgkArAICCQCsAgIJAKwCAgUMYXJ0ZWZhY3ROYW1lAgFfBQVvd25lcgIGX293bmVyARFrZXlfdW5zdGFrZUhlaWdodAIMYXJ0ZWZhY3ROYW1lCmFydGVmYWN0SWQJAKwCAgkArAICCQCsAgIFDGFydGVmYWN0TmFtZQIBXwUKYXJ0ZWZhY3RJZAIPX3Vuc3Rha2VfaGVpZ2h0ARVrZXlfZXh0ZXJuYWxCb29zdER1Y2sBBmR1Y2tJZAkArAICBQZkdWNrSWQCFF9kdWNrX2V4dGVybmFsX2Jvb3N0ARhrZXlfZXh0ZXJuYWxCb29zdEFkZHJlc3MBB2FkZHJlc3MJAKwCAgUHYWRkcmVzcwIUX3VzZXJfZXh0ZXJuYWxfYm9vc3QBEWtleV9wcmljZUNvc21ldGljAQRpdGVtCQCsAgICEGRpcmVjdF9jb3NtZXRpY18FBGl0ZW0BFGtleV9tYXhTYWxlc0Nvc21ldGljAQRpdGVtCQCsAgIJAKwCAgIQZGlyZWN0X2Nvc21ldGljXwUEaXRlbQIKX21heF9zYWxlcwEQa2V5X3NhbGVDb3NtZXRpYwEEaXRlbQkArAICCQCsAgICEGRpcmVjdF9jb3NtZXRpY18FBGl0ZW0CBV9zYWxlARZrZXlfcHJpY2VBc3NldENvc21ldGljAQRpdGVtCQCsAgIJAKwCAgIQZGlyZWN0X2Nvc21ldGljXwUEaXRlbQILX3ByaWNlQXNzZXQBGmtleV9ncm93UGVyY2VudGFnZUNvc21ldGljAQRpdGVtCQCsAgIJAKwCAgIQZGlyZWN0X2Nvc21ldGljXwUEaXRlbQITX2dyb3dpbmdfcGVyY2VudGFnZQEQa2V5X3NvbGRDb3NtZXRpYwEEaXRlbQkArAICCQCsAgICEGRpcmVjdF9jb3NtZXRpY18FBGl0ZW0CBV9zb2xkARVrZXlfbGFzdFByaWNlQ29zbWV0aWMBBGl0ZW0JAKwCAgkArAICAhBkaXJlY3RfY29zbWV0aWNfBQRpdGVtAgtfbGFzdF9wcmljZQETa2V5X3N0YXJ0VHNDb3NtZXRpYwEEaXRlbQkArAICCQCsAgICEGRpcmVjdF9jb3NtZXRpY18FBGl0ZW0CCF9zdGFydFRzARFrZXlfZW5kVHNDb3NtZXRpYwEEaXRlbQkArAICCQCsAgICEGRpcmVjdF9jb3NtZXRpY18FBGl0ZW0CBl9lbmRUcwEXa2V5X3Byb2Nlc3NGaW5pc2hIZWlnaHQCB2FkZHJlc3MEdHhJZAkArAICCQCsAgIJAKwCAgUHYWRkcmVzcwIBXwkA2AQBBQR0eElkAgNfZmgACmRldkFkZHJlc3MBGgFXF3fYQk8hOgpGT8vir4YiaxOc51un3nx7AAplZ2dzTmVlZGVkCQBoAgADAIDC1y8ADmFydGVmYWN0c0xpbWl0CQBkAgCtAgDYBAAJZnJlZUdlbmVzCQDMCAICAUEJAMwIAgIBQgkAzAgCAgFDCQDMCAICAUQJAMwIAgIBRQkAzAgCAgFGBQNuaWwADG9sZEFydGVmYWN0cwkAzAgCAghBUlQtTEFLRQkAzAgCAglBUlQtSE9VU0UJAMwIAgIMQVJULUJJR0hPVVNFCQDMCAICC0FSVC1GSVhHRU5FCQDMCAICDEFSVC1GUkVFR0VORQkAzAgCAgpBUlQtTUlSUk9SCQDMCAICCEFSVC1QT01QCQDMCAICCEFSVC1DQVBFCQDMCAICB0FSVC1IQVQJAMwIAgIOQVJULUNVU1RPTURVQ0sFA25pbAAJYXJ0ZWZhY3RzCQDMCAICCkFSVC1YTUlTVEwJAMwIAgIIQVJULVhIQVQJAMwIAgIKQVJULVhTQ0FSRgkAzAgCAgxBUlQtWFNXRUFURVIJAMwIAgIJQVJULVhTT0NLCQDMCAICCUFSVC1YVFJFRQUDbmlsAAthbGxBcnRlZmFjdAkAzggCBQlhcnRlZmFjdHMFDG9sZEFydGVmYWN0cwENdHJ5R2V0Qm9vbGVhbgEDa2V5BAckbWF0Y2gwCQCbCAIFBHRoaXMFA2tleQMJAAECBQckbWF0Y2gwAgdCb29sZWFuBAFiBQckbWF0Y2gwBQFiBwEMdHJ5R2V0U3RyaW5nAQNrZXkEByRtYXRjaDAJAJ0IAgUEdGhpcwUDa2V5AwkAAQIFByRtYXRjaDACBlN0cmluZwQBYQUHJG1hdGNoMAUBYQIAAQ10cnlHZXRJbnRlZ2VyAQNrZXkEByRtYXRjaDAJAJoIAgUEdGhpcwUDa2V5AwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAAAQ9nZXRSYW5kb21OdW1iZXIECHZhcmlhbnRzBHR4SWQMZmluaXNoSGVpZ2h0Bm9mZnNldAQPcmFuZG9tU2VlZEJsb2NrCQEFdmFsdWUBCQDtBwEJAGUCBQxmaW5pc2hIZWlnaHQAAQQKcmFuZG9tSGFzaAkA9wMBCQDLAQIJAMsBAgEEHEF95gUEdHhJZAkBBXZhbHVlAQgFD3JhbmRvbVNlZWRCbG9jawN2cmYJAGoCCQCyCQIFCnJhbmRvbUhhc2gFBm9mZnNldAUIdmFyaWFudHMBEWdldFJhbmRvbUFydGVmYWN0AgVib3hJZAFoBAxyYW5kb21OdW1iZXIJAQ9nZXRSYW5kb21OdW1iZXIEAAYFBWJveElkBQFoAAEJAJEDAgUJYXJ0ZWZhY3RzBQxyYW5kb21OdW1iZXIBDmdldFJhbmRvbUdlbmVzAgR0eElkAWgEDHJhbmRvbU51bWJlcgkBD2dldFJhbmRvbU51bWJlcgQABgUEdHhJZAUBaAACCQCRAwIFCWZyZWVHZW5lcwUMcmFuZG9tTnVtYmVyARR0cnlHZXRTdHJpbmdFeHRlcm5hbAIHYWRkcmVzcwNrZXkEByRtYXRjaDAJAJ0IAgUHYWRkcmVzcwUDa2V5AwkAAQIFByRtYXRjaDACBlN0cmluZwQBYQUHJG1hdGNoMAUBYQIAAQlnZXRPcmFjbGUACQEHQWRkcmVzcwEJANkEAQkBDHRyeUdldFN0cmluZwEJARdzdGF0aWNLZXlfb3JhY2xlQWRkcmVzcwABEWdldEJyZWVkZXJBZGRyZXNzAAkBB0FkZHJlc3MBCQDZBAEJARR0cnlHZXRTdHJpbmdFeHRlcm5hbAIJAQlnZXRPcmFjbGUACQEYc3RhdGljS2V5X2JyZWVkZXJBZGRyZXNzAAENZ2V0RWdnQXNzZXRJZAAJANkEAQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgkBCWdldE9yYWNsZQAJARRzdGF0aWNLZXlfZWdnQXNzZXRJZAABE2dldFRydXN0ZWRDb250cmFjdHMACQEUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwCCQEJZ2V0T3JhY2xlAAkBGnN0YXRpY0tleV90cnVzdGVkQ29udHJhY3RzAAERZ2V0UmViaXJ0aEFkZHJlc3MACQEHQWRkcmVzcwEJANkEAQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgkBCWdldE9yYWNsZQAJARhzdGF0aWNLZXlfcmViaXJ0aEFkZHJlc3MAARd0cnlHZXRDb3NtZXRpY0l0ZW1QcmljZQEEaXRlbQQDa2V5CQERa2V5X3ByaWNlQ29zbWV0aWMBBQRpdGVtBAckbWF0Y2gwCQCaCAIFBHRoaXMFA2tleQMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEJAAIBAjBJVEdDSVA6IFRoaXMgaXRlbSBpcyBub3QgYXZhaWxhYmxlIGluIHRoZSBzdG9yZSEBCGFzU3RyaW5nAQV2YWx1ZQQHJG1hdGNoMAUFdmFsdWUDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAZzdHJpbmcFByRtYXRjaDAFBnN0cmluZwkAAgECHHdyb25nIHR5cGUsIGV4cGVjdGVkOiBTdHJpbmcBBWFzSW50AQV2YWx1ZQQHJG1hdGNoMAUFdmFsdWUDCQABAgUHJG1hdGNoMAIDSW50BANpbnQFByRtYXRjaDAFA2ludAkAAgECGXdyb25nIHR5cGUsIGV4cGVjdGVkOiBJbnQBDm1hbmlwdWxhdGVOYW1lAwlhc3NldE5hbWUIcG9zaXRpb24EY2hhcgkArAICCQCsAgIJAK8CAgUJYXNzZXROYW1lCQBlAgUIcG9zaXRpb24AAQUEY2hhcgkAsgICBQlhc3NldE5hbWUJAGUCABAFCHBvc2l0aW9uARBpdGVtSXNJbkNvb2xEb3duAgxhcnRlZmFjdE5hbWUKYXJ0ZWZhY3RJZAQRdW5zdGFrZUhlaWdodExhc3QJAQ10cnlHZXRJbnRlZ2VyAQkBEWtleV91bnN0YWtlSGVpZ2h0AgUMYXJ0ZWZhY3ROYW1lBQphcnRlZmFjdElkBA5jb29sZG93blBlcmlvZADwAQMJAGYCBQZoZWlnaHQJAGQCBRF1bnN0YWtlSGVpZ2h0TGFzdAUOY29vbGRvd25QZXJpb2QHBgEJaXNUZXN0RW52AAkBDXRyeUdldEJvb2xlYW4BAgdURVNURU5WEQFpAQ1kaXJlY3RCdXlJdGVtAQhpdGVtTmFtZQQJYmFzZVByaWNlCQEXdHJ5R2V0Q29zbWV0aWNJdGVtUHJpY2UBBQhpdGVtTmFtZQQEZ3JvdwkBDXRyeUdldEludGVnZXIBCQEaa2V5X2dyb3dQZXJjZW50YWdlQ29zbWV0aWMBBQhpdGVtTmFtZQQHc3RhcnRUcwkBDXRyeUdldEludGVnZXIBCQETa2V5X3N0YXJ0VHNDb3NtZXRpYwEFCGl0ZW1OYW1lBAVlbmRUcwkBDXRyeUdldEludGVnZXIBCQERa2V5X2VuZFRzQ29zbWV0aWMBBQhpdGVtTmFtZQMDCQECIT0CBQdzdGFydFRzAAAJAGYCBQdzdGFydFRzCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAcJAAIBAiFJREJJOiBUaGUgc2FsZSBkaWQgbm90IHN0YXJ0IHlldCEDAwkBAiE9AgUFZW5kVHMAAAkAZgIIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQVlbmRUcwcJAAIBAiRJREJJOiBUaGUgc2FsZSBoYXMgYWxyZWFkeSBmaW5pc2hlZCEDCQEBIQEJAQ10cnlHZXRCb29sZWFuAQkBEGtleV9zYWxlQ29zbWV0aWMBBQhpdGVtTmFtZQkAAgEJAKwCAgIfSURCSTogSXRlbSBub3QgZm9yIHNhbGUgYW55bW9yZQkBEGtleV9zYWxlQ29zbWV0aWMBBQhpdGVtTmFtZQQNbWF4U2FsZXNWYWx1ZQkBDXRyeUdldEludGVnZXIBCQEUa2V5X21heFNhbGVzQ29zbWV0aWMBBQhpdGVtTmFtZQQJc29sZFZhbHVlCQENdHJ5R2V0SW50ZWdlcgEJARBrZXlfc29sZENvc21ldGljAQUIaXRlbU5hbWUEBXByaWNlAwkAAAIFBGdyb3cAAAUJYmFzZVByaWNlCQBkAgUJYmFzZVByaWNlCQBoAgkAaQIFCWJhc2VQcmljZQBkCQBoAgUJc29sZFZhbHVlBQRncm93AwMJAQIhPQIFDW1heFNhbGVzVmFsdWUAAAkAZwIFCXNvbGRWYWx1ZQUNbWF4U2FsZXNWYWx1ZQcJAAIBAhhJREJJOiBNYXggZWRpdGlvbnMgc29sZCEEB2Fzc2V0SWQDCQAAAgkBDHRyeUdldFN0cmluZwEJARZrZXlfcHJpY2VBc3NldENvc21ldGljAQUIaXRlbU5hbWUCAAkBDWdldEVnZ0Fzc2V0SWQAAwkAAAIJAQx0cnlHZXRTdHJpbmcBCQEWa2V5X3ByaWNlQXNzZXRDb3NtZXRpYwEFCGl0ZW1OYW1lAgVXQVZFUwUEdW5pdAkA2QQBCQEMdHJ5R2V0U3RyaW5nAQkBFmtleV9wcmljZUFzc2V0Q29zbWV0aWMBBQhpdGVtTmFtZQQTYW1vdW50UGFpZEJ5Q291cG9ucwAABAlsZWZ0VG9QYXkJAGUCBQVwcmljZQUTYW1vdW50UGFpZEJ5Q291cG9ucwQHcGF5bWVudAMJAQIhPQIFCWxlZnRUb1BheQAABAxmaXJzdFBheW1lbnQJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAQGYW1vdW50CAUMZmlyc3RQYXltZW50BmFtb3VudAMJAQIhPQIIBQxmaXJzdFBheW1lbnQHYXNzZXRJZAUHYXNzZXRJZAkAAgECOklEQkk6IFlvdSBjYW4gYXR0YWNoIG9ubHkgdG9rZW5zIHdpdGggdGhlIGNvcnJlY3QgcGF5bWVudCADCQECIT0CBQZhbW91bnQFCWxlZnRUb1BheQkAAgEJAKwCAgIqSURCSTogUGxlYXNlIGF0dGFjaCB0aGUgZXhhY3QgYXNzZXQgYW1vdW50CQCkAwEFBXByaWNlBQlsZWZ0VG9QYXkAAAMJAAACBQdwYXltZW50BQdwYXltZW50BAd0eElkU3RyCQDYBAEIBQFpDXRyYW5zYWN0aW9uSWQEB2FkZHJlc3MIBQFpDG9yaWdpbkNhbGxlcgQIYXJ0ZWZhY3QJAMMIBwUIaXRlbU5hbWUJAKwCAgIiTkZUIGFydGVmYWN0IG9mIFdhdmVzIER1Y2tzIGdhbWU6IAUIaXRlbU5hbWUAAQAABwUEdW5pdAAABAphcnRlZmFjdElkCQC4CAEFCGFydGVmYWN0CQCUCgIJAMwIAgUIYXJ0ZWZhY3QJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICCWFydGVmYWN0XwkA2AQBBQphcnRlZmFjdElkAgVfdHlwZQUIaXRlbU5hbWUJAMwIAgkBDEludGVnZXJFbnRyeQIJARVrZXlfbGFzdFByaWNlQ29zbWV0aWMBBQhpdGVtTmFtZQUFcHJpY2UJAMwIAgkBDEludGVnZXJFbnRyeQIJARBrZXlfc29sZENvc21ldGljAQUIaXRlbU5hbWUJAGQCBQlzb2xkVmFsdWUAAQkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQdhZGRyZXNzAAEFCmFydGVmYWN0SWQFA25pbAkA2AQBBQphcnRlZmFjdElkCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBD21hbmlwdWxhdGVCb29zdAIFYm9vc3QGZHVja0lkBBBhbGxvd2VkQ29udHJhY3RzCQETZ2V0VHJ1c3RlZENvbnRyYWN0cwAEFGFsbG93ZWRDb250cmFjdHNMaXN0CQC1CQIFEGFsbG93ZWRDb250cmFjdHMCATsECmRhcHBUb0NhbGwJAKUIAQgFAWkGY2FsbGVyAwkAAAIJAM8IAgUUYWxsb3dlZENvbnRyYWN0c0xpc3QFCmRhcHBUb0NhbGwFBHVuaXQJAAIBAjRJTUI6IFRoaXMgc21hcnQgY29udHJhY3QgY2FuJ3QgbWFuaXB1bGF0ZSB0aGUgYm9vc3QhBANrZXkJARVrZXlfZXh0ZXJuYWxCb29zdER1Y2sBBQZkdWNrSWQEC2FjdGl2ZUJvb3N0CQENdHJ5R2V0SW50ZWdlcgEFA2tleQQIbmV3Qm9vc3QJAGQCBQthY3RpdmVCb29zdAUFYm9vc3QDCQBmAgAABQhuZXdCb29zdAkAAgECQElNQjogU29tZXRoaW5nIHdlbnQgd3Jvbmcgd2l0aCBib29zdCwgcGxlYXNlIGNvbnRhY3QgdGhlIGFkbWlucyEJAMwIAgkBDEludGVnZXJFbnRyeQIFA2tleQUIbmV3Qm9vc3QFA25pbAFpARZtYW5pcHVsYXRlQm9vc3RBY2NvdW50AgVib29zdAdhZGRyZXNzBBBhbGxvd2VkQ29udHJhY3RzCQETZ2V0VHJ1c3RlZENvbnRyYWN0cwAEFGFsbG93ZWRDb250cmFjdHNMaXN0CQC1CQIFEGFsbG93ZWRDb250cmFjdHMCATsECmRhcHBUb0NhbGwJAKUIAQgFAWkGY2FsbGVyAwkAAAIJAM8IAgUUYWxsb3dlZENvbnRyYWN0c0xpc3QFCmRhcHBUb0NhbGwFBHVuaXQJAAIBAjVJTUJBOiBUaGlzIHNtYXJ0IGNvbnRyYWN0IGNhbid0IG1hbmlwdWxhdGUgdGhlIGJvb3N0IQQDa2V5CQEYa2V5X2V4dGVybmFsQm9vc3RBZGRyZXNzAQUHYWRkcmVzcwQLYWN0aXZlQm9vc3QJAQ10cnlHZXRJbnRlZ2VyAQUDa2V5BAhuZXdCb29zdAkAZAIFC2FjdGl2ZUJvb3N0BQVib29zdAMJAGYCAAAFCG5ld0Jvb3N0CQACAQJBSU1CQTogU29tZXRoaW5nIHdlbnQgd3Jvbmcgd2l0aCBib29zdCwgcGxlYXNlIGNvbnRhY3QgdGhlIGFkbWlucyEJAMwIAgkBDEludGVnZXJFbnRyeQIFA2tleQUIbmV3Qm9vc3QFA25pbAFpARRjaGVja0FydGVmYWN0RGV0YWlscwEHYXNzZXRJZAQFYXNzZXQJAQV2YWx1ZQEJAOwHAQkA2QQBBQdhc3NldElkBAlhc3NldE5hbWUJAQV2YWx1ZQEIBQVhc3NldARuYW1lAwMDCQEPY29udGFpbnNFbGVtZW50AgULYWxsQXJ0ZWZhY3QFCWFzc2V0TmFtZQYJAQlpc0RlZmluZWQBCQEXdHJ5R2V0Q29zbWV0aWNJdGVtUHJpY2UBBQlhc3NldE5hbWUJAAACCAUFYXNzZXQGaXNzdWVyBQR0aGlzBwkAlAoCBQNuaWwFCWFzc2V0TmFtZQkAAgECEEludmFsaWQgYXJ0ZWZhY3QBaQEPY29uZmlndXJlT3JhY2xlAQZvcmFjbGUDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAgphZG1pbiBvbmx5CQDMCAIJAQtTdHJpbmdFbnRyeQIJARdzdGF0aWNLZXlfb3JhY2xlQWRkcmVzcwAFBm9yYWNsZQUDbmlsAWkBGmNhbGN1bGF0ZUZhcm1pbmdQb3dlckJvb3N0AgZkdWNrSWQHYWRkcmVzcwQRZXh0ZXJuYWxCb29zdER1Y2sJAQ10cnlHZXRJbnRlZ2VyAQkBFWtleV9leHRlcm5hbEJvb3N0RHVjawEFBmR1Y2tJZAQUZXh0ZXJuYWxCb29zdEFkZHJlc3MJAQ10cnlHZXRJbnRlZ2VyAQkBGGtleV9leHRlcm5hbEJvb3N0QWRkcmVzcwEFB2FkZHJlc3MECnRvdGFsQm9vc3QJAGQCBRFleHRlcm5hbEJvb3N0RHVjawUUZXh0ZXJuYWxCb29zdEFkZHJlc3MJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQZkdWNrSWQCC19sYXN0X2Jvb3N0BQp0b3RhbEJvb3N0BQNuaWwFCnRvdGFsQm9vc3QBaQEJZml4ZWRHZW5lAwd0eElkU3RyD3BhcmVudEZpeGVkR2VuZRFwb3NpdGlvbkZpeGVkR2VuZQQMZmlyc3RQYXltZW50CQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAAEDGZpcnN0QXNzZXRJZAkA2AQBCQEFdmFsdWUBCAUMZmlyc3RQYXltZW50B2Fzc2V0SWQDCQECIT0CCAUMZmlyc3RQYXltZW50BmFtb3VudAABCQACAQITTkZUIGlzIG5vdCBhdHRhY2hlZAQIYXJ0ZWZhY3QJAQhhc1N0cmluZwEJAPwHBAUEdGhpcwIUY2hlY2tBcnRlZmFjdERldGFpbHMJAMwIAgUMZmlyc3RBc3NldElkBQNuaWwFA25pbAMJAAACBQhhcnRlZmFjdAUIYXJ0ZWZhY3QDCQECIT0CBQhhcnRlZmFjdAILQVJULUZJWEdFTkUJAAIBAilZb3UgbmVlZCB0byBhdHRhY2ggYSBBUlQtRklYR0VORSBhcnRlZmFjdAQEdHhJZAkA2QQBBQd0eElkU3RyBA9maW5pc2hIZWlnaHRLZXkJARdrZXlfcHJvY2Vzc0ZpbmlzaEhlaWdodAIJAKUIAQgFAWkGY2FsbGVyBQR0eElkBBNwcm9jZXNzRmluaXNoSGVpZ2h0CQERQGV4dHJOYXRpdmUoMTA1MCkCCQERZ2V0QnJlZWRlckFkZHJlc3MABQ9maW5pc2hIZWlnaHRLZXkED2R1Y2tHZW5lc1N0cmluZwkBCGFzU3RyaW5nAQkA/AcECQERZ2V0QnJlZWRlckFkZHJlc3MAAgxnZW5lcmF0ZUR1Y2sJAMwIAgUEdHhJZAkAzAgCBRNwcm9jZXNzRmluaXNoSGVpZ2h0CQDMCAIFD3BhcmVudEZpeGVkR2VuZQkAzAgCBRFwb3NpdGlvbkZpeGVkR2VuZQkAzAgCAgAJAMwIAgAABQNuaWwFA25pbAMJAAACBQ9kdWNrR2VuZXNTdHJpbmcFD2R1Y2tHZW5lc1N0cmluZwQEY2FsbAkA/AcECQERZ2V0QnJlZWRlckFkZHJlc3MAAhdmaW5pc2hEdWNrSGF0Y2hpbmdJdGVtcwkAzAgCBQd0eElkU3RyCQDMCAIFD2R1Y2tHZW5lc1N0cmluZwUDbmlsBQNuaWwDCQAAAgUEY2FsbAUEY2FsbAkAzAgCCQEEQnVybgIJAQV2YWx1ZQEIBQxmaXJzdFBheW1lbnQHYXNzZXRJZAABBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEIZnJlZUdlbmUBB3R4SWRTdHIEDGZpcnN0UGF5bWVudAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAABAxmaXJzdEFzc2V0SWQJANgEAQkBBXZhbHVlAQgFDGZpcnN0UGF5bWVudAdhc3NldElkAwkBAiE9AggFDGZpcnN0UGF5bWVudAZhbW91bnQAAQkAAgECE05GVCBpcyBub3QgYXR0YWNoZWQECGFydGVmYWN0CQEIYXNTdHJpbmcBCQD8BwQFBHRoaXMCFGNoZWNrQXJ0ZWZhY3REZXRhaWxzCQDMCAIFDGZpcnN0QXNzZXRJZAUDbmlsBQNuaWwDCQAAAgUIYXJ0ZWZhY3QFCGFydGVmYWN0AwkBAiE9AgUIYXJ0ZWZhY3QCDEFSVC1GUkVFR0VORQkAAgECKllvdSBuZWVkIHRvIGF0dGFjaCBhIEFSVC1GUkVFR0VORSBhcnRlZmFjdAQEdHhJZAkA2QQBBQd0eElkU3RyBA9maW5pc2hIZWlnaHRLZXkJARdrZXlfcHJvY2Vzc0ZpbmlzaEhlaWdodAIJAKUIAQgFAWkGY2FsbGVyBQR0eElkBBNwcm9jZXNzRmluaXNoSGVpZ2h0CQERQGV4dHJOYXRpdmUoMTA1MCkCCQERZ2V0QnJlZWRlckFkZHJlc3MABQ9maW5pc2hIZWlnaHRLZXkEDHNlbGVjdGVkR2VuZQkBDmdldFJhbmRvbUdlbmVzAgUEdHhJZAUTcHJvY2Vzc0ZpbmlzaEhlaWdodAQOcmFuZG9tUG9zaXRpb24JAQ9nZXRSYW5kb21OdW1iZXIEAAcFBHR4SWQFE3Byb2Nlc3NGaW5pc2hIZWlnaHQAAwQPZHVja0dlbmVzU3RyaW5nCQEIYXNTdHJpbmcBCQD8BwQJARFnZXRCcmVlZGVyQWRkcmVzcwACDGdlbmVyYXRlRHVjawkAzAgCBQR0eElkCQDMCAIFE3Byb2Nlc3NGaW5pc2hIZWlnaHQJAMwIAgAACQDMCAIAAAkAzAgCBQxzZWxlY3RlZEdlbmUJAMwIAgUOcmFuZG9tUG9zaXRpb24FA25pbAUDbmlsAwkAAAIFD2R1Y2tHZW5lc1N0cmluZwUPZHVja0dlbmVzU3RyaW5nBARjYWxsCQD8BwQJARFnZXRCcmVlZGVyQWRkcmVzcwACF2ZpbmlzaER1Y2tIYXRjaGluZ0l0ZW1zCQDMCAIFB3R4SWRTdHIJAMwIAgUPZHVja0dlbmVzU3RyaW5nBQNuaWwFA25pbAMJAAACBQRjYWxsBQRjYWxsCQDMCAIJAQRCdXJuAgkBBXZhbHVlAQgFDGZpcnN0UGF5bWVudAdhc3NldElkAAEFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQhjb3B5RHVjawAEDGZpcnN0UGF5bWVudAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAABA1zZWNvbmRQYXltZW50CQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAEEDGZpcnN0QXNzZXRJZAkA2AQBCQEFdmFsdWUBCAUMZmlyc3RQYXltZW50B2Fzc2V0SWQECGNoaWxkcmVuCQEFYXNJbnQBCQD8BwQJARFnZXRCcmVlZGVyQWRkcmVzcwACFnZhbGlkYXRlQW5kR2V0Q2hpbGRyZW4JAMwIAgUMZmlyc3RBc3NldElkBQNuaWwFA25pbAMJAAACBQhjaGlsZHJlbgUIY2hpbGRyZW4DAwkBAiE9AggFDGZpcnN0UGF5bWVudAZhbW91bnQAAQYJAQIhPQIIBQ1zZWNvbmRQYXltZW50BmFtb3VudAABCQACAQITTkZUIGlzIG5vdCBhdHRhY2hlZAQIYXJ0ZWZhY3QJAQhhc1N0cmluZwEJAPwHBAUEdGhpcwIUY2hlY2tBcnRlZmFjdERldGFpbHMJAMwIAgkA2AQBCQEFdmFsdWUBCAUNc2Vjb25kUGF5bWVudAdhc3NldElkBQNuaWwFA25pbAMJAAACBQhhcnRlZmFjdAUIYXJ0ZWZhY3QDCQECIT0CBQhhcnRlZmFjdAIKQVJULU1JUlJPUgkAAgECKFlvdSBuZWVkIHRvIGF0dGFjaCBhIEFSVC1NSVJST1IgYXJ0ZWZhY3QEB25mdEluZm8JAQV2YWx1ZQEJAOwHAQkBBXZhbHVlAQgFDGZpcnN0UGF5bWVudAdhc3NldElkBAlhc3NldDFHZW4JALUJAggFB25mdEluZm8EbmFtZQIAAwMJAAACCQCRAwIFCWFzc2V0MUdlbgAOAgFHBgkAAAIJAJEDAgUJYXNzZXQxR2VuAA4CAUoJAAIBAhpZb3UgY2FuJ3QgbWlycm9yIHRoaXMgZHVjawQHZHVja0dlbggFB25mdEluZm8EbmFtZQQEY2FsbAkA/AcECQERZ2V0QnJlZWRlckFkZHJlc3MAAhZjcmVhdGVEdWNrU3BlY2lhbEdlbmVzCQDMCAIICAUBaQZjYWxsZXIFYnl0ZXMJAMwIAgUHZHVja0dlbgkAzAgCBQhjaGlsZHJlbgUDbmlsBQNuaWwDCQAAAgUEY2FsbAUEY2FsbAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIAAQgFDGZpcnN0UGF5bWVudAdhc3NldElkCQDMCAIJAQRCdXJuAgkBBXZhbHVlAQgFDXNlY29uZFBheW1lbnQHYXNzZXRJZAABBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQERYWRkQXJ0ZUZhY3RUb0R1Y2sABAxmaXJzdFBheW1lbnQJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAQNc2Vjb25kUGF5bWVudAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwABBAxmaXJzdEFzc2V0SWQJANgEAQkBBXZhbHVlAQgFDGZpcnN0UGF5bWVudAdhc3NldElkAwMJAQIhPQIIBQxmaXJzdFBheW1lbnQGYW1vdW50AAEGCQECIT0CCAUNc2Vjb25kUGF5bWVudAZhbW91bnQAAQkAAgECE05GVCBpcyBub3QgYXR0YWNoZWQECGNoaWxkcmVuCQEFYXNJbnQBCQD8BwQJARFnZXRCcmVlZGVyQWRkcmVzcwACFnZhbGlkYXRlQW5kR2V0Q2hpbGRyZW4JAMwIAgUMZmlyc3RBc3NldElkBQNuaWwFA25pbAMJAAACBQhjaGlsZHJlbgUIY2hpbGRyZW4DCQAAAgUIY2hpbGRyZW4AAAkAAgECJFlvdSBjYW4gb25seSBwaWNrIGEgc3RlcmlsZSBORlQtZHVjawQIYXJ0ZWZhY3QJAQhhc1N0cmluZwEJAPwHBAUEdGhpcwIUY2hlY2tBcnRlZmFjdERldGFpbHMJAMwIAgkA2AQBCQEFdmFsdWUBCAUNc2Vjb25kUGF5bWVudAdhc3NldElkBQNuaWwFA25pbAMJAAACBQhhcnRlZmFjdAUIYXJ0ZWZhY3QDAwkBAiE9AgUIYXJ0ZWZhY3QCCEFSVC1YSEFUCQECIT0CBQhhcnRlZmFjdAIIQVJULVBPTVAHCQACAQIyWW91IG5lZWQgdG8gYXR0YWNoIGEgQVJULVhIQVQgb3IgQVJULVBPTVAgYXJ0ZWZhY3QEB25mdEluZm8JAQV2YWx1ZQEJAOwHAQkBBXZhbHVlAQgFDGZpcnN0UGF5bWVudAdhc3NldElkBAlhc3NldDFHZW4JALUJAggFB25mdEluZm8EbmFtZQIAAwMJAAACCQCRAwIFCWFzc2V0MUdlbgAOAgFHBgkAAAIJAJEDAgUJYXNzZXQxR2VuAA4CAUoJAAIBAhpZb3UgY2FuJ3QgbWlycm9yIHRoaXMgZHVjawMDCQAAAgkAkQMCBQlhc3NldDFHZW4ABQIBUwYJAAACCQCRAwIFCWFzc2V0MUdlbgAFAgFUCQACAQIfeW91IGFscmVhZHkgYXR0YWNoZWQgYSBhcnRlZmFjdAQEY2hhcgMJAAACBQhhcnRlZmFjdAIIQVJULVhIQVQCAVQDCQAAAgUIYXJ0ZWZhY3QCCEFSVC1QT01QAgFTCQACAQIPTm8gY2hhciBkZWZpbmVkBApvbGREdWNrR2VuCAUHbmZ0SW5mbwRuYW1lBApvbGRGYXJtR2VuCQEIYXNTdHJpbmcBCQD8BwQJARFnZXRCcmVlZGVyQWRkcmVzcwACDmdldEdlbkZyb21OYW1lCQDMCAIFCm9sZER1Y2tHZW4FA25pbAUDbmlsAwkAAAIFCm9sZEZhcm1HZW4FCm9sZEZhcm1HZW4EB2R1Y2tHZW4JAQ5tYW5pcHVsYXRlTmFtZQMFCm9sZER1Y2tHZW4ABgUEY2hhcgQEY2FsbAkA/AcECQERZ2V0QnJlZWRlckFkZHJlc3MAAhZjcmVhdGVEdWNrU3BlY2lhbEdlbmVzCQDMCAIICAUBaQZjYWxsZXIFYnl0ZXMJAMwIAgUHZHVja0dlbgkAzAgCBQhjaGlsZHJlbgUDbmlsBQNuaWwDCQAAAgUEY2FsbAUEY2FsbAQKY2FsbFJlZHVjZQkA/AcECQERZ2V0QnJlZWRlckFkZHJlc3MAAgxyZWR1Y2VSYXJpdHkJAMwIAgUMZmlyc3RBc3NldElkCQDMCAIFCm9sZEZhcm1HZW4FA25pbAUDbmlsAwkAAAIFCmNhbGxSZWR1Y2UFCmNhbGxSZWR1Y2UJAMwIAgkBBEJ1cm4CCQEFdmFsdWUBCAUMZmlyc3RQYXltZW50B2Fzc2V0SWQAAQkAzAgCCQEEQnVybgIJAQV2YWx1ZQEIBQ1zZWNvbmRQYXltZW50B2Fzc2V0SWQAAQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBB3ByZUluaXQACQDMCAIJAQxJbnRlZ2VyRW50cnkCAhxzdGF0aWNfQVJULUxBS0VfZmFybWluZ1Nsb3RzAMgBCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhxzdGF0aWNfQVJULUxBS0VfZmFybWluZ0Jvb3N0AAIJAMwIAgkBDEludGVnZXJFbnRyeQICHXN0YXRpY19BUlQtSE9VU0VfZmFybWluZ1Nsb3RzAAQJAMwIAgkBDEludGVnZXJFbnRyeQICHXN0YXRpY19BUlQtSE9VU0VfZmFybWluZ0Jvb3N0AB4JAMwIAgkBDEludGVnZXJFbnRyeQICIHN0YXRpY19BUlQtQklHSE9VU0VfZmFybWluZ1Nsb3RzAAoJAMwIAgkBDEludGVnZXJFbnRyeQICIHN0YXRpY19BUlQtQklHSE9VU0VfZmFybWluZ0Jvb3N0AA8FA25pbAFpAQ1pc3N1ZUFydGVmYWN0AgR0eXBlCHJlY2VpdmVyAwMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkBAiE9AggFAWkGY2FsbGVyCQERZ2V0UmViaXJ0aEFkZHJlc3MABwkAAgECCmFkbWluIG9ubHkEB3R4SWRTdHIJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAQHYWRkcmVzcwkBB0FkZHJlc3MBCQDZBAEFCHJlY2VpdmVyBAhhcnRlZmFjdAkAwwgHBQR0eXBlAipORlQgYXJ0ZWZhY3Qgb2YgV2F2ZXMgRHVja3MgZ2FtZS4gRHJvcCAjMi4AAQAABwUEdW5pdAAABAphcnRlZmFjdElkCQC4CAEFCGFydGVmYWN0CQCUCgIJAMwIAgUIYXJ0ZWZhY3QJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICCWFydGVmYWN0XwkA2AQBBQphcnRlZmFjdElkAgVfdHlwZQUEdHlwZQkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQdhZGRyZXNzAAEFCmFydGVmYWN0SWQFA25pbAkA2AQBBQphcnRlZmFjdElkAWkBB3NldExvY2sBAW4DCQAAAggFAWkGY2FsbGVyBQR0aGlzCQDMCAIJAQxJbnRlZ2VyRW50cnkCAg1nbG9iYWxfbG9ja2VkBQFuBQNuaWwJAAIBAgphZG1pbiBvbmx5AWkBC2J1eUFydGVmYWN0AAMJAGYCCAUJbGFzdEJsb2NrCXRpbWVzdGFtcACAzI3C3C8JAAIBAiFUaGVyZSBhcmUgbm8gYWN0aXZlIHNhbGVzIG5vdy4uLiADCQBmAgkBDXRyeUdldEludGVnZXIBAg1nbG9iYWxfbG9ja2VkAAAJAAIBAh5jb250cmFjdCBpcyB0ZW1wb3JhcmlseSBsb2NrZWQDCQBnAgkBDXRyeUdldEludGVnZXIBAhBnbG9iYWxfYXJ0QW1vdW50BQ5hcnRlZmFjdHNMaW1pdAkAAgECElNPTERPVVQhISEgSHVycmF5IQMDCQBmAgCA/u+A3C8IBQlsYXN0QmxvY2sJdGltZXN0YW1wCQECIT0CCAUBaQZjYWxsZXIJAQdBZGRyZXNzAQUKZGV2QWRkcmVzcwcJAAIBAgxUb28gZWFybHkuLi4EDGZpcnN0UGF5bWVudAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAAAwkBAiE9AggFDGZpcnN0UGF5bWVudAdhc3NldElkCQENZ2V0RWdnQXNzZXRJZAAJAAIBCQCsAgICPFlvdSBjYW4gYXR0YWNoIG9ubHkgRUdHIHRva2VucyB3aXRoIHRoZSBmb2xsb3dpbmcgYXNzZXQgaWQ6IAkA2AQBCQENZ2V0RWdnQXNzZXRJZAADCQBmAgUKZWdnc05lZWRlZAgFDGZpcnN0UGF5bWVudAZhbW91bnQJAAIBCQCsAgICRFRvIGhhdGNoIGEgZHVjayB5b3UgY3VycmVudGx5IG5lZWQgdGhlIGZvbGxvd2luZyBhbW91bnQgb2YgRUdHbGV0czogCQCkAwEFCmVnZ3NOZWVkZWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkApQgBCAUBaQZjYWxsZXICAV8JANgEAQgFAWkNdHJhbnNhY3Rpb25JZAIHX3N0YXR1cwIHc3RhcnRlZAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgIJAKwCAgkApQgBCAUBaQZjYWxsZXICAV8JANgEAQgFAWkNdHJhbnNhY3Rpb25JZAINX2ZpbmlzaEhlaWdodAkAZAIFBmhlaWdodAACCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhBnbG9iYWxfYXJ0QW1vdW50CQBkAgkBDXRyeUdldEludGVnZXIBAhBnbG9iYWxfYXJ0QW1vdW50AAEFA25pbAFpAQ5hZGRJdGVtVG9TdG9yZQgFcHJpY2UEaXRlbQhtYXhTYWxlcwRzYWxlCXByaWNlc3NldBBncm93dGhQZXJjZW50YWdlB3N0YXJ0VHMFZW5kVHMDCQECIT0CCAUBaQZjYWxsZXIJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARR0cnlHZXRTdHJpbmdFeHRlcm5hbAIJAQlnZXRPcmFjbGUACQEWc3RhdGljS2V5X3BpcGVsaW5lVXNlcgAJAAIBAh5JQUlUUzogT25seSBmb3IgdHJ1c3RlZCB1c2VycyEJAMwIAgkBDEludGVnZXJFbnRyeQIJARFrZXlfcHJpY2VDb3NtZXRpYwEFBGl0ZW0FBXByaWNlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEUa2V5X21heFNhbGVzQ29zbWV0aWMBBQRpdGVtBQhtYXhTYWxlcwkAzAgCCQEMQm9vbGVhbkVudHJ5AgkBEGtleV9zYWxlQ29zbWV0aWMBBQRpdGVtBQRzYWxlCQDMCAIJAQtTdHJpbmdFbnRyeQIJARZrZXlfcHJpY2VBc3NldENvc21ldGljAQUEaXRlbQUJcHJpY2Vzc2V0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEaa2V5X2dyb3dQZXJjZW50YWdlQ29zbWV0aWMBBQRpdGVtBRBncm93dGhQZXJjZW50YWdlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQETa2V5X3N0YXJ0VHNDb3NtZXRpYwEFBGl0ZW0FB3N0YXJ0VHMJAMwIAgkBDEludGVnZXJFbnRyeQIJARFrZXlfZW5kVHNDb3NtZXRpYwEFBGl0ZW0FBWVuZFRzBQNuaWwBaQESc2V0R2xvYmFsQXJ0QW1vdW50AQluZXdBbW91bnQDAwkAAAIIBQFpBmNhbGxlcgUEdGhpcwYJAAACCAUBaQZjYWxsZXIJAQdBZGRyZXNzAQUKZGV2QWRkcmVzcwkAzAgCCQEMSW50ZWdlckVudHJ5AgIQZ2xvYmFsX2FydEFtb3VudAUJbmV3QW1vdW50BQNuaWwJAAIBAhFQZXJtaXNzaW9uIGRlbmllZAFpAQ1jbGFpbUFydGVmYWN0AQhib3hJZFN0cgQEdHhJZAkA2QQBBQhib3hJZFN0cgQJc3RhdHVzS2V5CQCsAgIJAKwCAgkArAICCQClCAEIBQFpBmNhbGxlcgIBXwUIYm94SWRTdHICB19zdGF0dXMECWhlaWdodEtleQkArAICCQCsAgIJAKwCAgkApQgBCAUBaQZjYWxsZXICAV8FCGJveElkU3RyAg1fZmluaXNoSGVpZ2h0AwkBAiE9AgkBEUBleHRyTmF0aXZlKDEwNTgpAQUJc3RhdHVzS2V5AgdzdGFydGVkCQACAQIPY2xhaW1lZCBhbHJlYWR5AwkAZgIJARFAZXh0ck5hdGl2ZSgxMDU1KQEFCWhlaWdodEtleQUGaGVpZ2h0CQACAQIUeW91IGNhbm5vdCBjbGFpbSB5ZXQEB2FydFR5cGUJARFnZXRSYW5kb21BcnRlZmFjdAIFBHR4SWQJARFAZXh0ck5hdGl2ZSgxMDU1KQEFCWhlaWdodEtleQQFYXNzZXQJAMMIBwUHYXJ0VHlwZQIiQXJ0ZWZhY3Qgb2YgV2F2ZXMgRHVja3MgbWV0YXZlcnNlLgABAAAHBQR1bml0CQERQGV4dHJOYXRpdmUoMTA1NSkBBQloZWlnaHRLZXkEB2Fzc2V0SWQJALgIAQUFYXNzZXQJAMwIAgkBC1N0cmluZ0VudHJ5AgUJc3RhdHVzS2V5BQdhcnRUeXBlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKUIAQgFAWkGY2FsbGVyAgFfBQhib3hJZFN0cgILX2FydGVmYWN0SWQJANgEAQUHYXNzZXRJZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJANgEAQUHYXNzZXRJZAIFX3R5cGUFB2FydFR5cGUJAMwIAgUFYXNzZXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyAAEFB2Fzc2V0SWQFA25pbAECdHgBBnZlcmlmeQADCQEJaXNUZXN0RW52AAkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAgFAnR4D3NlbmRlclB1YmxpY0tleQQJZmlyc3RVc2VyASDe1sZR5FMW0GWA6wGaKgvQ95dR+hx2kX6bjgZDdxe9JQQKc2Vjb25kVXNlcgEgwWzfju3TjXOPi6L5+okP9HXNRBtUclKjtJzSVqQt4HUECXRoaXJkVXNlcgEg51v0jqrS+UmeboQmuPl+H9xnqH3cK7jU6nvN8mgKwSUED2ZpcnN0VXNlclNpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFCWZpcnN0VXNlcgABAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAQUJZmlyc3RVc2VyAAEDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwACBQlmaXJzdFVzZXIAAQAABBBzZWNvbmRVc2VyU2lnbmVkAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAUKc2Vjb25kVXNlcgABAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAQUKc2Vjb25kVXNlcgABAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAgUKc2Vjb25kVXNlcgABAAAED3RoaXJkVXNlclNpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFCXRoaXJkVXNlcgABAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAQUJdGhpcmRVc2VyAAEDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwACBQl0aGlyZFVzZXIAAQAABA9zaWduYXR1cmVzQ291bnQJAGQCCQBkAgUPZmlyc3RVc2VyU2lnbmVkBRBzZWNvbmRVc2VyU2lnbmVkBQ90aGlyZFVzZXJTaWduZWQEByRtYXRjaDAFAnR4CQBnAgUPc2lnbmF0dXJlc0NvdW50AALYDMK7", "height": 3585740, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: HvnDBPr2Uz7iotQjRea6oMgUxLfwQXVcF754iKwGrGFH Next: 22zSspxeakqQtQ5c55XZ4YD7o2eWWWoHRy13hArkWJ9x Diff:
OldNewDifferences
231231 else {
232232 let aD = if ((M(t(av)) == ""))
233233 then ad()
234- else fromBase58String(M(t(av)))
234+ else if ((M(t(av)) == "WAVES"))
235+ then unit
236+ else fromBase58String(M(t(av)))
235237 let aE = 0
236238 let aF = (aC - aE)
237239 let aG = if ((aF != 0))
239241 let aH = value(au.payments[0])
240242 let aI = aH.amount
241243 if ((aH.assetId != aD))
242- then throw(("IDBI: You can attach only tokens with the following asset id: " + toBase58String(aD)))
244+ then throw("IDBI: You can attach only tokens with the correct payment ")
243245 else if ((aI != aF))
244246 then throw(("IDBI: Please attach the exact asset amount" + toString(aC)))
245247 else aF
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func a () = "static_oracleAddress"
55
66
77 func b () = "static_breederAddress"
88
99
1010 func c () = "static_eggAssetId"
1111
1212
1313 func d () = "static_trustedContracts"
1414
1515
1616 func e () = "static_rebirthAddress"
1717
1818
1919 func f () = "static_pipelineUser"
2020
2121
2222 func g (h,i) = (((h + "_") + i) + "_owner")
2323
2424
2525 func j (h,k) = (((h + "_") + k) + "_unstake_height")
2626
2727
2828 func l (m) = (m + "_duck_external_boost")
2929
3030
3131 func n (o) = (o + "_user_external_boost")
3232
3333
3434 func p (q) = ("direct_cosmetic_" + q)
3535
3636
3737 func r (q) = (("direct_cosmetic_" + q) + "_max_sales")
3838
3939
4040 func s (q) = (("direct_cosmetic_" + q) + "_sale")
4141
4242
4343 func t (q) = (("direct_cosmetic_" + q) + "_priceAsset")
4444
4545
4646 func u (q) = (("direct_cosmetic_" + q) + "_growing_percentage")
4747
4848
4949 func v (q) = (("direct_cosmetic_" + q) + "_sold")
5050
5151
5252 func w (q) = (("direct_cosmetic_" + q) + "_last_price")
5353
5454
5555 func x (q) = (("direct_cosmetic_" + q) + "_startTs")
5656
5757
5858 func y (q) = (("direct_cosmetic_" + q) + "_endTs")
5959
6060
6161 func z (o,A) = (((o + "_") + toBase58String(A)) + "_fh")
6262
6363
6464 let B = base58'3P44yqcpfhPF2iC1nptm2ZJCTaN7VYhz9og'
6565
6666 let C = (3 * 100000000)
6767
6868 let D = (301 + 600)
6969
7070 let E = ["A", "B", "C", "D", "E", "F"]
7171
7272 let F = ["ART-LAKE", "ART-HOUSE", "ART-BIGHOUSE", "ART-FIXGENE", "ART-FREEGENE", "ART-MIRROR", "ART-POMP", "ART-CAPE", "ART-HAT", "ART-CUSTOMDUCK"]
7373
7474 let G = ["ART-XMISTL", "ART-XHAT", "ART-XSCARF", "ART-XSWEATER", "ART-XSOCK", "ART-XTREE"]
7575
7676 let H = (G ++ F)
7777
7878 func I (J) = {
7979 let K = getBoolean(this, J)
8080 if ($isInstanceOf(K, "Boolean"))
8181 then {
8282 let L = K
8383 L
8484 }
8585 else false
8686 }
8787
8888
8989 func M (J) = {
9090 let K = getString(this, J)
9191 if ($isInstanceOf(K, "String"))
9292 then {
9393 let N = K
9494 N
9595 }
9696 else ""
9797 }
9898
9999
100100 func O (J) = {
101101 let K = getInteger(this, J)
102102 if ($isInstanceOf(K, "Int"))
103103 then {
104104 let N = K
105105 N
106106 }
107107 else 0
108108 }
109109
110110
111111 func P (Q,A,R,S) = {
112112 let T = value(blockInfoByHeight((R - 1)))
113113 let U = sha256(((base58'items' + A) + value(T.vrf)))
114114 (toInt(U, S) % Q)
115115 }
116116
117117
118118 func V (W,X) = {
119119 let Y = P(6, W, X, 1)
120120 G[Y]
121121 }
122122
123123
124124 func Z (A,X) = {
125125 let Y = P(6, A, X, 2)
126126 E[Y]
127127 }
128128
129129
130130 func aa (o,J) = {
131131 let K = getString(o, J)
132132 if ($isInstanceOf(K, "String"))
133133 then {
134134 let N = K
135135 N
136136 }
137137 else ""
138138 }
139139
140140
141141 func ab () = Address(fromBase58String(M(a())))
142142
143143
144144 func ac () = Address(fromBase58String(aa(ab(), b())))
145145
146146
147147 func ad () = fromBase58String(aa(ab(), c()))
148148
149149
150150 func ae () = aa(ab(), d())
151151
152152
153153 func af () = Address(fromBase58String(aa(ab(), e())))
154154
155155
156156 func ag (q) = {
157157 let J = p(q)
158158 let K = getInteger(this, J)
159159 if ($isInstanceOf(K, "Int"))
160160 then {
161161 let N = K
162162 N
163163 }
164164 else throw("ITGCIP: This item is not available in the store!")
165165 }
166166
167167
168168 func ah (ai) = {
169169 let K = ai
170170 if ($isInstanceOf(K, "String"))
171171 then {
172172 let aj = K
173173 aj
174174 }
175175 else throw("wrong type, expected: String")
176176 }
177177
178178
179179 func ak (ai) = {
180180 let K = ai
181181 if ($isInstanceOf(K, "Int"))
182182 then {
183183 let al = K
184184 al
185185 }
186186 else throw("wrong type, expected: Int")
187187 }
188188
189189
190190 func am (an,ao,ap) = ((take(an, (ao - 1)) + ap) + takeRight(an, (16 - ao)))
191191
192192
193193 func aq (h,k) = {
194194 let ar = O(j(h, k))
195195 let as = 240
196196 if ((height > (ar + as)))
197197 then false
198198 else true
199199 }
200200
201201
202202 func at () = I("TESTENV")
203203
204204
205205 @Callable(au)
206206 func directBuyItem (av) = {
207207 let aw = ag(av)
208208 let ax = O(u(av))
209209 let ay = O(x(av))
210210 let az = O(y(av))
211211 if (if ((ay != 0))
212212 then (ay > lastBlock.timestamp)
213213 else false)
214214 then throw("IDBI: The sale did not start yet!")
215215 else if (if ((az != 0))
216216 then (lastBlock.timestamp > az)
217217 else false)
218218 then throw("IDBI: The sale has already finished!")
219219 else if (!(I(s(av))))
220220 then throw(("IDBI: Item not for sale anymore" + s(av)))
221221 else {
222222 let aA = O(r(av))
223223 let aB = O(v(av))
224224 let aC = if ((ax == 0))
225225 then aw
226226 else (aw + ((aw / 100) * (aB * ax)))
227227 if (if ((aA != 0))
228228 then (aB >= aA)
229229 else false)
230230 then throw("IDBI: Max editions sold!")
231231 else {
232232 let aD = if ((M(t(av)) == ""))
233233 then ad()
234- else fromBase58String(M(t(av)))
234+ else if ((M(t(av)) == "WAVES"))
235+ then unit
236+ else fromBase58String(M(t(av)))
235237 let aE = 0
236238 let aF = (aC - aE)
237239 let aG = if ((aF != 0))
238240 then {
239241 let aH = value(au.payments[0])
240242 let aI = aH.amount
241243 if ((aH.assetId != aD))
242- then throw(("IDBI: You can attach only tokens with the following asset id: " + toBase58String(aD)))
244+ then throw("IDBI: You can attach only tokens with the correct payment ")
243245 else if ((aI != aF))
244246 then throw(("IDBI: Please attach the exact asset amount" + toString(aC)))
245247 else aF
246248 }
247249 else 0
248250 if ((aG == aG))
249251 then {
250252 let aJ = toBase58String(au.transactionId)
251253 let o = au.originCaller
252254 let aK = Issue(av, ("NFT artefact of Waves Ducks game: " + av), 1, 0, false, unit, 0)
253255 let k = calculateAssetId(aK)
254256 $Tuple2([aK, StringEntry((("artefact_" + toBase58String(k)) + "_type"), av), IntegerEntry(w(av), aC), IntegerEntry(v(av), (aB + 1)), ScriptTransfer(o, 1, k)], toBase58String(k))
255257 }
256258 else throw("Strict value is not equal to itself.")
257259 }
258260 }
259261 }
260262
261263
262264
263265 @Callable(au)
264266 func manipulateBoost (aL,m) = {
265267 let aM = ae()
266268 let aN = split(aM, ";")
267269 let aO = toString(au.caller)
268270 if ((indexOf(aN, aO) == unit))
269271 then throw("IMB: This smart contract can't manipulate the boost!")
270272 else {
271273 let J = l(m)
272274 let aP = O(J)
273275 let aQ = (aP + aL)
274276 if ((0 > aQ))
275277 then throw("IMB: Something went wrong with boost, please contact the admins!")
276278 else [IntegerEntry(J, aQ)]
277279 }
278280 }
279281
280282
281283
282284 @Callable(au)
283285 func manipulateBoostAccount (aL,o) = {
284286 let aM = ae()
285287 let aN = split(aM, ";")
286288 let aO = toString(au.caller)
287289 if ((indexOf(aN, aO) == unit))
288290 then throw("IMBA: This smart contract can't manipulate the boost!")
289291 else {
290292 let J = n(o)
291293 let aP = O(J)
292294 let aQ = (aP + aL)
293295 if ((0 > aQ))
294296 then throw("IMBA: Something went wrong with boost, please contact the admins!")
295297 else [IntegerEntry(J, aQ)]
296298 }
297299 }
298300
299301
300302
301303 @Callable(au)
302304 func checkArtefactDetails (aD) = {
303305 let aR = value(assetInfo(fromBase58String(aD)))
304306 let an = value(aR.name)
305307 if (if (if (containsElement(H, an))
306308 then true
307309 else isDefined(ag(an)))
308310 then (aR.issuer == this)
309311 else false)
310312 then $Tuple2(nil, an)
311313 else throw("Invalid artefact")
312314 }
313315
314316
315317
316318 @Callable(au)
317319 func configureOracle (aS) = if ((au.caller != this))
318320 then throw("admin only")
319321 else [StringEntry(a(), aS)]
320322
321323
322324
323325 @Callable(au)
324326 func calculateFarmingPowerBoost (m,o) = {
325327 let aT = O(l(m))
326328 let aU = O(n(o))
327329 let aV = (aT + aU)
328330 $Tuple2([IntegerEntry((m + "_last_boost"), aV)], aV)
329331 }
330332
331333
332334
333335 @Callable(au)
334336 func fixedGene (aJ,aW,aX) = {
335337 let aH = value(au.payments[0])
336338 let aY = toBase58String(value(aH.assetId))
337339 if ((aH.amount != 1))
338340 then throw("NFT is not attached")
339341 else {
340342 let aK = ah(invoke(this, "checkArtefactDetails", [aY], nil))
341343 if ((aK == aK))
342344 then if ((aK != "ART-FIXGENE"))
343345 then throw("You need to attach a ART-FIXGENE artefact")
344346 else {
345347 let A = fromBase58String(aJ)
346348 let aZ = z(toString(au.caller), A)
347349 let ba = getIntegerValue(ac(), aZ)
348350 let bb = ah(invoke(ac(), "generateDuck", [A, ba, aW, aX, "", 0], nil))
349351 if ((bb == bb))
350352 then {
351353 let bc = invoke(ac(), "finishDuckHatchingItems", [aJ, bb], nil)
352354 if ((bc == bc))
353355 then [Burn(value(aH.assetId), 1)]
354356 else throw("Strict value is not equal to itself.")
355357 }
356358 else throw("Strict value is not equal to itself.")
357359 }
358360 else throw("Strict value is not equal to itself.")
359361 }
360362 }
361363
362364
363365
364366 @Callable(au)
365367 func freeGene (aJ) = {
366368 let aH = value(au.payments[0])
367369 let aY = toBase58String(value(aH.assetId))
368370 if ((aH.amount != 1))
369371 then throw("NFT is not attached")
370372 else {
371373 let aK = ah(invoke(this, "checkArtefactDetails", [aY], nil))
372374 if ((aK == aK))
373375 then if ((aK != "ART-FREEGENE"))
374376 then throw("You need to attach a ART-FREEGENE artefact")
375377 else {
376378 let A = fromBase58String(aJ)
377379 let aZ = z(toString(au.caller), A)
378380 let ba = getIntegerValue(ac(), aZ)
379381 let bd = Z(A, ba)
380382 let be = P(7, A, ba, 3)
381383 let bb = ah(invoke(ac(), "generateDuck", [A, ba, 0, 0, bd, be], nil))
382384 if ((bb == bb))
383385 then {
384386 let bc = invoke(ac(), "finishDuckHatchingItems", [aJ, bb], nil)
385387 if ((bc == bc))
386388 then [Burn(value(aH.assetId), 1)]
387389 else throw("Strict value is not equal to itself.")
388390 }
389391 else throw("Strict value is not equal to itself.")
390392 }
391393 else throw("Strict value is not equal to itself.")
392394 }
393395 }
394396
395397
396398
397399 @Callable(au)
398400 func copyDuck () = {
399401 let aH = value(au.payments[0])
400402 let bf = value(au.payments[1])
401403 let aY = toBase58String(value(aH.assetId))
402404 let bg = ak(invoke(ac(), "validateAndGetChildren", [aY], nil))
403405 if ((bg == bg))
404406 then if (if ((aH.amount != 1))
405407 then true
406408 else (bf.amount != 1))
407409 then throw("NFT is not attached")
408410 else {
409411 let aK = ah(invoke(this, "checkArtefactDetails", [toBase58String(value(bf.assetId))], nil))
410412 if ((aK == aK))
411413 then if ((aK != "ART-MIRROR"))
412414 then throw("You need to attach a ART-MIRROR artefact")
413415 else {
414416 let bh = value(assetInfo(value(aH.assetId)))
415417 let bi = split(bh.name, "")
416418 if (if ((bi[14] == "G"))
417419 then true
418420 else (bi[14] == "J"))
419421 then throw("You can't mirror this duck")
420422 else {
421423 let bj = bh.name
422424 let bc = invoke(ac(), "createDuckSpecialGenes", [au.caller.bytes, bj, bg], nil)
423425 if ((bc == bc))
424426 then [ScriptTransfer(au.caller, 1, aH.assetId), Burn(value(bf.assetId), 1)]
425427 else throw("Strict value is not equal to itself.")
426428 }
427429 }
428430 else throw("Strict value is not equal to itself.")
429431 }
430432 else throw("Strict value is not equal to itself.")
431433 }
432434
433435
434436
435437 @Callable(au)
436438 func addArteFactToDuck () = {
437439 let aH = value(au.payments[0])
438440 let bf = value(au.payments[1])
439441 let aY = toBase58String(value(aH.assetId))
440442 if (if ((aH.amount != 1))
441443 then true
442444 else (bf.amount != 1))
443445 then throw("NFT is not attached")
444446 else {
445447 let bg = ak(invoke(ac(), "validateAndGetChildren", [aY], nil))
446448 if ((bg == bg))
447449 then if ((bg == 0))
448450 then throw("You can only pick a sterile NFT-duck")
449451 else {
450452 let aK = ah(invoke(this, "checkArtefactDetails", [toBase58String(value(bf.assetId))], nil))
451453 if ((aK == aK))
452454 then if (if ((aK != "ART-XHAT"))
453455 then (aK != "ART-POMP")
454456 else false)
455457 then throw("You need to attach a ART-XHAT or ART-POMP artefact")
456458 else {
457459 let bh = value(assetInfo(value(aH.assetId)))
458460 let bi = split(bh.name, "")
459461 if (if ((bi[14] == "G"))
460462 then true
461463 else (bi[14] == "J"))
462464 then throw("You can't mirror this duck")
463465 else if (if ((bi[5] == "S"))
464466 then true
465467 else (bi[5] == "T"))
466468 then throw("you already attached a artefact")
467469 else {
468470 let ap = if ((aK == "ART-XHAT"))
469471 then "T"
470472 else if ((aK == "ART-POMP"))
471473 then "S"
472474 else throw("No char defined")
473475 let bk = bh.name
474476 let bl = ah(invoke(ac(), "getGenFromName", [bk], nil))
475477 if ((bl == bl))
476478 then {
477479 let bj = am(bk, 6, ap)
478480 let bc = invoke(ac(), "createDuckSpecialGenes", [au.caller.bytes, bj, bg], nil)
479481 if ((bc == bc))
480482 then {
481483 let bm = invoke(ac(), "reduceRarity", [aY, bl], nil)
482484 if ((bm == bm))
483485 then [Burn(value(aH.assetId), 1), Burn(value(bf.assetId), 1)]
484486 else throw("Strict value is not equal to itself.")
485487 }
486488 else throw("Strict value is not equal to itself.")
487489 }
488490 else throw("Strict value is not equal to itself.")
489491 }
490492 }
491493 else throw("Strict value is not equal to itself.")
492494 }
493495 else throw("Strict value is not equal to itself.")
494496 }
495497 }
496498
497499
498500
499501 @Callable(au)
500502 func preInit () = [IntegerEntry("static_ART-LAKE_farmingSlots", 200), IntegerEntry("static_ART-LAKE_farmingBoost", 2), IntegerEntry("static_ART-HOUSE_farmingSlots", 4), IntegerEntry("static_ART-HOUSE_farmingBoost", 30), IntegerEntry("static_ART-BIGHOUSE_farmingSlots", 10), IntegerEntry("static_ART-BIGHOUSE_farmingBoost", 15)]
501503
502504
503505
504506 @Callable(au)
505507 func issueArtefact (bn,bo) = if (if ((au.caller != this))
506508 then (au.caller != af())
507509 else false)
508510 then throw("admin only")
509511 else {
510512 let aJ = toBase58String(au.transactionId)
511513 let o = Address(fromBase58String(bo))
512514 let aK = Issue(bn, "NFT artefact of Waves Ducks game. Drop #2.", 1, 0, false, unit, 0)
513515 let k = calculateAssetId(aK)
514516 $Tuple2([aK, StringEntry((("artefact_" + toBase58String(k)) + "_type"), bn), ScriptTransfer(o, 1, k)], toBase58String(k))
515517 }
516518
517519
518520
519521 @Callable(au)
520522 func setLock (bp) = if ((au.caller == this))
521523 then [IntegerEntry("global_locked", bp)]
522524 else throw("admin only")
523525
524526
525527
526528 @Callable(au)
527529 func buyArtefact () = if ((lastBlock.timestamp > 1639742400000))
528530 then throw("There are no active sales now... ")
529531 else if ((O("global_locked") > 0))
530532 then throw("contract is temporarily locked")
531533 else if ((O("global_artAmount") >= D))
532534 then throw("SOLDOUT!!! Hurray!")
533535 else if (if ((1639605600000 > lastBlock.timestamp))
534536 then (au.caller != Address(B))
535537 else false)
536538 then throw("Too early...")
537539 else {
538540 let aH = value(au.payments[0])
539541 if ((aH.assetId != ad()))
540542 then throw(("You can attach only EGG tokens with the following asset id: " + toBase58String(ad())))
541543 else if ((C > aH.amount))
542544 then throw(("To hatch a duck you currently need the following amount of EGGlets: " + toString(C)))
543545 else [StringEntry((((toString(au.caller) + "_") + toBase58String(au.transactionId)) + "_status"), "started"), IntegerEntry((((toString(au.caller) + "_") + toBase58String(au.transactionId)) + "_finishHeight"), (height + 2)), IntegerEntry("global_artAmount", (O("global_artAmount") + 1))]
544546 }
545547
546548
547549
548550 @Callable(au)
549551 func addItemToStore (aC,q,bq,br,bs,bt,ay,az) = if ((au.caller != addressFromStringValue(aa(ab(), f()))))
550552 then throw("IAITS: Only for trusted users!")
551553 else [IntegerEntry(p(q), aC), IntegerEntry(r(q), bq), BooleanEntry(s(q), br), StringEntry(t(q), bs), IntegerEntry(u(q), bt), IntegerEntry(x(q), ay), IntegerEntry(y(q), az)]
552554
553555
554556
555557 @Callable(au)
556558 func setGlobalArtAmount (bu) = if (if ((au.caller == this))
557559 then true
558560 else (au.caller == Address(B)))
559561 then [IntegerEntry("global_artAmount", bu)]
560562 else throw("Permission denied")
561563
562564
563565
564566 @Callable(au)
565567 func claimArtefact (bv) = {
566568 let A = fromBase58String(bv)
567569 let bw = (((toString(au.caller) + "_") + bv) + "_status")
568570 let bx = (((toString(au.caller) + "_") + bv) + "_finishHeight")
569571 if ((getStringValue(bw) != "started"))
570572 then throw("claimed already")
571573 else if ((getIntegerValue(bx) > height))
572574 then throw("you cannot claim yet")
573575 else {
574576 let by = V(A, getIntegerValue(bx))
575577 let aR = Issue(by, "Artefact of Waves Ducks metaverse.", 1, 0, false, unit, getIntegerValue(bx))
576578 let aD = calculateAssetId(aR)
577579 [StringEntry(bw, by), StringEntry((((toString(au.caller) + "_") + bv) + "_artefactId"), toBase58String(aD)), StringEntry((toBase58String(aD) + "_type"), by), aR, ScriptTransfer(au.caller, 1, aD)]
578580 }
579581 }
580582
581583
582584 @Verifier(bz)
583585 func bA () = if (at())
584586 then sigVerify(bz.bodyBytes, bz.proofs[0], bz.senderPublicKey)
585587 else {
586588 let bB = base58'FzsTVRXqD46KW5yj6qGNVrsouvWjpCQvD1446A96iGt4'
587589 let bC = base58'E23yUg8eun5nXB1nZRDf7RTyRADKxQhGNXdpTYonEvtU'
588590 let bD = base58'Ga8WEBTPXbHuoXRD355mQ6ms8PsM2RFYKeA1mEP32CFe'
589591 let bE = if (sigVerify(bz.bodyBytes, bz.proofs[0], bB))
590592 then 1
591593 else if (sigVerify(bz.bodyBytes, bz.proofs[1], bB))
592594 then 1
593595 else if (sigVerify(bz.bodyBytes, bz.proofs[2], bB))
594596 then 1
595597 else 0
596598 let bF = if (sigVerify(bz.bodyBytes, bz.proofs[0], bC))
597599 then 1
598600 else if (sigVerify(bz.bodyBytes, bz.proofs[1], bC))
599601 then 1
600602 else if (sigVerify(bz.bodyBytes, bz.proofs[2], bC))
601603 then 1
602604 else 0
603605 let bG = if (sigVerify(bz.bodyBytes, bz.proofs[0], bD))
604606 then 1
605607 else if (sigVerify(bz.bodyBytes, bz.proofs[1], bD))
606608 then 1
607609 else if (sigVerify(bz.bodyBytes, bz.proofs[2], bD))
608610 then 1
609611 else 0
610612 let bH = ((bE + bF) + bG)
611613 let K = bz
612614 (bH >= 2)
613615 }
614616

github/deemru/w8io/6500d08 
163.19 ms