tx · 612wn8NQPYaAYhmRC8DFju1wAFuXwDwYzErsXdoddbEW

3MzjYmeNRTxpsizCTGfiJ9RpL5icxZFZALP:  -0.03200000 Waves

2023.06.07 09:31 [2611899] smart account 3MzjYmeNRTxpsizCTGfiJ9RpL5icxZFZALP > SELF 0.00000000 Waves

{ "type": 13, "id": "612wn8NQPYaAYhmRC8DFju1wAFuXwDwYzErsXdoddbEW", "fee": 3200000, "feeAssetId": null, "timestamp": 1686119660610, "version": 2, "chainId": 84, "sender": "3MzjYmeNRTxpsizCTGfiJ9RpL5icxZFZALP", "senderPublicKey": "YyZowfZWDqeoD4fjqhSxSF1fKBXWymvDKHKzBS5sqtB", "proofs": [ "5zRyy1wX86dWqa5ZTfnpvuGsaFQnHhx9J8TY2vC7j2p8HLaTXY3sJEuhyRDWmaX2zibk1iNFR8mx11TAMWs5o5cQ", "5SCAbz9i3ak7bqifUhJ1r2ZEdAhGuMbJg6md67CkSvi7EozS3D34f4w6PZViCaNZYcBN4WR1k8Kd381VEisyXZ9D" ], "script": "base64:BgJ2CAISAwoBCBIMCgoICAgICAEICAgIEgQKAggIEgcKBQgICAgBEgMKAQgSBwoFCAgIAQgSBwoFCAgICAISCQoHCAgICAgICBIDCgEIEgMKAQgSAwoBCBIECgIICBIDCgEYEgMKARgSBAoCAQESBAoCAQESAwoBCAwACXNlcGFyYXRvcgIBXwAEa0J1eQIDYnV5AAZrUHJpY2UCBXByaWNlAAVrU2VsbAIEc2VsbAASbWF4QXVjdGlvbkR1cmF0aW9uAB4ABXRlYW1zASCFY5Wj84iOsN4MF44ITr+aP5K7Jts66HaOFtwUIipIfgAFV0FWRVMBAAAEa0JpZAIDYmlkAAZwYXVzZWQGAAxzdGF0dXNGb3JORlQJAJYKBAIET1BFTgIGQ0xPU0VEAghSRVdBUkRFRAIIQ0FOQ0VMRUQAC2RBcHBBZGRyZXNzARoBVEq4T2zewtqT7fSO6Uo2+NVPf5XVVVtdoAEFaXNOZnQBB2Fzc2V0SWQEByRtYXRjaDAJAOwHAQUHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgVBc3NldAQFdG9rZW4FByRtYXRjaDADAwkAAAIIBQV0b2tlbghkZWNpbWFscwAACQAAAggFBXRva2VuCHF1YW50aXR5AAEHCQAAAggFBXRva2VuCnJlaXNzdWFibGUHBwcRAWkBCXNldFBhdXNlZAEFcGF1c2UEBmNhbGxlcggIBQFpBmNhbGxlcgVieXRlcwMJAAACBQVwYXVzZQIEdHJ1ZQkAzAgCCQELU3RyaW5nRW50cnkCCQDYBAEFBmNhbGxlcgkArAICAglzZXRQYXVzZWQFBXBhdXNlBQNuaWwDCQAAAgUGcGF1c2VkBwkAzAgCCQELU3RyaW5nRW50cnkCCQDYBAEFBmNhbGxlcgkArAICAglzZXRQYXVzZWQFBXBhdXNlBQNuaWwFA25pbAFpAQljcmVhdGVOZnQKCG5mdF9uYW1lCW5mdF9vd25lcg9uZnRfZEFwcEFkZHJlc3MIbmZ0X3R5cGUIbmZ0X3RhZ3MRbmZ0X3NlbGxpbmdfcHJpY2UScm95YWxpdHlQZXJjZW50YWdlD25mdF9kZXNjcmlwdGlvbgpuZnRfb25TZWxsCG5mdF9kYXRhBAhuZXdUb2tlbgkAwggFBQhuZnRfbmFtZQUPbmZ0X2Rlc2NyaXB0aW9uAAEAAAcEB2lzc3VlSWQJALgIAQUIbmV3VG9rZW4EBHR4SWQIBQFpDXRyYW5zYWN0aW9uSWQEBXBhdXNlCQCdCAIFBHRoaXMCCXNldFBhdXNlZAMJAAACBQVwYXVzZQIEdHJ1ZQkAAgECGk1pbnRpbmcgaXMgcGF1c2VkIGJ5IGFkbWluCQDMCAIFCG5ld1Rva2VuCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgABBQdpc3N1ZUlkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQDYBAEFB2lzc3VlSWQFCXNlcGFyYXRvcgIFT3duZXIJAKUIAQgFAWkGY2FsbGVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQDYBAEFB2lzc3VlSWQFCXNlcGFyYXRvcgIIbmZ0X3R5cGUFCG5mdF90eXBlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQDYBAEFB2lzc3VlSWQFCXNlcGFyYXRvcgIIbmZ0X3RhZ3MFCG5mdF90YWdzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQDYBAEFB2lzc3VlSWQFCXNlcGFyYXRvcgIPbmZ0X2RBcHBBZGRyZXNzBQ9uZnRfZEFwcEFkZHJlc3MJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJANgEAQUEdHhJZAUJc2VwYXJhdG9yAhJyb3lhbGl0eVBlcmNlbnRhZ2UFEnJveWFsaXR5UGVyY2VudGFnZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgIJANgEAQUHaXNzdWVJZAUJc2VwYXJhdG9yAhFuZnRfc2VsbGluZ19wcmljZQURbmZ0X3NlbGxpbmdfcHJpY2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJANgEAQUHaXNzdWVJZAUJc2VwYXJhdG9yAgpuZnRfb25TZWxsBQpuZnRfb25TZWxsCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQDYBAEFB2lzc3VlSWQFCXNlcGFyYXRvcgIIbmZ0X2RhdGEFCG5mdF9kYXRhCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQDYBAEFBHR4SWQFCXNlcGFyYXRvcgIJaXNzdWVfbmZ0CQDYBAEFB2lzc3VlSWQFA25pbAFpAQdzZWxsTkZUAgVwcmljZRBwYXltZW50X2N1cnJlbmN5BAR0eElkCAUBaQ10cmFuc2FjdGlvbklkBAZzZWxsZXIICAUBaQZjYWxsZXIFYnl0ZXMECyR0MDI1NDUyNjMwCQCUCgIJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAkBBXZhbHVlAQgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQEBnRva2VuMAgFCyR0MDI1NDUyNjMwAl8xBAdhbW91bnQwCAULJHQwMjU0NTI2MzACXzIDCQEBIQEJAQVpc05mdAEFBnRva2VuMAkAAgECEFRva2VuIGlzIG5vdCBORlQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIFBmtQcmljZQUJc2VwYXJhdG9yCQDYBAEJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUFcHJpY2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKUIAQgFAWkGY2FsbGVyBQlzZXBhcmF0b3IFBWtTZWxsCQCsAgIJAKwCAgkArAICCQDYBAEFBnRva2VuMAUJc2VwYXJhdG9yCQCkAwEFB2Ftb3VudDAFEHBheW1lbnRfY3VycmVuY3kFA25pbAFpAQZidXlORlQFBW5mdElEEWN1cnJlbnRfbmZ0X293bmVyB2NyZWF0b3IScm95YWxpdHlQZXJjZW50YWdlC3BsYXRmb3JtRmVlBAdhc3NldElkCQDZBAEFBW5mdElEBBBjaGVja093bmVySXNTYW1lBAckbWF0Y2gwCQCdCAIFBHRoaXMJAKwCAgkArAICAgRuZnRfBRFjdXJyZW50X25mdF9vd25lcgIGX293bmVyAwkAAQIFByRtYXRjaDACBlN0cmluZwQBYQUHJG1hdGNoMAUBYQcEBXByaWNlCQERQGV4dHJOYXRpdmUoMTA1OCkBCQCsAgIJAKwCAgkArAICCQCsAgIFBmtQcmljZQUJc2VwYXJhdG9yBQVuZnRJRAIBXwURY3VycmVudF9uZnRfb3duZXIEBmFtb3VudAkBBXZhbHVlAQgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQEDHNlbGxlckFtb3VudAkAZQIFBmFtb3VudAkAaAIJAGkCBQZhbW91bnQAZAULcGxhdGZvcm1GZWUEDHBsYXRmb3JtX2ZlZQkAZQIFBmFtb3VudAUMc2VsbGVyQW1vdW50BBNyb3lhbGl0eVBlcmNlbnRhZ2UxBRJyb3lhbGl0eVBlcmNlbnRhZ2UEDnJveWFsaXR5QW1vdW50CQBpAgkAaAIFBmFtb3VudAkBDXBhcnNlSW50VmFsdWUBBRNyb3lhbGl0eVBlcmNlbnRhZ2UxAGQECnNlbGxlckNvc3QJAGUCBQZhbW91bnQJAGQCBQ5yb3lhbGl0eUFtb3VudAUMcGxhdGZvcm1fZmVlAwkAAAIFEWN1cnJlbnRfbmZ0X293bmVyCQClCAEIBQFpBmNhbGxlcgkAAgECKWN1cnJlbnQgT3duZXIgb2YgTkZUIG5vdCBhYmxlIHRvIHB1cmNoYXNlAwMJAAACCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFBXRlYW1zCQECIT0CBQdjcmVhdG9yBRFjdXJyZW50X25mdF9vd25lcgcJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyAAEFB2Fzc2V0SWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFEWN1cnJlbnRfbmZ0X293bmVyBQpzZWxsZXJDb3N0BQV0ZWFtcwkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQUHY3JlYXRvcgUOcm95YWxpdHlBbW91bnQFBXRlYW1zCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgIEbmZ0XwUFbmZ0SUQCDHBsYXRmb3JtX2ZlZQUMcGxhdGZvcm1fZmVlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQClCAEIBQFpBmNhbGxlcgUJc2VwYXJhdG9yBQRrQnV5CQCsAgIJAKwCAgUFbmZ0SUQFCXNlcGFyYXRvcgkApAMBBQZhbW91bnQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICCQCsAgICBG5mdF8FEWN1cnJlbnRfbmZ0X293bmVyAgZfb3duZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBG5mdF8FEWN1cnJlbnRfbmZ0X293bmVyAgZfb3duZXIJAKUIAQgFAWkGY2FsbGVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICBQVuZnRJRAUJc2VwYXJhdG9yAgZfb3duZXIJAKUIAQgFAWkGY2FsbGVyBQNuaWwDAwkAAAIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUFdGVhbXMJAAACBQdjcmVhdG9yBRFjdXJyZW50X25mdF9vd25lcgcJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyAAEFB2Fzc2V0SWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFEWN1cnJlbnRfbmZ0X293bmVyBQxzZWxsZXJBbW91bnQFBXRlYW1zCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgRuZnRfBQVuZnRJRAIMcGxhdGZvcm1fZmVlCQCkAwEFDHBsYXRmb3JtX2ZlZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkApQgBCAUBaQZjYWxsZXIFCXNlcGFyYXRvcgUEa0J1eQkArAICCQCsAgIFBW5mdElEBQlzZXBhcmF0b3IJAKQDAQUGYW1vdW50CQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgkArAICAgRuZnRfBRFjdXJyZW50X25mdF9vd25lcgIGX293bmVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgRuZnRfBRFjdXJyZW50X25mdF9vd25lcgIGX293bmVyCQClCAEIBQFpBmNhbGxlcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgUFbmZ0SUQFCXNlcGFyYXRvcgIGX293bmVyCQClCAEIBQFpBmNhbGxlcgUDbmlsAwMJAAACCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFBHVuaXQJAQIhPQIFB2NyZWF0b3IFEWN1cnJlbnRfbmZ0X293bmVyBwkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIAAQUHYXNzZXRJZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQURY3VycmVudF9uZnRfb3duZXIFCnNlbGxlckNvc3QFBHVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFB2NyZWF0b3IFDnJveWFsaXR5QW1vdW50BQR1bml0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgRuZnRfBQVuZnRJRAIMcGxhdGZvcm1fZmVlCQCkAwEFDHBsYXRmb3JtX2ZlZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkApQgBCAUBaQZjYWxsZXIFCXNlcGFyYXRvcgUEa0J1eQkArAICCQCsAgIFBW5mdElEBQlzZXBhcmF0b3IJAKQDAQUGYW1vdW50CQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgkArAICAgRuZnRfBRFjdXJyZW50X25mdF9vd25lcgIGX293bmVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgRuZnRfBRFjdXJyZW50X25mdF9vd25lcgIGX293bmVyCQClCAEIBQFpBmNhbGxlcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgUFbmZ0SUQFCXNlcGFyYXRvcgIGX293bmVyCQClCAEIBQFpBmNhbGxlcgUDbmlsAwMJAAACCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFBHVuaXQJAAACBQdjcmVhdG9yBRFjdXJyZW50X25mdF9vd25lcgcJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyAAEFB2Fzc2V0SWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFEWN1cnJlbnRfbmZ0X293bmVyBQxzZWxsZXJBbW91bnQFBHVuaXQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBG5mdF8FBW5mdElEAgxwbGF0Zm9ybV9mZWUJAKQDAQUMcGxhdGZvcm1fZmVlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQClCAEIBQFpBmNhbGxlcgUJc2VwYXJhdG9yBQRrQnV5CQCsAgIJAKwCAgUFbmZ0SUQFCXNlcGFyYXRvcgkApAMBBQZhbW91bnQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICCQCsAgICBG5mdF8FEWN1cnJlbnRfbmZ0X293bmVyAgZfb3duZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBG5mdF8FEWN1cnJlbnRfbmZ0X293bmVyAgZfb3duZXIJAKUIAQgFAWkGY2FsbGVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICBQVuZnRJRAUJc2VwYXJhdG9yAgZfb3duZXIJAKUIAQgFAWkGY2FsbGVyBQNuaWwFA25pbAFpAQpjYW5jZWxTZWxsAQVuZnRJZAQEdHhJZAkA2AQBCAUBaQ10cmFuc2FjdGlvbklkBAZzZWxsZXIICAUBaQZjYWxsZXIFYnl0ZXMJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIFBHR4SWQFBW5mdElkAgtfbmZ0X3N0YXR1cwIIQ0FOQ0VMRUQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBBQZzZWxsZXIAAQkA2QQBBQVuZnRJZAUDbmlsAWkBCmFkZEF1Y3Rpb24FBXN0YXJ0A2VuZApzdGFydFByaWNlCGR1cmF0aW9uEHBheW1lbnRfY3VycmVuY3kEBHR4SWQJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAQFbmZ0SWQJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAQFcHJpY2UJAQV2YWx1ZQEFCnN0YXJ0UHJpY2UECWVuZEhlaWdodAkAZAIIBQlsYXN0QmxvY2sGaGVpZ2h0BQhkdXJhdGlvbgQGY2FsbGVyCAgFAWkGY2FsbGVyBWJ5dGVzBBFjaGVja05mdEF1Y3Rpb25lZAQHJG1hdGNoMAkAnQgCBQR0aGlzCQCsAgIJAKwCAgkArAICCQDYBAEFBW5mdElkBQlzZXBhcmF0b3ICC25mdF9zdGF0dXNfCQDYBAEFBmNhbGxlcgMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAGBwMJAAACBRFjaGVja05mdEF1Y3Rpb25lZAYJAAIBAhdBbHJlYWR5IGluIGF1Y3Rpb24gbGlzdAMJAGYCBQhkdXJhdGlvbgUSbWF4QXVjdGlvbkR1cmF0aW9uCQACAQkArAICAjdEdXJhdGlvbiBpcyB0b28gbG9uZy4gTXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMzAgCQCkAwEFEm1heEF1Y3Rpb25EdXJhdGlvbgMJAAACCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFBHVuaXQJAAIBAhBORlQgbm90IGF0dGFjaGVkAwkAAAIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUFdGVhbXMJAAIBAhBORlQgbm90IGF0dGFjaGVkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICBQR0eElkAhZuZnRfc3RhcnRfYXVjdGlvbl9kYXRlCQDYBAEFBmNhbGxlcgUFc3RhcnQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIFBHR4SWQCFG5mdF9lbmRfYXVjdGlvbl9kYXRlCQDYBAEFBmNhbGxlcgUDZW5kCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIQX25mdF9zdGFydF9wcmljZQUKc3RhcnRQcmljZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCCl9uZnRfb3duZXIJAKUIAQgFAWkGY2FsbGVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIPX25mdF9vbl9hdWN0aW9uCQDYBAEFBW5mdElkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIQX3ByZXZpb3VzX2JpZGRlcgIEbm9uZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCDF9oaWdoZXN0X2JpZAIBMAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCDl93aW5uZXJfb2ZfbmZ0AgEwCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAINX2JpZGRlcl9jb3VudAIBMAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCC19uZnRfc3RhdHVzAgRPUEVOBQNuaWwBaQEIcGxhY2VCaWQFCWF1Y3Rpb25JZAVuZnRJZAluZnRfb3duZXIJYmlkX3ByaWNlEGN1cnJlbnRfY3VycmVuY3kEBHR4SWQJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAQGY2FsbGVyCAgFAWkGY2FsbGVyBWJ5dGVzBAdhc3NldElkCQDZBAEFBW5mdElkBAl0b2tlblR5cGUICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAQPY3VycmVudEJpZFByaWNlCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAQVZ2V0TGFzdFdpbm5lckJpZFByaWNlCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQCsAgIFCWF1Y3Rpb25JZAIMX2hpZ2hlc3RfYmlkBBhnZXRQcmV2aW91c0JpZGRlckFkZHJlc3MJAJ0IAgUEdGhpcwkArAICBQlhdWN0aW9uSWQCEF9wcmV2aW91c19iaWRkZXIED2N1cnJlbnRCaWRDb3VudAkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwkArAICBQlhdWN0aW9uSWQCDV9iaWRkZXJfY291bnQEFGdldExhc3RXaW5uZXJBZGRyZXNzCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQCsAgIFCWF1Y3Rpb25JZAIOX3dpbm5lcl9vZl9uZnQEEWNoZWNrTmZ0QXVjdGlvbmVkCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQCsAgIFCWF1Y3Rpb25JZAILX25mdF9zdGF0dXMDCQECIT0CBRFjaGVja05mdEF1Y3Rpb25lZAIET1BFTgkAAgECFE5vdCBvcGVuIGZvciBhdWN0aW9uAwkAZwIJAQ1wYXJzZUludFZhbHVlAQUVZ2V0TGFzdFdpbm5lckJpZFByaWNlBQ9jdXJyZW50QmlkUHJpY2UJAAIBAiVCaWQgaXMgbGVzcyB0aGVuIHN0YXJ0aW5nL2hpZ2hlc3QgQmlkAwkAAAIFFWdldExhc3RXaW5uZXJCaWRQcmljZQIBMAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFCWF1Y3Rpb25JZAIMX2hpZ2hlc3RfYmlkCQCkAwEFD2N1cnJlbnRCaWRQcmljZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFCWF1Y3Rpb25JZAIOX3dpbm5lcl9vZl9uZnQJANgEAQgIBQFpBmNhbGxlcgVieXRlcwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFCWF1Y3Rpb25JZAINX2JpZGRlcl9jb3VudAkApAMBCQBkAgkBDXBhcnNlSW50VmFsdWUBBQ9jdXJyZW50QmlkQ291bnQAAQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFCWF1Y3Rpb25JZAIHX25mdF9pZAkA2AQBBQdhc3NldElkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAgpfbmZ0X293bmVyBQluZnRfb3duZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgUEdHhJZAIBXwUJYXVjdGlvbklkAgxfaGlnaGVzdF9iaWQJAKQDAQUPY3VycmVudEJpZFByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIFBHR4SWQCAV8FCWF1Y3Rpb25JZAIHX3dpbm5lcgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIFBHR4SWQCAV8FCWF1Y3Rpb25JZAINX2JpZGRlcl9jb3VudAkApAMBCQBkAgkBDXBhcnNlSW50VmFsdWUBBQ9jdXJyZW50QmlkQ291bnQAAQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICBQR0eElkAgFfBQlhdWN0aW9uSWQCB19uZnRfaWQJANgEAQUHYXNzZXRJZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICBQR0eElkAgFfBQlhdWN0aW9uSWQCCl9uZnRfb3duZXIFCW5mdF9vd25lcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCD19iaWRfZm9yX25mdF9ieQkA2AQBBQZjYWxsZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQR0eElkAhBfYmlkX3ByaWNlX3BsYWNlBQliaWRfcHJpY2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQR0eElkAiZfcHJldmlvdXNfYmlkX2Ftb3VudF9yZWZ1bmRfdG9fYWRkcmVzcwUUZ2V0TGFzdFdpbm5lckFkZHJlc3MJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQR0eElkAhtfcHJldm9pdXNfYmlkX2Ftb3VudF9yZWZ1bmQFFWdldExhc3RXaW5uZXJCaWRQcmljZQUDbmlsAwkBAiE9AgUVZ2V0TGFzdFdpbm5lckJpZFByaWNlAgEwCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBRRnZXRMYXN0V2lubmVyQWRkcmVzcwkBDXBhcnNlSW50VmFsdWUBBRVnZXRMYXN0V2lubmVyQmlkUHJpY2UFCXRva2VuVHlwZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCJl9wcmV2aW91c19iaWRfYW1vdW50X3JlZnVuZF90b19hZGRyZXNzBRRnZXRMYXN0V2lubmVyQWRkcmVzcwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCG19wcmV2b2l1c19iaWRfYW1vdW50X3JlZnVuZAUVZ2V0TGFzdFdpbm5lckJpZFByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAg1fYmlkZGVyX2NvdW50CQCkAwEJAGQCCQENcGFyc2VJbnRWYWx1ZQEFD2N1cnJlbnRCaWRDb3VudAABCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAgxfaGlnaGVzdF9iaWQJAKQDAQUPY3VycmVudEJpZFByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAg5fd2lubmVyX29mX25mdAkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAgdfbmZ0X2lkCQDYBAEFB2Fzc2V0SWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCCl9uZnRfb3duZXIFCW5mdF9vd25lcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICBQR0eElkAgFfBQlhdWN0aW9uSWQCDF9oaWdoZXN0X2JpZAkApAMBBQ9jdXJyZW50QmlkUHJpY2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgUEdHhJZAIBXwUJYXVjdGlvbklkAgdfd2lubmVyCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgUEdHhJZAIBXwUJYXVjdGlvbklkAg1fYmlkZGVyX2NvdW50CQCkAwEJAGQCCQENcGFyc2VJbnRWYWx1ZQEFD2N1cnJlbnRCaWRDb3VudAABCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIFBHR4SWQCAV8FCWF1Y3Rpb25JZAIHX25mdF9pZAkA2AQBBQdhc3NldElkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIFBHR4SWQCAV8FCWF1Y3Rpb25JZAIKX25mdF9vd25lcgUJbmZ0X293bmVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIPX2JpZF9mb3JfbmZ0X2J5CQDYBAEFBmNhbGxlcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCEF9iaWRfcHJpY2VfcGxhY2UFCWJpZF9wcmljZQUDbmlsBQNuaWwBaQEOYWNjZXB0QmlkT2ZmZXIHCWF1Y3Rpb25JZAVuZnRJZBRiaWRfYW1vdW50X2Zyb21fdXNlchFjdXJyZW50X25mdF9vd25lcgdjcmVhdG9yEnJveWFsaXR5UGVyY2VudGFnZRBjdXJyZW50X2N1cnJlbmN5BAthc2ltaVN0cmluZwIsOXloSkRmV2pQcHY2dEZqV1JEMUFKeUJRd2F1c0pmMlpkeHpMbjg2VWtubnEEBHR4SWQJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAQKYW1vdW50VW5pdAkA2QQBBRBjdXJyZW50X2N1cnJlbmN5BAZjYWxsZXIICAUBaQZjYWxsZXIFYnl0ZXMEB2Fzc2V0SWQJANkEAQUFbmZ0SWQEEmdldE5mdFdpbm5pbmdQcmljZQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwkArAICBQlhdWN0aW9uSWQCDF9oaWdoZXN0X2JpZAQTZ2V0TmZ0V2lubmluZ2Ftb3VudAkAaAIJAGkCCQENcGFyc2VJbnRWYWx1ZQEFEmdldE5mdFdpbm5pbmdQcmljZQDoBwDPBwQMcGxhdGZvcm1fZmVlCQBoAgkAaQIJAQ1wYXJzZUludFZhbHVlAQUSZ2V0TmZ0V2lubmluZ1ByaWNlAOgHABkEDnJveWFsaXR5QW1vdW50CQBpAgkAaAIJAQ1wYXJzZUludFZhbHVlAQUSZ2V0TmZ0V2lubmluZ1ByaWNlCQENcGFyc2VJbnRWYWx1ZQEFEnJveWFsaXR5UGVyY2VudGFnZQBkBA1hdWN0aW9uZXJDb3N0CQBlAgkBDXBhcnNlSW50VmFsdWUBBRJnZXROZnRXaW5uaW5nUHJpY2UJAGQCBQ5yb3lhbGl0eUFtb3VudAUMcGxhdGZvcm1fZmVlBBBnZXRBdWN0aW9uV2lubmVyCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQCsAgIFCWF1Y3Rpb25JZAIOX3dpbm5lcl9vZl9uZnQDAwkAAAIFEGN1cnJlbnRfY3VycmVuY3kFC2FzaW1pU3RyaW5nCQECIT0CBQdjcmVhdG9yBRFjdXJyZW50X25mdF9vd25lcgcJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBBQZjYWxsZXIFDWF1Y3Rpb25lckNvc3QFCmFtb3VudFVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFEGdldEF1Y3Rpb25XaW5uZXIAAQUHYXNzZXRJZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQUHY3JlYXRvcgUOcm95YWxpdHlBbW91bnQFCmFtb3VudFVuaXQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQR0eElkAhVfYW1vdW50X3BhaWRfdG9fb3duZXIFEmdldE5mdFdpbm5pbmdQcmljZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCEF9uZnRfdHJhbnNmZXJfdG8FEGdldEF1Y3Rpb25XaW5uZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQR0eElkAgtfbmZ0X3N0YXR1cwIIUkVXQVJERUQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCFV9hbW91bnRfcGFpZF90b19vd25lcgUSZ2V0TmZ0V2lubmluZ1ByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAhBfbmZ0X3RyYW5zZmVyX3RvBRBnZXRBdWN0aW9uV2lubmVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAgtfbmZ0X3N0YXR1cwIIUkVXQVJERUQFA25pbAMDCQAAAgUQY3VycmVudF9jdXJyZW5jeQULYXNpbWlTdHJpbmcJAAACBQdjcmVhdG9yBRFjdXJyZW50X25mdF9vd25lcgcJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBBQZjYWxsZXIFE2dldE5mdFdpbm5pbmdhbW91bnQFCmFtb3VudFVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFEGdldEF1Y3Rpb25XaW5uZXIAAQUHYXNzZXRJZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCFV9hbW91bnRfcGFpZF90b19vd25lcgUSZ2V0TmZ0V2lubmluZ1ByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIQX25mdF90cmFuc2Zlcl90bwUQZ2V0QXVjdGlvbldpbm5lcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCC19uZnRfc3RhdHVzAghSRVdBUkRFRAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFCWF1Y3Rpb25JZAIVX2Ftb3VudF9wYWlkX3RvX293bmVyBRJnZXROZnRXaW5uaW5nUHJpY2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCEF9uZnRfdHJhbnNmZXJfdG8FEGdldEF1Y3Rpb25XaW5uZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCC19uZnRfc3RhdHVzAghSRVdBUkRFRAUDbmlsAwMJAAACBRBjdXJyZW50X2N1cnJlbmN5AgVXQVZFUwkBAiE9AgUHY3JlYXRvcgURY3VycmVudF9uZnRfb3duZXIHCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQUGY2FsbGVyBQ1hdWN0aW9uZXJDb3N0BQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBRBnZXRBdWN0aW9uV2lubmVyAAEFB2Fzc2V0SWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFB2NyZWF0b3IFDnJveWFsaXR5QW1vdW50BQR1bml0CQDMCAIJAQtTdHJpbmdFbnRyeQICDHBsYXRmb3JtX2ZlZQkApAMBBQxwbGF0Zm9ybV9mZWUJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQR0eElkAhVfYW1vdW50X3BhaWRfdG9fb3duZXIFEmdldE5mdFdpbm5pbmdQcmljZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCEF9uZnRfdHJhbnNmZXJfdG8FEGdldEF1Y3Rpb25XaW5uZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQR0eElkAgtfbmZ0X3N0YXR1cwIIUkVXQVJERUQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCFV9hbW91bnRfcGFpZF90b19vd25lcgUSZ2V0TmZ0V2lubmluZ1ByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAhBfbmZ0X3RyYW5zZmVyX3RvBRBnZXRBdWN0aW9uV2lubmVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAgtfbmZ0X3N0YXR1cwIIUkVXQVJERUQFA25pbAMDCQAAAgUQY3VycmVudF9jdXJyZW5jeQIFV0FWRVMJAAACBQdjcmVhdG9yBRFjdXJyZW50X25mdF9vd25lcgcJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBBQZjYWxsZXIFE2dldE5mdFdpbm5pbmdhbW91bnQFBHVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFEGdldEF1Y3Rpb25XaW5uZXIAAQUHYXNzZXRJZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCFV9hbW91bnRfcGFpZF90b19vd25lcgUSZ2V0TmZ0V2lubmluZ1ByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIQX25mdF90cmFuc2Zlcl90bwUQZ2V0QXVjdGlvbldpbm5lcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCC19uZnRfc3RhdHVzAghSRVdBUkRFRAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFCWF1Y3Rpb25JZAIVX2Ftb3VudF9wYWlkX3RvX293bmVyBRJnZXROZnRXaW5uaW5nUHJpY2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCEF9uZnRfdHJhbnNmZXJfdG8FEGdldEF1Y3Rpb25XaW5uZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCC19uZnRfc3RhdHVzAghSRVdBUkRFRAUDbmlsBQNuaWwBaQENY2FuY2VsQXVjdGlvbgEJYXVjdGlvbklkBAR0eElkCQDYBAEIBQFpDXRyYW5zYWN0aW9uSWQEBmNhbGxlcggIBQFpBmNhbGxlcgVieXRlcwQNYXVjdGlvblN0YXR1cwkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwkArAICBQlhdWN0aW9uSWQCC19uZnRfc3RhdHVzBA1iaWRkaW5nV2lubmVyCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQCsAgIFCWF1Y3Rpb25JZAIOX3dpbm5lcl9vZl9uZnQECG5mdE93bmVyCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQCsAgIFCWF1Y3Rpb25JZAIKX25mdF9vd25lcgQFbmZ0SWQJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAKwCAgUJYXVjdGlvbklkAg9fbmZ0X29uX2F1Y3Rpb24EDGJpZGRpbmdQcmljZQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwkArAICBQlhdWN0aW9uSWQCDF9oaWdoZXN0X2JpZAMJAAACBQ1iaWRkaW5nV2lubmVyAgEwCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICBQR0eElkBQlhdWN0aW9uSWQCC19uZnRfc3RhdHVzAghDQU5DRUxFRAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQUIbmZ0T3duZXIAAQkA2QQBBQVuZnRJZAUDbmlsAwkBAiE9AgUNYmlkZGluZ1dpbm5lcgIBMAkAAgECQ3Nvb3J5IHlvdSBjYW4ndCBjYW5jZWwgaXQgYmVjYXVzZSBhbHJlYWR5IGF1Y3Rpb24gcGxhY2VkIGJ5IHNvbWVvbmUFA25pbAFpARJtYW51YWxGdW5kVHJhbnNmZXIBDXJlY2VwaWVudEFkZHIEBnNlbmRlcggIBQFpBmNhbGxlcgVieXRlcwQHcmVjaXZlcgkA2QQBBQ1yZWNlcGllbnRBZGRyBAZhbW91bnQICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50AwkAAAIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUEdW5pdAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQDYBAEFBnNlbmRlcgIJX3RyYW5zZmVyBQZhbW91bnQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQDYBAEFBnNlbmRlcgIMX3RyYW5zZmVyX3RvBQ1yZWNlcGllbnRBZGRyCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQUHcmVjaXZlcgUGYW1vdW50BQR1bml0BQNuaWwDCQAAAggJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBQV0ZWFtcwkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQDYBAEFBnNlbmRlcgIJX3RyYW5zZmVyBQZhbW91bnQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQDYBAEFBnNlbmRlcgIMX3RyYW5zZmVyX3RvBQ1yZWNlcGllbnRBZGRyCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQUHcmVjaXZlcgUGYW1vdW50BQV0ZWFtcwUDbmlsBQNuaWwBaQEHbmZ0YmFjawEJYXVjdGlvbklkBAZjYWxsZXIICAUBaQZjYWxsZXIFYnl0ZXMEBW5mdElkCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQCsAgIFCWF1Y3Rpb25JZAIPX25mdF9vbl9hdWN0aW9uBAhuZnRPd25lcgkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwkArAICBQlhdWN0aW9uSWQCCl9uZnRfb3duZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCC19uZnRfc3RhdHVzAhFBdWN0aW9uX3RpbWUgb3ZlcgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQUIbmZ0T3duZXIAAQkA2QQBBQVuZnRJZAUDbmlsAWkBDXdpdGhkcmF3TW9uZXkCCWF1Y3Rpb25JZBBjdXJyZW50X2N1cnJlbmN5BAZjYWxsZXIICAUBaQZjYWxsZXIFYnl0ZXMEC2FzaW1pU3RyaW5nAiw5eWhKRGZXalBwdjZ0RmpXUkQxQUp5QlF3YXVzSmYyWmR4ekxuODZVa25ucQQEdHhJZAkA2AQBCAUBaQ10cmFuc2FjdGlvbklkBAphbW91bnRVbml0CQDZBAEFEGN1cnJlbnRfY3VycmVuY3kECGJpZFByaWNlCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQCsAgIFCWF1Y3Rpb25JZAIMX2hpZ2hlc3RfYmlkBAhhc0JpZGRlcgkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwkArAICBQlhdWN0aW9uSWQCB193aW5uZXIECWJpZEZvck5GVAkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwkArAICBQlhdWN0aW9uSWQCB19uZnRfaWQDCQAAAgUQY3VycmVudF9jdXJyZW5jeQULYXNpbWlTdHJpbmcJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCCF9uZnRfYmlkAghXSVRIRFJBVwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFCWF1Y3Rpb25JZAIHX25mdF9pZAUJYmlkRm9yTkZUCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAhxfYmlkZGluZ19wcmljZV9yZWZ1bmRfYW1vdW50BQhiaWRQcmljZQkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIJAQ1wYXJzZUludFZhbHVlAQUIYmlkUHJpY2UFCmFtb3VudFVuaXQFA25pbAMJAAACBRBjdXJyZW50X2N1cnJlbmN5AgVXQVZFUwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFCWF1Y3Rpb25JZAIIX25mdF9iaWQCCFdJVEhEUkFXCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAgdfbmZ0X2lkBQliaWRGb3JORlQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCHF9iaWRkaW5nX3ByaWNlX3JlZnVuZF9hbW91bnQFCGJpZFByaWNlCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgkBDXBhcnNlSW50VmFsdWUBBQhiaWRQcmljZQUEdW5pdAUDbmlsBQNuaWwBaQEUYnV5QWxsUHJvZHVjdHNfYXNpbWkBB25mdEluZm8EBWJ1eWVyCAUBaQZjYWxsZXIEDGJ1eWVyQmFsYW5jZQkA8AcCBQVidXllcgEghWOVo/OIjrDeDBeOCE6/mj+SuybbOuh2jhbcFCIqSH4EBG5mVDEJALUJAgkAkQMCBQduZnRJbmZvAAACAV8EBG5mVDIJALUJAgkAkQMCBQduZnRJbmZvAAECAV8EBG5mVDMJALUJAgkAkQMCBQduZnRJbmZvAAICAV8EBG5mVDQJALUJAgkAkQMCBQduZnRJbmZvAAMCAV8EBG5mVDUJALUJAgkAkQMCBQduZnRJbmZvAAQCAV8EBmFtb3VudAkBBXZhbHVlAQgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQECHJlYWxjb3N0CQBlAgUGYW1vdW50CQBoAgkAaQIFBmFtb3VudADoBwAZBAtwbGF0Zm9ybWZlZQkAZQIFBmFtb3VudAUIcmVhbGNvc3QEDnJveWFsaXR5QW1vdW50CQBoAgkAaQIFBmFtb3VudABkCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUEbmZUMQADBAhsYXN0Q29zdAkAZQIFBmFtb3VudAkAZAIFDnJveWFsaXR5QW1vdW50BQtwbGF0Zm9ybWZlZQQHYW1vdW50MQkBBXZhbHVlAQgJAJEDAggFAWkIcGF5bWVudHMAAQZhbW91bnQECXJlYWxjb3N0MQkAZQIFB2Ftb3VudDEJAGgCCQBpAgUHYW1vdW50MQDoBwAZBAxwbGF0Zm9ybWZlZTEJAGUCBQdhbW91bnQxBQlyZWFsY29zdDEED3JveWFsaXR5QW1vdW50MQkAaAIJAGkCBQdhbW91bnQxAGQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQRuZlQyAAMECWxhc3RDb3N0MQkAZQIFB2Ftb3VudDEJAGQCBQ9yb3lhbGl0eUFtb3VudDEFDHBsYXRmb3JtZmVlMQQHYW1vdW50MgkBBXZhbHVlAQgJAJEDAggFAWkIcGF5bWVudHMAAgZhbW91bnQECXJlYWxjb3N0MgkAZQIFB2Ftb3VudDIJAGgCCQBpAgUHYW1vdW50MgDoBwAZBAxwbGF0Zm9ybWZlZTIJAGUCBQdhbW91bnQyBQlyZWFsY29zdDIED3JveWFsaXR5QW1vdW50MgkAaAIJAGkCBQdhbW91bnQyAGQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQRuZlQzAAMECWxhc3RDb3N0MgkAZQIFB2Ftb3VudDIJAGQCBQ9yb3lhbGl0eUFtb3VudDIFDHBsYXRmb3JtZmVlMgQHYW1vdW50MwkBBXZhbHVlAQgJAJEDAggFAWkIcGF5bWVudHMAAwZhbW91bnQECXJlYWxjb3N0MwkAZQIFB2Ftb3VudDMJAGgCCQBpAgUHYW1vdW50MwDoBwAZBAxwbGF0Zm9ybWZlZTMJAGUCBQdhbW91bnQzBQlyZWFsY29zdDMED3JveWFsaXR5QW1vdW50MwkAaAIJAGkCBQdhbW91bnQzAGQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQRuZlQ0AAMECWxhc3RDb3N0MwkAZQIFB2Ftb3VudDMJAGQCBQ9yb3lhbGl0eUFtb3VudDMFDHBsYXRmb3JtZmVlMwQHYW1vdW50NAkBBXZhbHVlAQgJAJEDAggFAWkIcGF5bWVudHMABAZhbW91bnQECXJlYWxjb3N0NAkAZQIFB2Ftb3VudDQJAGgCCQBpAgUHYW1vdW50NADoBwAZBAxwbGF0Zm9ybWZlZTQJAGUCBQdhbW91bnQ0BQlyZWFsY29zdDQED3JveWFsaXR5QW1vdW50NAkAaAIJAGkCBQdhbW91bnQ0AGQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQRuZlQ1AAMECWxhc3RDb3N0NAkAZQIFB2Ftb3VudDQJAGQCBQ9yb3lhbGl0eUFtb3VudDQFDHBsYXRmb3JtZmVlNAMJAAACCQCQAwEFB25mdEluZm8AAQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAg9maXJzdF9uZnRfSW5mbz0CBW5mdElkCQCRAwIFBG5mVDEAAAIHY3JlYXRvcgkAkQMCBQRuZlQxAAQCD3JveWFsaXR5cGVyY2VudAkAkQMCBQRuZlQxAAMJAKwCAgIFYnV5ZXIJAKUIAQUFYnV5ZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICD2ZpcnN0X25mdF9JbmZvPQIOc2VsbGVyX2FkZHJlc3MJAJEDAgUEbmZUMQABCQCsAgICBXByaWNlCQCRAwIFBG5mVDEAAgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQVidXllcgABCQDZBAEJAJEDAgUEbmZUMQAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDEAAQUIbGFzdENvc3QBIIVjlaPziI6w3gwXjghOv5o/krsm2zrodo4W3BQiKkh+CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDEABAUOcm95YWxpdHlBbW91bnQBIIVjlaPziI6w3gwXjghOv5o/krsm2zrodo4W3BQiKkh+BQNuaWwDCQAAAgkAkAMBBQduZnRJbmZvAAIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIPZmlyc3RfbmZ0X0luZm89AgVuZnRJZAkAkQMCBQRuZlQxAAACDnNlbGxlcl9hZGRyZXNzCQCRAwIFBG5mVDEAAQIFcHJpY2UJAJEDAgUEbmZUMQACCQCsAgICBWJ1eWVyCQClCAEFBWJ1eWVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICEHNlY29uZF9uZnRfSW5mbz0CBW5mdElkCQCRAwIFBG5mVDIAAAIOc2VsbGVyX2FkZHJlc3MJAJEDAgUEbmZUMgABAgVwcmljZQkAkQMCBQRuZlQyAAIJAKwCAgIFYnV5ZXIJAKUIAQUFYnV5ZXIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUFYnV5ZXIAAQkA2QQBCQCRAwIFBG5mVDEAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQVidXllcgABCQDZBAEJAJEDAgUEbmZUMgAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDEAAQUIbGFzdENvc3QBIIVjlaPziI6w3gwXjghOv5o/krsm2zrodo4W3BQiKkh+CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDEABAUOcm95YWxpdHlBbW91bnQBIIVjlaPziI6w3gwXjghOv5o/krsm2zrodo4W3BQiKkh+CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDIAAQUJbGFzdENvc3QxASCFY5Wj84iOsN4MF44ITr+aP5K7Jts66HaOFtwUIipIfgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQyAAQFD3JveWFsaXR5QW1vdW50MQEghWOVo/OIjrDeDBeOCE6/mj+SuybbOuh2jhbcFCIqSH4FA25pbAMJAAACCQCQAwEFB25mdEluZm8AAwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAg9maXJzdF9uZnRfSW5mbz0CBW5mdElkCQCRAwIFBG5mVDEAAAIOc2VsbGVyX2FkZHJlc3MJAJEDAgUEbmZUMQABAgVwcmljZQkAkQMCBQRuZlQxAAIJAKwCAgIFYnV5ZXIJAKUIAQUFYnV5ZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIQc2Vjb25kX25mdF9JbmZvPQIFbmZ0SWQJAJEDAgUEbmZUMgAAAg5zZWxsZXJfYWRkcmVzcwkAkQMCBQRuZlQyAAECBXByaWNlCQCRAwIFBG5mVDIAAgkArAICAgVidXllcgkApQgBBQVidXllcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAg90aGlyZF9uZnRfSW5mbz0CBW5mdElkCQCRAwIFBG5mVDMAAAIOc2VsbGVyX2FkZHJlc3MJAJEDAgUEbmZUMwABAgVwcmljZQkAkQMCBQRuZlQzAAIJAKwCAgIFYnV5ZXIJAKUIAQUFYnV5ZXIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUFYnV5ZXIAAQkA2QQBCQCRAwIFBG5mVDEAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQVidXllcgABCQDZBAEJAJEDAgUEbmZUMgAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFBWJ1eWVyAAEJANkEAQkAkQMCBQRuZlQzAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMQABBQhsYXN0Q29zdAEghWOVo/OIjrDeDBeOCE6/mj+SuybbOuh2jhbcFCIqSH4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMQAEBQ5yb3lhbGl0eUFtb3VudAEghWOVo/OIjrDeDBeOCE6/mj+SuybbOuh2jhbcFCIqSH4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMgABBQlsYXN0Q29zdDEBIIVjlaPziI6w3gwXjghOv5o/krsm2zrodo4W3BQiKkh+CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDIABAUPcm95YWxpdHlBbW91bnQxASCFY5Wj84iOsN4MF44ITr+aP5K7Jts66HaOFtwUIipIfgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQzAAEFCWxhc3RDb3N0MgEghWOVo/OIjrDeDBeOCE6/mj+SuybbOuh2jhbcFCIqSH4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMwAEBQ9yb3lhbGl0eUFtb3VudDIBIIVjlaPziI6w3gwXjghOv5o/krsm2zrodo4W3BQiKkh+BQNuaWwDCQAAAgkAkAMBBQduZnRJbmZvAAQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIPZmlyc3RfbmZ0X0luZm89AgVuZnRJZAkAkQMCBQRuZlQxAAACDnNlbGxlcl9hZGRyZXNzCQCRAwIFBG5mVDEAAQIFcHJpY2UJAJEDAgUEbmZUMQACCQCsAgICBWJ1eWVyCQClCAEFBWJ1eWVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICEHNlY29uZF9uZnRfSW5mbz0CBW5mdElkCQCRAwIFBG5mVDIAAAIOc2VsbGVyX2FkZHJlc3MJAJEDAgUEbmZUMgABAgVwcmljZQkAkQMCBQRuZlQyAAIJAKwCAgIFYnV5ZXIJAKUIAQUFYnV5ZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIPdGhpcmRfbmZ0X0luZm89AgVuZnRJZAkAkQMCBQRuZlQzAAACDnNlbGxlcl9hZGRyZXNzCQCRAwIFBG5mVDMAAQIFcHJpY2UJAJEDAgUEbmZUMwACCQCsAgICBWJ1eWVyCQClCAEFBWJ1eWVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICEGZvdXJ0aF9uZnRfSW5mbz0CBW5mdElkCQCRAwIFBG5mVDQAAAIOc2VsbGVyX2FkZHJlc3MJAJEDAgUEbmZUNAABAgVwcmljZQkAkQMCBQRuZlQ0AAIJAKwCAgIFYnV5ZXIJAKUIAQUFYnV5ZXIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUFYnV5ZXIAAQkA2QQBCQCRAwIFBG5mVDEAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQVidXllcgABCQDZBAEJAJEDAgUEbmZUMgAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFBWJ1eWVyAAEJANkEAQkAkQMCBQRuZlQzAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUFYnV5ZXIAAQkA2QQBCQCRAwIFBG5mVDQAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQxAAEFCGxhc3RDb3N0ASCFY5Wj84iOsN4MF44ITr+aP5K7Jts66HaOFtwUIipIfgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQxAAQFDnJveWFsaXR5QW1vdW50ASCFY5Wj84iOsN4MF44ITr+aP5K7Jts66HaOFtwUIipIfgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQyAAEFCWxhc3RDb3N0MQEghWOVo/OIjrDeDBeOCE6/mj+SuybbOuh2jhbcFCIqSH4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMgAEBQ9yb3lhbGl0eUFtb3VudDEBIIVjlaPziI6w3gwXjghOv5o/krsm2zrodo4W3BQiKkh+CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDMAAQUJbGFzdENvc3QyASCFY5Wj84iOsN4MF44ITr+aP5K7Jts66HaOFtwUIipIfgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQzAAQFD3JveWFsaXR5QW1vdW50MgEghWOVo/OIjrDeDBeOCE6/mj+SuybbOuh2jhbcFCIqSH4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUNAABBQlsYXN0Q29zdDMBIIVjlaPziI6w3gwXjghOv5o/krsm2zrodo4W3BQiKkh+CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDQABAUPcm95YWxpdHlBbW91bnQzASCFY5Wj84iOsN4MF44ITr+aP5K7Jts66HaOFtwUIipIfgUDbmlsAwkAAAIJAJADAQUHbmZ0SW5mbwAFCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICD2ZpcnN0X25mdF9JbmZvPQIFbmZ0SWQJAJEDAgUEbmZUMQAAAg5zZWxsZXJfYWRkcmVzcwkAkQMCBQRuZlQxAAECBXByaWNlCQCRAwIFBG5mVDEAAgkArAICAgVidXllcgkApQgBBQVidXllcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAhBzZWNvbmRfbmZ0X0luZm89AgVuZnRJZAkAkQMCBQRuZlQyAAACDnNlbGxlcl9hZGRyZXNzCQCRAwIFBG5mVDIAAQIFcHJpY2UJAJEDAgUEbmZUMgACCQCsAgICBWJ1eWVyCQClCAEFBWJ1eWVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICD3RoaXJkX25mdF9JbmZvPQIFbmZ0SWQJAJEDAgUEbmZUMwAAAg5zZWxsZXJfYWRkcmVzcwkAkQMCBQRuZlQzAAECBXByaWNlCQCRAwIFBG5mVDMAAgkArAICAgVidXllcgkApQgBBQVidXllcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAhBmb3VydGhfbmZ0X0luZm89AgVuZnRJZAkAkQMCBQRuZlQ0AAACDnNlbGxlcl9hZGRyZXNzCQCRAwIFBG5mVDQAAQIFcHJpY2UJAJEDAgUEbmZUNAACCQCsAgICBWJ1eWVyCQClCAEFBWJ1eWVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICD2ZpZnRoX25mdF9JbmZvPQIFbmZ0SWQJAJEDAgUEbmZUNQAAAg5zZWxsZXJfYWRkcmVzcwkAkQMCBQRuZlQ1AAECBXByaWNlCQCRAwIFBG5mVDUAAgkArAICAgVidXllcgkApQgBBQVidXllcgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQVidXllcgABCQDZBAEJAJEDAgUEbmZUMQAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFBWJ1eWVyAAEJANkEAQkAkQMCBQRuZlQyAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUFYnV5ZXIAAQkA2QQBCQCRAwIFBG5mVDMAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQVidXllcgABCQDZBAEJAJEDAgUEbmZUNAAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFBWJ1eWVyAAEJANkEAQkAkQMCBQRuZlQ1AAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMQABBQhsYXN0Q29zdAEghWOVo/OIjrDeDBeOCE6/mj+SuybbOuh2jhbcFCIqSH4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMQAEBQ5yb3lhbGl0eUFtb3VudAEghWOVo/OIjrDeDBeOCE6/mj+SuybbOuh2jhbcFCIqSH4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMgABBQlsYXN0Q29zdDEBIIVjlaPziI6w3gwXjghOv5o/krsm2zrodo4W3BQiKkh+CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDIABAUPcm95YWxpdHlBbW91bnQxASCFY5Wj84iOsN4MF44ITr+aP5K7Jts66HaOFtwUIipIfgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQzAAEFCWxhc3RDb3N0MgEghWOVo/OIjrDeDBeOCE6/mj+SuybbOuh2jhbcFCIqSH4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMwAEBQ9yb3lhbGl0eUFtb3VudDIBIIVjlaPziI6w3gwXjghOv5o/krsm2zrodo4W3BQiKkh+CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDQAAQUJbGFzdENvc3QzASCFY5Wj84iOsN4MF44ITr+aP5K7Jts66HaOFtwUIipIfgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQ0AAQFD3JveWFsaXR5QW1vdW50MwEghWOVo/OIjrDeDBeOCE6/mj+SuybbOuh2jhbcFCIqSH4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUNQABBQlsYXN0Q29zdDQBIIVjlaPziI6w3gwXjghOv5o/krsm2zrodo4W3BQiKkh+CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDUABAUPcm95YWxpdHlBbW91bnQ0ASCFY5Wj84iOsN4MF44ITr+aP5K7Jts66HaOFtwUIipIfgUDbmlsAwkAZgIJAJADAQUHbmZ0SW5mbwAFCQACAQItc29ycnkhIG1heGltdW0gbGltaXQgb2YgeW91ciAgY2FydCBpcyA1IGl0ZW1zBQNuaWwBaQEUYnV5QWxsUHJvZHVjdHNfd2F2ZXMBB25mdEluZm8EBWJ1eWVyCAUBaQZjYWxsZXIEDGJ1eWVyQmFsYW5jZQkA8AcCBQVidXllcgUFV0FWRVMEBG5mVDEJALUJAgkAkQMCBQduZnRJbmZvAAACAV8EBG5mVDIJALUJAgkAkQMCBQduZnRJbmZvAAECAV8EBG5mVDMJALUJAgkAkQMCBQduZnRJbmZvAAICAV8EBG5mVDQJALUJAgkAkQMCBQduZnRJbmZvAAMCAV8EBG5mVDUJALUJAgkAkQMCBQduZnRJbmZvAAQCAV8EBmFtb3VudAkBBXZhbHVlAQgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQECHJlYWxjb3N0CQBlAgUGYW1vdW50CQBoAgkAaQIFBmFtb3VudADoBwAZBAtwbGF0Zm9ybWZlZQkAZQIFBmFtb3VudAUIcmVhbGNvc3QEDnJveWFsaXR5QW1vdW50CQBoAgkAaQIFBmFtb3VudABkCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUEbmZUMQADBAhsYXN0Q29zdAkAZQIFBmFtb3VudAkAZAIFDnJveWFsaXR5QW1vdW50BQtwbGF0Zm9ybWZlZQQHYW1vdW50MQkBBXZhbHVlAQgJAJEDAggFAWkIcGF5bWVudHMAAQZhbW91bnQECXJlYWxjb3N0MQkAZQIFB2Ftb3VudDEJAGgCCQBpAgUHYW1vdW50MQDoBwAZBAxwbGF0Zm9ybWZlZTEJAGUCBQdhbW91bnQxBQlyZWFsY29zdDEED3JveWFsaXR5QW1vdW50MQkAaAIJAGkCBQdhbW91bnQxAGQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQRuZlQyAAMECWxhc3RDb3N0MQkAZQIFB2Ftb3VudDEJAGQCBQ9yb3lhbGl0eUFtb3VudDEFDHBsYXRmb3JtZmVlMQQHYW1vdW50MgkBBXZhbHVlAQgJAJEDAggFAWkIcGF5bWVudHMAAgZhbW91bnQECXJlYWxjb3N0MgkAZQIFB2Ftb3VudDIJAGgCCQBpAgUHYW1vdW50MgDoBwAZBAxwbGF0Zm9ybWZlZTIJAGUCBQdhbW91bnQyBQlyZWFsY29zdDIED3JveWFsaXR5QW1vdW50MgkAaAIJAGkCBQdhbW91bnQyAGQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQRuZlQzAAMECWxhc3RDb3N0MgkAZQIFB2Ftb3VudDIJAGQCBQ9yb3lhbGl0eUFtb3VudDIFDHBsYXRmb3JtZmVlMgQHYW1vdW50MwkBBXZhbHVlAQgJAJEDAggFAWkIcGF5bWVudHMAAwZhbW91bnQECXJlYWxjb3N0MwkAZQIFB2Ftb3VudDMJAGgCCQBpAgUHYW1vdW50MwDoBwAZBAxwbGF0Zm9ybWZlZTMJAGUCBQdhbW91bnQzBQlyZWFsY29zdDMED3JveWFsaXR5QW1vdW50MwkAaAIJAGkCBQdhbW91bnQzAGQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQRuZlQ0AAMECWxhc3RDb3N0MwkAZQIFB2Ftb3VudDMJAGQCBQ9yb3lhbGl0eUFtb3VudDMFDHBsYXRmb3JtZmVlMwQHYW1vdW50NAkBBXZhbHVlAQgJAJEDAggFAWkIcGF5bWVudHMABAZhbW91bnQECXJlYWxjb3N0NAkAZQIFB2Ftb3VudDQJAGgCCQBpAgUHYW1vdW50NADoBwAZBAxwbGF0Zm9ybWZlZTQJAGUCBQdhbW91bnQ0BQlyZWFsY29zdDQED3JveWFsaXR5QW1vdW50NAkAaAIJAGkCBQdhbW91bnQ0AGQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQRuZlQ1AAMECWxhc3RDb3N0NAkAZQIFB2Ftb3VudDQJAGQCBQ9yb3lhbGl0eUFtb3VudDQFDHBsYXRmb3JtZmVlNAMJAAACCQCQAwEFB25mdEluZm8AAQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAg9maXJzdF9uZnRfSW5mbz0CBW5mdElkCQCRAwIFBG5mVDEAAAIOc2VsbGVyX2FkZHJlc3MJAJEDAgUEbmZUMQABAgVwcmljZQkAkQMCBQRuZlQxAAIJAKwCAgIFYnV5ZXIJAKUIAQUFYnV5ZXIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUFYnV5ZXIAAQkA2QQBCQCRAwIFBG5mVDEAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQxAAEFCGxhc3RDb3N0BQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDEABAUOcm95YWxpdHlBbW91bnQFBHVuaXQFA25pbAMJAAACCQCQAwEFB25mdEluZm8AAgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAg9maXJzdF9uZnRfSW5mbz0CBW5mdElkCQCRAwIFBG5mVDEAAAIOc2VsbGVyX2FkZHJlc3MJAJEDAgUEbmZUMQABAgVwcmljZQkAkQMCBQRuZlQxAAIJAKwCAgIFYnV5ZXIJAKUIAQUFYnV5ZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIQc2Vjb25kX25mdF9JbmZvPQIFbmZ0SWQJAJEDAgUEbmZUMgAAAg5zZWxsZXJfYWRkcmVzcwkAkQMCBQRuZlQyAAECBXByaWNlCQCRAwIFBG5mVDIAAgkArAICAgVidXllcgkApQgBBQVidXllcgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQVidXllcgABCQDZBAEJAJEDAgUEbmZUMQAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFBWJ1eWVyAAEJANkEAQkAkQMCBQRuZlQyAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMQABBQhsYXN0Q29zdAUEdW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQxAAQFDnJveWFsaXR5QW1vdW50BQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDIAAQUJbGFzdENvc3QxBQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDIABAUPcm95YWxpdHlBbW91bnQxBQR1bml0BQNuaWwDCQAAAgkAkAMBBQduZnRJbmZvAAMJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIPZmlyc3RfbmZ0X0luZm89AgVuZnRJZAkAkQMCBQRuZlQxAAACDnNlbGxlcl9hZGRyZXNzCQCRAwIFBG5mVDEAAQIFcHJpY2UJAJEDAgUEbmZUMQACCQCsAgICBWJ1eWVyCQClCAEFBWJ1eWVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICEHNlY29uZF9uZnRfSW5mbz0CBW5mdElkCQCRAwIFBG5mVDIAAAIOc2VsbGVyX2FkZHJlc3MJAJEDAgUEbmZUMgABAgVwcmljZQkAkQMCBQRuZlQyAAIJAKwCAgIFYnV5ZXIJAKUIAQUFYnV5ZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIPdGhpcmRfbmZ0X0luZm89AgVuZnRJZAkAkQMCBQRuZlQzAAACDnNlbGxlcl9hZGRyZXNzCQCRAwIFBG5mVDMAAQIFcHJpY2UJAJEDAgUEbmZUMwACCQCsAgICBWJ1eWVyCQClCAEFBWJ1eWVyCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFBWJ1eWVyAAEJANkEAQkAkQMCBQRuZlQxAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUFYnV5ZXIAAQkA2QQBCQCRAwIFBG5mVDIAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQVidXllcgABCQDZBAEJAJEDAgUEbmZUMwAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDEAAQUIbGFzdENvc3QFBHVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMQAEBQ5yb3lhbGl0eUFtb3VudAUEdW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQyAAEFCWxhc3RDb3N0MQUEdW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQyAAQFD3JveWFsaXR5QW1vdW50MQUEdW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQzAAEFCWxhc3RDb3N0MgUEdW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQzAAQFD3JveWFsaXR5QW1vdW50MgUEdW5pdAUDbmlsAwkAAAIJAJADAQUHbmZ0SW5mbwAECQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICD2ZpcnN0X25mdF9JbmZvPQIFbmZ0SWQJAJEDAgUEbmZUMQAAAg5zZWxsZXJfYWRkcmVzcwkAkQMCBQRuZlQxAAECBXByaWNlCQCRAwIFBG5mVDEAAgkArAICAgVidXllcgkApQgBBQVidXllcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAhBzZWNvbmRfbmZ0X0luZm89AgVuZnRJZAkAkQMCBQRuZlQyAAACDnNlbGxlcl9hZGRyZXNzCQCRAwIFBG5mVDIAAQIFcHJpY2UJAJEDAgUEbmZUMgACCQCsAgICBWJ1eWVyCQClCAEFBWJ1eWVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICD3RoaXJkX25mdF9JbmZvPQIFbmZ0SWQJAJEDAgUEbmZUMwAAAg5zZWxsZXJfYWRkcmVzcwkAkQMCBQRuZlQzAAECBXByaWNlCQCRAwIFBG5mVDMAAgkArAICAgVidXllcgkApQgBBQVidXllcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAhBmb3VydGhfbmZ0X0luZm89AgVuZnRJZAkAkQMCBQRuZlQ0AAACDnNlbGxlcl9hZGRyZXNzCQCRAwIFBG5mVDQAAQIFcHJpY2UJAJEDAgUEbmZUNAACCQCsAgICBWJ1eWVyCQClCAEFBWJ1eWVyCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFBWJ1eWVyAAEJANkEAQkAkQMCBQRuZlQxAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUFYnV5ZXIAAQkA2QQBCQCRAwIFBG5mVDIAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQVidXllcgABCQDZBAEJAJEDAgUEbmZUMwAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFBWJ1eWVyAAEJANkEAQkAkQMCBQRuZlQ0AAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMQABBQhsYXN0Q29zdAUEdW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQxAAQFDnJveWFsaXR5QW1vdW50BQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDIAAQUJbGFzdENvc3QxBQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDIABAUPcm95YWxpdHlBbW91bnQxBQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDMAAQUJbGFzdENvc3QyBQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDMABAUPcm95YWxpdHlBbW91bnQyBQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDQAAQUJbGFzdENvc3QzBQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDQABAUPcm95YWxpdHlBbW91bnQzBQR1bml0BQNuaWwDCQAAAgkAkAMBBQduZnRJbmZvAAUJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIPZmlyc3RfbmZ0X0luZm89AgVuZnRJZAkAkQMCBQRuZlQxAAACDnNlbGxlcl9hZGRyZXNzCQCRAwIFBG5mVDEAAQIFcHJpY2UJAJEDAgUEbmZUMQACCQCsAgICBWJ1eWVyCQClCAEFBWJ1eWVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICEHNlY29uZF9uZnRfSW5mbz0CBW5mdElkCQCRAwIFBG5mVDIAAAIOc2VsbGVyX2FkZHJlc3MJAJEDAgUEbmZUMgABAgVwcmljZQkAkQMCBQRuZlQyAAIJAKwCAgIFYnV5ZXIJAKUIAQUFYnV5ZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIPdGhpcmRfbmZ0X0luZm89AgVuZnRJZAkAkQMCBQRuZlQzAAACDnNlbGxlcl9hZGRyZXNzCQCRAwIFBG5mVDMAAQIFcHJpY2UJAJEDAgUEbmZUMwACCQCsAgICBWJ1eWVyCQClCAEFBWJ1eWVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICEGZvdXJ0aF9uZnRfSW5mbz0CBW5mdElkCQCRAwIFBG5mVDQAAAIOc2VsbGVyX2FkZHJlc3MJAJEDAgUEbmZUNAABAgVwcmljZQkAkQMCBQRuZlQ0AAIJAKwCAgIFYnV5ZXIJAKUIAQUFYnV5ZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIPZmlmdGhfbmZ0X0luZm89AgVuZnRJZAkAkQMCBQRuZlQ1AAACDnNlbGxlcl9hZGRyZXNzCQCRAwIFBG5mVDUAAQIFcHJpY2UJAJEDAgUEbmZUNQACCQCsAgICBWJ1eWVyCQClCAEFBWJ1eWVyCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFBWJ1eWVyAAEJANkEAQkAkQMCBQRuZlQxAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUFYnV5ZXIAAQkA2QQBCQCRAwIFBG5mVDIAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQVidXllcgABCQDZBAEJAJEDAgUEbmZUMwAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFBWJ1eWVyAAEJANkEAQkAkQMCBQRuZlQ0AAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUFYnV5ZXIAAQkA2QQBCQCRAwIFBG5mVDUAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQxAAEFCGxhc3RDb3N0BQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDEABAUOcm95YWxpdHlBbW91bnQFBHVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMgABBQlsYXN0Q29zdDEFBHVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMgAEBQ9yb3lhbGl0eUFtb3VudDEFBHVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMwABBQlsYXN0Q29zdDIFBHVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMwAEBQ9yb3lhbGl0eUFtb3VudDIFBHVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUNAABBQlsYXN0Q29zdDMFBHVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUNAAEBQ9yb3lhbGl0eUFtb3VudDMFBHVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUNQABBQlsYXN0Q29zdDQFBHVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUNQAEBQ9yb3lhbGl0eUFtb3VudDQFBHVuaXQFA25pbAMJAGYCCQCQAwEFB25mdEluZm8ABQkAAgECLXNvcnJ5ISBtYXhpbXVtIGxpbWl0IG9mIHlvdXIgIGNhcnQgaXMgNSBpdGVtcwUDbmlsAWkBEXdpdGhkcmF3RWFybkFzaW1pAgtwbGF0Zm9ybUZlZQZhbW91bnQEDG93bmVyQWRkcmVzcwEaAVQ+6ANwZrxdTDKg1y4O6Kcf7uy9OpsKfQUDCQECIT0CCAgFAWkGY2FsbGVyBWJ5dGVzBQxvd25lckFkZHJlc3MJAAIBAhlzb3JyeSAgeW91IGhhdmUgbm8gYWNjZXNzAwMJAGcCBQtwbGF0Zm9ybUZlZQAACQBnAgULcGxhdGZvcm1GZWUFBmFtb3VudAcJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyCQBoAgUGYW1vdW50AGQFBXRlYW1zBQNuaWwFA25pbAFpARF3aXRoZHJhd0Vhcm5XYXZlcwILcGxhdGZvcm1GZWUGYW1vdW50BAxvd25lckFkZHJlc3MBGgFUPugDcGa8XUwyoNcuDuinH+7svTqbCn0FAwkBAiE9AggIBQFpBmNhbGxlcgVieXRlcwUMb3duZXJBZGRyZXNzCQACAQIZc29ycnkgIHlvdSBoYXZlIG5vIGFjY2VzcwMDCQBnAgULcGxhdGZvcm1GZWUAAAkAZwIFC3BsYXRmb3JtRmVlBQZhbW91bnQHCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgkAaAIFBmFtb3VudACAwtcvBQR1bml0BQNuaWwFA25pbAFpAQ5zZXRQbGF0Zm9ybWZlZQELcGxhdGZvcm1GZWUEBWFkbWluCAgFAWkGY2FsbGVyBWJ5dGVzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkA2AQBBQVhZG1pbgIFYWRtaW4JAKwCAgULcGxhdGZvcm1GZWUCC3BsYXRmb3JtRmVlBQNuaWwBAnR4AQZ2ZXJpZnkABAckbWF0Y2gwBQJ0eAMJAAECBQckbWF0Y2gwAhRTZXRTY3JpcHRUcmFuc2FjdGlvbgQLc2V0U2NyaXB0VHgFByRtYXRjaDAGBzGbS10=", "height": 2611899, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8PApBXPm5kdTrXuFijANedyZaC2JCozLAhpAFCJyzKDX Next: Ch7WL8i1e3vcTNKCUp4DpHFjyvmWCDiSJ8aGH7FVfRmK Diff:
OldNewDifferences
5555 let C = Issue(s, z, 1, 0, false)
5656 let D = calculateAssetId(C)
5757 let E = p.transactionId
58- let F = "setPaused"
59- if ((F == "true"))
58+ let q = getString(this, "setPaused")
59+ if ((q == "true"))
6060 then throw("Minting is paused by admin")
6161 else [C, ScriptTransfer(p.caller, 1, D), StringEntry(((toBase58String(D) + a) + "Owner"), toString(p.caller)), StringEntry(((toBase58String(D) + a) + "nft_type"), v), StringEntry(((toBase58String(D) + a) + "nft_tags"), w), StringEntry(((toBase58String(D) + a) + "nft_dAppAddress"), u), StringEntry(((toBase58String(E) + a) + "royalityPercentage"), y), IntegerEntry(((toBase58String(D) + a) + "nft_selling_price"), x), StringEntry(((toBase58String(D) + a) + "nft_onSell"), A), StringEntry(((toBase58String(D) + a) + "nft_data"), B), StringEntry(((toBase58String(E) + a) + "issue_nft"), toBase58String(D))]
6262 }
6464
6565
6666 @Callable(p)
67-func sellNFT (G,H) = {
67+func sellNFT (F,G) = {
6868 let E = p.transactionId
69- let I = p.caller.bytes
70- let J = $Tuple2(value(p.payments[0].assetId), value(p.payments[0].amount))
71- let K = J._1
72- let L = J._2
73- if (!(l(K)))
69+ let H = p.caller.bytes
70+ let I = $Tuple2(value(p.payments[0].assetId), value(p.payments[0].amount))
71+ let J = I._1
72+ let K = I._2
73+ if (!(l(J)))
7474 then throw("Token is not NFT")
75- else [StringEntry(((c + a) + toBase58String(value(p.payments[0].assetId))), G), StringEntry(((toString(p.caller) + a) + d), (((toBase58String(K) + a) + toString(L)) + H))]
75+ else [StringEntry(((c + a) + toBase58String(value(p.payments[0].assetId))), F), StringEntry(((toString(p.caller) + a) + d), (((toBase58String(J) + a) + toString(K)) + G))]
7676 }
7777
7878
7979
8080 @Callable(p)
81-func buyNFT (M,N,O,y,P) = {
82- let m = fromBase58String(M)
83- let Q = {
84- let n = getString(this, (("nft_" + N) + "_owner"))
81+func buyNFT (L,M,N,y,O) = {
82+ let m = fromBase58String(L)
83+ let P = {
84+ let n = getString(this, (("nft_" + M) + "_owner"))
8585 if ($isInstanceOf(n, "String"))
8686 then {
87- let R = n
88- R
87+ let Q = n
88+ Q
8989 }
9090 else false
9191 }
92- let G = getStringValue(((((c + a) + M) + "_") + N))
93- let S = value(p.payments[0].amount)
94- let T = (S - ((S / 100) * P))
95- let U = (S - T)
96- let V = y
97- let W = ((S * parseIntValue(V)) / 100)
98- let X = (S - (W + U))
99- if ((N == toString(p.caller)))
92+ let F = getStringValue(((((c + a) + L) + "_") + M))
93+ let R = value(p.payments[0].amount)
94+ let S = (R - ((R / 100) * O))
95+ let T = (R - S)
96+ let U = y
97+ let V = ((R * parseIntValue(U)) / 100)
98+ let W = (R - (V + T))
99+ if ((M == toString(p.caller)))
100100 then throw("current Owner of NFT not able to purchase")
101101 else if (if ((p.payments[0].assetId == f))
102- then (O != N)
102+ then (N != M)
103103 else false)
104- then [ScriptTransfer(p.caller, 1, m), ScriptTransfer(Address(fromBase58String(N)), X, f), ScriptTransfer(Address(fromBase58String(O)), W, f), IntegerEntry((("nft_" + M) + "platform_fee"), U), StringEntry(((toString(p.caller) + a) + b), ((M + a) + toString(S))), DeleteEntry((("nft_" + N) + "_owner")), StringEntry((("nft_" + N) + "_owner"), toString(p.caller)), StringEntry(((M + a) + "_owner"), toString(p.caller))]
104+ then [ScriptTransfer(p.caller, 1, m), ScriptTransfer(Address(fromBase58String(M)), W, f), ScriptTransfer(Address(fromBase58String(N)), V, f), IntegerEntry((("nft_" + L) + "platform_fee"), T), StringEntry(((toString(p.caller) + a) + b), ((L + a) + toString(R))), DeleteEntry((("nft_" + M) + "_owner")), StringEntry((("nft_" + M) + "_owner"), toString(p.caller)), StringEntry(((L + a) + "_owner"), toString(p.caller))]
105105 else if (if ((p.payments[0].assetId == f))
106- then (O == N)
106+ then (N == M)
107107 else false)
108- then [ScriptTransfer(p.caller, 1, m), ScriptTransfer(Address(fromBase58String(N)), T, f), StringEntry((("nft_" + M) + "platform_fee"), toString(U)), StringEntry(((toString(p.caller) + a) + b), ((M + a) + toString(S))), DeleteEntry((("nft_" + N) + "_owner")), StringEntry((("nft_" + N) + "_owner"), toString(p.caller)), StringEntry(((M + a) + "_owner"), toString(p.caller))]
108+ then [ScriptTransfer(p.caller, 1, m), ScriptTransfer(Address(fromBase58String(M)), S, f), StringEntry((("nft_" + L) + "platform_fee"), toString(T)), StringEntry(((toString(p.caller) + a) + b), ((L + a) + toString(R))), DeleteEntry((("nft_" + M) + "_owner")), StringEntry((("nft_" + M) + "_owner"), toString(p.caller)), StringEntry(((L + a) + "_owner"), toString(p.caller))]
109109 else if (if ((p.payments[0].assetId == unit))
110- then (O != N)
110+ then (N != M)
111111 else false)
112- then [ScriptTransfer(p.caller, 1, m), ScriptTransfer(Address(fromBase58String(N)), X, unit), ScriptTransfer(Address(fromBase58String(O)), W, unit), StringEntry((("nft_" + M) + "platform_fee"), toString(U)), StringEntry(((toString(p.caller) + a) + b), ((M + a) + toString(S))), DeleteEntry((("nft_" + N) + "_owner")), StringEntry((("nft_" + N) + "_owner"), toString(p.caller)), StringEntry(((M + a) + "_owner"), toString(p.caller))]
112+ then [ScriptTransfer(p.caller, 1, m), ScriptTransfer(Address(fromBase58String(M)), W, unit), ScriptTransfer(Address(fromBase58String(N)), V, unit), StringEntry((("nft_" + L) + "platform_fee"), toString(T)), StringEntry(((toString(p.caller) + a) + b), ((L + a) + toString(R))), DeleteEntry((("nft_" + M) + "_owner")), StringEntry((("nft_" + M) + "_owner"), toString(p.caller)), StringEntry(((L + a) + "_owner"), toString(p.caller))]
113113 else if (if ((p.payments[0].assetId == unit))
114- then (O == N)
114+ then (N == M)
115115 else false)
116- then [ScriptTransfer(p.caller, 1, m), ScriptTransfer(Address(fromBase58String(N)), T, unit), StringEntry((("nft_" + M) + "platform_fee"), toString(U)), StringEntry(((toString(p.caller) + a) + b), ((M + a) + toString(S))), DeleteEntry((("nft_" + N) + "_owner")), StringEntry((("nft_" + N) + "_owner"), toString(p.caller)), StringEntry(((M + a) + "_owner"), toString(p.caller))]
116+ then [ScriptTransfer(p.caller, 1, m), ScriptTransfer(Address(fromBase58String(M)), S, unit), StringEntry((("nft_" + L) + "platform_fee"), toString(T)), StringEntry(((toString(p.caller) + a) + b), ((L + a) + toString(R))), DeleteEntry((("nft_" + M) + "_owner")), StringEntry((("nft_" + M) + "_owner"), toString(p.caller)), StringEntry(((L + a) + "_owner"), toString(p.caller))]
117117 else nil
118118 }
119119
120120
121121
122122 @Callable(p)
123-func cancelSell (Y) = {
123+func cancelSell (X) = {
124124 let E = toBase58String(p.transactionId)
125- let I = p.caller.bytes
126-[StringEntry(((E + Y) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(I), 1, fromBase58String(Y))]
125+ let H = p.caller.bytes
126+[StringEntry(((E + X) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(H), 1, fromBase58String(X))]
127127 }
128128
129129
130130
131131 @Callable(p)
132-func addAuction (Z,aa,ab,ac,H) = {
132+func addAuction (Y,Z,aa,ab,G) = {
133133 let E = toBase58String(p.transactionId)
134- let Y = value(p.payments[0].assetId)
135- let G = value(ab)
136- let ad = (lastBlock.height + ac)
134+ let X = value(p.payments[0].assetId)
135+ let F = value(aa)
136+ let ac = (lastBlock.height + ab)
137137 let r = p.caller.bytes
138- let ae = {
139- let n = getString(this, (((toBase58String(Y) + a) + "nft_status_") + toBase58String(r)))
138+ let ad = {
139+ let n = getString(this, (((toBase58String(X) + a) + "nft_status_") + toBase58String(r)))
140140 if ($isInstanceOf(n, "String"))
141141 then {
142- let R = n
142+ let Q = n
143143 true
144144 }
145145 else false
146146 }
147- if ((ae == true))
147+ if ((ad == true))
148148 then throw("Already in auction list")
149- else if ((ac > e))
149+ else if ((ab > e))
150150 then throw(("Duration is too long. Must be less than or equal to 30 " + toString(e)))
151151 else if ((p.payments[0].assetId == unit))
152152 then throw("NFT not attached")
153153 else if ((p.payments[0].assetId == f))
154154 then throw("NFT not attached")
155- else [StringEntry(((E + "nft_start_auction_date") + toBase58String(r)), Z), StringEntry(((E + "nft_end_auction_date") + toBase58String(r)), aa), StringEntry((E + "_nft_start_price"), ab), StringEntry((E + "_nft_owner"), toString(p.caller)), StringEntry((E + "_nft_on_auction"), toBase58String(Y)), StringEntry((E + "_previous_bidder"), "none"), StringEntry((E + "_highest_bid"), "0"), StringEntry((E + "_winner_of_nft"), "0"), StringEntry((E + "_bidder_count"), "0"), StringEntry((E + "_nft_status"), "OPEN")]
155+ else [StringEntry(((E + "nft_start_auction_date") + toBase58String(r)), Y), StringEntry(((E + "nft_end_auction_date") + toBase58String(r)), Z), StringEntry((E + "_nft_start_price"), aa), StringEntry((E + "_nft_owner"), toString(p.caller)), StringEntry((E + "_nft_on_auction"), toBase58String(X)), StringEntry((E + "_previous_bidder"), "none"), StringEntry((E + "_highest_bid"), "0"), StringEntry((E + "_winner_of_nft"), "0"), StringEntry((E + "_bidder_count"), "0"), StringEntry((E + "_nft_status"), "OPEN")]
156156 }
157157
158158
159159
160160 @Callable(p)
161-func placeBid (af,Y,t,ag,ah) = {
161+func placeBid (ae,X,t,af,ag) = {
162162 let E = toBase58String(p.transactionId)
163163 let r = p.caller.bytes
164- let m = fromBase58String(Y)
165- let ai = p.payments[0].assetId
166- let aj = p.payments[0].amount
167- let ak = getStringValue(this, (af + "_highest_bid"))
168- let al = getString(this, (af + "_previous_bidder"))
169- let am = getStringValue(this, (af + "_bidder_count"))
170- let an = getStringValue(this, (af + "_winner_of_nft"))
171- let ae = getStringValue(this, (af + "_nft_status"))
172- if ((ae != "OPEN"))
164+ let m = fromBase58String(X)
165+ let ah = p.payments[0].assetId
166+ let ai = p.payments[0].amount
167+ let aj = getStringValue(this, (ae + "_highest_bid"))
168+ let ak = getString(this, (ae + "_previous_bidder"))
169+ let al = getStringValue(this, (ae + "_bidder_count"))
170+ let am = getStringValue(this, (ae + "_winner_of_nft"))
171+ let ad = getStringValue(this, (ae + "_nft_status"))
172+ if ((ad != "OPEN"))
173173 then throw("Not open for auction")
174- else if ((parseIntValue(ak) >= aj))
174+ else if ((parseIntValue(aj) >= ai))
175175 then throw("Bid is less then starting/highest Bid")
176- else if ((ak == "0"))
177- then [StringEntry((af + "_highest_bid"), toString(aj)), StringEntry((af + "_winner_of_nft"), toBase58String(p.caller.bytes)), StringEntry((af + "_bidder_count"), toString((parseIntValue(am) + 1))), StringEntry((af + "_nft_id"), toBase58String(m)), StringEntry((af + "_nft_owner"), t), StringEntry((((E + "_") + af) + "_highest_bid"), toString(aj)), StringEntry((((E + "_") + af) + "_winner"), toBase58String(p.caller.bytes)), StringEntry((((E + "_") + af) + "_bidder_count"), toString((parseIntValue(am) + 1))), StringEntry((((E + "_") + af) + "_nft_id"), toBase58String(m)), StringEntry((((E + "_") + af) + "_nft_owner"), t), StringEntry((E + "_bid_for_nft_by"), toBase58String(r)), StringEntry((E + "_bid_price_place"), ag), StringEntry((E + "_previous_bid_amount_refund_to_address"), an), StringEntry((E + "_prevoius_bid_amount_refund"), ak)]
178- else if ((ak != "0"))
179- then [ScriptTransfer(Address(fromBase58String(an)), parseIntValue(ak), ai), StringEntry((E + "_previous_bid_amount_refund_to_address"), an), StringEntry((E + "_prevoius_bid_amount_refund"), ak), StringEntry((af + "_bidder_count"), toString((parseIntValue(am) + 1))), StringEntry((af + "_highest_bid"), toString(aj)), StringEntry((af + "_winner_of_nft"), toBase58String(p.caller.bytes)), StringEntry((af + "_nft_id"), toBase58String(m)), StringEntry((af + "_nft_owner"), t), StringEntry((((E + "_") + af) + "_highest_bid"), toString(aj)), StringEntry((((E + "_") + af) + "_winner"), toBase58String(p.caller.bytes)), StringEntry((((E + "_") + af) + "_bidder_count"), toString((parseIntValue(am) + 1))), StringEntry((((E + "_") + af) + "_nft_id"), toBase58String(m)), StringEntry((((E + "_") + af) + "_nft_owner"), t), StringEntry((E + "_bid_for_nft_by"), toBase58String(r)), StringEntry((E + "_bid_price_place"), ag)]
176+ else if ((aj == "0"))
177+ then [StringEntry((ae + "_highest_bid"), toString(ai)), StringEntry((ae + "_winner_of_nft"), toBase58String(p.caller.bytes)), StringEntry((ae + "_bidder_count"), toString((parseIntValue(al) + 1))), StringEntry((ae + "_nft_id"), toBase58String(m)), StringEntry((ae + "_nft_owner"), t), StringEntry((((E + "_") + ae) + "_highest_bid"), toString(ai)), StringEntry((((E + "_") + ae) + "_winner"), toBase58String(p.caller.bytes)), StringEntry((((E + "_") + ae) + "_bidder_count"), toString((parseIntValue(al) + 1))), StringEntry((((E + "_") + ae) + "_nft_id"), toBase58String(m)), StringEntry((((E + "_") + ae) + "_nft_owner"), t), StringEntry((E + "_bid_for_nft_by"), toBase58String(r)), StringEntry((E + "_bid_price_place"), af), StringEntry((E + "_previous_bid_amount_refund_to_address"), am), StringEntry((E + "_prevoius_bid_amount_refund"), aj)]
178+ else if ((aj != "0"))
179+ then [ScriptTransfer(Address(fromBase58String(am)), parseIntValue(aj), ah), StringEntry((E + "_previous_bid_amount_refund_to_address"), am), StringEntry((E + "_prevoius_bid_amount_refund"), aj), StringEntry((ae + "_bidder_count"), toString((parseIntValue(al) + 1))), StringEntry((ae + "_highest_bid"), toString(ai)), StringEntry((ae + "_winner_of_nft"), toBase58String(p.caller.bytes)), StringEntry((ae + "_nft_id"), toBase58String(m)), StringEntry((ae + "_nft_owner"), t), StringEntry((((E + "_") + ae) + "_highest_bid"), toString(ai)), StringEntry((((E + "_") + ae) + "_winner"), toBase58String(p.caller.bytes)), StringEntry((((E + "_") + ae) + "_bidder_count"), toString((parseIntValue(al) + 1))), StringEntry((((E + "_") + ae) + "_nft_id"), toBase58String(m)), StringEntry((((E + "_") + ae) + "_nft_owner"), t), StringEntry((E + "_bid_for_nft_by"), toBase58String(r)), StringEntry((E + "_bid_price_place"), af)]
180180 else nil
181181 }
182182
183183
184184
185185 @Callable(p)
186-func acceptBidOffer (af,Y,ao,N,O,y,ah) = {
187- let ap = "9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq"
186+func acceptBidOffer (ae,X,an,M,N,y,ag) = {
187+ let ao = "9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq"
188188 let E = toBase58String(p.transactionId)
189- let aq = fromBase58String(ah)
189+ let ap = fromBase58String(ag)
190190 let r = p.caller.bytes
191- let m = fromBase58String(Y)
192- let ar = getStringValue(this, (af + "_highest_bid"))
193- let as = ((parseIntValue(ar) / 1000) * 975)
194- let U = ((parseIntValue(ar) / 1000) * 25)
195- let W = ((parseIntValue(ar) * parseIntValue(y)) / 100)
196- let at = (parseIntValue(ar) - (W + U))
197- let au = getStringValue(this, (af + "_winner_of_nft"))
198- if (if ((ah == ap))
199- then (O != N)
191+ let m = fromBase58String(X)
192+ let aq = getStringValue(this, (ae + "_highest_bid"))
193+ let ar = ((parseIntValue(aq) / 1000) * 975)
194+ let T = ((parseIntValue(aq) / 1000) * 25)
195+ let V = ((parseIntValue(aq) * parseIntValue(y)) / 100)
196+ let as = (parseIntValue(aq) - (V + T))
197+ let at = getStringValue(this, (ae + "_winner_of_nft"))
198+ if (if ((ag == ao))
199+ then (N != M)
200200 else false)
201- then [ScriptTransfer(Address(r), at, aq), ScriptTransfer(Address(fromBase58String(au)), 1, m), ScriptTransfer(Address(fromBase58String(O)), W, aq), StringEntry((E + "_amount_paid_to_owner"), ar), StringEntry((E + "_nft_transfer_to"), au), StringEntry((E + "_nft_status"), "REWARDED"), StringEntry((af + "_amount_paid_to_owner"), ar), StringEntry((af + "_nft_transfer_to"), au), StringEntry((af + "_nft_status"), "REWARDED")]
202- else if (if ((ah == ap))
203- then (O == N)
201+ then [ScriptTransfer(Address(r), as, ap), ScriptTransfer(Address(fromBase58String(at)), 1, m), ScriptTransfer(Address(fromBase58String(N)), V, ap), StringEntry((E + "_amount_paid_to_owner"), aq), StringEntry((E + "_nft_transfer_to"), at), StringEntry((E + "_nft_status"), "REWARDED"), StringEntry((ae + "_amount_paid_to_owner"), aq), StringEntry((ae + "_nft_transfer_to"), at), StringEntry((ae + "_nft_status"), "REWARDED")]
202+ else if (if ((ag == ao))
203+ then (N == M)
204204 else false)
205- then [ScriptTransfer(Address(r), as, aq), ScriptTransfer(Address(fromBase58String(au)), 1, m), StringEntry((E + "_amount_paid_to_owner"), ar), StringEntry((E + "_nft_transfer_to"), au), StringEntry((E + "_nft_status"), "REWARDED"), StringEntry((af + "_amount_paid_to_owner"), ar), StringEntry((af + "_nft_transfer_to"), au), StringEntry((af + "_nft_status"), "REWARDED")]
206- else if (if ((ah == "WAVES"))
207- then (O != N)
205+ then [ScriptTransfer(Address(r), ar, ap), ScriptTransfer(Address(fromBase58String(at)), 1, m), StringEntry((E + "_amount_paid_to_owner"), aq), StringEntry((E + "_nft_transfer_to"), at), StringEntry((E + "_nft_status"), "REWARDED"), StringEntry((ae + "_amount_paid_to_owner"), aq), StringEntry((ae + "_nft_transfer_to"), at), StringEntry((ae + "_nft_status"), "REWARDED")]
206+ else if (if ((ag == "WAVES"))
207+ then (N != M)
208208 else false)
209- then [ScriptTransfer(Address(r), at, unit), ScriptTransfer(Address(fromBase58String(au)), 1, m), ScriptTransfer(Address(fromBase58String(O)), W, unit), StringEntry("platform_fee", toString(U)), StringEntry((E + "_amount_paid_to_owner"), ar), StringEntry((E + "_nft_transfer_to"), au), StringEntry((E + "_nft_status"), "REWARDED"), StringEntry((af + "_amount_paid_to_owner"), ar), StringEntry((af + "_nft_transfer_to"), au), StringEntry((af + "_nft_status"), "REWARDED")]
210- else if (if ((ah == "WAVES"))
211- then (O == N)
209+ then [ScriptTransfer(Address(r), as, unit), ScriptTransfer(Address(fromBase58String(at)), 1, m), ScriptTransfer(Address(fromBase58String(N)), V, unit), StringEntry("platform_fee", toString(T)), StringEntry((E + "_amount_paid_to_owner"), aq), StringEntry((E + "_nft_transfer_to"), at), StringEntry((E + "_nft_status"), "REWARDED"), StringEntry((ae + "_amount_paid_to_owner"), aq), StringEntry((ae + "_nft_transfer_to"), at), StringEntry((ae + "_nft_status"), "REWARDED")]
210+ else if (if ((ag == "WAVES"))
211+ then (N == M)
212212 else false)
213- then [ScriptTransfer(Address(r), as, unit), ScriptTransfer(Address(fromBase58String(au)), 1, m), StringEntry((E + "_amount_paid_to_owner"), ar), StringEntry((E + "_nft_transfer_to"), au), StringEntry((E + "_nft_status"), "REWARDED"), StringEntry((af + "_amount_paid_to_owner"), ar), StringEntry((af + "_nft_transfer_to"), au), StringEntry((af + "_nft_status"), "REWARDED")]
213+ then [ScriptTransfer(Address(r), ar, unit), ScriptTransfer(Address(fromBase58String(at)), 1, m), StringEntry((E + "_amount_paid_to_owner"), aq), StringEntry((E + "_nft_transfer_to"), at), StringEntry((E + "_nft_status"), "REWARDED"), StringEntry((ae + "_amount_paid_to_owner"), aq), StringEntry((ae + "_nft_transfer_to"), at), StringEntry((ae + "_nft_status"), "REWARDED")]
214214 else nil
215215 }
216216
217217
218218
219219 @Callable(p)
220-func cancelAuction (af) = {
220+func cancelAuction (ae) = {
221221 let E = toBase58String(p.transactionId)
222222 let r = p.caller.bytes
223- let av = getStringValue(this, (af + "_nft_status"))
224- let aw = getStringValue(this, (af + "_winner_of_nft"))
225- let ax = getStringValue(this, (af + "_nft_owner"))
226- let Y = getStringValue(this, (af + "_nft_on_auction"))
227- let ay = getStringValue(this, (af + "_highest_bid"))
228- if ((aw == "0"))
229- then [StringEntry(((E + af) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(fromBase58String(ax)), 1, fromBase58String(Y))]
230- else if ((aw != "0"))
223+ let au = getStringValue(this, (ae + "_nft_status"))
224+ let av = getStringValue(this, (ae + "_winner_of_nft"))
225+ let aw = getStringValue(this, (ae + "_nft_owner"))
226+ let X = getStringValue(this, (ae + "_nft_on_auction"))
227+ let ax = getStringValue(this, (ae + "_highest_bid"))
228+ if ((av == "0"))
229+ then [StringEntry(((E + ae) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(fromBase58String(aw)), 1, fromBase58String(X))]
230+ else if ((av != "0"))
231231 then throw("soory you can't cancel it because already auction placed by someone")
232232 else nil
233233 }
235235
236236
237237 @Callable(p)
238-func manualFundTransfer (az) = {
239- let aA = p.caller.bytes
240- let aB = fromBase58String(az)
241- let S = p.payments[0].amount
238+func manualFundTransfer (ay) = {
239+ let az = p.caller.bytes
240+ let aA = fromBase58String(ay)
241+ let R = p.payments[0].amount
242242 if ((p.payments[0].assetId == unit))
243- then [IntegerEntry((toBase58String(aA) + "_transfer"), S), StringEntry((toBase58String(aA) + "_transfer_to"), az), ScriptTransfer(Address(aB), S, unit)]
243+ then [IntegerEntry((toBase58String(az) + "_transfer"), R), StringEntry((toBase58String(az) + "_transfer_to"), ay), ScriptTransfer(Address(aA), R, unit)]
244244 else if ((p.payments[0].assetId == f))
245- then [IntegerEntry((toBase58String(aA) + "_transfer"), S), StringEntry((toBase58String(aA) + "_transfer_to"), az), ScriptTransfer(Address(aB), S, f)]
245+ then [IntegerEntry((toBase58String(az) + "_transfer"), R), StringEntry((toBase58String(az) + "_transfer_to"), ay), ScriptTransfer(Address(aA), R, f)]
246246 else nil
247247 }
248248
249249
250250
251251 @Callable(p)
252-func nftback (af) = {
252+func nftback (ae) = {
253253 let r = p.caller.bytes
254- let Y = getStringValue(this, (af + "_nft_on_auction"))
255- let ax = getStringValue(this, (af + "_nft_owner"))
256-[StringEntry((af + "_nft_status"), "Auction_time over"), ScriptTransfer(Address(fromBase58String(ax)), 1, fromBase58String(Y))]
254+ let X = getStringValue(this, (ae + "_nft_on_auction"))
255+ let aw = getStringValue(this, (ae + "_nft_owner"))
256+[StringEntry((ae + "_nft_status"), "Auction_time over"), ScriptTransfer(Address(fromBase58String(aw)), 1, fromBase58String(X))]
257257 }
258258
259259
260260
261261 @Callable(p)
262-func withdrawMoney (af,ah) = {
262+func withdrawMoney (ae,ag) = {
263263 let r = p.caller.bytes
264- let ap = "9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq"
264+ let ao = "9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq"
265265 let E = toBase58String(p.transactionId)
266- let aq = fromBase58String(ah)
267- let aC = getStringValue(this, (af + "_highest_bid"))
268- let aD = getStringValue(this, (af + "_winner"))
269- let aE = getStringValue(this, (af + "_nft_id"))
270- if ((ah == ap))
271- then [StringEntry((af + "_nft_bid"), "WITHDRAW"), StringEntry((af + "_nft_id"), aE), StringEntry((af + "_bidding_price_refund_amount"), aC), ScriptTransfer(p.caller, parseIntValue(aC), aq)]
272- else if ((ah == "WAVES"))
273- then [StringEntry((af + "_nft_bid"), "WITHDRAW"), StringEntry((af + "_nft_id"), aE), StringEntry((af + "_bidding_price_refund_amount"), aC), ScriptTransfer(p.caller, parseIntValue(aC), unit)]
266+ let ap = fromBase58String(ag)
267+ let aB = getStringValue(this, (ae + "_highest_bid"))
268+ let aC = getStringValue(this, (ae + "_winner"))
269+ let aD = getStringValue(this, (ae + "_nft_id"))
270+ if ((ag == ao))
271+ then [StringEntry((ae + "_nft_bid"), "WITHDRAW"), StringEntry((ae + "_nft_id"), aD), StringEntry((ae + "_bidding_price_refund_amount"), aB), ScriptTransfer(p.caller, parseIntValue(aB), ap)]
272+ else if ((ag == "WAVES"))
273+ then [StringEntry((ae + "_nft_bid"), "WITHDRAW"), StringEntry((ae + "_nft_id"), aD), StringEntry((ae + "_bidding_price_refund_amount"), aB), ScriptTransfer(p.caller, parseIntValue(aB), unit)]
274274 else nil
275275 }
276276
277277
278278
279279 @Callable(p)
280-func buyAllProducts_asimi (aF) = {
281- let aG = p.caller
282- let aH = assetBalance(aG, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')
283- let aI = split(aF[0], "_")
284- let aJ = split(aF[1], "_")
285- let aK = split(aF[2], "_")
286- let aL = split(aF[3], "_")
287- let aM = split(aF[4], "_")
288- let S = value(p.payments[0].amount)
289- let aN = (S - ((S / 1000) * 25))
290- let aO = (S - aN)
291- let W = ((S / 100) * parseIntValue(aI[3]))
292- let aP = (S - (W + aO))
293- let aQ = value(p.payments[1].amount)
294- let aR = (aQ - ((aQ / 1000) * 25))
295- let aS = (aQ - aR)
296- let aT = ((aQ / 100) * parseIntValue(aJ[3]))
297- let aU = (aQ - (aT + aS))
298- let aV = value(p.payments[2].amount)
299- let aW = (aV - ((aV / 1000) * 25))
300- let aX = (aV - aW)
301- let aY = ((aV / 100) * parseIntValue(aK[3]))
302- let aZ = (aV - (aY + aX))
303- let ba = value(p.payments[3].amount)
304- let bb = (ba - ((ba / 1000) * 25))
305- let bc = (ba - bb)
306- let bd = ((ba / 100) * parseIntValue(aL[3]))
307- let be = (ba - (bd + bc))
308- let bf = value(p.payments[4].amount)
309- let bg = (bf - ((bf / 1000) * 25))
310- let bh = (bf - bg)
311- let bi = ((bf / 100) * parseIntValue(aM[3]))
312- let bj = (bf - (bi + bh))
313- if ((size(aF) == 1))
314- then [StringEntry((((((("first_nft_Info=" + "nftId") + aI[0]) + "creator") + aI[4]) + "royalitypercent") + aI[3]), ("buyer" + toString(aG))), StringEntry((("first_nft_Info=" + "seller_address") + aI[1]), ("price" + aI[2])), ScriptTransfer(aG, 1, fromBase58String(aI[0])), ScriptTransfer(Address(fromBase58String(aI[1])), aP, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[4])), W, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
315- else if ((size(aF) == 2))
316- then [StringEntry((((((("first_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aG))), StringEntry((((((("second_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aG))), ScriptTransfer(aG, 1, fromBase58String(aI[0])), ScriptTransfer(aG, 1, fromBase58String(aJ[0])), ScriptTransfer(Address(fromBase58String(aI[1])), aP, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[4])), W, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[1])), aU, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[4])), aT, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
317- else if ((size(aF) == 3))
318- then [StringEntry((((((("first_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aG))), StringEntry((((((("second_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aG))), StringEntry((((((("third_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aG))), ScriptTransfer(aG, 1, fromBase58String(aI[0])), ScriptTransfer(aG, 1, fromBase58String(aJ[0])), ScriptTransfer(aG, 1, fromBase58String(aK[0])), ScriptTransfer(Address(fromBase58String(aI[1])), aP, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[4])), W, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[1])), aU, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[4])), aT, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aK[1])), aZ, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aK[4])), aY, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
319- else if ((size(aF) == 4))
320- then [StringEntry((((((("first_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aG))), StringEntry((((((("second_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aG))), StringEntry((((((("third_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aG))), StringEntry((((((("fourth_nft_Info=" + "nftId") + aL[0]) + "seller_address") + aL[1]) + "price") + aL[2]), ("buyer" + toString(aG))), ScriptTransfer(aG, 1, fromBase58String(aI[0])), ScriptTransfer(aG, 1, fromBase58String(aJ[0])), ScriptTransfer(aG, 1, fromBase58String(aK[0])), ScriptTransfer(aG, 1, fromBase58String(aL[0])), ScriptTransfer(Address(fromBase58String(aI[1])), aP, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[4])), W, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[1])), aU, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[4])), aT, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aK[1])), aZ, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aK[4])), aY, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aL[1])), be, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aL[4])), bd, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
321- else if ((size(aF) == 5))
322- then [StringEntry((((((("first_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aG))), StringEntry((((((("second_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aG))), StringEntry((((((("third_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aG))), StringEntry((((((("fourth_nft_Info=" + "nftId") + aL[0]) + "seller_address") + aL[1]) + "price") + aL[2]), ("buyer" + toString(aG))), StringEntry((((((("fifth_nft_Info=" + "nftId") + aM[0]) + "seller_address") + aM[1]) + "price") + aM[2]), ("buyer" + toString(aG))), ScriptTransfer(aG, 1, fromBase58String(aI[0])), ScriptTransfer(aG, 1, fromBase58String(aJ[0])), ScriptTransfer(aG, 1, fromBase58String(aK[0])), ScriptTransfer(aG, 1, fromBase58String(aL[0])), ScriptTransfer(aG, 1, fromBase58String(aM[0])), ScriptTransfer(Address(fromBase58String(aI[1])), aP, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[4])), W, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[1])), aU, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[4])), aT, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aK[1])), aZ, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aK[4])), aY, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aL[1])), be, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aL[4])), bd, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aM[1])), bj, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aM[4])), bi, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
323- else if ((size(aF) > 5))
280+func buyAllProducts_asimi (aE) = {
281+ let aF = p.caller
282+ let aG = assetBalance(aF, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')
283+ let aH = split(aE[0], "_")
284+ let aI = split(aE[1], "_")
285+ let aJ = split(aE[2], "_")
286+ let aK = split(aE[3], "_")
287+ let aL = split(aE[4], "_")
288+ let R = value(p.payments[0].amount)
289+ let aM = (R - ((R / 1000) * 25))
290+ let aN = (R - aM)
291+ let V = ((R / 100) * parseIntValue(aH[3]))
292+ let aO = (R - (V + aN))
293+ let aP = value(p.payments[1].amount)
294+ let aQ = (aP - ((aP / 1000) * 25))
295+ let aR = (aP - aQ)
296+ let aS = ((aP / 100) * parseIntValue(aI[3]))
297+ let aT = (aP - (aS + aR))
298+ let aU = value(p.payments[2].amount)
299+ let aV = (aU - ((aU / 1000) * 25))
300+ let aW = (aU - aV)
301+ let aX = ((aU / 100) * parseIntValue(aJ[3]))
302+ let aY = (aU - (aX + aW))
303+ let aZ = value(p.payments[3].amount)
304+ let ba = (aZ - ((aZ / 1000) * 25))
305+ let bb = (aZ - ba)
306+ let bc = ((aZ / 100) * parseIntValue(aK[3]))
307+ let bd = (aZ - (bc + bb))
308+ let be = value(p.payments[4].amount)
309+ let bf = (be - ((be / 1000) * 25))
310+ let bg = (be - bf)
311+ let bh = ((be / 100) * parseIntValue(aL[3]))
312+ let bi = (be - (bh + bg))
313+ if ((size(aE) == 1))
314+ then [StringEntry((((((("first_nft_Info=" + "nftId") + aH[0]) + "creator") + aH[4]) + "royalitypercent") + aH[3]), ("buyer" + toString(aF))), StringEntry((("first_nft_Info=" + "seller_address") + aH[1]), ("price" + aH[2])), ScriptTransfer(aF, 1, fromBase58String(aH[0])), ScriptTransfer(Address(fromBase58String(aH[1])), aO, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aH[4])), V, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
315+ else if ((size(aE) == 2))
316+ then [StringEntry((((((("first_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aF))), StringEntry((((((("second_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aF))), ScriptTransfer(aF, 1, fromBase58String(aH[0])), ScriptTransfer(aF, 1, fromBase58String(aI[0])), ScriptTransfer(Address(fromBase58String(aH[1])), aO, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aH[4])), V, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[1])), aT, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[4])), aS, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
317+ else if ((size(aE) == 3))
318+ then [StringEntry((((((("first_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aF))), StringEntry((((((("second_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aF))), StringEntry((((((("third_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aF))), ScriptTransfer(aF, 1, fromBase58String(aH[0])), ScriptTransfer(aF, 1, fromBase58String(aI[0])), ScriptTransfer(aF, 1, fromBase58String(aJ[0])), ScriptTransfer(Address(fromBase58String(aH[1])), aO, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aH[4])), V, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[1])), aT, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[4])), aS, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[1])), aY, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[4])), aX, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
319+ else if ((size(aE) == 4))
320+ then [StringEntry((((((("first_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aF))), StringEntry((((((("second_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aF))), StringEntry((((((("third_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aF))), StringEntry((((((("fourth_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aF))), ScriptTransfer(aF, 1, fromBase58String(aH[0])), ScriptTransfer(aF, 1, fromBase58String(aI[0])), ScriptTransfer(aF, 1, fromBase58String(aJ[0])), ScriptTransfer(aF, 1, fromBase58String(aK[0])), ScriptTransfer(Address(fromBase58String(aH[1])), aO, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aH[4])), V, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[1])), aT, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[4])), aS, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[1])), aY, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[4])), aX, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aK[1])), bd, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aK[4])), bc, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
321+ else if ((size(aE) == 5))
322+ then [StringEntry((((((("first_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aF))), StringEntry((((((("second_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aF))), StringEntry((((((("third_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aF))), StringEntry((((((("fourth_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aF))), StringEntry((((((("fifth_nft_Info=" + "nftId") + aL[0]) + "seller_address") + aL[1]) + "price") + aL[2]), ("buyer" + toString(aF))), ScriptTransfer(aF, 1, fromBase58String(aH[0])), ScriptTransfer(aF, 1, fromBase58String(aI[0])), ScriptTransfer(aF, 1, fromBase58String(aJ[0])), ScriptTransfer(aF, 1, fromBase58String(aK[0])), ScriptTransfer(aF, 1, fromBase58String(aL[0])), ScriptTransfer(Address(fromBase58String(aH[1])), aO, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aH[4])), V, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[1])), aT, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[4])), aS, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[1])), aY, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[4])), aX, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aK[1])), bd, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aK[4])), bc, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aL[1])), bi, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aL[4])), bh, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
323+ else if ((size(aE) > 5))
324324 then throw("sorry! maximum limit of your cart is 5 items")
325325 else nil
326326 }
328328
329329
330330 @Callable(p)
331-func buyAllProducts_waves (aF) = {
332- let aG = p.caller
333- let aH = assetBalance(aG, g)
334- let aI = split(aF[0], "_")
335- let aJ = split(aF[1], "_")
336- let aK = split(aF[2], "_")
337- let aL = split(aF[3], "_")
338- let aM = split(aF[4], "_")
339- let S = value(p.payments[0].amount)
340- let aN = (S - ((S / 1000) * 25))
341- let aO = (S - aN)
342- let W = ((S / 100) * parseIntValue(aI[3]))
343- let aP = (S - (W + aO))
344- let aQ = value(p.payments[1].amount)
345- let aR = (aQ - ((aQ / 1000) * 25))
346- let aS = (aQ - aR)
347- let aT = ((aQ / 100) * parseIntValue(aJ[3]))
348- let aU = (aQ - (aT + aS))
349- let aV = value(p.payments[2].amount)
350- let aW = (aV - ((aV / 1000) * 25))
351- let aX = (aV - aW)
352- let aY = ((aV / 100) * parseIntValue(aK[3]))
353- let aZ = (aV - (aY + aX))
354- let ba = value(p.payments[3].amount)
355- let bb = (ba - ((ba / 1000) * 25))
356- let bc = (ba - bb)
357- let bd = ((ba / 100) * parseIntValue(aL[3]))
358- let be = (ba - (bd + bc))
359- let bf = value(p.payments[4].amount)
360- let bg = (bf - ((bf / 1000) * 25))
361- let bh = (bf - bg)
362- let bi = ((bf / 100) * parseIntValue(aM[3]))
363- let bj = (bf - (bi + bh))
364- if ((size(aF) == 1))
365- then [StringEntry((((((("first_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aG))), ScriptTransfer(aG, 1, fromBase58String(aI[0])), ScriptTransfer(Address(fromBase58String(aI[1])), aP, unit), ScriptTransfer(Address(fromBase58String(aI[4])), W, unit)]
366- else if ((size(aF) == 2))
367- then [StringEntry((((((("first_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aG))), StringEntry((((((("second_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aG))), ScriptTransfer(aG, 1, fromBase58String(aI[0])), ScriptTransfer(aG, 1, fromBase58String(aJ[0])), ScriptTransfer(Address(fromBase58String(aI[1])), aP, unit), ScriptTransfer(Address(fromBase58String(aI[4])), W, unit), ScriptTransfer(Address(fromBase58String(aJ[1])), aU, unit), ScriptTransfer(Address(fromBase58String(aJ[4])), aT, unit)]
368- else if ((size(aF) == 3))
369- then [StringEntry((((((("first_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aG))), StringEntry((((((("second_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aG))), StringEntry((((((("third_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aG))), ScriptTransfer(aG, 1, fromBase58String(aI[0])), ScriptTransfer(aG, 1, fromBase58String(aJ[0])), ScriptTransfer(aG, 1, fromBase58String(aK[0])), ScriptTransfer(Address(fromBase58String(aI[1])), aP, unit), ScriptTransfer(Address(fromBase58String(aI[4])), W, unit), ScriptTransfer(Address(fromBase58String(aJ[1])), aU, unit), ScriptTransfer(Address(fromBase58String(aJ[4])), aT, unit), ScriptTransfer(Address(fromBase58String(aK[1])), aZ, unit), ScriptTransfer(Address(fromBase58String(aK[4])), aY, unit)]
370- else if ((size(aF) == 4))
371- then [StringEntry((((((("first_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aG))), StringEntry((((((("second_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aG))), StringEntry((((((("third_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aG))), StringEntry((((((("fourth_nft_Info=" + "nftId") + aL[0]) + "seller_address") + aL[1]) + "price") + aL[2]), ("buyer" + toString(aG))), ScriptTransfer(aG, 1, fromBase58String(aI[0])), ScriptTransfer(aG, 1, fromBase58String(aJ[0])), ScriptTransfer(aG, 1, fromBase58String(aK[0])), ScriptTransfer(aG, 1, fromBase58String(aL[0])), ScriptTransfer(Address(fromBase58String(aI[1])), aP, unit), ScriptTransfer(Address(fromBase58String(aI[4])), W, unit), ScriptTransfer(Address(fromBase58String(aJ[1])), aU, unit), ScriptTransfer(Address(fromBase58String(aJ[4])), aT, unit), ScriptTransfer(Address(fromBase58String(aK[1])), aZ, unit), ScriptTransfer(Address(fromBase58String(aK[4])), aY, unit), ScriptTransfer(Address(fromBase58String(aL[1])), be, unit), ScriptTransfer(Address(fromBase58String(aL[4])), bd, unit)]
372- else if ((size(aF) == 5))
373- then [StringEntry((((((("first_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aG))), StringEntry((((((("second_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aG))), StringEntry((((((("third_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aG))), StringEntry((((((("fourth_nft_Info=" + "nftId") + aL[0]) + "seller_address") + aL[1]) + "price") + aL[2]), ("buyer" + toString(aG))), StringEntry((((((("fifth_nft_Info=" + "nftId") + aM[0]) + "seller_address") + aM[1]) + "price") + aM[2]), ("buyer" + toString(aG))), ScriptTransfer(aG, 1, fromBase58String(aI[0])), ScriptTransfer(aG, 1, fromBase58String(aJ[0])), ScriptTransfer(aG, 1, fromBase58String(aK[0])), ScriptTransfer(aG, 1, fromBase58String(aL[0])), ScriptTransfer(aG, 1, fromBase58String(aM[0])), ScriptTransfer(Address(fromBase58String(aI[1])), aP, unit), ScriptTransfer(Address(fromBase58String(aI[4])), W, unit), ScriptTransfer(Address(fromBase58String(aJ[1])), aU, unit), ScriptTransfer(Address(fromBase58String(aJ[4])), aT, unit), ScriptTransfer(Address(fromBase58String(aK[1])), aZ, unit), ScriptTransfer(Address(fromBase58String(aK[4])), aY, unit), ScriptTransfer(Address(fromBase58String(aL[1])), be, unit), ScriptTransfer(Address(fromBase58String(aL[4])), bd, unit), ScriptTransfer(Address(fromBase58String(aM[1])), bj, unit), ScriptTransfer(Address(fromBase58String(aM[4])), bi, unit)]
374- else if ((size(aF) > 5))
331+func buyAllProducts_waves (aE) = {
332+ let aF = p.caller
333+ let aG = assetBalance(aF, g)
334+ let aH = split(aE[0], "_")
335+ let aI = split(aE[1], "_")
336+ let aJ = split(aE[2], "_")
337+ let aK = split(aE[3], "_")
338+ let aL = split(aE[4], "_")
339+ let R = value(p.payments[0].amount)
340+ let aM = (R - ((R / 1000) * 25))
341+ let aN = (R - aM)
342+ let V = ((R / 100) * parseIntValue(aH[3]))
343+ let aO = (R - (V + aN))
344+ let aP = value(p.payments[1].amount)
345+ let aQ = (aP - ((aP / 1000) * 25))
346+ let aR = (aP - aQ)
347+ let aS = ((aP / 100) * parseIntValue(aI[3]))
348+ let aT = (aP - (aS + aR))
349+ let aU = value(p.payments[2].amount)
350+ let aV = (aU - ((aU / 1000) * 25))
351+ let aW = (aU - aV)
352+ let aX = ((aU / 100) * parseIntValue(aJ[3]))
353+ let aY = (aU - (aX + aW))
354+ let aZ = value(p.payments[3].amount)
355+ let ba = (aZ - ((aZ / 1000) * 25))
356+ let bb = (aZ - ba)
357+ let bc = ((aZ / 100) * parseIntValue(aK[3]))
358+ let bd = (aZ - (bc + bb))
359+ let be = value(p.payments[4].amount)
360+ let bf = (be - ((be / 1000) * 25))
361+ let bg = (be - bf)
362+ let bh = ((be / 100) * parseIntValue(aL[3]))
363+ let bi = (be - (bh + bg))
364+ if ((size(aE) == 1))
365+ then [StringEntry((((((("first_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aF))), ScriptTransfer(aF, 1, fromBase58String(aH[0])), ScriptTransfer(Address(fromBase58String(aH[1])), aO, unit), ScriptTransfer(Address(fromBase58String(aH[4])), V, unit)]
366+ else if ((size(aE) == 2))
367+ then [StringEntry((((((("first_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aF))), StringEntry((((((("second_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aF))), ScriptTransfer(aF, 1, fromBase58String(aH[0])), ScriptTransfer(aF, 1, fromBase58String(aI[0])), ScriptTransfer(Address(fromBase58String(aH[1])), aO, unit), ScriptTransfer(Address(fromBase58String(aH[4])), V, unit), ScriptTransfer(Address(fromBase58String(aI[1])), aT, unit), ScriptTransfer(Address(fromBase58String(aI[4])), aS, unit)]
368+ else if ((size(aE) == 3))
369+ then [StringEntry((((((("first_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aF))), StringEntry((((((("second_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aF))), StringEntry((((((("third_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aF))), ScriptTransfer(aF, 1, fromBase58String(aH[0])), ScriptTransfer(aF, 1, fromBase58String(aI[0])), ScriptTransfer(aF, 1, fromBase58String(aJ[0])), ScriptTransfer(Address(fromBase58String(aH[1])), aO, unit), ScriptTransfer(Address(fromBase58String(aH[4])), V, unit), ScriptTransfer(Address(fromBase58String(aI[1])), aT, unit), ScriptTransfer(Address(fromBase58String(aI[4])), aS, unit), ScriptTransfer(Address(fromBase58String(aJ[1])), aY, unit), ScriptTransfer(Address(fromBase58String(aJ[4])), aX, unit)]
370+ else if ((size(aE) == 4))
371+ then [StringEntry((((((("first_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aF))), StringEntry((((((("second_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aF))), StringEntry((((((("third_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aF))), StringEntry((((((("fourth_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aF))), ScriptTransfer(aF, 1, fromBase58String(aH[0])), ScriptTransfer(aF, 1, fromBase58String(aI[0])), ScriptTransfer(aF, 1, fromBase58String(aJ[0])), ScriptTransfer(aF, 1, fromBase58String(aK[0])), ScriptTransfer(Address(fromBase58String(aH[1])), aO, unit), ScriptTransfer(Address(fromBase58String(aH[4])), V, unit), ScriptTransfer(Address(fromBase58String(aI[1])), aT, unit), ScriptTransfer(Address(fromBase58String(aI[4])), aS, unit), ScriptTransfer(Address(fromBase58String(aJ[1])), aY, unit), ScriptTransfer(Address(fromBase58String(aJ[4])), aX, unit), ScriptTransfer(Address(fromBase58String(aK[1])), bd, unit), ScriptTransfer(Address(fromBase58String(aK[4])), bc, unit)]
372+ else if ((size(aE) == 5))
373+ then [StringEntry((((((("first_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aF))), StringEntry((((((("second_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aF))), StringEntry((((((("third_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aF))), StringEntry((((((("fourth_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aF))), StringEntry((((((("fifth_nft_Info=" + "nftId") + aL[0]) + "seller_address") + aL[1]) + "price") + aL[2]), ("buyer" + toString(aF))), ScriptTransfer(aF, 1, fromBase58String(aH[0])), ScriptTransfer(aF, 1, fromBase58String(aI[0])), ScriptTransfer(aF, 1, fromBase58String(aJ[0])), ScriptTransfer(aF, 1, fromBase58String(aK[0])), ScriptTransfer(aF, 1, fromBase58String(aL[0])), ScriptTransfer(Address(fromBase58String(aH[1])), aO, unit), ScriptTransfer(Address(fromBase58String(aH[4])), V, unit), ScriptTransfer(Address(fromBase58String(aI[1])), aT, unit), ScriptTransfer(Address(fromBase58String(aI[4])), aS, unit), ScriptTransfer(Address(fromBase58String(aJ[1])), aY, unit), ScriptTransfer(Address(fromBase58String(aJ[4])), aX, unit), ScriptTransfer(Address(fromBase58String(aK[1])), bd, unit), ScriptTransfer(Address(fromBase58String(aK[4])), bc, unit), ScriptTransfer(Address(fromBase58String(aL[1])), bi, unit), ScriptTransfer(Address(fromBase58String(aL[4])), bh, unit)]
374+ else if ((size(aE) > 5))
375375 then throw("sorry! maximum limit of your cart is 5 items")
376376 else nil
377377 }
379379
380380
381381 @Callable(p)
382-func withdrawEarnAsimi (P,S) = {
383- let bk = base58'3MuehcPaJCUy5asSiT8XX1pwwz9Tj4J9SDS'
384- if ((p.caller.bytes != bk))
382+func withdrawEarnAsimi (O,R) = {
383+ let bj = base58'3MuehcPaJCUy5asSiT8XX1pwwz9Tj4J9SDS'
384+ if ((p.caller.bytes != bj))
385385 then throw("sorry you have no access")
386- else if (if ((P >= 0))
387- then (P >= S)
386+ else if (if ((O >= 0))
387+ then (O >= R)
388388 else false)
389- then [ScriptTransfer(p.caller, (S * 100), f)]
389+ then [ScriptTransfer(p.caller, (R * 100), f)]
390390 else nil
391391 }
392392
393393
394394
395395 @Callable(p)
396-func withdrawEarnWaves (P,S) = {
397- let bk = base58'3MuehcPaJCUy5asSiT8XX1pwwz9Tj4J9SDS'
398- if ((p.caller.bytes != bk))
396+func withdrawEarnWaves (O,R) = {
397+ let bj = base58'3MuehcPaJCUy5asSiT8XX1pwwz9Tj4J9SDS'
398+ if ((p.caller.bytes != bj))
399399 then throw("sorry you have no access")
400- else if (if ((P >= 0))
401- then (P >= S)
400+ else if (if ((O >= 0))
401+ then (O >= R)
402402 else false)
403- then [ScriptTransfer(p.caller, (S * 100000000), unit)]
403+ then [ScriptTransfer(p.caller, (R * 100000000), unit)]
404404 else nil
405405 }
406406
407407
408408
409409 @Callable(p)
410-func setPlatformfee (P) = {
411- let bl = p.caller.bytes
412-[StringEntry((toBase58String(bl) + "admin"), (P + "platformFee"))]
410+func setPlatformfee (O) = {
411+ let bk = p.caller.bytes
412+[StringEntry((toBase58String(bk) + "admin"), (O + "platformFee"))]
413413 }
414414
415415
416-@Verifier(bm)
417-func bn () = {
418- let n = bm
416+@Verifier(bl)
417+func bm () = {
418+ let n = bl
419419 if ($isInstanceOf(n, "SetScriptTransaction"))
420420 then {
421- let bo = n
421+ let bn = n
422422 true
423423 }
424424 else false
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'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'
1515
1616 let g = base58''
1717
1818 let h = "bid"
1919
2020 let i = true
2121
2222 let j = $Tuple4("OPEN", "CLOSED", "REWARDED", "CANCELED")
2323
2424 let k = base58'3MvjAaDYHpS4A5K4CV3kZMMEH9m9JdBSvbq'
2525
2626 func l (m) = {
2727 let n = assetInfo(m)
2828 if ($isInstanceOf(n, "Asset"))
2929 then {
3030 let o = n
3131 if (if ((o.decimals == 0))
3232 then (o.quantity == 1)
3333 else false)
3434 then (o.reissuable == false)
3535 else false
3636 }
3737 else false
3838 }
3939
4040
4141 @Callable(p)
4242 func setPaused (q) = {
4343 let r = p.caller.bytes
4444 if ((q == "true"))
4545 then [StringEntry(toBase58String(r), ("setPaused" + q))]
4646 else if ((i == false))
4747 then [StringEntry(toBase58String(r), ("setPaused" + q))]
4848 else nil
4949 }
5050
5151
5252
5353 @Callable(p)
5454 func createNft (s,t,u,v,w,x,y,z,A,B) = {
5555 let C = Issue(s, z, 1, 0, false)
5656 let D = calculateAssetId(C)
5757 let E = p.transactionId
58- let F = "setPaused"
59- if ((F == "true"))
58+ let q = getString(this, "setPaused")
59+ if ((q == "true"))
6060 then throw("Minting is paused by admin")
6161 else [C, ScriptTransfer(p.caller, 1, D), StringEntry(((toBase58String(D) + a) + "Owner"), toString(p.caller)), StringEntry(((toBase58String(D) + a) + "nft_type"), v), StringEntry(((toBase58String(D) + a) + "nft_tags"), w), StringEntry(((toBase58String(D) + a) + "nft_dAppAddress"), u), StringEntry(((toBase58String(E) + a) + "royalityPercentage"), y), IntegerEntry(((toBase58String(D) + a) + "nft_selling_price"), x), StringEntry(((toBase58String(D) + a) + "nft_onSell"), A), StringEntry(((toBase58String(D) + a) + "nft_data"), B), StringEntry(((toBase58String(E) + a) + "issue_nft"), toBase58String(D))]
6262 }
6363
6464
6565
6666 @Callable(p)
67-func sellNFT (G,H) = {
67+func sellNFT (F,G) = {
6868 let E = p.transactionId
69- let I = p.caller.bytes
70- let J = $Tuple2(value(p.payments[0].assetId), value(p.payments[0].amount))
71- let K = J._1
72- let L = J._2
73- if (!(l(K)))
69+ let H = p.caller.bytes
70+ let I = $Tuple2(value(p.payments[0].assetId), value(p.payments[0].amount))
71+ let J = I._1
72+ let K = I._2
73+ if (!(l(J)))
7474 then throw("Token is not NFT")
75- else [StringEntry(((c + a) + toBase58String(value(p.payments[0].assetId))), G), StringEntry(((toString(p.caller) + a) + d), (((toBase58String(K) + a) + toString(L)) + H))]
75+ else [StringEntry(((c + a) + toBase58String(value(p.payments[0].assetId))), F), StringEntry(((toString(p.caller) + a) + d), (((toBase58String(J) + a) + toString(K)) + G))]
7676 }
7777
7878
7979
8080 @Callable(p)
81-func buyNFT (M,N,O,y,P) = {
82- let m = fromBase58String(M)
83- let Q = {
84- let n = getString(this, (("nft_" + N) + "_owner"))
81+func buyNFT (L,M,N,y,O) = {
82+ let m = fromBase58String(L)
83+ let P = {
84+ let n = getString(this, (("nft_" + M) + "_owner"))
8585 if ($isInstanceOf(n, "String"))
8686 then {
87- let R = n
88- R
87+ let Q = n
88+ Q
8989 }
9090 else false
9191 }
92- let G = getStringValue(((((c + a) + M) + "_") + N))
93- let S = value(p.payments[0].amount)
94- let T = (S - ((S / 100) * P))
95- let U = (S - T)
96- let V = y
97- let W = ((S * parseIntValue(V)) / 100)
98- let X = (S - (W + U))
99- if ((N == toString(p.caller)))
92+ let F = getStringValue(((((c + a) + L) + "_") + M))
93+ let R = value(p.payments[0].amount)
94+ let S = (R - ((R / 100) * O))
95+ let T = (R - S)
96+ let U = y
97+ let V = ((R * parseIntValue(U)) / 100)
98+ let W = (R - (V + T))
99+ if ((M == toString(p.caller)))
100100 then throw("current Owner of NFT not able to purchase")
101101 else if (if ((p.payments[0].assetId == f))
102- then (O != N)
102+ then (N != M)
103103 else false)
104- then [ScriptTransfer(p.caller, 1, m), ScriptTransfer(Address(fromBase58String(N)), X, f), ScriptTransfer(Address(fromBase58String(O)), W, f), IntegerEntry((("nft_" + M) + "platform_fee"), U), StringEntry(((toString(p.caller) + a) + b), ((M + a) + toString(S))), DeleteEntry((("nft_" + N) + "_owner")), StringEntry((("nft_" + N) + "_owner"), toString(p.caller)), StringEntry(((M + a) + "_owner"), toString(p.caller))]
104+ then [ScriptTransfer(p.caller, 1, m), ScriptTransfer(Address(fromBase58String(M)), W, f), ScriptTransfer(Address(fromBase58String(N)), V, f), IntegerEntry((("nft_" + L) + "platform_fee"), T), StringEntry(((toString(p.caller) + a) + b), ((L + a) + toString(R))), DeleteEntry((("nft_" + M) + "_owner")), StringEntry((("nft_" + M) + "_owner"), toString(p.caller)), StringEntry(((L + a) + "_owner"), toString(p.caller))]
105105 else if (if ((p.payments[0].assetId == f))
106- then (O == N)
106+ then (N == M)
107107 else false)
108- then [ScriptTransfer(p.caller, 1, m), ScriptTransfer(Address(fromBase58String(N)), T, f), StringEntry((("nft_" + M) + "platform_fee"), toString(U)), StringEntry(((toString(p.caller) + a) + b), ((M + a) + toString(S))), DeleteEntry((("nft_" + N) + "_owner")), StringEntry((("nft_" + N) + "_owner"), toString(p.caller)), StringEntry(((M + a) + "_owner"), toString(p.caller))]
108+ then [ScriptTransfer(p.caller, 1, m), ScriptTransfer(Address(fromBase58String(M)), S, f), StringEntry((("nft_" + L) + "platform_fee"), toString(T)), StringEntry(((toString(p.caller) + a) + b), ((L + a) + toString(R))), DeleteEntry((("nft_" + M) + "_owner")), StringEntry((("nft_" + M) + "_owner"), toString(p.caller)), StringEntry(((L + a) + "_owner"), toString(p.caller))]
109109 else if (if ((p.payments[0].assetId == unit))
110- then (O != N)
110+ then (N != M)
111111 else false)
112- then [ScriptTransfer(p.caller, 1, m), ScriptTransfer(Address(fromBase58String(N)), X, unit), ScriptTransfer(Address(fromBase58String(O)), W, unit), StringEntry((("nft_" + M) + "platform_fee"), toString(U)), StringEntry(((toString(p.caller) + a) + b), ((M + a) + toString(S))), DeleteEntry((("nft_" + N) + "_owner")), StringEntry((("nft_" + N) + "_owner"), toString(p.caller)), StringEntry(((M + a) + "_owner"), toString(p.caller))]
112+ then [ScriptTransfer(p.caller, 1, m), ScriptTransfer(Address(fromBase58String(M)), W, unit), ScriptTransfer(Address(fromBase58String(N)), V, unit), StringEntry((("nft_" + L) + "platform_fee"), toString(T)), StringEntry(((toString(p.caller) + a) + b), ((L + a) + toString(R))), DeleteEntry((("nft_" + M) + "_owner")), StringEntry((("nft_" + M) + "_owner"), toString(p.caller)), StringEntry(((L + a) + "_owner"), toString(p.caller))]
113113 else if (if ((p.payments[0].assetId == unit))
114- then (O == N)
114+ then (N == M)
115115 else false)
116- then [ScriptTransfer(p.caller, 1, m), ScriptTransfer(Address(fromBase58String(N)), T, unit), StringEntry((("nft_" + M) + "platform_fee"), toString(U)), StringEntry(((toString(p.caller) + a) + b), ((M + a) + toString(S))), DeleteEntry((("nft_" + N) + "_owner")), StringEntry((("nft_" + N) + "_owner"), toString(p.caller)), StringEntry(((M + a) + "_owner"), toString(p.caller))]
116+ then [ScriptTransfer(p.caller, 1, m), ScriptTransfer(Address(fromBase58String(M)), S, unit), StringEntry((("nft_" + L) + "platform_fee"), toString(T)), StringEntry(((toString(p.caller) + a) + b), ((L + a) + toString(R))), DeleteEntry((("nft_" + M) + "_owner")), StringEntry((("nft_" + M) + "_owner"), toString(p.caller)), StringEntry(((L + a) + "_owner"), toString(p.caller))]
117117 else nil
118118 }
119119
120120
121121
122122 @Callable(p)
123-func cancelSell (Y) = {
123+func cancelSell (X) = {
124124 let E = toBase58String(p.transactionId)
125- let I = p.caller.bytes
126-[StringEntry(((E + Y) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(I), 1, fromBase58String(Y))]
125+ let H = p.caller.bytes
126+[StringEntry(((E + X) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(H), 1, fromBase58String(X))]
127127 }
128128
129129
130130
131131 @Callable(p)
132-func addAuction (Z,aa,ab,ac,H) = {
132+func addAuction (Y,Z,aa,ab,G) = {
133133 let E = toBase58String(p.transactionId)
134- let Y = value(p.payments[0].assetId)
135- let G = value(ab)
136- let ad = (lastBlock.height + ac)
134+ let X = value(p.payments[0].assetId)
135+ let F = value(aa)
136+ let ac = (lastBlock.height + ab)
137137 let r = p.caller.bytes
138- let ae = {
139- let n = getString(this, (((toBase58String(Y) + a) + "nft_status_") + toBase58String(r)))
138+ let ad = {
139+ let n = getString(this, (((toBase58String(X) + a) + "nft_status_") + toBase58String(r)))
140140 if ($isInstanceOf(n, "String"))
141141 then {
142- let R = n
142+ let Q = n
143143 true
144144 }
145145 else false
146146 }
147- if ((ae == true))
147+ if ((ad == true))
148148 then throw("Already in auction list")
149- else if ((ac > e))
149+ else if ((ab > e))
150150 then throw(("Duration is too long. Must be less than or equal to 30 " + toString(e)))
151151 else if ((p.payments[0].assetId == unit))
152152 then throw("NFT not attached")
153153 else if ((p.payments[0].assetId == f))
154154 then throw("NFT not attached")
155- else [StringEntry(((E + "nft_start_auction_date") + toBase58String(r)), Z), StringEntry(((E + "nft_end_auction_date") + toBase58String(r)), aa), StringEntry((E + "_nft_start_price"), ab), StringEntry((E + "_nft_owner"), toString(p.caller)), StringEntry((E + "_nft_on_auction"), toBase58String(Y)), StringEntry((E + "_previous_bidder"), "none"), StringEntry((E + "_highest_bid"), "0"), StringEntry((E + "_winner_of_nft"), "0"), StringEntry((E + "_bidder_count"), "0"), StringEntry((E + "_nft_status"), "OPEN")]
155+ else [StringEntry(((E + "nft_start_auction_date") + toBase58String(r)), Y), StringEntry(((E + "nft_end_auction_date") + toBase58String(r)), Z), StringEntry((E + "_nft_start_price"), aa), StringEntry((E + "_nft_owner"), toString(p.caller)), StringEntry((E + "_nft_on_auction"), toBase58String(X)), StringEntry((E + "_previous_bidder"), "none"), StringEntry((E + "_highest_bid"), "0"), StringEntry((E + "_winner_of_nft"), "0"), StringEntry((E + "_bidder_count"), "0"), StringEntry((E + "_nft_status"), "OPEN")]
156156 }
157157
158158
159159
160160 @Callable(p)
161-func placeBid (af,Y,t,ag,ah) = {
161+func placeBid (ae,X,t,af,ag) = {
162162 let E = toBase58String(p.transactionId)
163163 let r = p.caller.bytes
164- let m = fromBase58String(Y)
165- let ai = p.payments[0].assetId
166- let aj = p.payments[0].amount
167- let ak = getStringValue(this, (af + "_highest_bid"))
168- let al = getString(this, (af + "_previous_bidder"))
169- let am = getStringValue(this, (af + "_bidder_count"))
170- let an = getStringValue(this, (af + "_winner_of_nft"))
171- let ae = getStringValue(this, (af + "_nft_status"))
172- if ((ae != "OPEN"))
164+ let m = fromBase58String(X)
165+ let ah = p.payments[0].assetId
166+ let ai = p.payments[0].amount
167+ let aj = getStringValue(this, (ae + "_highest_bid"))
168+ let ak = getString(this, (ae + "_previous_bidder"))
169+ let al = getStringValue(this, (ae + "_bidder_count"))
170+ let am = getStringValue(this, (ae + "_winner_of_nft"))
171+ let ad = getStringValue(this, (ae + "_nft_status"))
172+ if ((ad != "OPEN"))
173173 then throw("Not open for auction")
174- else if ((parseIntValue(ak) >= aj))
174+ else if ((parseIntValue(aj) >= ai))
175175 then throw("Bid is less then starting/highest Bid")
176- else if ((ak == "0"))
177- then [StringEntry((af + "_highest_bid"), toString(aj)), StringEntry((af + "_winner_of_nft"), toBase58String(p.caller.bytes)), StringEntry((af + "_bidder_count"), toString((parseIntValue(am) + 1))), StringEntry((af + "_nft_id"), toBase58String(m)), StringEntry((af + "_nft_owner"), t), StringEntry((((E + "_") + af) + "_highest_bid"), toString(aj)), StringEntry((((E + "_") + af) + "_winner"), toBase58String(p.caller.bytes)), StringEntry((((E + "_") + af) + "_bidder_count"), toString((parseIntValue(am) + 1))), StringEntry((((E + "_") + af) + "_nft_id"), toBase58String(m)), StringEntry((((E + "_") + af) + "_nft_owner"), t), StringEntry((E + "_bid_for_nft_by"), toBase58String(r)), StringEntry((E + "_bid_price_place"), ag), StringEntry((E + "_previous_bid_amount_refund_to_address"), an), StringEntry((E + "_prevoius_bid_amount_refund"), ak)]
178- else if ((ak != "0"))
179- then [ScriptTransfer(Address(fromBase58String(an)), parseIntValue(ak), ai), StringEntry((E + "_previous_bid_amount_refund_to_address"), an), StringEntry((E + "_prevoius_bid_amount_refund"), ak), StringEntry((af + "_bidder_count"), toString((parseIntValue(am) + 1))), StringEntry((af + "_highest_bid"), toString(aj)), StringEntry((af + "_winner_of_nft"), toBase58String(p.caller.bytes)), StringEntry((af + "_nft_id"), toBase58String(m)), StringEntry((af + "_nft_owner"), t), StringEntry((((E + "_") + af) + "_highest_bid"), toString(aj)), StringEntry((((E + "_") + af) + "_winner"), toBase58String(p.caller.bytes)), StringEntry((((E + "_") + af) + "_bidder_count"), toString((parseIntValue(am) + 1))), StringEntry((((E + "_") + af) + "_nft_id"), toBase58String(m)), StringEntry((((E + "_") + af) + "_nft_owner"), t), StringEntry((E + "_bid_for_nft_by"), toBase58String(r)), StringEntry((E + "_bid_price_place"), ag)]
176+ else if ((aj == "0"))
177+ then [StringEntry((ae + "_highest_bid"), toString(ai)), StringEntry((ae + "_winner_of_nft"), toBase58String(p.caller.bytes)), StringEntry((ae + "_bidder_count"), toString((parseIntValue(al) + 1))), StringEntry((ae + "_nft_id"), toBase58String(m)), StringEntry((ae + "_nft_owner"), t), StringEntry((((E + "_") + ae) + "_highest_bid"), toString(ai)), StringEntry((((E + "_") + ae) + "_winner"), toBase58String(p.caller.bytes)), StringEntry((((E + "_") + ae) + "_bidder_count"), toString((parseIntValue(al) + 1))), StringEntry((((E + "_") + ae) + "_nft_id"), toBase58String(m)), StringEntry((((E + "_") + ae) + "_nft_owner"), t), StringEntry((E + "_bid_for_nft_by"), toBase58String(r)), StringEntry((E + "_bid_price_place"), af), StringEntry((E + "_previous_bid_amount_refund_to_address"), am), StringEntry((E + "_prevoius_bid_amount_refund"), aj)]
178+ else if ((aj != "0"))
179+ then [ScriptTransfer(Address(fromBase58String(am)), parseIntValue(aj), ah), StringEntry((E + "_previous_bid_amount_refund_to_address"), am), StringEntry((E + "_prevoius_bid_amount_refund"), aj), StringEntry((ae + "_bidder_count"), toString((parseIntValue(al) + 1))), StringEntry((ae + "_highest_bid"), toString(ai)), StringEntry((ae + "_winner_of_nft"), toBase58String(p.caller.bytes)), StringEntry((ae + "_nft_id"), toBase58String(m)), StringEntry((ae + "_nft_owner"), t), StringEntry((((E + "_") + ae) + "_highest_bid"), toString(ai)), StringEntry((((E + "_") + ae) + "_winner"), toBase58String(p.caller.bytes)), StringEntry((((E + "_") + ae) + "_bidder_count"), toString((parseIntValue(al) + 1))), StringEntry((((E + "_") + ae) + "_nft_id"), toBase58String(m)), StringEntry((((E + "_") + ae) + "_nft_owner"), t), StringEntry((E + "_bid_for_nft_by"), toBase58String(r)), StringEntry((E + "_bid_price_place"), af)]
180180 else nil
181181 }
182182
183183
184184
185185 @Callable(p)
186-func acceptBidOffer (af,Y,ao,N,O,y,ah) = {
187- let ap = "9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq"
186+func acceptBidOffer (ae,X,an,M,N,y,ag) = {
187+ let ao = "9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq"
188188 let E = toBase58String(p.transactionId)
189- let aq = fromBase58String(ah)
189+ let ap = fromBase58String(ag)
190190 let r = p.caller.bytes
191- let m = fromBase58String(Y)
192- let ar = getStringValue(this, (af + "_highest_bid"))
193- let as = ((parseIntValue(ar) / 1000) * 975)
194- let U = ((parseIntValue(ar) / 1000) * 25)
195- let W = ((parseIntValue(ar) * parseIntValue(y)) / 100)
196- let at = (parseIntValue(ar) - (W + U))
197- let au = getStringValue(this, (af + "_winner_of_nft"))
198- if (if ((ah == ap))
199- then (O != N)
191+ let m = fromBase58String(X)
192+ let aq = getStringValue(this, (ae + "_highest_bid"))
193+ let ar = ((parseIntValue(aq) / 1000) * 975)
194+ let T = ((parseIntValue(aq) / 1000) * 25)
195+ let V = ((parseIntValue(aq) * parseIntValue(y)) / 100)
196+ let as = (parseIntValue(aq) - (V + T))
197+ let at = getStringValue(this, (ae + "_winner_of_nft"))
198+ if (if ((ag == ao))
199+ then (N != M)
200200 else false)
201- then [ScriptTransfer(Address(r), at, aq), ScriptTransfer(Address(fromBase58String(au)), 1, m), ScriptTransfer(Address(fromBase58String(O)), W, aq), StringEntry((E + "_amount_paid_to_owner"), ar), StringEntry((E + "_nft_transfer_to"), au), StringEntry((E + "_nft_status"), "REWARDED"), StringEntry((af + "_amount_paid_to_owner"), ar), StringEntry((af + "_nft_transfer_to"), au), StringEntry((af + "_nft_status"), "REWARDED")]
202- else if (if ((ah == ap))
203- then (O == N)
201+ then [ScriptTransfer(Address(r), as, ap), ScriptTransfer(Address(fromBase58String(at)), 1, m), ScriptTransfer(Address(fromBase58String(N)), V, ap), StringEntry((E + "_amount_paid_to_owner"), aq), StringEntry((E + "_nft_transfer_to"), at), StringEntry((E + "_nft_status"), "REWARDED"), StringEntry((ae + "_amount_paid_to_owner"), aq), StringEntry((ae + "_nft_transfer_to"), at), StringEntry((ae + "_nft_status"), "REWARDED")]
202+ else if (if ((ag == ao))
203+ then (N == M)
204204 else false)
205- then [ScriptTransfer(Address(r), as, aq), ScriptTransfer(Address(fromBase58String(au)), 1, m), StringEntry((E + "_amount_paid_to_owner"), ar), StringEntry((E + "_nft_transfer_to"), au), StringEntry((E + "_nft_status"), "REWARDED"), StringEntry((af + "_amount_paid_to_owner"), ar), StringEntry((af + "_nft_transfer_to"), au), StringEntry((af + "_nft_status"), "REWARDED")]
206- else if (if ((ah == "WAVES"))
207- then (O != N)
205+ then [ScriptTransfer(Address(r), ar, ap), ScriptTransfer(Address(fromBase58String(at)), 1, m), StringEntry((E + "_amount_paid_to_owner"), aq), StringEntry((E + "_nft_transfer_to"), at), StringEntry((E + "_nft_status"), "REWARDED"), StringEntry((ae + "_amount_paid_to_owner"), aq), StringEntry((ae + "_nft_transfer_to"), at), StringEntry((ae + "_nft_status"), "REWARDED")]
206+ else if (if ((ag == "WAVES"))
207+ then (N != M)
208208 else false)
209- then [ScriptTransfer(Address(r), at, unit), ScriptTransfer(Address(fromBase58String(au)), 1, m), ScriptTransfer(Address(fromBase58String(O)), W, unit), StringEntry("platform_fee", toString(U)), StringEntry((E + "_amount_paid_to_owner"), ar), StringEntry((E + "_nft_transfer_to"), au), StringEntry((E + "_nft_status"), "REWARDED"), StringEntry((af + "_amount_paid_to_owner"), ar), StringEntry((af + "_nft_transfer_to"), au), StringEntry((af + "_nft_status"), "REWARDED")]
210- else if (if ((ah == "WAVES"))
211- then (O == N)
209+ then [ScriptTransfer(Address(r), as, unit), ScriptTransfer(Address(fromBase58String(at)), 1, m), ScriptTransfer(Address(fromBase58String(N)), V, unit), StringEntry("platform_fee", toString(T)), StringEntry((E + "_amount_paid_to_owner"), aq), StringEntry((E + "_nft_transfer_to"), at), StringEntry((E + "_nft_status"), "REWARDED"), StringEntry((ae + "_amount_paid_to_owner"), aq), StringEntry((ae + "_nft_transfer_to"), at), StringEntry((ae + "_nft_status"), "REWARDED")]
210+ else if (if ((ag == "WAVES"))
211+ then (N == M)
212212 else false)
213- then [ScriptTransfer(Address(r), as, unit), ScriptTransfer(Address(fromBase58String(au)), 1, m), StringEntry((E + "_amount_paid_to_owner"), ar), StringEntry((E + "_nft_transfer_to"), au), StringEntry((E + "_nft_status"), "REWARDED"), StringEntry((af + "_amount_paid_to_owner"), ar), StringEntry((af + "_nft_transfer_to"), au), StringEntry((af + "_nft_status"), "REWARDED")]
213+ then [ScriptTransfer(Address(r), ar, unit), ScriptTransfer(Address(fromBase58String(at)), 1, m), StringEntry((E + "_amount_paid_to_owner"), aq), StringEntry((E + "_nft_transfer_to"), at), StringEntry((E + "_nft_status"), "REWARDED"), StringEntry((ae + "_amount_paid_to_owner"), aq), StringEntry((ae + "_nft_transfer_to"), at), StringEntry((ae + "_nft_status"), "REWARDED")]
214214 else nil
215215 }
216216
217217
218218
219219 @Callable(p)
220-func cancelAuction (af) = {
220+func cancelAuction (ae) = {
221221 let E = toBase58String(p.transactionId)
222222 let r = p.caller.bytes
223- let av = getStringValue(this, (af + "_nft_status"))
224- let aw = getStringValue(this, (af + "_winner_of_nft"))
225- let ax = getStringValue(this, (af + "_nft_owner"))
226- let Y = getStringValue(this, (af + "_nft_on_auction"))
227- let ay = getStringValue(this, (af + "_highest_bid"))
228- if ((aw == "0"))
229- then [StringEntry(((E + af) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(fromBase58String(ax)), 1, fromBase58String(Y))]
230- else if ((aw != "0"))
223+ let au = getStringValue(this, (ae + "_nft_status"))
224+ let av = getStringValue(this, (ae + "_winner_of_nft"))
225+ let aw = getStringValue(this, (ae + "_nft_owner"))
226+ let X = getStringValue(this, (ae + "_nft_on_auction"))
227+ let ax = getStringValue(this, (ae + "_highest_bid"))
228+ if ((av == "0"))
229+ then [StringEntry(((E + ae) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(fromBase58String(aw)), 1, fromBase58String(X))]
230+ else if ((av != "0"))
231231 then throw("soory you can't cancel it because already auction placed by someone")
232232 else nil
233233 }
234234
235235
236236
237237 @Callable(p)
238-func manualFundTransfer (az) = {
239- let aA = p.caller.bytes
240- let aB = fromBase58String(az)
241- let S = p.payments[0].amount
238+func manualFundTransfer (ay) = {
239+ let az = p.caller.bytes
240+ let aA = fromBase58String(ay)
241+ let R = p.payments[0].amount
242242 if ((p.payments[0].assetId == unit))
243- then [IntegerEntry((toBase58String(aA) + "_transfer"), S), StringEntry((toBase58String(aA) + "_transfer_to"), az), ScriptTransfer(Address(aB), S, unit)]
243+ then [IntegerEntry((toBase58String(az) + "_transfer"), R), StringEntry((toBase58String(az) + "_transfer_to"), ay), ScriptTransfer(Address(aA), R, unit)]
244244 else if ((p.payments[0].assetId == f))
245- then [IntegerEntry((toBase58String(aA) + "_transfer"), S), StringEntry((toBase58String(aA) + "_transfer_to"), az), ScriptTransfer(Address(aB), S, f)]
245+ then [IntegerEntry((toBase58String(az) + "_transfer"), R), StringEntry((toBase58String(az) + "_transfer_to"), ay), ScriptTransfer(Address(aA), R, f)]
246246 else nil
247247 }
248248
249249
250250
251251 @Callable(p)
252-func nftback (af) = {
252+func nftback (ae) = {
253253 let r = p.caller.bytes
254- let Y = getStringValue(this, (af + "_nft_on_auction"))
255- let ax = getStringValue(this, (af + "_nft_owner"))
256-[StringEntry((af + "_nft_status"), "Auction_time over"), ScriptTransfer(Address(fromBase58String(ax)), 1, fromBase58String(Y))]
254+ let X = getStringValue(this, (ae + "_nft_on_auction"))
255+ let aw = getStringValue(this, (ae + "_nft_owner"))
256+[StringEntry((ae + "_nft_status"), "Auction_time over"), ScriptTransfer(Address(fromBase58String(aw)), 1, fromBase58String(X))]
257257 }
258258
259259
260260
261261 @Callable(p)
262-func withdrawMoney (af,ah) = {
262+func withdrawMoney (ae,ag) = {
263263 let r = p.caller.bytes
264- let ap = "9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq"
264+ let ao = "9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq"
265265 let E = toBase58String(p.transactionId)
266- let aq = fromBase58String(ah)
267- let aC = getStringValue(this, (af + "_highest_bid"))
268- let aD = getStringValue(this, (af + "_winner"))
269- let aE = getStringValue(this, (af + "_nft_id"))
270- if ((ah == ap))
271- then [StringEntry((af + "_nft_bid"), "WITHDRAW"), StringEntry((af + "_nft_id"), aE), StringEntry((af + "_bidding_price_refund_amount"), aC), ScriptTransfer(p.caller, parseIntValue(aC), aq)]
272- else if ((ah == "WAVES"))
273- then [StringEntry((af + "_nft_bid"), "WITHDRAW"), StringEntry((af + "_nft_id"), aE), StringEntry((af + "_bidding_price_refund_amount"), aC), ScriptTransfer(p.caller, parseIntValue(aC), unit)]
266+ let ap = fromBase58String(ag)
267+ let aB = getStringValue(this, (ae + "_highest_bid"))
268+ let aC = getStringValue(this, (ae + "_winner"))
269+ let aD = getStringValue(this, (ae + "_nft_id"))
270+ if ((ag == ao))
271+ then [StringEntry((ae + "_nft_bid"), "WITHDRAW"), StringEntry((ae + "_nft_id"), aD), StringEntry((ae + "_bidding_price_refund_amount"), aB), ScriptTransfer(p.caller, parseIntValue(aB), ap)]
272+ else if ((ag == "WAVES"))
273+ then [StringEntry((ae + "_nft_bid"), "WITHDRAW"), StringEntry((ae + "_nft_id"), aD), StringEntry((ae + "_bidding_price_refund_amount"), aB), ScriptTransfer(p.caller, parseIntValue(aB), unit)]
274274 else nil
275275 }
276276
277277
278278
279279 @Callable(p)
280-func buyAllProducts_asimi (aF) = {
281- let aG = p.caller
282- let aH = assetBalance(aG, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')
283- let aI = split(aF[0], "_")
284- let aJ = split(aF[1], "_")
285- let aK = split(aF[2], "_")
286- let aL = split(aF[3], "_")
287- let aM = split(aF[4], "_")
288- let S = value(p.payments[0].amount)
289- let aN = (S - ((S / 1000) * 25))
290- let aO = (S - aN)
291- let W = ((S / 100) * parseIntValue(aI[3]))
292- let aP = (S - (W + aO))
293- let aQ = value(p.payments[1].amount)
294- let aR = (aQ - ((aQ / 1000) * 25))
295- let aS = (aQ - aR)
296- let aT = ((aQ / 100) * parseIntValue(aJ[3]))
297- let aU = (aQ - (aT + aS))
298- let aV = value(p.payments[2].amount)
299- let aW = (aV - ((aV / 1000) * 25))
300- let aX = (aV - aW)
301- let aY = ((aV / 100) * parseIntValue(aK[3]))
302- let aZ = (aV - (aY + aX))
303- let ba = value(p.payments[3].amount)
304- let bb = (ba - ((ba / 1000) * 25))
305- let bc = (ba - bb)
306- let bd = ((ba / 100) * parseIntValue(aL[3]))
307- let be = (ba - (bd + bc))
308- let bf = value(p.payments[4].amount)
309- let bg = (bf - ((bf / 1000) * 25))
310- let bh = (bf - bg)
311- let bi = ((bf / 100) * parseIntValue(aM[3]))
312- let bj = (bf - (bi + bh))
313- if ((size(aF) == 1))
314- then [StringEntry((((((("first_nft_Info=" + "nftId") + aI[0]) + "creator") + aI[4]) + "royalitypercent") + aI[3]), ("buyer" + toString(aG))), StringEntry((("first_nft_Info=" + "seller_address") + aI[1]), ("price" + aI[2])), ScriptTransfer(aG, 1, fromBase58String(aI[0])), ScriptTransfer(Address(fromBase58String(aI[1])), aP, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[4])), W, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
315- else if ((size(aF) == 2))
316- then [StringEntry((((((("first_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aG))), StringEntry((((((("second_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aG))), ScriptTransfer(aG, 1, fromBase58String(aI[0])), ScriptTransfer(aG, 1, fromBase58String(aJ[0])), ScriptTransfer(Address(fromBase58String(aI[1])), aP, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[4])), W, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[1])), aU, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[4])), aT, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
317- else if ((size(aF) == 3))
318- then [StringEntry((((((("first_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aG))), StringEntry((((((("second_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aG))), StringEntry((((((("third_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aG))), ScriptTransfer(aG, 1, fromBase58String(aI[0])), ScriptTransfer(aG, 1, fromBase58String(aJ[0])), ScriptTransfer(aG, 1, fromBase58String(aK[0])), ScriptTransfer(Address(fromBase58String(aI[1])), aP, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[4])), W, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[1])), aU, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[4])), aT, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aK[1])), aZ, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aK[4])), aY, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
319- else if ((size(aF) == 4))
320- then [StringEntry((((((("first_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aG))), StringEntry((((((("second_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aG))), StringEntry((((((("third_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aG))), StringEntry((((((("fourth_nft_Info=" + "nftId") + aL[0]) + "seller_address") + aL[1]) + "price") + aL[2]), ("buyer" + toString(aG))), ScriptTransfer(aG, 1, fromBase58String(aI[0])), ScriptTransfer(aG, 1, fromBase58String(aJ[0])), ScriptTransfer(aG, 1, fromBase58String(aK[0])), ScriptTransfer(aG, 1, fromBase58String(aL[0])), ScriptTransfer(Address(fromBase58String(aI[1])), aP, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[4])), W, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[1])), aU, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[4])), aT, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aK[1])), aZ, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aK[4])), aY, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aL[1])), be, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aL[4])), bd, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
321- else if ((size(aF) == 5))
322- then [StringEntry((((((("first_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aG))), StringEntry((((((("second_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aG))), StringEntry((((((("third_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aG))), StringEntry((((((("fourth_nft_Info=" + "nftId") + aL[0]) + "seller_address") + aL[1]) + "price") + aL[2]), ("buyer" + toString(aG))), StringEntry((((((("fifth_nft_Info=" + "nftId") + aM[0]) + "seller_address") + aM[1]) + "price") + aM[2]), ("buyer" + toString(aG))), ScriptTransfer(aG, 1, fromBase58String(aI[0])), ScriptTransfer(aG, 1, fromBase58String(aJ[0])), ScriptTransfer(aG, 1, fromBase58String(aK[0])), ScriptTransfer(aG, 1, fromBase58String(aL[0])), ScriptTransfer(aG, 1, fromBase58String(aM[0])), ScriptTransfer(Address(fromBase58String(aI[1])), aP, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[4])), W, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[1])), aU, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[4])), aT, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aK[1])), aZ, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aK[4])), aY, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aL[1])), be, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aL[4])), bd, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aM[1])), bj, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aM[4])), bi, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
323- else if ((size(aF) > 5))
280+func buyAllProducts_asimi (aE) = {
281+ let aF = p.caller
282+ let aG = assetBalance(aF, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')
283+ let aH = split(aE[0], "_")
284+ let aI = split(aE[1], "_")
285+ let aJ = split(aE[2], "_")
286+ let aK = split(aE[3], "_")
287+ let aL = split(aE[4], "_")
288+ let R = value(p.payments[0].amount)
289+ let aM = (R - ((R / 1000) * 25))
290+ let aN = (R - aM)
291+ let V = ((R / 100) * parseIntValue(aH[3]))
292+ let aO = (R - (V + aN))
293+ let aP = value(p.payments[1].amount)
294+ let aQ = (aP - ((aP / 1000) * 25))
295+ let aR = (aP - aQ)
296+ let aS = ((aP / 100) * parseIntValue(aI[3]))
297+ let aT = (aP - (aS + aR))
298+ let aU = value(p.payments[2].amount)
299+ let aV = (aU - ((aU / 1000) * 25))
300+ let aW = (aU - aV)
301+ let aX = ((aU / 100) * parseIntValue(aJ[3]))
302+ let aY = (aU - (aX + aW))
303+ let aZ = value(p.payments[3].amount)
304+ let ba = (aZ - ((aZ / 1000) * 25))
305+ let bb = (aZ - ba)
306+ let bc = ((aZ / 100) * parseIntValue(aK[3]))
307+ let bd = (aZ - (bc + bb))
308+ let be = value(p.payments[4].amount)
309+ let bf = (be - ((be / 1000) * 25))
310+ let bg = (be - bf)
311+ let bh = ((be / 100) * parseIntValue(aL[3]))
312+ let bi = (be - (bh + bg))
313+ if ((size(aE) == 1))
314+ then [StringEntry((((((("first_nft_Info=" + "nftId") + aH[0]) + "creator") + aH[4]) + "royalitypercent") + aH[3]), ("buyer" + toString(aF))), StringEntry((("first_nft_Info=" + "seller_address") + aH[1]), ("price" + aH[2])), ScriptTransfer(aF, 1, fromBase58String(aH[0])), ScriptTransfer(Address(fromBase58String(aH[1])), aO, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aH[4])), V, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
315+ else if ((size(aE) == 2))
316+ then [StringEntry((((((("first_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aF))), StringEntry((((((("second_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aF))), ScriptTransfer(aF, 1, fromBase58String(aH[0])), ScriptTransfer(aF, 1, fromBase58String(aI[0])), ScriptTransfer(Address(fromBase58String(aH[1])), aO, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aH[4])), V, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[1])), aT, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[4])), aS, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
317+ else if ((size(aE) == 3))
318+ then [StringEntry((((((("first_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aF))), StringEntry((((((("second_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aF))), StringEntry((((((("third_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aF))), ScriptTransfer(aF, 1, fromBase58String(aH[0])), ScriptTransfer(aF, 1, fromBase58String(aI[0])), ScriptTransfer(aF, 1, fromBase58String(aJ[0])), ScriptTransfer(Address(fromBase58String(aH[1])), aO, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aH[4])), V, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[1])), aT, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[4])), aS, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[1])), aY, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[4])), aX, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
319+ else if ((size(aE) == 4))
320+ then [StringEntry((((((("first_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aF))), StringEntry((((((("second_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aF))), StringEntry((((((("third_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aF))), StringEntry((((((("fourth_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aF))), ScriptTransfer(aF, 1, fromBase58String(aH[0])), ScriptTransfer(aF, 1, fromBase58String(aI[0])), ScriptTransfer(aF, 1, fromBase58String(aJ[0])), ScriptTransfer(aF, 1, fromBase58String(aK[0])), ScriptTransfer(Address(fromBase58String(aH[1])), aO, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aH[4])), V, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[1])), aT, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[4])), aS, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[1])), aY, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[4])), aX, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aK[1])), bd, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aK[4])), bc, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
321+ else if ((size(aE) == 5))
322+ then [StringEntry((((((("first_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aF))), StringEntry((((((("second_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aF))), StringEntry((((((("third_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aF))), StringEntry((((((("fourth_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aF))), StringEntry((((((("fifth_nft_Info=" + "nftId") + aL[0]) + "seller_address") + aL[1]) + "price") + aL[2]), ("buyer" + toString(aF))), ScriptTransfer(aF, 1, fromBase58String(aH[0])), ScriptTransfer(aF, 1, fromBase58String(aI[0])), ScriptTransfer(aF, 1, fromBase58String(aJ[0])), ScriptTransfer(aF, 1, fromBase58String(aK[0])), ScriptTransfer(aF, 1, fromBase58String(aL[0])), ScriptTransfer(Address(fromBase58String(aH[1])), aO, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aH[4])), V, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[1])), aT, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[4])), aS, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[1])), aY, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[4])), aX, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aK[1])), bd, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aK[4])), bc, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aL[1])), bi, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aL[4])), bh, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
323+ else if ((size(aE) > 5))
324324 then throw("sorry! maximum limit of your cart is 5 items")
325325 else nil
326326 }
327327
328328
329329
330330 @Callable(p)
331-func buyAllProducts_waves (aF) = {
332- let aG = p.caller
333- let aH = assetBalance(aG, g)
334- let aI = split(aF[0], "_")
335- let aJ = split(aF[1], "_")
336- let aK = split(aF[2], "_")
337- let aL = split(aF[3], "_")
338- let aM = split(aF[4], "_")
339- let S = value(p.payments[0].amount)
340- let aN = (S - ((S / 1000) * 25))
341- let aO = (S - aN)
342- let W = ((S / 100) * parseIntValue(aI[3]))
343- let aP = (S - (W + aO))
344- let aQ = value(p.payments[1].amount)
345- let aR = (aQ - ((aQ / 1000) * 25))
346- let aS = (aQ - aR)
347- let aT = ((aQ / 100) * parseIntValue(aJ[3]))
348- let aU = (aQ - (aT + aS))
349- let aV = value(p.payments[2].amount)
350- let aW = (aV - ((aV / 1000) * 25))
351- let aX = (aV - aW)
352- let aY = ((aV / 100) * parseIntValue(aK[3]))
353- let aZ = (aV - (aY + aX))
354- let ba = value(p.payments[3].amount)
355- let bb = (ba - ((ba / 1000) * 25))
356- let bc = (ba - bb)
357- let bd = ((ba / 100) * parseIntValue(aL[3]))
358- let be = (ba - (bd + bc))
359- let bf = value(p.payments[4].amount)
360- let bg = (bf - ((bf / 1000) * 25))
361- let bh = (bf - bg)
362- let bi = ((bf / 100) * parseIntValue(aM[3]))
363- let bj = (bf - (bi + bh))
364- if ((size(aF) == 1))
365- then [StringEntry((((((("first_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aG))), ScriptTransfer(aG, 1, fromBase58String(aI[0])), ScriptTransfer(Address(fromBase58String(aI[1])), aP, unit), ScriptTransfer(Address(fromBase58String(aI[4])), W, unit)]
366- else if ((size(aF) == 2))
367- then [StringEntry((((((("first_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aG))), StringEntry((((((("second_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aG))), ScriptTransfer(aG, 1, fromBase58String(aI[0])), ScriptTransfer(aG, 1, fromBase58String(aJ[0])), ScriptTransfer(Address(fromBase58String(aI[1])), aP, unit), ScriptTransfer(Address(fromBase58String(aI[4])), W, unit), ScriptTransfer(Address(fromBase58String(aJ[1])), aU, unit), ScriptTransfer(Address(fromBase58String(aJ[4])), aT, unit)]
368- else if ((size(aF) == 3))
369- then [StringEntry((((((("first_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aG))), StringEntry((((((("second_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aG))), StringEntry((((((("third_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aG))), ScriptTransfer(aG, 1, fromBase58String(aI[0])), ScriptTransfer(aG, 1, fromBase58String(aJ[0])), ScriptTransfer(aG, 1, fromBase58String(aK[0])), ScriptTransfer(Address(fromBase58String(aI[1])), aP, unit), ScriptTransfer(Address(fromBase58String(aI[4])), W, unit), ScriptTransfer(Address(fromBase58String(aJ[1])), aU, unit), ScriptTransfer(Address(fromBase58String(aJ[4])), aT, unit), ScriptTransfer(Address(fromBase58String(aK[1])), aZ, unit), ScriptTransfer(Address(fromBase58String(aK[4])), aY, unit)]
370- else if ((size(aF) == 4))
371- then [StringEntry((((((("first_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aG))), StringEntry((((((("second_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aG))), StringEntry((((((("third_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aG))), StringEntry((((((("fourth_nft_Info=" + "nftId") + aL[0]) + "seller_address") + aL[1]) + "price") + aL[2]), ("buyer" + toString(aG))), ScriptTransfer(aG, 1, fromBase58String(aI[0])), ScriptTransfer(aG, 1, fromBase58String(aJ[0])), ScriptTransfer(aG, 1, fromBase58String(aK[0])), ScriptTransfer(aG, 1, fromBase58String(aL[0])), ScriptTransfer(Address(fromBase58String(aI[1])), aP, unit), ScriptTransfer(Address(fromBase58String(aI[4])), W, unit), ScriptTransfer(Address(fromBase58String(aJ[1])), aU, unit), ScriptTransfer(Address(fromBase58String(aJ[4])), aT, unit), ScriptTransfer(Address(fromBase58String(aK[1])), aZ, unit), ScriptTransfer(Address(fromBase58String(aK[4])), aY, unit), ScriptTransfer(Address(fromBase58String(aL[1])), be, unit), ScriptTransfer(Address(fromBase58String(aL[4])), bd, unit)]
372- else if ((size(aF) == 5))
373- then [StringEntry((((((("first_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aG))), StringEntry((((((("second_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aG))), StringEntry((((((("third_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aG))), StringEntry((((((("fourth_nft_Info=" + "nftId") + aL[0]) + "seller_address") + aL[1]) + "price") + aL[2]), ("buyer" + toString(aG))), StringEntry((((((("fifth_nft_Info=" + "nftId") + aM[0]) + "seller_address") + aM[1]) + "price") + aM[2]), ("buyer" + toString(aG))), ScriptTransfer(aG, 1, fromBase58String(aI[0])), ScriptTransfer(aG, 1, fromBase58String(aJ[0])), ScriptTransfer(aG, 1, fromBase58String(aK[0])), ScriptTransfer(aG, 1, fromBase58String(aL[0])), ScriptTransfer(aG, 1, fromBase58String(aM[0])), ScriptTransfer(Address(fromBase58String(aI[1])), aP, unit), ScriptTransfer(Address(fromBase58String(aI[4])), W, unit), ScriptTransfer(Address(fromBase58String(aJ[1])), aU, unit), ScriptTransfer(Address(fromBase58String(aJ[4])), aT, unit), ScriptTransfer(Address(fromBase58String(aK[1])), aZ, unit), ScriptTransfer(Address(fromBase58String(aK[4])), aY, unit), ScriptTransfer(Address(fromBase58String(aL[1])), be, unit), ScriptTransfer(Address(fromBase58String(aL[4])), bd, unit), ScriptTransfer(Address(fromBase58String(aM[1])), bj, unit), ScriptTransfer(Address(fromBase58String(aM[4])), bi, unit)]
374- else if ((size(aF) > 5))
331+func buyAllProducts_waves (aE) = {
332+ let aF = p.caller
333+ let aG = assetBalance(aF, g)
334+ let aH = split(aE[0], "_")
335+ let aI = split(aE[1], "_")
336+ let aJ = split(aE[2], "_")
337+ let aK = split(aE[3], "_")
338+ let aL = split(aE[4], "_")
339+ let R = value(p.payments[0].amount)
340+ let aM = (R - ((R / 1000) * 25))
341+ let aN = (R - aM)
342+ let V = ((R / 100) * parseIntValue(aH[3]))
343+ let aO = (R - (V + aN))
344+ let aP = value(p.payments[1].amount)
345+ let aQ = (aP - ((aP / 1000) * 25))
346+ let aR = (aP - aQ)
347+ let aS = ((aP / 100) * parseIntValue(aI[3]))
348+ let aT = (aP - (aS + aR))
349+ let aU = value(p.payments[2].amount)
350+ let aV = (aU - ((aU / 1000) * 25))
351+ let aW = (aU - aV)
352+ let aX = ((aU / 100) * parseIntValue(aJ[3]))
353+ let aY = (aU - (aX + aW))
354+ let aZ = value(p.payments[3].amount)
355+ let ba = (aZ - ((aZ / 1000) * 25))
356+ let bb = (aZ - ba)
357+ let bc = ((aZ / 100) * parseIntValue(aK[3]))
358+ let bd = (aZ - (bc + bb))
359+ let be = value(p.payments[4].amount)
360+ let bf = (be - ((be / 1000) * 25))
361+ let bg = (be - bf)
362+ let bh = ((be / 100) * parseIntValue(aL[3]))
363+ let bi = (be - (bh + bg))
364+ if ((size(aE) == 1))
365+ then [StringEntry((((((("first_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aF))), ScriptTransfer(aF, 1, fromBase58String(aH[0])), ScriptTransfer(Address(fromBase58String(aH[1])), aO, unit), ScriptTransfer(Address(fromBase58String(aH[4])), V, unit)]
366+ else if ((size(aE) == 2))
367+ then [StringEntry((((((("first_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aF))), StringEntry((((((("second_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aF))), ScriptTransfer(aF, 1, fromBase58String(aH[0])), ScriptTransfer(aF, 1, fromBase58String(aI[0])), ScriptTransfer(Address(fromBase58String(aH[1])), aO, unit), ScriptTransfer(Address(fromBase58String(aH[4])), V, unit), ScriptTransfer(Address(fromBase58String(aI[1])), aT, unit), ScriptTransfer(Address(fromBase58String(aI[4])), aS, unit)]
368+ else if ((size(aE) == 3))
369+ then [StringEntry((((((("first_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aF))), StringEntry((((((("second_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aF))), StringEntry((((((("third_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aF))), ScriptTransfer(aF, 1, fromBase58String(aH[0])), ScriptTransfer(aF, 1, fromBase58String(aI[0])), ScriptTransfer(aF, 1, fromBase58String(aJ[0])), ScriptTransfer(Address(fromBase58String(aH[1])), aO, unit), ScriptTransfer(Address(fromBase58String(aH[4])), V, unit), ScriptTransfer(Address(fromBase58String(aI[1])), aT, unit), ScriptTransfer(Address(fromBase58String(aI[4])), aS, unit), ScriptTransfer(Address(fromBase58String(aJ[1])), aY, unit), ScriptTransfer(Address(fromBase58String(aJ[4])), aX, unit)]
370+ else if ((size(aE) == 4))
371+ then [StringEntry((((((("first_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aF))), StringEntry((((((("second_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aF))), StringEntry((((((("third_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aF))), StringEntry((((((("fourth_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aF))), ScriptTransfer(aF, 1, fromBase58String(aH[0])), ScriptTransfer(aF, 1, fromBase58String(aI[0])), ScriptTransfer(aF, 1, fromBase58String(aJ[0])), ScriptTransfer(aF, 1, fromBase58String(aK[0])), ScriptTransfer(Address(fromBase58String(aH[1])), aO, unit), ScriptTransfer(Address(fromBase58String(aH[4])), V, unit), ScriptTransfer(Address(fromBase58String(aI[1])), aT, unit), ScriptTransfer(Address(fromBase58String(aI[4])), aS, unit), ScriptTransfer(Address(fromBase58String(aJ[1])), aY, unit), ScriptTransfer(Address(fromBase58String(aJ[4])), aX, unit), ScriptTransfer(Address(fromBase58String(aK[1])), bd, unit), ScriptTransfer(Address(fromBase58String(aK[4])), bc, unit)]
372+ else if ((size(aE) == 5))
373+ then [StringEntry((((((("first_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aF))), StringEntry((((((("second_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aF))), StringEntry((((((("third_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aF))), StringEntry((((((("fourth_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aF))), StringEntry((((((("fifth_nft_Info=" + "nftId") + aL[0]) + "seller_address") + aL[1]) + "price") + aL[2]), ("buyer" + toString(aF))), ScriptTransfer(aF, 1, fromBase58String(aH[0])), ScriptTransfer(aF, 1, fromBase58String(aI[0])), ScriptTransfer(aF, 1, fromBase58String(aJ[0])), ScriptTransfer(aF, 1, fromBase58String(aK[0])), ScriptTransfer(aF, 1, fromBase58String(aL[0])), ScriptTransfer(Address(fromBase58String(aH[1])), aO, unit), ScriptTransfer(Address(fromBase58String(aH[4])), V, unit), ScriptTransfer(Address(fromBase58String(aI[1])), aT, unit), ScriptTransfer(Address(fromBase58String(aI[4])), aS, unit), ScriptTransfer(Address(fromBase58String(aJ[1])), aY, unit), ScriptTransfer(Address(fromBase58String(aJ[4])), aX, unit), ScriptTransfer(Address(fromBase58String(aK[1])), bd, unit), ScriptTransfer(Address(fromBase58String(aK[4])), bc, unit), ScriptTransfer(Address(fromBase58String(aL[1])), bi, unit), ScriptTransfer(Address(fromBase58String(aL[4])), bh, unit)]
374+ else if ((size(aE) > 5))
375375 then throw("sorry! maximum limit of your cart is 5 items")
376376 else nil
377377 }
378378
379379
380380
381381 @Callable(p)
382-func withdrawEarnAsimi (P,S) = {
383- let bk = base58'3MuehcPaJCUy5asSiT8XX1pwwz9Tj4J9SDS'
384- if ((p.caller.bytes != bk))
382+func withdrawEarnAsimi (O,R) = {
383+ let bj = base58'3MuehcPaJCUy5asSiT8XX1pwwz9Tj4J9SDS'
384+ if ((p.caller.bytes != bj))
385385 then throw("sorry you have no access")
386- else if (if ((P >= 0))
387- then (P >= S)
386+ else if (if ((O >= 0))
387+ then (O >= R)
388388 else false)
389- then [ScriptTransfer(p.caller, (S * 100), f)]
389+ then [ScriptTransfer(p.caller, (R * 100), f)]
390390 else nil
391391 }
392392
393393
394394
395395 @Callable(p)
396-func withdrawEarnWaves (P,S) = {
397- let bk = base58'3MuehcPaJCUy5asSiT8XX1pwwz9Tj4J9SDS'
398- if ((p.caller.bytes != bk))
396+func withdrawEarnWaves (O,R) = {
397+ let bj = base58'3MuehcPaJCUy5asSiT8XX1pwwz9Tj4J9SDS'
398+ if ((p.caller.bytes != bj))
399399 then throw("sorry you have no access")
400- else if (if ((P >= 0))
401- then (P >= S)
400+ else if (if ((O >= 0))
401+ then (O >= R)
402402 else false)
403- then [ScriptTransfer(p.caller, (S * 100000000), unit)]
403+ then [ScriptTransfer(p.caller, (R * 100000000), unit)]
404404 else nil
405405 }
406406
407407
408408
409409 @Callable(p)
410-func setPlatformfee (P) = {
411- let bl = p.caller.bytes
412-[StringEntry((toBase58String(bl) + "admin"), (P + "platformFee"))]
410+func setPlatformfee (O) = {
411+ let bk = p.caller.bytes
412+[StringEntry((toBase58String(bk) + "admin"), (O + "platformFee"))]
413413 }
414414
415415
416-@Verifier(bm)
417-func bn () = {
418- let n = bm
416+@Verifier(bl)
417+func bm () = {
418+ let n = bl
419419 if ($isInstanceOf(n, "SetScriptTransaction"))
420420 then {
421- let bo = n
421+ let bn = n
422422 true
423423 }
424424 else false
425425 }
426426

github/deemru/w8io/873ac7e 
416.62 ms