tx · Czu39FVcNUsNKLSbSbztdCvWEdKpcQsqzJor8xsrDun3 3MumkGGztCKAXpWDqxkddofqXSUbqQkvSJy: -0.03300000 Waves 2023.08.05 16:55 [2697375] smart account 3MumkGGztCKAXpWDqxkddofqXSUbqQkvSJy > SELF 0.00000000 Waves
{ "type": 13, "id": "Czu39FVcNUsNKLSbSbztdCvWEdKpcQsqzJor8xsrDun3", "fee": 3300000, "feeAssetId": null, "timestamp": 1691243750982, "version": 2, "chainId": 84, "sender": "3MumkGGztCKAXpWDqxkddofqXSUbqQkvSJy", "senderPublicKey": "C3PaRKeL8AUKbwUqdniMQtThgcTh5DYHV1777Hkxy7rp", "proofs": [ "2HtFmRtaio1rLgjDr7vxotp9bgvvJFWa5oFYvtURosg9iZE8NtMWW2AcJDZpaRsm4pJvK36eY8LWKvQbrCdgbM6N" ], "script": "base64:BgJPCAISAwoBGBIDCgEIEgMKAQgSAwoBCBIDCgEIEgMKAQgSAwoBGBIDCgEIEgMKARgSAwoBGBIDCgEYEgMKARgSAwoBCBIAEgMKAQgSAwoBAa0BAAJNNgDAhD0AAk04AIDC1y8ACE1JTExJT042AICA6YOx3hYADk1BUktFVElOR1NIQVJFAKCNBgAJVEVBTVNIQVJFAMCaDAANQUNUSVZJVFlTSEFSRQCgjQYAC1BMQVlFUlNIQVJFAIC1GAAKWUVBUk1JTExJUwCAhuvHdQADREFZAIC4mSkAEG1hcmtldGluZ0FkZHJLZXkCDW1hcmtldGluZ0FkZHIAC3RlYW1BZGRyS2V5Agh0ZWFtQWRkcgAUbGFzdE1hcmtldGluZ1RpbWVLZXkCGWxhc3RDbGFpbWVkVGltZV9tYXJrZXRpbmcAFm1hcmtldGluZ0Ftb3VudExlZnRLZXkCE21hcmtldGluZ0Ftb3VudExlZnQAD2xhc3RUZWFtVGltZUtleQIUbGFzdENsYWltZWRUaW1lX3RlYW0AEXRlYW1BbW91bnRMZWZ0S2V5Ag50ZWFtQW1vdW50TGVmdAAVbGFzdEFjdGl2aXRpZXNUaW1lS2V5AhpsYXN0Q2xhaW1lZFRpbWVfYWN0aXZpdGllcwAQYWN0QW1vdW50TGVmdEtleQIUYWN0aXZpdGllc0Ftb3VudExlZnQAFHN0YWtlcnNBbW91bnRMZWZ0S2V5AhFzdGFrZXJzQW1vdW50TGVmdAEYa2V5TGFzdENsYWltZWRUaW1lQnlVc2VyAQRhZGRyCQCsAgICFGxhc3RDbGFpbWVkVGltZVVzZXJfBQRhZGRyARRkaXN0cmlidXRpb25CeVBlcmlvZAEGcGVyaW9kCQBrAwUITUlMTElPTjYJAGgCBQtQTEFZRVJTSEFSRQkAZAIFBnBlcmlvZAABCQBoAgAGBQJNNgAPd2xnSXNzdWVUaW1lS2V5Ag13bGdfaXNzdWVUaW1lABJ3bGdJc3N1ZWRBbW91bnRLZXkCEHdsZ19pc3N1ZWRBbW91bnQAEXpiSXNzdWVkQW1vdW50S2V5AhJ6YmlsbF9pc3N1ZWRBbW91bnQADGlkeFdsZ0Ftb3VudAAAAAtpZHhXbGdQcmljZQABAAtpZHhXbGdGdW5kcwACAA1pZHhXbGdFY29ub215AAMADmlkeFdsZ0FjdGl2aXR5AAQAD2lkeFdsZ0FyYml0cmFnZQAFAAppZHhXbGdQb29sAAYAD2lkeFdsZ0lzc3VlVGltZQAHABFpZHhXbGdMYXN0TVRBVGltZQAIABRpZHhXbGdNYXJrZXRpbmdUb3RhbAAJABVpZHhXbGdNYXJrZXRpbmdBbUxlZnQACgAZaWR4V2xnTWFya2V0aW5nQW1BdmFpbE5vdwALABVpZHhXbGdNYXJrZXRpbmdXbGdvbGQADAAPaWR4V2xnVGVhbVRvdGFsAA0AEGlkeFdsZ1RlYW1BbUxlZnQADgAUaWR4V2xnVGVhbUFtQXZhaWxOb3cADwAQaWR4V2xnVGVhbVdsZ29sZAAQAA5pZHhXbGdBY3RUb3RhbAARAA9pZHhXbGdBY3RBbUxlZnQAEgATaWR4V2xnQWN0QW1BdmFpbE5vdwATAA9pZHhXbGdBY3RXbGdvbGQAFAAPaWR4V2xnQ3VyUGVyaW9kABUAEWlkeFdsZ0FtTGVmdFRvdGFsABYAG2lkeFdsZ0N1clBlcmlvZERpc3RyaWJ1dGlvbgAXABJpZHhXbGdMYXN0VXNlclRpbWUAGAAUaWR4V2xnVXNlckFtQXZhaWxOb3cAGQAWaWR4V2xnU0xhbmREYWlseUFtb3VudAAaABZpZHhXbGdJbnZlc3RGdW5kQW1vdW50ABsACGRhcHBSZXN0AAAAC2RhcHBTdGFraW5nAAEAC2RhcHBFY29ub215AAIAB2RhcHBXbGcABAAKZGFwcFB1enpsZQAFAA5kYXBwSW52ZXN0RnVuZAAGAQlnZXRQaWVjZXMCEnVzZXJBZGRyU3RyT3JFbXB0eQ9zdGFraW5nQ29udHJhY3QEBXByb3BzCQC1CQIJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUPc3Rha2luZ0NvbnRyYWN0AhNyZXNUeXBlc1Byb3BvcnRpb25zAgswXzBfMF8wXzBfMAIBXwoBBWFkZGVyAgNhY2MEaXRlbQkAZAIFA2FjYwkBDXBhcnNlSW50VmFsdWUBBQRpdGVtBAp0b3RhbFBvd2VyCgACJGwFBXByb3BzCgACJHMJAJADAQUCJGwKAAUkYWNjMAAACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQVhZGRlcgIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQITTGlzdCBzaXplIGV4Y2VlZHMgNgkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgQKdXNlcnNQb3dlcgkBC3ZhbHVlT3JFbHNlAgkAmggCBQ9zdGFraW5nQ29udHJhY3QJAKwCAgIUc3Rha2VkUGllY2VzQnlPd25lcl8FEnVzZXJBZGRyU3RyT3JFbXB0eQAACQDMCAIFCnRvdGFsUG93ZXIJAMwIAgUKdXNlcnNQb3dlcgUDbmlsAQtnZXRXbGdTdGF0cwQLdXNlckFkZHJPcHQJY29udHJhY3RzBnVzZHRJZBV1c2R0QmFsYW5jZUNvcnJlY3Rpb24EDGlzc3VlZEFtb3VudAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIJAJEDAgUJY29udHJhY3RzBQdkYXBwV2xnBRJ3bGdJc3N1ZWRBbW91bnRLZXkCGFdMR09MRCBpcyBub3QgaXNzdWVkIHlldAQKZWNvbm9teVVzZAkA8AcCCQCRAwIFCWNvbnRyYWN0cwULZGFwcEVjb25vbXkFBnVzZHRJZAQHcmVzdFVzZAkA8AcCCQCRAwIFCWNvbnRyYWN0cwUIZGFwcFJlc3QFBnVzZHRJZAQGd2xnVXNkCQBlAgkA8AcCCQCRAwIFCWNvbnRyYWN0cwUHZGFwcFdsZwUGdXNkdElkBRV1c2R0QmFsYW5jZUNvcnJlY3Rpb24ECXB1enpsZVVzZAkA8AcCCQCRAwIFCWNvbnRyYWN0cwUKZGFwcFB1enpsZQUGdXNkdElkBBJpbnZlc3RGdW5kQ29udHJhY3QJAJEDAgUJY29udHJhY3RzBQ5kYXBwSW52ZXN0RnVuZAQPaW52ZXN0RnVuZFRvdGFsCQBkAgkA8AcCBRJpbnZlc3RGdW5kQ29udHJhY3QFBnVzZHRJZAkBC3ZhbHVlT3JFbHNlAgkAmggCBRJpbnZlc3RGdW5kQ29udHJhY3QFEXpiSXNzdWVkQW1vdW50S2V5AAAEDXRvdGFsRnVuZHNVc2QJAGQCCQBkAgUKZWNvbm9teVVzZAUGd2xnVXNkBQ9pbnZlc3RGdW5kVG90YWwEBXdsZ0lkCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJwIAgkAkQMCBQljb250cmFjdHMFB2RhcHBXbGcCC3dsZ19hc3NldElkAhNOb3QgaW5pdGlhbGl6ZWQgeWV0BANub3cIBQlsYXN0QmxvY2sJdGltZXN0YW1wBAlpc3N1ZVRpbWUJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCCQCRAwIFCWNvbnRyYWN0cwUHZGFwcFdsZwUPd2xnSXNzdWVUaW1lS2V5Ag9Ob3QgaW5pdGlhbGl6ZWQEDm1hcmtldGluZ1RvdGFsCQBrAwUITUlMTElPTjYFDk1BUktFVElOR1NIQVJFBQJNNgQTbWFya2V0aW5nQW1vdW50TGVmdAkBC3ZhbHVlT3JFbHNlAgkAmggCCQCRAwIFCWNvbnRyYWN0cwUHZGFwcFdsZwUWbWFya2V0aW5nQW1vdW50TGVmdEtleQUObWFya2V0aW5nVG90YWwEEWxhc3RNYXJrZXRpbmdUaW1lCQELdmFsdWVPckVsc2UCCQCaCAIJAJEDAgUJY29udHJhY3RzBQdkYXBwV2xnBRRsYXN0TWFya2V0aW5nVGltZUtleQUJaXNzdWVUaW1lBA1tYXJrZXRpbmdBZGRyCQERQGV4dHJOYXRpdmUoMTA2MikBCQEFdmFsdWUBCQCdCAIJAJEDAgUJY29udHJhY3RzBQdkYXBwV2xnBRBtYXJrZXRpbmdBZGRyS2V5BBttYXJrZXRpbmdBbW91bnRBdmFpbGFibGVOb3cJAJcDAQkAzAgCCQBrAwUObWFya2V0aW5nVG90YWwJAGUCBQNub3cFEWxhc3RNYXJrZXRpbmdUaW1lBQpZRUFSTUlMTElTCQDMCAIFE21hcmtldGluZ0Ftb3VudExlZnQFA25pbAQPbWFya2V0aW5nV2xnb2xkCQDwBwIFDW1hcmtldGluZ0FkZHIFBXdsZ0lkBAl0ZWFtVG90YWwJAGsDBQhNSUxMSU9ONgUJVEVBTVNIQVJFBQJNNgQOdGVhbUFtb3VudExlZnQJAQt2YWx1ZU9yRWxzZQIJAJoIAgkAkQMCBQljb250cmFjdHMFB2RhcHBXbGcFEXRlYW1BbW91bnRMZWZ0S2V5BQl0ZWFtVG90YWwEDGxhc3RUZWFtVGltZQkBC3ZhbHVlT3JFbHNlAgkAmggCCQCRAwIFCWNvbnRyYWN0cwUHZGFwcFdsZwUPbGFzdFRlYW1UaW1lS2V5BQlpc3N1ZVRpbWUECHRlYW1BZGRyCQERQGV4dHJOYXRpdmUoMTA2MikBCQEFdmFsdWUBCQCdCAIJAJEDAgUJY29udHJhY3RzBQdkYXBwV2xnBQt0ZWFtQWRkcktleQQWdGVhbUFtb3VudEF2YWlsYWJsZU5vdwkAlwMBCQDMCAIJAGsDBQl0ZWFtVG90YWwJAGUCBQNub3cFDGxhc3RUZWFtVGltZQkAaAIAAwUKWUVBUk1JTExJUwkAzAgCBQ50ZWFtQW1vdW50TGVmdAUDbmlsBAp0ZWFtV2xnb2xkCQDwBwIFCHRlYW1BZGRyBQV3bGdJZAQIYWN0VG90YWwJAGsDBQhNSUxMSU9ONgUNQUNUSVZJVFlTSEFSRQUCTTYEDWFjdEFtb3VudExlZnQJAQt2YWx1ZU9yRWxzZQIJAJoIAgkAkQMCBQljb250cmFjdHMFB2RhcHBXbGcFEGFjdEFtb3VudExlZnRLZXkFCGFjdFRvdGFsBBJsYXN0QWN0aXZpdGllc1RpbWUJAQt2YWx1ZU9yRWxzZQIJAJoIAgkAkQMCBQljb250cmFjdHMFB2RhcHBXbGcFFWxhc3RBY3Rpdml0aWVzVGltZUtleQUJaXNzdWVUaW1lBBVhY3RBbW91bnRBdmFpbGFibGVOb3cJAJcDAQkAzAgCCQBrAwUIYWN0VG90YWwJAGUCBQNub3cFEmxhc3RBY3Rpdml0aWVzVGltZQkAaAIAAwUKWUVBUk1JTExJUwkAzAgCBQ1hY3RBbW91bnRMZWZ0BQNuaWwECWFjdFdsZ29sZAkA8AcCCQCRAwIFCWNvbnRyYWN0cwUIZGFwcFJlc3QFBXdsZ0lkBAxsYXN0VXNlclRpbWUJAQt2YWx1ZU9yRWxzZQIJAJoIAgkAkQMCBQljb250cmFjdHMFB2RhcHBXbGcJARhrZXlMYXN0Q2xhaW1lZFRpbWVCeVVzZXIBBQt1c2VyQWRkck9wdAUJaXNzdWVUaW1lBA5sYXN0VXNlclBlcmlvZAkAaQIJAGUCBQxsYXN0VXNlclRpbWUFCWlzc3VlVGltZQUKWUVBUk1JTExJUwQKbm93TGltaXRlZAkAlwMBCQDMCAIFA25vdwkAzAgCCQBkAgUJaXNzdWVUaW1lCQBoAgADBQpZRUFSTUlMTElTBQNuaWwECWN1clBlcmlvZAkAlwMBCQDMCAIJAGkCCQBlAgUDbm93BQlpc3N1ZVRpbWUFCllFQVJNSUxMSVMJAMwIAgACBQNuaWwEA2VmZgkBCWdldFBpZWNlcwIFC3VzZXJBZGRyT3B0CQCRAwIFCWNvbnRyYWN0cwULZGFwcFN0YWtpbmcEFWN1clBlcmlvZERpc3RyaWJ1dGlvbgkBFGRpc3RyaWJ1dGlvbkJ5UGVyaW9kAQUJY3VyUGVyaW9kBAp1c2VyQW1vdW50CQBrAwMJAAACBQ5sYXN0VXNlclBlcmlvZAUJY3VyUGVyaW9kCQBrAwUVY3VyUGVyaW9kRGlzdHJpYnV0aW9uCQBlAgUKbm93TGltaXRlZAUMbGFzdFVzZXJUaW1lBQpZRUFSTUlMTElTAwkAAAIFDmxhc3RVc2VyUGVyaW9kCQBlAgUJY3VyUGVyaW9kAAEJAGQCCQBrAwkBFGRpc3RyaWJ1dGlvbkJ5UGVyaW9kAQkAZQIFCWN1clBlcmlvZAABCQBlAgkAZAIFCWlzc3VlVGltZQkAaAIFCllFQVJNSUxMSVMFCWN1clBlcmlvZAUMbGFzdFVzZXJUaW1lBQpZRUFSTUlMTElTCQBrAwUVY3VyUGVyaW9kRGlzdHJpYnV0aW9uCQBlAgUKbm93TGltaXRlZAkAZAIFCWlzc3VlVGltZQkAaAIFCllFQVJNSUxMSVMFCWN1clBlcmlvZAUKWUVBUk1JTExJUwkAZAIJAGQCCQBrAwkBFGRpc3RyaWJ1dGlvbkJ5UGVyaW9kAQkAZQIFCWN1clBlcmlvZAACCQBlAgkAZAIFCWlzc3VlVGltZQkAaAIFCllFQVJNSUxMSVMJAGUCBQljdXJQZXJpb2QAAQUMbGFzdFVzZXJUaW1lBQpZRUFSTUlMTElTCQEUZGlzdHJpYnV0aW9uQnlQZXJpb2QBCQBlAgUJY3VyUGVyaW9kAAEJAGsDBRVjdXJQZXJpb2REaXN0cmlidXRpb24JAGUCBQpub3dMaW1pdGVkCQBkAgUJaXNzdWVUaW1lCQBoAgUKWUVBUk1JTExJUwUJY3VyUGVyaW9kBQpZRUFSTUlMTElTCQCRAwIFA2VmZgABCQCRAwIFA2VmZgAABBBzTGFuZERhaWx5QW1vdW50CQBrAwkAawMFFWN1clBlcmlvZERpc3RyaWJ1dGlvbgUDREFZBQpZRUFSTUlMTElTABkJAJEDAgUDZWZmAAAED2Ftb3VudExlZnRUb3RhbAkBC3ZhbHVlT3JFbHNlAgkAmggCCQCRAwIFCWNvbnRyYWN0cwUHZGFwcFdsZwUUc3Rha2Vyc0Ftb3VudExlZnRLZXkAAAkAzAgCBQxpc3N1ZWRBbW91bnQJAMwIAgkAawMFDXRvdGFsRnVuZHNVc2QFAk04BQxpc3N1ZWRBbW91bnQJAMwIAgUNdG90YWxGdW5kc1VzZAkAzAgCBQplY29ub215VXNkCQDMCAIFB3Jlc3RVc2QJAMwIAgUGd2xnVXNkCQDMCAIFCXB1enpsZVVzZAkAzAgCBQlpc3N1ZVRpbWUJAMwIAgURbGFzdE1hcmtldGluZ1RpbWUJAMwIAgUObWFya2V0aW5nVG90YWwJAMwIAgUTbWFya2V0aW5nQW1vdW50TGVmdAkAzAgCBRttYXJrZXRpbmdBbW91bnRBdmFpbGFibGVOb3cJAMwIAgUPbWFya2V0aW5nV2xnb2xkCQDMCAIFCXRlYW1Ub3RhbAkAzAgCBQ50ZWFtQW1vdW50TGVmdAkAzAgCBRZ0ZWFtQW1vdW50QXZhaWxhYmxlTm93CQDMCAIFCnRlYW1XbGdvbGQJAMwIAgUIYWN0VG90YWwJAMwIAgUNYWN0QW1vdW50TGVmdAkAzAgCBRVhY3RBbW91bnRBdmFpbGFibGVOb3cJAMwIAgUJYWN0V2xnb2xkCQDMCAIFCWN1clBlcmlvZAkAzAgCBQ9hbW91bnRMZWZ0VG90YWwJAMwIAgUVY3VyUGVyaW9kRGlzdHJpYnV0aW9uCQDMCAIFDGxhc3RVc2VyVGltZQkAzAgCBQp1c2VyQW1vdW50CQDMCAIFEHNMYW5kRGFpbHlBbW91bnQJAMwIAgUPaW52ZXN0RnVuZFRvdGFsBQNuaWwBDWtleUR1Y2tIZWFsdGgBC2R1Y2tBc3NldElkCQCsAgICC2R1Y2tIZWFsdGhfBQtkdWNrQXNzZXRJZAEMa2V5RHVja0NoYXJzAQtkdWNrQXNzZXRJZAkArAICAgpkdWNrQ2hhcnNfBQtkdWNrQXNzZXRJZAEJa2V5RHVja1hQAQtkdWNrQXNzZXRJZAkArAICAgdkdWNrWFBfBQtkdWNrQXNzZXRJZAEMa2V5RHVja0xldmVsAQtkdWNrQXNzZXRJZAkArAICAgpkdWNrTGV2ZWxfBQtkdWNrQXNzZXRJZAERa2V5RHVja0ZyZWVQb2ludHMBC2R1Y2tBc3NldElkCQCsAgICD2R1Y2tGcmVlUG9pbnRzXwULZHVja0Fzc2V0SWQBEGtleUR1Y2tFcXVpcG1lbnQBC2R1Y2tBc3NldElkCQCsAgICDmR1Y2tFcXVpcG1lbnRfBQtkdWNrQXNzZXRJZAEJa2V5VXNlclhQAQRhZGRyCQCsAgICB3VzZXJYUF8FBGFkZHIBDGtleVVzZXJMZXZlbAEEYWRkcgkArAICAgp1c2VyTGV2ZWxfBQRhZGRyARFrZXlVc2VyRnJlZVBvaW50cwEEYWRkcgkArAICAg91c2VyRnJlZVBvaW50c18FBGFkZHIBCW1heEhlYWx0aAEFbGV2ZWwJAGQCAGQFBWxldmVsAApBUlRQUkVTQUxFAgdQUkVTQUxFAApBUlRPTkJPQVJEAgdPTkJPQVJEAAZOVU1SRVMABgAPREFJTFlSRVNCWVBJRUNFAID40gEACURBWU1JTExJUwCAuJkpAAxXSE1VTFRJUExJRVIAgMivoCUAEFJFU09VUkNFUFJJQ0VNSU4A1bUCAA1FU01BWFBBQ0tBR0VTAAMACUVTQlVZQ09FRgAEAApFU1NFTExDT0VGAAoACUNPRUZGMk1BVACAreIEABBwcm9kdWN0aW9uTWF0cml4CQDMCAICJThfOF84XzE3XzE3XzQyXzEyXzBfMzBfMCwwLDAsMCwwLDAsMF8JAMwIAgIlOF84XzhfMTdfMTdfNDJfMjRfMF82MF8wLDAsNSwyLDAsMCwwXwkAzAgCAic4XzhfOF8xN18xN180Ml8zNl8wXzEyMF8wLDAsMTAsNCwwLDAsMF8JAMwIAgIpOF8xOV8xOV84XzI3XzE5XzI2XzFfMjBfMCwwLDAsMCwwLDAsMF8wMDEJAMwIAgIpOF8xOV8xOV84XzI3XzE5XzUyXzFfNDBfMCwwLDAsMCwwLDAsMF8wMDEJAMwIAgIpOF8xOV8xOV84XzI3XzE5Xzc4XzFfODBfMCwwLDAsMCwwLDAsMF8wMDEJAMwIAgIiOF84XzhfOF84XzYwXzEzXzJfMl8wLDAsMCwwLDAsMCwwXwkAzAgCAiI4XzhfOF84XzhfNjBfMjZfMl80XzAsMCwwLDAsMCwwLDBfCQDMCAICIjhfOF84XzhfOF82MF8zOV8yXzhfMCwwLDAsMCwwLDAsMF8JAMwIAgIpMzBfMzBfM18xN18xN18zXzMwXzNfMzBfMCwwLDAsMCwwLDAsMF8xMTEJAMwIAgIpMzBfMzBfM18xN18xN18zXzYwXzNfNTBfMCwwLDAsMCwwLDAsMF8xMTEJAMwIAgIpMzBfMzBfM18xN18xN18zXzkwXzNfNzBfMCwwLDAsMCwwLDAsMF8xMTEJAMwIAgIrMThfMThfMTBfMThfMThfMThfMTFfNF8zMF8wLDAsMCwwLDAsMCwwXzIwMQkAzAgCAisxOF8xOF8xMF8xOF8xOF8xOF8yMl80XzUwXzAsMCwwLDAsMCwwLDBfMjAxCQDMCAICKzE4XzE4XzEwXzE4XzE4XzE4XzMzXzRfNzBfMCwwLDAsMCwwLDAsMF8yMDEFA25pbAAJcklkeENvZWZmAAYADlBST0RVQ1RQS0dTSVpFAAoBEWtleUxhc3RUeElkQnlVc2VyAQRhZGRyCQCsAgICD2xhc3RUeElkQnlVc2VyXwUEYWRkcgEVa2V5TGFuZEFzc2V0SWRUb093bmVyAQdhc3NldElkCQCsAgICCW5mdE93bmVyXwUHYXNzZXRJZAEaa2V5TGFuZEFzc2V0SWRUb0N1c3RvbU5hbWUBB2Fzc2V0SWQJAKwCAgIYbGFuZEN1c3RvbU5hbWVCeUFzc2V0SWRfBQdhc3NldElkARZrZXlTdGFrZWRUaW1lQnlBc3NldElkAQdhc3NldElkCQCsAgICC3N0YWtlZFRpbWVfBQdhc3NldElkARZrZXlJbmZyYUxldmVsQnlBc3NldElkAQdhc3NldElkCQCsAgICC2luZnJhTGV2ZWxfBQdhc3NldElkASBrZXlMYW5kQXJ0U3RhdHVzQnlUeXBlQW5kQXNzZXRJZAIEdHlwZQdhc3NldElkCQC5CQIJAMwIAgINbGFuZEFydFN0YXR1cwkAzAgCBQR0eXBlCQDMCAIFB2Fzc2V0SWQFA25pbAIBXwESa2V5V2FyZWhvdXNlQnlMYW5kAQtsYW5kQXNzZXRJZAkArAICAgp3YXJlSG91c2VfBQtsYW5kQXNzZXRJZAEaa2V5RHVja0Fzc2V0SWRUb0N1c3RvbU5hbWUBB2Fzc2V0SWQJAKwCAgIYZHVja0N1c3RvbU5hbWVCeUFzc2V0SWRfBQdhc3NldElkARZrZXlBZGRyZXNzVG9DdXN0b21OYW1lAQRhZGRyCQCsAgICGGFjY291bnRDdXN0b21OYW1lQnlBZGRyXwUEYWRkcgEPa2V5QWRkcmVzc1JlZkJ5AQRhZGRyCQCsAgICCWFjY1JlZkJ5XwUEYWRkcgEca2V5T25ib2FyZEFydER1Y2tBY3RpdmF0ZWRCeQEEYWRkcgkArAICAhpvbmJvYXJkQXJ0QWN0aXZhdGVkRHVja0J5XwUEYWRkcgETa2V5QWRkcmVzc1JlZmVycmFscwEEYWRkcgkArAICAg1hY2NSZWZlcnJhbHNfBQRhZGRyARBrZXlEdWNrSWRUb093bmVyAQdhc3NldElkCQCsAgICCmR1Y2tPd25lcl8FB2Fzc2V0SWQBFGtleVN0YWtlZER1Y2tCeU93bmVyAQlvd25lckFkZHIJAKwCAgISc3Rha2VkRHVja0J5T3duZXJfBQlvd25lckFkZHIBD2tleUR1Y2tMb2NhdGlvbgELZHVja0Fzc2V0SWQJAKwCAgINZHVja0xvY2F0aW9uXwULZHVja0Fzc2V0SWQBCmtleUJsb2NrZWQAAhBjb250cmFjdHNCbG9ja2VkAQ5rZXlPcmRlckJ5TGFuZAELbGFuZEFzc2V0SWQJAKwCAgIKbGFuZE9yZGVyXwULbGFuZEFzc2V0SWQBDmtleUVzV2FyZWhvdXNlAAIaZW1lcmdlbmN5V2FyZWhvdXNlUHJvZHVjdHMBFWtleVRvdXJTdGF0aWNEYXRhQnlJZAEDdElkCQCsAgICFiVzJWRfX3RvdXJTdGF0aWNEYXRhX18JAKQDAQUDdElkARZrZXlUb3VyRHluYW1pY0RhdGFCeUlkAQN0SWQJAKwCAgIXJXMlZF9fdG91ckR5bmFtaWNEYXRhX18JAKQDAQUDdElkARdrZXlBbGxSZWdpc3RyYW5kc0J5VG91cgEDdElkCQCsAgICFiVzJWRfX2FsbFJlZ2lzdHJhbmRzX18JAKQDAQUDdElkABN0U3RhdGljUmVnaXN0ZXJDb3N0AAIAEnRTdGF0aWNBdHRlbXB0Q29zdAADAAx0U3RhdGljU3RhcnQABQAKdFN0YXRpY0VuZAAGAA50RHluYW1pY1N0YXR1cwABAA90RHluYW1pY1dpbkR1Y2sAAgARdER5bmFtaWNXaW5SZXN1bHQAAwAVdER5bmFtaWNUb3RhbFJlZ0NvdW50AAQAFXREeW5hbWljVG90YWxBdHRlbXB0cwAFARJnZXRSZWNpcGVNYXRlcmlhbHMBBnJlY2lwZQkAaAIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQZyZWNpcGUFCXJJZHhDb2VmZgUJQ09FRkYyTUFUAAVjaGFpbgkAyQECCQDKAQIIBQR0aGlzBWJ5dGVzAAEAAQALdXNkdEFzc2V0SWQEByRtYXRjaDAFBWNoYWluAwkAAAIBAVcFByRtYXRjaDABIITaerIIAz9O0bvKju6Lk7zJgt0LXfoHlqjUI/moD/+5AwkAAAIBAVQFByRtYXRjaDABIFWx2J9yh4Lv5eNbjawFq2XemkOhLxa7BfMat4el8cUYCQACAQINVW5rbm93biBjaGFpbgAVZGVmYXVsdFJlc3RBZGRyZXNzU3RyBAckbWF0Y2gwBQVjaGFpbgMJAAACAQFXBQckbWF0Y2gwAiMzUFFDdXZGYnZoNExrUFVucm5VMXozam5iQTFwOW0zV05odgMJAAACAQFUBQckbWF0Y2gwAiMzTXVta0dHenRDS0FYcFdEcXhrZGRvZnFYU1VicVFrdlNKeQkAAgECDVVua25vd24gY2hhaW4AEUluZnJhVXBncmFkZUNvc3RTBAckbWF0Y2gwBQVjaGFpbgMJAAACAQFXBQckbWF0Y2gwAIDIr6AlAwkAAAIBAVQFByRtYXRjaDAAgMLXLwkAAgECDVVua25vd24gY2hhaW4AA1NFUAICX18ABU1VTFQ2AMCEPQAFTVVMVDgAgMLXLwAFU1NJWkUAGQAFTVNJWkUAZAAFTFNJWkUA4QEABlhMU0laRQCQAwAHWFhMU0laRQDxBAEPZ2V0U3RyaW5nT3JGYWlsAgdhZGRyZXNzA2tleQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFB2FkZHJlc3MFA2tleQkAuQkCCQDMCAICCm1hbmRhdG9yeSAJAMwIAgkApQgBBQdhZGRyZXNzCQDMCAICAS4JAMwIAgUDa2V5CQDMCAICDyBpcyBub3QgZGVmaW5lZAUDbmlsAgAAEUlkeENmZ1N0YWtpbmdEYXBwAAEAEUlkeENmZ0Vjb25vbXlEYXBwAAIAFElkeENmZ0dvdmVybmFuY2VEYXBwAAMADUlkeENmZ1dsZ0RhcHAABAAUSWR4Q2ZnUHV6emxlUG9vbERhcHAABQAUSWR4Q2ZnSW52ZXN0RnVuZERhcHAABgAUSWR4Q2ZnVG91cm5hbWVudERhcHAABwEKa2V5UmVzdENmZwACDiVzX19yZXN0Q29uZmlnAQ5rZXlSZXN0QWRkcmVzcwACDCVzX19yZXN0QWRkcgERcmVhZFJlc3RDZmdPckZhaWwBBHJlc3QJALwJAgkBD2dldFN0cmluZ09yRmFpbAIFBHJlc3QJAQprZXlSZXN0Q2ZnAAUDU0VQARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCB3Jlc3RDZmcDaWR4CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCBQdyZXN0Q2ZnBQNpZHgJAKwCAgIqUmVzdCBjZmcgZG9lc24ndCBjb250YWluIGFkZHJlc3MgYXQgaW5kZXggCQCkAwEFA2lkeAAMcmVzdENvbnRyYWN0CQERQGV4dHJOYXRpdmUoMTA2MikBCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQ5rZXlSZXN0QWRkcmVzcwAFFWRlZmF1bHRSZXN0QWRkcmVzc1N0cgAHcmVzdENmZwkBEXJlYWRSZXN0Q2ZnT3JGYWlsAQUMcmVzdENvbnRyYWN0AA9zdGFraW5nQ29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQdyZXN0Q2ZnBRFJZHhDZmdTdGFraW5nRGFwcAAPZWNvbm9teUNvbnRyYWN0CQEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgUHcmVzdENmZwURSWR4Q2ZnRWNvbm9teURhcHAAC2dvdkNvbnRyYWN0CQEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgUHcmVzdENmZwUUSWR4Q2ZnR292ZXJuYW5jZURhcHAAC3dsZ0NvbnRyYWN0CQEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgUHcmVzdENmZwUNSWR4Q2ZnV2xnRGFwcAAScHV6emxlUG9vbENvbnRyYWN0CQEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgUHcmVzdENmZwUUSWR4Q2ZnUHV6emxlUG9vbERhcHAAEmludmVzdEZ1bmRDb250cmFjdAkBGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIFB3Jlc3RDZmcFFElkeENmZ0ludmVzdEZ1bmREYXBwABJ0b3VybmFtZW50Q29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQdyZXN0Q2ZnBRRJZHhDZmdUb3VybmFtZW50RGFwcAAKcmVjTGFuZE51bQAAAAtyZWNMYW5kU2l6ZQABAAtyZWNUZXJyYWlucwACAAxyZWNDb250aW5lbnQAAwANd2xnQXNzZXRJZEtleQILd2xnX2Fzc2V0SWQACndsZ0Fzc2V0SWQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnAgCBQt3bGdDb250cmFjdAUNd2xnQXNzZXRJZEtleQITTm90IGluaXRpYWxpemVkIHlldAAKSWR4RWZmVXNlcgABARFrZXlSZXNQcm9wb3J0aW9ucwACE3Jlc1R5cGVzUHJvcG9ydGlvbnMBFWtleVN0YWtlZExhbmRzQnlPd25lcgEJb3duZXJBZGRyCQCsAgICE3N0YWtlZExhbmRzQnlPd25lcl8FCW93bmVyQWRkcgEWa2V5U3Rha2VkUGllY2VzQnlPd25lcgEJb3duZXJBZGRyCQCsAgICFHN0YWtlZFBpZWNlc0J5T3duZXJfBQlvd25lckFkZHIBCGFzU3RyaW5nAQF2BAckbWF0Y2gwBQF2AwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAUBcwkAAgECGGZhaWwgdG8gY2FzdCBpbnRvIFN0cmluZwEFYXNJbnQBAXYEByRtYXRjaDAFAXYDCQABAgUHJG1hdGNoMAIDSW50BAFuBQckbWF0Y2gwBQFuCQACAQIVZmFpbCB0byBjYXN0IGludG8gSW50AQlhc0Jvb2xlYW4BAXYEByRtYXRjaDAFAXYDCQABAgUHJG1hdGNoMAIHQm9vbGVhbgQBcwUHJG1hdGNoMAUBcwkAAgECGWZhaWwgdG8gY2FzdCBpbnRvIEJvb2xlYW4BD251bVBpZWNlc0J5U2l6ZQEIbGFuZFNpemUEByRtYXRjaDAFCGxhbmRTaXplAwkAAAICAVMFByRtYXRjaDAFBVNTSVpFAwkAAAICAU0FByRtYXRjaDAFBU1TSVpFAwkAAAICAUwFByRtYXRjaDAFBUxTSVpFAwkAAAICAlhMBQckbWF0Y2gwBQZYTFNJWkUDCQAAAgIDWFhMBQckbWF0Y2gwBQdYWExTSVpFCQACAQIRVW5rbm93biBsYW5kIHNpemUBDmdldFZvdGluZ1Bvd2VyARJ1c2VyQWRkclN0ck9yRW1wdHkEBXByb3BzCQC1CQIJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUPc3Rha2luZ0NvbnRyYWN0CQERa2V5UmVzUHJvcG9ydGlvbnMAAgswXzBfMF8wXzBfMAIBXwoBBWFkZGVyAgNhY2MEaXRlbQkAZAIFA2FjYwkBDXBhcnNlSW50VmFsdWUBBQRpdGVtBAp0b3RhbFBvd2VyCgACJGwFBXByb3BzCgACJHMJAJADAQUCJGwKAAUkYWNjMAAACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQVhZGRlcgIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQITTGlzdCBzaXplIGV4Y2VlZHMgNgkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgQKdXNlcnNQb3dlcgkBC3ZhbHVlT3JFbHNlAgkAmggCBQ9zdGFraW5nQ29udHJhY3QJARZrZXlTdGFrZWRQaWVjZXNCeU93bmVyAQUSdXNlckFkZHJTdHJPckVtcHR5AAAJAMwIAgUKdG90YWxQb3dlcgkAzAgCBQp1c2Vyc1Bvd2VyBQNuaWwADVVTRFRQUklaRVBBUlQAoMIeARJhc0xpc3RJbnRDb21wYWN0ZWQBA3ZhbAQHJG1hdGNoMAUDdmFsAwkAAQIFByRtYXRjaDACCUxpc3RbQW55XQQKdmFsQW55TGlzdAUHJG1hdGNoMAMJAQIhPQIJAJADAQUKdmFsQW55TGlzdAUGTlVNUkVTCQACAQkArAICAg5BcnJheSBzaXplIGlzIAkApAMBCQCQAwEFCnZhbEFueUxpc3QKAQRjb252AgNhY2MEaXRlbQQHJG1hdGNoMQUEaXRlbQMJAAECBQckbWF0Y2gxAgNJbnQEAml0BQckbWF0Y2gxCQDNCAIFA2FjYwkApAMBBQJpdAkAAgECFExpc3QgdHlwZSBpcyBub3QgSW50BAFyCgACJGwFCnZhbEFueUxpc3QKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBBGNvbnYCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDYJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYJALkJAgUBcgIBXwkAAgECFmZhaWwgdG8gY2FzdCBpbnRvIExpc3QBDWFzU3BsaXRSZXN1bHQBA3ZhbAQHJG1hdGNoMAUDdmFsAwkAAQIFByRtYXRjaDACFihMaXN0W0FueV0sIExpc3RbQW55XSkEAnQyBQckbWF0Y2gwCQCUCgIJARJhc0xpc3RJbnRDb21wYWN0ZWQBCAUCdDICXzEJARJhc0xpc3RJbnRDb21wYWN0ZWQBCAUCdDICXzIJAAIBAh5mYWlsIHRvIGNhc3QgaW50byAoTGlzdCwgTGlzdCkBDndhbGxldEludGVybmFsAQ51c2VyQWRkcmVzc09wdAQEYWRkcgkApggBBQ51c2VyQWRkcmVzc09wdAQHYmFsYW5jZQMJAQlpc0RlZmluZWQBBQRhZGRyCQDvBwEJAQV2YWx1ZQEFBGFkZHIJAQ5CYWxhbmNlRGV0YWlscwQAAAAAAAAAAAQLdXNkdEJhbGFuY2UDCQEJaXNEZWZpbmVkAQUEYWRkcgkA8AcCCQEFdmFsdWUBBQRhZGRyBQt1c2R0QXNzZXRJZAAABA13bGdvbGRCYWxhbmNlAwkBCWlzRGVmaW5lZAEFBGFkZHIJAPAHAgkBBXZhbHVlAQUEYWRkcgUKd2xnQXNzZXRJZAAABApjdXN0b21OYW1lCQELdmFsdWVPckVsc2UCCQCdCAIFD3N0YWtpbmdDb250cmFjdAkBFmtleUFkZHJlc3NUb0N1c3RvbU5hbWUBBQ51c2VyQWRkcmVzc09wdAUOdXNlckFkZHJlc3NPcHQECHJlZkJ5S2V5CQEPa2V5QWRkcmVzc1JlZkJ5AQUOdXNlckFkZHJlc3NPcHQEBXJlZkJ5CQCdCAIFD3N0YWtpbmdDb250cmFjdAUIcmVmQnlLZXkEBHJlZnMJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUPc3Rha2luZ0NvbnRyYWN0CQETa2V5QWRkcmVzc1JlZmVycmFscwEFDnVzZXJBZGRyZXNzT3B0AgAECGxhc3RUeElkCQELdmFsdWVPckVsc2UCCQCdCAIFD3N0YWtpbmdDb250cmFjdAkBEWtleUxhc3RUeElkQnlVc2VyAQUOdXNlckFkZHJlc3NPcHQCAAQGcGllY2VzCQCRAwIJAQ5nZXRWb3RpbmdQb3dlcgEFDnVzZXJBZGRyZXNzT3B0BQpJZHhFZmZVc2VyBAJ4cAkBC3ZhbHVlT3JFbHNlAgkAmggCBQ9zdGFraW5nQ29udHJhY3QJAQlrZXlVc2VyWFABBQ51c2VyQWRkcmVzc09wdAAABANsdmwJAQt2YWx1ZU9yRWxzZQIJAJoIAgUPc3Rha2luZ0NvbnRyYWN0CQEMa2V5VXNlckxldmVsAQUOdXNlckFkZHJlc3NPcHQAAAQKZnJlZVBvaW50cwkBC3ZhbHVlT3JFbHNlAgkAmggCBQ9zdGFraW5nQ29udHJhY3QJARFrZXlVc2VyRnJlZVBvaW50cwEFDnVzZXJBZGRyZXNzT3B0AAAEB29uYm9hcmQDCQEJaXNEZWZpbmVkAQUFcmVmQnkJAKwCAgUKQVJUT05CT0FSRAMDCQEJaXNEZWZpbmVkAQUEYWRkcgkBCWlzRGVmaW5lZAEJAJ0IAgUPc3Rha2luZ0NvbnRyYWN0CQEca2V5T25ib2FyZEFydER1Y2tBY3RpdmF0ZWRCeQEFDnVzZXJBZGRyZXNzT3B0BwICOjECAjowAgAJAMwIAgkArAICAhIlcyVzX19jdXN0b21OYW1lX18FCmN1c3RvbU5hbWUJAMwIAgkArAICAhIlcyVzX19yZWZlcnJlZEJ5X18JAQt2YWx1ZU9yRWxzZQIFBXJlZkJ5AgAJAMwIAgkArAICAhElcyVzX19yZWZlcnJhbHNfXwUEcmVmcwkAzAgCCQCsAgICECVzJXNfX2xhc3RUeElkX18FCGxhc3RUeElkCQDMCAIJAKwCAgIUJXMlZF9fd2F2ZXNCYWxhbmNlX18JAKQDAQgFB2JhbGFuY2UJYXZhaWxhYmxlCQDMCAIJAKwCAgIVJXMlZF9fd2xnb2xkQmFsYW5jZV9fCQCkAwEFDXdsZ29sZEJhbGFuY2UJAMwIAgkArAICAhMlcyVkX191c2R0QmFsYW5jZV9fCQCkAwEFC3VzZHRCYWxhbmNlCQDMCAIJAKwCAgIUJXMlZF9fc3Rha2VkUGllY2VzX18JAKQDAQUGcGllY2VzCQDMCAIJAKwCAgIRJXMlZF9fY3VycmVudFhwX18JAKQDAQUCeHAJAMwIAgkArAICAhIlcyVkX19jdXJyZW50THZsX18JAKQDAQUDbHZsCQDMCAIJAKwCAgIaJXMlZF9fcG9pbnRzVG9EaXN0cmlidXRlX18JAKQDAQUKZnJlZVBvaW50cwkAzAgCCQCsAgICFyVzJXNfX3dhbGxldEFydGVmYWN0c19fBQdvbmJvYXJkBQNuaWwBDGFwcGx5Qm9udXNlcwILbGFuZEFzc2V0SWQGcGllY2VzBAppbmZyYUxldmVsCQELdmFsdWVPckVsc2UCCQCaCAIFD3N0YWtpbmdDb250cmFjdAkBFmtleUluZnJhTGV2ZWxCeUFzc2V0SWQBBQtsYW5kQXNzZXRJZAAABAlhcnRQaWVjZXMJAQt2YWx1ZU9yRWxzZQIJAJoIAgUPc3Rha2luZ0NvbnRyYWN0CQEga2V5TGFuZEFydFN0YXR1c0J5VHlwZUFuZEFzc2V0SWQCBQpBUlRQUkVTQUxFBQtsYW5kQXNzZXRJZAAABARhZGQ2CQBpAgUKaW5mcmFMZXZlbAAGBARhZGQ3CQBpAgUKaW5mcmFMZXZlbAAHCQCVCgMFCmluZnJhTGV2ZWwFCWFydFBpZWNlcwkAZAIJAGQCBQ9EQUlMWVJFU0JZUElFQ0UJAGsDBQ9EQUlMWVJFU0JZUElFQ0UJAGQCCQBkAgUKaW5mcmFMZXZlbAUEYWRkNgkAaAIAAgUEYWRkNwAFCQBrAwUPREFJTFlSRVNCWVBJRUNFBQlhcnRQaWVjZXMJAGgCBQZwaWVjZXMABQEXZ2V0V2FyZWhvdXNlVG90YWxWb2x1bWUBCXZvbFByZWZpeAQFcGFydHMJALUJAgUJdm9sUHJlZml4AgFfCQBoAgkAaAIFDFdITVVMVElQTElFUgkAZAIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQVwYXJ0cwABAAEJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQVwYXJ0cwAAAQxnZXRXYXJlaG91c2UDBXdoS2V5CWxhbmRJbmRleAppbmZyYUxldmVsBAl2b2xQcmVmaXgJAKwCAgkArAICCQCkAwEFCWxhbmRJbmRleAIBXwkApAMBBQppbmZyYUxldmVsBAR0b3RTCQCkAwEJARdnZXRXYXJlaG91c2VUb3RhbFZvbHVtZQEFCXZvbFByZWZpeAQFd2hTdHIJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUPc3Rha2luZ0NvbnRyYWN0BQV3aEtleQkArAICCQCsAgIJAKwCAgkArAICBQl2b2xQcmVmaXgCHjowXzBfMF8wXzBfMDowXzBfMF8wXzBfMDo6MF8wXwUEdG90UwIBXwUEdG90UwkAtQkCBQV3aFN0cgIBOgENZHVja0luZm9UdXBsZQELZHVja0Fzc2V0SWQEBW1heEhQCQEJbWF4SGVhbHRoAQkBC3ZhbHVlT3JFbHNlAgkAmggCBQ9zdGFraW5nQ29udHJhY3QJAQxrZXlEdWNrTGV2ZWwBBQtkdWNrQXNzZXRJZAAACQCXCgUJAQt2YWx1ZU9yRWxzZQIJAJoIAgUPc3Rha2luZ0NvbnRyYWN0CQEWa2V5U3Rha2VkVGltZUJ5QXNzZXRJZAEFC2R1Y2tBc3NldElkAP///////////wEICQEFdmFsdWUBCQDsBwEJANkEAQULZHVja0Fzc2V0SWQEbmFtZQkBC3ZhbHVlT3JFbHNlAgkAnQgCBQ9zdGFraW5nQ29udHJhY3QJAQ9rZXlEdWNrTG9jYXRpb24BBQtkdWNrQXNzZXRJZAIACQELdmFsdWVPckVsc2UCCQCaCAIFD3N0YWtpbmdDb250cmFjdAkBDWtleUR1Y2tIZWFsdGgBBQtkdWNrQXNzZXRJZAUFbWF4SFAJAQhhc1N0cmluZwEJAPwHBAUPc3Rha2luZ0NvbnRyYWN0AhNnZXRCYWNrcGFja1JFQURPTkxZCQDMCAIFC2R1Y2tBc3NldElkBQNuaWwFA25pbAENZHVja0luZm9BcnJheQMLZHVja0Fzc2V0SWQFb3duZXIHZHVja0luZgQKY3VzdG9tTmFtZQkBC3ZhbHVlT3JFbHNlAgkAnQgCBQ9zdGFraW5nQ29udHJhY3QJARprZXlEdWNrQXNzZXRJZFRvQ3VzdG9tTmFtZQEFC2R1Y2tBc3NldElkCAUHZHVja0luZgJfMgQFY2hhcnMJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUPc3Rha2luZ0NvbnRyYWN0CQEMa2V5RHVja0NoYXJzAQULZHVja0Fzc2V0SWQCCTBfMF8wXzBfMAQCeHAJAQt2YWx1ZU9yRWxzZQIJAJoIAgUPc3Rha2luZ0NvbnRyYWN0CQEJa2V5RHVja1hQAQULZHVja0Fzc2V0SWQAAAQDbHZsCQELdmFsdWVPckVsc2UCCQCaCAIFD3N0YWtpbmdDb250cmFjdAkBDGtleUR1Y2tMZXZlbAEFC2R1Y2tBc3NldElkAAAECmZyZWVQb2ludHMJAQt2YWx1ZU9yRWxzZQIJAJoIAgUPc3Rha2luZ0NvbnRyYWN0CQERa2V5RHVja0ZyZWVQb2ludHMBBQtkdWNrQXNzZXRJZAAABAZlcXVpcG0JAQt2YWx1ZU9yRWxzZQIJAJ0IAgUPc3Rha2luZ0NvbnRyYWN0CQEQa2V5RHVja0VxdWlwbWVudAEFC2R1Y2tBc3NldElkAgs7XztfO187XztfOwkAzAgCCQCsAgICDyVzJXNfX2Fzc2V0SWRfXwULZHVja0Fzc2V0SWQJAMwIAgkArAICAg0lcyVzX19vd25lcl9fBQVvd25lcgkAzAgCCQCsAgICEiVzJXNfX2N1c3RvbU5hbWVfXwUKY3VzdG9tTmFtZQkAzAgCCQCsAgICEiVzJWRfX3N0YWtlZFRpbWVfXwkApAMBCAUHZHVja0luZgJfMQkAzAgCCQCsAgICDCVzJXNfX25hbWVfXwgFB2R1Y2tJbmYCXzIJAMwIAgkArAICAhAlcyVzX19sb2NhdGlvbl9fCAUHZHVja0luZgJfMwkAzAgCCQCsAgICDiVzJWRfX2hlYWx0aF9fCQCkAwEIBQdkdWNrSW5mAl80CQDMCAIJAKwCAgIRJXMlZF9fbWF4SGVhbHRoX18JAKQDAQkBCW1heEhlYWx0aAEFA2x2bAkAzAgCCQCsAgICFyVzJXNfX2NoYXJhY3RlcmlzdGljc19fBQVjaGFycwkAzAgCCQCsAgICESVzJWRfX2N1cnJlbnRYcF9fCQCkAwEFAnhwCQDMCAIJAKwCAgISJXMlZF9fY3VycmVudEx2bF9fCQCkAwEFA2x2bAkAzAgCCQCsAgICGiVzJWRfX3BvaW50c1RvRGlzdHJpYnV0ZV9fCQCkAwEFCmZyZWVQb2ludHMJAMwIAgkArAICAhAlcyVzX19iYWNrUGFja19fCAUHZHVja0luZgJfNQkAzAgCCQCsAgICESVzJXNfX2VxdWlwbWVudF9fBQZlcXVpcG0FA25pbAENbGFuZEluZm9BcnJheQMLbGFuZEFzc2V0SWQFb3duZXIKc3Rha2VkVGltZQMJAAACBQtsYW5kQXNzZXRJZAIACQACAQIXbGFuZEFzc2V0SWQgaXMgcmVxdWlyZWQEAWEJAQV2YWx1ZQEJAOwHAQkA2QQBBQtsYW5kQXNzZXRJZAQBZAkAtQkCCAUBYQtkZXNjcmlwdGlvbgIBXwQHbGFuZE51bQMJAGYCCAUBYQhxdWFudGl0eQAACQCRAwIFAWQFCnJlY0xhbmROdW0JAKwCAgIBLQkAkQMCBQFkBQpyZWNMYW5kTnVtBAZwaWVjZXMJAQ9udW1QaWVjZXNCeVNpemUBCQCRAwIFAWQFC3JlY0xhbmRTaXplBAxwcm9kdWN0aXZpdHkJAQxhcHBseUJvbnVzZXMCBQtsYW5kQXNzZXRJZAUGcGllY2VzBAlkZWx0YVRpbWUJAGUCCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUKc3Rha2VkVGltZQQIYXZhaWxSZXMDCQBmAgUKc3Rha2VkVGltZQAACQBrAwUJZGVsdGFUaW1lCQBoAggFDHByb2R1Y3Rpdml0eQJfMwUGcGllY2VzBQlEQVlNSUxMSVMAAAQHbmVlZE1hdAkAawMFEUluZnJhVXBncmFkZUNvc3RTCQBoAgUGcGllY2VzCQBkAggFDHByb2R1Y3Rpdml0eQJfMQABBQVTU0laRQQOZ2xvYmFsQW5kTG9jYWwDCQBmAgUKc3Rha2VkVGltZQAACQENYXNTcGxpdFJlc3VsdAEJAPwHBAUPc3Rha2luZ0NvbnRyYWN0AiRzcGxpdEJ5R2xvYmFsQW5kTG9jYWxXZWlnaHRzUkVBRE9OTFkJAMwIAgUHbmVlZE1hdAkAzAgCBQhhdmFpbFJlcwkAzAgCCQCRAwIFAWQFC3JlY1RlcnJhaW5zBQNuaWwFA25pbAkAlAoCCQESYXNMaXN0SW50Q29tcGFjdGVkAQkA/AcEBQ9zdGFraW5nQ29udHJhY3QCHHNwbGl0QnlHbG9iYWxXZWlnaHRzUkVBRE9OTFkJAMwIAgUHbmVlZE1hdAUDbmlsBQNuaWwCAAQKY3VzdG9tTmFtZQkBC3ZhbHVlT3JFbHNlAgkAnQgCBQ9zdGFraW5nQ29udHJhY3QJARprZXlMYW5kQXNzZXRJZFRvQ3VzdG9tTmFtZQEFC2xhbmRBc3NldElkCQCsAgIJAKwCAgkAkQMCBQFkBQxyZWNDb250aW5lbnQCAS0JAJEDAgUBZAUKcmVjTGFuZE51bQkAzAgCCQCsAgICDyVzJXNfX2Fzc2V0SWRfXwULbGFuZEFzc2V0SWQJAMwIAgkArAICAg0lcyVzX19vd25lcl9fBQVvd25lcgkAzAgCCQCsAgICEiVzJXNfX2N1c3RvbU5hbWVfXwUKY3VzdG9tTmFtZQkAzAgCCQCsAgICEiVzJWRfX3N0YWtlZFRpbWVfXwkApAMBBQpzdGFrZWRUaW1lCQDMCAIJAKwCAgITJXMlc19fZGVzY3JpcHRpb25fXwkAuQkCCQDMCAIFB2xhbmROdW0JAMwIAgkAkQMCBQFkBQtyZWNMYW5kU2l6ZQkAzAgCCQCRAwIFAWQFC3JlY1RlcnJhaW5zCQDMCAIJAJEDAgUBZAUMcmVjQ29udGluZW50BQNuaWwCAV8JAMwIAgkArAICAhIlcyVkX19pbmZyYUxldmVsX18JAKQDAQgFDHByb2R1Y3Rpdml0eQJfMQkAzAgCCQCsAgICFiVzJXNfX2F2YWlsUmVzQnlUeXBlX18IBQ5nbG9iYWxBbmRMb2NhbAJfMgkAzAgCCQCsAgICFSVzJWRfX2F2YWlsUmVzVG90YWxfXwkApAMBBQhhdmFpbFJlcwkAzAgCCQCsAgICFCVzJXNfX25lZWRNYXRlcmlhbF9fCAUOZ2xvYmFsQW5kTG9jYWwCXzEJAMwIAgkArAICAh0lcyVzX19sYW5kQXJ0ZWZhY3RzX19QUkVTQUxFOgkApAMBCAUMcHJvZHVjdGl2aXR5Al8yCQDMCAIJAKwCAgIRJXMlc19fd2FyZWhvdXNlX18JALkJAgkBDGdldFdhcmVob3VzZQMJARJrZXlXYXJlaG91c2VCeUxhbmQBBQtsYW5kQXNzZXRJZAkAaQIFBnBpZWNlcwUFU1NJWkUIBQxwcm9kdWN0aXZpdHkCXzECAToJAMwIAgkArAICAhElcyVzX19sYW5kT3JkZXJfXwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQ9lY29ub215Q29udHJhY3QJAQ5rZXlPcmRlckJ5TGFuZAEFC2xhbmRBc3NldElkAjAwQDBfMEAwXzBAMF8wQDBfMEAwXzBAMDowQDBfMEAwXzBAMF8wQDBfMEAwXzBAMDoFA25pbAESbGFuZE9yZGVySW5mb0FycmF5AgtsYW5kQXNzZXRJZAVvd25lcgMJAAACBQtsYW5kQXNzZXRJZAIACQACAQIXbGFuZEFzc2V0SWQgaXMgcmVxdWlyZWQEAWEJAQV2YWx1ZQEJAOwHAQkA2QQBBQtsYW5kQXNzZXRJZAQBZAkAtQkCCAUBYQtkZXNjcmlwdGlvbgIBXwQGcGllY2VzCQEPbnVtUGllY2VzQnlTaXplAQkAkQMCBQFkBQtyZWNMYW5kU2l6ZQQMcHJvZHVjdGl2aXR5CQEMYXBwbHlCb251c2VzAgULbGFuZEFzc2V0SWQFBnBpZWNlcwkAzAgCCQCsAgICDyVzJXNfX2Fzc2V0SWRfXwULbGFuZEFzc2V0SWQJAMwIAgkArAICAg0lcyVzX19vd25lcl9fBQVvd25lcgkAzAgCCQCsAgICESVzJXNfX3dhcmVob3VzZV9fCQC5CQIJAQxnZXRXYXJlaG91c2UDCQESa2V5V2FyZWhvdXNlQnlMYW5kAQULbGFuZEFzc2V0SWQJAGkCBQZwaWVjZXMFBVNTSVpFCAUMcHJvZHVjdGl2aXR5Al8xAgE6CQDMCAIJAKwCAgIRJXMlc19fbGFuZE9yZGVyX18JAQt2YWx1ZU9yRWxzZQIJAJ0IAgUPZWNvbm9teUNvbnRyYWN0CQEOa2V5T3JkZXJCeUxhbmQBBQtsYW5kQXNzZXRJZAIwMEAwXzBAMF8wQDBfMEAwXzBAMF8wQDA6MEAwXzBAMF8wQDBfMEAwXzBAMF8wQDA6BQNuaWwQAWkBDWNvbnN0cnVjdG9yVjEBCWNvbnRyYWN0cwMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECEnBlcm1pc3Npb25zIGRlbmllZAoBCmRlc2NyaXB0b3ICA2FjYwtpZ25vcmVkSXRlbQkArAICBQNhY2MCAiVzBAVkZXNjcgoAAiRsBQljb250cmFjdHMKAAIkcwkAkAMBBQIkbAoABSRhY2MwAgAKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBCmRlc2NyaXB0b3ICBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoJAMwIAgkBC1N0cmluZ0VudHJ5AgkBCmtleVJlc3RDZmcACQC5CQIJAMwIAgUFZGVzY3IFCWNvbnRyYWN0cwUDU0VQCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ5rZXlSZXN0QWRkcmVzcwAJAKUIAQUEdGhpcwUDbmlsAWkBEndhbGxldEluZm9SRUFET05MWQEOdXNlckFkZHJlc3NPcHQJAJQKAgUDbmlsCQEOd2FsbGV0SW50ZXJuYWwBBQ51c2VyQWRkcmVzc09wdAFpARdkdWNrQnlPd25lckluZm9SRUFET05MWQELdXNlckFkZHJlc3MECnN0YWtlZER1Y2sJAJ0IAgUPc3Rha2luZ0NvbnRyYWN0CQEUa2V5U3Rha2VkRHVja0J5T3duZXIBBQt1c2VyQWRkcmVzcwkAlAoCBQNuaWwDAwkBCWlzRGVmaW5lZAEJAKYIAQULdXNlckFkZHJlc3MJAQlpc0RlZmluZWQBBQpzdGFrZWREdWNrBwQLZHVja0Fzc2V0SWQJAQV2YWx1ZQEFCnN0YWtlZER1Y2sJAQ1kdWNrSW5mb0FycmF5AwULZHVja0Fzc2V0SWQFC3VzZXJBZGRyZXNzCQENZHVja0luZm9UdXBsZQEFC2R1Y2tBc3NldElkCQENZHVja0luZm9BcnJheQMCAAULdXNlckFkZHJlc3MJAJcKBQD///////////8BAgACAAD///////////8BAgABaQEZZHVja0J5QXNzZXRJZEluZm9SRUFET05MWQELZHVja0Fzc2V0SWQEBW93bmVyCQCdCAIFD3N0YWtpbmdDb250cmFjdAkBEGtleUR1Y2tJZFRvT3duZXIBBQtkdWNrQXNzZXRJZAkAlAoCBQNuaWwJAQ1kdWNrSW5mb0FycmF5AwULZHVja0Fzc2V0SWQDCQEJaXNEZWZpbmVkAQUFb3duZXIJAQV2YWx1ZQEFBW93bmVyAgAJAQ1kdWNrSW5mb1R1cGxlAQULZHVja0Fzc2V0SWQBaQEZbGFuZEJ5QXNzZXRJZEluZm9SRUFET05MWQELbGFuZEFzc2V0SWQDCQAAAgULbGFuZEFzc2V0SWQCAAkAAgECF2xhbmRBc3NldElkIGlzIHJlcXVpcmVkBApzdGFrZWRUaW1lCQELdmFsdWVPckVsc2UCCQCaCAIFD3N0YWtpbmdDb250cmFjdAkBFmtleVN0YWtlZFRpbWVCeUFzc2V0SWQBBQtsYW5kQXNzZXRJZAD///////////8BBAVvd25lcgMJAGYCBQpzdGFrZWRUaW1lAAAJAQV2YWx1ZQEJAJ0IAgUPc3Rha2luZ0NvbnRyYWN0CQEVa2V5TGFuZEFzc2V0SWRUb093bmVyAQULbGFuZEFzc2V0SWQCAAkAlAoCBQNuaWwJAQ1sYW5kSW5mb0FycmF5AwULbGFuZEFzc2V0SWQFBW93bmVyBQpzdGFrZWRUaW1lAWkBHnN0YWtlZExhbmRzQnlPd25lckluZm9SRUFET05MWQEQbGFuZE93bmVyQWRkcmVzcwMJAAACBRBsYW5kT3duZXJBZGRyZXNzAgAJAAIBAhxsYW5kT3duZXJBZGRyZXNzIGlzIHJlcXVpcmVkBAhsYW5kc1N0cgkAnQgCBQ9zdGFraW5nQ29udHJhY3QJARVrZXlTdGFrZWRMYW5kc0J5T3duZXIBBRBsYW5kT3duZXJBZGRyZXNzBAVsYW5kcwMJAQlpc0RlZmluZWQBBQhsYW5kc1N0cgkAvQkCCQEFdmFsdWUBBQhsYW5kc1N0cgIBXwUDbmlsCgEHb25lTGFuZAIDYWNjC2xhbmRBc3NldElkAwkAAAIFC2xhbmRBc3NldElkAgAJAAIBAhdsYW5kQXNzZXRJZCBpcyByZXF1aXJlZAQKc3Rha2VkVGltZQkBC3ZhbHVlT3JFbHNlAgkAmggC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kQMCBQhjdXJTdGF0cwUNaWR4V2xnRWNvbm9teQkAzAgCCQCsAgICFiVzJXMlZF9fdXNkdEFjdGl2aXR5X18JAKQDAQkAkQMCBQhjdXJTdGF0cwUOaWR4V2xnQWN0aXZpdHkJAMwIAgkArAICAhclcyVzJWRfX3VzZHRBcmJpdHJhZ2VfXwkApAMBCQCRAwIFCGN1clN0YXRzBQ9pZHhXbGdBcmJpdHJhZ2UJAMwIAgkArAICAhIlcyVzJWRfX3VzZHRQb29sX18JAKQDAQkAkQMCBQhjdXJTdGF0cwUKaWR4V2xnUG9vbAkAzAgCCQCsAgICFiVzJXMlZF9fd2xnSXNzdWVUaW1lX18JAKQDAQkAkQMCBQhjdXJTdGF0cwUPaWR4V2xnSXNzdWVUaW1lCQDMCAIJAKwCAgIlJXMlcyVkX193bGdMYXN0TWFya2V0aW5nVGVhbUFjdFRpbWVfXwkApAMBCQCRAwIFCGN1clN0YXRzBRFpZHhXbGdMYXN0TVRBVGltZQkAzAgCCQCsAgICGyVzJXMlZF9fd2xnTWFya2V0aW5nVG90YWxfXwkApAMBCQCRAwIFCGN1clN0YXRzBRRpZHhXbGdNYXJrZXRpbmdUb3RhbAkAzAgCCQCsAgICHCVzJXMlZF9fd2xnTWFya2V0aW5nQW1MZWZ0X18JAKQDAQkAkQMCBQhjdXJTdGF0cwUVaWR4V2xnTWFya2V0aW5nQW1MZWZ0CQDMCAIJAKwCAgIgJXMlcyVkX193bGdNYXJrZXRpbmdBbUF2YWlsTm93X18JAKQDAQkAkQMCBQhjdXJTdGF0cwUZaWR4V2xnTWFya2V0aW5nQW1BdmFpbE5vdwkAzAgCCQCsAgICHCVzJXMlZF9fd2xnTWFya2V0aW5nV2xnb2xkX18JAKQDAQkAkQMCBQhjdXJTdGF0cwUVaWR4V2xnTWFya2V0aW5nV2xnb2xkCQDMCAIJAKwCAgIWJXMlcyVkX193bGdUZWFtVG90YWxfXwkApAMBCQCRAwIFCGN1clN0YXRzBQ9pZHhXbGdUZWFtVG90YWwJAMwIAgkArAICAhclcyVzJWRfX3dsZ1RlYW1BbUxlZnRfXwkApAMBCQCRAwIFCGN1clN0YXRzBRBpZHhXbGdUZWFtQW1MZWZ0CQDMCAIJAKwCAgIbJXMlcyVkX193bGdUZWFtQW1BdmFpbE5vd19fCQCkAwEJAJEDAgUIY3VyU3RhdHMFFGlkeFdsZ1RlYW1BbUF2YWlsTm93CQDMCAIJAKwCAgIXJXMlcyVkX193bGdUZWFtV2xnb2xkX18JAKQDAQkAkQMCBQhjdXJTdGF0cwUQaWR4V2xnVGVhbVdsZ29sZAkAzAgCCQCsAgICFSVzJXMlZF9fd2xnQWN0VG90YWxfXwkApAMBCQCRAwIFCGN1clN0YXRzBQ5pZHhXbGdBY3RUb3RhbAkAzAgCCQCsAgICFiVzJXMlZF9fd2xnQWN0QW1MZWZ0X18JAKQDAQkAkQMCBQhjdXJTdGF0cwUPaWR4V2xnQWN0QW1MZWZ0CQDMCAIJAKwCAgIaJXMlcyVkX193bGdBY3RBbUF2YWlsTm93X18JAKQDAQkAkQMCBQhjdXJTdGF0cwUTaWR4V2xnQWN0QW1BdmFpbE5vdwkAzAgCCQCsAgICFiVzJXMlZF9fd2xnQWN0V2xnb2xkX18JAKQDAQkAkQMCBQhjdXJTdGF0cwUPaWR4V2xnQWN0V2xnb2xkCQDMCAIJAKwCAgIWJXMlcyVkX193bGdDdXJQZXJpb2RfXwkApAMBCQCRAwIFCGN1clN0YXRzBQ9pZHhXbGdDdXJQZXJpb2QJAMwIAgkArAICAhglcyVzJWRfX3dsZ0FtTGVmdFRvdGFsX18JAKQDAQkAkQMCBQhjdXJTdGF0cwURaWR4V2xnQW1MZWZ0VG90YWwJAMwIAgkArAICAiIlcyVzJWRfX3dsZ0N1clBlcmlvZERpc3RyaWJ1dGlvbl9fCQCkAwEJAJEDAgUIY3VyU3RhdHMFG2lkeFdsZ0N1clBlcmlvZERpc3RyaWJ1dGlvbgkAzAgCCQCsAgICGSVzJXMlZF9fd2xnTGFzdFVzZXJUaW1lX18JAKQDAQkAkQMCBQhjdXJTdGF0cwUSaWR4V2xnTGFzdFVzZXJUaW1lCQDMCAIJAKwCAgIbJXMlcyVkX193bGdVc2VyQW1BdmFpbE5vd19fCQCkAwEJAJEDAgUIY3VyU3RhdHMFFGlkeFdsZ1VzZXJBbUF2YWlsTm93CQDMCAIJAKwCAgIcJXMlcyVkX193bGdHdWVzdFNMYW5kRGFpbHlfXwkApAMBCQCRAwIFCGN1clN0YXRzBRZpZHhXbGdTTGFuZERhaWx5QW1vdW50CQDMCAIJAKwCAgIcJXMlcyVkX193bGdJbnZlc3RGdW5kVG90YWxfXwkApAMBCQCRAwIFCGN1clN0YXRzBRZpZHhXbGdJbnZlc3RGdW5kQW1vdW50BQNuaWwBaQEXdG91cm5hbWVudFN0YXRzUkVBRE9OTFkBDHRvdXJuYW1lbnRJZAQGc3RhdGljCQC1CQIJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBRJ0b3VybmFtZW50Q29udHJhY3QJARVrZXlUb3VyU3RhdGljRGF0YUJ5SWQBBQx0b3VybmFtZW50SWQJAKwCAgkArAICAhlFcnJvciByZWFkaW5nIHRvdXJuYW1lbnQgCQCkAwEFDHRvdXJuYW1lbnRJZAIFIGRhdGEFA1NFUAQHZHluYW1pYwkAtQkCCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUSdG91cm5hbWVudENvbnRyYWN0CQEWa2V5VG91ckR5bmFtaWNEYXRhQnlJZAEFDHRvdXJuYW1lbnRJZAkArAICCQCsAgICGUVycm9yIHJlYWRpbmcgdG91cm5hbWVudCAJAKQDAQUMdG91cm5hbWVudElkAgUgZGF0YQUDU0VQBAtyZWdpc3RyYW5kcwkBC3ZhbHVlT3JFbHNlAgkAnQgCBRJ0b3VybmFtZW50Q29udHJhY3QJARdrZXlBbGxSZWdpc3RyYW5kc0J5VG91cgEFDHRvdXJuYW1lbnRJZAIACQCUCgIFA25pbAkAzAgCCQCsAgICHCVzJXNfX3RvdXJuYW1lbnRTdGF0aWNEYXRhX18JALkJAgkAzAgCCQCRAwIFBnN0YXRpYwUTdFN0YXRpY1JlZ2lzdGVyQ29zdAkAzAgCCQCRAwIFBnN0YXRpYwUSdFN0YXRpY0F0dGVtcHRDb3N0CQDMCAIJAJEDAgUGc3RhdGljBQx0U3RhdGljU3RhcnQJAMwIAgkAkQMCBQZzdGF0aWMFCnRTdGF0aWNFbmQFA25pbAIBXwkAzAgCCQCsAgICHSVzJXNfX3RvdXJuYW1lbnREeW5hbWlzRGF0YV9fCQC5CQIJAMwIAgkAkQMCBQdkeW5hbWljBQ50RHluYW1pY1N0YXR1cwkAzAgCCQCRAwIFB2R5bmFtaWMFD3REeW5hbWljV2luRHVjawkAzAgCCQCRAwIFB2R5bmFtaWMFEXREeW5hbWljV2luUmVzdWx0CQDMCAIJAJEDAgUHZHluYW1pYwUVdER5bmFtaWNUb3RhbFJlZ0NvdW50CQDMCAIJAJEDAgUHZHluYW1pYwUVdER5bmFtaWNUb3RhbEF0dGVtcHRzBQNuaWwCAV8JAMwIAgkArAICAh0lcyVzX190b3VybmFtZW50UmVnaXN0cmFuZHNfXwULcmVnaXN0cmFuZHMFA25pbAD17hE9", "height": 2697375, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Cg1SCbeWGQjKUB6HKud1g4JTyiW2r6PKZNcUEG8y3pYc Next: 9LBrmhYdCmCZZmsgoFwdRTEBxDpVFyneH56bfUs3B1q9 Diff:
Old | New | Differences | |
---|---|---|---|
298 | 298 | func ci () = "emergencyWarehouseProducts" | |
299 | 299 | ||
300 | 300 | ||
301 | - | func cj (ck) = ( | |
301 | + | func cj (ck) = ("%s%d__tourStaticData__" + toString(ck)) | |
302 | 302 | ||
303 | 303 | ||
304 | - | ||
304 | + | func cl (ck) = ("%s%d__tourDynamicData__" + toString(ck)) | |
305 | 305 | ||
306 | - | let cm = { | |
307 | - | let cn = cl | |
308 | - | if ((base58'2W' == cn)) | |
306 | + | ||
307 | + | func cm (ck) = ("%s%d__allRegistrands__" + toString(ck)) | |
308 | + | ||
309 | + | ||
310 | + | let cn = 2 | |
311 | + | ||
312 | + | let co = 3 | |
313 | + | ||
314 | + | let cp = 5 | |
315 | + | ||
316 | + | let cq = 6 | |
317 | + | ||
318 | + | let cr = 1 | |
319 | + | ||
320 | + | let cs = 2 | |
321 | + | ||
322 | + | let ct = 3 | |
323 | + | ||
324 | + | let cu = 4 | |
325 | + | ||
326 | + | let cv = 5 | |
327 | + | ||
328 | + | func cw (cx) = (parseIntValue(cx[bL]) * bJ) | |
329 | + | ||
330 | + | ||
331 | + | let cy = take(drop(this.bytes, 1), 1) | |
332 | + | ||
333 | + | let cz = { | |
334 | + | let cA = cy | |
335 | + | if ((base58'2W' == cA)) | |
309 | 336 | then base58'9wc3LXNA4TEBsXyKtoLE9mrbDD7WMHXvXrCjZvabLAsi' | |
310 | - | else if ((base58'2T' == | |
337 | + | else if ((base58'2T' == cA)) | |
311 | 338 | then base58'6mWwf9mZBjVgkC54idpyaZLQfAosD914wT8fGf2iiY63' | |
312 | 339 | else throw("Unknown chain") | |
313 | 340 | } | |
314 | 341 | ||
315 | - | let | |
316 | - | let | |
317 | - | if ((base58'2W' == | |
342 | + | let cB = { | |
343 | + | let cA = cy | |
344 | + | if ((base58'2W' == cA)) | |
318 | 345 | then "3PQCuvFbvh4LkPUnrnU1z3jnbA1p9m3WNhv" | |
319 | - | else if ((base58'2T' == | |
346 | + | else if ((base58'2T' == cA)) | |
320 | 347 | then "3MumkGGztCKAXpWDqxkddofqXSUbqQkvSJy" | |
321 | 348 | else throw("Unknown chain") | |
322 | 349 | } | |
323 | 350 | ||
324 | - | let | |
325 | - | let | |
326 | - | if ((base58'2W' == | |
351 | + | let cC = { | |
352 | + | let cA = cy | |
353 | + | if ((base58'2W' == cA)) | |
327 | 354 | then 10000000000 | |
328 | - | else if ((base58'2T' == | |
355 | + | else if ((base58'2T' == cA)) | |
329 | 356 | then 100000000 | |
330 | 357 | else throw("Unknown chain") | |
331 | 358 | } | |
332 | 359 | ||
333 | - | let | |
360 | + | let cD = "__" | |
334 | 361 | ||
335 | - | let | |
362 | + | let cE = 1000000 | |
336 | 363 | ||
337 | - | let | |
364 | + | let cF = 100000000 | |
338 | 365 | ||
339 | - | let | |
366 | + | let cG = 25 | |
340 | 367 | ||
341 | - | let | |
368 | + | let cH = 100 | |
342 | 369 | ||
343 | - | let | |
370 | + | let cI = 225 | |
344 | 371 | ||
345 | - | let | |
372 | + | let cJ = 400 | |
346 | 373 | ||
347 | - | let | |
374 | + | let cK = 625 | |
348 | 375 | ||
349 | - | func | |
376 | + | func cL (cM,cN) = valueOrErrorMessage(getString(cM, cN), makeString(["mandatory ", toString(cM), ".", cN, " is not defined"], "")) | |
350 | 377 | ||
351 | 378 | ||
352 | - | let | |
379 | + | let cO = 1 | |
353 | 380 | ||
354 | - | let | |
381 | + | let cP = 2 | |
355 | 382 | ||
356 | - | let | |
383 | + | let cQ = 3 | |
357 | 384 | ||
358 | - | let | |
385 | + | let cR = 4 | |
359 | 386 | ||
360 | - | let | |
387 | + | let cS = 5 | |
361 | 388 | ||
362 | - | let | |
389 | + | let cT = 6 | |
363 | 390 | ||
364 | - | func cH () = "%s__restConfig" | |
391 | + | let cU = 7 | |
392 | + | ||
393 | + | func cV () = "%s__restConfig" | |
365 | 394 | ||
366 | 395 | ||
367 | - | func | |
396 | + | func cW () = "%s__restAddr" | |
368 | 397 | ||
369 | 398 | ||
370 | - | func | |
399 | + | func cX (cY) = split_4C(cL(cY, cV()), cD) | |
371 | 400 | ||
372 | 401 | ||
373 | - | func | |
402 | + | func cZ (da,db) = valueOrErrorMessage(addressFromString(da[db]), ("Rest cfg doesn't contain address at index " + toString(db))) | |
374 | 403 | ||
375 | 404 | ||
376 | - | let | |
405 | + | let dc = addressFromStringValue(valueOrElse(getString(this, cW()), cB)) | |
377 | 406 | ||
378 | - | let | |
407 | + | let da = cX(dc) | |
379 | 408 | ||
380 | - | let aj = | |
409 | + | let aj = cZ(da, cO) | |
381 | 410 | ||
382 | - | let | |
411 | + | let dd = cZ(da, cP) | |
383 | 412 | ||
384 | - | let | |
413 | + | let de = cZ(da, cQ) | |
385 | 414 | ||
386 | - | let | |
415 | + | let df = cZ(da, cR) | |
387 | 416 | ||
388 | - | let | |
417 | + | let dg = cZ(da, cS) | |
389 | 418 | ||
390 | - | let aH = | |
419 | + | let aH = cZ(da, cT) | |
391 | 420 | ||
392 | - | let | |
421 | + | let dh = cZ(da, cU) | |
393 | 422 | ||
394 | - | let | |
423 | + | let di = 0 | |
395 | 424 | ||
396 | - | let | |
425 | + | let dj = 1 | |
397 | 426 | ||
398 | - | let | |
427 | + | let dk = 2 | |
399 | 428 | ||
400 | - | let | |
429 | + | let dl = 3 | |
401 | 430 | ||
402 | - | let | |
431 | + | let dm = "wlg_assetId" | |
403 | 432 | ||
404 | - | let | |
433 | + | let dn = valueOrErrorMessage(getBinary(df, dm), "Not initialized yet") | |
405 | 434 | ||
406 | - | func da () = "resTypesProportions" | |
435 | + | let do = 1 | |
436 | + | ||
437 | + | func dp () = "resTypesProportions" | |
407 | 438 | ||
408 | 439 | ||
409 | - | func | |
440 | + | func dq (ce) = ("stakedLandsByOwner_" + ce) | |
410 | 441 | ||
411 | 442 | ||
412 | - | func | |
443 | + | func dr (ce) = ("stakedPiecesByOwner_" + ce) | |
413 | 444 | ||
414 | 445 | ||
415 | - | func | |
416 | - | let | |
417 | - | if ($isInstanceOf( | |
446 | + | func ds (dt) = { | |
447 | + | let cA = dt | |
448 | + | if ($isInstanceOf(cA, "String")) | |
418 | 449 | then { | |
419 | - | let | |
420 | - | | |
450 | + | let du = cA | |
451 | + | du | |
421 | 452 | } | |
422 | 453 | else throw("fail to cast into String") | |
423 | 454 | } | |
424 | 455 | ||
425 | 456 | ||
426 | - | func | |
427 | - | let | |
428 | - | if ($isInstanceOf( | |
457 | + | func dv (dt) = { | |
458 | + | let cA = dt | |
459 | + | if ($isInstanceOf(cA, "Int")) | |
429 | 460 | then { | |
430 | - | let | |
431 | - | | |
461 | + | let dw = cA | |
462 | + | dw | |
432 | 463 | } | |
433 | 464 | else throw("fail to cast into Int") | |
434 | 465 | } | |
435 | 466 | ||
436 | 467 | ||
437 | - | func | |
438 | - | let | |
439 | - | if ($isInstanceOf( | |
468 | + | func dx (dt) = { | |
469 | + | let cA = dt | |
470 | + | if ($isInstanceOf(cA, "Boolean")) | |
440 | 471 | then { | |
441 | - | let | |
442 | - | | |
472 | + | let du = cA | |
473 | + | du | |
443 | 474 | } | |
444 | 475 | else throw("fail to cast into Boolean") | |
445 | 476 | } | |
446 | 477 | ||
447 | 478 | ||
448 | - | func | |
449 | - | let | |
450 | - | if (("S" == | |
451 | - | then | |
452 | - | else if (("M" == | |
453 | - | then | |
454 | - | else if (("L" == | |
455 | - | then | |
456 | - | else if (("XL" == | |
457 | - | then | |
458 | - | else if (("XXL" == | |
459 | - | then | |
479 | + | func dy (dz) = { | |
480 | + | let cA = dz | |
481 | + | if (("S" == cA)) | |
482 | + | then cG | |
483 | + | else if (("M" == cA)) | |
484 | + | then cH | |
485 | + | else if (("L" == cA)) | |
486 | + | then cI | |
487 | + | else if (("XL" == cA)) | |
488 | + | then cJ | |
489 | + | else if (("XXL" == cA)) | |
490 | + | then cK | |
460 | 491 | else throw("Unknown land size") | |
461 | 492 | } | |
462 | 493 | ||
463 | 494 | ||
464 | - | func | |
465 | - | let ak = split(valueOrElse(getString(aj, | |
495 | + | func dA (ai) = { | |
496 | + | let ak = split(valueOrElse(getString(aj, dp()), "0_0_0_0_0_0"), "_") | |
466 | 497 | func al (am,an) = (am + parseIntValue(an)) | |
467 | 498 | ||
468 | 499 | let ao = { | |
479 | 510 | ||
480 | 511 | av(as(as(as(as(as(as(ar, 0), 1), 2), 3), 4), 5), 6) | |
481 | 512 | } | |
482 | - | let aw = valueOrElse(getInteger(aj, | |
513 | + | let aw = valueOrElse(getInteger(aj, dr(ai)), 0) | |
483 | 514 | [ao, aw] | |
484 | 515 | } | |
485 | 516 | ||
486 | 517 | ||
487 | - | let | |
518 | + | let dB = 500000 | |
488 | 519 | ||
489 | - | func | |
490 | - | let | |
491 | - | if ($isInstanceOf( | |
520 | + | func dC (dD) = { | |
521 | + | let cA = dD | |
522 | + | if ($isInstanceOf(cA, "List[Any]")) | |
492 | 523 | then { | |
493 | - | let | |
494 | - | if ((size( | |
495 | - | then throw(("Array size is " + toString(size( | |
524 | + | let dE = cA | |
525 | + | if ((size(dE) != bB)) | |
526 | + | then throw(("Array size is " + toString(size(dE)))) | |
496 | 527 | else { | |
497 | - | func | |
498 | - | let | |
499 | - | if ($isInstanceOf( | |
528 | + | func dF (am,an) = { | |
529 | + | let dG = an | |
530 | + | if ($isInstanceOf(dG, "Int")) | |
500 | 531 | then { | |
501 | - | let | |
502 | - | (am :+ toString( | |
532 | + | let dH = dG | |
533 | + | (am :+ toString(dH)) | |
503 | 534 | } | |
504 | 535 | else throw("List type is not Int") | |
505 | 536 | } | |
506 | 537 | ||
507 | - | let | |
508 | - | let ap = | |
538 | + | let dI = { | |
539 | + | let ap = dE | |
509 | 540 | let aq = size(ap) | |
510 | 541 | let ar = nil | |
511 | 542 | func as (at,au) = if ((au >= aq)) | |
512 | 543 | then at | |
513 | - | else | |
544 | + | else dF(at, ap[au]) | |
514 | 545 | ||
515 | 546 | func av (at,au) = if ((au >= aq)) | |
516 | 547 | then at | |
518 | 549 | ||
519 | 550 | av(as(as(as(as(as(as(ar, 0), 1), 2), 3), 4), 5), 6) | |
520 | 551 | } | |
521 | - | makeString( | |
552 | + | makeString(dI, "_") | |
522 | 553 | } | |
523 | 554 | } | |
524 | 555 | else throw("fail to cast into List") | |
525 | 556 | } | |
526 | 557 | ||
527 | 558 | ||
528 | - | func | |
529 | - | let | |
530 | - | if ($isInstanceOf( | |
559 | + | func dJ (dD) = { | |
560 | + | let cA = dD | |
561 | + | if ($isInstanceOf(cA, "(List[Any], List[Any])")) | |
531 | 562 | then { | |
532 | - | let | |
533 | - | $Tuple2( | |
563 | + | let dK = cA | |
564 | + | $Tuple2(dC(dK._1), dC(dK._2)) | |
534 | 565 | } | |
535 | 566 | else throw("fail to cast into (List, List)") | |
536 | 567 | } | |
537 | 568 | ||
538 | 569 | ||
539 | - | func | |
540 | - | let t = addressFromString( | |
541 | - | let | |
570 | + | func dL (dM) = { | |
571 | + | let t = addressFromString(dM) | |
572 | + | let dN = if (isDefined(t)) | |
542 | 573 | then wavesBalance(value(t)) | |
543 | 574 | else BalanceDetails(0, 0, 0, 0) | |
544 | - | let | |
545 | - | then assetBalance(value(t), | |
575 | + | let dO = if (isDefined(t)) | |
576 | + | then assetBalance(value(t), cz) | |
546 | 577 | else 0 | |
547 | - | let | |
548 | - | then assetBalance(value(t), | |
578 | + | let dP = if (isDefined(t)) | |
579 | + | then assetBalance(value(t), dn) | |
549 | 580 | else 0 | |
550 | - | let | |
551 | - | let | |
552 | - | let | |
553 | - | let | |
554 | - | let | |
555 | - | let | |
556 | - | let | |
557 | - | let | |
558 | - | let | |
559 | - | let | |
581 | + | let dQ = valueOrElse(getString(aj, bY(dM)), dM) | |
582 | + | let dR = bZ(dM) | |
583 | + | let dS = getString(aj, dR) | |
584 | + | let dT = valueOrElse(getString(aj, cb(dM)), "") | |
585 | + | let dU = valueOrElse(getString(aj, bN(dM)), "") | |
586 | + | let dV = dA(dM)[do] | |
587 | + | let dW = valueOrElse(getInteger(aj, bu(dM)), 0) | |
588 | + | let dX = valueOrElse(getInteger(aj, bv(dM)), 0) | |
589 | + | let dY = valueOrElse(getInteger(aj, bw(dM)), 0) | |
590 | + | let dZ = if (isDefined(dS)) | |
560 | 591 | then (bA + (if (if (isDefined(t)) | |
561 | - | then isDefined(getString(aj, ca( | |
592 | + | then isDefined(getString(aj, ca(dM))) | |
562 | 593 | else false) | |
563 | 594 | then ":1" | |
564 | 595 | else ":0")) | |
565 | 596 | else "" | |
566 | - | [("%s%s__customName__" + | |
597 | + | [("%s%s__customName__" + dQ), ("%s%s__referredBy__" + valueOrElse(dS, "")), ("%s%s__referrals__" + dT), ("%s%s__lastTxId__" + dU), ("%s%d__wavesBalance__" + toString(dN.available)), ("%s%d__wlgoldBalance__" + toString(dP)), ("%s%d__usdtBalance__" + toString(dO)), ("%s%d__stakedPieces__" + toString(dV)), ("%s%d__currentXp__" + toString(dW)), ("%s%d__currentLvl__" + toString(dX)), ("%s%d__pointsToDistribute__" + toString(dY)), ("%s%s__walletArtefacts__" + dZ)] | |
567 | 598 | } | |
568 | 599 | ||
569 | 600 | ||
570 | - | func | |
571 | - | let | |
572 | - | let | |
573 | - | let | |
574 | - | let | |
575 | - | $Tuple3( | |
601 | + | func ea (bW,dV) = { | |
602 | + | let eb = valueOrElse(getInteger(aj, bS(bW)), 0) | |
603 | + | let ec = valueOrElse(getInteger(aj, bT(bz, bW)), 0) | |
604 | + | let ed = (eb / 6) | |
605 | + | let ee = (eb / 7) | |
606 | + | $Tuple3(eb, ec, ((bC + fraction(bC, ((eb + ed) + (2 * ee)), 5)) + fraction(bC, ec, (dV * 5)))) | |
576 | 607 | } | |
577 | 608 | ||
578 | 609 | ||
579 | - | func | |
580 | - | let | |
581 | - | ((bE * (parseIntValue( | |
610 | + | func ef (eg) = { | |
611 | + | let eh = split(eg, "_") | |
612 | + | ((bE * (parseIntValue(eh[1]) + 1)) * parseIntValue(eh[0])) | |
582 | 613 | } | |
583 | 614 | ||
584 | 615 | ||
585 | - | func | |
586 | - | let | |
587 | - | let | |
588 | - | let | |
589 | - | split( | |
616 | + | func ei (ej,ek,eb) = { | |
617 | + | let eg = ((toString(ek) + "_") + toString(eb)) | |
618 | + | let el = toString(ef(eg)) | |
619 | + | let em = valueOrElse(getString(aj, ej), ((((eg + ":0_0_0_0_0_0:0_0_0_0_0_0::0_0_") + el) + "_") + el)) | |
620 | + | split(em, ":") | |
590 | 621 | } | |
591 | 622 | ||
592 | 623 | ||
593 | - | func | |
594 | - | let | |
595 | - | $Tuple5(valueOrElse(getInteger(aj, bR(bo)), -1), value(assetInfo(fromBase58String(bo))).name, valueOrElse(getString(aj, cf(bo)), ""), valueOrElse(getInteger(aj, bn(bo)), | |
624 | + | func en (bo) = { | |
625 | + | let eo = bx(valueOrElse(getInteger(aj, br(bo)), 0)) | |
626 | + | $Tuple5(valueOrElse(getInteger(aj, bR(bo)), -1), value(assetInfo(fromBase58String(bo))).name, valueOrElse(getString(aj, cf(bo)), ""), valueOrElse(getInteger(aj, bn(bo)), eo), ds(invoke(aj, "getBackpackREADONLY", [bo], nil))) | |
596 | 627 | } | |
597 | 628 | ||
598 | 629 | ||
599 | - | func | |
600 | - | let | |
601 | - | let | |
602 | - | let | |
603 | - | let | |
604 | - | let | |
605 | - | let | |
606 | - | [("%s%s__assetId__" + bo), ("%s%s__owner__" + | |
630 | + | func ep (bo,eq,er) = { | |
631 | + | let dQ = valueOrElse(getString(aj, bX(bo)), er._2) | |
632 | + | let es = valueOrElse(getString(aj, bp(bo)), "0_0_0_0_0") | |
633 | + | let dW = valueOrElse(getInteger(aj, bq(bo)), 0) | |
634 | + | let dX = valueOrElse(getInteger(aj, br(bo)), 0) | |
635 | + | let dY = valueOrElse(getInteger(aj, bs(bo)), 0) | |
636 | + | let et = valueOrElse(getString(aj, bt(bo)), ";_;_;_;_;_;") | |
637 | + | [("%s%s__assetId__" + bo), ("%s%s__owner__" + eq), ("%s%s__customName__" + dQ), ("%s%d__stakedTime__" + toString(er._1)), ("%s%s__name__" + er._2), ("%s%s__location__" + er._3), ("%s%d__health__" + toString(er._4)), ("%s%d__maxHealth__" + toString(bx(dX))), ("%s%s__characteristics__" + es), ("%s%d__currentXp__" + toString(dW)), ("%s%d__currentLvl__" + toString(dX)), ("%s%d__pointsToDistribute__" + toString(dY)), ("%s%s__backPack__" + er._5), ("%s%s__equipment__" + et)] | |
607 | 638 | } | |
608 | 639 | ||
609 | 640 | ||
610 | - | func | |
641 | + | func eu (bW,eq,ev) = if ((bW == "")) | |
611 | 642 | then throw("landAssetId is required") | |
612 | 643 | else { | |
613 | - | let | |
614 | - | let | |
615 | - | let | |
616 | - | then | |
617 | - | else ("-" + | |
618 | - | let | |
619 | - | let | |
620 | - | let | |
621 | - | let | |
622 | - | then fraction( | |
644 | + | let ew = value(assetInfo(fromBase58String(bW))) | |
645 | + | let ex = split(ew.description, "_") | |
646 | + | let ey = if ((ew.quantity > 0)) | |
647 | + | then ex[di] | |
648 | + | else ("-" + ex[di]) | |
649 | + | let dV = dy(ex[dj]) | |
650 | + | let ez = ea(bW, dV) | |
651 | + | let eA = (lastBlock.timestamp - ev) | |
652 | + | let eB = if ((ev > 0)) | |
653 | + | then fraction(eA, (ez._3 * dV), bD) | |
623 | 654 | else 0 | |
624 | - | let | |
625 | - | let | |
626 | - | then | |
627 | - | else $Tuple2( | |
628 | - | let | |
629 | - | [("%s%s__assetId__" + bW), ("%s%s__owner__" + | |
655 | + | let eC = fraction(cC, (dV * (ez._1 + 1)), cG) | |
656 | + | let eD = if ((ev > 0)) | |
657 | + | then dJ(invoke(aj, "splitByGlobalAndLocalWeightsREADONLY", [eC, eB, ex[dk]], nil)) | |
658 | + | else $Tuple2(dC(invoke(aj, "splitByGlobalWeightsREADONLY", [eC], nil)), "") | |
659 | + | let dQ = valueOrElse(getString(aj, bQ(bW)), ((ex[dl] + "-") + ex[di])) | |
660 | + | [("%s%s__assetId__" + bW), ("%s%s__owner__" + eq), ("%s%s__customName__" + dQ), ("%s%d__stakedTime__" + toString(ev)), ("%s%s__description__" + makeString([ey, ex[dj], ex[dk], ex[dl]], "_")), ("%s%d__infraLevel__" + toString(ez._1)), ("%s%s__availResByType__" + eD._2), ("%s%d__availResTotal__" + toString(eB)), ("%s%s__needMaterial__" + eD._1), ("%s%s__landArtefacts__PRESALE:" + toString(ez._2)), ("%s%s__warehouse__" + makeString(ei(bV(bW), (dV / cG), ez._1), ":")), ("%s%s__landOrder__" + valueOrElse(getString(dd, ch(bW)), "0@0_0@0_0@0_0@0_0@0_0@0:0@0_0@0_0@0_0@0_0@0_0@0:"))] | |
630 | 661 | } | |
631 | 662 | ||
632 | 663 | ||
633 | - | func | |
664 | + | func eE (bW,eq) = if ((bW == "")) | |
634 | 665 | then throw("landAssetId is required") | |
635 | 666 | else { | |
636 | - | let | |
637 | - | let | |
638 | - | let | |
639 | - | let | |
640 | - | [("%s%s__assetId__" + bW), ("%s%s__owner__" + | |
667 | + | let ew = value(assetInfo(fromBase58String(bW))) | |
668 | + | let ex = split(ew.description, "_") | |
669 | + | let dV = dy(ex[dj]) | |
670 | + | let ez = ea(bW, dV) | |
671 | + | [("%s%s__assetId__" + bW), ("%s%s__owner__" + eq), ("%s%s__warehouse__" + makeString(ei(bV(bW), (dV / cG), ez._1), ":")), ("%s%s__landOrder__" + valueOrElse(getString(dd, ch(bW)), "0@0_0@0_0@0_0@0_0@0_0@0:0@0_0@0_0@0_0@0_0@0_0@0:"))] | |
641 | 672 | } | |
642 | 673 | ||
643 | 674 | ||
644 | - | @Callable( | |
645 | - | func constructorV1 (az) = if (( | |
675 | + | @Callable(eF) | |
676 | + | func constructorV1 (az) = if ((eF.caller != this)) | |
646 | 677 | then throw("permissions denied") | |
647 | 678 | else { | |
648 | - | func | |
679 | + | func eG (am,eH) = (am + "%s") | |
649 | 680 | ||
650 | - | let | |
681 | + | let eI = { | |
651 | 682 | let ap = az | |
652 | 683 | let aq = size(ap) | |
653 | 684 | let ar = "" | |
654 | 685 | func as (at,au) = if ((au >= aq)) | |
655 | 686 | then at | |
656 | - | else | |
687 | + | else eG(at, ap[au]) | |
657 | 688 | ||
658 | 689 | func av (at,au) = if ((au >= aq)) | |
659 | 690 | then at | |
661 | 692 | ||
662 | 693 | av(as(as(as(as(as(as(as(as(as(as(ar, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10) | |
663 | 694 | } | |
664 | - | [StringEntry( | |
695 | + | [StringEntry(cV(), makeString(eI :: az, cD)), StringEntry(cW(), toString(this))] | |
665 | 696 | } | |
666 | 697 | ||
667 | 698 | ||
668 | 699 | ||
669 | - | @Callable( | |
670 | - | func walletInfoREADONLY ( | |
700 | + | @Callable(eF) | |
701 | + | func walletInfoREADONLY (dM) = $Tuple2(nil, dL(dM)) | |
671 | 702 | ||
672 | 703 | ||
673 | 704 | ||
674 | - | @Callable( | |
675 | - | func duckByOwnerInfoREADONLY ( | |
676 | - | let | |
677 | - | $Tuple2(nil, if (if (isDefined(addressFromString( | |
678 | - | then isDefined( | |
705 | + | @Callable(eF) | |
706 | + | func duckByOwnerInfoREADONLY (eJ) = { | |
707 | + | let eK = getString(aj, cd(eJ)) | |
708 | + | $Tuple2(nil, if (if (isDefined(addressFromString(eJ))) | |
709 | + | then isDefined(eK) | |
679 | 710 | else false) | |
680 | 711 | then { | |
681 | - | let bo = value( | |
682 | - | | |
712 | + | let bo = value(eK) | |
713 | + | ep(bo, eJ, en(bo)) | |
683 | 714 | } | |
684 | - | else | |
715 | + | else ep("", eJ, $Tuple5(-1, "", "", -1, ""))) | |
685 | 716 | } | |
686 | 717 | ||
687 | 718 | ||
688 | 719 | ||
689 | - | @Callable( | |
720 | + | @Callable(eF) | |
690 | 721 | func duckByAssetIdInfoREADONLY (bo) = { | |
691 | - | let | |
692 | - | $Tuple2(nil, | |
693 | - | then value( | |
694 | - | else "", | |
722 | + | let eq = getString(aj, cc(bo)) | |
723 | + | $Tuple2(nil, ep(bo, if (isDefined(eq)) | |
724 | + | then value(eq) | |
725 | + | else "", en(bo))) | |
695 | 726 | } | |
696 | 727 | ||
697 | 728 | ||
698 | 729 | ||
699 | - | @Callable( | |
730 | + | @Callable(eF) | |
700 | 731 | func landByAssetIdInfoREADONLY (bW) = if ((bW == "")) | |
701 | 732 | then throw("landAssetId is required") | |
702 | 733 | else { | |
703 | - | let | |
704 | - | let | |
734 | + | let ev = valueOrElse(getInteger(aj, bR(bW)), -1) | |
735 | + | let eq = if ((ev > 0)) | |
705 | 736 | then value(getString(aj, bO(bW))) | |
706 | 737 | else "" | |
707 | - | $Tuple2(nil, | |
738 | + | $Tuple2(nil, eu(bW, eq, ev)) | |
708 | 739 | } | |
709 | 740 | ||
710 | 741 | ||
711 | 742 | ||
712 | - | @Callable( | |
713 | - | func stakedLandsByOwnerInfoREADONLY ( | |
743 | + | @Callable(eF) | |
744 | + | func stakedLandsByOwnerInfoREADONLY (eL) = if ((eL == "")) | |
714 | 745 | then throw("landOwnerAddress is required") | |
715 | 746 | else { | |
716 | - | let | |
717 | - | let | |
718 | - | then split_51C(value( | |
747 | + | let eM = getString(aj, dq(eL)) | |
748 | + | let eN = if (isDefined(eM)) | |
749 | + | then split_51C(value(eM), "_") | |
719 | 750 | else nil | |
720 | - | func | |
751 | + | func eO (am,bW) = if ((bW == "")) | |
721 | 752 | then throw("landAssetId is required") | |
722 | 753 | else { | |
723 | - | let | |
724 | - | (am :+ | |
754 | + | let ev = valueOrElse(getInteger(aj, bR(bW)), -1) | |
755 | + | (am :+ eu(bW, eL, ev)) | |
725 | 756 | } | |
726 | 757 | ||
727 | - | let | |
728 | - | let ap = | |
758 | + | let dI = { | |
759 | + | let ap = eN | |
729 | 760 | let aq = size(ap) | |
730 | 761 | let ar = nil | |
731 | 762 | func as (at,au) = if ((au >= aq)) | |
732 | 763 | then at | |
733 | - | else | |
764 | + | else eO(at, ap[au]) | |
734 | 765 | ||
735 | 766 | func av (at,au) = if ((au >= aq)) | |
736 | 767 | then at | |
738 | 769 | ||
739 | 770 | av(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(ar, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100) | |
740 | 771 | } | |
741 | - | $Tuple2(nil, | |
772 | + | $Tuple2(nil, dI) | |
742 | 773 | } | |
743 | 774 | ||
744 | 775 | ||
745 | 776 | ||
746 | - | @Callable( | |
747 | - | func landsByIdsInfoREADONLY ( | |
748 | - | func | |
777 | + | @Callable(eF) | |
778 | + | func landsByIdsInfoREADONLY (eP) = { | |
779 | + | func eO (am,bW) = if ((bW == "")) | |
749 | 780 | then throw("landAssetId is required") | |
750 | 781 | else { | |
751 | - | let | |
752 | - | let | |
782 | + | let ev = valueOrElse(getInteger(aj, bR(bW)), -1) | |
783 | + | let eq = if ((ev > 0)) | |
753 | 784 | then value(getString(aj, bO(bW))) | |
754 | 785 | else "" | |
755 | - | (am :+ | |
786 | + | (am :+ eu(bW, eq, ev)) | |
756 | 787 | } | |
757 | 788 | ||
758 | - | let | |
759 | - | let ap = | |
789 | + | let dI = { | |
790 | + | let ap = eP | |
760 | 791 | let aq = size(ap) | |
761 | 792 | let ar = nil | |
762 | 793 | func as (at,au) = if ((au >= aq)) | |
763 | 794 | then at | |
764 | - | else | |
795 | + | else eO(at, ap[au]) | |
765 | 796 | ||
766 | 797 | func av (at,au) = if ((au >= aq)) | |
767 | 798 | then at | |
769 | 800 | ||
770 | 801 | av(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(ar, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100) | |
771 | 802 | } | |
772 | - | $Tuple2(nil, | |
803 | + | $Tuple2(nil, dI) | |
773 | 804 | } | |
774 | 805 | ||
775 | 806 | ||
776 | 807 | ||
777 | - | @Callable( | |
808 | + | @Callable(eF) | |
778 | 809 | func warehouseOrderByAssetIdInfoREADONLY (bW) = if ((bW == "")) | |
779 | 810 | then throw("landAssetId is required") | |
780 | 811 | else { | |
781 | - | let | |
782 | - | let | |
812 | + | let ev = valueOrElse(getInteger(aj, bR(bW)), -1) | |
813 | + | let eq = if ((ev > 0)) | |
783 | 814 | then value(getString(aj, bO(bW))) | |
784 | 815 | else "" | |
785 | - | $Tuple2(nil, | |
816 | + | $Tuple2(nil, eE(bW, eq)) | |
786 | 817 | } | |
787 | 818 | ||
788 | 819 | ||
789 | 820 | ||
790 | - | @Callable( | |
791 | - | func ordersByLandIdsInfoREADONLY ( | |
792 | - | func | |
821 | + | @Callable(eF) | |
822 | + | func ordersByLandIdsInfoREADONLY (eP) = { | |
823 | + | func eO (am,bW) = if ((bW == "")) | |
793 | 824 | then throw("landAssetId is required") | |
794 | 825 | else { | |
795 | - | let | |
796 | - | let | |
826 | + | let ev = valueOrElse(getInteger(aj, bR(bW)), -1) | |
827 | + | let eq = if ((ev > 0)) | |
797 | 828 | then value(getString(aj, bO(bW))) | |
798 | 829 | else "" | |
799 | - | (am :+ | |
830 | + | (am :+ eE(bW, eq)) | |
800 | 831 | } | |
801 | 832 | ||
802 | - | let | |
803 | - | let ap = | |
833 | + | let dI = { | |
834 | + | let ap = eP | |
804 | 835 | let aq = size(ap) | |
805 | 836 | let ar = nil | |
806 | 837 | func as (at,au) = if ((au >= aq)) | |
807 | 838 | then at | |
808 | - | else | |
839 | + | else eO(at, ap[au]) | |
809 | 840 | ||
810 | 841 | func av (at,au) = if ((au >= aq)) | |
811 | 842 | then at | |
813 | 844 | ||
814 | 845 | av(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(ar, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40) | |
815 | 846 | } | |
816 | - | $Tuple2(nil, | |
847 | + | $Tuple2(nil, dI) | |
817 | 848 | } | |
818 | 849 | ||
819 | 850 | ||
820 | 851 | ||
821 | - | @Callable( | |
822 | - | func cancelWarehouseOrders ( | |
852 | + | @Callable(eF) | |
853 | + | func cancelWarehouseOrders (eP) = if ((eF.caller != this)) | |
823 | 854 | then throw("permission denied") | |
824 | 855 | else { | |
825 | - | let | |
826 | - | if (if (!(isDefined( | |
856 | + | let eQ = getBoolean(aj, cg()) | |
857 | + | if (if (!(isDefined(eQ))) | |
827 | 858 | then true | |
828 | - | else (value( | |
859 | + | else (value(eQ) == false)) | |
829 | 860 | then throw("Contracts should be blocked before canceling orders") | |
830 | 861 | else { | |
831 | - | func | |
862 | + | func eO (ew,bW) = if ((bW == "")) | |
832 | 863 | then throw("landAssetId is required") | |
833 | 864 | else { | |
834 | - | let | |
835 | - | if (if ( | |
865 | + | let eR = dx(invoke(dd, "setWarehouseOrder", ["0@0_0@0_0@0_0@0_0@0_0@0:0@0_0@0_0@0_0@0_0@0_0@0:", bW], nil)) | |
866 | + | if (if (ew) | |
836 | 867 | then true | |
837 | - | else | |
838 | - | then !(if ( | |
839 | - | then | |
868 | + | else eR) | |
869 | + | then !(if (ew) | |
870 | + | then eR | |
840 | 871 | else false) | |
841 | 872 | else false | |
842 | 873 | } | |
843 | 874 | ||
844 | - | let | |
845 | - | let ap = | |
875 | + | let dI = { | |
876 | + | let ap = eP | |
846 | 877 | let aq = size(ap) | |
847 | 878 | let ar = false | |
848 | 879 | func as (at,au) = if ((au >= aq)) | |
849 | 880 | then at | |
850 | - | else | |
881 | + | else eO(at, ap[au]) | |
851 | 882 | ||
852 | 883 | func av (at,au) = if ((au >= aq)) | |
853 | 884 | then at | |
855 | 886 | ||
856 | 887 | av(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(ar, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30) | |
857 | 888 | } | |
858 | - | $Tuple2(nil, | |
889 | + | $Tuple2(nil, dI) | |
859 | 890 | } | |
860 | 891 | } | |
861 | 892 | ||
862 | 893 | ||
863 | 894 | ||
864 | - | @Callable( | |
865 | - | func fixWarehouseFormats ( | |
895 | + | @Callable(eF) | |
896 | + | func fixWarehouseFormats (eP) = if ((eF.caller != this)) | |
866 | 897 | then throw("permission denied") | |
867 | 898 | else { | |
868 | - | func | |
899 | + | func eO (am,bW) = if ((bW == "")) | |
869 | 900 | then throw("landAssetId is required") | |
870 | - | else (am + size( | |
901 | + | else (am + size(ds(invoke(aj, "fixWarehouseFormat", [bW], nil)))) | |
871 | 902 | ||
872 | - | let | |
873 | - | let ap = | |
903 | + | let dI = { | |
904 | + | let ap = eP | |
874 | 905 | let aq = size(ap) | |
875 | 906 | let ar = 0 | |
876 | 907 | func as (at,au) = if ((au >= aq)) | |
877 | 908 | then at | |
878 | - | else | |
909 | + | else eO(at, ap[au]) | |
879 | 910 | ||
880 | 911 | func av (at,au) = if ((au >= aq)) | |
881 | 912 | then at | |
883 | 914 | ||
884 | 915 | av(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(ar, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25) | |
885 | 916 | } | |
886 | - | $Tuple2(nil, | |
917 | + | $Tuple2(nil, dI) | |
887 | 918 | } | |
888 | 919 | ||
889 | 920 | ||
890 | 921 | ||
891 | - | @Callable( | |
892 | - | func fixStakedPieces ( | |
922 | + | @Callable(eF) | |
923 | + | func fixStakedPieces (eS) = if ((eF.caller != this)) | |
893 | 924 | then throw("permission denied") | |
894 | 925 | else { | |
895 | - | func | |
926 | + | func eT (am,t) = if ((t == "")) | |
896 | 927 | then throw("address is required") | |
897 | - | else (am + | |
928 | + | else (am + dv(invoke(aj, "fixStakedPieces", [t], nil))) | |
898 | 929 | ||
899 | - | let | |
900 | - | let ap = | |
930 | + | let dI = { | |
931 | + | let ap = eS | |
901 | 932 | let aq = size(ap) | |
902 | 933 | let ar = 0 | |
903 | 934 | func as (at,au) = if ((au >= aq)) | |
904 | 935 | then at | |
905 | - | else | |
936 | + | else eT(at, ap[au]) | |
906 | 937 | ||
907 | 938 | func av (at,au) = if ((au >= aq)) | |
908 | 939 | then at | |
910 | 941 | ||
911 | 942 | av(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(ar, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16) | |
912 | 943 | } | |
913 | - | $Tuple2(nil, | |
944 | + | $Tuple2(nil, dI) | |
914 | 945 | } | |
915 | 946 | ||
916 | 947 | ||
917 | 948 | ||
918 | - | @Callable( | |
919 | - | func sendUsdtPrize ( | |
949 | + | @Callable(eF) | |
950 | + | func sendUsdtPrize (eJ) = if ((eF.caller != aj)) | |
920 | 951 | then throw("permission denied") | |
921 | 952 | else { | |
922 | - | let | |
923 | - | $Tuple2([ScriptTransfer(addressFromStringValue( | |
953 | + | let eU = fraction(assetBalance(this, cz), dB, cE) | |
954 | + | $Tuple2([ScriptTransfer(addressFromStringValue(eJ), eU, cz)], eU) | |
924 | 955 | } | |
925 | 956 | ||
926 | 957 | ||
927 | 958 | ||
928 | - | @Callable( | |
959 | + | @Callable(eF) | |
929 | 960 | func getEmergencyServiceDataREADONLY () = { | |
930 | - | let | |
931 | - | let | |
932 | - | then split(value( | |
961 | + | let eV = getString(dd, ci()) | |
962 | + | let eW = if (isDefined(eV)) | |
963 | + | then split(value(eV), "_") | |
933 | 964 | else nil | |
934 | - | func | |
935 | - | let | |
936 | - | let | |
937 | - | let | |
965 | + | func eX (am,eY) = { | |
966 | + | let dw = am._2 | |
967 | + | let cx = split(eY, "_") | |
968 | + | let eZ = if ((dw == 0)) | |
938 | 969 | then (bG * bM) | |
939 | 970 | else 0 | |
940 | - | let | |
941 | - | then parseIntValue( | |
971 | + | let fa = if ((size(eW) > dw)) | |
972 | + | then parseIntValue(eW[dw]) | |
942 | 973 | else 0 | |
943 | - | let | |
944 | - | let | |
945 | - | let | |
946 | - | let | |
947 | - | $Tuple2((am._1 :+ | |
974 | + | let fb = cw(cx) | |
975 | + | let fc = fraction((fb * bH), bF, (cF * bM)) | |
976 | + | let fd = fraction((fb * bI), bF, (cF * bM)) | |
977 | + | let fe = makeString([toString(eZ), toString(fa), toString(fc), toString(fd)], "_") | |
978 | + | $Tuple2((am._1 :+ fe), (dw + 1)) | |
948 | 979 | } | |
949 | 980 | ||
950 | - | let | |
981 | + | let du = makeString_2C(( let ap = bK | |
951 | 982 | let aq = size(ap) | |
952 | 983 | let ar = $Tuple2(nil, 0) | |
953 | 984 | func as (at,au) = if ((au >= aq)) | |
954 | 985 | then at | |
955 | - | else | |
986 | + | else eX(at, ap[au]) | |
956 | 987 | ||
957 | 988 | func av (at,au) = if ((au >= aq)) | |
958 | 989 | then at | |
959 | 990 | else throw("List size exceeds 50") | |
960 | 991 | ||
961 | 992 | av(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(ar, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50))._1, ":") | |
962 | - | let | |
963 | - | $Tuple2(nil, | |
993 | + | let ff = ("%s%s__emergencyServiceData__" + du) | |
994 | + | $Tuple2(nil, ff) | |
964 | 995 | } | |
965 | 996 | ||
966 | 997 | ||
967 | 998 | ||
968 | - | @Callable( | |
999 | + | @Callable(eF) | |
969 | 1000 | func wlgStatsREADONLY (ay) = { | |
970 | - | let eR = ax(ay, [cO, aj, cP, cQ, cR, cS, aH], cm, 0) | |
971 | - | $Tuple2(nil, [("%s%s%d__wlgAmount__" + toString(eR[z])), ("%s%s%d__wlgPrice__" + toString(eR[A])), ("%s%s%d__usdtFunds__" + toString(eR[B])), ("%s%s%d__usdtEconomy__" + toString(eR[C])), ("%s%s%d__usdtActivity__" + toString(eR[D])), ("%s%s%d__usdtArbitrage__" + toString(eR[E])), ("%s%s%d__usdtPool__" + toString(eR[F])), ("%s%s%d__wlgIssueTime__" + toString(eR[G])), ("%s%s%d__wlgLastMarketingTeamActTime__" + toString(eR[H])), ("%s%s%d__wlgMarketingTotal__" + toString(eR[I])), ("%s%s%d__wlgMarketingAmLeft__" + toString(eR[J])), ("%s%s%d__wlgMarketingAmAvailNow__" + toString(eR[K])), ("%s%s%d__wlgMarketingWlgold__" + toString(eR[L])), ("%s%s%d__wlgTeamTotal__" + toString(eR[M])), ("%s%s%d__wlgTeamAmLeft__" + toString(eR[N])), ("%s%s%d__wlgTeamAmAvailNow__" + toString(eR[O])), ("%s%s%d__wlgTeamWlgold__" + toString(eR[P])), ("%s%s%d__wlgActTotal__" + toString(eR[Q])), ("%s%s%d__wlgActAmLeft__" + toString(eR[R])), ("%s%s%d__wlgActAmAvailNow__" + toString(eR[S])), ("%s%s%d__wlgActWlgold__" + toString(eR[T])), ("%s%s%d__wlgCurPeriod__" + toString(eR[U])), ("%s%s%d__wlgAmLeftTotal__" + toString(eR[V])), ("%s%s%d__wlgCurPeriodDistribution__" + toString(eR[W])), ("%s%s%d__wlgLastUserTime__" + toString(eR[X])), ("%s%s%d__wlgUserAmAvailNow__" + toString(eR[Y])), ("%s%s%d__wlgGuestSLandDaily__" + toString(eR[Z])), ("%s%s%d__wlgInvestFundTotal__" + toString(eR[aa]))]) | |
1001 | + | let fg = ax(ay, [dc, aj, dd, de, df, dg, aH], cz, 0) | |
1002 | + | $Tuple2(nil, [("%s%s%d__wlgAmount__" + toString(fg[z])), ("%s%s%d__wlgPrice__" + toString(fg[A])), ("%s%s%d__usdtFunds__" + toString(fg[B])), ("%s%s%d__usdtEconomy__" + toString(fg[C])), ("%s%s%d__usdtActivity__" + toString(fg[D])), ("%s%s%d__usdtArbitrage__" + toString(fg[E])), ("%s%s%d__usdtPool__" + toString(fg[F])), ("%s%s%d__wlgIssueTime__" + toString(fg[G])), ("%s%s%d__wlgLastMarketingTeamActTime__" + toString(fg[H])), ("%s%s%d__wlgMarketingTotal__" + toString(fg[I])), ("%s%s%d__wlgMarketingAmLeft__" + toString(fg[J])), ("%s%s%d__wlgMarketingAmAvailNow__" + toString(fg[K])), ("%s%s%d__wlgMarketingWlgold__" + toString(fg[L])), ("%s%s%d__wlgTeamTotal__" + toString(fg[M])), ("%s%s%d__wlgTeamAmLeft__" + toString(fg[N])), ("%s%s%d__wlgTeamAmAvailNow__" + toString(fg[O])), ("%s%s%d__wlgTeamWlgold__" + toString(fg[P])), ("%s%s%d__wlgActTotal__" + toString(fg[Q])), ("%s%s%d__wlgActAmLeft__" + toString(fg[R])), ("%s%s%d__wlgActAmAvailNow__" + toString(fg[S])), ("%s%s%d__wlgActWlgold__" + toString(fg[T])), ("%s%s%d__wlgCurPeriod__" + toString(fg[U])), ("%s%s%d__wlgAmLeftTotal__" + toString(fg[V])), ("%s%s%d__wlgCurPeriodDistribution__" + toString(fg[W])), ("%s%s%d__wlgLastUserTime__" + toString(fg[X])), ("%s%s%d__wlgUserAmAvailNow__" + toString(fg[Y])), ("%s%s%d__wlgGuestSLandDaily__" + toString(fg[Z])), ("%s%s%d__wlgInvestFundTotal__" + toString(fg[aa]))]) | |
1003 | + | } | |
1004 | + | ||
1005 | + | ||
1006 | + | ||
1007 | + | @Callable(eF) | |
1008 | + | func tournamentStatsREADONLY (fh) = { | |
1009 | + | let fi = split(valueOrErrorMessage(getString(dh, cj(fh)), (("Error reading tournament " + toString(fh)) + " data")), cD) | |
1010 | + | let fj = split(valueOrErrorMessage(getString(dh, cl(fh)), (("Error reading tournament " + toString(fh)) + " data")), cD) | |
1011 | + | let fk = valueOrElse(getString(dh, cm(fh)), "") | |
1012 | + | $Tuple2(nil, [("%s%s__tournamentStaticData__" + makeString([fi[cn], fi[co], fi[cp], fi[cq]], "_")), ("%s%s__tournamentDynamisData__" + makeString([fj[cr], fj[cs], fj[ct], fj[cu], fj[cv]], "_")), ("%s%s__tournamentRegistrands__" + fk)]) | |
972 | 1013 | } | |
973 | 1014 | ||
974 | 1015 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = 1000000 | |
5 | 5 | ||
6 | 6 | let b = 100000000 | |
7 | 7 | ||
8 | 8 | let c = 100000000000000 | |
9 | 9 | ||
10 | 10 | let d = 100000 | |
11 | 11 | ||
12 | 12 | let e = 200000 | |
13 | 13 | ||
14 | 14 | let f = 100000 | |
15 | 15 | ||
16 | 16 | let g = 400000 | |
17 | 17 | ||
18 | 18 | let h = 31557600000 | |
19 | 19 | ||
20 | 20 | let i = 86400000 | |
21 | 21 | ||
22 | 22 | let j = "marketingAddr" | |
23 | 23 | ||
24 | 24 | let k = "teamAddr" | |
25 | 25 | ||
26 | 26 | let l = "lastClaimedTime_marketing" | |
27 | 27 | ||
28 | 28 | let m = "marketingAmountLeft" | |
29 | 29 | ||
30 | 30 | let n = "lastClaimedTime_team" | |
31 | 31 | ||
32 | 32 | let o = "teamAmountLeft" | |
33 | 33 | ||
34 | 34 | let p = "lastClaimedTime_activities" | |
35 | 35 | ||
36 | 36 | let q = "activitiesAmountLeft" | |
37 | 37 | ||
38 | 38 | let r = "stakersAmountLeft" | |
39 | 39 | ||
40 | 40 | func s (t) = ("lastClaimedTimeUser_" + t) | |
41 | 41 | ||
42 | 42 | ||
43 | 43 | func u (v) = fraction(c, (g * (v + 1)), (6 * a)) | |
44 | 44 | ||
45 | 45 | ||
46 | 46 | let w = "wlg_issueTime" | |
47 | 47 | ||
48 | 48 | let x = "wlg_issuedAmount" | |
49 | 49 | ||
50 | 50 | let y = "zbill_issuedAmount" | |
51 | 51 | ||
52 | 52 | let z = 0 | |
53 | 53 | ||
54 | 54 | let A = 1 | |
55 | 55 | ||
56 | 56 | let B = 2 | |
57 | 57 | ||
58 | 58 | let C = 3 | |
59 | 59 | ||
60 | 60 | let D = 4 | |
61 | 61 | ||
62 | 62 | let E = 5 | |
63 | 63 | ||
64 | 64 | let F = 6 | |
65 | 65 | ||
66 | 66 | let G = 7 | |
67 | 67 | ||
68 | 68 | let H = 8 | |
69 | 69 | ||
70 | 70 | let I = 9 | |
71 | 71 | ||
72 | 72 | let J = 10 | |
73 | 73 | ||
74 | 74 | let K = 11 | |
75 | 75 | ||
76 | 76 | let L = 12 | |
77 | 77 | ||
78 | 78 | let M = 13 | |
79 | 79 | ||
80 | 80 | let N = 14 | |
81 | 81 | ||
82 | 82 | let O = 15 | |
83 | 83 | ||
84 | 84 | let P = 16 | |
85 | 85 | ||
86 | 86 | let Q = 17 | |
87 | 87 | ||
88 | 88 | let R = 18 | |
89 | 89 | ||
90 | 90 | let S = 19 | |
91 | 91 | ||
92 | 92 | let T = 20 | |
93 | 93 | ||
94 | 94 | let U = 21 | |
95 | 95 | ||
96 | 96 | let V = 22 | |
97 | 97 | ||
98 | 98 | let W = 23 | |
99 | 99 | ||
100 | 100 | let X = 24 | |
101 | 101 | ||
102 | 102 | let Y = 25 | |
103 | 103 | ||
104 | 104 | let Z = 26 | |
105 | 105 | ||
106 | 106 | let aa = 27 | |
107 | 107 | ||
108 | 108 | let ab = 0 | |
109 | 109 | ||
110 | 110 | let ac = 1 | |
111 | 111 | ||
112 | 112 | let ad = 2 | |
113 | 113 | ||
114 | 114 | let ae = 4 | |
115 | 115 | ||
116 | 116 | let af = 5 | |
117 | 117 | ||
118 | 118 | let ag = 6 | |
119 | 119 | ||
120 | 120 | func ah (ai,aj) = { | |
121 | 121 | let ak = split(valueOrElse(getString(aj, "resTypesProportions"), "0_0_0_0_0_0"), "_") | |
122 | 122 | func al (am,an) = (am + parseIntValue(an)) | |
123 | 123 | ||
124 | 124 | let ao = { | |
125 | 125 | let ap = ak | |
126 | 126 | let aq = size(ap) | |
127 | 127 | let ar = 0 | |
128 | 128 | func as (at,au) = if ((au >= aq)) | |
129 | 129 | then at | |
130 | 130 | else al(at, ap[au]) | |
131 | 131 | ||
132 | 132 | func av (at,au) = if ((au >= aq)) | |
133 | 133 | then at | |
134 | 134 | else throw("List size exceeds 6") | |
135 | 135 | ||
136 | 136 | av(as(as(as(as(as(as(ar, 0), 1), 2), 3), 4), 5), 6) | |
137 | 137 | } | |
138 | 138 | let aw = valueOrElse(getInteger(aj, ("stakedPiecesByOwner_" + ai)), 0) | |
139 | 139 | [ao, aw] | |
140 | 140 | } | |
141 | 141 | ||
142 | 142 | ||
143 | 143 | func ax (ay,az,aA,aB) = { | |
144 | 144 | let aC = valueOrErrorMessage(getInteger(az[ae], x), "WLGOLD is not issued yet") | |
145 | 145 | let aD = assetBalance(az[ad], aA) | |
146 | 146 | let aE = assetBalance(az[ab], aA) | |
147 | 147 | let aF = (assetBalance(az[ae], aA) - aB) | |
148 | 148 | let aG = assetBalance(az[af], aA) | |
149 | 149 | let aH = az[ag] | |
150 | 150 | let aI = (assetBalance(aH, aA) + valueOrElse(getInteger(aH, y), 0)) | |
151 | 151 | let aJ = ((aD + aF) + aI) | |
152 | 152 | let aK = valueOrErrorMessage(getBinary(az[ae], "wlg_assetId"), "Not initialized yet") | |
153 | 153 | let aL = lastBlock.timestamp | |
154 | 154 | let aM = valueOrErrorMessage(getInteger(az[ae], w), "Not initialized") | |
155 | 155 | let aN = fraction(c, d, a) | |
156 | 156 | let aO = valueOrElse(getInteger(az[ae], m), aN) | |
157 | 157 | let aP = valueOrElse(getInteger(az[ae], l), aM) | |
158 | 158 | let aQ = addressFromStringValue(value(getString(az[ae], j))) | |
159 | 159 | let aR = min([fraction(aN, (aL - aP), h), aO]) | |
160 | 160 | let aS = assetBalance(aQ, aK) | |
161 | 161 | let aT = fraction(c, e, a) | |
162 | 162 | let aU = valueOrElse(getInteger(az[ae], o), aT) | |
163 | 163 | let aV = valueOrElse(getInteger(az[ae], n), aM) | |
164 | 164 | let aW = addressFromStringValue(value(getString(az[ae], k))) | |
165 | 165 | let aX = min([fraction(aT, (aL - aV), (3 * h)), aU]) | |
166 | 166 | let aY = assetBalance(aW, aK) | |
167 | 167 | let aZ = fraction(c, f, a) | |
168 | 168 | let ba = valueOrElse(getInteger(az[ae], q), aZ) | |
169 | 169 | let bb = valueOrElse(getInteger(az[ae], p), aM) | |
170 | 170 | let bc = min([fraction(aZ, (aL - bb), (3 * h)), ba]) | |
171 | 171 | let bd = assetBalance(az[ab], aK) | |
172 | 172 | let be = valueOrElse(getInteger(az[ae], s(ay)), aM) | |
173 | 173 | let bf = ((be - aM) / h) | |
174 | 174 | let bg = min([aL, (aM + (3 * h))]) | |
175 | 175 | let bh = min([((aL - aM) / h), 2]) | |
176 | 176 | let bi = ah(ay, az[ac]) | |
177 | 177 | let bj = u(bh) | |
178 | 178 | let bk = fraction(if ((bf == bh)) | |
179 | 179 | then fraction(bj, (bg - be), h) | |
180 | 180 | else if ((bf == (bh - 1))) | |
181 | 181 | then (fraction(u((bh - 1)), ((aM + (h * bh)) - be), h) + fraction(bj, (bg - (aM + (h * bh))), h)) | |
182 | 182 | else ((fraction(u((bh - 2)), ((aM + (h * (bh - 1))) - be), h) + u((bh - 1))) + fraction(bj, (bg - (aM + (h * bh))), h)), bi[1], bi[0]) | |
183 | 183 | let bl = fraction(fraction(bj, i, h), 25, bi[0]) | |
184 | 184 | let bm = valueOrElse(getInteger(az[ae], r), 0) | |
185 | 185 | [aC, fraction(aJ, b, aC), aJ, aD, aE, aF, aG, aM, aP, aN, aO, aR, aS, aT, aU, aX, aY, aZ, ba, bc, bd, bh, bm, bj, be, bk, bl, aI] | |
186 | 186 | } | |
187 | 187 | ||
188 | 188 | ||
189 | 189 | func bn (bo) = ("duckHealth_" + bo) | |
190 | 190 | ||
191 | 191 | ||
192 | 192 | func bp (bo) = ("duckChars_" + bo) | |
193 | 193 | ||
194 | 194 | ||
195 | 195 | func bq (bo) = ("duckXP_" + bo) | |
196 | 196 | ||
197 | 197 | ||
198 | 198 | func br (bo) = ("duckLevel_" + bo) | |
199 | 199 | ||
200 | 200 | ||
201 | 201 | func bs (bo) = ("duckFreePoints_" + bo) | |
202 | 202 | ||
203 | 203 | ||
204 | 204 | func bt (bo) = ("duckEquipment_" + bo) | |
205 | 205 | ||
206 | 206 | ||
207 | 207 | func bu (t) = ("userXP_" + t) | |
208 | 208 | ||
209 | 209 | ||
210 | 210 | func bv (t) = ("userLevel_" + t) | |
211 | 211 | ||
212 | 212 | ||
213 | 213 | func bw (t) = ("userFreePoints_" + t) | |
214 | 214 | ||
215 | 215 | ||
216 | 216 | func bx (by) = (100 + by) | |
217 | 217 | ||
218 | 218 | ||
219 | 219 | let bz = "PRESALE" | |
220 | 220 | ||
221 | 221 | let bA = "ONBOARD" | |
222 | 222 | ||
223 | 223 | let bB = 6 | |
224 | 224 | ||
225 | 225 | let bC = 3456000 | |
226 | 226 | ||
227 | 227 | let bD = 86400000 | |
228 | 228 | ||
229 | 229 | let bE = 10000000000 | |
230 | 230 | ||
231 | 231 | let bF = 39637 | |
232 | 232 | ||
233 | 233 | let bG = 3 | |
234 | 234 | ||
235 | 235 | let bH = 4 | |
236 | 236 | ||
237 | 237 | let bI = 10 | |
238 | 238 | ||
239 | 239 | let bJ = 10000000 | |
240 | 240 | ||
241 | 241 | let bK = ["8_8_8_17_17_42_12_0_30_0,0,0,0,0,0,0_", "8_8_8_17_17_42_24_0_60_0,0,5,2,0,0,0_", "8_8_8_17_17_42_36_0_120_0,0,10,4,0,0,0_", "8_19_19_8_27_19_26_1_20_0,0,0,0,0,0,0_001", "8_19_19_8_27_19_52_1_40_0,0,0,0,0,0,0_001", "8_19_19_8_27_19_78_1_80_0,0,0,0,0,0,0_001", "8_8_8_8_8_60_13_2_2_0,0,0,0,0,0,0_", "8_8_8_8_8_60_26_2_4_0,0,0,0,0,0,0_", "8_8_8_8_8_60_39_2_8_0,0,0,0,0,0,0_", "30_30_3_17_17_3_30_3_30_0,0,0,0,0,0,0_111", "30_30_3_17_17_3_60_3_50_0,0,0,0,0,0,0_111", "30_30_3_17_17_3_90_3_70_0,0,0,0,0,0,0_111", "18_18_10_18_18_18_11_4_30_0,0,0,0,0,0,0_201", "18_18_10_18_18_18_22_4_50_0,0,0,0,0,0,0_201", "18_18_10_18_18_18_33_4_70_0,0,0,0,0,0,0_201"] | |
242 | 242 | ||
243 | 243 | let bL = 6 | |
244 | 244 | ||
245 | 245 | let bM = 10 | |
246 | 246 | ||
247 | 247 | func bN (t) = ("lastTxIdByUser_" + t) | |
248 | 248 | ||
249 | 249 | ||
250 | 250 | func bO (bP) = ("nftOwner_" + bP) | |
251 | 251 | ||
252 | 252 | ||
253 | 253 | func bQ (bP) = ("landCustomNameByAssetId_" + bP) | |
254 | 254 | ||
255 | 255 | ||
256 | 256 | func bR (bP) = ("stakedTime_" + bP) | |
257 | 257 | ||
258 | 258 | ||
259 | 259 | func bS (bP) = ("infraLevel_" + bP) | |
260 | 260 | ||
261 | 261 | ||
262 | 262 | func bT (bU,bP) = makeString(["landArtStatus", bU, bP], "_") | |
263 | 263 | ||
264 | 264 | ||
265 | 265 | func bV (bW) = ("wareHouse_" + bW) | |
266 | 266 | ||
267 | 267 | ||
268 | 268 | func bX (bP) = ("duckCustomNameByAssetId_" + bP) | |
269 | 269 | ||
270 | 270 | ||
271 | 271 | func bY (t) = ("accountCustomNameByAddr_" + t) | |
272 | 272 | ||
273 | 273 | ||
274 | 274 | func bZ (t) = ("accRefBy_" + t) | |
275 | 275 | ||
276 | 276 | ||
277 | 277 | func ca (t) = ("onboardArtActivatedDuckBy_" + t) | |
278 | 278 | ||
279 | 279 | ||
280 | 280 | func cb (t) = ("accReferrals_" + t) | |
281 | 281 | ||
282 | 282 | ||
283 | 283 | func cc (bP) = ("duckOwner_" + bP) | |
284 | 284 | ||
285 | 285 | ||
286 | 286 | func cd (ce) = ("stakedDuckByOwner_" + ce) | |
287 | 287 | ||
288 | 288 | ||
289 | 289 | func cf (bo) = ("duckLocation_" + bo) | |
290 | 290 | ||
291 | 291 | ||
292 | 292 | func cg () = "contractsBlocked" | |
293 | 293 | ||
294 | 294 | ||
295 | 295 | func ch (bW) = ("landOrder_" + bW) | |
296 | 296 | ||
297 | 297 | ||
298 | 298 | func ci () = "emergencyWarehouseProducts" | |
299 | 299 | ||
300 | 300 | ||
301 | - | func cj (ck) = ( | |
301 | + | func cj (ck) = ("%s%d__tourStaticData__" + toString(ck)) | |
302 | 302 | ||
303 | 303 | ||
304 | - | ||
304 | + | func cl (ck) = ("%s%d__tourDynamicData__" + toString(ck)) | |
305 | 305 | ||
306 | - | let cm = { | |
307 | - | let cn = cl | |
308 | - | if ((base58'2W' == cn)) | |
306 | + | ||
307 | + | func cm (ck) = ("%s%d__allRegistrands__" + toString(ck)) | |
308 | + | ||
309 | + | ||
310 | + | let cn = 2 | |
311 | + | ||
312 | + | let co = 3 | |
313 | + | ||
314 | + | let cp = 5 | |
315 | + | ||
316 | + | let cq = 6 | |
317 | + | ||
318 | + | let cr = 1 | |
319 | + | ||
320 | + | let cs = 2 | |
321 | + | ||
322 | + | let ct = 3 | |
323 | + | ||
324 | + | let cu = 4 | |
325 | + | ||
326 | + | let cv = 5 | |
327 | + | ||
328 | + | func cw (cx) = (parseIntValue(cx[bL]) * bJ) | |
329 | + | ||
330 | + | ||
331 | + | let cy = take(drop(this.bytes, 1), 1) | |
332 | + | ||
333 | + | let cz = { | |
334 | + | let cA = cy | |
335 | + | if ((base58'2W' == cA)) | |
309 | 336 | then base58'9wc3LXNA4TEBsXyKtoLE9mrbDD7WMHXvXrCjZvabLAsi' | |
310 | - | else if ((base58'2T' == | |
337 | + | else if ((base58'2T' == cA)) | |
311 | 338 | then base58'6mWwf9mZBjVgkC54idpyaZLQfAosD914wT8fGf2iiY63' | |
312 | 339 | else throw("Unknown chain") | |
313 | 340 | } | |
314 | 341 | ||
315 | - | let | |
316 | - | let | |
317 | - | if ((base58'2W' == | |
342 | + | let cB = { | |
343 | + | let cA = cy | |
344 | + | if ((base58'2W' == cA)) | |
318 | 345 | then "3PQCuvFbvh4LkPUnrnU1z3jnbA1p9m3WNhv" | |
319 | - | else if ((base58'2T' == | |
346 | + | else if ((base58'2T' == cA)) | |
320 | 347 | then "3MumkGGztCKAXpWDqxkddofqXSUbqQkvSJy" | |
321 | 348 | else throw("Unknown chain") | |
322 | 349 | } | |
323 | 350 | ||
324 | - | let | |
325 | - | let | |
326 | - | if ((base58'2W' == | |
351 | + | let cC = { | |
352 | + | let cA = cy | |
353 | + | if ((base58'2W' == cA)) | |
327 | 354 | then 10000000000 | |
328 | - | else if ((base58'2T' == | |
355 | + | else if ((base58'2T' == cA)) | |
329 | 356 | then 100000000 | |
330 | 357 | else throw("Unknown chain") | |
331 | 358 | } | |
332 | 359 | ||
333 | - | let | |
360 | + | let cD = "__" | |
334 | 361 | ||
335 | - | let | |
362 | + | let cE = 1000000 | |
336 | 363 | ||
337 | - | let | |
364 | + | let cF = 100000000 | |
338 | 365 | ||
339 | - | let | |
366 | + | let cG = 25 | |
340 | 367 | ||
341 | - | let | |
368 | + | let cH = 100 | |
342 | 369 | ||
343 | - | let | |
370 | + | let cI = 225 | |
344 | 371 | ||
345 | - | let | |
372 | + | let cJ = 400 | |
346 | 373 | ||
347 | - | let | |
374 | + | let cK = 625 | |
348 | 375 | ||
349 | - | func | |
376 | + | func cL (cM,cN) = valueOrErrorMessage(getString(cM, cN), makeString(["mandatory ", toString(cM), ".", cN, " is not defined"], "")) | |
350 | 377 | ||
351 | 378 | ||
352 | - | let | |
379 | + | let cO = 1 | |
353 | 380 | ||
354 | - | let | |
381 | + | let cP = 2 | |
355 | 382 | ||
356 | - | let | |
383 | + | let cQ = 3 | |
357 | 384 | ||
358 | - | let | |
385 | + | let cR = 4 | |
359 | 386 | ||
360 | - | let | |
387 | + | let cS = 5 | |
361 | 388 | ||
362 | - | let | |
389 | + | let cT = 6 | |
363 | 390 | ||
364 | - | func cH () = "%s__restConfig" | |
391 | + | let cU = 7 | |
392 | + | ||
393 | + | func cV () = "%s__restConfig" | |
365 | 394 | ||
366 | 395 | ||
367 | - | func | |
396 | + | func cW () = "%s__restAddr" | |
368 | 397 | ||
369 | 398 | ||
370 | - | func | |
399 | + | func cX (cY) = split_4C(cL(cY, cV()), cD) | |
371 | 400 | ||
372 | 401 | ||
373 | - | func | |
402 | + | func cZ (da,db) = valueOrErrorMessage(addressFromString(da[db]), ("Rest cfg doesn't contain address at index " + toString(db))) | |
374 | 403 | ||
375 | 404 | ||
376 | - | let | |
405 | + | let dc = addressFromStringValue(valueOrElse(getString(this, cW()), cB)) | |
377 | 406 | ||
378 | - | let | |
407 | + | let da = cX(dc) | |
379 | 408 | ||
380 | - | let aj = | |
409 | + | let aj = cZ(da, cO) | |
381 | 410 | ||
382 | - | let | |
411 | + | let dd = cZ(da, cP) | |
383 | 412 | ||
384 | - | let | |
413 | + | let de = cZ(da, cQ) | |
385 | 414 | ||
386 | - | let | |
415 | + | let df = cZ(da, cR) | |
387 | 416 | ||
388 | - | let | |
417 | + | let dg = cZ(da, cS) | |
389 | 418 | ||
390 | - | let aH = | |
419 | + | let aH = cZ(da, cT) | |
391 | 420 | ||
392 | - | let | |
421 | + | let dh = cZ(da, cU) | |
393 | 422 | ||
394 | - | let | |
423 | + | let di = 0 | |
395 | 424 | ||
396 | - | let | |
425 | + | let dj = 1 | |
397 | 426 | ||
398 | - | let | |
427 | + | let dk = 2 | |
399 | 428 | ||
400 | - | let | |
429 | + | let dl = 3 | |
401 | 430 | ||
402 | - | let | |
431 | + | let dm = "wlg_assetId" | |
403 | 432 | ||
404 | - | let | |
433 | + | let dn = valueOrErrorMessage(getBinary(df, dm), "Not initialized yet") | |
405 | 434 | ||
406 | - | func da () = "resTypesProportions" | |
435 | + | let do = 1 | |
436 | + | ||
437 | + | func dp () = "resTypesProportions" | |
407 | 438 | ||
408 | 439 | ||
409 | - | func | |
440 | + | func dq (ce) = ("stakedLandsByOwner_" + ce) | |
410 | 441 | ||
411 | 442 | ||
412 | - | func | |
443 | + | func dr (ce) = ("stakedPiecesByOwner_" + ce) | |
413 | 444 | ||
414 | 445 | ||
415 | - | func | |
416 | - | let | |
417 | - | if ($isInstanceOf( | |
446 | + | func ds (dt) = { | |
447 | + | let cA = dt | |
448 | + | if ($isInstanceOf(cA, "String")) | |
418 | 449 | then { | |
419 | - | let | |
420 | - | | |
450 | + | let du = cA | |
451 | + | du | |
421 | 452 | } | |
422 | 453 | else throw("fail to cast into String") | |
423 | 454 | } | |
424 | 455 | ||
425 | 456 | ||
426 | - | func | |
427 | - | let | |
428 | - | if ($isInstanceOf( | |
457 | + | func dv (dt) = { | |
458 | + | let cA = dt | |
459 | + | if ($isInstanceOf(cA, "Int")) | |
429 | 460 | then { | |
430 | - | let | |
431 | - | | |
461 | + | let dw = cA | |
462 | + | dw | |
432 | 463 | } | |
433 | 464 | else throw("fail to cast into Int") | |
434 | 465 | } | |
435 | 466 | ||
436 | 467 | ||
437 | - | func | |
438 | - | let | |
439 | - | if ($isInstanceOf( | |
468 | + | func dx (dt) = { | |
469 | + | let cA = dt | |
470 | + | if ($isInstanceOf(cA, "Boolean")) | |
440 | 471 | then { | |
441 | - | let | |
442 | - | | |
472 | + | let du = cA | |
473 | + | du | |
443 | 474 | } | |
444 | 475 | else throw("fail to cast into Boolean") | |
445 | 476 | } | |
446 | 477 | ||
447 | 478 | ||
448 | - | func | |
449 | - | let | |
450 | - | if (("S" == | |
451 | - | then | |
452 | - | else if (("M" == | |
453 | - | then | |
454 | - | else if (("L" == | |
455 | - | then | |
456 | - | else if (("XL" == | |
457 | - | then | |
458 | - | else if (("XXL" == | |
459 | - | then | |
479 | + | func dy (dz) = { | |
480 | + | let cA = dz | |
481 | + | if (("S" == cA)) | |
482 | + | then cG | |
483 | + | else if (("M" == cA)) | |
484 | + | then cH | |
485 | + | else if (("L" == cA)) | |
486 | + | then cI | |
487 | + | else if (("XL" == cA)) | |
488 | + | then cJ | |
489 | + | else if (("XXL" == cA)) | |
490 | + | then cK | |
460 | 491 | else throw("Unknown land size") | |
461 | 492 | } | |
462 | 493 | ||
463 | 494 | ||
464 | - | func | |
465 | - | let ak = split(valueOrElse(getString(aj, | |
495 | + | func dA (ai) = { | |
496 | + | let ak = split(valueOrElse(getString(aj, dp()), "0_0_0_0_0_0"), "_") | |
466 | 497 | func al (am,an) = (am + parseIntValue(an)) | |
467 | 498 | ||
468 | 499 | let ao = { | |
469 | 500 | let ap = ak | |
470 | 501 | let aq = size(ap) | |
471 | 502 | let ar = 0 | |
472 | 503 | func as (at,au) = if ((au >= aq)) | |
473 | 504 | then at | |
474 | 505 | else al(at, ap[au]) | |
475 | 506 | ||
476 | 507 | func av (at,au) = if ((au >= aq)) | |
477 | 508 | then at | |
478 | 509 | else throw("List size exceeds 6") | |
479 | 510 | ||
480 | 511 | av(as(as(as(as(as(as(ar, 0), 1), 2), 3), 4), 5), 6) | |
481 | 512 | } | |
482 | - | let aw = valueOrElse(getInteger(aj, | |
513 | + | let aw = valueOrElse(getInteger(aj, dr(ai)), 0) | |
483 | 514 | [ao, aw] | |
484 | 515 | } | |
485 | 516 | ||
486 | 517 | ||
487 | - | let | |
518 | + | let dB = 500000 | |
488 | 519 | ||
489 | - | func | |
490 | - | let | |
491 | - | if ($isInstanceOf( | |
520 | + | func dC (dD) = { | |
521 | + | let cA = dD | |
522 | + | if ($isInstanceOf(cA, "List[Any]")) | |
492 | 523 | then { | |
493 | - | let | |
494 | - | if ((size( | |
495 | - | then throw(("Array size is " + toString(size( | |
524 | + | let dE = cA | |
525 | + | if ((size(dE) != bB)) | |
526 | + | then throw(("Array size is " + toString(size(dE)))) | |
496 | 527 | else { | |
497 | - | func | |
498 | - | let | |
499 | - | if ($isInstanceOf( | |
528 | + | func dF (am,an) = { | |
529 | + | let dG = an | |
530 | + | if ($isInstanceOf(dG, "Int")) | |
500 | 531 | then { | |
501 | - | let | |
502 | - | (am :+ toString( | |
532 | + | let dH = dG | |
533 | + | (am :+ toString(dH)) | |
503 | 534 | } | |
504 | 535 | else throw("List type is not Int") | |
505 | 536 | } | |
506 | 537 | ||
507 | - | let | |
508 | - | let ap = | |
538 | + | let dI = { | |
539 | + | let ap = dE | |
509 | 540 | let aq = size(ap) | |
510 | 541 | let ar = nil | |
511 | 542 | func as (at,au) = if ((au >= aq)) | |
512 | 543 | then at | |
513 | - | else | |
544 | + | else dF(at, ap[au]) | |
514 | 545 | ||
515 | 546 | func av (at,au) = if ((au >= aq)) | |
516 | 547 | then at | |
517 | 548 | else throw("List size exceeds 6") | |
518 | 549 | ||
519 | 550 | av(as(as(as(as(as(as(ar, 0), 1), 2), 3), 4), 5), 6) | |
520 | 551 | } | |
521 | - | makeString( | |
552 | + | makeString(dI, "_") | |
522 | 553 | } | |
523 | 554 | } | |
524 | 555 | else throw("fail to cast into List") | |
525 | 556 | } | |
526 | 557 | ||
527 | 558 | ||
528 | - | func | |
529 | - | let | |
530 | - | if ($isInstanceOf( | |
559 | + | func dJ (dD) = { | |
560 | + | let cA = dD | |
561 | + | if ($isInstanceOf(cA, "(List[Any], List[Any])")) | |
531 | 562 | then { | |
532 | - | let | |
533 | - | $Tuple2( | |
563 | + | let dK = cA | |
564 | + | $Tuple2(dC(dK._1), dC(dK._2)) | |
534 | 565 | } | |
535 | 566 | else throw("fail to cast into (List, List)") | |
536 | 567 | } | |
537 | 568 | ||
538 | 569 | ||
539 | - | func | |
540 | - | let t = addressFromString( | |
541 | - | let | |
570 | + | func dL (dM) = { | |
571 | + | let t = addressFromString(dM) | |
572 | + | let dN = if (isDefined(t)) | |
542 | 573 | then wavesBalance(value(t)) | |
543 | 574 | else BalanceDetails(0, 0, 0, 0) | |
544 | - | let | |
545 | - | then assetBalance(value(t), | |
575 | + | let dO = if (isDefined(t)) | |
576 | + | then assetBalance(value(t), cz) | |
546 | 577 | else 0 | |
547 | - | let | |
548 | - | then assetBalance(value(t), | |
578 | + | let dP = if (isDefined(t)) | |
579 | + | then assetBalance(value(t), dn) | |
549 | 580 | else 0 | |
550 | - | let | |
551 | - | let | |
552 | - | let | |
553 | - | let | |
554 | - | let | |
555 | - | let | |
556 | - | let | |
557 | - | let | |
558 | - | let | |
559 | - | let | |
581 | + | let dQ = valueOrElse(getString(aj, bY(dM)), dM) | |
582 | + | let dR = bZ(dM) | |
583 | + | let dS = getString(aj, dR) | |
584 | + | let dT = valueOrElse(getString(aj, cb(dM)), "") | |
585 | + | let dU = valueOrElse(getString(aj, bN(dM)), "") | |
586 | + | let dV = dA(dM)[do] | |
587 | + | let dW = valueOrElse(getInteger(aj, bu(dM)), 0) | |
588 | + | let dX = valueOrElse(getInteger(aj, bv(dM)), 0) | |
589 | + | let dY = valueOrElse(getInteger(aj, bw(dM)), 0) | |
590 | + | let dZ = if (isDefined(dS)) | |
560 | 591 | then (bA + (if (if (isDefined(t)) | |
561 | - | then isDefined(getString(aj, ca( | |
592 | + | then isDefined(getString(aj, ca(dM))) | |
562 | 593 | else false) | |
563 | 594 | then ":1" | |
564 | 595 | else ":0")) | |
565 | 596 | else "" | |
566 | - | [("%s%s__customName__" + | |
597 | + | [("%s%s__customName__" + dQ), ("%s%s__referredBy__" + valueOrElse(dS, "")), ("%s%s__referrals__" + dT), ("%s%s__lastTxId__" + dU), ("%s%d__wavesBalance__" + toString(dN.available)), ("%s%d__wlgoldBalance__" + toString(dP)), ("%s%d__usdtBalance__" + toString(dO)), ("%s%d__stakedPieces__" + toString(dV)), ("%s%d__currentXp__" + toString(dW)), ("%s%d__currentLvl__" + toString(dX)), ("%s%d__pointsToDistribute__" + toString(dY)), ("%s%s__walletArtefacts__" + dZ)] | |
567 | 598 | } | |
568 | 599 | ||
569 | 600 | ||
570 | - | func | |
571 | - | let | |
572 | - | let | |
573 | - | let | |
574 | - | let | |
575 | - | $Tuple3( | |
601 | + | func ea (bW,dV) = { | |
602 | + | let eb = valueOrElse(getInteger(aj, bS(bW)), 0) | |
603 | + | let ec = valueOrElse(getInteger(aj, bT(bz, bW)), 0) | |
604 | + | let ed = (eb / 6) | |
605 | + | let ee = (eb / 7) | |
606 | + | $Tuple3(eb, ec, ((bC + fraction(bC, ((eb + ed) + (2 * ee)), 5)) + fraction(bC, ec, (dV * 5)))) | |
576 | 607 | } | |
577 | 608 | ||
578 | 609 | ||
579 | - | func | |
580 | - | let | |
581 | - | ((bE * (parseIntValue( | |
610 | + | func ef (eg) = { | |
611 | + | let eh = split(eg, "_") | |
612 | + | ((bE * (parseIntValue(eh[1]) + 1)) * parseIntValue(eh[0])) | |
582 | 613 | } | |
583 | 614 | ||
584 | 615 | ||
585 | - | func | |
586 | - | let | |
587 | - | let | |
588 | - | let | |
589 | - | split( | |
616 | + | func ei (ej,ek,eb) = { | |
617 | + | let eg = ((toString(ek) + "_") + toString(eb)) | |
618 | + | let el = toString(ef(eg)) | |
619 | + | let em = valueOrElse(getString(aj, ej), ((((eg + ":0_0_0_0_0_0:0_0_0_0_0_0::0_0_") + el) + "_") + el)) | |
620 | + | split(em, ":") | |
590 | 621 | } | |
591 | 622 | ||
592 | 623 | ||
593 | - | func | |
594 | - | let | |
595 | - | $Tuple5(valueOrElse(getInteger(aj, bR(bo)), -1), value(assetInfo(fromBase58String(bo))).name, valueOrElse(getString(aj, cf(bo)), ""), valueOrElse(getInteger(aj, bn(bo)), | |
624 | + | func en (bo) = { | |
625 | + | let eo = bx(valueOrElse(getInteger(aj, br(bo)), 0)) | |
626 | + | $Tuple5(valueOrElse(getInteger(aj, bR(bo)), -1), value(assetInfo(fromBase58String(bo))).name, valueOrElse(getString(aj, cf(bo)), ""), valueOrElse(getInteger(aj, bn(bo)), eo), ds(invoke(aj, "getBackpackREADONLY", [bo], nil))) | |
596 | 627 | } | |
597 | 628 | ||
598 | 629 | ||
599 | - | func | |
600 | - | let | |
601 | - | let | |
602 | - | let | |
603 | - | let | |
604 | - | let | |
605 | - | let | |
606 | - | [("%s%s__assetId__" + bo), ("%s%s__owner__" + | |
630 | + | func ep (bo,eq,er) = { | |
631 | + | let dQ = valueOrElse(getString(aj, bX(bo)), er._2) | |
632 | + | let es = valueOrElse(getString(aj, bp(bo)), "0_0_0_0_0") | |
633 | + | let dW = valueOrElse(getInteger(aj, bq(bo)), 0) | |
634 | + | let dX = valueOrElse(getInteger(aj, br(bo)), 0) | |
635 | + | let dY = valueOrElse(getInteger(aj, bs(bo)), 0) | |
636 | + | let et = valueOrElse(getString(aj, bt(bo)), ";_;_;_;_;_;") | |
637 | + | [("%s%s__assetId__" + bo), ("%s%s__owner__" + eq), ("%s%s__customName__" + dQ), ("%s%d__stakedTime__" + toString(er._1)), ("%s%s__name__" + er._2), ("%s%s__location__" + er._3), ("%s%d__health__" + toString(er._4)), ("%s%d__maxHealth__" + toString(bx(dX))), ("%s%s__characteristics__" + es), ("%s%d__currentXp__" + toString(dW)), ("%s%d__currentLvl__" + toString(dX)), ("%s%d__pointsToDistribute__" + toString(dY)), ("%s%s__backPack__" + er._5), ("%s%s__equipment__" + et)] | |
607 | 638 | } | |
608 | 639 | ||
609 | 640 | ||
610 | - | func | |
641 | + | func eu (bW,eq,ev) = if ((bW == "")) | |
611 | 642 | then throw("landAssetId is required") | |
612 | 643 | else { | |
613 | - | let | |
614 | - | let | |
615 | - | let | |
616 | - | then | |
617 | - | else ("-" + | |
618 | - | let | |
619 | - | let | |
620 | - | let | |
621 | - | let | |
622 | - | then fraction( | |
644 | + | let ew = value(assetInfo(fromBase58String(bW))) | |
645 | + | let ex = split(ew.description, "_") | |
646 | + | let ey = if ((ew.quantity > 0)) | |
647 | + | then ex[di] | |
648 | + | else ("-" + ex[di]) | |
649 | + | let dV = dy(ex[dj]) | |
650 | + | let ez = ea(bW, dV) | |
651 | + | let eA = (lastBlock.timestamp - ev) | |
652 | + | let eB = if ((ev > 0)) | |
653 | + | then fraction(eA, (ez._3 * dV), bD) | |
623 | 654 | else 0 | |
624 | - | let | |
625 | - | let | |
626 | - | then | |
627 | - | else $Tuple2( | |
628 | - | let | |
629 | - | [("%s%s__assetId__" + bW), ("%s%s__owner__" + | |
655 | + | let eC = fraction(cC, (dV * (ez._1 + 1)), cG) | |
656 | + | let eD = if ((ev > 0)) | |
657 | + | then dJ(invoke(aj, "splitByGlobalAndLocalWeightsREADONLY", [eC, eB, ex[dk]], nil)) | |
658 | + | else $Tuple2(dC(invoke(aj, "splitByGlobalWeightsREADONLY", [eC], nil)), "") | |
659 | + | let dQ = valueOrElse(getString(aj, bQ(bW)), ((ex[dl] + "-") + ex[di])) | |
660 | + | [("%s%s__assetId__" + bW), ("%s%s__owner__" + eq), ("%s%s__customName__" + dQ), ("%s%d__stakedTime__" + toString(ev)), ("%s%s__description__" + makeString([ey, ex[dj], ex[dk], ex[dl]], "_")), ("%s%d__infraLevel__" + toString(ez._1)), ("%s%s__availResByType__" + eD._2), ("%s%d__availResTotal__" + toString(eB)), ("%s%s__needMaterial__" + eD._1), ("%s%s__landArtefacts__PRESALE:" + toString(ez._2)), ("%s%s__warehouse__" + makeString(ei(bV(bW), (dV / cG), ez._1), ":")), ("%s%s__landOrder__" + valueOrElse(getString(dd, ch(bW)), "0@0_0@0_0@0_0@0_0@0_0@0:0@0_0@0_0@0_0@0_0@0_0@0:"))] | |
630 | 661 | } | |
631 | 662 | ||
632 | 663 | ||
633 | - | func | |
664 | + | func eE (bW,eq) = if ((bW == "")) | |
634 | 665 | then throw("landAssetId is required") | |
635 | 666 | else { | |
636 | - | let | |
637 | - | let | |
638 | - | let | |
639 | - | let | |
640 | - | [("%s%s__assetId__" + bW), ("%s%s__owner__" + | |
667 | + | let ew = value(assetInfo(fromBase58String(bW))) | |
668 | + | let ex = split(ew.description, "_") | |
669 | + | let dV = dy(ex[dj]) | |
670 | + | let ez = ea(bW, dV) | |
671 | + | [("%s%s__assetId__" + bW), ("%s%s__owner__" + eq), ("%s%s__warehouse__" + makeString(ei(bV(bW), (dV / cG), ez._1), ":")), ("%s%s__landOrder__" + valueOrElse(getString(dd, ch(bW)), "0@0_0@0_0@0_0@0_0@0_0@0:0@0_0@0_0@0_0@0_0@0_0@0:"))] | |
641 | 672 | } | |
642 | 673 | ||
643 | 674 | ||
644 | - | @Callable( | |
645 | - | func constructorV1 (az) = if (( | |
675 | + | @Callable(eF) | |
676 | + | func constructorV1 (az) = if ((eF.caller != this)) | |
646 | 677 | then throw("permissions denied") | |
647 | 678 | else { | |
648 | - | func | |
679 | + | func eG (am,eH) = (am + "%s") | |
649 | 680 | ||
650 | - | let | |
681 | + | let eI = { | |
651 | 682 | let ap = az | |
652 | 683 | let aq = size(ap) | |
653 | 684 | let ar = "" | |
654 | 685 | func as (at,au) = if ((au >= aq)) | |
655 | 686 | then at | |
656 | - | else | |
687 | + | else eG(at, ap[au]) | |
657 | 688 | ||
658 | 689 | func av (at,au) = if ((au >= aq)) | |
659 | 690 | then at | |
660 | 691 | else throw("List size exceeds 10") | |
661 | 692 | ||
662 | 693 | av(as(as(as(as(as(as(as(as(as(as(ar, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10) | |
663 | 694 | } | |
664 | - | [StringEntry( | |
695 | + | [StringEntry(cV(), makeString(eI :: az, cD)), StringEntry(cW(), toString(this))] | |
665 | 696 | } | |
666 | 697 | ||
667 | 698 | ||
668 | 699 | ||
669 | - | @Callable( | |
670 | - | func walletInfoREADONLY ( | |
700 | + | @Callable(eF) | |
701 | + | func walletInfoREADONLY (dM) = $Tuple2(nil, dL(dM)) | |
671 | 702 | ||
672 | 703 | ||
673 | 704 | ||
674 | - | @Callable( | |
675 | - | func duckByOwnerInfoREADONLY ( | |
676 | - | let | |
677 | - | $Tuple2(nil, if (if (isDefined(addressFromString( | |
678 | - | then isDefined( | |
705 | + | @Callable(eF) | |
706 | + | func duckByOwnerInfoREADONLY (eJ) = { | |
707 | + | let eK = getString(aj, cd(eJ)) | |
708 | + | $Tuple2(nil, if (if (isDefined(addressFromString(eJ))) | |
709 | + | then isDefined(eK) | |
679 | 710 | else false) | |
680 | 711 | then { | |
681 | - | let bo = value( | |
682 | - | | |
712 | + | let bo = value(eK) | |
713 | + | ep(bo, eJ, en(bo)) | |
683 | 714 | } | |
684 | - | else | |
715 | + | else ep("", eJ, $Tuple5(-1, "", "", -1, ""))) | |
685 | 716 | } | |
686 | 717 | ||
687 | 718 | ||
688 | 719 | ||
689 | - | @Callable( | |
720 | + | @Callable(eF) | |
690 | 721 | func duckByAssetIdInfoREADONLY (bo) = { | |
691 | - | let | |
692 | - | $Tuple2(nil, | |
693 | - | then value( | |
694 | - | else "", | |
722 | + | let eq = getString(aj, cc(bo)) | |
723 | + | $Tuple2(nil, ep(bo, if (isDefined(eq)) | |
724 | + | then value(eq) | |
725 | + | else "", en(bo))) | |
695 | 726 | } | |
696 | 727 | ||
697 | 728 | ||
698 | 729 | ||
699 | - | @Callable( | |
730 | + | @Callable(eF) | |
700 | 731 | func landByAssetIdInfoREADONLY (bW) = if ((bW == "")) | |
701 | 732 | then throw("landAssetId is required") | |
702 | 733 | else { | |
703 | - | let | |
704 | - | let | |
734 | + | let ev = valueOrElse(getInteger(aj, bR(bW)), -1) | |
735 | + | let eq = if ((ev > 0)) | |
705 | 736 | then value(getString(aj, bO(bW))) | |
706 | 737 | else "" | |
707 | - | $Tuple2(nil, | |
738 | + | $Tuple2(nil, eu(bW, eq, ev)) | |
708 | 739 | } | |
709 | 740 | ||
710 | 741 | ||
711 | 742 | ||
712 | - | @Callable( | |
713 | - | func stakedLandsByOwnerInfoREADONLY ( | |
743 | + | @Callable(eF) | |
744 | + | func stakedLandsByOwnerInfoREADONLY (eL) = if ((eL == "")) | |
714 | 745 | then throw("landOwnerAddress is required") | |
715 | 746 | else { | |
716 | - | let | |
717 | - | let | |
718 | - | then split_51C(value( | |
747 | + | let eM = getString(aj, dq(eL)) | |
748 | + | let eN = if (isDefined(eM)) | |
749 | + | then split_51C(value(eM), "_") | |
719 | 750 | else nil | |
720 | - | func | |
751 | + | func eO (am,bW) = if ((bW == "")) | |
721 | 752 | then throw("landAssetId is required") | |
722 | 753 | else { | |
723 | - | let | |
724 | - | (am :+ | |
754 | + | let ev = valueOrElse(getInteger(aj, bR(bW)), -1) | |
755 | + | (am :+ eu(bW, eL, ev)) | |
725 | 756 | } | |
726 | 757 | ||
727 | - | let | |
728 | - | let ap = | |
758 | + | let dI = { | |
759 | + | let ap = eN | |
729 | 760 | let aq = size(ap) | |
730 | 761 | let ar = nil | |
731 | 762 | func as (at,au) = if ((au >= aq)) | |
732 | 763 | then at | |
733 | - | else | |
764 | + | else eO(at, ap[au]) | |
734 | 765 | ||
735 | 766 | func av (at,au) = if ((au >= aq)) | |
736 | 767 | then at | |
737 | 768 | else throw("List size exceeds 100") | |
738 | 769 | ||
739 | 770 | av(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(ar, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100) | |
740 | 771 | } | |
741 | - | $Tuple2(nil, | |
772 | + | $Tuple2(nil, dI) | |
742 | 773 | } | |
743 | 774 | ||
744 | 775 | ||
745 | 776 | ||
746 | - | @Callable( | |
747 | - | func landsByIdsInfoREADONLY ( | |
748 | - | func | |
777 | + | @Callable(eF) | |
778 | + | func landsByIdsInfoREADONLY (eP) = { | |
779 | + | func eO (am,bW) = if ((bW == "")) | |
749 | 780 | then throw("landAssetId is required") | |
750 | 781 | else { | |
751 | - | let | |
752 | - | let | |
782 | + | let ev = valueOrElse(getInteger(aj, bR(bW)), -1) | |
783 | + | let eq = if ((ev > 0)) | |
753 | 784 | then value(getString(aj, bO(bW))) | |
754 | 785 | else "" | |
755 | - | (am :+ | |
786 | + | (am :+ eu(bW, eq, ev)) | |
756 | 787 | } | |
757 | 788 | ||
758 | - | let | |
759 | - | let ap = | |
789 | + | let dI = { | |
790 | + | let ap = eP | |
760 | 791 | let aq = size(ap) | |
761 | 792 | let ar = nil | |
762 | 793 | func as (at,au) = if ((au >= aq)) | |
763 | 794 | then at | |
764 | - | else | |
795 | + | else eO(at, ap[au]) | |
765 | 796 | ||
766 | 797 | func av (at,au) = if ((au >= aq)) | |
767 | 798 | then at | |
768 | 799 | else throw("List size exceeds 100") | |
769 | 800 | ||
770 | 801 | av(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(ar, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100) | |
771 | 802 | } | |
772 | - | $Tuple2(nil, | |
803 | + | $Tuple2(nil, dI) | |
773 | 804 | } | |
774 | 805 | ||
775 | 806 | ||
776 | 807 | ||
777 | - | @Callable( | |
808 | + | @Callable(eF) | |
778 | 809 | func warehouseOrderByAssetIdInfoREADONLY (bW) = if ((bW == "")) | |
779 | 810 | then throw("landAssetId is required") | |
780 | 811 | else { | |
781 | - | let | |
782 | - | let | |
812 | + | let ev = valueOrElse(getInteger(aj, bR(bW)), -1) | |
813 | + | let eq = if ((ev > 0)) | |
783 | 814 | then value(getString(aj, bO(bW))) | |
784 | 815 | else "" | |
785 | - | $Tuple2(nil, | |
816 | + | $Tuple2(nil, eE(bW, eq)) | |
786 | 817 | } | |
787 | 818 | ||
788 | 819 | ||
789 | 820 | ||
790 | - | @Callable( | |
791 | - | func ordersByLandIdsInfoREADONLY ( | |
792 | - | func | |
821 | + | @Callable(eF) | |
822 | + | func ordersByLandIdsInfoREADONLY (eP) = { | |
823 | + | func eO (am,bW) = if ((bW == "")) | |
793 | 824 | then throw("landAssetId is required") | |
794 | 825 | else { | |
795 | - | let | |
796 | - | let | |
826 | + | let ev = valueOrElse(getInteger(aj, bR(bW)), -1) | |
827 | + | let eq = if ((ev > 0)) | |
797 | 828 | then value(getString(aj, bO(bW))) | |
798 | 829 | else "" | |
799 | - | (am :+ | |
830 | + | (am :+ eE(bW, eq)) | |
800 | 831 | } | |
801 | 832 | ||
802 | - | let | |
803 | - | let ap = | |
833 | + | let dI = { | |
834 | + | let ap = eP | |
804 | 835 | let aq = size(ap) | |
805 | 836 | let ar = nil | |
806 | 837 | func as (at,au) = if ((au >= aq)) | |
807 | 838 | then at | |
808 | - | else | |
839 | + | else eO(at, ap[au]) | |
809 | 840 | ||
810 | 841 | func av (at,au) = if ((au >= aq)) | |
811 | 842 | then at | |
812 | 843 | else throw("List size exceeds 40") | |
813 | 844 | ||
814 | 845 | av(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(ar, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40) | |
815 | 846 | } | |
816 | - | $Tuple2(nil, | |
847 | + | $Tuple2(nil, dI) | |
817 | 848 | } | |
818 | 849 | ||
819 | 850 | ||
820 | 851 | ||
821 | - | @Callable( | |
822 | - | func cancelWarehouseOrders ( | |
852 | + | @Callable(eF) | |
853 | + | func cancelWarehouseOrders (eP) = if ((eF.caller != this)) | |
823 | 854 | then throw("permission denied") | |
824 | 855 | else { | |
825 | - | let | |
826 | - | if (if (!(isDefined( | |
856 | + | let eQ = getBoolean(aj, cg()) | |
857 | + | if (if (!(isDefined(eQ))) | |
827 | 858 | then true | |
828 | - | else (value( | |
859 | + | else (value(eQ) == false)) | |
829 | 860 | then throw("Contracts should be blocked before canceling orders") | |
830 | 861 | else { | |
831 | - | func | |
862 | + | func eO (ew,bW) = if ((bW == "")) | |
832 | 863 | then throw("landAssetId is required") | |
833 | 864 | else { | |
834 | - | let | |
835 | - | if (if ( | |
865 | + | let eR = dx(invoke(dd, "setWarehouseOrder", ["0@0_0@0_0@0_0@0_0@0_0@0:0@0_0@0_0@0_0@0_0@0_0@0:", bW], nil)) | |
866 | + | if (if (ew) | |
836 | 867 | then true | |
837 | - | else | |
838 | - | then !(if ( | |
839 | - | then | |
868 | + | else eR) | |
869 | + | then !(if (ew) | |
870 | + | then eR | |
840 | 871 | else false) | |
841 | 872 | else false | |
842 | 873 | } | |
843 | 874 | ||
844 | - | let | |
845 | - | let ap = | |
875 | + | let dI = { | |
876 | + | let ap = eP | |
846 | 877 | let aq = size(ap) | |
847 | 878 | let ar = false | |
848 | 879 | func as (at,au) = if ((au >= aq)) | |
849 | 880 | then at | |
850 | - | else | |
881 | + | else eO(at, ap[au]) | |
851 | 882 | ||
852 | 883 | func av (at,au) = if ((au >= aq)) | |
853 | 884 | then at | |
854 | 885 | else throw("List size exceeds 30") | |
855 | 886 | ||
856 | 887 | av(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(ar, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30) | |
857 | 888 | } | |
858 | - | $Tuple2(nil, | |
889 | + | $Tuple2(nil, dI) | |
859 | 890 | } | |
860 | 891 | } | |
861 | 892 | ||
862 | 893 | ||
863 | 894 | ||
864 | - | @Callable( | |
865 | - | func fixWarehouseFormats ( | |
895 | + | @Callable(eF) | |
896 | + | func fixWarehouseFormats (eP) = if ((eF.caller != this)) | |
866 | 897 | then throw("permission denied") | |
867 | 898 | else { | |
868 | - | func | |
899 | + | func eO (am,bW) = if ((bW == "")) | |
869 | 900 | then throw("landAssetId is required") | |
870 | - | else (am + size( | |
901 | + | else (am + size(ds(invoke(aj, "fixWarehouseFormat", [bW], nil)))) | |
871 | 902 | ||
872 | - | let | |
873 | - | let ap = | |
903 | + | let dI = { | |
904 | + | let ap = eP | |
874 | 905 | let aq = size(ap) | |
875 | 906 | let ar = 0 | |
876 | 907 | func as (at,au) = if ((au >= aq)) | |
877 | 908 | then at | |
878 | - | else | |
909 | + | else eO(at, ap[au]) | |
879 | 910 | ||
880 | 911 | func av (at,au) = if ((au >= aq)) | |
881 | 912 | then at | |
882 | 913 | else throw("List size exceeds 25") | |
883 | 914 | ||
884 | 915 | av(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(ar, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25) | |
885 | 916 | } | |
886 | - | $Tuple2(nil, | |
917 | + | $Tuple2(nil, dI) | |
887 | 918 | } | |
888 | 919 | ||
889 | 920 | ||
890 | 921 | ||
891 | - | @Callable( | |
892 | - | func fixStakedPieces ( | |
922 | + | @Callable(eF) | |
923 | + | func fixStakedPieces (eS) = if ((eF.caller != this)) | |
893 | 924 | then throw("permission denied") | |
894 | 925 | else { | |
895 | - | func | |
926 | + | func eT (am,t) = if ((t == "")) | |
896 | 927 | then throw("address is required") | |
897 | - | else (am + | |
928 | + | else (am + dv(invoke(aj, "fixStakedPieces", [t], nil))) | |
898 | 929 | ||
899 | - | let | |
900 | - | let ap = | |
930 | + | let dI = { | |
931 | + | let ap = eS | |
901 | 932 | let aq = size(ap) | |
902 | 933 | let ar = 0 | |
903 | 934 | func as (at,au) = if ((au >= aq)) | |
904 | 935 | then at | |
905 | - | else | |
936 | + | else eT(at, ap[au]) | |
906 | 937 | ||
907 | 938 | func av (at,au) = if ((au >= aq)) | |
908 | 939 | then at | |
909 | 940 | else throw("List size exceeds 16") | |
910 | 941 | ||
911 | 942 | av(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(ar, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16) | |
912 | 943 | } | |
913 | - | $Tuple2(nil, | |
944 | + | $Tuple2(nil, dI) | |
914 | 945 | } | |
915 | 946 | ||
916 | 947 | ||
917 | 948 | ||
918 | - | @Callable( | |
919 | - | func sendUsdtPrize ( | |
949 | + | @Callable(eF) | |
950 | + | func sendUsdtPrize (eJ) = if ((eF.caller != aj)) | |
920 | 951 | then throw("permission denied") | |
921 | 952 | else { | |
922 | - | let | |
923 | - | $Tuple2([ScriptTransfer(addressFromStringValue( | |
953 | + | let eU = fraction(assetBalance(this, cz), dB, cE) | |
954 | + | $Tuple2([ScriptTransfer(addressFromStringValue(eJ), eU, cz)], eU) | |
924 | 955 | } | |
925 | 956 | ||
926 | 957 | ||
927 | 958 | ||
928 | - | @Callable( | |
959 | + | @Callable(eF) | |
929 | 960 | func getEmergencyServiceDataREADONLY () = { | |
930 | - | let | |
931 | - | let | |
932 | - | then split(value( | |
961 | + | let eV = getString(dd, ci()) | |
962 | + | let eW = if (isDefined(eV)) | |
963 | + | then split(value(eV), "_") | |
933 | 964 | else nil | |
934 | - | func | |
935 | - | let | |
936 | - | let | |
937 | - | let | |
965 | + | func eX (am,eY) = { | |
966 | + | let dw = am._2 | |
967 | + | let cx = split(eY, "_") | |
968 | + | let eZ = if ((dw == 0)) | |
938 | 969 | then (bG * bM) | |
939 | 970 | else 0 | |
940 | - | let | |
941 | - | then parseIntValue( | |
971 | + | let fa = if ((size(eW) > dw)) | |
972 | + | then parseIntValue(eW[dw]) | |
942 | 973 | else 0 | |
943 | - | let | |
944 | - | let | |
945 | - | let | |
946 | - | let | |
947 | - | $Tuple2((am._1 :+ | |
974 | + | let fb = cw(cx) | |
975 | + | let fc = fraction((fb * bH), bF, (cF * bM)) | |
976 | + | let fd = fraction((fb * bI), bF, (cF * bM)) | |
977 | + | let fe = makeString([toString(eZ), toString(fa), toString(fc), toString(fd)], "_") | |
978 | + | $Tuple2((am._1 :+ fe), (dw + 1)) | |
948 | 979 | } | |
949 | 980 | ||
950 | - | let | |
981 | + | let du = makeString_2C(( let ap = bK | |
951 | 982 | let aq = size(ap) | |
952 | 983 | let ar = $Tuple2(nil, 0) | |
953 | 984 | func as (at,au) = if ((au >= aq)) | |
954 | 985 | then at | |
955 | - | else | |
986 | + | else eX(at, ap[au]) | |
956 | 987 | ||
957 | 988 | func av (at,au) = if ((au >= aq)) | |
958 | 989 | then at | |
959 | 990 | else throw("List size exceeds 50") | |
960 | 991 | ||
961 | 992 | av(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(as(ar, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50))._1, ":") | |
962 | - | let | |
963 | - | $Tuple2(nil, | |
993 | + | let ff = ("%s%s__emergencyServiceData__" + du) | |
994 | + | $Tuple2(nil, ff) | |
964 | 995 | } | |
965 | 996 | ||
966 | 997 | ||
967 | 998 | ||
968 | - | @Callable( | |
999 | + | @Callable(eF) | |
969 | 1000 | func wlgStatsREADONLY (ay) = { | |
970 | - | let eR = ax(ay, [cO, aj, cP, cQ, cR, cS, aH], cm, 0) | |
971 | - | $Tuple2(nil, [("%s%s%d__wlgAmount__" + toString(eR[z])), ("%s%s%d__wlgPrice__" + toString(eR[A])), ("%s%s%d__usdtFunds__" + toString(eR[B])), ("%s%s%d__usdtEconomy__" + toString(eR[C])), ("%s%s%d__usdtActivity__" + toString(eR[D])), ("%s%s%d__usdtArbitrage__" + toString(eR[E])), ("%s%s%d__usdtPool__" + toString(eR[F])), ("%s%s%d__wlgIssueTime__" + toString(eR[G])), ("%s%s%d__wlgLastMarketingTeamActTime__" + toString(eR[H])), ("%s%s%d__wlgMarketingTotal__" + toString(eR[I])), ("%s%s%d__wlgMarketingAmLeft__" + toString(eR[J])), ("%s%s%d__wlgMarketingAmAvailNow__" + toString(eR[K])), ("%s%s%d__wlgMarketingWlgold__" + toString(eR[L])), ("%s%s%d__wlgTeamTotal__" + toString(eR[M])), ("%s%s%d__wlgTeamAmLeft__" + toString(eR[N])), ("%s%s%d__wlgTeamAmAvailNow__" + toString(eR[O])), ("%s%s%d__wlgTeamWlgold__" + toString(eR[P])), ("%s%s%d__wlgActTotal__" + toString(eR[Q])), ("%s%s%d__wlgActAmLeft__" + toString(eR[R])), ("%s%s%d__wlgActAmAvailNow__" + toString(eR[S])), ("%s%s%d__wlgActWlgold__" + toString(eR[T])), ("%s%s%d__wlgCurPeriod__" + toString(eR[U])), ("%s%s%d__wlgAmLeftTotal__" + toString(eR[V])), ("%s%s%d__wlgCurPeriodDistribution__" + toString(eR[W])), ("%s%s%d__wlgLastUserTime__" + toString(eR[X])), ("%s%s%d__wlgUserAmAvailNow__" + toString(eR[Y])), ("%s%s%d__wlgGuestSLandDaily__" + toString(eR[Z])), ("%s%s%d__wlgInvestFundTotal__" + toString(eR[aa]))]) | |
1001 | + | let fg = ax(ay, [dc, aj, dd, de, df, dg, aH], cz, 0) | |
1002 | + | $Tuple2(nil, [("%s%s%d__wlgAmount__" + toString(fg[z])), ("%s%s%d__wlgPrice__" + toString(fg[A])), ("%s%s%d__usdtFunds__" + toString(fg[B])), ("%s%s%d__usdtEconomy__" + toString(fg[C])), ("%s%s%d__usdtActivity__" + toString(fg[D])), ("%s%s%d__usdtArbitrage__" + toString(fg[E])), ("%s%s%d__usdtPool__" + toString(fg[F])), ("%s%s%d__wlgIssueTime__" + toString(fg[G])), ("%s%s%d__wlgLastMarketingTeamActTime__" + toString(fg[H])), ("%s%s%d__wlgMarketingTotal__" + toString(fg[I])), ("%s%s%d__wlgMarketingAmLeft__" + toString(fg[J])), ("%s%s%d__wlgMarketingAmAvailNow__" + toString(fg[K])), ("%s%s%d__wlgMarketingWlgold__" + toString(fg[L])), ("%s%s%d__wlgTeamTotal__" + toString(fg[M])), ("%s%s%d__wlgTeamAmLeft__" + toString(fg[N])), ("%s%s%d__wlgTeamAmAvailNow__" + toString(fg[O])), ("%s%s%d__wlgTeamWlgold__" + toString(fg[P])), ("%s%s%d__wlgActTotal__" + toString(fg[Q])), ("%s%s%d__wlgActAmLeft__" + toString(fg[R])), ("%s%s%d__wlgActAmAvailNow__" + toString(fg[S])), ("%s%s%d__wlgActWlgold__" + toString(fg[T])), ("%s%s%d__wlgCurPeriod__" + toString(fg[U])), ("%s%s%d__wlgAmLeftTotal__" + toString(fg[V])), ("%s%s%d__wlgCurPeriodDistribution__" + toString(fg[W])), ("%s%s%d__wlgLastUserTime__" + toString(fg[X])), ("%s%s%d__wlgUserAmAvailNow__" + toString(fg[Y])), ("%s%s%d__wlgGuestSLandDaily__" + toString(fg[Z])), ("%s%s%d__wlgInvestFundTotal__" + toString(fg[aa]))]) | |
1003 | + | } | |
1004 | + | ||
1005 | + | ||
1006 | + | ||
1007 | + | @Callable(eF) | |
1008 | + | func tournamentStatsREADONLY (fh) = { | |
1009 | + | let fi = split(valueOrErrorMessage(getString(dh, cj(fh)), (("Error reading tournament " + toString(fh)) + " data")), cD) | |
1010 | + | let fj = split(valueOrErrorMessage(getString(dh, cl(fh)), (("Error reading tournament " + toString(fh)) + " data")), cD) | |
1011 | + | let fk = valueOrElse(getString(dh, cm(fh)), "") | |
1012 | + | $Tuple2(nil, [("%s%s__tournamentStaticData__" + makeString([fi[cn], fi[co], fi[cp], fi[cq]], "_")), ("%s%s__tournamentDynamisData__" + makeString([fj[cr], fj[cs], fj[ct], fj[cu], fj[cv]], "_")), ("%s%s__tournamentRegistrands__" + fk)]) | |
972 | 1013 | } | |
973 | 1014 | ||
974 | 1015 |
github/deemru/w8io/169f3d6 296.73 ms ◑