tx · BTYja6QxptZ1NwMXPkixQaRBk3FHwjxbY5y6bjBn3ojP

3MpSqJhv64PR2m7Ywctv1Mp2Kjt3EUk3CSK:  -0.02300000 Waves

2023.03.19 16:39 [2496967] smart account 3MpSqJhv64PR2m7Ywctv1Mp2Kjt3EUk3CSK > SELF 0.00000000 Waves

{ "type": 13, "id": "BTYja6QxptZ1NwMXPkixQaRBk3FHwjxbY5y6bjBn3ojP", "fee": 2300000, "feeAssetId": null, "timestamp": 1679233118221, "version": 2, "chainId": 84, "sender": "3MpSqJhv64PR2m7Ywctv1Mp2Kjt3EUk3CSK", "senderPublicKey": "ErJhyueNNWWr8GEv71cFyhNnAtRC7sZt2TWFo89gdPo8", "proofs": [ "3H1dahVNu2FvHgb29PqvVhNLNXc3XVgRpRpgiizmHngLYcS8jtGKCPJUZZfM9iH3yWQojYUCsLZhr9LAyqGssCEz" ], "script": "base64:BgI6CAISCAoGAQEBCAEIEgYKBAEYAQgSBQoDAQEIEgcKBQEBCAgIEgUKAwEBCBIDCgEIEgMKAQESAwoBCHMACVNFUEFSQVRPUgICX18ACEtFWV9JTklUAgRJTklUAAxLRVlfTVVMVElTSUcCCE1VTFRJU0lHAApLRVlfU1RBVFVTAgZTVEFUVVMAEEtFWV9NSU5fU0VDX0RFUE8CDE1JTl9TRUNfREVQTwAOS0VZX1BVTklTSE1FTlQCClBVTklTSE1FTlQAFUtFWV9SRVNFVF9CTE9DS19ERUxUQQIRUkVTRVRfQkxPQ0tfREVMVEEADEtFWV9TRUNfREVQTwIIU0VDX0RFUE8AGEtFWV9SRVdBUkRfVE9LRU5fQUREUkVTUwIUUkVXQVJEX1RPS0VOX0FERFJFU1MAEUtFWV9SRVdBUkRfQU1PVU5UAg1SRVdBUkRfQU1PVU5UABNLRVlfV0lOVEVTU19BRERSRVNTAg9XSU5URVNTX0FERFJFU1MAEUtFWV9DVVJSRU5UX0VQT0NIAg1DVVJSRU5UX0VQT0NIABVLRVlfU0lHTkVSU19QRVJfRVBPQ0gCEVNJR05FUlNfUEVSX0VQT0NIABBLRVlfRVZFTlRfU1RBVFVTAgxFVkVOVF9TVEFUVVMACUtFWV9MT0NLUwIFTE9DS1MABUtFWV9UAgFUAAVLRVlfUgIBUgAFS0VZX1MCAVMADUtFWV9SX1NJR05FUlMCCVJfU0lHTkVSUwAVS0VZX0VWRU5UX1NUQVJUX0JMT0NLAhFFVkVOVF9TVEFSVF9CTE9DSwALS0VZX1JfU0lHTUECB1JfU0lHTUEAC0tFWV9TX1NJR01BAgdTX1NJR01BAA1LRVlfU19TSUdORVJTAglTX1NJR05FUlMAGUtFWV9TSUdORURfRVZFTlRfRVhFQ1VUT1ICFVNJR05FRF9FVkVOVF9FWEVDVVRPUgAIS0VZX1NJWkUCBFNJWkUAG0tFWV9TSUdORVJfR1JPVVBfUFVCTElDX0tFWQIXU0lHTkVSX0dST1VQX1BVQkxJQ19LRVkADkZVTkNfTUlOVF9NQU5ZAghtaW50TWFueQAXRlVOQ19JU19DT05GSVJNRURfRVZFTlQCEGlzQ29uZmlybWVkRXZlbnQAEkZVTkNfR0VUX1JBV19FVkVOVAILZ2V0UmF3RXZlbnQAEEVWRU5UX1RZUEVfV0FWRVMCBVdBVkVTAA5FVkVOVF9UWVBFX0VWTQIDRVZNABFFVkVOVF9TVEFUVVNfSU5JVAABABFFVkVOVF9TVEFUVVNfU0lHTgACABFFVkVOVF9TVEFUVVNfRE9ORQADAAdNQVhfSU5UAP//////////fwEQX3ZhbGlkYXRlQWRkcmVzcwIIYWRkcmVzc18EZXJyXwQHJG1hdGNoMAkApggBBQhhZGRyZXNzXwMJAAECBQckbWF0Y2gwAgdBZGRyZXNzBAFhBQckbWF0Y2gwBgkAAgEFBGVycl8BDl92YWxpZGF0ZUFzc2V0Aghhc3NldElkXwRlcnJfBAckbWF0Y2gwCQDsBwEJANkEAQUIYXNzZXRJZF8DCQABAgUHJG1hdGNoMAIFQXNzZXQEAWEFByRtYXRjaDAGCQACAQUEZXJyXwEMX3ZhbGlkYXRlSW50BAR2YWxfDmxvd2VyQm91bmRhcnlfDnVwcGVyQm91bmRhcnlfBGVycl8DAwkAZgIFDmxvd2VyQm91bmRhcnlfBQR2YWxfBgkAZgIFBHZhbF8FDnVwcGVyQm91bmRhcnlfCQACAQUEZXJyXwYBD192YWxpZGF0ZVN0cmluZwIEdmFsXwRlcnJfAwMJAGcCAAAJALECAQUEdmFsXwYJAQhjb250YWlucwIFBHZhbF8FCVNFUEFSQVRPUgkAAgEFBGVycl8GARVfdmFsaWRhdGVQYXltZW50c1NpemUDCXBheW1lbnRzXwd0YXJnZXRfBGVycl8DCQECIT0CCQCQAwEFCXBheW1lbnRzXwUHdGFyZ2V0XwkAAgEFBGVycl8GARVfdmFsaWRhdGVQYXltZW50QXNzZXQDCHBheW1lbnRfBmFzc2V0XwRlcnJfAwkBAiE9AggFCHBheW1lbnRfB2Fzc2V0SWQFBmFzc2V0XwkAAgEFBGVycl8GARJfdmFsaWRhdGVQdWJsaWNLZXkCCnB1YmxpY0tleV8EZXJyXwMJAQIhPQIJAMgBAQkA2QQBBQpwdWJsaWNLZXlfACAJAAIBBQRlcnJfBgETX3ZhbGlkYXRlUHVibGljS2V5cwILcHVibGljS2V5c18EZXJyXwoBCGZvbGRGdW5jAgNhY2MEZWxlbQkAlAoCAwgFA2FjYwJfMQkBEl92YWxpZGF0ZVB1YmxpY0tleQIFBGVsZW0IBQNhY2MCXzIHCAUDYWNjAl8yBAZyZXN1bHQKAAIkbAULcHVibGljS2V5c18KAAIkcwkAkAMBBQIkbAoABSRhY2MwCQCUCgIGBQRlcnJfCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQhmb2xkRnVuYwIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACggFBnJlc3VsdAJfMQEJX2xvYWRJbml0AAQHJG1hdGNoMAkAoAgBBQhLRVlfSU5JVAMJAAECBQckbWF0Y2gwAgdCb29sZWFuBAFhBQckbWF0Y2gwBQFhBwEJX3NhdmVJbml0AQdpc0luaXRfCQDMCAIJAQxCb29sZWFuRW50cnkCBQhLRVlfSU5JVAUHaXNJbml0XwUDbmlsAQ1fbG9hZE11bHRpc2lnAAQHJG1hdGNoMAkAoggBBQxLRVlfTVVMVElTSUcDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwCQERQGV4dHJOYXRpdmUoMTA2MikBBQFhCQEHQWRkcmVzcwEBAAENX3NhdmVNdWx0aXNpZwEJbXVsdGlzaWdfCQDMCAIJAQtTdHJpbmdFbnRyeQIFDEtFWV9NVUxUSVNJRwkApQgBBQltdWx0aXNpZ18FA25pbAEPX2xvYWRNaW5TZWNEZXBvAAQHJG1hdGNoMAkAnwgBBRBLRVlfTUlOX1NFQ19ERVBPAwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAAAQ9fc2F2ZU1pblNlY0RlcG8BBHZhbF8JAMwIAgkBDEludGVnZXJFbnRyeQIFEEtFWV9NSU5fU0VDX0RFUE8FBHZhbF8FA25pbAEMX2xvYWRTZWNEZXBvAQhhY2NvdW50XwQHJG1hdGNoMAkAnwgBCQC5CQIJAMwIAgUMS0VZX1NFQ19ERVBPCQDMCAIJAKUIAQUIYWNjb3VudF8FA25pbAUJU0VQQVJBVE9SAwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAAAQxfc2F2ZVNlY0RlcG8CCGFjY291bnRfBHZhbF8JAMwIAgkBDEludGVnZXJFbnRyeQIJALkJAgkAzAgCBQxLRVlfU0VDX0RFUE8JAMwIAgkApQgBBQhhY2NvdW50XwUDbmlsBQlTRVBBUkFUT1IFBHZhbF8FA25pbAEPX2xvYWRQdW5pc2htZW50AAQHJG1hdGNoMAkAnwgBBQ5LRVlfUFVOSVNITUVOVAMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAEPX3NhdmVQdW5pc2htZW50AQR2YWxfCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ5LRVlfUFVOSVNITUVOVAUEdmFsXwUDbmlsARRfbG9hZFJlc2V0QmxvY2tEZWx0YQAEByRtYXRjaDAJAJ8IAQUVS0VZX1JFU0VUX0JMT0NLX0RFTFRBAwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAAARRfc2F2ZVJlc2V0QmxvY2tEZWx0YQEEdmFsXwkAzAgCCQEMSW50ZWdlckVudHJ5AgUVS0VZX1JFU0VUX0JMT0NLX0RFTFRBBQR2YWxfBQNuaWwBF19sb2FkUmV3YXJkVG9rZW5BZGRyZXNzAAQHJG1hdGNoMAkAoggBBRhLRVlfUkVXQVJEX1RPS0VOX0FERFJFU1MDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwCQERQGV4dHJOYXRpdmUoMTA2MikBBQFhCQEHQWRkcmVzcwEBAAEXX3NhdmVSZXdhcmRUb2tlbkFkZHJlc3MBBHZhbF8JAMwIAgkBC1N0cmluZ0VudHJ5AgUYS0VZX1JFV0FSRF9UT0tFTl9BRERSRVNTCQClCAEFBHZhbF8FA25pbAERX2xvYWRSZXdhcmRBbW91bnQABAckbWF0Y2gwCQCfCAEFEUtFWV9SRVdBUkRfQU1PVU5UAwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAAARFfc2F2ZVJld2FyZEFtb3VudAEEdmFsXwkAzAgCCQEMSW50ZWdlckVudHJ5AgURS0VZX1JFV0FSRF9BTU9VTlQFBHZhbF8FA25pbAETX2xvYWRXaXRuZXNzQWRkcmVzcwAEByRtYXRjaDAJAKIIAQUTS0VZX1dJTlRFU1NfQUREUkVTUwMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAWEJAQdBZGRyZXNzAQEAARNfc2F2ZVdpdG5lc3NBZGRyZXNzAQR2YWxfCQDMCAIJAQtTdHJpbmdFbnRyeQIFE0tFWV9XSU5URVNTX0FERFJFU1MJAKUIAQUEdmFsXwUDbmlsARFfbG9hZEN1cnJlbnRFcG9jaAEMZXhlY0NoYWluSWRfBAckbWF0Y2gwCQCfCAEJALkJAgkAzAgCBRFLRVlfQ1VSUkVOVF9FUE9DSAkAzAgCCQCkAwEFDGV4ZWNDaGFpbklkXwUDbmlsBQlTRVBBUkFUT1IDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAABEV9zYXZlQ3VycmVudEVwb2NoAgxleGVjQ2hhaW5JZF8EdmFsXwkAzAgCCQEMSW50ZWdlckVudHJ5AgkAuQkCCQDMCAIFEUtFWV9DVVJSRU5UX0VQT0NICQDMCAIJAKQDAQUMZXhlY0NoYWluSWRfBQNuaWwFCVNFUEFSQVRPUgUEdmFsXwUDbmlsAQxfbG9hZFNpZ25lcnMCDGV4ZWNDaGFpbklkXwZlcG9jaF8EByRtYXRjaDAJAKIIAQkAuQkCCQDMCAIFFUtFWV9TSUdORVJTX1BFUl9FUE9DSAkAzAgCCQCkAwEFDGV4ZWNDaGFpbklkXwkAzAgCCQCkAwEFBmVwb2NoXwUDbmlsBQlTRVBBUkFUT1IDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwAwkAZgIJALECAQUBYQAACQC1CQIFAWEFCVNFUEFSQVRPUgUDbmlsBQNuaWwBDF9zYXZlU2lnbmVycwMMZXhlY0NoYWluSWRfBmVwb2NoXwhzaWduZXJzXwkAzAgCCQELU3RyaW5nRW50cnkCCQC5CQIJAMwIAgUVS0VZX1NJR05FUlNfUEVSX0VQT0NICQDMCAIJAKQDAQUMZXhlY0NoYWluSWRfCQDMCAIJAKQDAQUGZXBvY2hfBQNuaWwFCVNFUEFSQVRPUgkAuQkCBQhzaWduZXJzXwUJU0VQQVJBVE9SBQNuaWwBEF9sb2FkRXZlbnRTdGF0dXMCDGV4ZWNDaGFpbklkXwhldmVudElkXwQHJG1hdGNoMAkAnwgBCQC5CQIJAMwIAgUQS0VZX0VWRU5UX1NUQVRVUwkAzAgCCQCkAwEFDGV4ZWNDaGFpbklkXwkAzAgCCQCkAwEFCGV2ZW50SWRfBQNuaWwFCVNFUEFSQVRPUgMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEFEUVWRU5UX1NUQVRVU19JTklUARBfc2F2ZUV2ZW50U3RhdHVzAwxleGVjQ2hhaW5JZF8IZXZlbnRJZF8Hc3RhdHVzXwkAzAgCCQEMSW50ZWdlckVudHJ5AgkAuQkCCQDMCAIFEEtFWV9FVkVOVF9TVEFUVVMJAMwIAgkApAMBBQxleGVjQ2hhaW5JZF8JAMwIAgkApAMBBQhldmVudElkXwUDbmlsBQlTRVBBUkFUT1IFB3N0YXR1c18FA25pbAEJX2xvYWRMb2NrAQpwdWJsaWNLZXlfBAckbWF0Y2gwCQCfCAEJALkJAgkAzAgCBQlLRVlfTE9DS1MJAMwIAgUKcHVibGljS2V5XwUDbmlsBQlTRVBBUkFUT1IDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAABCV9zYXZlTG9jawIKcHVibGljS2V5XwR2YWxfCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQC5CQIJAMwIAgUJS0VZX0xPQ0tTCQDMCAIFCnB1YmxpY0tleV8FA25pbAUJU0VQQVJBVE9SBQR2YWxfBQNuaWwBBl9sb2FkVAIMZXhlY0NoYWluSWRfBmVwb2NoXwQHJG1hdGNoMAkAnwgBCQC5CQIJAMwIAgUFS0VZX1QJAMwIAgkApAMBBQxleGVjQ2hhaW5JZF8JAMwIAgkApAMBBQZlcG9jaF8FA25pbAUJU0VQQVJBVE9SAwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAAAQZfc2F2ZVQDDGV4ZWNDaGFpbklkXwZlcG9jaF8EdmFsXwkAzAgCCQEMSW50ZWdlckVudHJ5AgkAuQkCCQDMCAIFBUtFWV9UCQDMCAIJAKQDAQUMZXhlY0NoYWluSWRfCQDMCAIJAKQDAQUGZXBvY2hfBQNuaWwFCVNFUEFSQVRPUgUEdmFsXwUDbmlsARlfbG9hZFNpZ25lckdyb3VwUHVibGljS2V5AgxleGVjQ2hhaW5JZF8GZXBvY2hfBAckbWF0Y2gwCQCiCAEJALkJAgkAzAgCBRtLRVlfU0lHTkVSX0dST1VQX1BVQkxJQ19LRVkJAMwIAgkApAMBBQxleGVjQ2hhaW5JZF8JAMwIAgkApAMBBQZlcG9jaF8FA25pbAUJU0VQQVJBVE9SAwkAAQIFByRtYXRjaDACBlN0cmluZwQBYQUHJG1hdGNoMAkA2QQBBQFhAQABGV9zYXZlU2lnbmVyR3JvdXBQdWJsaWNLZXkDDGV4ZWNDaGFpbklkXwZlcG9jaF8Vc2lnbmVyR3JvdXBQdWJsaWNLZXlfCQDMCAIJAQtTdHJpbmdFbnRyeQIJALkJAgkAzAgCBRtLRVlfU0lHTkVSX0dST1VQX1BVQkxJQ19LRVkJAMwIAgkApAMBBQxleGVjQ2hhaW5JZF8JAMwIAgkApAMBBQZlcG9jaF8FA25pbAUJU0VQQVJBVE9SCQDYBAEFFXNpZ25lckdyb3VwUHVibGljS2V5XwUDbmlsAQ5fbG9hZFJzQnlFdmVudAIMZXhlY0NoYWluSWRfCGV2ZW50SWRfBAckbWF0Y2gwCQCiCAEJALkJAgkAzAgCBQVLRVlfUgkAzAgCCQCkAwEFDGV4ZWNDaGFpbklkXwkAzAgCCQCkAwEFCGV2ZW50SWRfBQNuaWwFCVNFUEFSQVRPUgMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDADCQBmAgkAsQIBBQFhAAAJALUJAgUBYQUJU0VQQVJBVE9SBQNuaWwFA25pbAEOX3NhdmVSc0J5RXZlbnQDDGV4ZWNDaGFpbklkXwhldmVudElkXwNyc18JAMwIAgkBC1N0cmluZ0VudHJ5AgkAuQkCCQDMCAIFBUtFWV9SCQDMCAIJAKQDAQUMZXhlY0NoYWluSWRfCQDMCAIJAKQDAQUIZXZlbnRJZF8FA25pbAUJU0VQQVJBVE9SCQC5CQIFA3JzXwUJU0VQQVJBVE9SBQNuaWwBDl9sb2FkU3NCeUV2ZW50AgxleGVjQ2hhaW5JZF8IZXZlbnRJZF8EByRtYXRjaDAJAKIIAQkAuQkCCQDMCAIFBUtFWV9TCQDMCAIJAKQDAQUMZXhlY0NoYWluSWRfCQDMCAIJAKQDAQUIZXZlbnRJZF8FA25pbAUJU0VQQVJBVE9SAwkAAQIFByRtYXRjaDACBlN0cmluZwQBYQUHJG1hdGNoMAMJAGYCCQCxAgEFAWEAAAkAtQkCBQFhBQlTRVBBUkFUT1IFA25pbAUDbmlsAQ5fc2F2ZVNzQnlFdmVudAMMZXhlY0NoYWluSWRfCGV2ZW50SWRfA3NzXwkAzAgCCQELU3RyaW5nRW50cnkCCQC5CQIJAMwIAgUFS0VZX1MJAMwIAgkApAMBBQxleGVjQ2hhaW5JZF8JAMwIAgkApAMBBQhldmVudElkXwUDbmlsBQlTRVBBUkFUT1IJALkJAgUDc3NfBQlTRVBBUkFUT1IFA25pbAESX2xvYWRSU2lnbWFCeUV2ZW50AgxleGVjQ2hhaW5JZF8IZXZlbnRJZF8EByRtYXRjaDAJAKIIAQkAuQkCCQDMCAIFC0tFWV9SX1NJR01BCQDMCAIJAKQDAQUMZXhlY0NoYWluSWRfCQDMCAIJAKQDAQUIZXZlbnRJZF8FA25pbAUJU0VQQVJBVE9SAwkAAQIFByRtYXRjaDACBlN0cmluZwQBYQUHJG1hdGNoMAUBYQIAARJfc2F2ZVJTaWdtYUJ5RXZlbnQDDGV4ZWNDaGFpbklkXwhldmVudElkXwdyU2lnbWFfCQDMCAIJAQtTdHJpbmdFbnRyeQIJALkJAgkAzAgCBQtLRVlfUl9TSUdNQQkAzAgCCQCkAwEFDGV4ZWNDaGFpbklkXwkAzAgCCQCkAwEFCGV2ZW50SWRfBQNuaWwFCVNFUEFSQVRPUgUHclNpZ21hXwUDbmlsARJfbG9hZFNTaWdtYUJ5RXZlbnQCDGV4ZWNDaGFpbklkXwhldmVudElkXwQHJG1hdGNoMAkAoggBCQC5CQIJAMwIAgULS0VZX1NfU0lHTUEJAMwIAgkApAMBBQxleGVjQ2hhaW5JZF8JAMwIAgkApAMBBQhldmVudElkXwUDbmlsBQlTRVBBUkFUT1IDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwBQFhAgABEl9zYXZlU1NpZ21hQnlFdmVudAMMZXhlY0NoYWluSWRfCGV2ZW50SWRfB3NTaWdtYV8JAMwIAgkBC1N0cmluZ0VudHJ5AgkAuQkCCQDMCAIFC0tFWV9TX1NJR01BCQDMCAIJAKQDAQUMZXhlY0NoYWluSWRfCQDMCAIJAKQDAQUIZXZlbnRJZF8FA25pbAUJU0VQQVJBVE9SBQdzU2lnbWFfBQNuaWwBFl9sb2FkUkJ5RXZlbnRBbmRTaWduZXIDDGV4ZWNDaGFpbklkXwhldmVudElkXwdzaWduZXJfBAckbWF0Y2gwCQCiCAEJALkJAgkAzAgCBQVLRVlfUgkAzAgCCQCkAwEFDGV4ZWNDaGFpbklkXwkAzAgCCQCkAwEFCGV2ZW50SWRfCQDMCAIFB3NpZ25lcl8FA25pbAUJU0VQQVJBVE9SAwkAAQIFByRtYXRjaDACBlN0cmluZwQBYQUHJG1hdGNoMAUBYQIAARZfc2F2ZVJCeUV2ZW50QW5kU2lnbmVyBAxleGVjQ2hhaW5JZF8IZXZlbnRJZF8Hc2lnbmVyXwJyXwkAzAgCCQELU3RyaW5nRW50cnkCCQC5CQIJAMwIAgUFS0VZX1IJAMwIAgkApAMBBQxleGVjQ2hhaW5JZF8JAMwIAgkApAMBBQhldmVudElkXwkAzAgCBQdzaWduZXJfBQNuaWwFCVNFUEFSQVRPUgUCcl8FA25pbAEWX2xvYWRTQnlFdmVudEFuZFNpZ25lcgMMZXhlY0NoYWluSWRfCGV2ZW50SWRfB3NpZ25lcl8EByRtYXRjaDAJAKIIAQkAuQkCCQDMCAIFBUtFWV9TCQDMCAIJAKQDAQUMZXhlY0NoYWluSWRfCQDMCAIJAKQDAQUIZXZlbnRJZF8JAMwIAgUHc2lnbmVyXwUDbmlsBQlTRVBBUkFUT1IDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwBQFhAgABFl9zYXZlU0J5RXZlbnRBbmRTaWduZXIEDGV4ZWNDaGFpbklkXwhldmVudElkXwdzaWduZXJfAnNfCQDMCAIJAQtTdHJpbmdFbnRyeQIJALkJAgkAzAgCBQVLRVlfUwkAzAgCCQCkAwEFDGV4ZWNDaGFpbklkXwkAzAgCCQCkAwEFCGV2ZW50SWRfCQDMCAIFB3NpZ25lcl8FA25pbAUJU0VQQVJBVE9SBQJzXwUDbmlsARhfbG9hZFNpZ25lcnNXaXRoUkJ5RXZlbnQCDGV4ZWNDaGFpbklkXwhldmVudElkXwQHJG1hdGNoMAkAoggBCQC5CQIJAMwIAgUNS0VZX1JfU0lHTkVSUwkAzAgCCQCkAwEFDGV4ZWNDaGFpbklkXwkAzAgCCQCkAwEFCGV2ZW50SWRfBQNuaWwFCVNFUEFSQVRPUgMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDADCQBmAgkAsQIBBQFhAAAJALUJAgUBYQUJU0VQQVJBVE9SBQNuaWwFA25pbAEYX3NhdmVTaWduZXJzV2l0aFJCeUV2ZW50AwxleGVjQ2hhaW5JZF8IZXZlbnRJZF8DcnNfCQDMCAIJAQtTdHJpbmdFbnRyeQIJALkJAgkAzAgCBQ1LRVlfUl9TSUdORVJTCQDMCAIJAKQDAQUMZXhlY0NoYWluSWRfCQDMCAIJAKQDAQUIZXZlbnRJZF8FA25pbAUJU0VQQVJBVE9SCQC5CQIFA3JzXwUJU0VQQVJBVE9SBQNuaWwBGF9sb2FkU2lnbmVyc1dpdGhTQnlFdmVudAIMZXhlY0NoYWluSWRfCGV2ZW50SWRfBAckbWF0Y2gwCQCiCAEJALkJAgkAzAgCBQ1LRVlfU19TSUdORVJTCQDMCAIJAKQDAQUMZXhlY0NoYWluSWRfCQDMCAIJAKQDAQUIZXZlbnRJZF8FA25pbAUJU0VQQVJBVE9SAwkAAQIFByRtYXRjaDACBlN0cmluZwQBYQUHJG1hdGNoMAMJAGYCCQCxAgEFAWEAAAkAtQkCBQFhBQlTRVBBUkFUT1IFA25pbAUDbmlsARhfc2F2ZVNpZ25lcnNXaXRoU0J5RXZlbnQDDGV4ZWNDaGFpbklkXwhldmVudElkXwNzc18JAMwIAgkBC1N0cmluZ0VudHJ5AgkAuQkCCQDMCAIFDUtFWV9TX1NJR05FUlMJAMwIAgkApAMBBQxleGVjQ2hhaW5JZF8JAMwIAgkApAMBBQhldmVudElkXwUDbmlsBQlTRVBBUkFUT1IJALkJAgUDc3NfBQlTRVBBUkFUT1IFA25pbAEUX2xvYWRFdmVudFN0YXJ0QmxvY2sCDGV4ZWNDaGFpbklkXwhldmVudElkXwQHJG1hdGNoMAkAnwgBCQC5CQIJAMwIAgUVS0VZX0VWRU5UX1NUQVJUX0JMT0NLCQDMCAIJAKQDAQUMZXhlY0NoYWluSWRfCQDMCAIJAKQDAQUIZXZlbnRJZF8FA25pbAUJU0VQQVJBVE9SAwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAAARRfc2F2ZUV2ZW50U3RhcnRCbG9jawMMZXhlY0NoYWluSWRfCGV2ZW50SWRfBHZhbF8JAMwIAgkBDEludGVnZXJFbnRyeQIJALkJAgkAzAgCBRVLRVlfRVZFTlRfU1RBUlRfQkxPQ0sJAMwIAgkApAMBBQxleGVjQ2hhaW5JZF8JAMwIAgkApAMBBQhldmVudElkXwUDbmlsBQlTRVBBUkFUT1IFBHZhbF8FA25pbAEfX2xvYWRTaWduZWRFdmVudEV4ZWN1dG9ySWR4U2l6ZQERZXhlY3V0aW9uQ2hhaW5JZF8EByRtYXRjaDAJAJ8IAQkAuQkCCQDMCAIFGUtFWV9TSUdORURfRVZFTlRfRVhFQ1VUT1IJAMwIAgkApAMBBRFleGVjdXRpb25DaGFpbklkXwkAzAgCBQhLRVlfU0laRQUDbmlsBQlTRVBBUkFUT1IDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAABH19zYXZlU2lnbmVkRXZlbnRFeGVjdXRvcklkeFNpemUCEWV4ZWN1dGlvbkNoYWluSWRfBHZhbF8JAMwIAgkBDEludGVnZXJFbnRyeQIJALkJAgkAzAgCBRlLRVlfU0lHTkVEX0VWRU5UX0VYRUNVVE9SCQDMCAIJAKQDAQURZXhlY3V0aW9uQ2hhaW5JZF8JAMwIAgUIS0VZX1NJWkUFA25pbAUJU0VQQVJBVE9SBQR2YWxfBQNuaWwBG19sb2FkU2lnbmVkRXZlbnRFeGVjdXRvcklkeAIRZXhlY3V0aW9uQ2hhaW5JZF8EaWR4XwQHJG1hdGNoMAkAnwgBCQC5CQIJAMwIAgUZS0VZX1NJR05FRF9FVkVOVF9FWEVDVVRPUgkAzAgCCQCkAwEFEWV4ZWN1dGlvbkNoYWluSWRfCQDMCAIJAKQDAQUEaWR4XwUDbmlsBQlTRVBBUkFUT1IDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAABG19zYXZlU2lnbmVkRXZlbnRFeGVjdXRvcklkeAMRZXhlY3V0aW9uQ2hhaW5JZF8EaWR4XwR2YWxfCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQC5CQIJAMwIAgUZS0VZX1NJR05FRF9FVkVOVF9FWEVDVVRPUgkAzAgCCQCkAwEFEWV4ZWN1dGlvbkNoYWluSWRfCQDMCAIJAKQDAQUEaWR4XwUDbmlsBQlTRVBBUkFUT1IFBHZhbF8FA25pbAERX29ubHlUaGlzQ29udHJhY3QBB2NhbGxlcl8DCQECIT0CBQdjYWxsZXJfBQR0aGlzCQACAQIZX29ubHlUaGlzQ29udHJhY3Q6IHJldmVydAYBEF93aGVuTXVsdGlzaWdTZXQAAwkAAAIJAQ1fbG9hZE11bHRpc2lnAAkBB0FkZHJlc3MBAQAJAAIBAhhfd2hlbk11bHRpc2lnU2V0OiByZXZlcnQGARNfd2hlbk5vdEluaXRpYWxpemVkAAMJAQlfbG9hZEluaXQACQACAQIbX3doZW5Ob3RJbml0aWFsaXplZDogcmV2ZXJ0BgEQX3doZW5Jbml0aWFsaXplZAADCQEBIQEJAQlfbG9hZEluaXQACQACAQIYX3doZW5Jbml0aWFsaXplZDogcmV2ZXJ0BgERX2lzQ29uZmlybWVkRXZlbnQDCGV2ZW50SWRfDGV4ZWNDaGFpbklkXwRlcnJfBAZyZXN1bHQJAPwHBAkBE19sb2FkV2l0bmVzc0FkZHJlc3MABRdGVU5DX0lTX0NPTkZJUk1FRF9FVkVOVAkAzAgCBQhldmVudElkXwkAzAgCBQxleGVjQ2hhaW5JZF8FA25pbAUDbmlsAwkAAAIFBnJlc3VsdAUGcmVzdWx0BAckbWF0Y2gwBQZyZXN1bHQDCQABAgUHJG1hdGNoMAIHQm9vbGVhbgQBYQUHJG1hdGNoMAMJAQEhAQUBYQkAAgEFBGVycl8GCQACAQUEZXJyXwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEMX2dldFJhd0V2ZW50AghldmVudElkXwxleGVjQ2hhaW5JZF8EBnJlc3VsdAkA/AcECQETX2xvYWRXaXRuZXNzQWRkcmVzcwAFEkZVTkNfR0VUX1JBV19FVkVOVAkAzAgCBQhldmVudElkXwkAzAgCBQxleGVjQ2hhaW5JZF8FA25pbAUDbmlsAwkAAAIFBnJlc3VsdAUGcmVzdWx0BAckbWF0Y2gwBQZyZXN1bHQDCQABAgUHJG1hdGNoMAIUKFN0cmluZywgQnl0ZVZlY3RvcikEAWEFByRtYXRjaDAFAWEJAAIBAhRfZ2V0UmF3RXZlbnQ6IHJldmVydAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEPX2lzQWN0aXZlU2lnbmVyAwpwdWJsaWNLZXlfC3B1YmxpY0tleXNfBGVycl8DCQEBIQEJAQ9jb250YWluc0VsZW1lbnQCBQtwdWJsaWNLZXlzXwUKcHVibGljS2V5XwkAAgEFBGVycl8GAQ1fY2hlY2tTZWNEZXBvAgdzaWduZXJfBGVycl8DCQBmAgkBD19sb2FkTWluU2VjRGVwbwAJAQxfbG9hZFNlY0RlcG8BCQCnCAEJANkEAQUHc2lnbmVyXwkAAgEFBGVycl8GARtfY2hlY2tFdmVudFN0YXR1c0ZvclN1Ym1pdFIDDGV4ZWNDaGFpbklkXwhldmVudElkXwRlcnJfAwkBAiE9AgkBEF9sb2FkRXZlbnRTdGF0dXMCBQxleGVjQ2hhaW5JZF8FCGV2ZW50SWRfBRFFVkVOVF9TVEFUVVNfSU5JVAkAAgEFBGVycl8GARtfY2hlY2tFdmVudFN0YXR1c0ZvclN1Ym1pdFMDDGV4ZWNDaGFpbklkXwhldmVudElkXwRlcnJfAwkBAiE9AgkBEF9sb2FkRXZlbnRTdGF0dXMCBQxleGVjQ2hhaW5JZF8FCGV2ZW50SWRfBRFFVkVOVF9TVEFUVVNfU0lHTgkAAgEFBGVycl8GARlfY2hlY2tFdmVudFN0YXR1c0ZvclJlc2V0AwxleGVjQ2hhaW5JZF8IZXZlbnRJZF8EZXJyXwMDCQECIT0CCQEQX2xvYWRFdmVudFN0YXR1cwIFDGV4ZWNDaGFpbklkXwUIZXZlbnRJZF8FEUVWRU5UX1NUQVRVU19TSUdOBgkAZgIJAGQCCQEUX2xvYWRFdmVudFN0YXJ0QmxvY2sCBQxleGVjQ2hhaW5JZF8FCGV2ZW50SWRfCQEUX2xvYWRSZXNldEJsb2NrRGVsdGEABQZoZWlnaHQJAAIBBQRlcnJfBgEPX2luY3JlbWVudExvY2tzAQhzaWduZXJzXwoBCGZvbGRGdW5jAgNhY2MEZWxlbQkAzggCBQNhY2MJAQlfc2F2ZUxvY2sCBQRlbGVtCQBkAgkBCV9sb2FkTG9jawEFBGVsZW0AAQoAAiRsBQhzaWduZXJzXwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEIZm9sZEZ1bmMCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoBC19pc1plcm9Mb2NrAgpwdWJsaWNLZXlfBGVycl8DCQBmAgkBCV9sb2FkTG9jawEFCnB1YmxpY0tleV8AAAkAAgEFBGVycl8GAQ5fbm90U3VibWl0dGVkUgQMZXhlY0NoYWluSWRfCGV2ZW50SWRfB3NpZ25lcl8EZXJyXwQBcgkBFl9sb2FkUkJ5RXZlbnRBbmRTaWduZXIDBQxleGVjQ2hhaW5JZF8FCGV2ZW50SWRfBQdzaWduZXJfAwMJAQIhPQIFAXICAAkBD2NvbnRhaW5zRWxlbWVudAIJAQ5fbG9hZFJzQnlFdmVudAIFDGV4ZWNDaGFpbklkXwUIZXZlbnRJZF8FAXIHCQACAQUEZXJyXwYBDl9ub3RTdWJtaXR0ZWRTBAxleGVjQ2hhaW5JZF8IZXZlbnRJZF8Hc2lnbmVyXwRlcnJfBAFzCQEWX2xvYWRTQnlFdmVudEFuZFNpZ25lcgMFDGV4ZWNDaGFpbklkXwUIZXZlbnRJZF8FB3NpZ25lcl8DAwkBAiE9AgUBcwIACQEPY29udGFpbnNFbGVtZW50AgkBDl9sb2FkU3NCeUV2ZW50AgUMZXhlY0NoYWluSWRfBQhldmVudElkXwUBcwcJAAIBBQRlcnJfBgELX3N1Ym1pdHRlZFIEDGV4ZWNDaGFpbklkXwhldmVudElkXwdzaWduZXJfBGVycl8EAXIJARZfbG9hZFJCeUV2ZW50QW5kU2lnbmVyAwUMZXhlY0NoYWluSWRfBQhldmVudElkXwUHc2lnbmVyXwMDCQAAAgUBcgIABgkBASEBCQEPY29udGFpbnNFbGVtZW50AgkBDl9sb2FkUnNCeUV2ZW50AgUMZXhlY0NoYWluSWRfBQhldmVudElkXwUBcgkAAgEFBGVycl8GAQ9fc2xhc2hJbmNvcnJlY3QCDXNpZ25lcnNXaXRoUl8Nc2lnbmVyc1dpdGhTXwQKcHVuaXNobWVudAkBD19sb2FkUHVuaXNobWVudAAKAQhmb2xkRnVuYwIDYWNjBGVsZW0DCQEPY29udGFpbnNFbGVtZW50AgUNc2lnbmVyc1dpdGhTXwUEZWxlbQkAlQoDCAUDYWNjAl8xCQDNCAIIBQNhY2MCXzIFBGVsZW0IBQNhY2MCXzMEDXNpZ25lckFkZHJlc3MJAKcIAQkA2QQBBQRlbGVtCQCVCgMJAM4IAggFA2FjYwJfMQkBDF9zYXZlU2VjRGVwbwIFDXNpZ25lckFkZHJlc3MJAGUCCQEMX2xvYWRTZWNEZXBvAQUNc2lnbmVyQWRkcmVzcwUKcHVuaXNobWVudAgFA2FjYwJfMgkAZAIIBQNhY2MCXzMFCnB1bmlzaG1lbnQKAAIkbAUNc2lnbmVyc1dpdGhSXwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAJAJUKAwUDbmlsBQNuaWwAAAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEIZm9sZEZ1bmMCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoBEl9jb21wZW5zYXRlQ29ycmVjdAIIc2lnbmVyc18NY29tcGVuc2F0aW9uXwQJcGVyU2lnbmVyCQBpAgUNY29tcGVuc2F0aW9uXwkAkAMBBQhzaWduZXJzXwoBCGZvbGRGdW5jAgNhY2MEZWxlbQkAzQgCBQNhY2MJAQ5TY3JpcHRUcmFuc2ZlcgMJAKcIAQkA2QQBBQRlbGVtBQlwZXJTaWduZXIFBHVuaXQKAAIkbAUIc2lnbmVyc18KAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBCGZvbGRGdW5jAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKARBfdmVyaWZ5U2lnbmF0dXJlBgxleGVjQ2hhaW5JZF8GZXBvY2hfCGV2ZW50SWRfB3JTaWdtYV8Hc1NpZ21hXwRlcnJfBAVldmVudAkBDF9nZXRSYXdFdmVudAIFCGV2ZW50SWRfBQxleGVjQ2hhaW5JZF8ECWV2ZW50VHlwZQgFBWV2ZW50Al8xBApldmVudEJ5dGVzCAUFZXZlbnQCXzIEDmdyb3VwUHVibGljS2V5CQEZX2xvYWRTaWduZXJHcm91cFB1YmxpY0tleQIFDGV4ZWNDaGFpbklkXwUGZXBvY2hfAwkAAAIFCWV2ZW50VHlwZQUQRVZFTlRfVFlQRV9XQVZFUwQJc2lnbmF0dXJlCQDLAQIJANkEAQUHclNpZ21hXwkA2QQBBQdzU2lnbWFfAwkBASEBCQD0AwMFCmV2ZW50Qnl0ZXMFCXNpZ25hdHVyZQUOZ3JvdXBQdWJsaWNLZXkJAAIBBQRlcnJfBgMJAAACBQlldmVudFR5cGUFDkVWRU5UX1RZUEVfRVZNBgkAAgEFBGVycl8BFV9wdWJsaWNLZXlzVG9BZGRyc1N0cgELcHVibGljS2V5c18KAQhmb2xkZnVuYwIEYWNjXwVlbGVtXwkAzQgCBQRhY2NfCQClCAEJAKcIAQkA2QQBBQVlbGVtXwoAAiRsBQtwdWJsaWNLZXlzXwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEIZm9sZGZ1bmMCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDUxCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIAIwAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzCAFpAQRpbml0BgttaW5TZWNEZXBvXwtwdW5pc2htZW50XxByZXNldEJsb2NrRGVsdGFfE3Jld2FyZFRva2VuQWRkcmVzc18NcmV3YXJkQW1vdW50Xw93aXRuZXNzQWRkcmVzc18EA2VycgMDAwMDAwMDCQERX29ubHlUaGlzQ29udHJhY3QBCAUBaQZjYWxsZXIJARNfd2hlbk5vdEluaXRpYWxpemVkAAcJARBfd2hlbk11bHRpc2lnU2V0AAcJAQxfdmFsaWRhdGVJbnQEBQttaW5TZWNEZXBvXwULcHVuaXNobWVudF8FB01BWF9JTlQCGGluaXQ6IGludmFsaWQgbWluU2VjRGVwbwcJAQxfdmFsaWRhdGVJbnQEBQtwdW5pc2htZW50XwAABQdNQVhfSU5UAhhpbml0OiBpbnZhbGlkIHB1bmlzaG1lbnQHCQEMX3ZhbGlkYXRlSW50BAUQcmVzZXRCbG9ja0RlbHRhXwAABQdNQVhfSU5UAh1pbml0OiBpbnZhbGlkIHJlc2V0QmxvY2tEZWx0YQcJARBfdmFsaWRhdGVBZGRyZXNzAgUTcmV3YXJkVG9rZW5BZGRyZXNzXwIgaW5pdDogaW52YWxpZCByZXdhcmRUb2tlbkFkZHJlc3MHCQEMX3ZhbGlkYXRlSW50BAUNcmV3YXJkQW1vdW50XwAABQdNQVhfSU5UAhppbml0OiBpbnZhbGlkIHJld2FyZEFtb3VudAcJARBfdmFsaWRhdGVBZGRyZXNzAgUPd2l0bmVzc0FkZHJlc3NfAhxpbml0OiBpbnZhbGlkIHdpdG5lc3NBZGRyZXNzBwMJAAACBQNlcnIFA2VycgkAlAoCCQDOCAIJAM4IAgkAzggCCQDOCAIJAM4IAgkAzggCCQEJX3NhdmVJbml0AQYJAQ9fc2F2ZU1pblNlY0RlcG8BBQttaW5TZWNEZXBvXwkBD19zYXZlUHVuaXNobWVudAEFC3B1bmlzaG1lbnRfCQEUX3NhdmVSZXNldEJsb2NrRGVsdGEBBRByZXNldEJsb2NrRGVsdGFfCQEXX3NhdmVSZXdhcmRUb2tlbkFkZHJlc3MBCQERQGV4dHJOYXRpdmUoMTA2MikBBRNyZXdhcmRUb2tlbkFkZHJlc3NfCQERX3NhdmVSZXdhcmRBbW91bnQBBQ1yZXdhcmRBbW91bnRfCQETX3NhdmVXaXRuZXNzQWRkcmVzcwEJARFAZXh0ck5hdGl2ZSgxMDYyKQEFD3dpdG5lc3NBZGRyZXNzXwUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARBzZXRBY3RpdmVTaWduZXJzBAxleGVjQ2hhaW5JZF8Ic2lnbmVyc18CdF8Vc2lnbmVyR3JvdXBQdWJsaWNLZXlfBANlcnIDAwMDCQERX29ubHlUaGlzQ29udHJhY3QBCAUBaQZjYWxsZXIJARBfd2hlbkluaXRpYWxpemVkAAcJARNfdmFsaWRhdGVQdWJsaWNLZXlzAgUIc2lnbmVyc18CIXNldEFjdGl2ZVNpZ25lcnM6IGludmFsaWQgc2lnbmVycwcJAQxfdmFsaWRhdGVJbnQEBQJ0XwACCQCQAwEFCHNpZ25lcnNfAhtzZXRBY3RpdmVTaWduZXJzOiBpbnZhbGlkIFQHCQEPX3ZhbGlkYXRlU3RyaW5nAgUVc2lnbmVyR3JvdXBQdWJsaWNLZXlfAi5zZXRBY3RpdmVTaWduZXJzOiBpbnZhbGlkIHNpZ25lckdyb3VwUHVibGljS2V5BwMJAAACBQNlcnIFA2VycgQFZXBvY2gJARFfbG9hZEN1cnJlbnRFcG9jaAEFDGV4ZWNDaGFpbklkXwkAlAoCCQDOCAIJAM4IAgkAzggCCQDOCAIJARFfc2F2ZUN1cnJlbnRFcG9jaAIFDGV4ZWNDaGFpbklkXwkAZAIFBWVwb2NoAAEJAQZfc2F2ZVQDBQxleGVjQ2hhaW5JZF8JAGQCBQVlcG9jaAABBQJ0XwkBDF9zYXZlU2lnbmVycwMFDGV4ZWNDaGFpbklkXwkAZAIFBWVwb2NoAAEFCHNpZ25lcnNfCQEZX3NhdmVTaWduZXJHcm91cFB1YmxpY0tleQMFDGV4ZWNDaGFpbklkXwkAZAIFBWVwb2NoAAEJANkEAQUVc2lnbmVyR3JvdXBQdWJsaWNLZXlfCQEPX2luY3JlbWVudExvY2tzAQUIc2lnbmVyc18FBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEHc3VibWl0UgMIZXZlbnRJZF8MZXhlY0NoYWluSWRfAnJfBA9jYWxsZXJQdWJsaWNLZXkJANgEAQgFAWkPY2FsbGVyUHVibGljS2V5BAVlcG9jaAkBEV9sb2FkQ3VycmVudEVwb2NoAQUMZXhlY0NoYWluSWRfBAF0CQEGX2xvYWRUAgUMZXhlY0NoYWluSWRfBQVlcG9jaAQDZXJyAwMDAwMDAwMJARBfd2hlbkluaXRpYWxpemVkAAkBDF92YWxpZGF0ZUludAQFCGV2ZW50SWRfAAAFB01BWF9JTlQCGHN1Ym1pdFI6IGludmFsaWQgZXZlbnRJZAcJAQxfdmFsaWRhdGVJbnQEBQxleGVjQ2hhaW5JZF8AAAUHTUFYX0lOVAIcc3VibWl0UjogaW52YWxpZCBleGVjQ2hhaW5JZAcJAQ9fdmFsaWRhdGVTdHJpbmcCBQJyXwISc3VibWl0UjogaW52YWxpZCByBwkBEV9pc0NvbmZpcm1lZEV2ZW50AwUIZXZlbnRJZF8FDGV4ZWNDaGFpbklkXwIcc3VibWl0UjogZXZlbnQgbm90IGNvbmZpcm1lZAcJAQ9faXNBY3RpdmVTaWduZXIDBQ9jYWxsZXJQdWJsaWNLZXkJAQxfbG9hZFNpZ25lcnMCBQxleGVjQ2hhaW5JZF8FBWVwb2NoAhNzdWJtaXRSOiBub3QgYWN0aXZlBwkBDV9jaGVja1NlY0RlcG8CBQ9jYWxsZXJQdWJsaWNLZXkCJHN1Ym1pdFI6IG5vdCBlbm91Z2ggc2VjdXJpdHkgZGVwb3NpdAcJARtfY2hlY2tFdmVudFN0YXR1c0ZvclN1Ym1pdFIDBQxleGVjQ2hhaW5JZF8FCGV2ZW50SWRfAh1zdWJtaXRSOiBpbnZhbGlkIGV2ZW50IHN0YXR1cwcJAQ5fbm90U3VibWl0dGVkUgQFDGV4ZWNDaGFpbklkXwUIZXZlbnRJZF8FD2NhbGxlclB1YmxpY0tleQIac3VibWl0UjogYWxyZWFkeSBzdWJtaXR0ZWQHAwkAAAIFA2VycgUDZXJyBAZyQXJyYXkJAQ5fbG9hZFJzQnlFdmVudAIFDGV4ZWNDaGFpbklkXwUIZXZlbnRJZF8EDHNpZ25lcnNBcnJheQkBGF9sb2FkU2lnbmVyc1dpdGhSQnlFdmVudAIFDGV4ZWNDaGFpbklkXwUIZXZlbnRJZF8EEmV2ZW50U3RhdHVzQWN0aW9ucwMJAAACCQBkAgkAkAMBBQZyQXJyYXkAAQUBdAkAzggCCQEQX3NhdmVFdmVudFN0YXR1cwMFDGV4ZWNDaGFpbklkXwUIZXZlbnRJZF8FEUVWRU5UX1NUQVRVU19TSUdOCQEUX3NhdmVFdmVudFN0YXJ0QmxvY2sDBQxleGVjQ2hhaW5JZF8FCGV2ZW50SWRfBQZoZWlnaHQFA25pbAkAlAoCCQDOCAIJAM4IAgkAzggCCQEOX3NhdmVSc0J5RXZlbnQDBQxleGVjQ2hhaW5JZF8FCGV2ZW50SWRfCQDNCAIFBnJBcnJheQUCcl8JARZfc2F2ZVJCeUV2ZW50QW5kU2lnbmVyBAUMZXhlY0NoYWluSWRfBQhldmVudElkXwUPY2FsbGVyUHVibGljS2V5BQJyXwkBGF9zYXZlU2lnbmVyc1dpdGhSQnlFdmVudAMFDGV4ZWNDaGFpbklkXwUIZXZlbnRJZF8JAM0IAgUMc2lnbmVyc0FycmF5BQ9jYWxsZXJQdWJsaWNLZXkFEmV2ZW50U3RhdHVzQWN0aW9ucwUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQdzdWJtaXRTBQhldmVudElkXwxleGVjQ2hhaW5JZF8HclNpZ21hXwJzXwdzU2lnbWFfBA9jYWxsZXJQdWJsaWNLZXkJANgEAQgFAWkPY2FsbGVyUHVibGljS2V5BAVlcG9jaAkBEV9sb2FkQ3VycmVudEVwb2NoAQUMZXhlY0NoYWluSWRfBAF0CQEGX2xvYWRUAgUMZXhlY0NoYWluSWRfBQVlcG9jaAQDZXJyAwMDAwMDAwMDCQEQX3doZW5Jbml0aWFsaXplZAAJAQxfdmFsaWRhdGVJbnQEBQhldmVudElkXwAABQdNQVhfSU5UAhhzdWJtaXRTOiBpbnZhbGlkIGV2ZW50SWQHCQEMX3ZhbGlkYXRlSW50BAUMZXhlY0NoYWluSWRfAAAFB01BWF9JTlQCHHN1Ym1pdFM6IGludmFsaWQgZXhlY0NoYWluSWQHCQEPX3ZhbGlkYXRlU3RyaW5nAgUHclNpZ21hXwIYc3VibWl0UzogaW52YWxpZCByIHNpZ21hBwkBD192YWxpZGF0ZVN0cmluZwIFAnNfAhJzdWJtaXRTOiBpbnZhbGlkIHMHCQEPX2lzQWN0aXZlU2lnbmVyAwUPY2FsbGVyUHVibGljS2V5CQEMX2xvYWRTaWduZXJzAgUMZXhlY0NoYWluSWRfBQVlcG9jaAITc3VibWl0Uzogbm90IGFjdGl2ZQcJAQ1fY2hlY2tTZWNEZXBvAgUPY2FsbGVyUHVibGljS2V5AiRzdWJtaXRTOiBub3QgZW5vdWdoIHNlY3VyaXR5IGRlcG9zaXQHCQEbX2NoZWNrRXZlbnRTdGF0dXNGb3JTdWJtaXRTAwUMZXhlY0NoYWluSWRfBQhldmVudElkXwIdc3VibWl0UzogaW52YWxpZCBldmVudCBzdGF0dXMHCQEOX25vdFN1Ym1pdHRlZFMEBQxleGVjQ2hhaW5JZF8FCGV2ZW50SWRfBQ9jYWxsZXJQdWJsaWNLZXkCGnN1Ym1pdFM6IGFscmVhZHkgc3VibWl0dGVkBwkBC19zdWJtaXR0ZWRSBAUMZXhlY0NoYWluSWRfBQhldmVudElkXwUPY2FsbGVyUHVibGljS2V5AhtzdWJtaXRTOiBSIGlzIG5vdCBzdWJtaXR0ZWQHAwkAAAIFA2VycgUDZXJyBAZzQXJyYXkJAQ5fbG9hZFNzQnlFdmVudAIFDGV4ZWNDaGFpbklkXwUIZXZlbnRJZF8EDHNpZ25lcnNBcnJheQkBGF9sb2FkU2lnbmVyc1dpdGhTQnlFdmVudAIFDGV4ZWNDaGFpbklkXwUIZXZlbnRJZF8EEmV2ZW50U3RhdHVzQWN0aW9ucwMJAAACCQBkAgkAkAMBBQZzQXJyYXkAAQUBdAQEZXJyMQMJAQ9fdmFsaWRhdGVTdHJpbmcCBQdzU2lnbWFfAhhzdWJtaXRTOiBpbnZhbGlkIHMgc2lnbWEJARBfdmVyaWZ5U2lnbmF0dXJlBgUMZXhlY0NoYWluSWRfBQVlcG9jaAUIZXZlbnRJZF8FB3JTaWdtYV8FB3NTaWdtYV8CGnN1Ym1pdFM6IGludmFsaWQgc2lnbmF0dXJlBwMJAAACBQRlcnIxBQRlcnIxBA9leGVjdXRvcklkeFNpemUJAR9fbG9hZFNpZ25lZEV2ZW50RXhlY3V0b3JJZHhTaXplAQUMZXhlY0NoYWluSWRfBA9yZXdhcmRBZGRyZXNzZXMJARVfcHVibGljS2V5c1RvQWRkcnNTdHIBCQDNCAIFDHNpZ25lcnNBcnJheQUPY2FsbGVyUHVibGljS2V5BA5zaWduZXJzUmV3YXJkcwkA/AcECQEXX2xvYWRSZXdhcmRUb2tlbkFkZHJlc3MABQ5GVU5DX01JTlRfTUFOWQkAzAgCCQERX2xvYWRSZXdhcmRBbW91bnQACQDMCAIFD3Jld2FyZEFkZHJlc3NlcwUDbmlsBQNuaWwDCQAAAgUOc2lnbmVyc1Jld2FyZHMFDnNpZ25lcnNSZXdhcmRzCQDOCAIJAM4IAgkAzggCCQEQX3NhdmVFdmVudFN0YXR1cwMFDGV4ZWNDaGFpbklkXwUIZXZlbnRJZF8FEUVWRU5UX1NUQVRVU19ET05FCQEbX3NhdmVTaWduZWRFdmVudEV4ZWN1dG9ySWR4AwUMZXhlY0NoYWluSWRfBQ9leGVjdXRvcklkeFNpemUFCGV2ZW50SWRfCQEfX3NhdmVTaWduZWRFdmVudEV4ZWN1dG9ySWR4U2l6ZQIFDGV4ZWNDaGFpbklkXwkAZAIFD2V4ZWN1dG9ySWR4U2l6ZQABCQESX3NhdmVTU2lnbWFCeUV2ZW50AwUMZXhlY0NoYWluSWRfBQhldmVudElkXwUHc1NpZ21hXwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgUDbmlsCQCUCgIJAM4IAgkAzggCCQDOCAIJAM4IAgkBDl9zYXZlU3NCeUV2ZW50AwUMZXhlY0NoYWluSWRfBQhldmVudElkXwkAzQgCBQZzQXJyYXkFAnNfCQEWX3NhdmVTQnlFdmVudEFuZFNpZ25lcgQFDGV4ZWNDaGFpbklkXwUIZXZlbnRJZF8FD2NhbGxlclB1YmxpY0tleQUCc18JARhfc2F2ZVNpZ25lcnNXaXRoU0J5RXZlbnQDBQxleGVjQ2hhaW5JZF8FCGV2ZW50SWRfCQDNCAIFDHNpZ25lcnNBcnJheQUPY2FsbGVyUHVibGljS2V5CQESX3NhdmVSU2lnbWFCeUV2ZW50AwUMZXhlY0NoYWluSWRfBQhldmVudElkXwUHclNpZ21hXwUSZXZlbnRTdGF0dXNBY3Rpb25zBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBBXJlc2V0AwhldmVudElkXwxleGVjQ2hhaW5JZF8Ccl8ED2NhbGxlclB1YmxpY0tleQkA2AQBCAUBaQ9jYWxsZXJQdWJsaWNLZXkEBWVwb2NoCQERX2xvYWRDdXJyZW50RXBvY2gBBQxleGVjQ2hhaW5JZF8EA2VycgMDAwMDAwkBEF93aGVuSW5pdGlhbGl6ZWQACQEMX3ZhbGlkYXRlSW50BAUIZXZlbnRJZF8AAAUHTUFYX0lOVAIWcmVzZXQ6IGludmFsaWQgZXZlbnRJZAcJAQxfdmFsaWRhdGVJbnQEBQxleGVjQ2hhaW5JZF8AAAUHTUFYX0lOVAIacmVzZXQ6IGludmFsaWQgZXhlY0NoYWluSWQHCQEPX3ZhbGlkYXRlU3RyaW5nAgUCcl8CEHJlc2V0OiBpbnZhbGlkIHIHCQEPX2lzQWN0aXZlU2lnbmVyAwUPY2FsbGVyUHVibGljS2V5CQEMX2xvYWRTaWduZXJzAgUMZXhlY0NoYWluSWRfBQVlcG9jaAIRcmVzZXQ6IG5vdCBhY3RpdmUHCQENX2NoZWNrU2VjRGVwbwIFD2NhbGxlclB1YmxpY0tleQIicmVzZXQ6IG5vdCBlbm91Z2ggc2VjdXJpdHkgZGVwb3NpdAcJARlfY2hlY2tFdmVudFN0YXR1c0ZvclJlc2V0AwUMZXhlY0NoYWluSWRfBQhldmVudElkXwIbcmVzZXQ6IGludmFsaWQgZXZlbnQgc3RhdHVzBwMJAAACBQNlcnIFA2VycgQLc2xhc2hBbW91bnQAAAQMc2lnbmVyc1dpdGhSCQEYX2xvYWRTaWduZXJzV2l0aFJCeUV2ZW50AgUMZXhlY0NoYWluSWRfBQhldmVudElkXwQMc2lnbmVyc1dpdGhTCQEYX2xvYWRTaWduZXJzV2l0aFNCeUV2ZW50AgUMZXhlY0NoYWluSWRfBQhldmVudElkXwQGcmVzdWx0CQEPX3NsYXNoSW5jb3JyZWN0AgUMc2lnbmVyc1dpdGhSBQxzaWduZXJzV2l0aFMED3NsYXNoaW5nQWN0aW9ucwgFBnJlc3VsdAJfMQQSY29tcGVuc2F0ZWRTaWduZXJzCAUGcmVzdWx0Al8yBAxjb21wZW5zYXRpb24IBQZyZXN1bHQCXzMEE2NvbXBlbnNhdGlvbkFjdGlvbnMJARJfY29tcGVuc2F0ZUNvcnJlY3QCBRJjb21wZW5zYXRlZFNpZ25lcnMFDGNvbXBlbnNhdGlvbgkAlAoCCQDOCAIJAM4IAgkAzggCCQDOCAIJAM4IAgkAzggCCQDOCAIJAM4IAgkAzggCCQEQX3NhdmVFdmVudFN0YXR1cwMFDGV4ZWNDaGFpbklkXwUIZXZlbnRJZF8FEUVWRU5UX1NUQVRVU19JTklUCQEOX3NhdmVSc0J5RXZlbnQDBQxleGVjQ2hhaW5JZF8FCGV2ZW50SWRfCQDMCAIFAnJfBQNuaWwJARZfc2F2ZVJCeUV2ZW50QW5kU2lnbmVyBAUMZXhlY0NoYWluSWRfBQhldmVudElkXwUPY2FsbGVyUHVibGljS2V5BQJyXwkBGF9zYXZlU2lnbmVyc1dpdGhSQnlFdmVudAMFDGV4ZWNDaGFpbklkXwUIZXZlbnRJZF8JAMwIAgUPY2FsbGVyUHVibGljS2V5BQNuaWwJARJfc2F2ZVJTaWdtYUJ5RXZlbnQDBQxleGVjQ2hhaW5JZF8FCGV2ZW50SWRfAgAJAQ5fc2F2ZVNzQnlFdmVudAMFDGV4ZWNDaGFpbklkXwUIZXZlbnRJZF8FA25pbAkBGF9zYXZlU2lnbmVyc1dpdGhTQnlFdmVudAMFDGV4ZWNDaGFpbklkXwUIZXZlbnRJZF8FA25pbAkBEl9zYXZlU1NpZ21hQnlFdmVudAMFDGV4ZWNDaGFpbklkXwUIZXZlbnRJZF8CAAUPc2xhc2hpbmdBY3Rpb25zBRNjb21wZW5zYXRpb25BY3Rpb25zBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBEmFkZFNlY3VyaXR5RGVwb3NpdAEKcmVjaXBpZW50XwQJcmVjaXBpZW50AwkAAAIFCnJlY2lwaWVudF8CAAkApQgBCAUBaQZjYWxsZXIFCnJlY2lwaWVudF8EA2VycgMDCQEQX3ZhbGlkYXRlQWRkcmVzcwIFCXJlY2lwaWVudAIlYWRkU2VjdXJpdHlEZXBvc2l0OiBpbnZhbGlkIHJlY2lwaWVudAkBFV92YWxpZGF0ZVBheW1lbnRzU2l6ZQMIBQFpCHBheW1lbnRzAAECHmFkZFNlY3VyaXR5RGVwb3NpdDogbm8gcGF5bWVudAcJARVfdmFsaWRhdGVQYXltZW50QXNzZXQDCQCRAwIIBQFpCHBheW1lbnRzAAAFBHVuaXQCIWFkZFNlY3VyaXR5RGVwb3NpdDogaW52YWxpZCBhc3NldAcDCQAAAgUDZXJyBQNlcnIEDXJlY2lwaWVudEFkZHIJARFAZXh0ck5hdGl2ZSgxMDYyKQEFCXJlY2lwaWVudAQHYmFsYW5jZQkBDF9sb2FkU2VjRGVwbwEFDXJlY2lwaWVudEFkZHIEDnVwZGF0ZWRCYWxhbmNlCQBkAgUHYmFsYW5jZQgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQJAJQKAgkBDF9zYXZlU2VjRGVwbwIFDXJlY2lwaWVudEFkZHIFDnVwZGF0ZWRCYWxhbmNlBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBEnN1YlNlY3VyaXR5RGVwb3NpdAEHYW1vdW50XwQHYmFsYW5jZQkBDF9sb2FkU2VjRGVwbwEIBQFpBmNhbGxlcgQDZXJyAwkBC19pc1plcm9Mb2NrAgkA2AQBCAUBaQ9jYWxsZXJQdWJsaWNLZXkCGnN1YlNlY3VyaXR5RGVwb3NpdDogbG9ja2VkAwkAZgIFB2Ftb3VudF8FB2JhbGFuY2UJAAIBAihzdWJTZWN1cml0eURlcG9zaXQ6IGluc3VmZmljaWVudCBiYWxhbmNlBgcDCQAAAgUDZXJyBQNlcnIJAJQKAgkAzggCCQEMX3NhdmVTZWNEZXBvAggFAWkGY2FsbGVyCQBlAgUHYmFsYW5jZQUHYW1vdW50XwkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFB2Ftb3VudF8FBHVuaXQFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQtzZXRNdWx0aXNpZwEJbXVsdGlzaWdfBANlcnIDCQERX29ubHlUaGlzQ29udHJhY3QBCAUBaQZjYWxsZXIJARBfdmFsaWRhdGVBZGRyZXNzAgUJbXVsdGlzaWdfAiVzZXRNdWx0aXNpZzogaW52YWxpZCBtdWx0aXNpZyBhZGRyZXNzBwMJAAACBQNlcnIFA2VycgkAlAoCCQENX3NhdmVNdWx0aXNpZwEJARFAZXh0ck5hdGl2ZSgxMDYyKQEFCW11bHRpc2lnXwUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECdHgBBnZlcmlmeQAEByRtYXRjaDAJAKIIAQUMS0VZX01VTFRJU0lHAwkAAQIFByRtYXRjaDACBlN0cmluZwQIbXVsdGlzaWcFByRtYXRjaDAJAQt2YWx1ZU9yRWxzZQIJAJsIAgkBEUBleHRyTmF0aXZlKDEwNjIpAQUIbXVsdGlzaWcJALkJAgkAzAgCBQpLRVlfU1RBVFVTCQDMCAIJAKUIAQUEdGhpcwkAzAgCCQDYBAEIBQJ0eAJpZAUDbmlsBQlTRVBBUkFUT1IHCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5FOoUhQ==", "height": 2496967, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 3nAKnhSedMQtJqsJZrMeQWAwT8JhPG5Mw8XjQaGw5REq Next: EUzpt35SfJdGLyHGQ1sEzhjYJ3FJjbAVPc4CUEd6ye6i Diff:
OldNewDifferences
343343 func aZ (aM,aP,R) = [IntegerEntry(makeString([p, toString(aM), toString(aP)], a), R)]
344344
345345
346-func ba (aM,aT) = {
346+func ba (aM,aP) = {
347+ let M = getString(makeString([z, toString(aM), toString(aP)], a))
348+ if ($isInstanceOf(M, "String"))
349+ then {
350+ let N = M
351+ fromBase58String(N)
352+ }
353+ else base58''
354+ }
355+
356+
357+func bb (aM,aP,bc) = [StringEntry(makeString([z, toString(aM), toString(aP)], a), toBase58String(bc))]
358+
359+
360+func bd (aM,aT) = {
347361 let M = getString(makeString([q, toString(aM), toString(aT)], a))
348362 if ($isInstanceOf(M, "String"))
349363 then {
356370 }
357371
358372
359-func bb (aM,aT,bc) = [StringEntry(makeString([q, toString(aM), toString(aT)], a), makeString(bc, a))]
373+func be (aM,aT,bf) = [StringEntry(makeString([q, toString(aM), toString(aT)], a), makeString(bf, a))]
360374
361375
362-func bd (aM,aT) = {
376+func bg (aM,aT) = {
363377 let M = getString(makeString([r, toString(aM), toString(aT)], a))
364378 if ($isInstanceOf(M, "String"))
365379 then {
372386 }
373387
374388
375-func be (aM,aT,bf) = [StringEntry(makeString([r, toString(aM), toString(aT)], a), makeString(bf, a))]
389+func bh (aM,aT,bi) = [StringEntry(makeString([r, toString(aM), toString(aT)], a), makeString(bi, a))]
376390
377391
378-func bg (aM,aT) = {
392+func bj (aM,aT) = {
379393 let M = getString(makeString([u, toString(aM), toString(aT)], a))
380394 if ($isInstanceOf(M, "String"))
381395 then {
386400 }
387401
388402
389-func bh (aM,aT,bi) = [StringEntry(makeString([u, toString(aM), toString(aT)], a), bi)]
403+func bk (aM,aT,bl) = [StringEntry(makeString([u, toString(aM), toString(aT)], a), bl)]
390404
391405
392-func bj (aM,aT) = {
406+func bm (aM,aT) = {
393407 let M = getString(makeString([v, toString(aM), toString(aT)], a))
394408 if ($isInstanceOf(M, "String"))
395409 then {
400414 }
401415
402416
403-func bk (aM,aT,bl) = [StringEntry(makeString([v, toString(aM), toString(aT)], a), bl)]
417+func bn (aM,aT,bo) = [StringEntry(makeString([v, toString(aM), toString(aT)], a), bo)]
404418
405419
406-func bm (aM,aT,bn) = {
407- let M = getString(makeString([q, toString(aM), toString(aT), bn], a))
420+func bp (aM,aT,bq) = {
421+ let M = getString(makeString([q, toString(aM), toString(aT), bq], a))
408422 if ($isInstanceOf(M, "String"))
409423 then {
410424 let N = M
414428 }
415429
416430
417-func bo (aM,aT,bn,bp) = [StringEntry(makeString([q, toString(aM), toString(aT), bn], a), bp)]
431+func br (aM,aT,bq,bs) = [StringEntry(makeString([q, toString(aM), toString(aT), bq], a), bs)]
418432
419433
420-func bq (aM,aT,bn) = {
421- let M = getString(makeString([r, toString(aM), toString(aT), bn], a))
434+func bt (aM,aT,bq) = {
435+ let M = getString(makeString([r, toString(aM), toString(aT), bq], a))
422436 if ($isInstanceOf(M, "String"))
423437 then {
424438 let N = M
428442 }
429443
430444
431-func br (aM,aT,bn,bs) = [StringEntry(makeString([r, toString(aM), toString(aT), bn], a), bs)]
445+func bu (aM,aT,bq,bv) = [StringEntry(makeString([r, toString(aM), toString(aT), bq], a), bv)]
432446
433447
434-func bt (aM,aT) = {
448+func bw (aM,aT) = {
435449 let M = getString(makeString([s, toString(aM), toString(aT)], a))
436450 if ($isInstanceOf(M, "String"))
437451 then {
444458 }
445459
446460
447-func bu (aM,aT,bc) = [StringEntry(makeString([s, toString(aM), toString(aT)], a), makeString(bc, a))]
461+func bx (aM,aT,bf) = [StringEntry(makeString([s, toString(aM), toString(aT)], a), makeString(bf, a))]
448462
449463
450-func bv (aM,aT) = {
464+func by (aM,aT) = {
451465 let M = getString(makeString([w, toString(aM), toString(aT)], a))
452466 if ($isInstanceOf(M, "String"))
453467 then {
460474 }
461475
462476
463-func bw (aM,aT,bf) = [StringEntry(makeString([w, toString(aM), toString(aT)], a), makeString(bf, a))]
477+func bz (aM,aT,bi) = [StringEntry(makeString([w, toString(aM), toString(aT)], a), makeString(bi, a))]
464478
465479
466-func bx (aM,aT) = {
480+func bA (aM,aT) = {
467481 let M = getInteger(makeString([t, toString(aM), toString(aT)], a))
468482 if ($isInstanceOf(M, "Int"))
469483 then {
474488 }
475489
476490
477-func by (aM,aT,R) = [IntegerEntry(makeString([t, toString(aM), toString(aT)], a), R)]
491+func bB (aM,aT,R) = [IntegerEntry(makeString([t, toString(aM), toString(aT)], a), R)]
478492
479493
480-func bz (bA) = {
481- let M = getInteger(makeString([x, toString(bA), y], a))
494+func bC (bD) = {
495+ let M = getInteger(makeString([x, toString(bD), y], a))
482496 if ($isInstanceOf(M, "Int"))
483497 then {
484498 let N = M
488502 }
489503
490504
491-func bB (bA,R) = [IntegerEntry(makeString([x, toString(bA), y], a), R)]
505+func bE (bD,R) = [IntegerEntry(makeString([x, toString(bD), y], a), R)]
492506
493507
494-func bC (bA,bD) = {
495- let M = getInteger(makeString([x, toString(bA), toString(bD)], a))
508+func bF (bD,bG) = {
509+ let M = getInteger(makeString([x, toString(bD), toString(bG)], a))
496510 if ($isInstanceOf(M, "Int"))
497511 then {
498512 let N = M
502516 }
503517
504518
505-func bE (bA,bD,R) = [IntegerEntry(makeString([x, toString(bA), toString(bD)], a), R)]
519+func bH (bD,bG,R) = [IntegerEntry(makeString([x, toString(bD), toString(bG)], a), R)]
506520
507521
508-func bF (bG) = if ((bG != this))
522+func bI (bJ) = if ((bJ != this))
509523 then throw("_onlyThisContract: revert")
510524 else true
511525
512526
513-func bH () = if ((at() == Address(base58'')))
527+func bK () = if ((at() == Address(base58'')))
514528 then throw("_whenMultisigSet: revert")
515529 else true
516530
517531
518-func bI () = if (aq())
532+func bL () = if (aq())
519533 then throw("_whenNotInitialized: revert")
520534 else true
521535
522536
523-func bJ () = if (!(aq()))
537+func bM () = if (!(aq()))
524538 then throw("_whenInitialized: revert")
525539 else true
526540
527541
528-func bK (aT,aM,L) = {
542+func bN (aT,aM,L) = {
529543 let ai = invoke(aJ(), B, [aT, aM], nil)
530544 if ((ai == ai))
531545 then {
543557 }
544558
545559
546-func bL (ac,ae,L) = if (!(containsElement(ae, ac)))
560+func bO (aT,aM) = {
561+ let ai = invoke(aJ(), C, [aT, aM], nil)
562+ if ((ai == ai))
563+ then {
564+ let M = ai
565+ if ($isInstanceOf(M, "(String, ByteVector)"))
566+ then {
567+ let N = M
568+ N
569+ }
570+ else throw("_getRawEvent: revert")
571+ }
572+ else throw("Strict value is not equal to itself.")
573+ }
574+
575+
576+func bP (ac,ae,L) = if (!(containsElement(ae, ac)))
547577 then throw(L)
548578 else true
549579
550580
551-func bM (bn,L) = if ((aw() > ay(addressFromPublicKey(fromBase58String(bn)))))
581+func bQ (bq,L) = if ((aw() > ay(addressFromPublicKey(fromBase58String(bq)))))
552582 then throw(L)
553583 else true
554584
555585
556-func bN (aM,aT,L) = if ((aS(aM, aT) != F))
586+func bR (aM,aT,L) = if ((aS(aM, aT) != F))
557587 then throw(L)
558588 else true
559589
560590
561-func bO (aM,aT,L) = if ((aS(aM, aT) != G))
591+func bS (aM,aT,L) = if ((aS(aM, aT) != G))
562592 then throw(L)
563593 else true
564594
565595
566-func bP (aM,aT,L) = if (if ((aS(aM, aT) != G))
596+func bT (aM,aT,L) = if (if ((aS(aM, aT) != G))
567597 then true
568- else ((bx(aM, aT) + aD()) > height))
598+ else ((bA(aM, aT) + aD()) > height))
569599 then throw(L)
570600 else true
571601
572602
573-func bQ (aR) = {
603+func bU (aR) = {
574604 func af (ag,ah) = (ag ++ aX(ah, (aW(ah) + 1)))
575605
576606 let aj = aR
588618 }
589619
590620
591-func bR (ac,L) = if ((aW(ac) > 0))
621+func bV (ac,L) = if ((aW(ac) > 0))
592622 then throw(L)
593623 else true
594624
595625
596-func bS (aM,aT,bn,L) = {
597- let bT = bm(aM, aT, bn)
598- if (if ((bT != ""))
599- then containsElement(ba(aM, aT), bT)
626+func bW (aM,aT,bq,L) = {
627+ let bX = bp(aM, aT, bq)
628+ if (if ((bX != ""))
629+ then containsElement(bd(aM, aT), bX)
600630 else false)
601631 then throw(L)
602632 else true
603633 }
604634
605635
606-func bU (aM,aT,bn,L) = {
607- let bV = bq(aM, aT, bn)
608- if (if ((bV != ""))
609- then containsElement(bd(aM, aT), bV)
636+func bY (aM,aT,bq,L) = {
637+ let bZ = bt(aM, aT, bq)
638+ if (if ((bZ != ""))
639+ then containsElement(bg(aM, aT), bZ)
610640 else false)
611641 then throw(L)
612642 else true
613643 }
614644
615645
616-func bW (aM,aT,bn,L) = {
617- let bT = bm(aM, aT, bn)
618- if (if ((bT == ""))
646+func ca (aM,aT,bq,L) = {
647+ let bX = bp(aM, aT, bq)
648+ if (if ((bX == ""))
619649 then true
620- else !(containsElement(ba(aM, aT), bT)))
650+ else !(containsElement(bd(aM, aT), bX)))
621651 then throw(L)
622652 else true
623653 }
624654
625655
626-func bX (bY,bZ) = {
627- let ca = aB()
628- func af (ag,ah) = if (containsElement(bZ, ah))
656+func cb (cc,cd) = {
657+ let ce = aB()
658+ func af (ag,ah) = if (containsElement(cd, ah))
629659 then $Tuple3(ag._1, (ag._2 :+ ah), ag._3)
630660 else {
631- let cb = addressFromPublicKey(fromBase58String(ah))
632- $Tuple3((ag._1 ++ aA(cb, (ay(cb) - ca))), ag._2, (ag._3 + ca))
661+ let cf = addressFromPublicKey(fromBase58String(ah))
662+ $Tuple3((ag._1 ++ aA(cf, (ay(cf) - ce))), ag._2, (ag._3 + ce))
633663 }
634664
635- let aj = bY
665+ let aj = cc
636666 let ak = size(aj)
637667 let al = $Tuple3(nil, nil, 0)
638668 func am (an,ao) = if ((ao >= ak))
647677 }
648678
649679
650-func cc (aR,cd) = {
651- let ce = (cd / size(aR))
652- func af (ag,ah) = (ag :+ ScriptTransfer(addressFromPublicKey(fromBase58String(ah)), ce, unit))
680+func cg (aR,ch) = {
681+ let ci = (ch / size(aR))
682+ func af (ag,ah) = (ag :+ ScriptTransfer(addressFromPublicKey(fromBase58String(ah)), ci, unit))
653683
654684 let aj = aR
655685 let ak = size(aj)
666696 }
667697
668698
669-func cf (ae) = {
670- func cg (ch,ci) = (ch :+ toString(addressFromPublicKey(fromBase58String(ci))))
699+func cj (aM,aP,aT,bl,bo,L) = {
700+ let ck = bO(aT, aM)
701+ let cl = ck._1
702+ let cm = ck._2
703+ let cn = ba(aM, aP)
704+ if ((cl == D))
705+ then {
706+ let co = (fromBase58String(bl) + fromBase58String(bo))
707+ if (!(sigVerify(cm, co, cn)))
708+ then throw(L)
709+ else true
710+ }
711+ else if ((cl == E))
712+ then true
713+ else throw(L)
714+ }
715+
716+
717+func cp (ae) = {
718+ func cq (cr,cs) = (cr :+ toString(addressFromPublicKey(fromBase58String(cs))))
671719
672720 let aj = ae
673721 let ak = size(aj)
674722 let al = nil
675723 func am (an,ao) = if ((ao >= ak))
676724 then an
677- else cg(an, aj[ao])
725+ else cq(an, aj[ao])
678726
679727 func ap (an,ao) = if ((ao >= ak))
680728 then an
684732 }
685733
686734
687-@Callable(cj)
688-func init (ck,cl,cm,cn,co,cp) = {
689- let cq = if (if (if (if (if (if (if (if (bF(cj.caller))
690- then bI()
735+@Callable(ct)
736+func init (cu,cv,cw,cx,cy,cz) = {
737+ let cA = if (if (if (if (if (if (if (if (bI(ct.caller))
738+ then bL()
691739 else false)
692- then bH()
740+ then bK()
693741 else false)
694- then Q(ck, cl, I, "init: invalid minSecDepo")
742+ then Q(cu, cv, I, "init: invalid minSecDepo")
695743 else false)
696- then Q(cl, 0, I, "init: invalid punishment")
744+ then Q(cv, 0, I, "init: invalid punishment")
697745 else false)
698- then Q(cm, 0, I, "init: invalid resetBlockDelta")
746+ then Q(cw, 0, I, "init: invalid resetBlockDelta")
699747 else false)
700- then J(cn, "init: invalid rewardTokenAddress")
748+ then J(cx, "init: invalid rewardTokenAddress")
701749 else false)
702- then Q(co, 0, I, "init: invalid rewardAmount")
750+ then Q(cy, 0, I, "init: invalid rewardAmount")
703751 else false)
704- then J(cp, "init: invalid witnessAddress")
752+ then J(cz, "init: invalid witnessAddress")
705753 else false
706- if ((cq == cq))
707- then $Tuple2(((((((ar(true) ++ ax(ck)) ++ aC(cl)) ++ aE(cm)) ++ aG(addressFromStringValue(cn))) ++ aI(co)) ++ aK(addressFromStringValue(cp))), unit)
754+ if ((cA == cA))
755+ then $Tuple2(((((((ar(true) ++ ax(cu)) ++ aC(cv)) ++ aE(cw)) ++ aG(addressFromStringValue(cx))) ++ aI(cy)) ++ aK(addressFromStringValue(cz))), unit)
708756 else throw("Strict value is not equal to itself.")
709757 }
710758
711759
712760
713-@Callable(cj)
714-func setActiveSigners (aM,aR,cr) = {
715- let cq = if (if (if (bF(cj.caller))
716- then bJ()
761+@Callable(ct)
762+func setActiveSigners (aM,aR,cB,bc) = {
763+ let cA = if (if (if (if (bI(ct.caller))
764+ then bM()
717765 else false)
718766 then ad(aR, "setActiveSigners: invalid signers")
719767 else false)
720- then Q(cr, 2, size(aR), "setActiveSigners: invalid T")
768+ then Q(cB, 2, size(aR), "setActiveSigners: invalid T")
769+ else false)
770+ then U(bc, "setActiveSigners: invalid signerGroupPublicKey")
721771 else false
722- if ((cq == cq))
772+ if ((cA == cA))
723773 then {
724- let cs = aL(aM)
725- $Tuple2((((aN(aM, (cs + 1)) ++ aZ(aM, (cs + 1), cr)) ++ aQ(aM, (cs + 1), aR)) ++ bQ(aR)), unit)
774+ let cC = aL(aM)
775+ $Tuple2(((((aN(aM, (cC + 1)) ++ aZ(aM, (cC + 1), cB)) ++ aQ(aM, (cC + 1), aR)) ++ bb(aM, (cC + 1), fromBase58String(bc))) ++ bU(aR)), unit)
726776 }
727777 else throw("Strict value is not equal to itself.")
728778 }
729779
730780
731781
732-@Callable(cj)
733-func submitR (aT,aM,bp) = {
734- let ct = toBase58String(cj.callerPublicKey)
735- let cs = aL(aM)
736- let cu = aY(aM, cs)
737- let cq = if (if (if (if (if (if (if (if (bJ())
782+@Callable(ct)
783+func submitR (aT,aM,bs) = {
784+ let cD = toBase58String(ct.callerPublicKey)
785+ let cC = aL(aM)
786+ let cE = aY(aM, cC)
787+ let cA = if (if (if (if (if (if (if (if (bM())
738788 then Q(aT, 0, I, "submitR: invalid eventId")
739789 else false)
740790 then Q(aM, 0, I, "submitR: invalid execChainId")
741791 else false)
742- then U(bp, "submitR: invalid r")
792+ then U(bs, "submitR: invalid r")
743793 else false)
744- then bK(aT, aM, "submitR: event not confirmed")
794+ then bN(aT, aM, "submitR: event not confirmed")
745795 else false)
746- then bL(ct, aO(aM, cs), "submitR: not active")
796+ then bP(cD, aO(aM, cC), "submitR: not active")
747797 else false)
748- then bM(ct, "submitR: not enough security deposit")
798+ then bQ(cD, "submitR: not enough security deposit")
749799 else false)
750- then bN(aM, aT, "submitR: invalid event status")
800+ then bR(aM, aT, "submitR: invalid event status")
751801 else false)
752- then bS(aM, aT, ct, "submitR: already submitted")
802+ then bW(aM, aT, cD, "submitR: already submitted")
753803 else false
754- if ((cq == cq))
804+ if ((cA == cA))
755805 then {
756- let cv = ba(aM, aT)
757- let cw = bt(aM, aT)
758- let cx = if (((size(cv) + 1) == cu))
759- then (aU(aM, aT, G) ++ by(aM, aT, height))
806+ let cF = bd(aM, aT)
807+ let cG = bw(aM, aT)
808+ let cH = if (((size(cF) + 1) == cE))
809+ then (aU(aM, aT, G) ++ bB(aM, aT, height))
760810 else nil
761- $Tuple2((((bb(aM, aT, (cv :+ bp)) ++ bo(aM, aT, ct, bp)) ++ bu(aM, aT, (cw :+ ct))) ++ cx), unit)
811+ $Tuple2((((be(aM, aT, (cF :+ bs)) ++ br(aM, aT, cD, bs)) ++ bx(aM, aT, (cG :+ cD))) ++ cH), unit)
762812 }
763813 else throw("Strict value is not equal to itself.")
764814 }
765815
766816
767817
768-@Callable(cj)
769-func submitS (aT,aM,bi,bs,bl) = {
770- let ct = toBase58String(cj.callerPublicKey)
771- let cs = aL(aM)
772- let cu = aY(aM, cs)
773- let cq = if (if (if (if (if (if (if (if (if (bJ())
818+@Callable(ct)
819+func submitS (aT,aM,bl,bv,bo) = {
820+ let cD = toBase58String(ct.callerPublicKey)
821+ let cC = aL(aM)
822+ let cE = aY(aM, cC)
823+ let cA = if (if (if (if (if (if (if (if (if (bM())
774824 then Q(aT, 0, I, "submitS: invalid eventId")
775825 else false)
776826 then Q(aM, 0, I, "submitS: invalid execChainId")
777827 else false)
778- then U(bi, "submitS: invalid r sigma")
828+ then U(bl, "submitS: invalid r sigma")
779829 else false)
780- then U(bs, "submitS: invalid s")
830+ then U(bv, "submitS: invalid s")
781831 else false)
782- then bL(ct, aO(aM, cs), "submitS: not active")
832+ then bP(cD, aO(aM, cC), "submitS: not active")
783833 else false)
784- then bM(ct, "submitS: not enough security deposit")
834+ then bQ(cD, "submitS: not enough security deposit")
785835 else false)
786- then bO(aM, aT, "submitS: invalid event status")
836+ then bS(aM, aT, "submitS: invalid event status")
787837 else false)
788- then bU(aM, aT, ct, "submitS: already submitted")
838+ then bY(aM, aT, cD, "submitS: already submitted")
789839 else false)
790- then bW(aM, aT, ct, "submitS: R is not submitted")
840+ then ca(aM, aT, cD, "submitS: R is not submitted")
791841 else false
792- if ((cq == cq))
842+ if ((cA == cA))
793843 then {
794- let cy = bd(aM, aT)
795- let cw = bv(aM, aT)
796- let cx = if (((size(cy) + 1) == cu))
844+ let cI = bg(aM, aT)
845+ let cG = by(aM, aT)
846+ let cH = if (((size(cI) + 1) == cE))
797847 then {
798- let cz = U(bl, "submitS: invalid s sigma")
799- if ((cz == cz))
848+ let cJ = if (U(bo, "submitS: invalid s sigma"))
849+ then cj(aM, cC, aT, bl, bo, "submitS: invalid signature")
850+ else false
851+ if ((cJ == cJ))
800852 then {
801- let cA = bz(aM)
802- let cB = cf((cw :+ ct))
803- let cC = invoke(aF(), A, [aH(), cB], nil)
804- if ((cC == cC))
805- then (((aU(aM, aT, H) ++ bE(aM, cA, aT)) ++ bB(aM, (cA + 1))) ++ bk(aM, aT, bl))
853+ let cK = bC(aM)
854+ let cL = cp((cG :+ cD))
855+ let cM = invoke(aF(), A, [aH(), cL], nil)
856+ if ((cM == cM))
857+ then (((aU(aM, aT, H) ++ bH(aM, cK, aT)) ++ bE(aM, (cK + 1))) ++ bn(aM, aT, bo))
806858 else throw("Strict value is not equal to itself.")
807859 }
808860 else throw("Strict value is not equal to itself.")
809861 }
810862 else nil
811- $Tuple2(((((be(aM, aT, (cy :+ bs)) ++ br(aM, aT, ct, bs)) ++ bw(aM, aT, (cw :+ ct))) ++ bh(aM, aT, bi)) ++ cx), unit)
863+ $Tuple2(((((bh(aM, aT, (cI :+ bv)) ++ bu(aM, aT, cD, bv)) ++ bz(aM, aT, (cG :+ cD))) ++ bk(aM, aT, bl)) ++ cH), unit)
812864 }
813865 else throw("Strict value is not equal to itself.")
814866 }
815867
816868
817869
818-@Callable(cj)
819-func reset (aT,aM,bp) = {
820- let ct = toBase58String(cj.callerPublicKey)
821- let cs = aL(aM)
822- let cq = if (if (if (if (if (if (bJ())
870+@Callable(ct)
871+func reset (aT,aM,bs) = {
872+ let cD = toBase58String(ct.callerPublicKey)
873+ let cC = aL(aM)
874+ let cA = if (if (if (if (if (if (bM())
823875 then Q(aT, 0, I, "reset: invalid eventId")
824876 else false)
825877 then Q(aM, 0, I, "reset: invalid execChainId")
826878 else false)
827- then U(bp, "reset: invalid r")
879+ then U(bs, "reset: invalid r")
828880 else false)
829- then bL(ct, aO(aM, cs), "reset: not active")
881+ then bP(cD, aO(aM, cC), "reset: not active")
830882 else false)
831- then bM(ct, "reset: not enough security deposit")
883+ then bQ(cD, "reset: not enough security deposit")
832884 else false)
833- then bP(aM, aT, "reset: invalid event status")
885+ then bT(aM, aT, "reset: invalid event status")
834886 else false
835- if ((cq == cq))
887+ if ((cA == cA))
836888 then {
837- let cD = 0
838- let cE = bt(aM, aT)
839- let cF = bv(aM, aT)
840- let ai = bX(cE, cF)
841- let cG = ai._1
842- let cH = ai._2
843- let cI = ai._3
844- let cJ = cc(cH, cI)
845- $Tuple2((((((((((aU(aM, aT, F) ++ bb(aM, aT, [bp])) ++ bo(aM, aT, ct, bp)) ++ bu(aM, aT, [ct])) ++ bh(aM, aT, "")) ++ be(aM, aT, nil)) ++ bw(aM, aT, nil)) ++ bk(aM, aT, "")) ++ cG) ++ cJ), unit)
889+ let cN = 0
890+ let cO = bw(aM, aT)
891+ let cP = by(aM, aT)
892+ let ai = cb(cO, cP)
893+ let cQ = ai._1
894+ let cR = ai._2
895+ let cS = ai._3
896+ let cT = cg(cR, cS)
897+ $Tuple2((((((((((aU(aM, aT, F) ++ be(aM, aT, [bs])) ++ br(aM, aT, cD, bs)) ++ bx(aM, aT, [cD])) ++ bk(aM, aT, "")) ++ bh(aM, aT, nil)) ++ bz(aM, aT, nil)) ++ bn(aM, aT, "")) ++ cQ) ++ cT), unit)
846898 }
847899 else throw("Strict value is not equal to itself.")
848900 }
849901
850902
851903
852-@Callable(cj)
853-func addSecurityDeposit (cK) = {
854- let cL = if ((cK == ""))
855- then toString(cj.caller)
856- else cK
857- let cq = if (if (J(cL, "addSecurityDeposit: invalid recipient"))
858- then V(cj.payments, 1, "addSecurityDeposit: no payment")
904+@Callable(ct)
905+func addSecurityDeposit (cU) = {
906+ let cV = if ((cU == ""))
907+ then toString(ct.caller)
908+ else cU
909+ let cA = if (if (J(cV, "addSecurityDeposit: invalid recipient"))
910+ then V(ct.payments, 1, "addSecurityDeposit: no payment")
859911 else false)
860- then Y(cj.payments[0], unit, "addSecurityDeposit: invalid asset")
912+ then Y(ct.payments[0], unit, "addSecurityDeposit: invalid asset")
861913 else false
862- if ((cq == cq))
914+ if ((cA == cA))
863915 then {
864- let cM = addressFromStringValue(cL)
865- let cN = ay(cM)
866- let cO = (cN + cj.payments[0].amount)
867- $Tuple2(aA(cM, cO), unit)
916+ let cW = addressFromStringValue(cV)
917+ let cX = ay(cW)
918+ let cY = (cX + ct.payments[0].amount)
919+ $Tuple2(aA(cW, cY), unit)
868920 }
869921 else throw("Strict value is not equal to itself.")
870922 }
871923
872924
873925
874-@Callable(cj)
875-func subSecurityDeposit (cP) = {
876- let cN = ay(cj.caller)
877- let cq = if (bR(toBase58String(cj.callerPublicKey), "subSecurityDeposit: locked"))
878- then if ((cP > cN))
926+@Callable(ct)
927+func subSecurityDeposit (cZ) = {
928+ let cX = ay(ct.caller)
929+ let cA = if (bV(toBase58String(ct.callerPublicKey), "subSecurityDeposit: locked"))
930+ then if ((cZ > cX))
879931 then throw("subSecurityDeposit: insufficient balance")
880932 else true
881933 else false
882- if ((cq == cq))
883- then $Tuple2((aA(cj.caller, (cN - cP)) ++ [ScriptTransfer(cj.caller, cP, unit)]), unit)
934+ if ((cA == cA))
935+ then $Tuple2((aA(ct.caller, (cX - cZ)) ++ [ScriptTransfer(ct.caller, cZ, unit)]), unit)
884936 else throw("Strict value is not equal to itself.")
885937 }
886938
887939
888940
889-@Callable(cj)
941+@Callable(ct)
890942 func setMultisig (av) = {
891- let cq = if (bF(cj.caller))
943+ let cA = if (bI(ct.caller))
892944 then J(av, "setMultisig: invalid multisig address")
893945 else false
894- if ((cq == cq))
946+ if ((cA == cA))
895947 then $Tuple2(au(addressFromStringValue(av)), unit)
896948 else throw("Strict value is not equal to itself.")
897949 }
898950
899951
900-@Verifier(cQ)
901-func cR () = {
952+@Verifier(da)
953+func db () = {
902954 let M = getString(c)
903955 if ($isInstanceOf(M, "String"))
904956 then {
905- let cS = M
906- valueOrElse(getBoolean(addressFromStringValue(cS), makeString([d, toString(this), toBase58String(cQ.id)], a)), false)
957+ let dc = M
958+ valueOrElse(getBoolean(addressFromStringValue(dc), makeString([d, toString(this), toBase58String(da.id)], a)), false)
907959 }
908- else sigVerify(cQ.bodyBytes, cQ.proofs[0], cQ.senderPublicKey)
960+ else sigVerify(da.bodyBytes, da.proofs[0], da.senderPublicKey)
909961 }
910962
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = "INIT"
77
88 let c = "MULTISIG"
99
1010 let d = "STATUS"
1111
1212 let e = "MIN_SEC_DEPO"
1313
1414 let f = "PUNISHMENT"
1515
1616 let g = "RESET_BLOCK_DELTA"
1717
1818 let h = "SEC_DEPO"
1919
2020 let i = "REWARD_TOKEN_ADDRESS"
2121
2222 let j = "REWARD_AMOUNT"
2323
2424 let k = "WINTESS_ADDRESS"
2525
2626 let l = "CURRENT_EPOCH"
2727
2828 let m = "SIGNERS_PER_EPOCH"
2929
3030 let n = "EVENT_STATUS"
3131
3232 let o = "LOCKS"
3333
3434 let p = "T"
3535
3636 let q = "R"
3737
3838 let r = "S"
3939
4040 let s = "R_SIGNERS"
4141
4242 let t = "EVENT_START_BLOCK"
4343
4444 let u = "R_SIGMA"
4545
4646 let v = "S_SIGMA"
4747
4848 let w = "S_SIGNERS"
4949
5050 let x = "SIGNED_EVENT_EXECUTOR"
5151
5252 let y = "SIZE"
5353
5454 let z = "SIGNER_GROUP_PUBLIC_KEY"
5555
5656 let A = "mintMany"
5757
5858 let B = "isConfirmedEvent"
5959
6060 let C = "getRawEvent"
6161
6262 let D = "WAVES"
6363
6464 let E = "EVM"
6565
6666 let F = 1
6767
6868 let G = 2
6969
7070 let H = 3
7171
7272 let I = 9223372036854775807
7373
7474 func J (K,L) = {
7575 let M = addressFromString(K)
7676 if ($isInstanceOf(M, "Address"))
7777 then {
7878 let N = M
7979 true
8080 }
8181 else throw(L)
8282 }
8383
8484
8585 func O (P,L) = {
8686 let M = assetInfo(fromBase58String(P))
8787 if ($isInstanceOf(M, "Asset"))
8888 then {
8989 let N = M
9090 true
9191 }
9292 else throw(L)
9393 }
9494
9595
9696 func Q (R,S,T,L) = if (if ((S > R))
9797 then true
9898 else (R > T))
9999 then throw(L)
100100 else true
101101
102102
103103 func U (R,L) = if (if ((0 >= size(R)))
104104 then true
105105 else contains(R, a))
106106 then throw(L)
107107 else true
108108
109109
110110 func V (W,X,L) = if ((size(W) != X))
111111 then throw(L)
112112 else true
113113
114114
115115 func Y (Z,aa,L) = if ((Z.assetId != aa))
116116 then throw(L)
117117 else true
118118
119119
120120 func ab (ac,L) = if ((size(fromBase58String(ac)) != 32))
121121 then throw(L)
122122 else true
123123
124124
125125 func ad (ae,L) = {
126126 func af (ag,ah) = $Tuple2(if (ag._1)
127127 then ab(ah, ag._2)
128128 else false, ag._2)
129129
130130 let ai = {
131131 let aj = ae
132132 let ak = size(aj)
133133 let al = $Tuple2(true, L)
134134 func am (an,ao) = if ((ao >= ak))
135135 then an
136136 else af(an, aj[ao])
137137
138138 func ap (an,ao) = if ((ao >= ak))
139139 then an
140140 else throw("List size exceeds 10")
141141
142142 ap(am(am(am(am(am(am(am(am(am(am(al, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
143143 }
144144 ai._1
145145 }
146146
147147
148148 func aq () = {
149149 let M = getBoolean(b)
150150 if ($isInstanceOf(M, "Boolean"))
151151 then {
152152 let N = M
153153 N
154154 }
155155 else false
156156 }
157157
158158
159159 func ar (as) = [BooleanEntry(b, as)]
160160
161161
162162 func at () = {
163163 let M = getString(c)
164164 if ($isInstanceOf(M, "String"))
165165 then {
166166 let N = M
167167 addressFromStringValue(N)
168168 }
169169 else Address(base58'')
170170 }
171171
172172
173173 func au (av) = [StringEntry(c, toString(av))]
174174
175175
176176 func aw () = {
177177 let M = getInteger(e)
178178 if ($isInstanceOf(M, "Int"))
179179 then {
180180 let N = M
181181 N
182182 }
183183 else 0
184184 }
185185
186186
187187 func ax (R) = [IntegerEntry(e, R)]
188188
189189
190190 func ay (az) = {
191191 let M = getInteger(makeString([h, toString(az)], a))
192192 if ($isInstanceOf(M, "Int"))
193193 then {
194194 let N = M
195195 N
196196 }
197197 else 0
198198 }
199199
200200
201201 func aA (az,R) = [IntegerEntry(makeString([h, toString(az)], a), R)]
202202
203203
204204 func aB () = {
205205 let M = getInteger(f)
206206 if ($isInstanceOf(M, "Int"))
207207 then {
208208 let N = M
209209 N
210210 }
211211 else 0
212212 }
213213
214214
215215 func aC (R) = [IntegerEntry(f, R)]
216216
217217
218218 func aD () = {
219219 let M = getInteger(g)
220220 if ($isInstanceOf(M, "Int"))
221221 then {
222222 let N = M
223223 N
224224 }
225225 else 0
226226 }
227227
228228
229229 func aE (R) = [IntegerEntry(g, R)]
230230
231231
232232 func aF () = {
233233 let M = getString(i)
234234 if ($isInstanceOf(M, "String"))
235235 then {
236236 let N = M
237237 addressFromStringValue(N)
238238 }
239239 else Address(base58'')
240240 }
241241
242242
243243 func aG (R) = [StringEntry(i, toString(R))]
244244
245245
246246 func aH () = {
247247 let M = getInteger(j)
248248 if ($isInstanceOf(M, "Int"))
249249 then {
250250 let N = M
251251 N
252252 }
253253 else 0
254254 }
255255
256256
257257 func aI (R) = [IntegerEntry(j, R)]
258258
259259
260260 func aJ () = {
261261 let M = getString(k)
262262 if ($isInstanceOf(M, "String"))
263263 then {
264264 let N = M
265265 addressFromStringValue(N)
266266 }
267267 else Address(base58'')
268268 }
269269
270270
271271 func aK (R) = [StringEntry(k, toString(R))]
272272
273273
274274 func aL (aM) = {
275275 let M = getInteger(makeString([l, toString(aM)], a))
276276 if ($isInstanceOf(M, "Int"))
277277 then {
278278 let N = M
279279 N
280280 }
281281 else 0
282282 }
283283
284284
285285 func aN (aM,R) = [IntegerEntry(makeString([l, toString(aM)], a), R)]
286286
287287
288288 func aO (aM,aP) = {
289289 let M = getString(makeString([m, toString(aM), toString(aP)], a))
290290 if ($isInstanceOf(M, "String"))
291291 then {
292292 let N = M
293293 if ((size(N) > 0))
294294 then split(N, a)
295295 else nil
296296 }
297297 else nil
298298 }
299299
300300
301301 func aQ (aM,aP,aR) = [StringEntry(makeString([m, toString(aM), toString(aP)], a), makeString(aR, a))]
302302
303303
304304 func aS (aM,aT) = {
305305 let M = getInteger(makeString([n, toString(aM), toString(aT)], a))
306306 if ($isInstanceOf(M, "Int"))
307307 then {
308308 let N = M
309309 N
310310 }
311311 else F
312312 }
313313
314314
315315 func aU (aM,aT,aV) = [IntegerEntry(makeString([n, toString(aM), toString(aT)], a), aV)]
316316
317317
318318 func aW (ac) = {
319319 let M = getInteger(makeString([o, ac], a))
320320 if ($isInstanceOf(M, "Int"))
321321 then {
322322 let N = M
323323 N
324324 }
325325 else 0
326326 }
327327
328328
329329 func aX (ac,R) = [IntegerEntry(makeString([o, ac], a), R)]
330330
331331
332332 func aY (aM,aP) = {
333333 let M = getInteger(makeString([p, toString(aM), toString(aP)], a))
334334 if ($isInstanceOf(M, "Int"))
335335 then {
336336 let N = M
337337 N
338338 }
339339 else 0
340340 }
341341
342342
343343 func aZ (aM,aP,R) = [IntegerEntry(makeString([p, toString(aM), toString(aP)], a), R)]
344344
345345
346-func ba (aM,aT) = {
346+func ba (aM,aP) = {
347+ let M = getString(makeString([z, toString(aM), toString(aP)], a))
348+ if ($isInstanceOf(M, "String"))
349+ then {
350+ let N = M
351+ fromBase58String(N)
352+ }
353+ else base58''
354+ }
355+
356+
357+func bb (aM,aP,bc) = [StringEntry(makeString([z, toString(aM), toString(aP)], a), toBase58String(bc))]
358+
359+
360+func bd (aM,aT) = {
347361 let M = getString(makeString([q, toString(aM), toString(aT)], a))
348362 if ($isInstanceOf(M, "String"))
349363 then {
350364 let N = M
351365 if ((size(N) > 0))
352366 then split(N, a)
353367 else nil
354368 }
355369 else nil
356370 }
357371
358372
359-func bb (aM,aT,bc) = [StringEntry(makeString([q, toString(aM), toString(aT)], a), makeString(bc, a))]
373+func be (aM,aT,bf) = [StringEntry(makeString([q, toString(aM), toString(aT)], a), makeString(bf, a))]
360374
361375
362-func bd (aM,aT) = {
376+func bg (aM,aT) = {
363377 let M = getString(makeString([r, toString(aM), toString(aT)], a))
364378 if ($isInstanceOf(M, "String"))
365379 then {
366380 let N = M
367381 if ((size(N) > 0))
368382 then split(N, a)
369383 else nil
370384 }
371385 else nil
372386 }
373387
374388
375-func be (aM,aT,bf) = [StringEntry(makeString([r, toString(aM), toString(aT)], a), makeString(bf, a))]
389+func bh (aM,aT,bi) = [StringEntry(makeString([r, toString(aM), toString(aT)], a), makeString(bi, a))]
376390
377391
378-func bg (aM,aT) = {
392+func bj (aM,aT) = {
379393 let M = getString(makeString([u, toString(aM), toString(aT)], a))
380394 if ($isInstanceOf(M, "String"))
381395 then {
382396 let N = M
383397 N
384398 }
385399 else ""
386400 }
387401
388402
389-func bh (aM,aT,bi) = [StringEntry(makeString([u, toString(aM), toString(aT)], a), bi)]
403+func bk (aM,aT,bl) = [StringEntry(makeString([u, toString(aM), toString(aT)], a), bl)]
390404
391405
392-func bj (aM,aT) = {
406+func bm (aM,aT) = {
393407 let M = getString(makeString([v, toString(aM), toString(aT)], a))
394408 if ($isInstanceOf(M, "String"))
395409 then {
396410 let N = M
397411 N
398412 }
399413 else ""
400414 }
401415
402416
403-func bk (aM,aT,bl) = [StringEntry(makeString([v, toString(aM), toString(aT)], a), bl)]
417+func bn (aM,aT,bo) = [StringEntry(makeString([v, toString(aM), toString(aT)], a), bo)]
404418
405419
406-func bm (aM,aT,bn) = {
407- let M = getString(makeString([q, toString(aM), toString(aT), bn], a))
420+func bp (aM,aT,bq) = {
421+ let M = getString(makeString([q, toString(aM), toString(aT), bq], a))
408422 if ($isInstanceOf(M, "String"))
409423 then {
410424 let N = M
411425 N
412426 }
413427 else ""
414428 }
415429
416430
417-func bo (aM,aT,bn,bp) = [StringEntry(makeString([q, toString(aM), toString(aT), bn], a), bp)]
431+func br (aM,aT,bq,bs) = [StringEntry(makeString([q, toString(aM), toString(aT), bq], a), bs)]
418432
419433
420-func bq (aM,aT,bn) = {
421- let M = getString(makeString([r, toString(aM), toString(aT), bn], a))
434+func bt (aM,aT,bq) = {
435+ let M = getString(makeString([r, toString(aM), toString(aT), bq], a))
422436 if ($isInstanceOf(M, "String"))
423437 then {
424438 let N = M
425439 N
426440 }
427441 else ""
428442 }
429443
430444
431-func br (aM,aT,bn,bs) = [StringEntry(makeString([r, toString(aM), toString(aT), bn], a), bs)]
445+func bu (aM,aT,bq,bv) = [StringEntry(makeString([r, toString(aM), toString(aT), bq], a), bv)]
432446
433447
434-func bt (aM,aT) = {
448+func bw (aM,aT) = {
435449 let M = getString(makeString([s, toString(aM), toString(aT)], a))
436450 if ($isInstanceOf(M, "String"))
437451 then {
438452 let N = M
439453 if ((size(N) > 0))
440454 then split(N, a)
441455 else nil
442456 }
443457 else nil
444458 }
445459
446460
447-func bu (aM,aT,bc) = [StringEntry(makeString([s, toString(aM), toString(aT)], a), makeString(bc, a))]
461+func bx (aM,aT,bf) = [StringEntry(makeString([s, toString(aM), toString(aT)], a), makeString(bf, a))]
448462
449463
450-func bv (aM,aT) = {
464+func by (aM,aT) = {
451465 let M = getString(makeString([w, toString(aM), toString(aT)], a))
452466 if ($isInstanceOf(M, "String"))
453467 then {
454468 let N = M
455469 if ((size(N) > 0))
456470 then split(N, a)
457471 else nil
458472 }
459473 else nil
460474 }
461475
462476
463-func bw (aM,aT,bf) = [StringEntry(makeString([w, toString(aM), toString(aT)], a), makeString(bf, a))]
477+func bz (aM,aT,bi) = [StringEntry(makeString([w, toString(aM), toString(aT)], a), makeString(bi, a))]
464478
465479
466-func bx (aM,aT) = {
480+func bA (aM,aT) = {
467481 let M = getInteger(makeString([t, toString(aM), toString(aT)], a))
468482 if ($isInstanceOf(M, "Int"))
469483 then {
470484 let N = M
471485 N
472486 }
473487 else 0
474488 }
475489
476490
477-func by (aM,aT,R) = [IntegerEntry(makeString([t, toString(aM), toString(aT)], a), R)]
491+func bB (aM,aT,R) = [IntegerEntry(makeString([t, toString(aM), toString(aT)], a), R)]
478492
479493
480-func bz (bA) = {
481- let M = getInteger(makeString([x, toString(bA), y], a))
494+func bC (bD) = {
495+ let M = getInteger(makeString([x, toString(bD), y], a))
482496 if ($isInstanceOf(M, "Int"))
483497 then {
484498 let N = M
485499 N
486500 }
487501 else 0
488502 }
489503
490504
491-func bB (bA,R) = [IntegerEntry(makeString([x, toString(bA), y], a), R)]
505+func bE (bD,R) = [IntegerEntry(makeString([x, toString(bD), y], a), R)]
492506
493507
494-func bC (bA,bD) = {
495- let M = getInteger(makeString([x, toString(bA), toString(bD)], a))
508+func bF (bD,bG) = {
509+ let M = getInteger(makeString([x, toString(bD), toString(bG)], a))
496510 if ($isInstanceOf(M, "Int"))
497511 then {
498512 let N = M
499513 N
500514 }
501515 else 0
502516 }
503517
504518
505-func bE (bA,bD,R) = [IntegerEntry(makeString([x, toString(bA), toString(bD)], a), R)]
519+func bH (bD,bG,R) = [IntegerEntry(makeString([x, toString(bD), toString(bG)], a), R)]
506520
507521
508-func bF (bG) = if ((bG != this))
522+func bI (bJ) = if ((bJ != this))
509523 then throw("_onlyThisContract: revert")
510524 else true
511525
512526
513-func bH () = if ((at() == Address(base58'')))
527+func bK () = if ((at() == Address(base58'')))
514528 then throw("_whenMultisigSet: revert")
515529 else true
516530
517531
518-func bI () = if (aq())
532+func bL () = if (aq())
519533 then throw("_whenNotInitialized: revert")
520534 else true
521535
522536
523-func bJ () = if (!(aq()))
537+func bM () = if (!(aq()))
524538 then throw("_whenInitialized: revert")
525539 else true
526540
527541
528-func bK (aT,aM,L) = {
542+func bN (aT,aM,L) = {
529543 let ai = invoke(aJ(), B, [aT, aM], nil)
530544 if ((ai == ai))
531545 then {
532546 let M = ai
533547 if ($isInstanceOf(M, "Boolean"))
534548 then {
535549 let N = M
536550 if (!(N))
537551 then throw(L)
538552 else true
539553 }
540554 else throw(L)
541555 }
542556 else throw("Strict value is not equal to itself.")
543557 }
544558
545559
546-func bL (ac,ae,L) = if (!(containsElement(ae, ac)))
560+func bO (aT,aM) = {
561+ let ai = invoke(aJ(), C, [aT, aM], nil)
562+ if ((ai == ai))
563+ then {
564+ let M = ai
565+ if ($isInstanceOf(M, "(String, ByteVector)"))
566+ then {
567+ let N = M
568+ N
569+ }
570+ else throw("_getRawEvent: revert")
571+ }
572+ else throw("Strict value is not equal to itself.")
573+ }
574+
575+
576+func bP (ac,ae,L) = if (!(containsElement(ae, ac)))
547577 then throw(L)
548578 else true
549579
550580
551-func bM (bn,L) = if ((aw() > ay(addressFromPublicKey(fromBase58String(bn)))))
581+func bQ (bq,L) = if ((aw() > ay(addressFromPublicKey(fromBase58String(bq)))))
552582 then throw(L)
553583 else true
554584
555585
556-func bN (aM,aT,L) = if ((aS(aM, aT) != F))
586+func bR (aM,aT,L) = if ((aS(aM, aT) != F))
557587 then throw(L)
558588 else true
559589
560590
561-func bO (aM,aT,L) = if ((aS(aM, aT) != G))
591+func bS (aM,aT,L) = if ((aS(aM, aT) != G))
562592 then throw(L)
563593 else true
564594
565595
566-func bP (aM,aT,L) = if (if ((aS(aM, aT) != G))
596+func bT (aM,aT,L) = if (if ((aS(aM, aT) != G))
567597 then true
568- else ((bx(aM, aT) + aD()) > height))
598+ else ((bA(aM, aT) + aD()) > height))
569599 then throw(L)
570600 else true
571601
572602
573-func bQ (aR) = {
603+func bU (aR) = {
574604 func af (ag,ah) = (ag ++ aX(ah, (aW(ah) + 1)))
575605
576606 let aj = aR
577607 let ak = size(aj)
578608 let al = nil
579609 func am (an,ao) = if ((ao >= ak))
580610 then an
581611 else af(an, aj[ao])
582612
583613 func ap (an,ao) = if ((ao >= ak))
584614 then an
585615 else throw("List size exceeds 10")
586616
587617 ap(am(am(am(am(am(am(am(am(am(am(al, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
588618 }
589619
590620
591-func bR (ac,L) = if ((aW(ac) > 0))
621+func bV (ac,L) = if ((aW(ac) > 0))
592622 then throw(L)
593623 else true
594624
595625
596-func bS (aM,aT,bn,L) = {
597- let bT = bm(aM, aT, bn)
598- if (if ((bT != ""))
599- then containsElement(ba(aM, aT), bT)
626+func bW (aM,aT,bq,L) = {
627+ let bX = bp(aM, aT, bq)
628+ if (if ((bX != ""))
629+ then containsElement(bd(aM, aT), bX)
600630 else false)
601631 then throw(L)
602632 else true
603633 }
604634
605635
606-func bU (aM,aT,bn,L) = {
607- let bV = bq(aM, aT, bn)
608- if (if ((bV != ""))
609- then containsElement(bd(aM, aT), bV)
636+func bY (aM,aT,bq,L) = {
637+ let bZ = bt(aM, aT, bq)
638+ if (if ((bZ != ""))
639+ then containsElement(bg(aM, aT), bZ)
610640 else false)
611641 then throw(L)
612642 else true
613643 }
614644
615645
616-func bW (aM,aT,bn,L) = {
617- let bT = bm(aM, aT, bn)
618- if (if ((bT == ""))
646+func ca (aM,aT,bq,L) = {
647+ let bX = bp(aM, aT, bq)
648+ if (if ((bX == ""))
619649 then true
620- else !(containsElement(ba(aM, aT), bT)))
650+ else !(containsElement(bd(aM, aT), bX)))
621651 then throw(L)
622652 else true
623653 }
624654
625655
626-func bX (bY,bZ) = {
627- let ca = aB()
628- func af (ag,ah) = if (containsElement(bZ, ah))
656+func cb (cc,cd) = {
657+ let ce = aB()
658+ func af (ag,ah) = if (containsElement(cd, ah))
629659 then $Tuple3(ag._1, (ag._2 :+ ah), ag._3)
630660 else {
631- let cb = addressFromPublicKey(fromBase58String(ah))
632- $Tuple3((ag._1 ++ aA(cb, (ay(cb) - ca))), ag._2, (ag._3 + ca))
661+ let cf = addressFromPublicKey(fromBase58String(ah))
662+ $Tuple3((ag._1 ++ aA(cf, (ay(cf) - ce))), ag._2, (ag._3 + ce))
633663 }
634664
635- let aj = bY
665+ let aj = cc
636666 let ak = size(aj)
637667 let al = $Tuple3(nil, nil, 0)
638668 func am (an,ao) = if ((ao >= ak))
639669 then an
640670 else af(an, aj[ao])
641671
642672 func ap (an,ao) = if ((ao >= ak))
643673 then an
644674 else throw("List size exceeds 10")
645675
646676 ap(am(am(am(am(am(am(am(am(am(am(al, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
647677 }
648678
649679
650-func cc (aR,cd) = {
651- let ce = (cd / size(aR))
652- func af (ag,ah) = (ag :+ ScriptTransfer(addressFromPublicKey(fromBase58String(ah)), ce, unit))
680+func cg (aR,ch) = {
681+ let ci = (ch / size(aR))
682+ func af (ag,ah) = (ag :+ ScriptTransfer(addressFromPublicKey(fromBase58String(ah)), ci, unit))
653683
654684 let aj = aR
655685 let ak = size(aj)
656686 let al = nil
657687 func am (an,ao) = if ((ao >= ak))
658688 then an
659689 else af(an, aj[ao])
660690
661691 func ap (an,ao) = if ((ao >= ak))
662692 then an
663693 else throw("List size exceeds 10")
664694
665695 ap(am(am(am(am(am(am(am(am(am(am(al, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
666696 }
667697
668698
669-func cf (ae) = {
670- func cg (ch,ci) = (ch :+ toString(addressFromPublicKey(fromBase58String(ci))))
699+func cj (aM,aP,aT,bl,bo,L) = {
700+ let ck = bO(aT, aM)
701+ let cl = ck._1
702+ let cm = ck._2
703+ let cn = ba(aM, aP)
704+ if ((cl == D))
705+ then {
706+ let co = (fromBase58String(bl) + fromBase58String(bo))
707+ if (!(sigVerify(cm, co, cn)))
708+ then throw(L)
709+ else true
710+ }
711+ else if ((cl == E))
712+ then true
713+ else throw(L)
714+ }
715+
716+
717+func cp (ae) = {
718+ func cq (cr,cs) = (cr :+ toString(addressFromPublicKey(fromBase58String(cs))))
671719
672720 let aj = ae
673721 let ak = size(aj)
674722 let al = nil
675723 func am (an,ao) = if ((ao >= ak))
676724 then an
677- else cg(an, aj[ao])
725+ else cq(an, aj[ao])
678726
679727 func ap (an,ao) = if ((ao >= ak))
680728 then an
681729 else throw("List size exceeds 51")
682730
683731 ap(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(al, 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)
684732 }
685733
686734
687-@Callable(cj)
688-func init (ck,cl,cm,cn,co,cp) = {
689- let cq = if (if (if (if (if (if (if (if (bF(cj.caller))
690- then bI()
735+@Callable(ct)
736+func init (cu,cv,cw,cx,cy,cz) = {
737+ let cA = if (if (if (if (if (if (if (if (bI(ct.caller))
738+ then bL()
691739 else false)
692- then bH()
740+ then bK()
693741 else false)
694- then Q(ck, cl, I, "init: invalid minSecDepo")
742+ then Q(cu, cv, I, "init: invalid minSecDepo")
695743 else false)
696- then Q(cl, 0, I, "init: invalid punishment")
744+ then Q(cv, 0, I, "init: invalid punishment")
697745 else false)
698- then Q(cm, 0, I, "init: invalid resetBlockDelta")
746+ then Q(cw, 0, I, "init: invalid resetBlockDelta")
699747 else false)
700- then J(cn, "init: invalid rewardTokenAddress")
748+ then J(cx, "init: invalid rewardTokenAddress")
701749 else false)
702- then Q(co, 0, I, "init: invalid rewardAmount")
750+ then Q(cy, 0, I, "init: invalid rewardAmount")
703751 else false)
704- then J(cp, "init: invalid witnessAddress")
752+ then J(cz, "init: invalid witnessAddress")
705753 else false
706- if ((cq == cq))
707- then $Tuple2(((((((ar(true) ++ ax(ck)) ++ aC(cl)) ++ aE(cm)) ++ aG(addressFromStringValue(cn))) ++ aI(co)) ++ aK(addressFromStringValue(cp))), unit)
754+ if ((cA == cA))
755+ then $Tuple2(((((((ar(true) ++ ax(cu)) ++ aC(cv)) ++ aE(cw)) ++ aG(addressFromStringValue(cx))) ++ aI(cy)) ++ aK(addressFromStringValue(cz))), unit)
708756 else throw("Strict value is not equal to itself.")
709757 }
710758
711759
712760
713-@Callable(cj)
714-func setActiveSigners (aM,aR,cr) = {
715- let cq = if (if (if (bF(cj.caller))
716- then bJ()
761+@Callable(ct)
762+func setActiveSigners (aM,aR,cB,bc) = {
763+ let cA = if (if (if (if (bI(ct.caller))
764+ then bM()
717765 else false)
718766 then ad(aR, "setActiveSigners: invalid signers")
719767 else false)
720- then Q(cr, 2, size(aR), "setActiveSigners: invalid T")
768+ then Q(cB, 2, size(aR), "setActiveSigners: invalid T")
769+ else false)
770+ then U(bc, "setActiveSigners: invalid signerGroupPublicKey")
721771 else false
722- if ((cq == cq))
772+ if ((cA == cA))
723773 then {
724- let cs = aL(aM)
725- $Tuple2((((aN(aM, (cs + 1)) ++ aZ(aM, (cs + 1), cr)) ++ aQ(aM, (cs + 1), aR)) ++ bQ(aR)), unit)
774+ let cC = aL(aM)
775+ $Tuple2(((((aN(aM, (cC + 1)) ++ aZ(aM, (cC + 1), cB)) ++ aQ(aM, (cC + 1), aR)) ++ bb(aM, (cC + 1), fromBase58String(bc))) ++ bU(aR)), unit)
726776 }
727777 else throw("Strict value is not equal to itself.")
728778 }
729779
730780
731781
732-@Callable(cj)
733-func submitR (aT,aM,bp) = {
734- let ct = toBase58String(cj.callerPublicKey)
735- let cs = aL(aM)
736- let cu = aY(aM, cs)
737- let cq = if (if (if (if (if (if (if (if (bJ())
782+@Callable(ct)
783+func submitR (aT,aM,bs) = {
784+ let cD = toBase58String(ct.callerPublicKey)
785+ let cC = aL(aM)
786+ let cE = aY(aM, cC)
787+ let cA = if (if (if (if (if (if (if (if (bM())
738788 then Q(aT, 0, I, "submitR: invalid eventId")
739789 else false)
740790 then Q(aM, 0, I, "submitR: invalid execChainId")
741791 else false)
742- then U(bp, "submitR: invalid r")
792+ then U(bs, "submitR: invalid r")
743793 else false)
744- then bK(aT, aM, "submitR: event not confirmed")
794+ then bN(aT, aM, "submitR: event not confirmed")
745795 else false)
746- then bL(ct, aO(aM, cs), "submitR: not active")
796+ then bP(cD, aO(aM, cC), "submitR: not active")
747797 else false)
748- then bM(ct, "submitR: not enough security deposit")
798+ then bQ(cD, "submitR: not enough security deposit")
749799 else false)
750- then bN(aM, aT, "submitR: invalid event status")
800+ then bR(aM, aT, "submitR: invalid event status")
751801 else false)
752- then bS(aM, aT, ct, "submitR: already submitted")
802+ then bW(aM, aT, cD, "submitR: already submitted")
753803 else false
754- if ((cq == cq))
804+ if ((cA == cA))
755805 then {
756- let cv = ba(aM, aT)
757- let cw = bt(aM, aT)
758- let cx = if (((size(cv) + 1) == cu))
759- then (aU(aM, aT, G) ++ by(aM, aT, height))
806+ let cF = bd(aM, aT)
807+ let cG = bw(aM, aT)
808+ let cH = if (((size(cF) + 1) == cE))
809+ then (aU(aM, aT, G) ++ bB(aM, aT, height))
760810 else nil
761- $Tuple2((((bb(aM, aT, (cv :+ bp)) ++ bo(aM, aT, ct, bp)) ++ bu(aM, aT, (cw :+ ct))) ++ cx), unit)
811+ $Tuple2((((be(aM, aT, (cF :+ bs)) ++ br(aM, aT, cD, bs)) ++ bx(aM, aT, (cG :+ cD))) ++ cH), unit)
762812 }
763813 else throw("Strict value is not equal to itself.")
764814 }
765815
766816
767817
768-@Callable(cj)
769-func submitS (aT,aM,bi,bs,bl) = {
770- let ct = toBase58String(cj.callerPublicKey)
771- let cs = aL(aM)
772- let cu = aY(aM, cs)
773- let cq = if (if (if (if (if (if (if (if (if (bJ())
818+@Callable(ct)
819+func submitS (aT,aM,bl,bv,bo) = {
820+ let cD = toBase58String(ct.callerPublicKey)
821+ let cC = aL(aM)
822+ let cE = aY(aM, cC)
823+ let cA = if (if (if (if (if (if (if (if (if (bM())
774824 then Q(aT, 0, I, "submitS: invalid eventId")
775825 else false)
776826 then Q(aM, 0, I, "submitS: invalid execChainId")
777827 else false)
778- then U(bi, "submitS: invalid r sigma")
828+ then U(bl, "submitS: invalid r sigma")
779829 else false)
780- then U(bs, "submitS: invalid s")
830+ then U(bv, "submitS: invalid s")
781831 else false)
782- then bL(ct, aO(aM, cs), "submitS: not active")
832+ then bP(cD, aO(aM, cC), "submitS: not active")
783833 else false)
784- then bM(ct, "submitS: not enough security deposit")
834+ then bQ(cD, "submitS: not enough security deposit")
785835 else false)
786- then bO(aM, aT, "submitS: invalid event status")
836+ then bS(aM, aT, "submitS: invalid event status")
787837 else false)
788- then bU(aM, aT, ct, "submitS: already submitted")
838+ then bY(aM, aT, cD, "submitS: already submitted")
789839 else false)
790- then bW(aM, aT, ct, "submitS: R is not submitted")
840+ then ca(aM, aT, cD, "submitS: R is not submitted")
791841 else false
792- if ((cq == cq))
842+ if ((cA == cA))
793843 then {
794- let cy = bd(aM, aT)
795- let cw = bv(aM, aT)
796- let cx = if (((size(cy) + 1) == cu))
844+ let cI = bg(aM, aT)
845+ let cG = by(aM, aT)
846+ let cH = if (((size(cI) + 1) == cE))
797847 then {
798- let cz = U(bl, "submitS: invalid s sigma")
799- if ((cz == cz))
848+ let cJ = if (U(bo, "submitS: invalid s sigma"))
849+ then cj(aM, cC, aT, bl, bo, "submitS: invalid signature")
850+ else false
851+ if ((cJ == cJ))
800852 then {
801- let cA = bz(aM)
802- let cB = cf((cw :+ ct))
803- let cC = invoke(aF(), A, [aH(), cB], nil)
804- if ((cC == cC))
805- then (((aU(aM, aT, H) ++ bE(aM, cA, aT)) ++ bB(aM, (cA + 1))) ++ bk(aM, aT, bl))
853+ let cK = bC(aM)
854+ let cL = cp((cG :+ cD))
855+ let cM = invoke(aF(), A, [aH(), cL], nil)
856+ if ((cM == cM))
857+ then (((aU(aM, aT, H) ++ bH(aM, cK, aT)) ++ bE(aM, (cK + 1))) ++ bn(aM, aT, bo))
806858 else throw("Strict value is not equal to itself.")
807859 }
808860 else throw("Strict value is not equal to itself.")
809861 }
810862 else nil
811- $Tuple2(((((be(aM, aT, (cy :+ bs)) ++ br(aM, aT, ct, bs)) ++ bw(aM, aT, (cw :+ ct))) ++ bh(aM, aT, bi)) ++ cx), unit)
863+ $Tuple2(((((bh(aM, aT, (cI :+ bv)) ++ bu(aM, aT, cD, bv)) ++ bz(aM, aT, (cG :+ cD))) ++ bk(aM, aT, bl)) ++ cH), unit)
812864 }
813865 else throw("Strict value is not equal to itself.")
814866 }
815867
816868
817869
818-@Callable(cj)
819-func reset (aT,aM,bp) = {
820- let ct = toBase58String(cj.callerPublicKey)
821- let cs = aL(aM)
822- let cq = if (if (if (if (if (if (bJ())
870+@Callable(ct)
871+func reset (aT,aM,bs) = {
872+ let cD = toBase58String(ct.callerPublicKey)
873+ let cC = aL(aM)
874+ let cA = if (if (if (if (if (if (bM())
823875 then Q(aT, 0, I, "reset: invalid eventId")
824876 else false)
825877 then Q(aM, 0, I, "reset: invalid execChainId")
826878 else false)
827- then U(bp, "reset: invalid r")
879+ then U(bs, "reset: invalid r")
828880 else false)
829- then bL(ct, aO(aM, cs), "reset: not active")
881+ then bP(cD, aO(aM, cC), "reset: not active")
830882 else false)
831- then bM(ct, "reset: not enough security deposit")
883+ then bQ(cD, "reset: not enough security deposit")
832884 else false)
833- then bP(aM, aT, "reset: invalid event status")
885+ then bT(aM, aT, "reset: invalid event status")
834886 else false
835- if ((cq == cq))
887+ if ((cA == cA))
836888 then {
837- let cD = 0
838- let cE = bt(aM, aT)
839- let cF = bv(aM, aT)
840- let ai = bX(cE, cF)
841- let cG = ai._1
842- let cH = ai._2
843- let cI = ai._3
844- let cJ = cc(cH, cI)
845- $Tuple2((((((((((aU(aM, aT, F) ++ bb(aM, aT, [bp])) ++ bo(aM, aT, ct, bp)) ++ bu(aM, aT, [ct])) ++ bh(aM, aT, "")) ++ be(aM, aT, nil)) ++ bw(aM, aT, nil)) ++ bk(aM, aT, "")) ++ cG) ++ cJ), unit)
889+ let cN = 0
890+ let cO = bw(aM, aT)
891+ let cP = by(aM, aT)
892+ let ai = cb(cO, cP)
893+ let cQ = ai._1
894+ let cR = ai._2
895+ let cS = ai._3
896+ let cT = cg(cR, cS)
897+ $Tuple2((((((((((aU(aM, aT, F) ++ be(aM, aT, [bs])) ++ br(aM, aT, cD, bs)) ++ bx(aM, aT, [cD])) ++ bk(aM, aT, "")) ++ bh(aM, aT, nil)) ++ bz(aM, aT, nil)) ++ bn(aM, aT, "")) ++ cQ) ++ cT), unit)
846898 }
847899 else throw("Strict value is not equal to itself.")
848900 }
849901
850902
851903
852-@Callable(cj)
853-func addSecurityDeposit (cK) = {
854- let cL = if ((cK == ""))
855- then toString(cj.caller)
856- else cK
857- let cq = if (if (J(cL, "addSecurityDeposit: invalid recipient"))
858- then V(cj.payments, 1, "addSecurityDeposit: no payment")
904+@Callable(ct)
905+func addSecurityDeposit (cU) = {
906+ let cV = if ((cU == ""))
907+ then toString(ct.caller)
908+ else cU
909+ let cA = if (if (J(cV, "addSecurityDeposit: invalid recipient"))
910+ then V(ct.payments, 1, "addSecurityDeposit: no payment")
859911 else false)
860- then Y(cj.payments[0], unit, "addSecurityDeposit: invalid asset")
912+ then Y(ct.payments[0], unit, "addSecurityDeposit: invalid asset")
861913 else false
862- if ((cq == cq))
914+ if ((cA == cA))
863915 then {
864- let cM = addressFromStringValue(cL)
865- let cN = ay(cM)
866- let cO = (cN + cj.payments[0].amount)
867- $Tuple2(aA(cM, cO), unit)
916+ let cW = addressFromStringValue(cV)
917+ let cX = ay(cW)
918+ let cY = (cX + ct.payments[0].amount)
919+ $Tuple2(aA(cW, cY), unit)
868920 }
869921 else throw("Strict value is not equal to itself.")
870922 }
871923
872924
873925
874-@Callable(cj)
875-func subSecurityDeposit (cP) = {
876- let cN = ay(cj.caller)
877- let cq = if (bR(toBase58String(cj.callerPublicKey), "subSecurityDeposit: locked"))
878- then if ((cP > cN))
926+@Callable(ct)
927+func subSecurityDeposit (cZ) = {
928+ let cX = ay(ct.caller)
929+ let cA = if (bV(toBase58String(ct.callerPublicKey), "subSecurityDeposit: locked"))
930+ then if ((cZ > cX))
879931 then throw("subSecurityDeposit: insufficient balance")
880932 else true
881933 else false
882- if ((cq == cq))
883- then $Tuple2((aA(cj.caller, (cN - cP)) ++ [ScriptTransfer(cj.caller, cP, unit)]), unit)
934+ if ((cA == cA))
935+ then $Tuple2((aA(ct.caller, (cX - cZ)) ++ [ScriptTransfer(ct.caller, cZ, unit)]), unit)
884936 else throw("Strict value is not equal to itself.")
885937 }
886938
887939
888940
889-@Callable(cj)
941+@Callable(ct)
890942 func setMultisig (av) = {
891- let cq = if (bF(cj.caller))
943+ let cA = if (bI(ct.caller))
892944 then J(av, "setMultisig: invalid multisig address")
893945 else false
894- if ((cq == cq))
946+ if ((cA == cA))
895947 then $Tuple2(au(addressFromStringValue(av)), unit)
896948 else throw("Strict value is not equal to itself.")
897949 }
898950
899951
900-@Verifier(cQ)
901-func cR () = {
952+@Verifier(da)
953+func db () = {
902954 let M = getString(c)
903955 if ($isInstanceOf(M, "String"))
904956 then {
905- let cS = M
906- valueOrElse(getBoolean(addressFromStringValue(cS), makeString([d, toString(this), toBase58String(cQ.id)], a)), false)
957+ let dc = M
958+ valueOrElse(getBoolean(addressFromStringValue(dc), makeString([d, toString(this), toBase58String(da.id)], a)), false)
907959 }
908- else sigVerify(cQ.bodyBytes, cQ.proofs[0], cQ.senderPublicKey)
960+ else sigVerify(da.bodyBytes, da.proofs[0], da.senderPublicKey)
909961 }
910962

github/deemru/w8io/169f3d6 
174.25 ms