tx · HabcFfDoT4S38HU5ePE6Z8UT7bXgACUcxfjXtnx2pGUC

3Mr7Qu4DoK2AG3aFJkavD1QfLeYZ9JQkf2z:  -0.01800000 Waves

2023.07.04 16:56 [2651246] smart account 3Mr7Qu4DoK2AG3aFJkavD1QfLeYZ9JQkf2z > SELF 0.00000000 Waves

{ "type": 13, "id": "HabcFfDoT4S38HU5ePE6Z8UT7bXgACUcxfjXtnx2pGUC", "fee": 1800000, "feeAssetId": null, "timestamp": 1688478956720, "version": 2, "chainId": 84, "sender": "3Mr7Qu4DoK2AG3aFJkavD1QfLeYZ9JQkf2z", "senderPublicKey": "EAKRfs8swGWZJwXuunVL2epKZGzqzd5kZPfksHXQvESb", "proofs": [ "w6pNySf3BeUaEPnMiUqMMYDbm6XL3siTNJYfuHh4h1PXeRsQ2tuhv7BXEwdrgut2HgCm1DDiXv4Xcc5d4Sg6uxm" ], "script": "base64:BgJcCAISBgoECAgICBIJCgcICAgICAgIEgUKAwEIARIGCgQBCAgBEgQKAgEIEgMKAQgSBAoCAQQSAwoBCBIFCgMBCAESCwoJAQgIAQEBAQEEEgASABIDCgEIEgMKAQhAAAlTRVBBUkFUT1ICAl9fAAhLRVlfSU5JVAIESU5JVAAMS0VZX01VTFRJU0lHAghNVUxUSVNJRwAKS0VZX1NUQVRVUwIGU1RBVFVTAApLRVlfUEFVU0VEAgZQQVVTRUQACktFWV9QQVVTRVICBlBBVVNFUgAMS0VZX0VYRUNVVE9SAghFWEVDVVRPUgAQS0VZX1JPT1RfQURBUFRFUgIMUk9PVF9BREFQVEVSABNLRVlfQ0FMTEVSX0NPTlRSQUNUAg9DQUxMRVJfQ09OVFJBQ1QACUtFWV9DSEFJTgIFQ0hBSU4AC0tFWV9CSU5ESU5HAgdCSU5ESU5HAAdLRVlfRkVFAgNGRUUAEUtFWV9GRUVfUkVDSVBJRU5UAg1GRUVfUkVDSVBJRU5UABhLRVlfUkVGRVJSRVJfRkVFX1BFUkNFTlQCFFJFRkVSUkVSX0ZFRV9QRVJDRU5UABNGVU5DX1JFTEVBU0VfVE9LRU5TAg1yZWxlYXNlVG9rZW5zAAVXQVZFUwIFV0FWRVMADldBVkVTX0RFQ0lNQUxTAAgACERFQ0lNQUxTAAYADlBFUkNFTlRfRkFDVE9SAMCEPQAQTUFYX1JFRkVSUkVSX0ZFRQDAmgwAB01BWF9JTlQA//////////9/ARBfdmFsaWRhdGVBZGRyZXNzAghhZGRyZXNzXwRlcnJfBAckbWF0Y2gwCQCmCAEFCGFkZHJlc3NfAwkAAQIFByRtYXRjaDACB0FkZHJlc3MEAWEFByRtYXRjaDAGCQACAQUEZXJyXwEOX3ZhbGlkYXRlQXNzZXQCCGFzc2V0SWRfBGVycl8EByRtYXRjaDAJAOwHAQkA2QQBBQhhc3NldElkXwMJAAECBQckbWF0Y2gwAgVBc3NldAQBYQUHJG1hdGNoMAYJAAIBBQRlcnJfAQxfdmFsaWRhdGVJbnQEBHZhbF8ObG93ZXJCb3VuZGFyeV8OdXBwZXJCb3VuZGFyeV8EZXJyXwMDCQBmAgUObG93ZXJCb3VuZGFyeV8FBHZhbF8GCQBmAgUEdmFsXwUOdXBwZXJCb3VuZGFyeV8JAAIBBQRlcnJfBgENX3ZhbGlkYXRlQm9vbAMEdmFsXwd0YXJnZXRfBGVycl8DCQECIT0CBQR2YWxfBQd0YXJnZXRfCQACAQUEZXJyXwYBFV92YWxpZGF0ZVBheW1lbnRzU2l6ZQMJcGF5bWVudHNfB3RhcmdldF8EZXJyXwMJAQIhPQIJAJADAQUJcGF5bWVudHNfBQd0YXJnZXRfCQACAQUEZXJyXwYBEV92YWxpZGF0ZVJlZmVycmVyAglyZWZlcnJlcl8EZXJyXwMJAQIhPQIFCXJlZmVycmVyXwIACQEQX3ZhbGlkYXRlQWRkcmVzcwIFCXJlZmVycmVyXwUEZXJyXwYBEl9ub3JtYWxpemVEZWNpbWFscwMHYW1vdW50Xw9zb3VyY2VEZWNpbWFsc18PdGFyZ2V0RGVjaW1hbHNfAwkAZwIFD3NvdXJjZURlY2ltYWxzXwUPdGFyZ2V0RGVjaW1hbHNfCQBpAgUHYW1vdW50XwkAbAYACgAACQBlAgUPc291cmNlRGVjaW1hbHNfBQ90YXJnZXREZWNpbWFsc18AAAAABQRET1dOCQBoAgUHYW1vdW50XwkAbAYACgAACQBlAgUPdGFyZ2V0RGVjaW1hbHNfBQ9zb3VyY2VEZWNpbWFsc18AAAAABQRET1dOAQlfbG9hZEluaXQABAckbWF0Y2gwCQCgCAEFCEtFWV9JTklUAwkAAQIFByRtYXRjaDACB0Jvb2xlYW4EAWEFByRtYXRjaDAFAWEHAQlfc2F2ZUluaXQBB2lzSW5pdF8JAMwIAgkBDEJvb2xlYW5FbnRyeQIFCEtFWV9JTklUBQdpc0luaXRfBQNuaWwBCl9sb2FkUGF1c2UABAckbWF0Y2gwCQCgCAEFCktFWV9QQVVTRUQDCQABAgUHJG1hdGNoMAIHQm9vbGVhbgQBYQUHJG1hdGNoMAUBYQcBCl9zYXZlUGF1c2UBCWlzUGF1c2VkXwkAzAgCCQEMQm9vbGVhbkVudHJ5AgUKS0VZX1BBVVNFRAUJaXNQYXVzZWRfBQNuaWwBC19sb2FkUGF1c2VyAAQHJG1hdGNoMAkAoggBBQpLRVlfUEFVU0VSAwkAAQIFByRtYXRjaDACBlN0cmluZwQBYQUHJG1hdGNoMAkBEUBleHRyTmF0aXZlKDEwNjIpAQUBYQkBB0FkZHJlc3MBAQABC19zYXZlUGF1c2VyAQdwYXVzZXJfCQDMCAIJAQtTdHJpbmdFbnRyeQIFCktFWV9QQVVTRVIJAKUIAQUHcGF1c2VyXwUDbmlsAQ1fbG9hZE11bHRpc2lnAAQHJG1hdGNoMAkAoggBBQxLRVlfTVVMVElTSUcDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwCQERQGV4dHJOYXRpdmUoMTA2MikBBQFhCQEHQWRkcmVzcwEBAAENX3NhdmVNdWx0aXNpZwEJbXVsdGlzaWdfCQDMCAIJAQtTdHJpbmdFbnRyeQIFDEtFWV9NVUxUSVNJRwkApQgBBQltdWx0aXNpZ18FA25pbAENX2xvYWRFeGVjdXRvcgAEByRtYXRjaDAJAKIIAQUMS0VZX0VYRUNVVE9SAwkAAQIFByRtYXRjaDACBlN0cmluZwQBYQUHJG1hdGNoMAkBEUBleHRyTmF0aXZlKDEwNjIpAQUBYQkBB0FkZHJlc3MBAQABDV9zYXZlRXhlY3V0b3IBCWV4ZWN1dG9yXwkAzAgCCQELU3RyaW5nRW50cnkCBQxLRVlfRVhFQ1VUT1IJAKUIAQUJZXhlY3V0b3JfBQNuaWwBE19sb2FkQ2FsbGVyQ29udHJhY3QABAckbWF0Y2gwCQCiCAEFE0tFWV9DQUxMRVJfQ09OVFJBQ1QDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwBQFhAgABE19zYXZlQ2FsbGVyQ29udHJhY3QBB2NhbGxlcl8JAMwIAgkBC1N0cmluZ0VudHJ5AgUTS0VZX0NBTExFUl9DT05UUkFDVAUHY2FsbGVyXwUDbmlsAQpfbG9hZENoYWluAQhjaGFpbklkXwQHJG1hdGNoMAkAoAgBCQC5CQIJAMwIAgUJS0VZX0NIQUlOCQDMCAIJAKQDAQUIY2hhaW5JZF8FA25pbAUJU0VQQVJBVE9SAwkAAQIFByRtYXRjaDACB0Jvb2xlYW4EAWEFByRtYXRjaDAFAWEHAQpfc2F2ZUNoYWluAghjaGFpbklkXwR2YWxfCQDMCAIJAQxCb29sZWFuRW50cnkCCQC5CQIJAMwIAgUJS0VZX0NIQUlOCQDMCAIJAKQDAQUIY2hhaW5JZF8FA25pbAUJU0VQQVJBVE9SBQR2YWxfBQNuaWwBDF9sb2FkQmluZGluZwIRZXhlY3V0aW9uQ2hhaW5JZF8IYXNzZXRJZF8EByRtYXRjaDAJAKIIAQkAuQkCCQDMCAIFC0tFWV9CSU5ESU5HCQDMCAIJAKQDAQURZXhlY3V0aW9uQ2hhaW5JZF8JAMwIAgkA2AQBBQhhc3NldElkXwUDbmlsBQlTRVBBUkFUT1IDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwBAZzdHJ1Y3QJALUJAgUBYQUJU0VQQVJBVE9SCQCaCggJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUGc3RydWN0AAAJAJEDAgUGc3RydWN0AAEJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQZzdHJ1Y3QAAgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBnN0cnVjdAADCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUGc3RydWN0AAQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQZzdHJ1Y3QABQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBnN0cnVjdAAGAwkAAAIJAJEDAgUGc3RydWN0AAcCATEGBwkAmgoICQEHQWRkcmVzcwEBAAIAAAAAAAAAAAAAAAcBDF9zYXZlQmluZGluZwMRZXhlY3V0aW9uQ2hhaW5JZF8IYXNzZXRJZF8IYmluZGluZ18JAMwIAgkBC1N0cmluZ0VudHJ5AgkAuQkCCQDMCAIFC0tFWV9CSU5ESU5HCQDMCAIJAKQDAQURZXhlY3V0aW9uQ2hhaW5JZF8JAMwIAgkA2AQBBQhhc3NldElkXwUDbmlsBQlTRVBBUkFUT1IJALkJAgkAzAgCCQClCAEIBQhiaW5kaW5nXwJfMQkAzAgCCAUIYmluZGluZ18CXzIJAMwIAgkApAMBCAUIYmluZGluZ18CXzMJAMwIAgkApAMBCAUIYmluZGluZ18CXzQJAMwIAgkApAMBCAUIYmluZGluZ18CXzUJAMwIAgkApAMBCAUIYmluZGluZ18CXzYJAMwIAgkApAMBCAUIYmluZGluZ18CXzcJAMwIAgMIBQhiaW5kaW5nXwJfOAIBMQIBMAUDbmlsBQlTRVBBUkFUT1IFA25pbAEIX2xvYWRGZWUBCGFzc2V0SWRfBAckbWF0Y2gwCQCfCAEJALkJAgkAzAgCBQdLRVlfRkVFCQDMCAIJANgEAQUIYXNzZXRJZF8FA25pbAUJU0VQQVJBVE9SAwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAAAQhfc2F2ZUZlZQIIYXNzZXRJZF8EdmFsXwkAzAgCCQEMSW50ZWdlckVudHJ5AgkAuQkCCQDMCAIFB0tFWV9GRUUJAMwIAgkA2AQBBQhhc3NldElkXwUDbmlsBQlTRVBBUkFUT1IFBHZhbF8FA25pbAEQX2xvYWRSb290QWRhcHRlcgAEByRtYXRjaDAJAKIIAQUQS0VZX1JPT1RfQURBUFRFUgMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAWEJAQdBZGRyZXNzAQEAARBfc2F2ZVJvb3RBZGFwdGVyAQhhZGFwdGVyXwkAzAgCCQELU3RyaW5nRW50cnkCBRBLRVlfUk9PVF9BREFQVEVSCQClCAEFCGFkYXB0ZXJfBQNuaWwBEV9sb2FkRmVlUmVjaXBpZW50AAQHJG1hdGNoMAkAoggBBRFLRVlfRkVFX1JFQ0lQSUVOVAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAWEJAQdBZGRyZXNzAQEAARFfc2F2ZUZlZVJlY2lwaWVudAEEdmFsXwkAzAgCCQELU3RyaW5nRW50cnkCBRFLRVlfRkVFX1JFQ0lQSUVOVAkApQgBBQR2YWxfBQNuaWwBF19sb2FkUmVmZXJyZXJGZWVQZXJjZW50AhFleGVjdXRpb25DaGFpbklkXwlyZWZlcnJlcl8EByRtYXRjaDAJAJ8IAQkAuQkCCQDMCAIFGEtFWV9SRUZFUlJFUl9GRUVfUEVSQ0VOVAkAzAgCCQCkAwEFEWV4ZWN1dGlvbkNoYWluSWRfCQDMCAIJAKUIAQUJcmVmZXJyZXJfBQNuaWwFCVNFUEFSQVRPUgMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAEXX3NhdmVSZWZlcnJlckZlZVBlcmNlbnQDEWV4ZWN1dGlvbkNoYWluSWRfCXJlZmVycmVyXwR2YWxfCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQC5CQIJAMwIAgUYS0VZX1JFRkVSUkVSX0ZFRV9QRVJDRU5UCQDMCAIJAKQDAQURZXhlY3V0aW9uQ2hhaW5JZF8JAMwIAgkApQgBBQlyZWZlcnJlcl8FA25pbAUJU0VQQVJBVE9SBQR2YWxfBQNuaWwBEV9vbmx5VGhpc0NvbnRyYWN0AQdjYWxsZXJfAwkBAiE9AgUHY2FsbGVyXwUEdGhpcwkAAgECGV9vbmx5VGhpc0NvbnRyYWN0OiByZXZlcnQGARBfd2hlbk11bHRpc2lnU2V0AAMJAAACCQENX2xvYWRNdWx0aXNpZwAJAQdBZGRyZXNzAQEACQACAQIYX3doZW5NdWx0aXNpZ1NldDogcmV2ZXJ0BgETX3doZW5Ob3RJbml0aWFsaXplZAADCQEJX2xvYWRJbml0AAkAAgECG193aGVuTm90SW5pdGlhbGl6ZWQ6IHJldmVydAYBEF93aGVuSW5pdGlhbGl6ZWQAAwkBASEBCQEJX2xvYWRJbml0AAkAAgECGF93aGVuSW5pdGlhbGl6ZWQ6IHJldmVydAYBDl93aGVuTm90UGF1c2VkAAMJAQpfbG9hZFBhdXNlAAkAAgECFl93aGVuTm90UGF1c2VkOiByZXZlcnQGAQtfd2hlblBhdXNlZAADCQEBIQEJAQpfbG9hZFBhdXNlAAkAAgECE193aGVuUGF1c2VkOiByZXZlcnQGAQtfb25seVBhdXNlcgEHY2FsbGVyXwMJAQIhPQIFB2NhbGxlcl8JAQtfbG9hZFBhdXNlcgAJAAIBAhNfb25seVBhdXNlcjogcmV2ZXJ0BgEGX2FzSW50AQR2YWxfBAckbWF0Y2gwBQR2YWxfAwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQkAAgECDl9hc0ludDogcmV2ZXJ0AQhfYXNCeXRlcwEEdmFsXwQHJG1hdGNoMAUEdmFsXwMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAFhBQckbWF0Y2gwBQFhCQACAQIQX2FzQnl0ZXM6IHJldmVydAERX3ZhbGlkYXRlRXhlY3V0b3ICBHZhbF8EZXJyXwMJAQIhPQIFBHZhbF8JAQ1fbG9hZEV4ZWN1dG9yAAkAAgEFBGVycl8GAQ9fdmFsaWRhdGVDYWxsZXICBHZhbF8EZXJyXwMJAQIhPQIFBHZhbF8JARNfbG9hZENhbGxlckNvbnRyYWN0AAkAAgEFBGVycl8GAQ5fdmFsaWRhdGVDaGFpbgIRZXhlY3V0aW9uQ2hhaW5JZF8EZXJyXwMJAQEhAQkBCl9sb2FkQ2hhaW4BBRFleGVjdXRpb25DaGFpbklkXwkAAgEFBGVycl8GDgFpAQRpbml0BAlleGVjdXRvcl8IYWRhcHRlcl8HcGF1c2VyXw1mZWVSZWNpcGllbnRfBANlcnIDAwMDAwMJARFfb25seVRoaXNDb250cmFjdAEIBQFpBmNhbGxlcgkBE193aGVuTm90SW5pdGlhbGl6ZWQABwkBEF93aGVuTXVsdGlzaWdTZXQABwkBEF92YWxpZGF0ZUFkZHJlc3MCBQlleGVjdXRvcl8CFmluaXQ6IGludmFsaWQgZXhlY3V0b3IHCQEQX3ZhbGlkYXRlQWRkcmVzcwIFCGFkYXB0ZXJfAhVpbml0OiBpbnZhbGlkIGFkYXB0ZXIHCQEQX3ZhbGlkYXRlQWRkcmVzcwIFB3BhdXNlcl8CFGluaXQ6IGludmFsaWQgcGF1c2VyBwkBEF92YWxpZGF0ZUFkZHJlc3MCBQ1mZWVSZWNpcGllbnRfAhppbml0OiBpbnZhbGlkIGZlZVJlY2lwaWVudAcDCQAAAgUDZXJyBQNlcnIJAJQKAgkAzggCCQDOCAIJAM4IAgkAzggCCQEJX3NhdmVJbml0AQYJAQ1fc2F2ZUV4ZWN1dG9yAQkBEUBleHRyTmF0aXZlKDEwNjIpAQUJZXhlY3V0b3JfCQEQX3NhdmVSb290QWRhcHRlcgEJARFAZXh0ck5hdGl2ZSgxMDYyKQEFCGFkYXB0ZXJfCQELX3NhdmVQYXVzZXIBCQERQGV4dHJOYXRpdmUoMTA2MikBBQdwYXVzZXJfCQERX3NhdmVGZWVSZWNpcGllbnQBCQERQGV4dHJOYXRpdmUoMTA2MikBBQ1mZWVSZWNpcGllbnRfBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCm1pbnRUb2tlbnMHD2NhbGxlckNvbnRyYWN0Xw5hc3NldENvbnRyYWN0XwdhbW91bnRfCnJlY2lwaWVudF8OZ2FzbGVzc1Jld2FyZF8JcmVmZXJyZXJfDHJlZmVycmVyRmVlXwQGYW1vdW50CQETdmFsdWVPckVycm9yTWVzc2FnZQIJALYJAQUHYW1vdW50XwIXbWludDogYW1vdW50IGlzIG5vdCBJbnQEDWdhc2xlc3NSZXdhcmQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAtgkBBQ5nYXNsZXNzUmV3YXJkXwIebWludDogZ2FzbGVzc1Jld2FyZCBpcyBub3QgSW50BAtyZWZlcnJlckZlZQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQC2CQEFDHJlZmVycmVyRmVlXwIcbWludDogcmVmZXJyZXJGZWUgaXMgbm90IEludAQDZXJyAwMDAwMDAwMJARBfd2hlbkluaXRpYWxpemVkAAkBDl93aGVuTm90UGF1c2VkAAcJARBfdmFsaWRhdGVBZGRyZXNzAgUOYXNzZXRDb250cmFjdF8CHG1pbnQ6IGludmFsaWQgYXNzZXQgY29udHJhY3QHCQERX3ZhbGlkYXRlRXhlY3V0b3ICCAUBaQZjYWxsZXICFm1pbnQ6IGludmFsaWQgZXhlY3V0b3IHCQEPX3ZhbGlkYXRlQ2FsbGVyAgUPY2FsbGVyQ29udHJhY3RfAhRtaW50OiBpbnZhbGlkIGNhbGxlcgcJARBfdmFsaWRhdGVBZGRyZXNzAgUKcmVjaXBpZW50XwIfbWludDogaW52YWxpZCByZWNpcGllbnQgYWRkcmVzcwcJAQxfdmFsaWRhdGVJbnQEBQZhbW91bnQAAAUHTUFYX0lOVAIUbWludDogaW52YWxpZCBhbW91bnQHCQEMX3ZhbGlkYXRlSW50BAUNZ2FzbGVzc1Jld2FyZAAABQdNQVhfSU5UAhttaW50OiBpbnZhbGlkIGdhc2xlc3NSZXdhcmQHCQEMX3ZhbGlkYXRlSW50BAULcmVmZXJyZXJGZWUAAAUHTUFYX0lOVAIabWludDogaW52YWxpZCByZWZlcnJlciBmZWUHAwkAAAIFA2VycgUDZXJyBAdhc3NldElkCQEIX2FzQnl0ZXMBCQD8BwQJARFAZXh0ck5hdGl2ZSgxMDYyKQEFDmFzc2V0Q29udHJhY3RfAgpnZXRBc3NldElkBQNuaWwFA25pbAMJAAACBQdhc3NldElkBQdhc3NldElkBA1hc3NldERlY2ltYWxzCQEGX2FzSW50AQkA/AcECQERQGV4dHJOYXRpdmUoMTA2MikBBQ5hc3NldENvbnRyYWN0XwILZ2V0RGVjaW1hbHMFA25pbAUDbmlsAwkAAAIFDWFzc2V0RGVjaW1hbHMFDWFzc2V0RGVjaW1hbHMEEG5vcm1hbGl6ZWRBbW91bnQJARJfbm9ybWFsaXplRGVjaW1hbHMDBQZhbW91bnQFCERFQ0lNQUxTBQ1hc3NldERlY2ltYWxzBBFub3JtYWxpemVkR2FzbGVzcwkBEl9ub3JtYWxpemVEZWNpbWFscwMFDWdhc2xlc3NSZXdhcmQFCERFQ0lNQUxTBQ1hc3NldERlY2ltYWxzBAhyZWZlcnJlcgQHJG1hdGNoMAkApggBBQlyZWZlcnJlcl8DCQABAgUHJG1hdGNoMAIHQWRkcmVzcwQOcmVmZXJlckFkZHJlc3MFByRtYXRjaDAEFW5vcm1hbGl6ZWRSZWZlcnJlckZlZQkBEl9ub3JtYWxpemVEZWNpbWFscwMFC3JlZmVycmVyRmVlBQhERUNJTUFMUwUNYXNzZXREZWNpbWFscwkAlAoCBRVub3JtYWxpemVkUmVmZXJyZXJGZWUJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUOcmVmZXJlckFkZHJlc3MFFW5vcm1hbGl6ZWRSZWZlcnJlckZlZQUHYXNzZXRJZAUDbmlsCQCUCgIAAAUDbmlsBBVub3JtYWxpemVkUmVmZXJyZXJGZWUIBQhyZWZlcnJlcgJfMQQPcmVmZXJyZXJBY3Rpb25zCAUIcmVmZXJyZXICXzIECmludm9jYXRpb24JAPwHBAkBEUBleHRyTmF0aXZlKDEwNjIpAQUOYXNzZXRDb250cmFjdF8CBG1pbnQJAMwIAgkAZAIFEG5vcm1hbGl6ZWRBbW91bnQFFW5vcm1hbGl6ZWRSZWZlcnJlckZlZQkAzAgCCQClCAEFBHRoaXMFA25pbAUDbmlsAwkAAAIFCmludm9jYXRpb24FCmludm9jYXRpb24EB2FjdGlvbnMDAwkAZgIFEW5vcm1hbGl6ZWRHYXNsZXNzAAAJAQIhPQIJARFAZXh0ck5hdGl2ZSgxMDYyKQEFCnJlY2lwaWVudF8IBQFpDG9yaWdpbkNhbGxlcgcJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQUKcmVjaXBpZW50XwkAZQIFEG5vcm1hbGl6ZWRBbW91bnQFEW5vcm1hbGl6ZWRHYXNsZXNzBQdhc3NldElkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpDG9yaWdpbkNhbGxlcgURbm9ybWFsaXplZEdhc2xlc3MFB2Fzc2V0SWQFA25pbAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQERQGV4dHJOYXRpdmUoMTA2MikBBQpyZWNpcGllbnRfBRBub3JtYWxpemVkQW1vdW50BQdhc3NldElkBQNuaWwJAJQKAgkAzggCBQdhY3Rpb25zBQ9yZWZlcnJlckFjdGlvbnMFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEKYnVyblRva2VucwMRZXhlY3V0aW9uQ2hhaW5JZF8KcmVjaXBpZW50Xw5nYXNsZXNzUmV3YXJkXwQDZXJyAwMDAwMJARBfd2hlbkluaXRpYWxpemVkAAkBDl93aGVuTm90UGF1c2VkAAcJAQ5fdmFsaWRhdGVDaGFpbgIFEWV4ZWN1dGlvbkNoYWluSWRfAiNidXJuVG9rZW5zOiBpbnZhbGlkIGV4ZWN1dGlvbiBjaGFpbgcJARVfdmFsaWRhdGVQYXltZW50c1NpemUDCAUBaQhwYXltZW50cwABAhZidXJuVG9rZW5zOiBubyBwYXltZW50BwkBDF92YWxpZGF0ZUludAQFDmdhc2xlc3NSZXdhcmRfAAAFB01BWF9JTlQCIWJ1cm5Ub2tlbnM6IGludmFsaWQgZ2FzbGVzc1Jld2FyZAcJAQxfdmFsaWRhdGVJbnQECAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAAABQdNQVhfSU5UAiJidXJuVG9rZW5zOiBpbnZhbGlkIHBheW1lbnQgYW1vdW50BwMJAAACBQNlcnIFA2VycgQGYW1vdW50CAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAQHYXNzZXRJZAQHJG1hdGNoMAgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAWEFByRtYXRjaDAFAWEJAAIBAhlidXJuVG9rZW5zOiBpbnZhbGlkIGFzc2V0BAdiaW5kaW5nCQEMX2xvYWRCaW5kaW5nAgURZXhlY3V0aW9uQ2hhaW5JZF8FB2Fzc2V0SWQEDWFzc2V0Q29udHJhY3QIBQdiaW5kaW5nAl8xBA5leGVjdXRpb25Bc3NldAgFB2JpbmRpbmcCXzIECW1pbkFtb3VudAgFB2JpbmRpbmcCXzMEBm1pbkZlZQgFB2JpbmRpbmcCXzQEDHRocmVzaG9sZEZlZQgFB2JpbmRpbmcCXzUEEGJlZm9yZVBlcmNlbnRGZWUIBQdiaW5kaW5nAl82BA9hZnRlclBlcmNlbnRGZWUIBQdiaW5kaW5nAl83BAdlbmFibGVkCAUHYmluZGluZwJfOAQEZXJyMQMDCQEQX3ZhbGlkYXRlQWRkcmVzcwIJAKUIAQUNYXNzZXRDb250cmFjdAIbYnVyblRva2Vuczogbm8gc3VjaCBiaW5kaW5nCQEMX3ZhbGlkYXRlSW50BAUGYW1vdW50BQltaW5BbW91bnQFB01BWF9JTlQCGWJ1cm5Ub2tlbnM6IGxlc3MgdGhhbiBtaW4HCQENX3ZhbGlkYXRlQm9vbAMFB2VuYWJsZWQGAh1idXJuVG9rZW5zOiB0b2tlbiBpcyBkaXNhYmxlZAcDCQAAAgUEZXJyMQUEZXJyMQQNYXNzZXREZWNpbWFscwkBBl9hc0ludAEJAPwHBAUNYXNzZXRDb250cmFjdAILZ2V0RGVjaW1hbHMFA25pbAUDbmlsAwkAAAIFDWFzc2V0RGVjaW1hbHMFDWFzc2V0RGVjaW1hbHMEB3BlcmNlbnQDCQBmAgUGYW1vdW50BQx0aHJlc2hvbGRGZWUFD2FmdGVyUGVyY2VudEZlZQUQYmVmb3JlUGVyY2VudEZlZQQDZmVlCQBkAgUGbWluRmVlCQBrAwUGYW1vdW50BQdwZXJjZW50BQ5QRVJDRU5UX0ZBQ1RPUgQEZXJyMgkBDF92YWxpZGF0ZUludAQFBmFtb3VudAkAZAIFA2ZlZQABBQdNQVhfSU5UAiBidXJuVG9rZW5zOiBmZWUgbW9yZSB0aGFuIGFtb3VudAMJAAACBQRlcnIyBQRlcnIyBAxhbW91bnRUb1NlbmQJAGUCBQZhbW91bnQFA2ZlZQQEZXJyMwkBDF92YWxpZGF0ZUludAQFDGFtb3VudFRvU2VuZAkAZAIFDmdhc2xlc3NSZXdhcmRfAAEFB01BWF9JTlQCI2J1cm5Ub2tlbnM6IHJld2FyZCBtb3JlIHRoYW4gYW1vdW50AwkAAAIFBGVycjMFBGVycjMECXVwZGF0ZUZlZQkAZAIJAQhfbG9hZEZlZQEFB2Fzc2V0SWQFA2ZlZQQQbm9ybWFsaXplZEFtb3VudAkBEl9ub3JtYWxpemVEZWNpbWFscwMFDGFtb3VudFRvU2VuZAUNYXNzZXREZWNpbWFscwUIREVDSU1BTFMEEW5vcm1hbGl6ZWRHYXNsZXNzCQESX25vcm1hbGl6ZURlY2ltYWxzAwUOZ2FzbGVzc1Jld2FyZF8FDWFzc2V0RGVjaW1hbHMFCERFQ0lNQUxTBAppbnZvY2F0aW9uCQD8BwQJARBfbG9hZFJvb3RBZGFwdGVyAAUTRlVOQ19SRUxFQVNFX1RPS0VOUwkAzAgCBRFleGVjdXRpb25DaGFpbklkXwkAzAgCBQ5leGVjdXRpb25Bc3NldAkAzAgCBRBub3JtYWxpemVkQW1vdW50CQDMCAIFCnJlY2lwaWVudF8JAMwIAgURbm9ybWFsaXplZEdhc2xlc3MFA25pbAUDbmlsAwkAAAIFCmludm9jYXRpb24FCmludm9jYXRpb24JAJQKAgkAzggCCQEIX3NhdmVGZWUCBQdhc3NldElkBQl1cGRhdGVGZWUJAMwIAgkBBEJ1cm4CBQdhc3NldElkBQxhbW91bnRUb1NlbmQFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQxidXJuVG9rZW5zVjIEEWV4ZWN1dGlvbkNoYWluSWRfCnJlY2lwaWVudF8JcmVmZXJyZXJfDmdhc2xlc3NSZXdhcmRfBANlcnIDAwMDAwMJARBfd2hlbkluaXRpYWxpemVkAAkBDl93aGVuTm90UGF1c2VkAAcJAQ5fdmFsaWRhdGVDaGFpbgIFEWV4ZWN1dGlvbkNoYWluSWRfAiVidXJuVG9rZW5zVjI6IGludmFsaWQgZXhlY3V0aW9uIGNoYWluBwkBFV92YWxpZGF0ZVBheW1lbnRzU2l6ZQMIBQFpCHBheW1lbnRzAAECGGJ1cm5Ub2tlbnNWMjogbm8gcGF5bWVudAcJAQxfdmFsaWRhdGVJbnQEBQ5nYXNsZXNzUmV3YXJkXwAABQdNQVhfSU5UAiNidXJuVG9rZW5zVjI6IGludmFsaWQgZ2FzbGVzc1Jld2FyZAcJAQxfdmFsaWRhdGVJbnQECAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAAABQdNQVhfSU5UAiRidXJuVG9rZW5zVjI6IGludmFsaWQgcGF5bWVudCBhbW91bnQHCQERX3ZhbGlkYXRlUmVmZXJyZXICBQlyZWZlcnJlcl8CHmJ1cm5Ub2tlbnNWMjogaW52YWxpZCByZWZlcnJlcgcDCQAAAgUDZXJyBQNlcnIEBmFtb3VudAgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQEB2Fzc2V0SWQEByRtYXRjaDAICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAFhBQckbWF0Y2gwBQFhCQACAQIbYnVyblRva2Vuc1YyOiBpbnZhbGlkIGFzc2V0BAdiaW5kaW5nCQEMX2xvYWRCaW5kaW5nAgURZXhlY3V0aW9uQ2hhaW5JZF8FB2Fzc2V0SWQEDWFzc2V0Q29udHJhY3QIBQdiaW5kaW5nAl8xBA5leGVjdXRpb25Bc3NldAgFB2JpbmRpbmcCXzIECW1pbkFtb3VudAgFB2JpbmRpbmcCXzMEBm1pbkZlZQgFB2JpbmRpbmcCXzQEDHRocmVzaG9sZEZlZQgFB2JpbmRpbmcCXzUEEGJlZm9yZVBlcmNlbnRGZWUIBQdiaW5kaW5nAl82BA9hZnRlclBlcmNlbnRGZWUIBQdiaW5kaW5nAl83BAdlbmFibGVkCAUHYmluZGluZwJfOAQEZXJyMQMDCQEQX3ZhbGlkYXRlQWRkcmVzcwIJAKUIAQUNYXNzZXRDb250cmFjdAIdYnVyblRva2Vuc1YyOiBubyBzdWNoIGJpbmRpbmcJAQxfdmFsaWRhdGVJbnQEBQZhbW91bnQFCW1pbkFtb3VudAUHTUFYX0lOVAIbYnVyblRva2Vuc1YyOiBsZXNzIHRoYW4gbWluBwkBDV92YWxpZGF0ZUJvb2wDBQdlbmFibGVkBgIfYnVyblRva2Vuc1YyOiB0b2tlbiBpcyBkaXNhYmxlZAcDCQAAAgUEZXJyMQUEZXJyMQQNYXNzZXREZWNpbWFscwkBBl9hc0ludAEJAPwHBAUNYXNzZXRDb250cmFjdAILZ2V0RGVjaW1hbHMFA25pbAUDbmlsAwkAAAIFDWFzc2V0RGVjaW1hbHMFDWFzc2V0RGVjaW1hbHMEB3BlcmNlbnQDCQBmAgUGYW1vdW50BQx0aHJlc2hvbGRGZWUFD2FmdGVyUGVyY2VudEZlZQUQYmVmb3JlUGVyY2VudEZlZQQDZmVlCQBkAgUGbWluRmVlCQBrAwUGYW1vdW50BQdwZXJjZW50BQ5QRVJDRU5UX0ZBQ1RPUgQEZXJyMgkBDF92YWxpZGF0ZUludAQFBmFtb3VudAkAZAIFA2ZlZQABBQdNQVhfSU5UAiJidXJuVG9rZW5zVjI6IGZlZSBtb3JlIHRoYW4gYW1vdW50AwkAAAIFBGVycjIFBGVycjIEDSR0MDE2MjAxMTY2MDYDCQECIT0CBQlyZWZlcnJlcl8CAAQIcmVmZXJyZXIJARFAZXh0ck5hdGl2ZSgxMDYyKQEFCXJlZmVycmVyXwQRcmVmZXJyZXJGZWVBbW91bnQJAGsDCQEXX2xvYWRSZWZlcnJlckZlZVBlcmNlbnQCBRFleGVjdXRpb25DaGFpbklkXwUIcmVmZXJyZXIFA2ZlZQUOUEVSQ0VOVF9GQUNUT1IJAJQKAgURcmVmZXJyZXJGZWVBbW91bnQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUIcmVmZXJyZXIFEXJlZmVycmVyRmVlQW1vdW50BQdhc3NldElkBQNuaWwJAJQKAgAABQNuaWwEC3JlZmVycmVyRmVlCAUNJHQwMTYyMDExNjYwNgJfMQQPcmVmZXJyZXJBY3Rpb25zCAUNJHQwMTYyMDExNjYwNgJfMgQMYW1vdW50VG9TZW5kCQBlAgUGYW1vdW50BQNmZWUEBGVycjMJAQxfdmFsaWRhdGVJbnQEBQxhbW91bnRUb1NlbmQJAGQCBQ5nYXNsZXNzUmV3YXJkXwABBQdNQVhfSU5UAiVidXJuVG9rZW5zVjI6IHJld2FyZCBtb3JlIHRoYW4gYW1vdW50AwkAAAIFBGVycjMFBGVycjMECXVwZGF0ZUZlZQkAZQIJAGQCCQEIX2xvYWRGZWUBBQdhc3NldElkBQNmZWUFC3JlZmVycmVyRmVlBBBub3JtYWxpemVkQW1vdW50CQESX25vcm1hbGl6ZURlY2ltYWxzAwUMYW1vdW50VG9TZW5kBQ1hc3NldERlY2ltYWxzBQhERUNJTUFMUwQRbm9ybWFsaXplZEdhc2xlc3MJARJfbm9ybWFsaXplRGVjaW1hbHMDBQ5nYXNsZXNzUmV3YXJkXwUNYXNzZXREZWNpbWFscwUIREVDSU1BTFMECmludm9jYXRpb24JAPwHBAkBEF9sb2FkUm9vdEFkYXB0ZXIABRNGVU5DX1JFTEVBU0VfVE9LRU5TCQDMCAIFEWV4ZWN1dGlvbkNoYWluSWRfCQDMCAIFDmV4ZWN1dGlvbkFzc2V0CQDMCAIFEG5vcm1hbGl6ZWRBbW91bnQJAMwIAgUKcmVjaXBpZW50XwkAzAgCBRFub3JtYWxpemVkR2FzbGVzcwUDbmlsBQNuaWwDCQAAAgUKaW52b2NhdGlvbgUKaW52b2NhdGlvbgkAlAoCCQDOCAIJAM4IAgkBCF9zYXZlRmVlAgUHYXNzZXRJZAUJdXBkYXRlRmVlBQ9yZWZlcnJlckFjdGlvbnMJAMwIAgkBBEJ1cm4CBQdhc3NldElkBQxhbW91bnRUb1NlbmQFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQt0cmFuc2ZlckZlZQIRZXhlY3V0aW9uQ2hhaW5JZF8IYXNzZXRJZF8EA2VycgMDCQEQX3doZW5Jbml0aWFsaXplZAAJAQ5fd2hlbk5vdFBhdXNlZAAHCQEOX3ZhbGlkYXRlQXNzZXQCBQhhc3NldElkXwIadHJhbnNmZXJGZWU6IGludmFsaWQgYXNzZXQHAwkAAAIFA2VycgUDZXJyBAdhc3NldElkCQDZBAEFCGFzc2V0SWRfBAdiaW5kaW5nCQEMX2xvYWRCaW5kaW5nAgURZXhlY3V0aW9uQ2hhaW5JZF8FB2Fzc2V0SWQEDWFzc2V0Q29udHJhY3QIBQdiaW5kaW5nAl8xBAdlbmFibGVkCAUHYmluZGluZwJfOAQEZXJyMQMJARBfdmFsaWRhdGVBZGRyZXNzAgkApQgBBQ1hc3NldENvbnRyYWN0Ahx0cmFuc2ZlckZlZTogbm8gc3VjaCBiaW5kaW5nCQENX3ZhbGlkYXRlQm9vbAMFB2VuYWJsZWQGAh50cmFuc2ZlckZlZTogdG9rZW4gaXMgZGlzYWJsZWQHAwkAAAIFBGVycjEFBGVycjEJAJQKAgkAzggCCQEIX3NhdmVGZWUCBQdhc3NldElkAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBEV9sb2FkRmVlUmVjaXBpZW50AAkBCF9sb2FkRmVlAQUHYXNzZXRJZAUHYXNzZXRJZAUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBFHVwZGF0ZUNhbGxlckNvbnRyYWN0AQ9jYWxsZXJDb250cmFjdF8EA2VycgMJARFfb25seVRoaXNDb250cmFjdAEIBQFpBmNhbGxlcgkBEF93aGVuSW5pdGlhbGl6ZWQABwMJAAACBQNlcnIFA2VycgkAlAoCCQETX3NhdmVDYWxsZXJDb250cmFjdAEFD2NhbGxlckNvbnRyYWN0XwUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARR1cGRhdGVFeGVjdXRpb25DaGFpbgIRZXhlY3V0aW9uQ2hhaW5JZF8IZW5hYmxlZF8EA2VycgMDCQERX29ubHlUaGlzQ29udHJhY3QBCAUBaQZjYWxsZXIJARBfd2hlbkluaXRpYWxpemVkAAcJAQxfdmFsaWRhdGVJbnQEBRFleGVjdXRpb25DaGFpbklkXwAABQdNQVhfSU5UAi51cGRhdGVFeGVjdXRpb25DaGFpbjogaW52YWxpZCBleGVjdXRpb25DaGFpbklkBwMJAAACBQNlcnIFA2VycgkAlAoCCQEKX3NhdmVDaGFpbgIFEWV4ZWN1dGlvbkNoYWluSWRfBQhlbmFibGVkXwUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARJ1cGRhdGVGZWVSZWNpcGllbnQBDWZlZVJlY2lwaWVudF8EA2VycgMDCQERX29ubHlUaGlzQ29udHJhY3QBCAUBaQZjYWxsZXIJARBfd2hlbkluaXRpYWxpemVkAAcJARBfdmFsaWRhdGVBZGRyZXNzAgUNZmVlUmVjaXBpZW50XwIodXBkYXRlRmVlUmVjaXBpZW50OiBpbnZhbGlkIGZlZVJlY2lwaWVudAcDCQAAAgUDZXJyBQNlcnIJAJQKAgkBEV9zYXZlRmVlUmVjaXBpZW50AQkBEUBleHRyTmF0aXZlKDEwNjIpAQUNZmVlUmVjaXBpZW50XwUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQ51cGRhdGVSZWZlcnJlcgMRZXhlY3V0aW9uQ2hhaW5JZF8JcmVmZXJyZXJfBGZlZV8EA2VycgMDAwMJARFfb25seVRoaXNDb250cmFjdAEIBQFpBmNhbGxlcgkBEF93aGVuSW5pdGlhbGl6ZWQABwkBDl92YWxpZGF0ZUNoYWluAgURZXhlY3V0aW9uQ2hhaW5JZF8CJ3VwZGF0ZVJlZmVycmVyOiBpbnZhbGlkIGV4ZWN1dGlvbiBjaGFpbgcJARBfdmFsaWRhdGVBZGRyZXNzAgUJcmVmZXJyZXJfAiB1cGRhdGVSZWZlcnJlcjogaW52YWxpZCByZWZlcnJlcgcJAQxfdmFsaWRhdGVJbnQEBQRmZWVfAAAFEE1BWF9SRUZFUlJFUl9GRUUCG3VwZGF0ZVJlZmVycmVyOiBpbnZhbGlkIGZlZQcDCQAAAgUDZXJyBQNlcnIJAJQKAgkBF19zYXZlUmVmZXJyZXJGZWVQZXJjZW50AwURZXhlY3V0aW9uQ2hhaW5JZF8JARFAZXh0ck5hdGl2ZSgxMDYyKQEFCXJlZmVycmVyXwUEZmVlXwUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARF1cGRhdGVCaW5kaW5nSW5mbwkRZXhlY3V0aW9uQ2hhaW5JZF8OYXNzZXRDb250cmFjdF8PZXhlY3V0aW9uQXNzZXRfCm1pbkFtb3VudF8HbWluRmVlXw10aHJlc2hvbGRGZWVfEWJlZm9yZVBlcmNlbnRGZWVfEGFmdGVyUGVyY2VudEZlZV8IZW5hYmxlZF8EA2VycgMDAwMDAwMDCQERX29ubHlUaGlzQ29udHJhY3QBCAUBaQZjYWxsZXIJARBfd2hlbkluaXRpYWxpemVkAAcJARBfdmFsaWRhdGVBZGRyZXNzAgUOYXNzZXRDb250cmFjdF8CKXVwZGF0ZUJpbmRpbmdJbmZvOiBpbnZhbGlkIGFzc2V0IGNvbnRyYWN0BwkBDF92YWxpZGF0ZUludAQFEWV4ZWN1dGlvbkNoYWluSWRfAAAFB01BWF9JTlQCK3VwZGF0ZUJpbmRpbmdJbmZvOiBpbnZhbGlkIGV4ZWN1dGlvbkNoYWluSWQHCQEMX3ZhbGlkYXRlSW50BAUKbWluQW1vdW50XwAABQdNQVhfSU5UAiR1cGRhdGVCaW5kaW5nSW5mbzogaW52YWxpZCBtaW5BbW91bnQHCQEMX3ZhbGlkYXRlSW50BAUHbWluRmVlXwAABQdNQVhfSU5UAiF1cGRhdGVCaW5kaW5nSW5mbzogaW52YWxpZCBtaW5GZWUHCQEMX3ZhbGlkYXRlSW50BAUNdGhyZXNob2xkRmVlXwAABQdNQVhfSU5UAid1cGRhdGVCaW5kaW5nSW5mbzogaW52YWxpZCB0aHJlc2hvbGRGZWUHCQEMX3ZhbGlkYXRlSW50BAURYmVmb3JlUGVyY2VudEZlZV8AAAUHTUFYX0lOVAIrdXBkYXRlQmluZGluZ0luZm86IGludmFsaWQgYmVmb3JlUGVyY2VudEZlZQcJAQxfdmFsaWRhdGVJbnQEBRBhZnRlclBlcmNlbnRGZWVfAAAFB01BWF9JTlQCKnVwZGF0ZUJpbmRpbmdJbmZvOiBpbnZhbGlkIGFmdGVyUGVyY2VudEZlZQcDCQAAAgUDZXJyBQNlcnIEB2Fzc2V0SWQJAQhfYXNCeXRlcwEJAPwHBAkBEUBleHRyTmF0aXZlKDEwNjIpAQUOYXNzZXRDb250cmFjdF8CCmdldEFzc2V0SWQFA25pbAUDbmlsAwkAAAIFB2Fzc2V0SWQFB2Fzc2V0SWQEB2JpbmRpbmcJAJoKCAkBEUBleHRyTmF0aXZlKDEwNjIpAQUOYXNzZXRDb250cmFjdF8FD2V4ZWN1dGlvbkFzc2V0XwUKbWluQW1vdW50XwUHbWluRmVlXwUNdGhyZXNob2xkRmVlXwURYmVmb3JlUGVyY2VudEZlZV8FEGFmdGVyUGVyY2VudEZlZV8FCGVuYWJsZWRfCQCUCgIJAQxfc2F2ZUJpbmRpbmcDBRFleGVjdXRpb25DaGFpbklkXwUHYXNzZXRJZAUHYmluZGluZwUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQVwYXVzZQAEA2VycgMDCQELX29ubHlQYXVzZXIBCAUBaQZjYWxsZXIJARBfd2hlbkluaXRpYWxpemVkAAcJAQ5fd2hlbk5vdFBhdXNlZAAHAwkAAAIFA2VycgUDZXJyCQCUCgIJAQpfc2F2ZVBhdXNlAQYFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEHdW5wYXVzZQAEA2VycgMDCQELX29ubHlQYXVzZXIBCAUBaQZjYWxsZXIJARBfd2hlbkluaXRpYWxpemVkAAcJAQtfd2hlblBhdXNlZAAHAwkAAAIFA2VycgUDZXJyCQCUCgIJAQpfc2F2ZVBhdXNlAQcFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEMdXBkYXRlUGF1c2VyAQdwYXVzZXJfBANlcnIDAwkBEV9vbmx5VGhpc0NvbnRyYWN0AQgFAWkGY2FsbGVyCQEQX3doZW5Jbml0aWFsaXplZAAHCQEQX3ZhbGlkYXRlQWRkcmVzcwIFB3BhdXNlcl8CHHVwZGF0ZVBhdXNlcjogaW52YWxpZCBwYXVzZXIHAwkAAAIFA2VycgUDZXJyCQCUCgIJAQtfc2F2ZVBhdXNlcgEJARFAZXh0ck5hdGl2ZSgxMDYyKQEFB3BhdXNlcl8FBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQELc2V0TXVsdGlzaWcBCW11bHRpc2lnXwQDZXJyAwkBEV9vbmx5VGhpc0NvbnRyYWN0AQgFAWkGY2FsbGVyCQEQX3ZhbGlkYXRlQWRkcmVzcwIFCW11bHRpc2lnXwIdc2V0TXVsdGlzaWc6IGludmFsaWQgbXVsdGlzaWcHAwkAAAIFA2VycgUDZXJyCQCUCgIJAQ1fc2F2ZU11bHRpc2lnAQkBEUBleHRyTmF0aXZlKDEwNjIpAQUJbXVsdGlzaWdfBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJ0eAEGdmVyaWZ5AAQHJG1hdGNoMAkAoggBBQxLRVlfTVVMVElTSUcDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAhtdWx0aXNpZwUHJG1hdGNoMAkBC3ZhbHVlT3JFbHNlAgkAmwgCCQERQGV4dHJOYXRpdmUoMTA2MikBBQhtdWx0aXNpZwkAuQkCCQDMCAIFCktFWV9TVEFUVVMJAMwIAgkApQgBBQR0aGlzCQDMCAIJANgEAQgFAnR4AmlkBQNuaWwFCVNFUEFSQVRPUgcJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAIBQJ0eA9zZW5kZXJQdWJsaWNLZXlCupyZ", "height": 2651246, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BvojsPSCZWGTtGoA2HbyPQ4zu7easss71LRS2FGEpCuR Next: 2rgekmRj7Au8tziYKm5hr74fGp8emVaqpHr8Gmpckpzu Diff:
OldNewDifferences
8282 else true
8383
8484
85-func K (L,M,N) = if ((M >= N))
86- then (L / pow(10, 0, (M - N), 0, 0, DOWN))
87- else (L * pow(10, 0, (N - M), 0, 0, DOWN))
85+func K (L,x) = if ((L != ""))
86+ then v(L, x)
87+ else true
8888
8989
90-func O () = {
90+func M (N,O,P) = if ((O >= P))
91+ then (N / pow(10, 0, (O - P), 0, 0, DOWN))
92+ else (N * pow(10, 0, (P - O), 0, 0, DOWN))
93+
94+
95+func Q () = {
9196 let y = getBoolean(b)
9297 if ($isInstanceOf(y, "Boolean"))
9398 then {
98103 }
99104
100105
101-func P (Q) = [BooleanEntry(b, Q)]
106+func R (S) = [BooleanEntry(b, S)]
102107
103108
104-func R () = {
109+func T () = {
105110 let y = getBoolean(e)
106111 if ($isInstanceOf(y, "Boolean"))
107112 then {
112117 }
113118
114119
115-func S (T) = [BooleanEntry(e, T)]
120+func U (V) = [BooleanEntry(e, V)]
116121
117122
118-func U () = {
123+func W () = {
119124 let y = getString(f)
120125 if ($isInstanceOf(y, "String"))
121126 then {
126131 }
127132
128133
129-func V (W) = [StringEntry(f, toString(W))]
134+func X (Y) = [StringEntry(f, toString(Y))]
130135
131136
132-func X () = {
137+func Z () = {
133138 let y = getString(c)
134139 if ($isInstanceOf(y, "String"))
135140 then {
140145 }
141146
142147
143-func Y (Z) = [StringEntry(c, toString(Z))]
148+func aa (ab) = [StringEntry(c, toString(ab))]
144149
145150
146-func aa () = {
151+func ac () = {
147152 let y = getString(g)
148153 if ($isInstanceOf(y, "String"))
149154 then {
154159 }
155160
156161
157-func ab (ac) = [StringEntry(g, toString(ac))]
162+func ad (ae) = [StringEntry(g, toString(ae))]
158163
159164
160-func ad () = {
165+func af () = {
161166 let y = getString(i)
162167 if ($isInstanceOf(y, "String"))
163168 then {
168173 }
169174
170175
171-func ae (af) = [StringEntry(i, af)]
176+func ag (ah) = [StringEntry(i, ah)]
172177
173178
174-func ag (ah) = {
175- let y = getBoolean(makeString([j, toString(ah)], a))
179+func ai (aj) = {
180+ let y = getBoolean(makeString([j, toString(aj)], a))
176181 if ($isInstanceOf(y, "Boolean"))
177182 then {
178183 let z = y
182187 }
183188
184189
185-func ai (ah,D) = [BooleanEntry(makeString([j, toString(ah)], a), D)]
190+func ak (aj,D) = [BooleanEntry(makeString([j, toString(aj)], a), D)]
186191
187192
188-func aj (ak,B) = {
189- let y = getString(makeString([k, toString(ak), toBase58String(B)], a))
193+func al (am,B) = {
194+ let y = getString(makeString([k, toString(am), toBase58String(B)], a))
190195 if ($isInstanceOf(y, "String"))
191196 then {
192197 let z = y
193- let al = split(z, a)
194- $Tuple8(addressFromStringValue(al[0]), al[1], parseIntValue(al[2]), parseIntValue(al[3]), parseIntValue(al[4]), parseIntValue(al[5]), parseIntValue(al[6]), if ((al[7] == "1"))
198+ let an = split(z, a)
199+ $Tuple8(addressFromStringValue(an[0]), an[1], parseIntValue(an[2]), parseIntValue(an[3]), parseIntValue(an[4]), parseIntValue(an[5]), parseIntValue(an[6]), if ((an[7] == "1"))
195200 then true
196201 else false)
197202 }
199204 }
200205
201206
202-func am (ak,B,an) = [StringEntry(makeString([k, toString(ak), toBase58String(B)], a), makeString([toString(an._1), an._2, toString(an._3), toString(an._4), toString(an._5), toString(an._6), toString(an._7), if (an._8)
207+func ao (am,B,ap) = [StringEntry(makeString([k, toString(am), toBase58String(B)], a), makeString([toString(ap._1), ap._2, toString(ap._3), toString(ap._4), toString(ap._5), toString(ap._6), toString(ap._7), if (ap._8)
203208 then "1"
204209 else "0"], a))]
205210
206211
207-func ao (B) = {
212+func aq (B) = {
208213 let y = getInteger(makeString([l, toBase58String(B)], a))
209214 if ($isInstanceOf(y, "Int"))
210215 then {
215220 }
216221
217222
218-func ap (B,D) = [IntegerEntry(makeString([l, toBase58String(B)], a), D)]
223+func ar (B,D) = [IntegerEntry(makeString([l, toBase58String(B)], a), D)]
219224
220225
221-func aq () = {
226+func as () = {
222227 let y = getString(h)
223228 if ($isInstanceOf(y, "String"))
224229 then {
229234 }
230235
231236
232-func ar (as) = [StringEntry(h, toString(as))]
237+func at (au) = [StringEntry(h, toString(au))]
233238
234239
235-func at () = {
240+func av () = {
236241 let y = getString(m)
237242 if ($isInstanceOf(y, "String"))
238243 then {
243248 }
244249
245250
246-func au (D) = [StringEntry(m, toString(D))]
251+func aw (D) = [StringEntry(m, toString(D))]
247252
248253
249-func av (ak,aw) = {
250- let y = getInteger(makeString([n, toString(ak), toString(aw)], a))
254+func ax (am,L) = {
255+ let y = getInteger(makeString([n, toString(am), toString(L)], a))
251256 if ($isInstanceOf(y, "Int"))
252257 then {
253258 let z = y
257262 }
258263
259264
260-func ax (ak,aw,D) = [IntegerEntry(makeString([n, toString(ak), toString(aw)], a), D)]
265+func ay (am,L,D) = [IntegerEntry(makeString([n, toString(am), toString(L)], a), D)]
261266
262267
263-func ay (af) = if ((af != this))
268+func az (ah) = if ((ah != this))
264269 then throw("_onlyThisContract: revert")
265270 else true
266271
267272
268-func az () = if ((X() == Address(base58'')))
273+func aA () = if ((Z() == Address(base58'')))
269274 then throw("_whenMultisigSet: revert")
270275 else true
271276
272277
273-func aA () = if (O())
278+func aB () = if (Q())
274279 then throw("_whenNotInitialized: revert")
275280 else true
276281
277282
278-func aB () = if (!(O()))
283+func aC () = if (!(Q()))
279284 then throw("_whenInitialized: revert")
280285 else true
281286
282287
283-func aC () = if (R())
288+func aD () = if (T())
284289 then throw("_whenNotPaused: revert")
285290 else true
286291
287292
288-func aD () = if (!(R()))
293+func aE () = if (!(T()))
289294 then throw("_whenPaused: revert")
290295 else true
291296
292297
293-func aE (af) = if ((af != U()))
298+func aF (ah) = if ((ah != W()))
294299 then throw("_onlyPauser: revert")
295300 else true
296301
297302
298-func aF (D) = {
303+func aG (D) = {
299304 let y = D
300305 if ($isInstanceOf(y, "Int"))
301306 then {
306311 }
307312
308313
309-func aG (D) = {
314+func aH (D) = {
310315 let y = D
311316 if ($isInstanceOf(y, "ByteVector"))
312317 then {
317322 }
318323
319324
320-func aH (D,x) = if ((D != aa()))
325+func aI (D,x) = if ((D != ac()))
321326 then throw(x)
322327 else true
323328
324329
325-func aI (D,x) = if ((D != ad()))
330+func aJ (D,x) = if ((D != af()))
326331 then throw(x)
327332 else true
328333
329334
330-func aJ (ak,x) = if (!(ag(ak)))
335+func aK (am,x) = if (!(ai(am)))
331336 then throw(x)
332337 else true
333338
334339
335-@Callable(aK)
336-func init (ac,as,W,aL) = {
337- let aM = if (if (if (if (if (if (ay(aK.caller))
340+@Callable(aL)
341+func init (ae,au,Y,aM) = {
342+ let aN = if (if (if (if (if (if (az(aL.caller))
343+ then aB()
344+ else false)
338345 then aA()
339346 else false)
340- then az()
347+ then v(ae, "init: invalid executor")
341348 else false)
342- then v(ac, "init: invalid executor")
349+ then v(au, "init: invalid adapter")
343350 else false)
344- then v(as, "init: invalid adapter")
351+ then v(Y, "init: invalid pauser")
345352 else false)
346- then v(W, "init: invalid pauser")
347- else false)
348- then v(aL, "init: invalid feeRecipient")
353+ then v(aM, "init: invalid feeRecipient")
349354 else false
350- if ((aM == aM))
351- then $Tuple2(((((P(true) ++ ab(addressFromStringValue(ac))) ++ ar(addressFromStringValue(as))) ++ V(addressFromStringValue(W))) ++ au(addressFromStringValue(aL))), unit)
355+ if ((aN == aN))
356+ then $Tuple2(((((R(true) ++ ad(addressFromStringValue(ae))) ++ at(addressFromStringValue(au))) ++ X(addressFromStringValue(Y))) ++ aw(addressFromStringValue(aM))), unit)
352357 else throw("Strict value is not equal to itself.")
353358 }
354359
355360
356361
357-@Callable(aK)
358-func mintTokens (aN,aO,L,aP,aQ,aw,aR) = {
359- let aS = valueOrErrorMessage(parseInt(L), "mint: amount is not Int")
360- let aT = valueOrErrorMessage(parseInt(aQ), "mint: gaslessReward is not Int")
361- let aU = valueOrErrorMessage(parseInt(aR), "mint: referrerFee is not Int")
362- let aM = if (if (if (if (if (if (if (if (aB())
363- then aC()
362+@Callable(aL)
363+func mintTokens (aO,aP,N,aQ,aR,L,aS) = {
364+ let aT = valueOrErrorMessage(parseInt(N), "mint: amount is not Int")
365+ let aU = valueOrErrorMessage(parseInt(aR), "mint: gaslessReward is not Int")
366+ let aV = valueOrErrorMessage(parseInt(aS), "mint: referrerFee is not Int")
367+ let aN = if (if (if (if (if (if (if (if (aC())
368+ then aD()
364369 else false)
365- then v(aO, "mint: invalid asset contract")
370+ then v(aP, "mint: invalid asset contract")
366371 else false)
367- then aH(aK.caller, "mint: invalid executor")
372+ then aI(aL.caller, "mint: invalid executor")
368373 else false)
369- then aI(aN, "mint: invalid caller")
374+ then aJ(aO, "mint: invalid caller")
370375 else false)
371- then v(aP, "mint: invalid recipient address")
376+ then v(aQ, "mint: invalid recipient address")
372377 else false)
373- then C(aS, 0, u, "mint: invalid amount")
378+ then C(aT, 0, u, "mint: invalid amount")
374379 else false)
375- then C(aT, 0, u, "mint: invalid gaslessReward")
380+ then C(aU, 0, u, "mint: invalid gaslessReward")
376381 else false)
377- then C(aU, 0, u, "mint: invalid referrer fee")
382+ then C(aV, 0, u, "mint: invalid referrer fee")
378383 else false
379- if ((aM == aM))
384+ if ((aN == aN))
380385 then {
381- let aV = aG(invoke(addressFromStringValue(aO), "getAssetId", nil, nil))
382- if ((aV == aV))
386+ let aW = aH(invoke(addressFromStringValue(aP), "getAssetId", nil, nil))
387+ if ((aW == aW))
383388 then {
384- let aW = aF(invoke(addressFromStringValue(aO), "getDecimals", nil, nil))
385- if ((aW == aW))
389+ let aX = aG(invoke(addressFromStringValue(aP), "getDecimals", nil, nil))
390+ if ((aX == aX))
386391 then {
387- let aX = K(aS, r, aW)
388- let aY = K(aT, r, aW)
389- let aZ = {
390- let y = addressFromString(aw)
392+ let aY = M(aT, r, aX)
393+ let aZ = M(aU, r, aX)
394+ let ba = {
395+ let y = addressFromString(L)
391396 if ($isInstanceOf(y, "Address"))
392397 then {
393- let ba = y
394- let bb = K(aU, r, aW)
395- $Tuple2(bb, [ScriptTransfer(ba, bb, aV)])
398+ let bb = y
399+ let bc = M(aV, r, aX)
400+ $Tuple2(bc, [ScriptTransfer(bb, bc, aW)])
396401 }
397402 else $Tuple2(0, nil)
398403 }
399- let bb = aZ._1
400- let bc = aZ._2
401- let bd = invoke(addressFromStringValue(aO), "mint", [(aX + bb), toString(this)], nil)
402- if ((bd == bd))
404+ let bc = ba._1
405+ let bd = ba._2
406+ let be = invoke(addressFromStringValue(aP), "mint", [(aY + bc), toString(this)], nil)
407+ if ((be == be))
403408 then {
404- let be = if (if ((aY > 0))
405- then (addressFromStringValue(aP) != aK.originCaller)
409+ let bf = if (if ((aZ > 0))
410+ then (addressFromStringValue(aQ) != aL.originCaller)
406411 else false)
407- then [ScriptTransfer(addressFromStringValue(aP), (aX - aY), aV), ScriptTransfer(aK.originCaller, aY, aV)]
408- else [ScriptTransfer(addressFromStringValue(aP), aX, aV)]
409- $Tuple2((be ++ bc), unit)
412+ then [ScriptTransfer(addressFromStringValue(aQ), (aY - aZ), aW), ScriptTransfer(aL.originCaller, aZ, aW)]
413+ else [ScriptTransfer(addressFromStringValue(aQ), aY, aW)]
414+ $Tuple2((bf ++ bd), unit)
410415 }
411416 else throw("Strict value is not equal to itself.")
412417 }
419424
420425
421426
422-@Callable(aK)
423-func burnTokens (ak,aP,aQ) = {
424- let aM = if (if (if (if (if (aB())
425- then aC()
427+@Callable(aL)
428+func burnTokens (am,aQ,aR) = {
429+ let aN = if (if (if (if (if (aC())
430+ then aD()
426431 else false)
427- then aJ(ak, "burn: invalid execution chain")
432+ then aK(am, "burnTokens: invalid execution chain")
428433 else false)
429- then I(aK.payments, 1, "burn: no payment")
434+ then I(aL.payments, 1, "burnTokens: no payment")
430435 else false)
431- then C(aQ, 0, u, "burn: invalid gaslessReward")
436+ then C(aR, 0, u, "burnTokens: invalid gaslessReward")
432437 else false)
433- then C(aK.payments[0].amount, 0, u, "burn: invalid payment amount")
438+ then C(aL.payments[0].amount, 0, u, "burnTokens: invalid payment amount")
434439 else false
435- if ((aM == aM))
440+ if ((aN == aN))
436441 then {
437- let aS = aK.payments[0].amount
438- let aV = {
439- let y = aK.payments[0].assetId
442+ let aT = aL.payments[0].amount
443+ let aW = {
444+ let y = aL.payments[0].assetId
440445 if ($isInstanceOf(y, "ByteVector"))
441446 then {
442447 let z = y
443448 z
444449 }
445- else throw("burn: invalid asset")
450+ else throw("burnTokens: invalid asset")
446451 }
447- let bf = aj(ak, aV)
448- let bg = bf._1
449- let bh = bf._2
450- let bi = bf._3
451- let bj = bf._4
452- let bk = bf._5
453- let bl = bf._6
454- let bm = bf._7
455- let bn = bf._8
456- let bo = if (if (v(toString(bg), "burn: no such binding"))
457- then C(aS, bi, u, "burn: less than min")
452+ let bg = al(am, aW)
453+ let bh = bg._1
454+ let bi = bg._2
455+ let bj = bg._3
456+ let bk = bg._4
457+ let bl = bg._5
458+ let bm = bg._6
459+ let bn = bg._7
460+ let bo = bg._8
461+ let bp = if (if (v(toString(bh), "burnTokens: no such binding"))
462+ then C(aT, bj, u, "burnTokens: less than min")
458463 else false)
459- then G(bn, true, "burn: token is disabled")
464+ then G(bo, true, "burnTokens: token is disabled")
460465 else false
461- if ((bo == bo))
466+ if ((bp == bp))
462467 then {
463- let aW = aF(invoke(bg, "getDecimals", nil, nil))
464- if ((aW == aW))
468+ let aX = aG(invoke(bh, "getDecimals", nil, nil))
469+ if ((aX == aX))
465470 then {
466- let bp = if ((aS > bk))
467- then bm
468- else bl
469- let bq = (bj + fraction(aS, bp, s))
470- let br = C(aS, (bq + 1), u, "burn: fee more than amount")
471- if ((br == br))
471+ let bq = if ((aT > bl))
472+ then bn
473+ else bm
474+ let br = (bk + fraction(aT, bq, s))
475+ let bs = C(aT, (br + 1), u, "burnTokens: fee more than amount")
476+ if ((bs == bs))
472477 then {
473- let bs = (aS - bq)
474- let bt = C(bs, (aQ + 1), u, "burn: reward more than amount")
475- if ((bt == bt))
478+ let bt = (aT - br)
479+ let bu = C(bt, (aR + 1), u, "burnTokens: reward more than amount")
480+ if ((bu == bu))
476481 then {
477- let bu = (ao(aV) + bq)
478- let aX = K(bs, aW, r)
479- let aY = K(aQ, aW, r)
480- let bd = invoke(aq(), o, [ak, bh, aX, aP, aY], nil)
481- if ((bd == bd))
482- then $Tuple2((ap(aV, bu) ++ [Burn(aV, bs)]), unit)
482+ let bv = (aq(aW) + br)
483+ let aY = M(bt, aX, r)
484+ let aZ = M(aR, aX, r)
485+ let be = invoke(as(), o, [am, bi, aY, aQ, aZ], nil)
486+ if ((be == be))
487+ then $Tuple2((ar(aW, bv) ++ [Burn(aW, bt)]), unit)
483488 else throw("Strict value is not equal to itself.")
484489 }
485490 else throw("Strict value is not equal to itself.")
495500
496501
497502
498-@Callable(aK)
499-func transferFee (ak,B) = {
500- let aM = if (if (aB())
501- then aC()
503+@Callable(aL)
504+func burnTokensV2 (am,aQ,L,aR) = {
505+ let aN = if (if (if (if (if (if (aC())
506+ then aD()
502507 else false)
503- then A(B, "transferFee: invalid asset")
508+ then aK(am, "burnTokensV2: invalid execution chain")
509+ else false)
510+ then I(aL.payments, 1, "burnTokensV2: no payment")
511+ else false)
512+ then C(aR, 0, u, "burnTokensV2: invalid gaslessReward")
513+ else false)
514+ then C(aL.payments[0].amount, 0, u, "burnTokensV2: invalid payment amount")
515+ else false)
516+ then K(L, "burnTokensV2: invalid referrer")
504517 else false
505- if ((aM == aM))
518+ if ((aN == aN))
506519 then {
507- let aV = fromBase58String(B)
508- let bf = aj(ak, aV)
509- let bg = bf._1
510- let bn = bf._8
511- let bo = if (v(toString(bg), "transferFee: no such binding"))
512- then G(bn, true, "transferFee: token is disabled")
520+ let aT = aL.payments[0].amount
521+ let aW = {
522+ let y = aL.payments[0].assetId
523+ if ($isInstanceOf(y, "ByteVector"))
524+ then {
525+ let z = y
526+ z
527+ }
528+ else throw("burnTokensV2: invalid asset")
529+ }
530+ let bg = al(am, aW)
531+ let bh = bg._1
532+ let bi = bg._2
533+ let bj = bg._3
534+ let bk = bg._4
535+ let bl = bg._5
536+ let bm = bg._6
537+ let bn = bg._7
538+ let bo = bg._8
539+ let bp = if (if (v(toString(bh), "burnTokensV2: no such binding"))
540+ then C(aT, bj, u, "burnTokensV2: less than min")
541+ else false)
542+ then G(bo, true, "burnTokensV2: token is disabled")
513543 else false
514- if ((bo == bo))
515- then $Tuple2((ap(aV, 0) ++ [ScriptTransfer(at(), ao(aV), aV)]), unit)
516- else throw("Strict value is not equal to itself.")
517- }
518- else throw("Strict value is not equal to itself.")
519- }
520-
521-
522-
523-@Callable(aK)
524-func updateCallerContract (aN) = {
525- let aM = if (ay(aK.caller))
526- then aB()
527- else false
528- if ((aM == aM))
529- then $Tuple2(ae(aN), unit)
530- else throw("Strict value is not equal to itself.")
531- }
532-
533-
534-
535-@Callable(aK)
536-func updateExecutionChain (ak,bv) = {
537- let aM = if (if (ay(aK.caller))
538- then aB()
539- else false)
540- then C(ak, 0, u, "updateExecutionChain: invalid executionChainId")
541- else false
542- if ((aM == aM))
543- then $Tuple2(ai(ak, bv), unit)
544- else throw("Strict value is not equal to itself.")
545- }
546-
547-
548-
549-@Callable(aK)
550-func updateFeeRecipient (aL) = {
551- let aM = if (if (ay(aK.caller))
552- then aB()
553- else false)
554- then v(aL, "updateFeeRecipient: invalid feeRecipient")
555- else false
556- if ((aM == aM))
557- then $Tuple2(au(addressFromStringValue(aL)), unit)
558- else throw("Strict value is not equal to itself.")
559- }
560-
561-
562-
563-@Callable(aK)
564-func updateReferrer (ak,aw,bw) = {
565- let aM = if (if (if (if (ay(aK.caller))
566- then aB()
567- else false)
568- then aJ(ak, "updateReferrer: invalid execution chain")
569- else false)
570- then v(aw, "updateReferrer: invalid referrer")
571- else false)
572- then C(bw, 0, t, "updateReferrer: invalid fee")
573- else false
574- if ((aM == aM))
575- then $Tuple2(ax(ak, addressFromStringValue(aw), bw), unit)
576- else throw("Strict value is not equal to itself.")
577- }
578-
579-
580-
581-@Callable(aK)
582-func updateBindingInfo (ak,aO,bx,by,bz,bA,bB,bC,bv) = {
583- let aM = if (if (if (if (if (if (if (if (ay(aK.caller))
584- then aB()
585- else false)
586- then v(aO, "updateBindingInfo: invalid asset contract")
587- else false)
588- then C(ak, 0, u, "updateBindingInfo: invalid executionChainId")
589- else false)
590- then C(by, 0, u, "updateBindingInfo: invalid minAmount")
591- else false)
592- then C(bz, 0, u, "updateBindingInfo: invalid minFee")
593- else false)
594- then C(bA, 0, u, "updateBindingInfo: invalid thresholdFee")
595- else false)
596- then C(bB, 0, u, "updateBindingInfo: invalid beforePercentFee")
597- else false)
598- then C(bC, 0, u, "updateBindingInfo: invalid afterPercentFee")
599- else false
600- if ((aM == aM))
601- then {
602- let aV = aG(invoke(addressFromStringValue(aO), "getAssetId", nil, nil))
603- if ((aV == aV))
544+ if ((bp == bp))
604545 then {
605- let bf = $Tuple8(addressFromStringValue(aO), bx, by, bz, bA, bB, bC, bv)
606- $Tuple2(am(ak, aV, bf), unit)
546+ let aX = aG(invoke(bh, "getDecimals", nil, nil))
547+ if ((aX == aX))
548+ then {
549+ let bq = if ((aT > bl))
550+ then bn
551+ else bm
552+ let br = (bk + fraction(aT, bq, s))
553+ let bs = C(aT, (br + 1), u, "burnTokensV2: fee more than amount")
554+ if ((bs == bs))
555+ then {
556+ let bw = if ((L != ""))
557+ then {
558+ let ba = addressFromStringValue(L)
559+ let bx = fraction(ax(am, ba), br, s)
560+ $Tuple2(bx, [ScriptTransfer(ba, bx, aW)])
561+ }
562+ else $Tuple2(0, nil)
563+ let aV = bw._1
564+ let bd = bw._2
565+ let bt = (aT - br)
566+ let bu = C(bt, (aR + 1), u, "burnTokensV2: reward more than amount")
567+ if ((bu == bu))
568+ then {
569+ let bv = ((aq(aW) + br) - aV)
570+ let aY = M(bt, aX, r)
571+ let aZ = M(aR, aX, r)
572+ let be = invoke(as(), o, [am, bi, aY, aQ, aZ], nil)
573+ if ((be == be))
574+ then $Tuple2(((ar(aW, bv) ++ bd) ++ [Burn(aW, bt)]), unit)
575+ else throw("Strict value is not equal to itself.")
576+ }
577+ else throw("Strict value is not equal to itself.")
578+ }
579+ else throw("Strict value is not equal to itself.")
580+ }
581+ else throw("Strict value is not equal to itself.")
607582 }
608583 else throw("Strict value is not equal to itself.")
609584 }
612587
613588
614589
615-@Callable(aK)
616-func pause () = {
617- let aM = if (if (aE(aK.caller))
618- then aB()
590+@Callable(aL)
591+func transferFee (am,B) = {
592+ let aN = if (if (aC())
593+ then aD()
619594 else false)
620- then aC()
595+ then A(B, "transferFee: invalid asset")
621596 else false
622- if ((aM == aM))
623- then $Tuple2(S(true), unit)
597+ if ((aN == aN))
598+ then {
599+ let aW = fromBase58String(B)
600+ let bg = al(am, aW)
601+ let bh = bg._1
602+ let bo = bg._8
603+ let bp = if (v(toString(bh), "transferFee: no such binding"))
604+ then G(bo, true, "transferFee: token is disabled")
605+ else false
606+ if ((bp == bp))
607+ then $Tuple2((ar(aW, 0) ++ [ScriptTransfer(av(), aq(aW), aW)]), unit)
608+ else throw("Strict value is not equal to itself.")
609+ }
624610 else throw("Strict value is not equal to itself.")
625611 }
626612
627613
628614
629-@Callable(aK)
630-func unpause () = {
631- let aM = if (if (aE(aK.caller))
632- then aB()
633- else false)
634- then aD()
615+@Callable(aL)
616+func updateCallerContract (aO) = {
617+ let aN = if (az(aL.caller))
618+ then aC()
635619 else false
636- if ((aM == aM))
637- then $Tuple2(S(false), unit)
620+ if ((aN == aN))
621+ then $Tuple2(ag(aO), unit)
638622 else throw("Strict value is not equal to itself.")
639623 }
640624
641625
642626
643-@Callable(aK)
644-func updatePauser (W) = {
645- let aM = if (if (ay(aK.caller))
646- then aB()
627+@Callable(aL)
628+func updateExecutionChain (am,by) = {
629+ let aN = if (if (az(aL.caller))
630+ then aC()
647631 else false)
648- then v(W, "init: invalid pauser")
632+ then C(am, 0, u, "updateExecutionChain: invalid executionChainId")
649633 else false
650- if ((aM == aM))
651- then $Tuple2(V(addressFromStringValue(W)), unit)
634+ if ((aN == aN))
635+ then $Tuple2(ak(am, by), unit)
652636 else throw("Strict value is not equal to itself.")
653637 }
654638
655639
656640
657-@Callable(aK)
658-func setMultisig (Z) = {
659- let aM = if (ay(aK.caller))
660- then v(Z, "setMultisig: invalid multisig")
641+@Callable(aL)
642+func updateFeeRecipient (aM) = {
643+ let aN = if (if (az(aL.caller))
644+ then aC()
645+ else false)
646+ then v(aM, "updateFeeRecipient: invalid feeRecipient")
661647 else false
662- if ((aM == aM))
663- then $Tuple2(Y(addressFromStringValue(Z)), unit)
648+ if ((aN == aN))
649+ then $Tuple2(aw(addressFromStringValue(aM)), unit)
664650 else throw("Strict value is not equal to itself.")
665651 }
666652
667653
668-@Verifier(bD)
669-func bE () = {
654+
655+@Callable(aL)
656+func updateReferrer (am,L,bz) = {
657+ let aN = if (if (if (if (az(aL.caller))
658+ then aC()
659+ else false)
660+ then aK(am, "updateReferrer: invalid execution chain")
661+ else false)
662+ then v(L, "updateReferrer: invalid referrer")
663+ else false)
664+ then C(bz, 0, t, "updateReferrer: invalid fee")
665+ else false
666+ if ((aN == aN))
667+ then $Tuple2(ay(am, addressFromStringValue(L), bz), unit)
668+ else throw("Strict value is not equal to itself.")
669+ }
670+
671+
672+
673+@Callable(aL)
674+func updateBindingInfo (am,aP,bA,bB,bC,bD,bE,bF,by) = {
675+ let aN = if (if (if (if (if (if (if (if (az(aL.caller))
676+ then aC()
677+ else false)
678+ then v(aP, "updateBindingInfo: invalid asset contract")
679+ else false)
680+ then C(am, 0, u, "updateBindingInfo: invalid executionChainId")
681+ else false)
682+ then C(bB, 0, u, "updateBindingInfo: invalid minAmount")
683+ else false)
684+ then C(bC, 0, u, "updateBindingInfo: invalid minFee")
685+ else false)
686+ then C(bD, 0, u, "updateBindingInfo: invalid thresholdFee")
687+ else false)
688+ then C(bE, 0, u, "updateBindingInfo: invalid beforePercentFee")
689+ else false)
690+ then C(bF, 0, u, "updateBindingInfo: invalid afterPercentFee")
691+ else false
692+ if ((aN == aN))
693+ then {
694+ let aW = aH(invoke(addressFromStringValue(aP), "getAssetId", nil, nil))
695+ if ((aW == aW))
696+ then {
697+ let bg = $Tuple8(addressFromStringValue(aP), bA, bB, bC, bD, bE, bF, by)
698+ $Tuple2(ao(am, aW, bg), unit)
699+ }
700+ else throw("Strict value is not equal to itself.")
701+ }
702+ else throw("Strict value is not equal to itself.")
703+ }
704+
705+
706+
707+@Callable(aL)
708+func pause () = {
709+ let aN = if (if (aF(aL.caller))
710+ then aC()
711+ else false)
712+ then aD()
713+ else false
714+ if ((aN == aN))
715+ then $Tuple2(U(true), unit)
716+ else throw("Strict value is not equal to itself.")
717+ }
718+
719+
720+
721+@Callable(aL)
722+func unpause () = {
723+ let aN = if (if (aF(aL.caller))
724+ then aC()
725+ else false)
726+ then aE()
727+ else false
728+ if ((aN == aN))
729+ then $Tuple2(U(false), unit)
730+ else throw("Strict value is not equal to itself.")
731+ }
732+
733+
734+
735+@Callable(aL)
736+func updatePauser (Y) = {
737+ let aN = if (if (az(aL.caller))
738+ then aC()
739+ else false)
740+ then v(Y, "updatePauser: invalid pauser")
741+ else false
742+ if ((aN == aN))
743+ then $Tuple2(X(addressFromStringValue(Y)), unit)
744+ else throw("Strict value is not equal to itself.")
745+ }
746+
747+
748+
749+@Callable(aL)
750+func setMultisig (ab) = {
751+ let aN = if (az(aL.caller))
752+ then v(ab, "setMultisig: invalid multisig")
753+ else false
754+ if ((aN == aN))
755+ then $Tuple2(aa(addressFromStringValue(ab)), unit)
756+ else throw("Strict value is not equal to itself.")
757+ }
758+
759+
760+@Verifier(bG)
761+func bH () = {
670762 let y = getString(c)
671763 if ($isInstanceOf(y, "String"))
672764 then {
673- let bF = y
674- valueOrElse(getBoolean(addressFromStringValue(bF), makeString([d, toString(this), toBase58String(bD.id)], a)), false)
765+ let bI = y
766+ valueOrElse(getBoolean(addressFromStringValue(bI), makeString([d, toString(this), toBase58String(bG.id)], a)), false)
675767 }
676- else sigVerify(bD.bodyBytes, bD.proofs[0], bD.senderPublicKey)
768+ else sigVerify(bG.bodyBytes, bG.proofs[0], bG.senderPublicKey)
677769 }
678770
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = "INIT"
77
88 let c = "MULTISIG"
99
1010 let d = "STATUS"
1111
1212 let e = "PAUSED"
1313
1414 let f = "PAUSER"
1515
1616 let g = "EXECUTOR"
1717
1818 let h = "ROOT_ADAPTER"
1919
2020 let i = "CALLER_CONTRACT"
2121
2222 let j = "CHAIN"
2323
2424 let k = "BINDING"
2525
2626 let l = "FEE"
2727
2828 let m = "FEE_RECIPIENT"
2929
3030 let n = "REFERRER_FEE_PERCENT"
3131
3232 let o = "releaseTokens"
3333
3434 let p = "WAVES"
3535
3636 let q = 8
3737
3838 let r = 6
3939
4040 let s = 1000000
4141
4242 let t = 200000
4343
4444 let u = 9223372036854775807
4545
4646 func v (w,x) = {
4747 let y = addressFromString(w)
4848 if ($isInstanceOf(y, "Address"))
4949 then {
5050 let z = y
5151 true
5252 }
5353 else throw(x)
5454 }
5555
5656
5757 func A (B,x) = {
5858 let y = assetInfo(fromBase58String(B))
5959 if ($isInstanceOf(y, "Asset"))
6060 then {
6161 let z = y
6262 true
6363 }
6464 else throw(x)
6565 }
6666
6767
6868 func C (D,E,F,x) = if (if ((E > D))
6969 then true
7070 else (D > F))
7171 then throw(x)
7272 else true
7373
7474
7575 func G (D,H,x) = if ((D != H))
7676 then throw(x)
7777 else true
7878
7979
8080 func I (J,H,x) = if ((size(J) != H))
8181 then throw(x)
8282 else true
8383
8484
85-func K (L,M,N) = if ((M >= N))
86- then (L / pow(10, 0, (M - N), 0, 0, DOWN))
87- else (L * pow(10, 0, (N - M), 0, 0, DOWN))
85+func K (L,x) = if ((L != ""))
86+ then v(L, x)
87+ else true
8888
8989
90-func O () = {
90+func M (N,O,P) = if ((O >= P))
91+ then (N / pow(10, 0, (O - P), 0, 0, DOWN))
92+ else (N * pow(10, 0, (P - O), 0, 0, DOWN))
93+
94+
95+func Q () = {
9196 let y = getBoolean(b)
9297 if ($isInstanceOf(y, "Boolean"))
9398 then {
9499 let z = y
95100 z
96101 }
97102 else false
98103 }
99104
100105
101-func P (Q) = [BooleanEntry(b, Q)]
106+func R (S) = [BooleanEntry(b, S)]
102107
103108
104-func R () = {
109+func T () = {
105110 let y = getBoolean(e)
106111 if ($isInstanceOf(y, "Boolean"))
107112 then {
108113 let z = y
109114 z
110115 }
111116 else false
112117 }
113118
114119
115-func S (T) = [BooleanEntry(e, T)]
120+func U (V) = [BooleanEntry(e, V)]
116121
117122
118-func U () = {
123+func W () = {
119124 let y = getString(f)
120125 if ($isInstanceOf(y, "String"))
121126 then {
122127 let z = y
123128 addressFromStringValue(z)
124129 }
125130 else Address(base58'')
126131 }
127132
128133
129-func V (W) = [StringEntry(f, toString(W))]
134+func X (Y) = [StringEntry(f, toString(Y))]
130135
131136
132-func X () = {
137+func Z () = {
133138 let y = getString(c)
134139 if ($isInstanceOf(y, "String"))
135140 then {
136141 let z = y
137142 addressFromStringValue(z)
138143 }
139144 else Address(base58'')
140145 }
141146
142147
143-func Y (Z) = [StringEntry(c, toString(Z))]
148+func aa (ab) = [StringEntry(c, toString(ab))]
144149
145150
146-func aa () = {
151+func ac () = {
147152 let y = getString(g)
148153 if ($isInstanceOf(y, "String"))
149154 then {
150155 let z = y
151156 addressFromStringValue(z)
152157 }
153158 else Address(base58'')
154159 }
155160
156161
157-func ab (ac) = [StringEntry(g, toString(ac))]
162+func ad (ae) = [StringEntry(g, toString(ae))]
158163
159164
160-func ad () = {
165+func af () = {
161166 let y = getString(i)
162167 if ($isInstanceOf(y, "String"))
163168 then {
164169 let z = y
165170 z
166171 }
167172 else ""
168173 }
169174
170175
171-func ae (af) = [StringEntry(i, af)]
176+func ag (ah) = [StringEntry(i, ah)]
172177
173178
174-func ag (ah) = {
175- let y = getBoolean(makeString([j, toString(ah)], a))
179+func ai (aj) = {
180+ let y = getBoolean(makeString([j, toString(aj)], a))
176181 if ($isInstanceOf(y, "Boolean"))
177182 then {
178183 let z = y
179184 z
180185 }
181186 else false
182187 }
183188
184189
185-func ai (ah,D) = [BooleanEntry(makeString([j, toString(ah)], a), D)]
190+func ak (aj,D) = [BooleanEntry(makeString([j, toString(aj)], a), D)]
186191
187192
188-func aj (ak,B) = {
189- let y = getString(makeString([k, toString(ak), toBase58String(B)], a))
193+func al (am,B) = {
194+ let y = getString(makeString([k, toString(am), toBase58String(B)], a))
190195 if ($isInstanceOf(y, "String"))
191196 then {
192197 let z = y
193- let al = split(z, a)
194- $Tuple8(addressFromStringValue(al[0]), al[1], parseIntValue(al[2]), parseIntValue(al[3]), parseIntValue(al[4]), parseIntValue(al[5]), parseIntValue(al[6]), if ((al[7] == "1"))
198+ let an = split(z, a)
199+ $Tuple8(addressFromStringValue(an[0]), an[1], parseIntValue(an[2]), parseIntValue(an[3]), parseIntValue(an[4]), parseIntValue(an[5]), parseIntValue(an[6]), if ((an[7] == "1"))
195200 then true
196201 else false)
197202 }
198203 else $Tuple8(Address(base58''), "", 0, 0, 0, 0, 0, false)
199204 }
200205
201206
202-func am (ak,B,an) = [StringEntry(makeString([k, toString(ak), toBase58String(B)], a), makeString([toString(an._1), an._2, toString(an._3), toString(an._4), toString(an._5), toString(an._6), toString(an._7), if (an._8)
207+func ao (am,B,ap) = [StringEntry(makeString([k, toString(am), toBase58String(B)], a), makeString([toString(ap._1), ap._2, toString(ap._3), toString(ap._4), toString(ap._5), toString(ap._6), toString(ap._7), if (ap._8)
203208 then "1"
204209 else "0"], a))]
205210
206211
207-func ao (B) = {
212+func aq (B) = {
208213 let y = getInteger(makeString([l, toBase58String(B)], a))
209214 if ($isInstanceOf(y, "Int"))
210215 then {
211216 let z = y
212217 z
213218 }
214219 else 0
215220 }
216221
217222
218-func ap (B,D) = [IntegerEntry(makeString([l, toBase58String(B)], a), D)]
223+func ar (B,D) = [IntegerEntry(makeString([l, toBase58String(B)], a), D)]
219224
220225
221-func aq () = {
226+func as () = {
222227 let y = getString(h)
223228 if ($isInstanceOf(y, "String"))
224229 then {
225230 let z = y
226231 addressFromStringValue(z)
227232 }
228233 else Address(base58'')
229234 }
230235
231236
232-func ar (as) = [StringEntry(h, toString(as))]
237+func at (au) = [StringEntry(h, toString(au))]
233238
234239
235-func at () = {
240+func av () = {
236241 let y = getString(m)
237242 if ($isInstanceOf(y, "String"))
238243 then {
239244 let z = y
240245 addressFromStringValue(z)
241246 }
242247 else Address(base58'')
243248 }
244249
245250
246-func au (D) = [StringEntry(m, toString(D))]
251+func aw (D) = [StringEntry(m, toString(D))]
247252
248253
249-func av (ak,aw) = {
250- let y = getInteger(makeString([n, toString(ak), toString(aw)], a))
254+func ax (am,L) = {
255+ let y = getInteger(makeString([n, toString(am), toString(L)], a))
251256 if ($isInstanceOf(y, "Int"))
252257 then {
253258 let z = y
254259 z
255260 }
256261 else 0
257262 }
258263
259264
260-func ax (ak,aw,D) = [IntegerEntry(makeString([n, toString(ak), toString(aw)], a), D)]
265+func ay (am,L,D) = [IntegerEntry(makeString([n, toString(am), toString(L)], a), D)]
261266
262267
263-func ay (af) = if ((af != this))
268+func az (ah) = if ((ah != this))
264269 then throw("_onlyThisContract: revert")
265270 else true
266271
267272
268-func az () = if ((X() == Address(base58'')))
273+func aA () = if ((Z() == Address(base58'')))
269274 then throw("_whenMultisigSet: revert")
270275 else true
271276
272277
273-func aA () = if (O())
278+func aB () = if (Q())
274279 then throw("_whenNotInitialized: revert")
275280 else true
276281
277282
278-func aB () = if (!(O()))
283+func aC () = if (!(Q()))
279284 then throw("_whenInitialized: revert")
280285 else true
281286
282287
283-func aC () = if (R())
288+func aD () = if (T())
284289 then throw("_whenNotPaused: revert")
285290 else true
286291
287292
288-func aD () = if (!(R()))
293+func aE () = if (!(T()))
289294 then throw("_whenPaused: revert")
290295 else true
291296
292297
293-func aE (af) = if ((af != U()))
298+func aF (ah) = if ((ah != W()))
294299 then throw("_onlyPauser: revert")
295300 else true
296301
297302
298-func aF (D) = {
303+func aG (D) = {
299304 let y = D
300305 if ($isInstanceOf(y, "Int"))
301306 then {
302307 let z = y
303308 z
304309 }
305310 else throw("_asInt: revert")
306311 }
307312
308313
309-func aG (D) = {
314+func aH (D) = {
310315 let y = D
311316 if ($isInstanceOf(y, "ByteVector"))
312317 then {
313318 let z = y
314319 z
315320 }
316321 else throw("_asBytes: revert")
317322 }
318323
319324
320-func aH (D,x) = if ((D != aa()))
325+func aI (D,x) = if ((D != ac()))
321326 then throw(x)
322327 else true
323328
324329
325-func aI (D,x) = if ((D != ad()))
330+func aJ (D,x) = if ((D != af()))
326331 then throw(x)
327332 else true
328333
329334
330-func aJ (ak,x) = if (!(ag(ak)))
335+func aK (am,x) = if (!(ai(am)))
331336 then throw(x)
332337 else true
333338
334339
335-@Callable(aK)
336-func init (ac,as,W,aL) = {
337- let aM = if (if (if (if (if (if (ay(aK.caller))
340+@Callable(aL)
341+func init (ae,au,Y,aM) = {
342+ let aN = if (if (if (if (if (if (az(aL.caller))
343+ then aB()
344+ else false)
338345 then aA()
339346 else false)
340- then az()
347+ then v(ae, "init: invalid executor")
341348 else false)
342- then v(ac, "init: invalid executor")
349+ then v(au, "init: invalid adapter")
343350 else false)
344- then v(as, "init: invalid adapter")
351+ then v(Y, "init: invalid pauser")
345352 else false)
346- then v(W, "init: invalid pauser")
347- else false)
348- then v(aL, "init: invalid feeRecipient")
353+ then v(aM, "init: invalid feeRecipient")
349354 else false
350- if ((aM == aM))
351- then $Tuple2(((((P(true) ++ ab(addressFromStringValue(ac))) ++ ar(addressFromStringValue(as))) ++ V(addressFromStringValue(W))) ++ au(addressFromStringValue(aL))), unit)
355+ if ((aN == aN))
356+ then $Tuple2(((((R(true) ++ ad(addressFromStringValue(ae))) ++ at(addressFromStringValue(au))) ++ X(addressFromStringValue(Y))) ++ aw(addressFromStringValue(aM))), unit)
352357 else throw("Strict value is not equal to itself.")
353358 }
354359
355360
356361
357-@Callable(aK)
358-func mintTokens (aN,aO,L,aP,aQ,aw,aR) = {
359- let aS = valueOrErrorMessage(parseInt(L), "mint: amount is not Int")
360- let aT = valueOrErrorMessage(parseInt(aQ), "mint: gaslessReward is not Int")
361- let aU = valueOrErrorMessage(parseInt(aR), "mint: referrerFee is not Int")
362- let aM = if (if (if (if (if (if (if (if (aB())
363- then aC()
362+@Callable(aL)
363+func mintTokens (aO,aP,N,aQ,aR,L,aS) = {
364+ let aT = valueOrErrorMessage(parseInt(N), "mint: amount is not Int")
365+ let aU = valueOrErrorMessage(parseInt(aR), "mint: gaslessReward is not Int")
366+ let aV = valueOrErrorMessage(parseInt(aS), "mint: referrerFee is not Int")
367+ let aN = if (if (if (if (if (if (if (if (aC())
368+ then aD()
364369 else false)
365- then v(aO, "mint: invalid asset contract")
370+ then v(aP, "mint: invalid asset contract")
366371 else false)
367- then aH(aK.caller, "mint: invalid executor")
372+ then aI(aL.caller, "mint: invalid executor")
368373 else false)
369- then aI(aN, "mint: invalid caller")
374+ then aJ(aO, "mint: invalid caller")
370375 else false)
371- then v(aP, "mint: invalid recipient address")
376+ then v(aQ, "mint: invalid recipient address")
372377 else false)
373- then C(aS, 0, u, "mint: invalid amount")
378+ then C(aT, 0, u, "mint: invalid amount")
374379 else false)
375- then C(aT, 0, u, "mint: invalid gaslessReward")
380+ then C(aU, 0, u, "mint: invalid gaslessReward")
376381 else false)
377- then C(aU, 0, u, "mint: invalid referrer fee")
382+ then C(aV, 0, u, "mint: invalid referrer fee")
378383 else false
379- if ((aM == aM))
384+ if ((aN == aN))
380385 then {
381- let aV = aG(invoke(addressFromStringValue(aO), "getAssetId", nil, nil))
382- if ((aV == aV))
386+ let aW = aH(invoke(addressFromStringValue(aP), "getAssetId", nil, nil))
387+ if ((aW == aW))
383388 then {
384- let aW = aF(invoke(addressFromStringValue(aO), "getDecimals", nil, nil))
385- if ((aW == aW))
389+ let aX = aG(invoke(addressFromStringValue(aP), "getDecimals", nil, nil))
390+ if ((aX == aX))
386391 then {
387- let aX = K(aS, r, aW)
388- let aY = K(aT, r, aW)
389- let aZ = {
390- let y = addressFromString(aw)
392+ let aY = M(aT, r, aX)
393+ let aZ = M(aU, r, aX)
394+ let ba = {
395+ let y = addressFromString(L)
391396 if ($isInstanceOf(y, "Address"))
392397 then {
393- let ba = y
394- let bb = K(aU, r, aW)
395- $Tuple2(bb, [ScriptTransfer(ba, bb, aV)])
398+ let bb = y
399+ let bc = M(aV, r, aX)
400+ $Tuple2(bc, [ScriptTransfer(bb, bc, aW)])
396401 }
397402 else $Tuple2(0, nil)
398403 }
399- let bb = aZ._1
400- let bc = aZ._2
401- let bd = invoke(addressFromStringValue(aO), "mint", [(aX + bb), toString(this)], nil)
402- if ((bd == bd))
404+ let bc = ba._1
405+ let bd = ba._2
406+ let be = invoke(addressFromStringValue(aP), "mint", [(aY + bc), toString(this)], nil)
407+ if ((be == be))
403408 then {
404- let be = if (if ((aY > 0))
405- then (addressFromStringValue(aP) != aK.originCaller)
409+ let bf = if (if ((aZ > 0))
410+ then (addressFromStringValue(aQ) != aL.originCaller)
406411 else false)
407- then [ScriptTransfer(addressFromStringValue(aP), (aX - aY), aV), ScriptTransfer(aK.originCaller, aY, aV)]
408- else [ScriptTransfer(addressFromStringValue(aP), aX, aV)]
409- $Tuple2((be ++ bc), unit)
412+ then [ScriptTransfer(addressFromStringValue(aQ), (aY - aZ), aW), ScriptTransfer(aL.originCaller, aZ, aW)]
413+ else [ScriptTransfer(addressFromStringValue(aQ), aY, aW)]
414+ $Tuple2((bf ++ bd), unit)
410415 }
411416 else throw("Strict value is not equal to itself.")
412417 }
413418 else throw("Strict value is not equal to itself.")
414419 }
415420 else throw("Strict value is not equal to itself.")
416421 }
417422 else throw("Strict value is not equal to itself.")
418423 }
419424
420425
421426
422-@Callable(aK)
423-func burnTokens (ak,aP,aQ) = {
424- let aM = if (if (if (if (if (aB())
425- then aC()
427+@Callable(aL)
428+func burnTokens (am,aQ,aR) = {
429+ let aN = if (if (if (if (if (aC())
430+ then aD()
426431 else false)
427- then aJ(ak, "burn: invalid execution chain")
432+ then aK(am, "burnTokens: invalid execution chain")
428433 else false)
429- then I(aK.payments, 1, "burn: no payment")
434+ then I(aL.payments, 1, "burnTokens: no payment")
430435 else false)
431- then C(aQ, 0, u, "burn: invalid gaslessReward")
436+ then C(aR, 0, u, "burnTokens: invalid gaslessReward")
432437 else false)
433- then C(aK.payments[0].amount, 0, u, "burn: invalid payment amount")
438+ then C(aL.payments[0].amount, 0, u, "burnTokens: invalid payment amount")
434439 else false
435- if ((aM == aM))
440+ if ((aN == aN))
436441 then {
437- let aS = aK.payments[0].amount
438- let aV = {
439- let y = aK.payments[0].assetId
442+ let aT = aL.payments[0].amount
443+ let aW = {
444+ let y = aL.payments[0].assetId
440445 if ($isInstanceOf(y, "ByteVector"))
441446 then {
442447 let z = y
443448 z
444449 }
445- else throw("burn: invalid asset")
450+ else throw("burnTokens: invalid asset")
446451 }
447- let bf = aj(ak, aV)
448- let bg = bf._1
449- let bh = bf._2
450- let bi = bf._3
451- let bj = bf._4
452- let bk = bf._5
453- let bl = bf._6
454- let bm = bf._7
455- let bn = bf._8
456- let bo = if (if (v(toString(bg), "burn: no such binding"))
457- then C(aS, bi, u, "burn: less than min")
452+ let bg = al(am, aW)
453+ let bh = bg._1
454+ let bi = bg._2
455+ let bj = bg._3
456+ let bk = bg._4
457+ let bl = bg._5
458+ let bm = bg._6
459+ let bn = bg._7
460+ let bo = bg._8
461+ let bp = if (if (v(toString(bh), "burnTokens: no such binding"))
462+ then C(aT, bj, u, "burnTokens: less than min")
458463 else false)
459- then G(bn, true, "burn: token is disabled")
464+ then G(bo, true, "burnTokens: token is disabled")
460465 else false
461- if ((bo == bo))
466+ if ((bp == bp))
462467 then {
463- let aW = aF(invoke(bg, "getDecimals", nil, nil))
464- if ((aW == aW))
468+ let aX = aG(invoke(bh, "getDecimals", nil, nil))
469+ if ((aX == aX))
465470 then {
466- let bp = if ((aS > bk))
467- then bm
468- else bl
469- let bq = (bj + fraction(aS, bp, s))
470- let br = C(aS, (bq + 1), u, "burn: fee more than amount")
471- if ((br == br))
471+ let bq = if ((aT > bl))
472+ then bn
473+ else bm
474+ let br = (bk + fraction(aT, bq, s))
475+ let bs = C(aT, (br + 1), u, "burnTokens: fee more than amount")
476+ if ((bs == bs))
472477 then {
473- let bs = (aS - bq)
474- let bt = C(bs, (aQ + 1), u, "burn: reward more than amount")
475- if ((bt == bt))
478+ let bt = (aT - br)
479+ let bu = C(bt, (aR + 1), u, "burnTokens: reward more than amount")
480+ if ((bu == bu))
476481 then {
477- let bu = (ao(aV) + bq)
478- let aX = K(bs, aW, r)
479- let aY = K(aQ, aW, r)
480- let bd = invoke(aq(), o, [ak, bh, aX, aP, aY], nil)
481- if ((bd == bd))
482- then $Tuple2((ap(aV, bu) ++ [Burn(aV, bs)]), unit)
482+ let bv = (aq(aW) + br)
483+ let aY = M(bt, aX, r)
484+ let aZ = M(aR, aX, r)
485+ let be = invoke(as(), o, [am, bi, aY, aQ, aZ], nil)
486+ if ((be == be))
487+ then $Tuple2((ar(aW, bv) ++ [Burn(aW, bt)]), unit)
483488 else throw("Strict value is not equal to itself.")
484489 }
485490 else throw("Strict value is not equal to itself.")
486491 }
487492 else throw("Strict value is not equal to itself.")
488493 }
489494 else throw("Strict value is not equal to itself.")
490495 }
491496 else throw("Strict value is not equal to itself.")
492497 }
493498 else throw("Strict value is not equal to itself.")
494499 }
495500
496501
497502
498-@Callable(aK)
499-func transferFee (ak,B) = {
500- let aM = if (if (aB())
501- then aC()
503+@Callable(aL)
504+func burnTokensV2 (am,aQ,L,aR) = {
505+ let aN = if (if (if (if (if (if (aC())
506+ then aD()
502507 else false)
503- then A(B, "transferFee: invalid asset")
508+ then aK(am, "burnTokensV2: invalid execution chain")
509+ else false)
510+ then I(aL.payments, 1, "burnTokensV2: no payment")
511+ else false)
512+ then C(aR, 0, u, "burnTokensV2: invalid gaslessReward")
513+ else false)
514+ then C(aL.payments[0].amount, 0, u, "burnTokensV2: invalid payment amount")
515+ else false)
516+ then K(L, "burnTokensV2: invalid referrer")
504517 else false
505- if ((aM == aM))
518+ if ((aN == aN))
506519 then {
507- let aV = fromBase58String(B)
508- let bf = aj(ak, aV)
509- let bg = bf._1
510- let bn = bf._8
511- let bo = if (v(toString(bg), "transferFee: no such binding"))
512- then G(bn, true, "transferFee: token is disabled")
520+ let aT = aL.payments[0].amount
521+ let aW = {
522+ let y = aL.payments[0].assetId
523+ if ($isInstanceOf(y, "ByteVector"))
524+ then {
525+ let z = y
526+ z
527+ }
528+ else throw("burnTokensV2: invalid asset")
529+ }
530+ let bg = al(am, aW)
531+ let bh = bg._1
532+ let bi = bg._2
533+ let bj = bg._3
534+ let bk = bg._4
535+ let bl = bg._5
536+ let bm = bg._6
537+ let bn = bg._7
538+ let bo = bg._8
539+ let bp = if (if (v(toString(bh), "burnTokensV2: no such binding"))
540+ then C(aT, bj, u, "burnTokensV2: less than min")
541+ else false)
542+ then G(bo, true, "burnTokensV2: token is disabled")
513543 else false
514- if ((bo == bo))
515- then $Tuple2((ap(aV, 0) ++ [ScriptTransfer(at(), ao(aV), aV)]), unit)
516- else throw("Strict value is not equal to itself.")
517- }
518- else throw("Strict value is not equal to itself.")
519- }
520-
521-
522-
523-@Callable(aK)
524-func updateCallerContract (aN) = {
525- let aM = if (ay(aK.caller))
526- then aB()
527- else false
528- if ((aM == aM))
529- then $Tuple2(ae(aN), unit)
530- else throw("Strict value is not equal to itself.")
531- }
532-
533-
534-
535-@Callable(aK)
536-func updateExecutionChain (ak,bv) = {
537- let aM = if (if (ay(aK.caller))
538- then aB()
539- else false)
540- then C(ak, 0, u, "updateExecutionChain: invalid executionChainId")
541- else false
542- if ((aM == aM))
543- then $Tuple2(ai(ak, bv), unit)
544- else throw("Strict value is not equal to itself.")
545- }
546-
547-
548-
549-@Callable(aK)
550-func updateFeeRecipient (aL) = {
551- let aM = if (if (ay(aK.caller))
552- then aB()
553- else false)
554- then v(aL, "updateFeeRecipient: invalid feeRecipient")
555- else false
556- if ((aM == aM))
557- then $Tuple2(au(addressFromStringValue(aL)), unit)
558- else throw("Strict value is not equal to itself.")
559- }
560-
561-
562-
563-@Callable(aK)
564-func updateReferrer (ak,aw,bw) = {
565- let aM = if (if (if (if (ay(aK.caller))
566- then aB()
567- else false)
568- then aJ(ak, "updateReferrer: invalid execution chain")
569- else false)
570- then v(aw, "updateReferrer: invalid referrer")
571- else false)
572- then C(bw, 0, t, "updateReferrer: invalid fee")
573- else false
574- if ((aM == aM))
575- then $Tuple2(ax(ak, addressFromStringValue(aw), bw), unit)
576- else throw("Strict value is not equal to itself.")
577- }
578-
579-
580-
581-@Callable(aK)
582-func updateBindingInfo (ak,aO,bx,by,bz,bA,bB,bC,bv) = {
583- let aM = if (if (if (if (if (if (if (if (ay(aK.caller))
584- then aB()
585- else false)
586- then v(aO, "updateBindingInfo: invalid asset contract")
587- else false)
588- then C(ak, 0, u, "updateBindingInfo: invalid executionChainId")
589- else false)
590- then C(by, 0, u, "updateBindingInfo: invalid minAmount")
591- else false)
592- then C(bz, 0, u, "updateBindingInfo: invalid minFee")
593- else false)
594- then C(bA, 0, u, "updateBindingInfo: invalid thresholdFee")
595- else false)
596- then C(bB, 0, u, "updateBindingInfo: invalid beforePercentFee")
597- else false)
598- then C(bC, 0, u, "updateBindingInfo: invalid afterPercentFee")
599- else false
600- if ((aM == aM))
601- then {
602- let aV = aG(invoke(addressFromStringValue(aO), "getAssetId", nil, nil))
603- if ((aV == aV))
544+ if ((bp == bp))
604545 then {
605- let bf = $Tuple8(addressFromStringValue(aO), bx, by, bz, bA, bB, bC, bv)
606- $Tuple2(am(ak, aV, bf), unit)
546+ let aX = aG(invoke(bh, "getDecimals", nil, nil))
547+ if ((aX == aX))
548+ then {
549+ let bq = if ((aT > bl))
550+ then bn
551+ else bm
552+ let br = (bk + fraction(aT, bq, s))
553+ let bs = C(aT, (br + 1), u, "burnTokensV2: fee more than amount")
554+ if ((bs == bs))
555+ then {
556+ let bw = if ((L != ""))
557+ then {
558+ let ba = addressFromStringValue(L)
559+ let bx = fraction(ax(am, ba), br, s)
560+ $Tuple2(bx, [ScriptTransfer(ba, bx, aW)])
561+ }
562+ else $Tuple2(0, nil)
563+ let aV = bw._1
564+ let bd = bw._2
565+ let bt = (aT - br)
566+ let bu = C(bt, (aR + 1), u, "burnTokensV2: reward more than amount")
567+ if ((bu == bu))
568+ then {
569+ let bv = ((aq(aW) + br) - aV)
570+ let aY = M(bt, aX, r)
571+ let aZ = M(aR, aX, r)
572+ let be = invoke(as(), o, [am, bi, aY, aQ, aZ], nil)
573+ if ((be == be))
574+ then $Tuple2(((ar(aW, bv) ++ bd) ++ [Burn(aW, bt)]), unit)
575+ else throw("Strict value is not equal to itself.")
576+ }
577+ else throw("Strict value is not equal to itself.")
578+ }
579+ else throw("Strict value is not equal to itself.")
580+ }
581+ else throw("Strict value is not equal to itself.")
607582 }
608583 else throw("Strict value is not equal to itself.")
609584 }
610585 else throw("Strict value is not equal to itself.")
611586 }
612587
613588
614589
615-@Callable(aK)
616-func pause () = {
617- let aM = if (if (aE(aK.caller))
618- then aB()
590+@Callable(aL)
591+func transferFee (am,B) = {
592+ let aN = if (if (aC())
593+ then aD()
619594 else false)
620- then aC()
595+ then A(B, "transferFee: invalid asset")
621596 else false
622- if ((aM == aM))
623- then $Tuple2(S(true), unit)
597+ if ((aN == aN))
598+ then {
599+ let aW = fromBase58String(B)
600+ let bg = al(am, aW)
601+ let bh = bg._1
602+ let bo = bg._8
603+ let bp = if (v(toString(bh), "transferFee: no such binding"))
604+ then G(bo, true, "transferFee: token is disabled")
605+ else false
606+ if ((bp == bp))
607+ then $Tuple2((ar(aW, 0) ++ [ScriptTransfer(av(), aq(aW), aW)]), unit)
608+ else throw("Strict value is not equal to itself.")
609+ }
624610 else throw("Strict value is not equal to itself.")
625611 }
626612
627613
628614
629-@Callable(aK)
630-func unpause () = {
631- let aM = if (if (aE(aK.caller))
632- then aB()
633- else false)
634- then aD()
615+@Callable(aL)
616+func updateCallerContract (aO) = {
617+ let aN = if (az(aL.caller))
618+ then aC()
635619 else false
636- if ((aM == aM))
637- then $Tuple2(S(false), unit)
620+ if ((aN == aN))
621+ then $Tuple2(ag(aO), unit)
638622 else throw("Strict value is not equal to itself.")
639623 }
640624
641625
642626
643-@Callable(aK)
644-func updatePauser (W) = {
645- let aM = if (if (ay(aK.caller))
646- then aB()
627+@Callable(aL)
628+func updateExecutionChain (am,by) = {
629+ let aN = if (if (az(aL.caller))
630+ then aC()
647631 else false)
648- then v(W, "init: invalid pauser")
632+ then C(am, 0, u, "updateExecutionChain: invalid executionChainId")
649633 else false
650- if ((aM == aM))
651- then $Tuple2(V(addressFromStringValue(W)), unit)
634+ if ((aN == aN))
635+ then $Tuple2(ak(am, by), unit)
652636 else throw("Strict value is not equal to itself.")
653637 }
654638
655639
656640
657-@Callable(aK)
658-func setMultisig (Z) = {
659- let aM = if (ay(aK.caller))
660- then v(Z, "setMultisig: invalid multisig")
641+@Callable(aL)
642+func updateFeeRecipient (aM) = {
643+ let aN = if (if (az(aL.caller))
644+ then aC()
645+ else false)
646+ then v(aM, "updateFeeRecipient: invalid feeRecipient")
661647 else false
662- if ((aM == aM))
663- then $Tuple2(Y(addressFromStringValue(Z)), unit)
648+ if ((aN == aN))
649+ then $Tuple2(aw(addressFromStringValue(aM)), unit)
664650 else throw("Strict value is not equal to itself.")
665651 }
666652
667653
668-@Verifier(bD)
669-func bE () = {
654+
655+@Callable(aL)
656+func updateReferrer (am,L,bz) = {
657+ let aN = if (if (if (if (az(aL.caller))
658+ then aC()
659+ else false)
660+ then aK(am, "updateReferrer: invalid execution chain")
661+ else false)
662+ then v(L, "updateReferrer: invalid referrer")
663+ else false)
664+ then C(bz, 0, t, "updateReferrer: invalid fee")
665+ else false
666+ if ((aN == aN))
667+ then $Tuple2(ay(am, addressFromStringValue(L), bz), unit)
668+ else throw("Strict value is not equal to itself.")
669+ }
670+
671+
672+
673+@Callable(aL)
674+func updateBindingInfo (am,aP,bA,bB,bC,bD,bE,bF,by) = {
675+ let aN = if (if (if (if (if (if (if (if (az(aL.caller))
676+ then aC()
677+ else false)
678+ then v(aP, "updateBindingInfo: invalid asset contract")
679+ else false)
680+ then C(am, 0, u, "updateBindingInfo: invalid executionChainId")
681+ else false)
682+ then C(bB, 0, u, "updateBindingInfo: invalid minAmount")
683+ else false)
684+ then C(bC, 0, u, "updateBindingInfo: invalid minFee")
685+ else false)
686+ then C(bD, 0, u, "updateBindingInfo: invalid thresholdFee")
687+ else false)
688+ then C(bE, 0, u, "updateBindingInfo: invalid beforePercentFee")
689+ else false)
690+ then C(bF, 0, u, "updateBindingInfo: invalid afterPercentFee")
691+ else false
692+ if ((aN == aN))
693+ then {
694+ let aW = aH(invoke(addressFromStringValue(aP), "getAssetId", nil, nil))
695+ if ((aW == aW))
696+ then {
697+ let bg = $Tuple8(addressFromStringValue(aP), bA, bB, bC, bD, bE, bF, by)
698+ $Tuple2(ao(am, aW, bg), unit)
699+ }
700+ else throw("Strict value is not equal to itself.")
701+ }
702+ else throw("Strict value is not equal to itself.")
703+ }
704+
705+
706+
707+@Callable(aL)
708+func pause () = {
709+ let aN = if (if (aF(aL.caller))
710+ then aC()
711+ else false)
712+ then aD()
713+ else false
714+ if ((aN == aN))
715+ then $Tuple2(U(true), unit)
716+ else throw("Strict value is not equal to itself.")
717+ }
718+
719+
720+
721+@Callable(aL)
722+func unpause () = {
723+ let aN = if (if (aF(aL.caller))
724+ then aC()
725+ else false)
726+ then aE()
727+ else false
728+ if ((aN == aN))
729+ then $Tuple2(U(false), unit)
730+ else throw("Strict value is not equal to itself.")
731+ }
732+
733+
734+
735+@Callable(aL)
736+func updatePauser (Y) = {
737+ let aN = if (if (az(aL.caller))
738+ then aC()
739+ else false)
740+ then v(Y, "updatePauser: invalid pauser")
741+ else false
742+ if ((aN == aN))
743+ then $Tuple2(X(addressFromStringValue(Y)), unit)
744+ else throw("Strict value is not equal to itself.")
745+ }
746+
747+
748+
749+@Callable(aL)
750+func setMultisig (ab) = {
751+ let aN = if (az(aL.caller))
752+ then v(ab, "setMultisig: invalid multisig")
753+ else false
754+ if ((aN == aN))
755+ then $Tuple2(aa(addressFromStringValue(ab)), unit)
756+ else throw("Strict value is not equal to itself.")
757+ }
758+
759+
760+@Verifier(bG)
761+func bH () = {
670762 let y = getString(c)
671763 if ($isInstanceOf(y, "String"))
672764 then {
673- let bF = y
674- valueOrElse(getBoolean(addressFromStringValue(bF), makeString([d, toString(this), toBase58String(bD.id)], a)), false)
765+ let bI = y
766+ valueOrElse(getBoolean(addressFromStringValue(bI), makeString([d, toString(this), toBase58String(bG.id)], a)), false)
675767 }
676- else sigVerify(bD.bodyBytes, bD.proofs[0], bD.senderPublicKey)
768+ else sigVerify(bG.bodyBytes, bG.proofs[0], bG.senderPublicKey)
677769 }
678770

github/deemru/w8io/169f3d6 
178.39 ms