tx · 5wRBKyY1Uxxc9KfANiPLKheJzVDWTJQ1vDLH4JJ6H6jL

3N13FbTEbf75JgCvA4xLHJaf17eieVshJpY:  -0.03500000 Waves

2023.08.23 09:28 [2722910] smart account 3N13FbTEbf75JgCvA4xLHJaf17eieVshJpY > SELF 0.00000000 Waves

{ "type": 13, "id": "5wRBKyY1Uxxc9KfANiPLKheJzVDWTJQ1vDLH4JJ6H6jL", "fee": 3500000, "feeAssetId": null, "timestamp": 1692772094001, "version": 2, "chainId": 84, "sender": "3N13FbTEbf75JgCvA4xLHJaf17eieVshJpY", "senderPublicKey": "GDDsczxCkweNBUuptUZa7snEYfdGLGqHFWneG2sCMM3M", "proofs": [ "54au1KdbQzeKbd8xLLpeBmkvAi2ri7xA3ZFUDJK9rx3XXYC38t3TnVMrUEEGVnBn6jFEAz9n19cohUjvRK19ces2" ], "script": "base64:BgJwCAISAwoBCBIMCgoICAgICAEICAgIEgQKAggIEgYKBAgICAgSAwoBCBIHCgUICAgBCBIHCgUICAgIAhIJCgcICAgICAgIEgMKAQgSAwoBCBIDCgEIEgQKAggIEgMKARgSAwoBGBIECgIBARIECgIBAQsACXNlcGFyYXRvcgIBXwAEa0J1eQIDYnV5AAZrUHJpY2UCBXByaWNlAAVrU2VsbAIEc2VsbAASbWF4QXVjdGlvbkR1cmF0aW9uAB4ABUFTSU1JASDJ87corWdBF00yBjV0LGSEbO+I4qSbJ8cU6qkf0I2fVAAFV0FWRVMBAAAEa0JpZAIDYmlkAAxzdGF0dXNGb3JORlQJAJYKBAIET1BFTgIGQ0xPU0VEAghSRVdBUkRFRAIIQ0FOQ0VMRUQAC2RBcHBBZGRyZXNzARoBVzXtBlr3uj2oYW9Pw9uSOoG7sLN1iS0fPgEFaXNOZnQBB2Fzc2V0SWQEByRtYXRjaDAJAOwHAQUHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgVBc3NldAQFdG9rZW4FByRtYXRjaDADAwkAAAIIBQV0b2tlbghkZWNpbWFscwAACQAAAggFBXRva2VuCHF1YW50aXR5AAEHCQAAAggFBXRva2VuCnJlaXNzdWFibGUHBwcQAWkBCXNldFBhdXNlZAEGcGF1c2VkBAZjYWxsZXIICAUBaQZjYWxsZXIFYnl0ZXMJAMwIAgkBC1N0cmluZ0VudHJ5AgIGcGF1c2VkBQZwYXVzZWQFA25pbAFpAQljcmVhdGVOZnQKCG5mdF9uYW1lCW5mdF9vd25lcg9uZnRfZEFwcEFkZHJlc3MIbmZ0X3R5cGUIbmZ0X3RhZ3MRbmZ0X3NlbGxpbmdfcHJpY2UScm95YWxpdHlQZXJjZW50YWdlD25mdF9kZXNjcmlwdGlvbgpuZnRfb25TZWxsCG5mdF9kYXRhBAhuZXdUb2tlbgkAwggFBQhuZnRfbmFtZQUPbmZ0X2Rlc2NyaXB0aW9uAAEAAAcEB2lzc3VlSWQJALgIAQUIbmV3VG9rZW4EBHR4SWQIBQFpDXRyYW5zYWN0aW9uSWQEBXBhdXNlCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzAgZwYXVzZWQDCQAAAgUFcGF1c2UCBWZhbHNlCQACAQI0TWludGluZyBpcyBwYXVzZWQgYnkgYWRtaW4hUGxlYXNlIHRyeSBhZnRlciBzb21ldGltZQkAzAgCBQhuZXdUb2tlbgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIAAQUHaXNzdWVJZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkA2AQBBQdpc3N1ZUlkBQlzZXBhcmF0b3ICBU93bmVyCQClCAEIBQFpBmNhbGxlcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkA2AQBBQdpc3N1ZUlkBQlzZXBhcmF0b3ICCG5mdF90eXBlBQhuZnRfdHlwZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkA2AQBBQdpc3N1ZUlkBQlzZXBhcmF0b3ICCG5mdF90YWdzBQhuZnRfdGFncwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkA2AQBBQdpc3N1ZUlkBQlzZXBhcmF0b3ICD25mdF9kQXBwQWRkcmVzcwUPbmZ0X2RBcHBBZGRyZXNzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQDYBAEFBHR4SWQFCXNlcGFyYXRvcgIScm95YWxpdHlQZXJjZW50YWdlBRJyb3lhbGl0eVBlcmNlbnRhZ2UJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICCQDYBAEFB2lzc3VlSWQFCXNlcGFyYXRvcgIRbmZ0X3NlbGxpbmdfcHJpY2UFEW5mdF9zZWxsaW5nX3ByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQDYBAEFB2lzc3VlSWQFCXNlcGFyYXRvcgIKbmZ0X29uU2VsbAUKbmZ0X29uU2VsbAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkA2AQBBQdpc3N1ZUlkBQlzZXBhcmF0b3ICCG5mdF9kYXRhBQhuZnRfZGF0YQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkA2AQBBQR0eElkBQlzZXBhcmF0b3ICCWlzc3VlX25mdAkA2AQBBQdpc3N1ZUlkBQNuaWwBaQEHc2VsbE5GVAIFcHJpY2UQcGF5bWVudF9jdXJyZW5jeQQEdHhJZAgFAWkNdHJhbnNhY3Rpb25JZAQGc2VsbGVyCAgFAWkGY2FsbGVyBWJ5dGVzBAskdDAyMzEyMjM5NwkAlAoCCQEFdmFsdWUBCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BAZ0b2tlbjAIBQskdDAyMzEyMjM5NwJfMQQHYW1vdW50MAgFCyR0MDIzMTIyMzk3Al8yAwkBASEBCQEFaXNOZnQBBQZ0b2tlbjAJAAIBAhBUb2tlbiBpcyBub3QgTkZUCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICBQZrUHJpY2UFCXNlcGFyYXRvcgkA2AQBCQEFdmFsdWUBCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFBXByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQClCAEIBQFpBmNhbGxlcgUJc2VwYXJhdG9yBQVrU2VsbAkArAICCQCsAgIJAKwCAgkA2AQBBQZ0b2tlbjAFCXNlcGFyYXRvcgkApAMBBQdhbW91bnQwBRBwYXltZW50X2N1cnJlbmN5BQNuaWwBaQEGYnV5TkZUBAVuZnRJRBFjdXJyZW50X25mdF9vd25lcgdjcmVhdG9yEnJveWFsaXR5UGVyY2VudGFnZQQHYXNzZXRJZAkA2QQBBQVuZnRJRAQQY2hlY2tPd25lcklzU2FtZQQHJG1hdGNoMAkAnQgCBQR0aGlzCQCsAgIJAKwCAgIEbmZ0XwURY3VycmVudF9uZnRfb3duZXICBl9vd25lcgMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAFAWEHBAVwcmljZQkBEUBleHRyTmF0aXZlKDEwNTgpAQkArAICCQCsAgIJAKwCAgkArAICBQZrUHJpY2UFCXNlcGFyYXRvcgUFbmZ0SUQCAV8FEWN1cnJlbnRfbmZ0X293bmVyBAZhbW91bnQJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BAxzZWxsZXJBbW91bnQJAGUCBQZhbW91bnQJAGgCCQBpAgUGYW1vdW50AOgHABkEDHBsYXRmb3JtX2ZlZQkAZQIFBmFtb3VudAUMc2VsbGVyQW1vdW50BBNyb3lhbGl0eVBlcmNlbnRhZ2UxBRJyb3lhbGl0eVBlcmNlbnRhZ2UEDnJveWFsaXR5QW1vdW50CQBpAgkAaAIFBmFtb3VudAkBDXBhcnNlSW50VmFsdWUBBRNyb3lhbGl0eVBlcmNlbnRhZ2UxAGQECnNlbGxlckNvc3QJAGUCBQZhbW91bnQJAGQCBQ5yb3lhbGl0eUFtb3VudAUMcGxhdGZvcm1fZmVlAwkAAAIFEWN1cnJlbnRfbmZ0X293bmVyCQClCAEIBQFpBmNhbGxlcgkAAgECKWN1cnJlbnQgT3duZXIgb2YgTkZUIG5vdCBhYmxlIHRvIHB1cmNoYXNlAwMJAAACCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFBUFTSU1JCQECIT0CBQdjcmVhdG9yBRFjdXJyZW50X25mdF9vd25lcgcJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyAAEFB2Fzc2V0SWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFEWN1cnJlbnRfbmZ0X293bmVyBQpzZWxsZXJDb3N0BQVBU0lNSQkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQUHY3JlYXRvcgUOcm95YWxpdHlBbW91bnQFBUFTSU1JCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgIEbmZ0XwUFbmZ0SUQCDHBsYXRmb3JtX2ZlZQUMcGxhdGZvcm1fZmVlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQClCAEIBQFpBmNhbGxlcgUJc2VwYXJhdG9yBQRrQnV5CQCsAgIJAKwCAgUFbmZ0SUQFCXNlcGFyYXRvcgkApAMBBQZhbW91bnQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICCQCsAgICBG5mdF8FEWN1cnJlbnRfbmZ0X293bmVyAgZfb3duZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBG5mdF8FEWN1cnJlbnRfbmZ0X293bmVyAgZfb3duZXIJAKUIAQgFAWkGY2FsbGVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICBQVuZnRJRAUJc2VwYXJhdG9yAgZfb3duZXIJAKUIAQgFAWkGY2FsbGVyBQNuaWwDAwkAAAIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUFQVNJTUkJAAACBQdjcmVhdG9yBRFjdXJyZW50X25mdF9vd25lcgcJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyAAEFB2Fzc2V0SWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFEWN1cnJlbnRfbmZ0X293bmVyBQxzZWxsZXJBbW91bnQFBUFTSU1JCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgRuZnRfBQVuZnRJRAIMcGxhdGZvcm1fZmVlCQCkAwEFDHBsYXRmb3JtX2ZlZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkApQgBCAUBaQZjYWxsZXIFCXNlcGFyYXRvcgUEa0J1eQkArAICCQCsAgIFBW5mdElEBQlzZXBhcmF0b3IJAKQDAQUGYW1vdW50CQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgkArAICAgRuZnRfBRFjdXJyZW50X25mdF9vd25lcgIGX293bmVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgRuZnRfBRFjdXJyZW50X25mdF9vd25lcgIGX293bmVyCQClCAEIBQFpBmNhbGxlcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgUFbmZ0SUQFCXNlcGFyYXRvcgIGX293bmVyCQClCAEIBQFpBmNhbGxlcgUDbmlsAwMJAAACCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFBHVuaXQJAQIhPQIFB2NyZWF0b3IFEWN1cnJlbnRfbmZ0X293bmVyBwkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIAAQUHYXNzZXRJZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQURY3VycmVudF9uZnRfb3duZXIFCnNlbGxlckNvc3QFBHVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFB2NyZWF0b3IFDnJveWFsaXR5QW1vdW50BQR1bml0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgRuZnRfBQVuZnRJRAIMcGxhdGZvcm1fZmVlCQCkAwEFDHBsYXRmb3JtX2ZlZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkApQgBCAUBaQZjYWxsZXIFCXNlcGFyYXRvcgUEa0J1eQkArAICCQCsAgIFBW5mdElEBQlzZXBhcmF0b3IJAKQDAQUGYW1vdW50CQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgkArAICAgRuZnRfBRFjdXJyZW50X25mdF9vd25lcgIGX293bmVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgRuZnRfBRFjdXJyZW50X25mdF9vd25lcgIGX293bmVyCQClCAEIBQFpBmNhbGxlcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgUFbmZ0SUQFCXNlcGFyYXRvcgIGX293bmVyCQClCAEIBQFpBmNhbGxlcgUDbmlsAwMJAAACCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFBHVuaXQJAAACBQdjcmVhdG9yBRFjdXJyZW50X25mdF9vd25lcgcJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyAAEFB2Fzc2V0SWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFEWN1cnJlbnRfbmZ0X293bmVyBQxzZWxsZXJBbW91bnQFBHVuaXQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBG5mdF8FBW5mdElEAgxwbGF0Zm9ybV9mZWUJAKQDAQUMcGxhdGZvcm1fZmVlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQClCAEIBQFpBmNhbGxlcgUJc2VwYXJhdG9yBQRrQnV5CQCsAgIJAKwCAgUFbmZ0SUQFCXNlcGFyYXRvcgkApAMBBQZhbW91bnQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICCQCsAgICBG5mdF8FEWN1cnJlbnRfbmZ0X293bmVyAgZfb3duZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBG5mdF8FEWN1cnJlbnRfbmZ0X293bmVyAgZfb3duZXIJAKUIAQgFAWkGY2FsbGVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICBQVuZnRJRAUJc2VwYXJhdG9yAgZfb3duZXIJAKUIAQgFAWkGY2FsbGVyBQNuaWwFA25pbAFpAQpjYW5jZWxTZWxsAQVuZnRJZAQEdHhJZAkA2AQBCAUBaQ10cmFuc2FjdGlvbklkBAZzZWxsZXIICAUBaQZjYWxsZXIFYnl0ZXMJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIFBHR4SWQFBW5mdElkAgtfbmZ0X3N0YXR1cwIIQ0FOQ0VMRUQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBBQZzZWxsZXIAAQkA2QQBBQVuZnRJZAUDbmlsAWkBCmFkZEF1Y3Rpb24FBXN0YXJ0A2VuZApzdGFydFByaWNlCGR1cmF0aW9uEHBheW1lbnRfY3VycmVuY3kEBHR4SWQJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAQFbmZ0SWQJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAQFcHJpY2UJAQV2YWx1ZQEFCnN0YXJ0UHJpY2UECWVuZEhlaWdodAkAZAIIBQlsYXN0QmxvY2sGaGVpZ2h0BQhkdXJhdGlvbgQGY2FsbGVyCAgFAWkGY2FsbGVyBWJ5dGVzBBFjaGVja05mdEF1Y3Rpb25lZAQHJG1hdGNoMAkAnQgCBQR0aGlzCQCsAgIJAKwCAgkArAICCQDYBAEFBW5mdElkBQlzZXBhcmF0b3ICC25mdF9zdGF0dXNfCQDYBAEFBmNhbGxlcgMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAGBwMJAAACBRFjaGVja05mdEF1Y3Rpb25lZAYJAAIBAhdBbHJlYWR5IGluIGF1Y3Rpb24gbGlzdAMJAGYCBQhkdXJhdGlvbgUSbWF4QXVjdGlvbkR1cmF0aW9uCQACAQkArAICAjdEdXJhdGlvbiBpcyB0b28gbG9uZy4gTXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMzAgCQCkAwEFEm1heEF1Y3Rpb25EdXJhdGlvbgMJAAACCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFBHVuaXQJAAIBAhBORlQgbm90IGF0dGFjaGVkAwkAAAIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUFQVNJTUkJAAIBAhBORlQgbm90IGF0dGFjaGVkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICBQR0eElkAhZuZnRfc3RhcnRfYXVjdGlvbl9kYXRlCQDYBAEFBmNhbGxlcgUFc3RhcnQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIFBHR4SWQCFG5mdF9lbmRfYXVjdGlvbl9kYXRlCQDYBAEFBmNhbGxlcgUDZW5kCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIQX25mdF9zdGFydF9wcmljZQUKc3RhcnRQcmljZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCCl9uZnRfb3duZXIJAKUIAQgFAWkGY2FsbGVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIPX25mdF9vbl9hdWN0aW9uCQDYBAEFBW5mdElkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIQX3ByZXZpb3VzX2JpZGRlcgIEbm9uZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCDF9oaWdoZXN0X2JpZAIBMAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCDl93aW5uZXJfb2ZfbmZ0AgEwCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAINX2JpZGRlcl9jb3VudAIBMAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCC19uZnRfc3RhdHVzAgRPUEVOBQNuaWwBaQEIcGxhY2VCaWQFCWF1Y3Rpb25JZAVuZnRJZAluZnRfb3duZXIJYmlkX3ByaWNlEGN1cnJlbnRfY3VycmVuY3kEBHR4SWQJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAQGY2FsbGVyCAgFAWkGY2FsbGVyBWJ5dGVzBAdhc3NldElkCQDZBAEFBW5mdElkBAl0b2tlblR5cGUICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAQPY3VycmVudEJpZFByaWNlCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAQVZ2V0TGFzdFdpbm5lckJpZFByaWNlCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQCsAgIFCWF1Y3Rpb25JZAIMX2hpZ2hlc3RfYmlkBBhnZXRQcmV2aW91c0JpZGRlckFkZHJlc3MJAJ0IAgUEdGhpcwkArAICBQlhdWN0aW9uSWQCEF9wcmV2aW91c19iaWRkZXIED2N1cnJlbnRCaWRDb3VudAkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwkArAICBQlhdWN0aW9uSWQCDV9iaWRkZXJfY291bnQEFGdldExhc3RXaW5uZXJBZGRyZXNzCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQCsAgIFCWF1Y3Rpb25JZAIOX3dpbm5lcl9vZl9uZnQEEWNoZWNrTmZ0QXVjdGlvbmVkCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQCsAgIFCWF1Y3Rpb25JZAILX25mdF9zdGF0dXMDCQECIT0CBRFjaGVja05mdEF1Y3Rpb25lZAIET1BFTgkAAgECFE5vdCBvcGVuIGZvciBhdWN0aW9uAwkAZwIJAQ1wYXJzZUludFZhbHVlAQUVZ2V0TGFzdFdpbm5lckJpZFByaWNlBQ9jdXJyZW50QmlkUHJpY2UJAAIBAiVCaWQgaXMgbGVzcyB0aGVuIHN0YXJ0aW5nL2hpZ2hlc3QgQmlkAwkAAAIFFWdldExhc3RXaW5uZXJCaWRQcmljZQIBMAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFCWF1Y3Rpb25JZAIMX2hpZ2hlc3RfYmlkCQCkAwEFD2N1cnJlbnRCaWRQcmljZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFCWF1Y3Rpb25JZAIOX3dpbm5lcl9vZl9uZnQJANgEAQgIBQFpBmNhbGxlcgVieXRlcwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFCWF1Y3Rpb25JZAINX2JpZGRlcl9jb3VudAkApAMBCQBkAgkBDXBhcnNlSW50VmFsdWUBBQ9jdXJyZW50QmlkQ291bnQAAQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFCWF1Y3Rpb25JZAIHX25mdF9pZAkA2AQBBQdhc3NldElkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAgpfbmZ0X293bmVyBQluZnRfb3duZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgUEdHhJZAIBXwUJYXVjdGlvbklkAgxfaGlnaGVzdF9iaWQJAKQDAQUPY3VycmVudEJpZFByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIFBHR4SWQCAV8FCWF1Y3Rpb25JZAIHX3dpbm5lcgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIFBHR4SWQCAV8FCWF1Y3Rpb25JZAINX2JpZGRlcl9jb3VudAkApAMBCQBkAgkBDXBhcnNlSW50VmFsdWUBBQ9jdXJyZW50QmlkQ291bnQAAQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICBQR0eElkAgFfBQlhdWN0aW9uSWQCB19uZnRfaWQJANgEAQUHYXNzZXRJZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICBQR0eElkAgFfBQlhdWN0aW9uSWQCCl9uZnRfb3duZXIFCW5mdF9vd25lcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCD19iaWRfZm9yX25mdF9ieQkA2AQBBQZjYWxsZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQR0eElkAhBfYmlkX3ByaWNlX3BsYWNlBQliaWRfcHJpY2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQR0eElkAiZfcHJldmlvdXNfYmlkX2Ftb3VudF9yZWZ1bmRfdG9fYWRkcmVzcwUUZ2V0TGFzdFdpbm5lckFkZHJlc3MJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQR0eElkAhtfcHJldm9pdXNfYmlkX2Ftb3VudF9yZWZ1bmQFFWdldExhc3RXaW5uZXJCaWRQcmljZQUDbmlsAwkBAiE9AgUVZ2V0TGFzdFdpbm5lckJpZFByaWNlAgEwCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBRRnZXRMYXN0V2lubmVyQWRkcmVzcwkBDXBhcnNlSW50VmFsdWUBBRVnZXRMYXN0V2lubmVyQmlkUHJpY2UFCXRva2VuVHlwZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCJl9wcmV2aW91c19iaWRfYW1vdW50X3JlZnVuZF90b19hZGRyZXNzBRRnZXRMYXN0V2lubmVyQWRkcmVzcwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCG19wcmV2b2l1c19iaWRfYW1vdW50X3JlZnVuZAUVZ2V0TGFzdFdpbm5lckJpZFByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAg1fYmlkZGVyX2NvdW50CQCkAwEJAGQCCQENcGFyc2VJbnRWYWx1ZQEFD2N1cnJlbnRCaWRDb3VudAABCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAgxfaGlnaGVzdF9iaWQJAKQDAQUPY3VycmVudEJpZFByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAg5fd2lubmVyX29mX25mdAkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAgdfbmZ0X2lkCQDYBAEFB2Fzc2V0SWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCCl9uZnRfb3duZXIFCW5mdF9vd25lcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICBQR0eElkAgFfBQlhdWN0aW9uSWQCDF9oaWdoZXN0X2JpZAkApAMBBQ9jdXJyZW50QmlkUHJpY2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgUEdHhJZAIBXwUJYXVjdGlvbklkAgdfd2lubmVyCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgUEdHhJZAIBXwUJYXVjdGlvbklkAg1fYmlkZGVyX2NvdW50CQCkAwEJAGQCCQENcGFyc2VJbnRWYWx1ZQEFD2N1cnJlbnRCaWRDb3VudAABCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIFBHR4SWQCAV8FCWF1Y3Rpb25JZAIHX25mdF9pZAkA2AQBBQdhc3NldElkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIFBHR4SWQCAV8FCWF1Y3Rpb25JZAIKX25mdF9vd25lcgUJbmZ0X293bmVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIPX2JpZF9mb3JfbmZ0X2J5CQDYBAEFBmNhbGxlcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCEF9iaWRfcHJpY2VfcGxhY2UFCWJpZF9wcmljZQUDbmlsBQNuaWwBaQEOYWNjZXB0QmlkT2ZmZXIHCWF1Y3Rpb25JZAVuZnRJZBRiaWRfYW1vdW50X2Zyb21fdXNlchFjdXJyZW50X25mdF9vd25lcgdjcmVhdG9yEnJveWFsaXR5UGVyY2VudGFnZRBjdXJyZW50X2N1cnJlbmN5BAthc2ltaVN0cmluZwIsRWJMVlNyQWk2dlMzQWtMd0JpbnpaQ3ZBWFAyeVlpRkpFemoxTUJWSGN3WjUEBHR4SWQJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAQKYW1vdW50VW5pdAkA2QQBBRBjdXJyZW50X2N1cnJlbmN5BAZjYWxsZXIICAUBaQZjYWxsZXIFYnl0ZXMEB2Fzc2V0SWQJANkEAQUFbmZ0SWQEEmdldE5mdFdpbm5pbmdQcmljZQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwkArAICBQlhdWN0aW9uSWQCDF9oaWdoZXN0X2JpZAQTZ2V0TmZ0V2lubmluZ2Ftb3VudAkAaAIJAGkCCQENcGFyc2VJbnRWYWx1ZQEFEmdldE5mdFdpbm5pbmdQcmljZQDoBwDPBwQMcGxhdGZvcm1fZmVlCQBoAgkAaQIJAQ1wYXJzZUludFZhbHVlAQUSZ2V0TmZ0V2lubmluZ1ByaWNlAOgHABkEDnJveWFsaXR5QW1vdW50CQBpAgkAaAIJAQ1wYXJzZUludFZhbHVlAQUSZ2V0TmZ0V2lubmluZ1ByaWNlCQENcGFyc2VJbnRWYWx1ZQEFEnJveWFsaXR5UGVyY2VudGFnZQBkBA1hdWN0aW9uZXJDb3N0CQBlAgkBDXBhcnNlSW50VmFsdWUBBRJnZXROZnRXaW5uaW5nUHJpY2UJAGQCBQ5yb3lhbGl0eUFtb3VudAUMcGxhdGZvcm1fZmVlBBBnZXRBdWN0aW9uV2lubmVyCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQCsAgIFCWF1Y3Rpb25JZAIOX3dpbm5lcl9vZl9uZnQDAwkAAAIFEGN1cnJlbnRfY3VycmVuY3kFC2FzaW1pU3RyaW5nCQECIT0CBQdjcmVhdG9yBRFjdXJyZW50X25mdF9vd25lcgcJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBBQZjYWxsZXIFDWF1Y3Rpb25lckNvc3QFCmFtb3VudFVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFEGdldEF1Y3Rpb25XaW5uZXIAAQUHYXNzZXRJZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQUHY3JlYXRvcgUOcm95YWxpdHlBbW91bnQFCmFtb3VudFVuaXQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQR0eElkAhVfYW1vdW50X3BhaWRfdG9fb3duZXIFEmdldE5mdFdpbm5pbmdQcmljZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCEF9uZnRfdHJhbnNmZXJfdG8FEGdldEF1Y3Rpb25XaW5uZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQR0eElkAgtfbmZ0X3N0YXR1cwIIUkVXQVJERUQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCFV9hbW91bnRfcGFpZF90b19vd25lcgUSZ2V0TmZ0V2lubmluZ1ByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAhBfbmZ0X3RyYW5zZmVyX3RvBRBnZXRBdWN0aW9uV2lubmVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAgtfbmZ0X3N0YXR1cwIIUkVXQVJERUQFA25pbAMDCQAAAgUQY3VycmVudF9jdXJyZW5jeQULYXNpbWlTdHJpbmcJAAACBQdjcmVhdG9yBRFjdXJyZW50X25mdF9vd25lcgcJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBBQZjYWxsZXIFE2dldE5mdFdpbm5pbmdhbW91bnQFCmFtb3VudFVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFEGdldEF1Y3Rpb25XaW5uZXIAAQUHYXNzZXRJZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCFV9hbW91bnRfcGFpZF90b19vd25lcgUSZ2V0TmZ0V2lubmluZ1ByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIQX25mdF90cmFuc2Zlcl90bwUQZ2V0QXVjdGlvbldpbm5lcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCC19uZnRfc3RhdHVzAghSRVdBUkRFRAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFCWF1Y3Rpb25JZAIVX2Ftb3VudF9wYWlkX3RvX293bmVyBRJnZXROZnRXaW5uaW5nUHJpY2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCEF9uZnRfdHJhbnNmZXJfdG8FEGdldEF1Y3Rpb25XaW5uZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCC19uZnRfc3RhdHVzAghSRVdBUkRFRAUDbmlsAwMJAAACBRBjdXJyZW50X2N1cnJlbmN5AgVXQVZFUwkBAiE9AgUHY3JlYXRvcgURY3VycmVudF9uZnRfb3duZXIHCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQUGY2FsbGVyBQ1hdWN0aW9uZXJDb3N0BQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBRBnZXRBdWN0aW9uV2lubmVyAAEFB2Fzc2V0SWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFB2NyZWF0b3IFDnJveWFsaXR5QW1vdW50BQR1bml0CQDMCAIJAQtTdHJpbmdFbnRyeQICDHBsYXRmb3JtX2ZlZQkApAMBBQxwbGF0Zm9ybV9mZWUJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQR0eElkAhVfYW1vdW50X3BhaWRfdG9fb3duZXIFEmdldE5mdFdpbm5pbmdQcmljZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCEF9uZnRfdHJhbnNmZXJfdG8FEGdldEF1Y3Rpb25XaW5uZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQR0eElkAgtfbmZ0X3N0YXR1cwIIUkVXQVJERUQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCFV9hbW91bnRfcGFpZF90b19vd25lcgUSZ2V0TmZ0V2lubmluZ1ByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAhBfbmZ0X3RyYW5zZmVyX3RvBRBnZXRBdWN0aW9uV2lubmVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAgtfbmZ0X3N0YXR1cwIIUkVXQVJERUQFA25pbAMDCQAAAgUQY3VycmVudF9jdXJyZW5jeQIFV0FWRVMJAAACBQdjcmVhdG9yBRFjdXJyZW50X25mdF9vd25lcgcJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBBQZjYWxsZXIFE2dldE5mdFdpbm5pbmdhbW91bnQFBHVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFEGdldEF1Y3Rpb25XaW5uZXIAAQUHYXNzZXRJZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCFV9hbW91bnRfcGFpZF90b19vd25lcgUSZ2V0TmZ0V2lubmluZ1ByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIQX25mdF90cmFuc2Zlcl90bwUQZ2V0QXVjdGlvbldpbm5lcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCC19uZnRfc3RhdHVzAghSRVdBUkRFRAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFCWF1Y3Rpb25JZAIVX2Ftb3VudF9wYWlkX3RvX293bmVyBRJnZXROZnRXaW5uaW5nUHJpY2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCEF9uZnRfdHJhbnNmZXJfdG8FEGdldEF1Y3Rpb25XaW5uZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCC19uZnRfc3RhdHVzAghSRVdBUkRFRAUDbmlsBQNuaWwBaQENY2FuY2VsQXVjdGlvbgEJYXVjdGlvbklkBAR0eElkCQDYBAEIBQFpDXRyYW5zYWN0aW9uSWQEBmNhbGxlcggIBQFpBmNhbGxlcgVieXRlcwQNYXVjdGlvblN0YXR1cwkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwkArAICBQlhdWN0aW9uSWQCC19uZnRfc3RhdHVzBA1iaWRkaW5nV2lubmVyCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQCsAgIFCWF1Y3Rpb25JZAIOX3dpbm5lcl9vZl9uZnQECG5mdE93bmVyCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQCsAgIFCWF1Y3Rpb25JZAIKX25mdF9vd25lcgQFbmZ0SWQJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAKwCAgUJYXVjdGlvbklkAg9fbmZ0X29uX2F1Y3Rpb24EDGJpZGRpbmdQcmljZQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwkArAICBQlhdWN0aW9uSWQCDF9oaWdoZXN0X2JpZAMJAAACBQ1iaWRkaW5nV2lubmVyAgEwCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICBQR0eElkBQlhdWN0aW9uSWQCC19uZnRfc3RhdHVzAghDQU5DRUxFRAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQUIbmZ0T3duZXIAAQkA2QQBBQVuZnRJZAUDbmlsAwkBAiE9AgUNYmlkZGluZ1dpbm5lcgIBMAkAAgECRHNvcnJ5ISB5b3UgY2FuJ3QgY2FuY2VsIGl0IGJlY2F1c2UgYWxyZWFkeSBhdWN0aW9uIHBsYWNlZCBieSBzb21lb25lBQNuaWwBaQESbWFudWFsRnVuZFRyYW5zZmVyAQ1yZWNlcGllbnRBZGRyBAZzZW5kZXIICAUBaQZjYWxsZXIFYnl0ZXMEB3JlY2l2ZXIJANkEAQUNcmVjZXBpZW50QWRkcgQGYW1vdW50CAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAMJAAACCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFBHVuaXQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkA2AQBBQZzZW5kZXICCV90cmFuc2ZlcgUGYW1vdW50CQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkA2AQBBQZzZW5kZXICDF90cmFuc2Zlcl90bwUNcmVjZXBpZW50QWRkcgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEFB3JlY2l2ZXIFBmFtb3VudAUEdW5pdAUDbmlsAwkAAAIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUFQVNJTUkJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkA2AQBBQZzZW5kZXICCV90cmFuc2ZlcgUGYW1vdW50CQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkA2AQBBQZzZW5kZXICDF90cmFuc2Zlcl90bwUNcmVjZXBpZW50QWRkcgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEFB3JlY2l2ZXIFBmFtb3VudAUFQVNJTUkFA25pbAUDbmlsAWkBB25mdGJhY2sBCWF1Y3Rpb25JZAQGY2FsbGVyCAgFAWkGY2FsbGVyBWJ5dGVzBAVuZnRJZAkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwkArAICBQlhdWN0aW9uSWQCD19uZnRfb25fYXVjdGlvbgQIbmZ0T3duZXIJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAKwCAgUJYXVjdGlvbklkAgpfbmZ0X293bmVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAgtfbmZ0X3N0YXR1cwIRQXVjdGlvbl90aW1lIG92ZXIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFCG5mdE93bmVyAAEJANkEAQUFbmZ0SWQFA25pbAFpAQ13aXRoZHJhd01vbmV5AglhdWN0aW9uSWQQY3VycmVudF9jdXJyZW5jeQQGY2FsbGVyCAgFAWkGY2FsbGVyBWJ5dGVzBAthc2ltaVN0cmluZwIsRWJMVlNyQWk2dlMzQWtMd0JpbnpaQ3ZBWFAyeVlpRkpFemoxTUJWSGN3WjUEBHR4SWQJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAQKYW1vdW50VW5pdAkA2QQBBRBjdXJyZW50X2N1cnJlbmN5BAhiaWRQcmljZQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwkArAICBQlhdWN0aW9uSWQCDF9oaWdoZXN0X2JpZAQIYXNCaWRkZXIJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAKwCAgUJYXVjdGlvbklkAgdfd2lubmVyBAliaWRGb3JORlQJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAKwCAgUJYXVjdGlvbklkAgdfbmZ0X2lkAwkAAAIFEGN1cnJlbnRfY3VycmVuY3kFC2FzaW1pU3RyaW5nCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAghfbmZ0X2JpZAIIV0lUSERSQVcJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCB19uZnRfaWQFCWJpZEZvck5GVAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFCWF1Y3Rpb25JZAIcX2JpZGRpbmdfcHJpY2VfcmVmdW5kX2Ftb3VudAUIYmlkUHJpY2UJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyCQENcGFyc2VJbnRWYWx1ZQEFCGJpZFByaWNlBQphbW91bnRVbml0BQNuaWwDCQAAAgUQY3VycmVudF9jdXJyZW5jeQIFV0FWRVMJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCCF9uZnRfYmlkAghXSVRIRFJBVwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFCWF1Y3Rpb25JZAIHX25mdF9pZAUJYmlkRm9yTkZUCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAhxfYmlkZGluZ19wcmljZV9yZWZ1bmRfYW1vdW50BQhiaWRQcmljZQkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIJAQ1wYXJzZUludFZhbHVlAQUIYmlkUHJpY2UFBHVuaXQFA25pbAUDbmlsAWkBFGJ1eUFsbFByb2R1Y3RzX2FzaW1pAQduZnRJbmZvBAVidXllcggFAWkGY2FsbGVyBAxidXllckJhbGFuY2UJAPAHAgUFYnV5ZXIBIMnztyitZ0EXTTIGNXQsZIRs74jipJsnxxTqqR/QjZ9UBARuZlQxCQC1CQIJAJEDAgUHbmZ0SW5mbwAAAgFfBARuZlQyCQC1CQIJAJEDAgUHbmZ0SW5mbwABAgFfBARuZlQzCQC1CQIJAJEDAgUHbmZ0SW5mbwACAgFfBARuZlQ0CQC1CQIJAJEDAgUHbmZ0SW5mbwADAgFfBARuZlQ1CQC1CQIJAJEDAgUHbmZ0SW5mbwAEAgFfBAZhbW91bnQJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BAhyZWFsY29zdAkAZQIFBmFtb3VudAkAaAIJAGkCBQZhbW91bnQA6AcAGQQLcGxhdGZvcm1mZWUJAGUCBQZhbW91bnQFCHJlYWxjb3N0BA5yb3lhbGl0eUFtb3VudAkAaAIJAGkCBQZhbW91bnQAZAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBG5mVDEAAwQIbGFzdENvc3QJAGUCBQZhbW91bnQJAGQCBQ5yb3lhbGl0eUFtb3VudAULcGxhdGZvcm1mZWUEB2Ftb3VudDEJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAEGYW1vdW50BAlyZWFsY29zdDEJAGUCBQdhbW91bnQxCQBoAgkAaQIFB2Ftb3VudDEA6AcAGQQMcGxhdGZvcm1mZWUxCQBlAgUHYW1vdW50MQUJcmVhbGNvc3QxBA9yb3lhbGl0eUFtb3VudDEJAGgCCQBpAgUHYW1vdW50MQBkCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUEbmZUMgADBAlsYXN0Q29zdDEJAGUCBQdhbW91bnQxCQBkAgUPcm95YWxpdHlBbW91bnQxBQxwbGF0Zm9ybWZlZTEEB2Ftb3VudDIJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAIGYW1vdW50BAlyZWFsY29zdDIJAGUCBQdhbW91bnQyCQBoAgkAaQIFB2Ftb3VudDIA6AcAGQQMcGxhdGZvcm1mZWUyCQBlAgUHYW1vdW50MgUJcmVhbGNvc3QyBA9yb3lhbGl0eUFtb3VudDIJAGgCCQBpAgUHYW1vdW50MgBkCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUEbmZUMwADBAlsYXN0Q29zdDIJAGUCBQdhbW91bnQyCQBkAgUPcm95YWxpdHlBbW91bnQyBQxwbGF0Zm9ybWZlZTIEB2Ftb3VudDMJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAMGYW1vdW50BAlyZWFsY29zdDMJAGUCBQdhbW91bnQzCQBoAgkAaQIFB2Ftb3VudDMA6AcAGQQMcGxhdGZvcm1mZWUzCQBlAgUHYW1vdW50MwUJcmVhbGNvc3QzBA9yb3lhbGl0eUFtb3VudDMJAGgCCQBpAgUHYW1vdW50MwBkCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUEbmZUNAADBAlsYXN0Q29zdDMJAGUCBQdhbW91bnQzCQBkAgUPcm95YWxpdHlBbW91bnQzBQxwbGF0Zm9ybWZlZTMEB2Ftb3VudDQJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAQGYW1vdW50BAlyZWFsY29zdDQJAGUCBQdhbW91bnQ0CQBoAgkAaQIFB2Ftb3VudDQA6AcAGQQMcGxhdGZvcm1mZWU0CQBlAgUHYW1vdW50NAUJcmVhbGNvc3Q0BA9yb3lhbGl0eUFtb3VudDQJAGgCCQBpAgUHYW1vdW50NABkCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUEbmZUNQADBAlsYXN0Q29zdDQJAGUCBQdhbW91bnQ0CQBkAgUPcm95YWxpdHlBbW91bnQ0BQxwbGF0Zm9ybWZlZTQDCQAAAgkAkAMBBQduZnRJbmZvAAEJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIPZmlyc3RfbmZ0X0luZm89AgVuZnRJZAkAkQMCBQRuZlQxAAACB2NyZWF0b3IJAJEDAgUEbmZUMQAEAg9yb3lhbGl0eXBlcmNlbnQJAJEDAgUEbmZUMQADCQCsAgICBWJ1eWVyCQClCAEFBWJ1eWVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAg9maXJzdF9uZnRfSW5mbz0CDnNlbGxlcl9hZGRyZXNzCQCRAwIFBG5mVDEAAQkArAICAgVwcmljZQkAkQMCBQRuZlQxAAIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUFYnV5ZXIAAQkA2QQBCQCRAwIFBG5mVDEAAAkAzAgC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CQIJAJEDAgUHbmZ0SW5mbwADAgFfBARuZlQ1CQC1CQIJAJEDAgUHbmZ0SW5mbwAEAgFfBAZhbW91bnQJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BAhyZWFsY29zdAkAZQIFBmFtb3VudAkAaAIJAGkCBQZhbW91bnQA6AcAGQQLcGxhdGZvcm1mZWUJAGUCBQZhbW91bnQFCHJlYWxjb3N0BA5yb3lhbGl0eUFtb3VudAkAaAIJAGkCBQZhbW91bnQAZAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBG5mVDEAAwQIbGFzdENvc3QJAGUCBQZhbW91bnQJAGQCBQ5yb3lhbGl0eUFtb3VudAULcGxhdGZvcm1mZWUEB2Ftb3VudDEJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAEGYW1vdW50BAlyZWFsY29zdDEJAGUCBQdhbW91bnQxCQBoAgkAaQIFB2Ftb3VudDEA6AcAGQQMcGxhdGZvcm1mZWUxCQBlAgUHYW1vdW50MQUJcmVhbGNvc3QxBA9yb3lhbGl0eUFtb3VudDEJAGgCCQBpAgUHYW1vdW50MQBkCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUEbmZUMgADBAlsYXN0Q29zdDEJAGUCBQdhbW91bnQxCQBkAgUPcm95YWxpdHlBbW91bnQxBQxwbGF0Zm9ybWZlZTEEB2Ftb3VudDIJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAIGYW1vdW50BAlyZWFsY29zdDIJAGUCBQdhbW91bnQyCQBoAgkAaQIFB2Ftb3VudDIA6AcAGQQMcGxhdGZvcm1mZWUyCQBlAgUHYW1vdW50MgUJcmVhbGNvc3QyBA9yb3lhbGl0eUFtb3VudDIJAGgCCQBpAgUHYW1vdW50MgBkCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUEbmZUMwADBAlsYXN0Q29zdDIJAGUCBQdhbW91bnQyCQBkAgUPcm95YWxpdHlBbW91bnQyBQxwbGF0Zm9ybWZlZTIEB2Ftb3VudDMJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAMGYW1vdW50BAlyZWFsY29zdDMJAGUCBQdhbW91bnQzCQBoAgkAaQIFB2Ftb3VudDMA6AcAGQQMcGxhdGZvcm1mZWUzCQBlAgUHYW1vdW50MwUJcmVhbGNvc3QzBA9yb3lhbGl0eUFtb3VudDMJAGgCCQBpAgUHYW1vdW50MwBkCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUEbmZUNAADBAlsYXN0Q29zdDMJAGUCBQdhbW91bnQzCQBkAgUPcm95YWxpdHlBbW91bnQzBQxwbGF0Zm9ybWZlZTMEB2Ftb3VudDQJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAQGYW1vdW50BAlyZWFsY29zdDQJAGUCBQdhbW91bnQ0CQBoAgkAaQIFB2Ftb3VudDQA6AcAGQQMcGxhdGZvcm1mZWU0CQBlAgUHYW1vdW50NAUJcmVhbGNvc3Q0BA9yb3lhbGl0eUFtb3VudDQJAGgCCQBpAgUHYW1vdW50NABkCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUEbmZUNQADBAlsYXN0Q29zdDQJAGUCBQdhbW91bnQ0CQBkAgUPcm95YWxpdHlBbW91bnQ0BQxwbGF0Zm9ybWZlZTQDCQAAAgkAkAMBBQduZnRJbmZvAAEJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIPZmlyc3RfbmZ0X0luZm89AgVuZnRJZAkAkQMCBQRuZlQxAAACDnNlbGxlcl9hZGRyZXNzCQCRAwIFBG5mVDEAAQIFcHJpY2UJAJEDAgUEbmZUMQACCQCsAgICBWJ1eWVyCQClCAEFBWJ1eWVyCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFBWJ1eWVyAAEJANkEAQkAkQMCBQRuZlQxAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMQABBQhsYXN0Q29zdAUEdW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQxAAQFDnJveWFsaXR5QW1vdW50BQR1bml0BQNuaWwDCQAAAgkAkAMBBQduZnRJbmZvAAIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIPZmlyc3RfbmZ0X0luZm89AgVuZnRJZAkAkQMCBQRuZlQxAAACDnNlbGxlcl9hZGRyZXNzCQCRAwIFBG5mVDEAAQIFcHJpY2UJAJEDAgUEbmZUMQACCQCsAgICBWJ1eWVyCQClCAEFBWJ1eWVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICEHNlY29uZF9uZnRfSW5mbz0CBW5mdElkCQCRAwIFBG5mVDIAAAIOc2VsbGVyX2FkZHJlc3MJAJEDAgUEbmZUMgABAgVwcmljZQkAkQMCBQRuZlQyAAIJAKwCAgIFYnV5ZXIJAKUIAQUFYnV5ZXIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUFYnV5ZXIAAQkA2QQBCQCRAwIFBG5mVDEAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQVidXllcgABCQDZBAEJAJEDAgUEbmZUMgAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDEAAQUIbGFzdENvc3QFBHVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMQAEBQ5yb3lhbGl0eUFtb3VudAUEdW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQyAAEFCWxhc3RDb3N0MQUEdW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQyAAQFD3JveWFsaXR5QW1vdW50MQUEdW5pdAUDbmlsAwkAAAIJAJADAQUHbmZ0SW5mbwADCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICD2ZpcnN0X25mdF9JbmZvPQIFbmZ0SWQJAJEDAgUEbmZUMQAAAg5zZWxsZXJfYWRkcmVzcwkAkQMCBQRuZlQxAAECBXByaWNlCQCRAwIFBG5mVDEAAgkArAICAgVidXllcgkApQgBBQVidXllcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAhBzZWNvbmRfbmZ0X0luZm89AgVuZnRJZAkAkQMCBQRuZlQyAAACDnNlbGxlcl9hZGRyZXNzCQCRAwIFBG5mVDIAAQIFcHJpY2UJAJEDAgUEbmZUMgACCQCsAgICBWJ1eWVyCQClCAEFBWJ1eWVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICD3RoaXJkX25mdF9JbmZvPQIFbmZ0SWQJAJEDAgUEbmZUMwAAAg5zZWxsZXJfYWRkcmVzcwkAkQMCBQRuZlQzAAECBXByaWNlCQCRAwIFBG5mVDMAAgkArAICAgVidXllcgkApQgBBQVidXllcgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQVidXllcgABCQDZBAEJAJEDAgUEbmZUMQAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFBWJ1eWVyAAEJANkEAQkAkQMCBQRuZlQyAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUFYnV5ZXIAAQkA2QQBCQCRAwIFBG5mVDMAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQxAAEFCGxhc3RDb3N0BQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDEABAUOcm95YWxpdHlBbW91bnQFBHVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMgABBQlsYXN0Q29zdDEFBHVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMgAEBQ9yb3lhbGl0eUFtb3VudDEFBHVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMwABBQlsYXN0Q29zdDIFBHVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMwAEBQ9yb3lhbGl0eUFtb3VudDIFBHVuaXQFA25pbAMJAAACCQCQAwEFB25mdEluZm8ABAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAg9maXJzdF9uZnRfSW5mbz0CBW5mdElkCQCRAwIFBG5mVDEAAAIOc2VsbGVyX2FkZHJlc3MJAJEDAgUEbmZUMQABAgVwcmljZQkAkQMCBQRuZlQxAAIJAKwCAgIFYnV5ZXIJAKUIAQUFYnV5ZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIQc2Vjb25kX25mdF9JbmZvPQIFbmZ0SWQJAJEDAgUEbmZUMgAAAg5zZWxsZXJfYWRkcmVzcwkAkQMCBQRuZlQyAAECBXByaWNlCQCRAwIFBG5mVDIAAgkArAICAgVidXllcgkApQgBBQVidXllcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAg90aGlyZF9uZnRfSW5mbz0CBW5mdElkCQCRAwIFBG5mVDMAAAIOc2VsbGVyX2FkZHJlc3MJAJEDAgUEbmZUMwABAgVwcmljZQkAkQMCBQRuZlQzAAIJAKwCAgIFYnV5ZXIJAKUIAQUFYnV5ZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIQZm91cnRoX25mdF9JbmZvPQIFbmZ0SWQJAJEDAgUEbmZUNAAAAg5zZWxsZXJfYWRkcmVzcwkAkQMCBQRuZlQ0AAECBXByaWNlCQCRAwIFBG5mVDQAAgkArAICAgVidXllcgkApQgBBQVidXllcgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQVidXllcgABCQDZBAEJAJEDAgUEbmZUMQAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFBWJ1eWVyAAEJANkEAQkAkQMCBQRuZlQyAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUFYnV5ZXIAAQkA2QQBCQCRAwIFBG5mVDMAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQVidXllcgABCQDZBAEJAJEDAgUEbmZUNAAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDEAAQUIbGFzdENvc3QFBHVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMQAEBQ5yb3lhbGl0eUFtb3VudAUEdW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQyAAEFCWxhc3RDb3N0MQUEdW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQyAAQFD3JveWFsaXR5QW1vdW50MQUEdW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQzAAEFCWxhc3RDb3N0MgUEdW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQzAAQFD3JveWFsaXR5QW1vdW50MgUEdW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQ0AAEFCWxhc3RDb3N0MwUEdW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQ0AAQFD3JveWFsaXR5QW1vdW50MwUEdW5pdAUDbmlsAwkAAAIJAJADAQUHbmZ0SW5mbwAFCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICD2ZpcnN0X25mdF9JbmZvPQIFbmZ0SWQJAJEDAgUEbmZUMQAAAg5zZWxsZXJfYWRkcmVzcwkAkQMCBQRuZlQxAAECBXByaWNlCQCRAwIFBG5mVDEAAgkArAICAgVidXllcgkApQgBBQVidXllcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAhBzZWNvbmRfbmZ0X0luZm89AgVuZnRJZAkAkQMCBQRuZlQyAAACDnNlbGxlcl9hZGRyZXNzCQCRAwIFBG5mVDIAAQIFcHJpY2UJAJEDAgUEbmZUMgACCQCsAgICBWJ1eWVyCQClCAEFBWJ1eWVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICD3RoaXJkX25mdF9JbmZvPQIFbmZ0SWQJAJEDAgUEbmZUMwAAAg5zZWxsZXJfYWRkcmVzcwkAkQMCBQRuZlQzAAECBXByaWNlCQCRAwIFBG5mVDMAAgkArAICAgVidXllcgkApQgBBQVidXllcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAhBmb3VydGhfbmZ0X0luZm89AgVuZnRJZAkAkQMCBQRuZlQ0AAACDnNlbGxlcl9hZGRyZXNzCQCRAwIFBG5mVDQAAQIFcHJpY2UJAJEDAgUEbmZUNAACCQCsAgICBWJ1eWVyCQClCAEFBWJ1eWVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICD2ZpZnRoX25mdF9JbmZvPQIFbmZ0SWQJAJEDAgUEbmZUNQAAAg5zZWxsZXJfYWRkcmVzcwkAkQMCBQRuZlQ1AAECBXByaWNlCQCRAwIFBG5mVDUAAgkArAICAgVidXllcgkApQgBBQVidXllcgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQVidXllcgABCQDZBAEJAJEDAgUEbmZUMQAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFBWJ1eWVyAAEJANkEAQkAkQMCBQRuZlQyAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUFYnV5ZXIAAQkA2QQBCQCRAwIFBG5mVDMAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQVidXllcgABCQDZBAEJAJEDAgUEbmZUNAAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFBWJ1eWVyAAEJANkEAQkAkQMCBQRuZlQ1AAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMQABBQhsYXN0Q29zdAUEdW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQxAAQFDnJveWFsaXR5QW1vdW50BQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDIAAQUJbGFzdENvc3QxBQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDIABAUPcm95YWxpdHlBbW91bnQxBQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDMAAQUJbGFzdENvc3QyBQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDMABAUPcm95YWxpdHlBbW91bnQyBQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDQAAQUJbGFzdENvc3QzBQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDQABAUPcm95YWxpdHlBbW91bnQzBQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDUAAQUJbGFzdENvc3Q0BQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDUABAUPcm95YWxpdHlBbW91bnQ0BQR1bml0BQNuaWwDCQBmAgkAkAMBBQduZnRJbmZvAAUJAAIBAi1zb3JyeSEgbWF4aW11bSBsaW1pdCBvZiB5b3VyICBjYXJ0IGlzIDUgaXRlbXMFA25pbAFpARF3aXRoZHJhd0Vhcm5Bc2ltaQILcGxhdGZvcm1GZWUGYW1vdW50BAxvd25lckFkZHJlc3MBGgFXYgnWAb3UjpEQC0fNQ6YcEyacxgx+/pwVAwkBAiE9AggIBQFpBmNhbGxlcgVieXRlcwUMb3duZXJBZGRyZXNzCQACAQIZc29ycnkgIHlvdSBoYXZlIG5vIGFjY2VzcwMDCQBnAgULcGxhdGZvcm1GZWUAAAkAZwIFC3BsYXRmb3JtRmVlBQZhbW91bnQHCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgkAaAIFBmFtb3VudACAwtcvBQVBU0lNSQUDbmlsBQNuaWwBaQERd2l0aGRyYXdFYXJuV2F2ZXMCC3BsYXRmb3JtRmVlBmFtb3VudAQMb3duZXJBZGRyZXNzARoBV2IJ1gG91I6REAtHzUOmHBMmnMYMfv6cFQMJAQIhPQIICAUBaQZjYWxsZXIFYnl0ZXMFDG93bmVyQWRkcmVzcwkAAgECGXNvcnJ5ICB5b3UgaGF2ZSBubyBhY2Nlc3MDAwkAZwIFC3BsYXRmb3JtRmVlAAAJAGcCBQtwbGF0Zm9ybUZlZQUGYW1vdW50BwkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIJAGgCBQZhbW91bnQAgMLXLwUEdW5pdAUDbmlsBQNuaWwBAnR4AQZ2ZXJpZnkABAckbWF0Y2gwBQJ0eAMJAAECBQckbWF0Y2gwAhRTZXRTY3JpcHRUcmFuc2FjdGlvbgQLc2V0U2NyaXB0VHgFByRtYXRjaDAGB7vp6yI=", "height": 2722910, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: DC1GCiuNcevzFnwChp34Jcz36ynrG5ajUDStVjDS8w43 Next: 4QH5DqDhHGfWC3rXTHJoz6tWTjc8FVprCmLczukjrfwF Diff:
OldNewDifferences
3636 }
3737
3838
39-let o = toString(false)
40-
41-@Callable(p)
42-func setPaused (o) = {
43- let q = p.caller.bytes
44-[StringEntry("paused", o)]
39+@Callable(o)
40+func setPaused (p) = {
41+ let q = o.caller.bytes
42+[StringEntry("paused", p)]
4543 }
4644
4745
4846
49-@Callable(p)
47+@Callable(o)
5048 func createNft (r,s,t,u,v,w,x,y,z,A) = {
5149 let B = Issue(r, y, 1, 0, false)
5250 let C = calculateAssetId(B)
53- let D = p.transactionId
51+ let D = o.transactionId
5452 let E = getStringValue(this, "paused")
5553 if ((E == "false"))
5654 then throw("Minting is paused by admin!Please try after sometime")
57- else [B, ScriptTransfer(p.caller, 1, C), StringEntry(((toBase58String(C) + a) + "Owner"), toString(p.caller)), StringEntry(((toBase58String(C) + a) + "nft_type"), u), StringEntry(((toBase58String(C) + a) + "nft_tags"), v), StringEntry(((toBase58String(C) + a) + "nft_dAppAddress"), t), StringEntry(((toBase58String(D) + a) + "royalityPercentage"), x), IntegerEntry(((toBase58String(C) + a) + "nft_selling_price"), w), StringEntry(((toBase58String(C) + a) + "nft_onSell"), z), StringEntry(((toBase58String(C) + a) + "nft_data"), A), StringEntry(((toBase58String(D) + a) + "issue_nft"), toBase58String(C))]
55+ else [B, ScriptTransfer(o.caller, 1, C), StringEntry(((toBase58String(C) + a) + "Owner"), toString(o.caller)), StringEntry(((toBase58String(C) + a) + "nft_type"), u), StringEntry(((toBase58String(C) + a) + "nft_tags"), v), StringEntry(((toBase58String(C) + a) + "nft_dAppAddress"), t), StringEntry(((toBase58String(D) + a) + "royalityPercentage"), x), IntegerEntry(((toBase58String(C) + a) + "nft_selling_price"), w), StringEntry(((toBase58String(C) + a) + "nft_onSell"), z), StringEntry(((toBase58String(C) + a) + "nft_data"), A), StringEntry(((toBase58String(D) + a) + "issue_nft"), toBase58String(C))]
5856 }
5957
6058
6159
62-@Callable(p)
60+@Callable(o)
6361 func sellNFT (F,G) = {
64- let D = p.transactionId
65- let H = p.caller.bytes
66- let I = $Tuple2(value(p.payments[0].assetId), value(p.payments[0].amount))
62+ let D = o.transactionId
63+ let H = o.caller.bytes
64+ let I = $Tuple2(value(o.payments[0].assetId), value(o.payments[0].amount))
6765 let J = I._1
6866 let K = I._2
6967 if (!(k(J)))
7068 then throw("Token is not NFT")
71- else [StringEntry(((c + a) + toBase58String(value(p.payments[0].assetId))), F), StringEntry(((toString(p.caller) + a) + d), (((toBase58String(J) + a) + toString(K)) + G))]
69+ else [StringEntry(((c + a) + toBase58String(value(o.payments[0].assetId))), F), StringEntry(((toString(o.caller) + a) + d), (((toBase58String(J) + a) + toString(K)) + G))]
7270 }
7371
7472
7573
76-@Callable(p)
74+@Callable(o)
7775 func buyNFT (L,M,N,x) = {
7876 let l = fromBase58String(L)
7977 let O = {
8684 else false
8785 }
8886 let F = getStringValue(((((c + a) + L) + "_") + M))
89- let Q = value(p.payments[0].amount)
87+ let Q = value(o.payments[0].amount)
9088 let R = (Q - ((Q / 1000) * 25))
9189 let S = (Q - R)
9290 let T = x
9391 let U = ((Q * parseIntValue(T)) / 100)
9492 let V = (Q - (U + S))
95- if ((M == toString(p.caller)))
93+ if ((M == toString(o.caller)))
9694 then throw("current Owner of NFT not able to purchase")
97- else if (if ((p.payments[0].assetId == f))
95+ else if (if ((o.payments[0].assetId == f))
9896 then (N != M)
9997 else false)
100- then [ScriptTransfer(p.caller, 1, l), ScriptTransfer(Address(fromBase58String(M)), V, f), ScriptTransfer(Address(fromBase58String(N)), U, f), IntegerEntry((("nft_" + L) + "platform_fee"), S), StringEntry(((toString(p.caller) + a) + b), ((L + a) + toString(Q))), DeleteEntry((("nft_" + M) + "_owner")), StringEntry((("nft_" + M) + "_owner"), toString(p.caller)), StringEntry(((L + a) + "_owner"), toString(p.caller))]
101- else if (if ((p.payments[0].assetId == f))
98+ then [ScriptTransfer(o.caller, 1, l), ScriptTransfer(Address(fromBase58String(M)), V, f), ScriptTransfer(Address(fromBase58String(N)), U, f), IntegerEntry((("nft_" + L) + "platform_fee"), S), StringEntry(((toString(o.caller) + a) + b), ((L + a) + toString(Q))), DeleteEntry((("nft_" + M) + "_owner")), StringEntry((("nft_" + M) + "_owner"), toString(o.caller)), StringEntry(((L + a) + "_owner"), toString(o.caller))]
99+ else if (if ((o.payments[0].assetId == f))
102100 then (N == M)
103101 else false)
104- then [ScriptTransfer(p.caller, 1, l), ScriptTransfer(Address(fromBase58String(M)), R, f), StringEntry((("nft_" + L) + "platform_fee"), toString(S)), StringEntry(((toString(p.caller) + a) + b), ((L + a) + toString(Q))), DeleteEntry((("nft_" + M) + "_owner")), StringEntry((("nft_" + M) + "_owner"), toString(p.caller)), StringEntry(((L + a) + "_owner"), toString(p.caller))]
105- else if (if ((p.payments[0].assetId == unit))
102+ then [ScriptTransfer(o.caller, 1, l), ScriptTransfer(Address(fromBase58String(M)), R, f), StringEntry((("nft_" + L) + "platform_fee"), toString(S)), StringEntry(((toString(o.caller) + a) + b), ((L + a) + toString(Q))), DeleteEntry((("nft_" + M) + "_owner")), StringEntry((("nft_" + M) + "_owner"), toString(o.caller)), StringEntry(((L + a) + "_owner"), toString(o.caller))]
103+ else if (if ((o.payments[0].assetId == unit))
106104 then (N != M)
107105 else false)
108- then [ScriptTransfer(p.caller, 1, l), ScriptTransfer(Address(fromBase58String(M)), V, unit), ScriptTransfer(Address(fromBase58String(N)), U, unit), StringEntry((("nft_" + L) + "platform_fee"), toString(S)), StringEntry(((toString(p.caller) + a) + b), ((L + a) + toString(Q))), DeleteEntry((("nft_" + M) + "_owner")), StringEntry((("nft_" + M) + "_owner"), toString(p.caller)), StringEntry(((L + a) + "_owner"), toString(p.caller))]
109- else if (if ((p.payments[0].assetId == unit))
106+ then [ScriptTransfer(o.caller, 1, l), ScriptTransfer(Address(fromBase58String(M)), V, unit), ScriptTransfer(Address(fromBase58String(N)), U, unit), StringEntry((("nft_" + L) + "platform_fee"), toString(S)), StringEntry(((toString(o.caller) + a) + b), ((L + a) + toString(Q))), DeleteEntry((("nft_" + M) + "_owner")), StringEntry((("nft_" + M) + "_owner"), toString(o.caller)), StringEntry(((L + a) + "_owner"), toString(o.caller))]
107+ else if (if ((o.payments[0].assetId == unit))
110108 then (N == M)
111109 else false)
112- then [ScriptTransfer(p.caller, 1, l), ScriptTransfer(Address(fromBase58String(M)), R, unit), StringEntry((("nft_" + L) + "platform_fee"), toString(S)), StringEntry(((toString(p.caller) + a) + b), ((L + a) + toString(Q))), DeleteEntry((("nft_" + M) + "_owner")), StringEntry((("nft_" + M) + "_owner"), toString(p.caller)), StringEntry(((L + a) + "_owner"), toString(p.caller))]
110+ then [ScriptTransfer(o.caller, 1, l), ScriptTransfer(Address(fromBase58String(M)), R, unit), StringEntry((("nft_" + L) + "platform_fee"), toString(S)), StringEntry(((toString(o.caller) + a) + b), ((L + a) + toString(Q))), DeleteEntry((("nft_" + M) + "_owner")), StringEntry((("nft_" + M) + "_owner"), toString(o.caller)), StringEntry(((L + a) + "_owner"), toString(o.caller))]
113111 else nil
114112 }
115113
116114
117115
118-@Callable(p)
116+@Callable(o)
119117 func cancelSell (W) = {
120- let D = toBase58String(p.transactionId)
121- let H = p.caller.bytes
118+ let D = toBase58String(o.transactionId)
119+ let H = o.caller.bytes
122120 [StringEntry(((D + W) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(H), 1, fromBase58String(W))]
123121 }
124122
125123
126124
127-@Callable(p)
125+@Callable(o)
128126 func addAuction (X,Y,Z,aa,G) = {
129- let D = toBase58String(p.transactionId)
130- let W = value(p.payments[0].assetId)
127+ let D = toBase58String(o.transactionId)
128+ let W = value(o.payments[0].assetId)
131129 let F = value(Z)
132130 let ab = (lastBlock.height + aa)
133- let q = p.caller.bytes
131+ let q = o.caller.bytes
134132 let ac = {
135133 let m = getString(this, (((toBase58String(W) + a) + "nft_status_") + toBase58String(q)))
136134 if ($isInstanceOf(m, "String"))
144142 then throw("Already in auction list")
145143 else if ((aa > e))
146144 then throw(("Duration is too long. Must be less than or equal to 30 " + toString(e)))
147- else if ((p.payments[0].assetId == unit))
145+ else if ((o.payments[0].assetId == unit))
148146 then throw("NFT not attached")
149- else if ((p.payments[0].assetId == f))
147+ else if ((o.payments[0].assetId == f))
150148 then throw("NFT not attached")
151- else [StringEntry(((D + "nft_start_auction_date") + toBase58String(q)), X), StringEntry(((D + "nft_end_auction_date") + toBase58String(q)), Y), StringEntry((D + "_nft_start_price"), Z), StringEntry((D + "_nft_owner"), toString(p.caller)), StringEntry((D + "_nft_on_auction"), toBase58String(W)), StringEntry((D + "_previous_bidder"), "none"), StringEntry((D + "_highest_bid"), "0"), StringEntry((D + "_winner_of_nft"), "0"), StringEntry((D + "_bidder_count"), "0"), StringEntry((D + "_nft_status"), "OPEN")]
149+ else [StringEntry(((D + "nft_start_auction_date") + toBase58String(q)), X), StringEntry(((D + "nft_end_auction_date") + toBase58String(q)), Y), StringEntry((D + "_nft_start_price"), Z), StringEntry((D + "_nft_owner"), toString(o.caller)), StringEntry((D + "_nft_on_auction"), toBase58String(W)), StringEntry((D + "_previous_bidder"), "none"), StringEntry((D + "_highest_bid"), "0"), StringEntry((D + "_winner_of_nft"), "0"), StringEntry((D + "_bidder_count"), "0"), StringEntry((D + "_nft_status"), "OPEN")]
152150 }
153151
154152
155153
156-@Callable(p)
154+@Callable(o)
157155 func placeBid (ad,W,s,ae,af) = {
158- let D = toBase58String(p.transactionId)
159- let q = p.caller.bytes
156+ let D = toBase58String(o.transactionId)
157+ let q = o.caller.bytes
160158 let l = fromBase58String(W)
161- let ag = p.payments[0].assetId
162- let ah = p.payments[0].amount
159+ let ag = o.payments[0].assetId
160+ let ah = o.payments[0].amount
163161 let ai = getStringValue(this, (ad + "_highest_bid"))
164162 let aj = getString(this, (ad + "_previous_bidder"))
165163 let ak = getStringValue(this, (ad + "_bidder_count"))
170168 else if ((parseIntValue(ai) >= ah))
171169 then throw("Bid is less then starting/highest Bid")
172170 else if ((ai == "0"))
173- then [StringEntry((ad + "_highest_bid"), toString(ah)), StringEntry((ad + "_winner_of_nft"), toBase58String(p.caller.bytes)), StringEntry((ad + "_bidder_count"), toString((parseIntValue(ak) + 1))), StringEntry((ad + "_nft_id"), toBase58String(l)), StringEntry((ad + "_nft_owner"), s), StringEntry((((D + "_") + ad) + "_highest_bid"), toString(ah)), StringEntry((((D + "_") + ad) + "_winner"), toBase58String(p.caller.bytes)), StringEntry((((D + "_") + ad) + "_bidder_count"), toString((parseIntValue(ak) + 1))), StringEntry((((D + "_") + ad) + "_nft_id"), toBase58String(l)), StringEntry((((D + "_") + ad) + "_nft_owner"), s), StringEntry((D + "_bid_for_nft_by"), toBase58String(q)), StringEntry((D + "_bid_price_place"), ae), StringEntry((D + "_previous_bid_amount_refund_to_address"), al), StringEntry((D + "_prevoius_bid_amount_refund"), ai)]
171+ then [StringEntry((ad + "_highest_bid"), toString(ah)), StringEntry((ad + "_winner_of_nft"), toBase58String(o.caller.bytes)), StringEntry((ad + "_bidder_count"), toString((parseIntValue(ak) + 1))), StringEntry((ad + "_nft_id"), toBase58String(l)), StringEntry((ad + "_nft_owner"), s), StringEntry((((D + "_") + ad) + "_highest_bid"), toString(ah)), StringEntry((((D + "_") + ad) + "_winner"), toBase58String(o.caller.bytes)), StringEntry((((D + "_") + ad) + "_bidder_count"), toString((parseIntValue(ak) + 1))), StringEntry((((D + "_") + ad) + "_nft_id"), toBase58String(l)), StringEntry((((D + "_") + ad) + "_nft_owner"), s), StringEntry((D + "_bid_for_nft_by"), toBase58String(q)), StringEntry((D + "_bid_price_place"), ae), StringEntry((D + "_previous_bid_amount_refund_to_address"), al), StringEntry((D + "_prevoius_bid_amount_refund"), ai)]
174172 else if ((ai != "0"))
175- then [ScriptTransfer(Address(fromBase58String(al)), parseIntValue(ai), ag), StringEntry((D + "_previous_bid_amount_refund_to_address"), al), StringEntry((D + "_prevoius_bid_amount_refund"), ai), StringEntry((ad + "_bidder_count"), toString((parseIntValue(ak) + 1))), StringEntry((ad + "_highest_bid"), toString(ah)), StringEntry((ad + "_winner_of_nft"), toBase58String(p.caller.bytes)), StringEntry((ad + "_nft_id"), toBase58String(l)), StringEntry((ad + "_nft_owner"), s), StringEntry((((D + "_") + ad) + "_highest_bid"), toString(ah)), StringEntry((((D + "_") + ad) + "_winner"), toBase58String(p.caller.bytes)), StringEntry((((D + "_") + ad) + "_bidder_count"), toString((parseIntValue(ak) + 1))), StringEntry((((D + "_") + ad) + "_nft_id"), toBase58String(l)), StringEntry((((D + "_") + ad) + "_nft_owner"), s), StringEntry((D + "_bid_for_nft_by"), toBase58String(q)), StringEntry((D + "_bid_price_place"), ae)]
173+ then [ScriptTransfer(Address(fromBase58String(al)), parseIntValue(ai), ag), StringEntry((D + "_previous_bid_amount_refund_to_address"), al), StringEntry((D + "_prevoius_bid_amount_refund"), ai), StringEntry((ad + "_bidder_count"), toString((parseIntValue(ak) + 1))), StringEntry((ad + "_highest_bid"), toString(ah)), StringEntry((ad + "_winner_of_nft"), toBase58String(o.caller.bytes)), StringEntry((ad + "_nft_id"), toBase58String(l)), StringEntry((ad + "_nft_owner"), s), StringEntry((((D + "_") + ad) + "_highest_bid"), toString(ah)), StringEntry((((D + "_") + ad) + "_winner"), toBase58String(o.caller.bytes)), StringEntry((((D + "_") + ad) + "_bidder_count"), toString((parseIntValue(ak) + 1))), StringEntry((((D + "_") + ad) + "_nft_id"), toBase58String(l)), StringEntry((((D + "_") + ad) + "_nft_owner"), s), StringEntry((D + "_bid_for_nft_by"), toBase58String(q)), StringEntry((D + "_bid_price_place"), ae)]
176174 else nil
177175 }
178176
179177
180178
181-@Callable(p)
179+@Callable(o)
182180 func acceptBidOffer (ad,W,am,M,N,x,af) = {
183181 let an = "EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5"
184- let D = toBase58String(p.transactionId)
182+ let D = toBase58String(o.transactionId)
185183 let ao = fromBase58String(af)
186- let q = p.caller.bytes
184+ let q = o.caller.bytes
187185 let l = fromBase58String(W)
188186 let ap = getStringValue(this, (ad + "_highest_bid"))
189187 let aq = ((parseIntValue(ap) / 1000) * 975)
212210
213211
214212
215-@Callable(p)
213+@Callable(o)
216214 func cancelAuction (ad) = {
217- let D = toBase58String(p.transactionId)
218- let q = p.caller.bytes
215+ let D = toBase58String(o.transactionId)
216+ let q = o.caller.bytes
219217 let at = getStringValue(this, (ad + "_nft_status"))
220218 let au = getStringValue(this, (ad + "_winner_of_nft"))
221219 let av = getStringValue(this, (ad + "_nft_owner"))
230228
231229
232230
233-@Callable(p)
231+@Callable(o)
234232 func manualFundTransfer (ax) = {
235- let ay = p.caller.bytes
233+ let ay = o.caller.bytes
236234 let az = fromBase58String(ax)
237- let Q = p.payments[0].amount
238- if ((p.payments[0].assetId == unit))
235+ let Q = o.payments[0].amount
236+ if ((o.payments[0].assetId == unit))
239237 then [IntegerEntry((toBase58String(ay) + "_transfer"), Q), StringEntry((toBase58String(ay) + "_transfer_to"), ax), ScriptTransfer(Address(az), Q, unit)]
240- else if ((p.payments[0].assetId == f))
238+ else if ((o.payments[0].assetId == f))
241239 then [IntegerEntry((toBase58String(ay) + "_transfer"), Q), StringEntry((toBase58String(ay) + "_transfer_to"), ax), ScriptTransfer(Address(az), Q, f)]
242240 else nil
243241 }
244242
245243
246244
247-@Callable(p)
245+@Callable(o)
248246 func nftback (ad) = {
249- let q = p.caller.bytes
247+ let q = o.caller.bytes
250248 let W = getStringValue(this, (ad + "_nft_on_auction"))
251249 let av = getStringValue(this, (ad + "_nft_owner"))
252250 [StringEntry((ad + "_nft_status"), "Auction_time over"), ScriptTransfer(Address(fromBase58String(av)), 1, fromBase58String(W))]
254252
255253
256254
257-@Callable(p)
255+@Callable(o)
258256 func withdrawMoney (ad,af) = {
259- let q = p.caller.bytes
257+ let q = o.caller.bytes
260258 let an = "EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5"
261- let D = toBase58String(p.transactionId)
259+ let D = toBase58String(o.transactionId)
262260 let ao = fromBase58String(af)
263261 let aA = getStringValue(this, (ad + "_highest_bid"))
264262 let aB = getStringValue(this, (ad + "_winner"))
265263 let aC = getStringValue(this, (ad + "_nft_id"))
266264 if ((af == an))
267- then [StringEntry((ad + "_nft_bid"), "WITHDRAW"), StringEntry((ad + "_nft_id"), aC), StringEntry((ad + "_bidding_price_refund_amount"), aA), ScriptTransfer(p.caller, parseIntValue(aA), ao)]
265+ then [StringEntry((ad + "_nft_bid"), "WITHDRAW"), StringEntry((ad + "_nft_id"), aC), StringEntry((ad + "_bidding_price_refund_amount"), aA), ScriptTransfer(o.caller, parseIntValue(aA), ao)]
268266 else if ((af == "WAVES"))
269- then [StringEntry((ad + "_nft_bid"), "WITHDRAW"), StringEntry((ad + "_nft_id"), aC), StringEntry((ad + "_bidding_price_refund_amount"), aA), ScriptTransfer(p.caller, parseIntValue(aA), unit)]
267+ then [StringEntry((ad + "_nft_bid"), "WITHDRAW"), StringEntry((ad + "_nft_id"), aC), StringEntry((ad + "_bidding_price_refund_amount"), aA), ScriptTransfer(o.caller, parseIntValue(aA), unit)]
270268 else nil
271269 }
272270
273271
274272
275-@Callable(p)
273+@Callable(o)
276274 func buyAllProducts_asimi (aD) = {
277- let aE = p.caller
275+ let aE = o.caller
278276 let aF = assetBalance(aE, base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5')
279277 let aG = split(aD[0], "_")
280278 let aH = split(aD[1], "_")
281279 let aI = split(aD[2], "_")
282280 let aJ = split(aD[3], "_")
283281 let aK = split(aD[4], "_")
284- let Q = value(p.payments[0].amount)
282+ let Q = value(o.payments[0].amount)
285283 let aL = (Q - ((Q / 1000) * 25))
286284 let aM = (Q - aL)
287285 let U = ((Q / 100) * parseIntValue(aG[3]))
288286 let aN = (Q - (U + aM))
289- let aO = value(p.payments[1].amount)
287+ let aO = value(o.payments[1].amount)
290288 let aP = (aO - ((aO / 1000) * 25))
291289 let aQ = (aO - aP)
292290 let aR = ((aO / 100) * parseIntValue(aH[3]))
293291 let aS = (aO - (aR + aQ))
294- let aT = value(p.payments[2].amount)
292+ let aT = value(o.payments[2].amount)
295293 let aU = (aT - ((aT / 1000) * 25))
296294 let aV = (aT - aU)
297295 let aW = ((aT / 100) * parseIntValue(aI[3]))
298296 let aX = (aT - (aW + aV))
299- let aY = value(p.payments[3].amount)
297+ let aY = value(o.payments[3].amount)
300298 let aZ = (aY - ((aY / 1000) * 25))
301299 let ba = (aY - aZ)
302300 let bb = ((aY / 100) * parseIntValue(aJ[3]))
303301 let bc = (aY - (bb + ba))
304- let bd = value(p.payments[4].amount)
302+ let bd = value(o.payments[4].amount)
305303 let be = (bd - ((bd / 1000) * 25))
306304 let bf = (bd - be)
307305 let bg = ((bd / 100) * parseIntValue(aK[3]))
323321
324322
325323
326-@Callable(p)
324+@Callable(o)
327325 func buyAllProducts_waves (aD) = {
328- let aE = p.caller
326+ let aE = o.caller
329327 let aF = assetBalance(aE, g)
330328 let aG = split(aD[0], "_")
331329 let aH = split(aD[1], "_")
332330 let aI = split(aD[2], "_")
333331 let aJ = split(aD[3], "_")
334332 let aK = split(aD[4], "_")
335- let Q = value(p.payments[0].amount)
333+ let Q = value(o.payments[0].amount)
336334 let aL = (Q - ((Q / 1000) * 25))
337335 let aM = (Q - aL)
338336 let U = ((Q / 100) * parseIntValue(aG[3]))
339337 let aN = (Q - (U + aM))
340- let aO = value(p.payments[1].amount)
338+ let aO = value(o.payments[1].amount)
341339 let aP = (aO - ((aO / 1000) * 25))
342340 let aQ = (aO - aP)
343341 let aR = ((aO / 100) * parseIntValue(aH[3]))
344342 let aS = (aO - (aR + aQ))
345- let aT = value(p.payments[2].amount)
343+ let aT = value(o.payments[2].amount)
346344 let aU = (aT - ((aT / 1000) * 25))
347345 let aV = (aT - aU)
348346 let aW = ((aT / 100) * parseIntValue(aI[3]))
349347 let aX = (aT - (aW + aV))
350- let aY = value(p.payments[3].amount)
348+ let aY = value(o.payments[3].amount)
351349 let aZ = (aY - ((aY / 1000) * 25))
352350 let ba = (aY - aZ)
353351 let bb = ((aY / 100) * parseIntValue(aJ[3]))
354352 let bc = (aY - (bb + ba))
355- let bd = value(p.payments[4].amount)
353+ let bd = value(o.payments[4].amount)
356354 let be = (bd - ((bd / 1000) * 25))
357355 let bf = (bd - be)
358356 let bg = ((bd / 100) * parseIntValue(aK[3]))
374372
375373
376374
377-@Callable(p)
375+@Callable(o)
378376 func withdrawEarnAsimi (bi,Q) = {
379- let bj = base58'3PNcc8rAdjEJSM36wqHr86WMRGKMXwmrAoY'
380- if ((p.caller.bytes != bj))
377+ let bj = base58'3PAsGjTfCzTwdNTstxS44ZXEqofXYAuYKK2'
378+ if ((o.caller.bytes != bj))
381379 then throw("sorry you have no access")
382380 else if (if ((bi >= 0))
383381 then (bi >= Q)
384382 else false)
385- then [ScriptTransfer(p.caller, (Q * 100000000), f)]
383+ then [ScriptTransfer(o.caller, (Q * 100000000), f)]
386384 else nil
387385 }
388386
389387
390388
391-@Callable(p)
389+@Callable(o)
392390 func withdrawEarnWaves (bi,Q) = {
393- let bj = base58'3PNcc8rAdjEJSM36wqHr86WMRGKMXwmrAoY'
394- if ((p.caller.bytes != bj))
391+ let bj = base58'3PAsGjTfCzTwdNTstxS44ZXEqofXYAuYKK2'
392+ if ((o.caller.bytes != bj))
395393 then throw("sorry you have no access")
396394 else if (if ((bi >= 0))
397395 then (bi >= Q)
398396 else false)
399- then [ScriptTransfer(p.caller, (Q * 100000000), unit)]
397+ then [ScriptTransfer(o.caller, (Q * 100000000), unit)]
400398 else nil
401399 }
402400
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "_"
55
66 let b = "buy"
77
88 let c = "price"
99
1010 let d = "sell"
1111
1212 let e = 30
1313
1414 let f = base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'
1515
1616 let g = base58''
1717
1818 let h = "bid"
1919
2020 let i = $Tuple4("OPEN", "CLOSED", "REWARDED", "CANCELED")
2121
2222 let j = base58'3P6r2VBo2cvtc74nwV1RMpKUDfkNrA9TXK3'
2323
2424 func k (l) = {
2525 let m = assetInfo(l)
2626 if ($isInstanceOf(m, "Asset"))
2727 then {
2828 let n = m
2929 if (if ((n.decimals == 0))
3030 then (n.quantity == 1)
3131 else false)
3232 then (n.reissuable == false)
3333 else false
3434 }
3535 else false
3636 }
3737
3838
39-let o = toString(false)
40-
41-@Callable(p)
42-func setPaused (o) = {
43- let q = p.caller.bytes
44-[StringEntry("paused", o)]
39+@Callable(o)
40+func setPaused (p) = {
41+ let q = o.caller.bytes
42+[StringEntry("paused", p)]
4543 }
4644
4745
4846
49-@Callable(p)
47+@Callable(o)
5048 func createNft (r,s,t,u,v,w,x,y,z,A) = {
5149 let B = Issue(r, y, 1, 0, false)
5250 let C = calculateAssetId(B)
53- let D = p.transactionId
51+ let D = o.transactionId
5452 let E = getStringValue(this, "paused")
5553 if ((E == "false"))
5654 then throw("Minting is paused by admin!Please try after sometime")
57- else [B, ScriptTransfer(p.caller, 1, C), StringEntry(((toBase58String(C) + a) + "Owner"), toString(p.caller)), StringEntry(((toBase58String(C) + a) + "nft_type"), u), StringEntry(((toBase58String(C) + a) + "nft_tags"), v), StringEntry(((toBase58String(C) + a) + "nft_dAppAddress"), t), StringEntry(((toBase58String(D) + a) + "royalityPercentage"), x), IntegerEntry(((toBase58String(C) + a) + "nft_selling_price"), w), StringEntry(((toBase58String(C) + a) + "nft_onSell"), z), StringEntry(((toBase58String(C) + a) + "nft_data"), A), StringEntry(((toBase58String(D) + a) + "issue_nft"), toBase58String(C))]
55+ else [B, ScriptTransfer(o.caller, 1, C), StringEntry(((toBase58String(C) + a) + "Owner"), toString(o.caller)), StringEntry(((toBase58String(C) + a) + "nft_type"), u), StringEntry(((toBase58String(C) + a) + "nft_tags"), v), StringEntry(((toBase58String(C) + a) + "nft_dAppAddress"), t), StringEntry(((toBase58String(D) + a) + "royalityPercentage"), x), IntegerEntry(((toBase58String(C) + a) + "nft_selling_price"), w), StringEntry(((toBase58String(C) + a) + "nft_onSell"), z), StringEntry(((toBase58String(C) + a) + "nft_data"), A), StringEntry(((toBase58String(D) + a) + "issue_nft"), toBase58String(C))]
5856 }
5957
6058
6159
62-@Callable(p)
60+@Callable(o)
6361 func sellNFT (F,G) = {
64- let D = p.transactionId
65- let H = p.caller.bytes
66- let I = $Tuple2(value(p.payments[0].assetId), value(p.payments[0].amount))
62+ let D = o.transactionId
63+ let H = o.caller.bytes
64+ let I = $Tuple2(value(o.payments[0].assetId), value(o.payments[0].amount))
6765 let J = I._1
6866 let K = I._2
6967 if (!(k(J)))
7068 then throw("Token is not NFT")
71- else [StringEntry(((c + a) + toBase58String(value(p.payments[0].assetId))), F), StringEntry(((toString(p.caller) + a) + d), (((toBase58String(J) + a) + toString(K)) + G))]
69+ else [StringEntry(((c + a) + toBase58String(value(o.payments[0].assetId))), F), StringEntry(((toString(o.caller) + a) + d), (((toBase58String(J) + a) + toString(K)) + G))]
7270 }
7371
7472
7573
76-@Callable(p)
74+@Callable(o)
7775 func buyNFT (L,M,N,x) = {
7876 let l = fromBase58String(L)
7977 let O = {
8078 let m = getString(this, (("nft_" + M) + "_owner"))
8179 if ($isInstanceOf(m, "String"))
8280 then {
8381 let P = m
8482 P
8583 }
8684 else false
8785 }
8886 let F = getStringValue(((((c + a) + L) + "_") + M))
89- let Q = value(p.payments[0].amount)
87+ let Q = value(o.payments[0].amount)
9088 let R = (Q - ((Q / 1000) * 25))
9189 let S = (Q - R)
9290 let T = x
9391 let U = ((Q * parseIntValue(T)) / 100)
9492 let V = (Q - (U + S))
95- if ((M == toString(p.caller)))
93+ if ((M == toString(o.caller)))
9694 then throw("current Owner of NFT not able to purchase")
97- else if (if ((p.payments[0].assetId == f))
95+ else if (if ((o.payments[0].assetId == f))
9896 then (N != M)
9997 else false)
100- then [ScriptTransfer(p.caller, 1, l), ScriptTransfer(Address(fromBase58String(M)), V, f), ScriptTransfer(Address(fromBase58String(N)), U, f), IntegerEntry((("nft_" + L) + "platform_fee"), S), StringEntry(((toString(p.caller) + a) + b), ((L + a) + toString(Q))), DeleteEntry((("nft_" + M) + "_owner")), StringEntry((("nft_" + M) + "_owner"), toString(p.caller)), StringEntry(((L + a) + "_owner"), toString(p.caller))]
101- else if (if ((p.payments[0].assetId == f))
98+ then [ScriptTransfer(o.caller, 1, l), ScriptTransfer(Address(fromBase58String(M)), V, f), ScriptTransfer(Address(fromBase58String(N)), U, f), IntegerEntry((("nft_" + L) + "platform_fee"), S), StringEntry(((toString(o.caller) + a) + b), ((L + a) + toString(Q))), DeleteEntry((("nft_" + M) + "_owner")), StringEntry((("nft_" + M) + "_owner"), toString(o.caller)), StringEntry(((L + a) + "_owner"), toString(o.caller))]
99+ else if (if ((o.payments[0].assetId == f))
102100 then (N == M)
103101 else false)
104- then [ScriptTransfer(p.caller, 1, l), ScriptTransfer(Address(fromBase58String(M)), R, f), StringEntry((("nft_" + L) + "platform_fee"), toString(S)), StringEntry(((toString(p.caller) + a) + b), ((L + a) + toString(Q))), DeleteEntry((("nft_" + M) + "_owner")), StringEntry((("nft_" + M) + "_owner"), toString(p.caller)), StringEntry(((L + a) + "_owner"), toString(p.caller))]
105- else if (if ((p.payments[0].assetId == unit))
102+ then [ScriptTransfer(o.caller, 1, l), ScriptTransfer(Address(fromBase58String(M)), R, f), StringEntry((("nft_" + L) + "platform_fee"), toString(S)), StringEntry(((toString(o.caller) + a) + b), ((L + a) + toString(Q))), DeleteEntry((("nft_" + M) + "_owner")), StringEntry((("nft_" + M) + "_owner"), toString(o.caller)), StringEntry(((L + a) + "_owner"), toString(o.caller))]
103+ else if (if ((o.payments[0].assetId == unit))
106104 then (N != M)
107105 else false)
108- then [ScriptTransfer(p.caller, 1, l), ScriptTransfer(Address(fromBase58String(M)), V, unit), ScriptTransfer(Address(fromBase58String(N)), U, unit), StringEntry((("nft_" + L) + "platform_fee"), toString(S)), StringEntry(((toString(p.caller) + a) + b), ((L + a) + toString(Q))), DeleteEntry((("nft_" + M) + "_owner")), StringEntry((("nft_" + M) + "_owner"), toString(p.caller)), StringEntry(((L + a) + "_owner"), toString(p.caller))]
109- else if (if ((p.payments[0].assetId == unit))
106+ then [ScriptTransfer(o.caller, 1, l), ScriptTransfer(Address(fromBase58String(M)), V, unit), ScriptTransfer(Address(fromBase58String(N)), U, unit), StringEntry((("nft_" + L) + "platform_fee"), toString(S)), StringEntry(((toString(o.caller) + a) + b), ((L + a) + toString(Q))), DeleteEntry((("nft_" + M) + "_owner")), StringEntry((("nft_" + M) + "_owner"), toString(o.caller)), StringEntry(((L + a) + "_owner"), toString(o.caller))]
107+ else if (if ((o.payments[0].assetId == unit))
110108 then (N == M)
111109 else false)
112- then [ScriptTransfer(p.caller, 1, l), ScriptTransfer(Address(fromBase58String(M)), R, unit), StringEntry((("nft_" + L) + "platform_fee"), toString(S)), StringEntry(((toString(p.caller) + a) + b), ((L + a) + toString(Q))), DeleteEntry((("nft_" + M) + "_owner")), StringEntry((("nft_" + M) + "_owner"), toString(p.caller)), StringEntry(((L + a) + "_owner"), toString(p.caller))]
110+ then [ScriptTransfer(o.caller, 1, l), ScriptTransfer(Address(fromBase58String(M)), R, unit), StringEntry((("nft_" + L) + "platform_fee"), toString(S)), StringEntry(((toString(o.caller) + a) + b), ((L + a) + toString(Q))), DeleteEntry((("nft_" + M) + "_owner")), StringEntry((("nft_" + M) + "_owner"), toString(o.caller)), StringEntry(((L + a) + "_owner"), toString(o.caller))]
113111 else nil
114112 }
115113
116114
117115
118-@Callable(p)
116+@Callable(o)
119117 func cancelSell (W) = {
120- let D = toBase58String(p.transactionId)
121- let H = p.caller.bytes
118+ let D = toBase58String(o.transactionId)
119+ let H = o.caller.bytes
122120 [StringEntry(((D + W) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(H), 1, fromBase58String(W))]
123121 }
124122
125123
126124
127-@Callable(p)
125+@Callable(o)
128126 func addAuction (X,Y,Z,aa,G) = {
129- let D = toBase58String(p.transactionId)
130- let W = value(p.payments[0].assetId)
127+ let D = toBase58String(o.transactionId)
128+ let W = value(o.payments[0].assetId)
131129 let F = value(Z)
132130 let ab = (lastBlock.height + aa)
133- let q = p.caller.bytes
131+ let q = o.caller.bytes
134132 let ac = {
135133 let m = getString(this, (((toBase58String(W) + a) + "nft_status_") + toBase58String(q)))
136134 if ($isInstanceOf(m, "String"))
137135 then {
138136 let P = m
139137 true
140138 }
141139 else false
142140 }
143141 if ((ac == true))
144142 then throw("Already in auction list")
145143 else if ((aa > e))
146144 then throw(("Duration is too long. Must be less than or equal to 30 " + toString(e)))
147- else if ((p.payments[0].assetId == unit))
145+ else if ((o.payments[0].assetId == unit))
148146 then throw("NFT not attached")
149- else if ((p.payments[0].assetId == f))
147+ else if ((o.payments[0].assetId == f))
150148 then throw("NFT not attached")
151- else [StringEntry(((D + "nft_start_auction_date") + toBase58String(q)), X), StringEntry(((D + "nft_end_auction_date") + toBase58String(q)), Y), StringEntry((D + "_nft_start_price"), Z), StringEntry((D + "_nft_owner"), toString(p.caller)), StringEntry((D + "_nft_on_auction"), toBase58String(W)), StringEntry((D + "_previous_bidder"), "none"), StringEntry((D + "_highest_bid"), "0"), StringEntry((D + "_winner_of_nft"), "0"), StringEntry((D + "_bidder_count"), "0"), StringEntry((D + "_nft_status"), "OPEN")]
149+ else [StringEntry(((D + "nft_start_auction_date") + toBase58String(q)), X), StringEntry(((D + "nft_end_auction_date") + toBase58String(q)), Y), StringEntry((D + "_nft_start_price"), Z), StringEntry((D + "_nft_owner"), toString(o.caller)), StringEntry((D + "_nft_on_auction"), toBase58String(W)), StringEntry((D + "_previous_bidder"), "none"), StringEntry((D + "_highest_bid"), "0"), StringEntry((D + "_winner_of_nft"), "0"), StringEntry((D + "_bidder_count"), "0"), StringEntry((D + "_nft_status"), "OPEN")]
152150 }
153151
154152
155153
156-@Callable(p)
154+@Callable(o)
157155 func placeBid (ad,W,s,ae,af) = {
158- let D = toBase58String(p.transactionId)
159- let q = p.caller.bytes
156+ let D = toBase58String(o.transactionId)
157+ let q = o.caller.bytes
160158 let l = fromBase58String(W)
161- let ag = p.payments[0].assetId
162- let ah = p.payments[0].amount
159+ let ag = o.payments[0].assetId
160+ let ah = o.payments[0].amount
163161 let ai = getStringValue(this, (ad + "_highest_bid"))
164162 let aj = getString(this, (ad + "_previous_bidder"))
165163 let ak = getStringValue(this, (ad + "_bidder_count"))
166164 let al = getStringValue(this, (ad + "_winner_of_nft"))
167165 let ac = getStringValue(this, (ad + "_nft_status"))
168166 if ((ac != "OPEN"))
169167 then throw("Not open for auction")
170168 else if ((parseIntValue(ai) >= ah))
171169 then throw("Bid is less then starting/highest Bid")
172170 else if ((ai == "0"))
173- then [StringEntry((ad + "_highest_bid"), toString(ah)), StringEntry((ad + "_winner_of_nft"), toBase58String(p.caller.bytes)), StringEntry((ad + "_bidder_count"), toString((parseIntValue(ak) + 1))), StringEntry((ad + "_nft_id"), toBase58String(l)), StringEntry((ad + "_nft_owner"), s), StringEntry((((D + "_") + ad) + "_highest_bid"), toString(ah)), StringEntry((((D + "_") + ad) + "_winner"), toBase58String(p.caller.bytes)), StringEntry((((D + "_") + ad) + "_bidder_count"), toString((parseIntValue(ak) + 1))), StringEntry((((D + "_") + ad) + "_nft_id"), toBase58String(l)), StringEntry((((D + "_") + ad) + "_nft_owner"), s), StringEntry((D + "_bid_for_nft_by"), toBase58String(q)), StringEntry((D + "_bid_price_place"), ae), StringEntry((D + "_previous_bid_amount_refund_to_address"), al), StringEntry((D + "_prevoius_bid_amount_refund"), ai)]
171+ then [StringEntry((ad + "_highest_bid"), toString(ah)), StringEntry((ad + "_winner_of_nft"), toBase58String(o.caller.bytes)), StringEntry((ad + "_bidder_count"), toString((parseIntValue(ak) + 1))), StringEntry((ad + "_nft_id"), toBase58String(l)), StringEntry((ad + "_nft_owner"), s), StringEntry((((D + "_") + ad) + "_highest_bid"), toString(ah)), StringEntry((((D + "_") + ad) + "_winner"), toBase58String(o.caller.bytes)), StringEntry((((D + "_") + ad) + "_bidder_count"), toString((parseIntValue(ak) + 1))), StringEntry((((D + "_") + ad) + "_nft_id"), toBase58String(l)), StringEntry((((D + "_") + ad) + "_nft_owner"), s), StringEntry((D + "_bid_for_nft_by"), toBase58String(q)), StringEntry((D + "_bid_price_place"), ae), StringEntry((D + "_previous_bid_amount_refund_to_address"), al), StringEntry((D + "_prevoius_bid_amount_refund"), ai)]
174172 else if ((ai != "0"))
175- then [ScriptTransfer(Address(fromBase58String(al)), parseIntValue(ai), ag), StringEntry((D + "_previous_bid_amount_refund_to_address"), al), StringEntry((D + "_prevoius_bid_amount_refund"), ai), StringEntry((ad + "_bidder_count"), toString((parseIntValue(ak) + 1))), StringEntry((ad + "_highest_bid"), toString(ah)), StringEntry((ad + "_winner_of_nft"), toBase58String(p.caller.bytes)), StringEntry((ad + "_nft_id"), toBase58String(l)), StringEntry((ad + "_nft_owner"), s), StringEntry((((D + "_") + ad) + "_highest_bid"), toString(ah)), StringEntry((((D + "_") + ad) + "_winner"), toBase58String(p.caller.bytes)), StringEntry((((D + "_") + ad) + "_bidder_count"), toString((parseIntValue(ak) + 1))), StringEntry((((D + "_") + ad) + "_nft_id"), toBase58String(l)), StringEntry((((D + "_") + ad) + "_nft_owner"), s), StringEntry((D + "_bid_for_nft_by"), toBase58String(q)), StringEntry((D + "_bid_price_place"), ae)]
173+ then [ScriptTransfer(Address(fromBase58String(al)), parseIntValue(ai), ag), StringEntry((D + "_previous_bid_amount_refund_to_address"), al), StringEntry((D + "_prevoius_bid_amount_refund"), ai), StringEntry((ad + "_bidder_count"), toString((parseIntValue(ak) + 1))), StringEntry((ad + "_highest_bid"), toString(ah)), StringEntry((ad + "_winner_of_nft"), toBase58String(o.caller.bytes)), StringEntry((ad + "_nft_id"), toBase58String(l)), StringEntry((ad + "_nft_owner"), s), StringEntry((((D + "_") + ad) + "_highest_bid"), toString(ah)), StringEntry((((D + "_") + ad) + "_winner"), toBase58String(o.caller.bytes)), StringEntry((((D + "_") + ad) + "_bidder_count"), toString((parseIntValue(ak) + 1))), StringEntry((((D + "_") + ad) + "_nft_id"), toBase58String(l)), StringEntry((((D + "_") + ad) + "_nft_owner"), s), StringEntry((D + "_bid_for_nft_by"), toBase58String(q)), StringEntry((D + "_bid_price_place"), ae)]
176174 else nil
177175 }
178176
179177
180178
181-@Callable(p)
179+@Callable(o)
182180 func acceptBidOffer (ad,W,am,M,N,x,af) = {
183181 let an = "EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5"
184- let D = toBase58String(p.transactionId)
182+ let D = toBase58String(o.transactionId)
185183 let ao = fromBase58String(af)
186- let q = p.caller.bytes
184+ let q = o.caller.bytes
187185 let l = fromBase58String(W)
188186 let ap = getStringValue(this, (ad + "_highest_bid"))
189187 let aq = ((parseIntValue(ap) / 1000) * 975)
190188 let S = ((parseIntValue(ap) / 1000) * 25)
191189 let U = ((parseIntValue(ap) * parseIntValue(x)) / 100)
192190 let ar = (parseIntValue(ap) - (U + S))
193191 let as = getStringValue(this, (ad + "_winner_of_nft"))
194192 if (if ((af == an))
195193 then (N != M)
196194 else false)
197195 then [ScriptTransfer(Address(q), ar, ao), ScriptTransfer(Address(fromBase58String(as)), 1, l), ScriptTransfer(Address(fromBase58String(N)), U, ao), StringEntry((D + "_amount_paid_to_owner"), ap), StringEntry((D + "_nft_transfer_to"), as), StringEntry((D + "_nft_status"), "REWARDED"), StringEntry((ad + "_amount_paid_to_owner"), ap), StringEntry((ad + "_nft_transfer_to"), as), StringEntry((ad + "_nft_status"), "REWARDED")]
198196 else if (if ((af == an))
199197 then (N == M)
200198 else false)
201199 then [ScriptTransfer(Address(q), aq, ao), ScriptTransfer(Address(fromBase58String(as)), 1, l), StringEntry((D + "_amount_paid_to_owner"), ap), StringEntry((D + "_nft_transfer_to"), as), StringEntry((D + "_nft_status"), "REWARDED"), StringEntry((ad + "_amount_paid_to_owner"), ap), StringEntry((ad + "_nft_transfer_to"), as), StringEntry((ad + "_nft_status"), "REWARDED")]
202200 else if (if ((af == "WAVES"))
203201 then (N != M)
204202 else false)
205203 then [ScriptTransfer(Address(q), ar, unit), ScriptTransfer(Address(fromBase58String(as)), 1, l), ScriptTransfer(Address(fromBase58String(N)), U, unit), StringEntry("platform_fee", toString(S)), StringEntry((D + "_amount_paid_to_owner"), ap), StringEntry((D + "_nft_transfer_to"), as), StringEntry((D + "_nft_status"), "REWARDED"), StringEntry((ad + "_amount_paid_to_owner"), ap), StringEntry((ad + "_nft_transfer_to"), as), StringEntry((ad + "_nft_status"), "REWARDED")]
206204 else if (if ((af == "WAVES"))
207205 then (N == M)
208206 else false)
209207 then [ScriptTransfer(Address(q), aq, unit), ScriptTransfer(Address(fromBase58String(as)), 1, l), StringEntry((D + "_amount_paid_to_owner"), ap), StringEntry((D + "_nft_transfer_to"), as), StringEntry((D + "_nft_status"), "REWARDED"), StringEntry((ad + "_amount_paid_to_owner"), ap), StringEntry((ad + "_nft_transfer_to"), as), StringEntry((ad + "_nft_status"), "REWARDED")]
210208 else nil
211209 }
212210
213211
214212
215-@Callable(p)
213+@Callable(o)
216214 func cancelAuction (ad) = {
217- let D = toBase58String(p.transactionId)
218- let q = p.caller.bytes
215+ let D = toBase58String(o.transactionId)
216+ let q = o.caller.bytes
219217 let at = getStringValue(this, (ad + "_nft_status"))
220218 let au = getStringValue(this, (ad + "_winner_of_nft"))
221219 let av = getStringValue(this, (ad + "_nft_owner"))
222220 let W = getStringValue(this, (ad + "_nft_on_auction"))
223221 let aw = getStringValue(this, (ad + "_highest_bid"))
224222 if ((au == "0"))
225223 then [StringEntry(((D + ad) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(fromBase58String(av)), 1, fromBase58String(W))]
226224 else if ((au != "0"))
227225 then throw("sorry! you can't cancel it because already auction placed by someone")
228226 else nil
229227 }
230228
231229
232230
233-@Callable(p)
231+@Callable(o)
234232 func manualFundTransfer (ax) = {
235- let ay = p.caller.bytes
233+ let ay = o.caller.bytes
236234 let az = fromBase58String(ax)
237- let Q = p.payments[0].amount
238- if ((p.payments[0].assetId == unit))
235+ let Q = o.payments[0].amount
236+ if ((o.payments[0].assetId == unit))
239237 then [IntegerEntry((toBase58String(ay) + "_transfer"), Q), StringEntry((toBase58String(ay) + "_transfer_to"), ax), ScriptTransfer(Address(az), Q, unit)]
240- else if ((p.payments[0].assetId == f))
238+ else if ((o.payments[0].assetId == f))
241239 then [IntegerEntry((toBase58String(ay) + "_transfer"), Q), StringEntry((toBase58String(ay) + "_transfer_to"), ax), ScriptTransfer(Address(az), Q, f)]
242240 else nil
243241 }
244242
245243
246244
247-@Callable(p)
245+@Callable(o)
248246 func nftback (ad) = {
249- let q = p.caller.bytes
247+ let q = o.caller.bytes
250248 let W = getStringValue(this, (ad + "_nft_on_auction"))
251249 let av = getStringValue(this, (ad + "_nft_owner"))
252250 [StringEntry((ad + "_nft_status"), "Auction_time over"), ScriptTransfer(Address(fromBase58String(av)), 1, fromBase58String(W))]
253251 }
254252
255253
256254
257-@Callable(p)
255+@Callable(o)
258256 func withdrawMoney (ad,af) = {
259- let q = p.caller.bytes
257+ let q = o.caller.bytes
260258 let an = "EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5"
261- let D = toBase58String(p.transactionId)
259+ let D = toBase58String(o.transactionId)
262260 let ao = fromBase58String(af)
263261 let aA = getStringValue(this, (ad + "_highest_bid"))
264262 let aB = getStringValue(this, (ad + "_winner"))
265263 let aC = getStringValue(this, (ad + "_nft_id"))
266264 if ((af == an))
267- then [StringEntry((ad + "_nft_bid"), "WITHDRAW"), StringEntry((ad + "_nft_id"), aC), StringEntry((ad + "_bidding_price_refund_amount"), aA), ScriptTransfer(p.caller, parseIntValue(aA), ao)]
265+ then [StringEntry((ad + "_nft_bid"), "WITHDRAW"), StringEntry((ad + "_nft_id"), aC), StringEntry((ad + "_bidding_price_refund_amount"), aA), ScriptTransfer(o.caller, parseIntValue(aA), ao)]
268266 else if ((af == "WAVES"))
269- then [StringEntry((ad + "_nft_bid"), "WITHDRAW"), StringEntry((ad + "_nft_id"), aC), StringEntry((ad + "_bidding_price_refund_amount"), aA), ScriptTransfer(p.caller, parseIntValue(aA), unit)]
267+ then [StringEntry((ad + "_nft_bid"), "WITHDRAW"), StringEntry((ad + "_nft_id"), aC), StringEntry((ad + "_bidding_price_refund_amount"), aA), ScriptTransfer(o.caller, parseIntValue(aA), unit)]
270268 else nil
271269 }
272270
273271
274272
275-@Callable(p)
273+@Callable(o)
276274 func buyAllProducts_asimi (aD) = {
277- let aE = p.caller
275+ let aE = o.caller
278276 let aF = assetBalance(aE, base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5')
279277 let aG = split(aD[0], "_")
280278 let aH = split(aD[1], "_")
281279 let aI = split(aD[2], "_")
282280 let aJ = split(aD[3], "_")
283281 let aK = split(aD[4], "_")
284- let Q = value(p.payments[0].amount)
282+ let Q = value(o.payments[0].amount)
285283 let aL = (Q - ((Q / 1000) * 25))
286284 let aM = (Q - aL)
287285 let U = ((Q / 100) * parseIntValue(aG[3]))
288286 let aN = (Q - (U + aM))
289- let aO = value(p.payments[1].amount)
287+ let aO = value(o.payments[1].amount)
290288 let aP = (aO - ((aO / 1000) * 25))
291289 let aQ = (aO - aP)
292290 let aR = ((aO / 100) * parseIntValue(aH[3]))
293291 let aS = (aO - (aR + aQ))
294- let aT = value(p.payments[2].amount)
292+ let aT = value(o.payments[2].amount)
295293 let aU = (aT - ((aT / 1000) * 25))
296294 let aV = (aT - aU)
297295 let aW = ((aT / 100) * parseIntValue(aI[3]))
298296 let aX = (aT - (aW + aV))
299- let aY = value(p.payments[3].amount)
297+ let aY = value(o.payments[3].amount)
300298 let aZ = (aY - ((aY / 1000) * 25))
301299 let ba = (aY - aZ)
302300 let bb = ((aY / 100) * parseIntValue(aJ[3]))
303301 let bc = (aY - (bb + ba))
304- let bd = value(p.payments[4].amount)
302+ let bd = value(o.payments[4].amount)
305303 let be = (bd - ((bd / 1000) * 25))
306304 let bf = (bd - be)
307305 let bg = ((bd / 100) * parseIntValue(aK[3]))
308306 let bh = (bd - (bg + bf))
309307 if ((size(aD) == 1))
310308 then [StringEntry((((((("first_nft_Info=" + "nftId") + aG[0]) + "creator") + aG[4]) + "royalitypercent") + aG[3]), ("buyer" + toString(aE))), StringEntry((("first_nft_Info=" + "seller_address") + aG[1]), ("price" + aG[2])), ScriptTransfer(aE, 1, fromBase58String(aG[0])), ScriptTransfer(Address(fromBase58String(aG[1])), aN, base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'), ScriptTransfer(Address(fromBase58String(aG[4])), U, base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5')]
311309 else if ((size(aD) == 2))
312310 then [StringEntry((((((("first_nft_Info=" + "nftId") + aG[0]) + "seller_address") + aG[1]) + "price") + aG[2]), ("buyer" + toString(aE))), StringEntry((((((("second_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aE))), ScriptTransfer(aE, 1, fromBase58String(aG[0])), ScriptTransfer(aE, 1, fromBase58String(aH[0])), ScriptTransfer(Address(fromBase58String(aG[1])), aN, base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'), ScriptTransfer(Address(fromBase58String(aG[4])), U, base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'), ScriptTransfer(Address(fromBase58String(aH[1])), aS, base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'), ScriptTransfer(Address(fromBase58String(aH[4])), aR, base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5')]
313311 else if ((size(aD) == 3))
314312 then [StringEntry((((((("first_nft_Info=" + "nftId") + aG[0]) + "seller_address") + aG[1]) + "price") + aG[2]), ("buyer" + toString(aE))), StringEntry((((((("second_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aE))), StringEntry((((((("third_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aE))), ScriptTransfer(aE, 1, fromBase58String(aG[0])), ScriptTransfer(aE, 1, fromBase58String(aH[0])), ScriptTransfer(aE, 1, fromBase58String(aI[0])), ScriptTransfer(Address(fromBase58String(aG[1])), aN, base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'), ScriptTransfer(Address(fromBase58String(aG[4])), U, base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'), ScriptTransfer(Address(fromBase58String(aH[1])), aS, base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'), ScriptTransfer(Address(fromBase58String(aH[4])), aR, base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'), ScriptTransfer(Address(fromBase58String(aI[1])), aX, base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'), ScriptTransfer(Address(fromBase58String(aI[4])), aW, base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5')]
315313 else if ((size(aD) == 4))
316314 then [StringEntry((((((("first_nft_Info=" + "nftId") + aG[0]) + "seller_address") + aG[1]) + "price") + aG[2]), ("buyer" + toString(aE))), StringEntry((((((("second_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aE))), StringEntry((((((("third_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aE))), StringEntry((((((("fourth_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aE))), ScriptTransfer(aE, 1, fromBase58String(aG[0])), ScriptTransfer(aE, 1, fromBase58String(aH[0])), ScriptTransfer(aE, 1, fromBase58String(aI[0])), ScriptTransfer(aE, 1, fromBase58String(aJ[0])), ScriptTransfer(Address(fromBase58String(aG[1])), aN, base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'), ScriptTransfer(Address(fromBase58String(aG[4])), U, base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'), ScriptTransfer(Address(fromBase58String(aH[1])), aS, base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'), ScriptTransfer(Address(fromBase58String(aH[4])), aR, base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'), ScriptTransfer(Address(fromBase58String(aI[1])), aX, base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'), ScriptTransfer(Address(fromBase58String(aI[4])), aW, base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'), ScriptTransfer(Address(fromBase58String(aJ[1])), bc, base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'), ScriptTransfer(Address(fromBase58String(aJ[4])), bb, base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5')]
317315 else if ((size(aD) == 5))
318316 then [StringEntry((((((("first_nft_Info=" + "nftId") + aG[0]) + "seller_address") + aG[1]) + "price") + aG[2]), ("buyer" + toString(aE))), StringEntry((((((("second_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aE))), StringEntry((((((("third_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aE))), StringEntry((((((("fourth_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aE))), StringEntry((((((("fifth_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aE))), ScriptTransfer(aE, 1, fromBase58String(aG[0])), ScriptTransfer(aE, 1, fromBase58String(aH[0])), ScriptTransfer(aE, 1, fromBase58String(aI[0])), ScriptTransfer(aE, 1, fromBase58String(aJ[0])), ScriptTransfer(aE, 1, fromBase58String(aK[0])), ScriptTransfer(Address(fromBase58String(aG[1])), aN, base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'), ScriptTransfer(Address(fromBase58String(aG[4])), U, base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'), ScriptTransfer(Address(fromBase58String(aH[1])), aS, base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'), ScriptTransfer(Address(fromBase58String(aH[4])), aR, base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'), ScriptTransfer(Address(fromBase58String(aI[1])), aX, base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'), ScriptTransfer(Address(fromBase58String(aI[4])), aW, base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'), ScriptTransfer(Address(fromBase58String(aJ[1])), bc, base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'), ScriptTransfer(Address(fromBase58String(aJ[4])), bb, base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'), ScriptTransfer(Address(fromBase58String(aK[1])), bh, base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'), ScriptTransfer(Address(fromBase58String(aK[4])), bg, base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5')]
319317 else if ((size(aD) > 5))
320318 then throw("sorry! maximum limit of your cart is 5 items")
321319 else nil
322320 }
323321
324322
325323
326-@Callable(p)
324+@Callable(o)
327325 func buyAllProducts_waves (aD) = {
328- let aE = p.caller
326+ let aE = o.caller
329327 let aF = assetBalance(aE, g)
330328 let aG = split(aD[0], "_")
331329 let aH = split(aD[1], "_")
332330 let aI = split(aD[2], "_")
333331 let aJ = split(aD[3], "_")
334332 let aK = split(aD[4], "_")
335- let Q = value(p.payments[0].amount)
333+ let Q = value(o.payments[0].amount)
336334 let aL = (Q - ((Q / 1000) * 25))
337335 let aM = (Q - aL)
338336 let U = ((Q / 100) * parseIntValue(aG[3]))
339337 let aN = (Q - (U + aM))
340- let aO = value(p.payments[1].amount)
338+ let aO = value(o.payments[1].amount)
341339 let aP = (aO - ((aO / 1000) * 25))
342340 let aQ = (aO - aP)
343341 let aR = ((aO / 100) * parseIntValue(aH[3]))
344342 let aS = (aO - (aR + aQ))
345- let aT = value(p.payments[2].amount)
343+ let aT = value(o.payments[2].amount)
346344 let aU = (aT - ((aT / 1000) * 25))
347345 let aV = (aT - aU)
348346 let aW = ((aT / 100) * parseIntValue(aI[3]))
349347 let aX = (aT - (aW + aV))
350- let aY = value(p.payments[3].amount)
348+ let aY = value(o.payments[3].amount)
351349 let aZ = (aY - ((aY / 1000) * 25))
352350 let ba = (aY - aZ)
353351 let bb = ((aY / 100) * parseIntValue(aJ[3]))
354352 let bc = (aY - (bb + ba))
355- let bd = value(p.payments[4].amount)
353+ let bd = value(o.payments[4].amount)
356354 let be = (bd - ((bd / 1000) * 25))
357355 let bf = (bd - be)
358356 let bg = ((bd / 100) * parseIntValue(aK[3]))
359357 let bh = (bd - (bg + bf))
360358 if ((size(aD) == 1))
361359 then [StringEntry((((((("first_nft_Info=" + "nftId") + aG[0]) + "seller_address") + aG[1]) + "price") + aG[2]), ("buyer" + toString(aE))), ScriptTransfer(aE, 1, fromBase58String(aG[0])), ScriptTransfer(Address(fromBase58String(aG[1])), aN, unit), ScriptTransfer(Address(fromBase58String(aG[4])), U, unit)]
362360 else if ((size(aD) == 2))
363361 then [StringEntry((((((("first_nft_Info=" + "nftId") + aG[0]) + "seller_address") + aG[1]) + "price") + aG[2]), ("buyer" + toString(aE))), StringEntry((((((("second_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aE))), ScriptTransfer(aE, 1, fromBase58String(aG[0])), ScriptTransfer(aE, 1, fromBase58String(aH[0])), ScriptTransfer(Address(fromBase58String(aG[1])), aN, unit), ScriptTransfer(Address(fromBase58String(aG[4])), U, unit), ScriptTransfer(Address(fromBase58String(aH[1])), aS, unit), ScriptTransfer(Address(fromBase58String(aH[4])), aR, unit)]
364362 else if ((size(aD) == 3))
365363 then [StringEntry((((((("first_nft_Info=" + "nftId") + aG[0]) + "seller_address") + aG[1]) + "price") + aG[2]), ("buyer" + toString(aE))), StringEntry((((((("second_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aE))), StringEntry((((((("third_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aE))), ScriptTransfer(aE, 1, fromBase58String(aG[0])), ScriptTransfer(aE, 1, fromBase58String(aH[0])), ScriptTransfer(aE, 1, fromBase58String(aI[0])), ScriptTransfer(Address(fromBase58String(aG[1])), aN, unit), ScriptTransfer(Address(fromBase58String(aG[4])), U, unit), ScriptTransfer(Address(fromBase58String(aH[1])), aS, unit), ScriptTransfer(Address(fromBase58String(aH[4])), aR, unit), ScriptTransfer(Address(fromBase58String(aI[1])), aX, unit), ScriptTransfer(Address(fromBase58String(aI[4])), aW, unit)]
366364 else if ((size(aD) == 4))
367365 then [StringEntry((((((("first_nft_Info=" + "nftId") + aG[0]) + "seller_address") + aG[1]) + "price") + aG[2]), ("buyer" + toString(aE))), StringEntry((((((("second_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aE))), StringEntry((((((("third_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aE))), StringEntry((((((("fourth_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aE))), ScriptTransfer(aE, 1, fromBase58String(aG[0])), ScriptTransfer(aE, 1, fromBase58String(aH[0])), ScriptTransfer(aE, 1, fromBase58String(aI[0])), ScriptTransfer(aE, 1, fromBase58String(aJ[0])), ScriptTransfer(Address(fromBase58String(aG[1])), aN, unit), ScriptTransfer(Address(fromBase58String(aG[4])), U, unit), ScriptTransfer(Address(fromBase58String(aH[1])), aS, unit), ScriptTransfer(Address(fromBase58String(aH[4])), aR, unit), ScriptTransfer(Address(fromBase58String(aI[1])), aX, unit), ScriptTransfer(Address(fromBase58String(aI[4])), aW, unit), ScriptTransfer(Address(fromBase58String(aJ[1])), bc, unit), ScriptTransfer(Address(fromBase58String(aJ[4])), bb, unit)]
368366 else if ((size(aD) == 5))
369367 then [StringEntry((((((("first_nft_Info=" + "nftId") + aG[0]) + "seller_address") + aG[1]) + "price") + aG[2]), ("buyer" + toString(aE))), StringEntry((((((("second_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aE))), StringEntry((((((("third_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aE))), StringEntry((((((("fourth_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aE))), StringEntry((((((("fifth_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aE))), ScriptTransfer(aE, 1, fromBase58String(aG[0])), ScriptTransfer(aE, 1, fromBase58String(aH[0])), ScriptTransfer(aE, 1, fromBase58String(aI[0])), ScriptTransfer(aE, 1, fromBase58String(aJ[0])), ScriptTransfer(aE, 1, fromBase58String(aK[0])), ScriptTransfer(Address(fromBase58String(aG[1])), aN, unit), ScriptTransfer(Address(fromBase58String(aG[4])), U, unit), ScriptTransfer(Address(fromBase58String(aH[1])), aS, unit), ScriptTransfer(Address(fromBase58String(aH[4])), aR, unit), ScriptTransfer(Address(fromBase58String(aI[1])), aX, unit), ScriptTransfer(Address(fromBase58String(aI[4])), aW, unit), ScriptTransfer(Address(fromBase58String(aJ[1])), bc, unit), ScriptTransfer(Address(fromBase58String(aJ[4])), bb, unit), ScriptTransfer(Address(fromBase58String(aK[1])), bh, unit), ScriptTransfer(Address(fromBase58String(aK[4])), bg, unit)]
370368 else if ((size(aD) > 5))
371369 then throw("sorry! maximum limit of your cart is 5 items")
372370 else nil
373371 }
374372
375373
376374
377-@Callable(p)
375+@Callable(o)
378376 func withdrawEarnAsimi (bi,Q) = {
379- let bj = base58'3PNcc8rAdjEJSM36wqHr86WMRGKMXwmrAoY'
380- if ((p.caller.bytes != bj))
377+ let bj = base58'3PAsGjTfCzTwdNTstxS44ZXEqofXYAuYKK2'
378+ if ((o.caller.bytes != bj))
381379 then throw("sorry you have no access")
382380 else if (if ((bi >= 0))
383381 then (bi >= Q)
384382 else false)
385- then [ScriptTransfer(p.caller, (Q * 100000000), f)]
383+ then [ScriptTransfer(o.caller, (Q * 100000000), f)]
386384 else nil
387385 }
388386
389387
390388
391-@Callable(p)
389+@Callable(o)
392390 func withdrawEarnWaves (bi,Q) = {
393- let bj = base58'3PNcc8rAdjEJSM36wqHr86WMRGKMXwmrAoY'
394- if ((p.caller.bytes != bj))
391+ let bj = base58'3PAsGjTfCzTwdNTstxS44ZXEqofXYAuYKK2'
392+ if ((o.caller.bytes != bj))
395393 then throw("sorry you have no access")
396394 else if (if ((bi >= 0))
397395 then (bi >= Q)
398396 else false)
399- then [ScriptTransfer(p.caller, (Q * 100000000), unit)]
397+ then [ScriptTransfer(o.caller, (Q * 100000000), unit)]
400398 else nil
401399 }
402400
403401
404402 @Verifier(bk)
405403 func bl () = {
406404 let m = bk
407405 if ($isInstanceOf(m, "SetScriptTransaction"))
408406 then {
409407 let bm = m
410408 true
411409 }
412410 else false
413411 }
414412

github/deemru/w8io/873ac7e 
170.89 ms