tx · GV5ontZhDSXmP5CqvEcwS6TyPSV7aNdx4tHC9hgx88Ri

3MsNhK6uve98J6DeqbuwGFBRh9GoHPGUFgp:  -0.02900000 Waves

2022.09.21 15:59 [2238926] smart account 3MsNhK6uve98J6DeqbuwGFBRh9GoHPGUFgp > SELF 0.00000000 Waves

{ "type": 13, "id": "GV5ontZhDSXmP5CqvEcwS6TyPSV7aNdx4tHC9hgx88Ri", "fee": 2900000, "feeAssetId": null, "timestamp": 1663765152917, "version": 1, "sender": "3MsNhK6uve98J6DeqbuwGFBRh9GoHPGUFgp", "senderPublicKey": "86RHVxKovtU7yKnepY8wKsd8niDxGAsiwuA1XA1DNqrS", "proofs": [ "kS7FHFPscWGPdYooiniQemiFz2RzQA6Q7stoPjcfqwRdwoQ4oXWX8mPVf2i3i4fKTft94zaNQSWGHsc3BZiuyuh" ], "script": "base64:BgJfCAISAwoBCBIDCgEIEgQKAggIEgkKBwEREREYCBgSBwoFERERGAgSBwoFAQEBCAgSABIDCgEIEgQKAggBEgQKAggBEgQKAggBEgMKAQgSCQoHCAEBAQEIARIDCgEIEgBcAAZTQ0FMRTgACAAFTVVMVDgAgMLXLwAHU0NBTEUxOAASAAZNVUxUMTgJALYCAQCAgJC7utat8A0AA1NFUAICX18ADlBPT0xXRUlHSFRNVUxUBQVNVUxUOAAKemVyb0JpZ0ludAkAtgIBAAAADmlkeFBvb2xBZGRyZXNzAAEADWlkeFBvb2xTdGF0dXMAAgAQaWR4UG9vbExQQXNzZXRJZAADAA1pZHhBbXRBc3NldElkAAQAD2lkeFByaWNlQXNzZXRJZAAFAA5pZHhBbXRBc3NldERjbQAGABBpZHhQcmljZUFzc2V0RGNtAAcADmlkeElBbXRBc3NldElkAAgAEGlkeElQcmljZUFzc2V0SWQACQANaWR4TFBBc3NldERjbQAKAQ9nZXRTdHJpbmdPckZhaWwBA2tleQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCiCAEFA2tleQkArAICCQCsAgICD21hbmRhdG9yeSB0aGlzLgUDa2V5Ag8gaXMgbm90IGRlZmluZWQBGGdldFN0cmluZ0J5QWRkcmVzc09yRmFpbAIHYWRkcmVzcwNrZXkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQdhZGRyZXNzBQNrZXkJAKwCAgkArAICCQCsAgIJAKwCAgIKbWFuZGF0b3J5IAkApQgBBQdhZGRyZXNzAgEuBQNrZXkCDyBpcyBub3QgZGVmaW5lZAEMZ2V0SW50T3JaZXJvAgdhZGRyZXNzA2tleQkBC3ZhbHVlT3JFbHNlAgkAmggCBQdhZGRyZXNzBQNrZXkAAAEMZ2V0SW50T3JGYWlsAgdhZGRyZXNzA2tleQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFB2FkZHJlc3MFA2tleQkArAICCQCsAgICD21hbmRhdG9yeSB0aGlzLgUDa2V5Ag8gaXMgbm90IGRlZmluZWQBCWFzQW55TGlzdAEDdmFsBAckbWF0Y2gwBQN2YWwDCQABAgUHJG1hdGNoMAIJTGlzdFtBbnldBAp2YWxBbnlMeXN0BQckbWF0Y2gwBQp2YWxBbnlMeXN0CQACAQIbZmFpbCB0byBjYXN0IGludG8gTGlzdFtBbnldAQVhc0ludAEDdmFsBAckbWF0Y2gwBQN2YWwDCQABAgUHJG1hdGNoMAIDSW50BAZ2YWxJbnQFByRtYXRjaDAFBnZhbEludAkAAgECFWZhaWwgdG8gY2FzdCBpbnRvIEludAEIYXNTdHJpbmcBA3ZhbAQHJG1hdGNoMAUDdmFsAwkAAQIFByRtYXRjaDACBlN0cmluZwQGdmFsU3RyBQckbWF0Y2gwBQZ2YWxTdHIJAAIBAhhmYWlsIHRvIGNhc3QgaW50byBTdHJpbmcBEWtleUZhY3RvcnlBZGRyZXNzAAIcJXMlc19fY29uZmlnX19mYWN0b3J5QWRkcmVzcwETa2V5TWFuYWdlclB1YmxpY0tleQACFCVzX19tYW5hZ2VyUHVibGljS2V5ARprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleQACGyVzX19wZW5kaW5nTWFuYWdlclB1YmxpY0tleQAYSWR4RmFjdG9yeUNmZ1N0YWtpbmdEYXBwAAEAGUlkeEZhY3RvcnlDZmdCb29zdGluZ0RhcHAAAgAUSWR4RmFjdG9yeUNmZ0lkb0RhcHAAAwAVSWR4RmFjdG9yeUNmZ1RlYW1EYXBwAAQAGUlkeEZhY3RvcnlDZmdFbWlzc2lvbkRhcHAABQAVSWR4RmFjdG9yeUNmZ1Jlc3REYXBwAAYAGUlkeEZhY3RvcnlDZmdTbGlwcGFnZURhcHAABwAaSWR4RmFjdG9yeUNmZ0d3eFJld2FyZERhcHAACAENa2V5RmFjdG9yeUNmZwACESVzX19mYWN0b3J5Q29uZmlnARprZXlGYWN0b3J5THAyQXNzZXRzTWFwcGluZwEKbHBBc3NldFN0cgkAuQkCCQDMCAICBiVzJXMlcwkAzAgCBQpscEFzc2V0U3RyCQDMCAICHm1hcHBpbmdzX19scEFzc2V0MlBvb2xDb250cmFjdAUDbmlsBQNTRVABEGtleUZhY3RvcnlMcExpc3QAAhAlc19fbHBUb2tlbnNMaXN0ASZrZXlGYWN0b3J5THBBc3NldFRvUG9vbENvbnRyYWN0QWRkcmVzcwEKbHBBc3NldFN0cgkAuQkCCQDMCAICBiVzJXMlcwkAzAgCBQpscEFzc2V0U3RyCQDMCAICHm1hcHBpbmdzX19scEFzc2V0MlBvb2xDb250cmFjdAUDbmlsBQNTRVABFGtleUZhY3RvcnlQb29sV2VpZ2h0AQ9jb250cmFjdEFkZHJlc3MJALkJAgkAzAgCAgQlcyVzCQDMCAICCnBvb2xXZWlnaHQJAMwIAgUPY29udHJhY3RBZGRyZXNzBQNuaWwFA1NFUAEYcmVhZEZhY3RvcnlBZGRyZXNzT3JGYWlsAAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBD2dldFN0cmluZ09yRmFpbAEJARFrZXlGYWN0b3J5QWRkcmVzcwABCnJlYWRMcExpc3QACQC1CQIJAQt2YWx1ZU9yRWxzZQIJAJ0IAgkBGHJlYWRGYWN0b3J5QWRkcmVzc09yRmFpbAAJARBrZXlGYWN0b3J5THBMaXN0AAIABQNTRVABFHJlYWRGYWN0b3J5Q2ZnT3JGYWlsAQdmYWN0b3J5CQC1CQIJARhnZXRTdHJpbmdCeUFkZHJlc3NPckZhaWwCBQdmYWN0b3J5CQENa2V5RmFjdG9yeUNmZwAFA1NFUAEYZ2V0Qm9vc3RpbmdBZGRyZXNzT3JGYWlsAQRmQ2ZnCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFBGZDZmcFGUlkeEZhY3RvcnlDZmdCb29zdGluZ0RhcHABGGdldEVtaXNzaW9uQWRkcmVzc09yRmFpbAEEZkNmZwkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQRmQ2ZnBRlJZHhGYWN0b3J5Q2ZnRW1pc3Npb25EYXBwARdnZXRTdGFraW5nQWRkcmVzc09yRmFpbAEEZkNmZwkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQRmQ2ZnBRhJZHhGYWN0b3J5Q2ZnU3Rha2luZ0RhcHABGWdldEd3eFJld2FyZEFkZHJlc3NPckZhaWwBBGZDZmcJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUEZkNmZwUaSWR4RmFjdG9yeUNmZ0d3eFJld2FyZERhcHABC2tleUJvb3N0Q2ZnAAIKJXNfX2NvbmZpZwEfa2V5Qm9vc3RpbmdMb2NrUGFyYW1Ub3RhbEFtb3VudAACHiVzJXNfX3N0YXRzX19hY3RpdmVUb3RhbExvY2tlZAEoa2V5Qm9vc3RpbmdTdGF0c0xvY2tzRHVyYXRpb25TdW1JbkJsb2NrcwACJSVzJXNfX3N0YXRzX19sb2Nrc0R1cmF0aW9uU3VtSW5CbG9ja3MBGmtleUJvb3N0aW5nU3RhdHNMb2Nrc0NvdW50AAIXJXMlc19fc3RhdHNfX2xvY2tzQ291bnQBGmtleUJvb3N0aW5nU3RhdHNVc2Vyc0NvdW50AAIdJXMlc19fc3RhdHNfX2FjdGl2ZVVzZXJzQ291bnQBEmtleVVzZXIyTnVtTWFwcGluZwELdXNlckFkZHJlc3MJALkJAgkAzAgCAhklcyVzJXNfX21hcHBpbmdfX3VzZXIybnVtCQDMCAIFC3VzZXJBZGRyZXNzBQNuaWwFA1NFUAESa2V5TnVtMlVzZXJNYXBwaW5nAQNudW0JALkJAgkAzAgCAhklcyVzJXNfX21hcHBpbmdfX251bTJ1c2VyCQDMCAIFA251bQUDbmlsBQNTRVABFmtleUxvY2tQYXJhbVVzZXJBbW91bnQBB3VzZXJOdW0JALkJAgkAzAgCAhYlcyVkJXNfX3BhcmFtQnlVc2VyTnVtCQDMCAIFB3VzZXJOdW0JAMwIAgIGYW1vdW50BQNuaWwFA1NFUAEWa2V5TG9ja1BhcmFtU3RhcnRCbG9jawEHdXNlck51bQkAuQkCCQDMCAICFiVzJWQlc19fcGFyYW1CeVVzZXJOdW0JAMwIAgUHdXNlck51bQkAzAgCAgVzdGFydAUDbmlsBQNTRVABFGtleUxvY2tQYXJhbUR1cmF0aW9uAQd1c2VyTnVtCQC5CQIJAMwIAgIWJXMlZCVzX19wYXJhbUJ5VXNlck51bQkAzAgCBQd1c2VyTnVtCQDMCAICCGR1cmF0aW9uBQNuaWwFA1NFUAENa2V5TG9ja1BhcmFtSwEHdXNlck51bQkAuQkCCQDMCAICFiVzJWQlc19fcGFyYW1CeVVzZXJOdW0JAMwIAgUHdXNlck51bQkAzAgCAgFrBQNuaWwFA1NFUAENa2V5TG9ja1BhcmFtQgEHdXNlck51bQkAuQkCCQDMCAICFiVzJWQlc19fcGFyYW1CeVVzZXJOdW0JAMwIAgUHdXNlck51bQkAzAgCAgFiBQNuaWwFA1NFUAEVa2V5TG9ja1BhcmFtQnlQZXJpb2RLAgd1c2VyTnVtBnBlcmlvZAkAuQkCCQDMCAICFyVzJWQlcyVkX19wYXJhbUJ5UGVyaW9kCQDMCAIFB3VzZXJOdW0JAMwIAgIBawkAzAgCBQZwZXJpb2QFA25pbAUDU0VQARVrZXlMb2NrUGFyYW1CeVBlcmlvZEICB3VzZXJOdW0GcGVyaW9kCQC5CQIJAMwIAgIXJXMlZCVzJWRfX3BhcmFtQnlQZXJpb2QJAMwIAgUHdXNlck51bQkAzAgCAgFiCQDMCAIFBnBlcmlvZAUDbmlsBQNTRVABIGtleVVzZXJCb29zdEVtaXNzaW9uTGFzdElOVEVHUkFMAQd1c2VyTnVtCQC5CQIJAMwIAgIeJXMlZF9fdXNlckJvb3N0RW1pc3Npb25MYXN0SW50CQDMCAIFB3VzZXJOdW0FA25pbAUDU0VQARdrZXlVc2VyTWF4Qm9vc3RJTlRFR1JBTAEHdXNlck51bQkAuQkCCQDMCAICESVzJWRfX21heEJvb3N0SW50CQDMCAIFB3VzZXJOdW0FA25pbAUDU0VQARhrZXlUb3RhbE1heEJvb3N0SU5URUdSQUwAAhglcyVzX19tYXhCb29zdEludF9fdG90YWwBIWtleVVzZXJCb29zdEF2YWxhaWJsZVRvQ2xhaW1Ub3RhbAEHdXNlck51bQkAuQkCCQDMCAICJCVzJWRfX3VzZXJCb29zdEF2YWxpYWJsZVRvQ2xhaW1Ub3RhbAkAzAgCBQd1c2VyTnVtBQNuaWwFA1NFUAETa2V5VXNlckJvb3N0Q2xhaW1lZAEHdXNlck51bQkAuQkCCQDMCAICFiVzJWRfX3VzZXJCb29zdENsYWltZWQJAMwIAgUHdXNlck51bQUDbmlsBQNTRVABEWtleVRvdGFsQ2FjaGVkR3d4AAIWJXMlc19fZ3d4Q2FjaGVkX190b3RhbAEPa2V5U3Rha2VkQnlVc2VyAg51c2VyQWRkcmVzc1N0cgxscEFzc2V0SWRTdHIJALkJAgkAzAgCAg4lcyVzJXNfX3N0YWtlZAkAzAgCBQ51c2VyQWRkcmVzc1N0cgkAzAgCBQxscEFzc2V0SWRTdHIFA25pbAUDU0VQAQ5rZXlTdGFrZWRUb3RhbAEMbHBBc3NldElkU3RyCQCsAgICFyVzJXMlc19fc3Rha2VkX190b3RhbF9fBQxscEFzc2V0SWRTdHIBEGtleUNsYWltZWRCeVVzZXICDGxwQXNzZXRJZFN0cg51c2VyQWRkcmVzc1N0cgkAuQkCCQDMCAICDyVzJXMlc19fY2xhaW1lZAkAzAgCBQ51c2VyQWRkcmVzc1N0cgkAzAgCBQxscEFzc2V0SWRTdHIFA25pbAUDU0VQARlrZXlDbGFpbWVkQnlVc2VyTWluUmV3YXJkAgxscEFzc2V0SWRTdHIOdXNlckFkZHJlc3NTdHIJALkJAgkAzAgCAhglcyVzJXNfX2NsYWltZWRNaW5SZXdhcmQJAMwIAgUOdXNlckFkZHJlc3NTdHIJAMwIAgUMbHBBc3NldElkU3RyBQNuaWwFA1NFUAEba2V5Q2xhaW1lZEJ5VXNlckJvb3N0UmV3YXJkAgxscEFzc2V0SWRTdHIOdXNlckFkZHJlc3NTdHIJALkJAgkAzAgCAholcyVzJXNfX2NsYWltZWRCb29zdFJld2FyZAkAzAgCBQ51c2VyQWRkcmVzc1N0cgkAzAgCBQxscEFzc2V0SWRTdHIFA25pbAUDU0VQAQpyZWFkU3Rha2VkAgtzdGFraW5nRGFwcANrZXkJAQt2YWx1ZU9yRWxzZQIJAJoIAgULc3Rha2luZ0RhcHAFA2tleQAAAR5rZXlFbWlzc2lvblJhdGVQZXJCbG9ja0N1cnJlbnQAAhslcyVzX19yYXRlUGVyQmxvY2tfX2N1cnJlbnQBIWtleUVtaXNzaW9uUmF0ZVBlckJsb2NrTWF4Q3VycmVudAACHiVzJXNfX3JhdGVQZXJCbG9ja01heF9fY3VycmVudAEVa2V5RW1pc3Npb25TdGFydEJsb2NrAAIaJXMlc19fZW1pc3Npb25fX3N0YXJ0QmxvY2sBG2tleUVtaXNzaW9uRHVyYXRpb25JbkJsb2NrcwACGCVzJXNfX2VtaXNzaW9uX19kdXJhdGlvbgETa2V5RW1pc3Npb25FbmRCbG9jawACGCVzJXNfX2VtaXNzaW9uX19lbmRCbG9jawAKZmVlRGVmYXVsdAkAawMABQUGU0NBTEU4AJBOAQxrZXlBZGRvbkFkZHIAAg0lc19fYWRkb25BZGRyAQZrZXlGZWUAAgclc19fZmVlAAtmYWN0b3J5RGFwcAkBGHJlYWRGYWN0b3J5QWRkcmVzc09yRmFpbAAACmZhY3RvcnlDZmcJARRyZWFkRmFjdG9yeUNmZ09yRmFpbAEFC2ZhY3RvcnlEYXBwAAxlbWlzc2lvbkRhcHAJARhnZXRFbWlzc2lvbkFkZHJlc3NPckZhaWwBBQpmYWN0b3J5Q2ZnAAtzdGFraW5nRGFwcAkBF2dldFN0YWtpbmdBZGRyZXNzT3JGYWlsAQUKZmFjdG9yeUNmZwANZ3d4UmV3YXJkRGFwcAkBGWdldEd3eFJld2FyZEFkZHJlc3NPckZhaWwBBQpmYWN0b3J5Q2ZnAAxib29zdGluZ0RhcHAJARhnZXRCb29zdGluZ0FkZHJlc3NPckZhaWwBBQpmYWN0b3J5Q2ZnARlpbnRlcm5hbEN1cnJlbnRSZXdhcmRSYXRlAQlscEFzc2V0SWQEDnBvb2xBZGRyZXNzU3RyCQEYZ2V0U3RyaW5nQnlBZGRyZXNzT3JGYWlsAgULZmFjdG9yeURhcHAJASZrZXlGYWN0b3J5THBBc3NldFRvUG9vbENvbnRyYWN0QWRkcmVzcwEFCWxwQXNzZXRJZAQOcG9vbFdlaWdodE11bHQFBU1VTFQ4BApwb29sV2VpZ2h0CQERQGV4dHJOYXRpdmUoMTA1MCkCBQtmYWN0b3J5RGFwcAkBFGtleUZhY3RvcnlQb29sV2VpZ2h0AQUOcG9vbEFkZHJlc3NTdHIEEnd4RW1pc3Npb25QZXJCbG9jawkBDGdldEludE9yRmFpbAIFDGVtaXNzaW9uRGFwcAkBHmtleUVtaXNzaW9uUmF0ZVBlckJsb2NrQ3VycmVudAAEFXd4RW1pc3Npb25QZXJCbG9ja01heAkBDGdldEludE9yRmFpbAIFDGVtaXNzaW9uRGFwcAkBIWtleUVtaXNzaW9uUmF0ZVBlckJsb2NrTWF4Q3VycmVudAAEDWJvb3N0TWF4Q29lZmYAAwQWcG9vbFd4RW1pc3Npb25QZXJCbG9jawkAaQIJAGsDBRJ3eEVtaXNzaW9uUGVyQmxvY2sFCnBvb2xXZWlnaHQFDnBvb2xXZWlnaHRNdWx0BQ1ib29zdE1heENvZWZmBBlwb29sV3hFbWlzc2lvblBlckJsb2NrTWF4CQBrAwUVd3hFbWlzc2lvblBlckJsb2NrTWF4BQpwb29sV2VpZ2h0BQ5wb29sV2VpZ2h0TXVsdAQJbWF4RmFjdG9yCQBoAgUNYm9vc3RNYXhDb2VmZgUFTVVMVDgEDXRvdGFsTHBTdGFrZWQJAQxnZXRJbnRPclplcm8CBQtzdGFraW5nRGFwcAkBDmtleVN0YWtlZFRvdGFsAQUJbHBBc3NldElkCQDMCAIFFnBvb2xXeEVtaXNzaW9uUGVyQmxvY2sJAMwIAgUJbWF4RmFjdG9yCQDMCAIFDXRvdGFsTHBTdGFrZWQFA25pbAEaY2FsY0d3eEFtb3VudFN0YXJ0UkVBRE9OTFkDCmxvY2tBbW91bnQMbG9ja0R1cmF0aW9uD21heExvY2tEdXJhdGlvbgQHY29lZmZYOAkAawMFDGxvY2tEdXJhdGlvbgUFTVVMVDgFD21heExvY2tEdXJhdGlvbgQOZ1d4QW1vdW50U3RhcnQJAGsDBQpsb2NrQW1vdW50BQdjb2VmZlg4BQVNVUxUOAkAzAgCBQ5nV3hBbW91bnRTdGFydAUDbmlsARZtYW5hZ2VyUHVibGljS2V5T3JVbml0AAQHJG1hdGNoMAkAoggBCQETa2V5TWFuYWdlclB1YmxpY0tleQADCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQDZBAEFAXMDCQABAgUHJG1hdGNoMAIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAR1wZW5kaW5nTWFuYWdlclB1YmxpY0tleU9yVW5pdAAEByRtYXRjaDAJAKIIAQkBGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJANkEAQUBcwMJAAECBQckbWF0Y2gwAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IBC211c3RNYW5hZ2VyAQFpBAJwZAkAAgECEVBlcm1pc3Npb24gZGVuaWVkBAckbWF0Y2gwCQEWbWFuYWdlclB1YmxpY0tleU9yVW5pdAADCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQCcGsFByRtYXRjaDADCQAAAggFAWkPY2FsbGVyUHVibGljS2V5BQJwawYFAnBkAwkAAQIFByRtYXRjaDACBFVuaXQDCQAAAggFAWkGY2FsbGVyBQR0aGlzBgUCcGQJAAIBAgtNYXRjaCBlcnJvcg8BaQELY29uc3RydWN0b3IBDmZhY3RvcnlBZGRyZXNzBAtjaGVja0NhbGxlcgkBC211c3RNYW5hZ2VyAQUBaQMJAAACBQtjaGVja0NhbGxlcgULY2hlY2tDYWxsZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBEWtleUZhY3RvcnlBZGRyZXNzAAUOZmFjdG9yeUFkZHJlc3MFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARljdXJyZW50UmV3YXJkUmF0ZVJFQURPTkxZAQlscEFzc2V0SWQECnJld2FyZERhdGEJARlpbnRlcm5hbEN1cnJlbnRSZXdhcmRSYXRlAQUJbHBBc3NldElkBBJ3eEVtaXNzaW9uUGVyQmxvY2sJAJEDAgUKcmV3YXJkRGF0YQAABAltYXhGYWN0b3IJAJEDAgUKcmV3YXJkRGF0YQABBA10b3RhbExwU3Rha2VkCQCRAwIFCnJld2FyZERhdGEAAgkAlAoCBQNuaWwJALkJAgkAzAgCAgYlZCVkJWQJAMwIAgkApAMBBRJ3eEVtaXNzaW9uUGVyQmxvY2sJAMwIAgkApAMBBQltYXhGYWN0b3IJAMwIAgkApAMBBQ10b3RhbExwU3Rha2VkBQNuaWwFA1NFUAFpAR1jdXJyZW50VXNlclJld2FyZFJhdGVSRUFET05MWQIJbHBBc3NldElkC3VzZXJBZGRyZXNzBApyZXdhcmREYXRhCQEZaW50ZXJuYWxDdXJyZW50UmV3YXJkUmF0ZQEFCWxwQXNzZXRJZAQSd3hFbWlzc2lvblBlckJsb2NrCQCRAwIFCnJld2FyZERhdGEAAAQJbWF4RmFjdG9yCQCRAwIFCnJld2FyZERhdGEAAQQNdG90YWxMcFN0YWtlZAkAkQMCBQpyZXdhcmREYXRhAAIEDmxwU3Rha2VkQnlVc2VyCQEMZ2V0SW50T3JaZXJvAgULc3Rha2luZ0RhcHAJAQ9rZXlTdGFrZWRCeVVzZXICBQt1c2VyQWRkcmVzcwUJbHBBc3NldElkBA11c2VyQ2xhaW1JbmZvCQC1CQIJAQhhc1N0cmluZwEJAPwHBAULc3Rha2luZ0RhcHACD2NsYWltV3hSRUFET05MWQkAzAgCBQlscEFzc2V0SWQJAMwIAgULdXNlckFkZHJlc3MFA25pbAUDbmlsBQNTRVAEDW1pblJld2FyZFBhcnQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAtgkBCQCRAwIFDXVzZXJDbGFpbUluZm8ABQIcY291bGRuJ3QgcGFyc2UgbWluUmV3YXJkUGFydAQPYm9vc3RSZXdhcmRQYXJ0CQETdmFsdWVPckVycm9yTWVzc2FnZQIJALYJAQkAkQMCBQ11c2VyQ2xhaW1JbmZvAAYCHmNvdWxkbid0IHBhcnNlIGJvb3N0UmV3YXJkUGFydAQFZGVidWcJAJEDAgUNdXNlckNsYWltSW5mbwAHBA1ib29zdGluZ1Bvd2VyAwkAAAIFD2Jvb3N0UmV3YXJkUGFydAAACQBoAgABBQVNVUxUOAkAawMJAGQCBQ1taW5SZXdhcmRQYXJ0BQ9ib29zdFJld2FyZFBhcnQFBU1VTFQ4BQ1taW5SZXdhcmRQYXJ0CQCUCgIFA25pbAkAuQkCCQDMCAICDCVkJWQlZCVkJWQlcwkAzAgCCQCkAwEFEnd4RW1pc3Npb25QZXJCbG9jawkAzAgCCQCkAwEFCW1heEZhY3RvcgkAzAgCCQCkAwEFDXRvdGFsTHBTdGFrZWQJAMwIAgkApAMBBQ5scFN0YWtlZEJ5VXNlcgkAzAgCCQCkAwEFDWJvb3N0aW5nUG93ZXIJAMwIAgUFZGVidWcFA25pbAUDU0VQAWkBHWNhbGNCb29zdEJ1bGtJbnRlcm5hbFJFQURPTkxZBwtjdXJyZW50SXRlchFkZWx0YVd4QW1vdW50QnVsaxtkZWx0YUxvY2tQZXJpb2RJbkJsb2Nrc0J1bGsRZGVsdGFMcEFtb3VudEJ1bGsQbHBBc3NldElkT3B0QnVsaw51c2VyQWRkcmVzc09wdAZyZXNBY2MDCQAAAgULY3VycmVudEl0ZXIJAJADAQURZGVsdGFXeEFtb3VudEJ1bGsJAJQKAgUDbmlsBQZyZXNBY2MEDWRlbHRhV3hBbW91bnQJAJEDAgURZGVsdGFXeEFtb3VudEJ1bGsFC2N1cnJlbnRJdGVyBBdkZWx0YUxvY2tQZXJpb2RJbkJsb2NrcwkAkQMCBRtkZWx0YUxvY2tQZXJpb2RJbkJsb2Nrc0J1bGsFC2N1cnJlbnRJdGVyBA1kZWx0YUxwQW1vdW50CQCRAwIFEWRlbHRhTHBBbW91bnRCdWxrBQtjdXJyZW50SXRlcgQMbHBBc3NldElkT3B0CQCRAwIFEGxwQXNzZXRJZE9wdEJ1bGsFC2N1cnJlbnRJdGVyBARpbmZvCgABQAkA/AcEBQR0aGlzAhFjYWxjQm9vc3RSRUFET05MWQkAzAgCBQ1kZWx0YVd4QW1vdW50CQDMCAIFF2RlbHRhTG9ja1BlcmlvZEluQmxvY2tzCQDMCAIFDWRlbHRhTHBBbW91bnQJAMwIAgUMbHBBc3NldElkT3B0CQDMCAIFDnVzZXJBZGRyZXNzT3B0BQNuaWwFA25pbAMJAAECBQFAAgZTdHJpbmcFAUAJAAIBCQCsAgIJAAMBCQD8BwQFBHRoaXMCEWNhbGNCb29zdFJFQURPTkxZCQDMCAIFDWRlbHRhV3hBbW91bnQJAMwIAgUXZGVsdGFMb2NrUGVyaW9kSW5CbG9ja3MJAMwIAgUNZGVsdGFMcEFtb3VudAkAzAgCBQxscEFzc2V0SWRPcHQJAMwIAgUOdXNlckFkZHJlc3NPcHQFA25pbAUDbmlsAhsgY291bGRuJ3QgYmUgY2FzdCB0byBTdHJpbmcEA3JlcwkAzQgCBQZyZXNBY2MFBGluZm8EA2ludgoAAUAJAPwHBAUEdGhpcwIdY2FsY0Jvb3N0QnVsa0ludGVybmFsUkVBRE9OTFkJAMwIAgkAZAIFC2N1cnJlbnRJdGVyAAEJAMwIAgURZGVsdGFXeEFtb3VudEJ1bGsJAMwIAgUbZGVsdGFMb2NrUGVyaW9kSW5CbG9ja3NCdWxrCQDMCAIFEWRlbHRhTHBBbW91bnRCdWxrCQDMCAIFEGxwQXNzZXRJZE9wdEJ1bGsJAMwIAgUOdXNlckFkZHJlc3NPcHQJAMwIAgUDcmVzBQNuaWwFA25pbAMJAAECBQFAAglMaXN0W0FueV0FAUAJAAIBCQCsAgIJAAMBCQD8BwQFBHRoaXMCHWNhbGNCb29zdEJ1bGtJbnRlcm5hbFJFQURPTkxZCQDMCAIJAGQCBQtjdXJyZW50SXRlcgABCQDMCAIFEWRlbHRhV3hBbW91bnRCdWxrCQDMCAIFG2RlbHRhTG9ja1BlcmlvZEluQmxvY2tzQnVsawkAzAgCBRFkZWx0YUxwQW1vdW50QnVsawkAzAgCBRBscEFzc2V0SWRPcHRCdWxrCQDMCAIFDnVzZXJBZGRyZXNzT3B0CQDMCAIFA3JlcwUDbmlsBQNuaWwCHiBjb3VsZG4ndCBiZSBjYXN0IHRvIExpc3RbQW55XQMJAAACBQNpbnYFA2ludgkAlAoCBQNuaWwFA2ludgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARVjYWxjQm9vc3RCdWxrUkVBRE9OTFkFDWRlbHRhV3hBbW91bnQXZGVsdGFMb2NrUGVyaW9kSW5CbG9ja3MNZGVsdGFMcEFtb3VudAxscEFzc2V0SWRPcHQOdXNlckFkZHJlc3NPcHQEA3JlcwkA/AcEBQR0aGlzAh1jYWxjQm9vc3RCdWxrSW50ZXJuYWxSRUFET05MWQkAzAgCAAAJAMwIAgUNZGVsdGFXeEFtb3VudAkAzAgCBRdkZWx0YUxvY2tQZXJpb2RJbkJsb2NrcwkAzAgCBQ1kZWx0YUxwQW1vdW50CQDMCAIFDGxwQXNzZXRJZE9wdAkAzAgCBQ51c2VyQWRkcmVzc09wdAkAzAgCBQNuaWwFA25pbAUDbmlsCQCUCgIFA25pbAUDcmVzAWkBEWNhbGNCb29zdFJFQURPTkxZBQ1kZWx0YVd4QW1vdW50F2RlbHRhTG9ja1BlcmlvZEluQmxvY2tzDWRlbHRhTHBBbW91bnQMbHBBc3NldElkT3B0DnVzZXJBZGRyZXNzT3B0BAhtYXRoRGFwcAUNZ3d4UmV3YXJkRGFwcAQIRU1QVFlTVFICBWVtcHR5BBdtYXhMb2NrRHVyYXRpb25JbkJsb2NrcwkBDXBhcnNlSW50VmFsdWUBCQCRAwIJALUJAgkBGGdldFN0cmluZ0J5QWRkcmVzc09yRmFpbAIFDGJvb3N0aW5nRGFwcAkBC2tleUJvb3N0Q2ZnAAUDU0VQAAQEDGxwQXNzZXRJZFN0cgMJAAACBQxscEFzc2V0SWRPcHQCAAUIRU1QVFlTVFIFDGxwQXNzZXRJZE9wdAQOdXNlckFkZHJlc3NTdHIDCQAAAgUOdXNlckFkZHJlc3NPcHQCAAUIRU1QVFlTVFIFDnVzZXJBZGRyZXNzT3B0BAp1c2VyTnVtU3RyCQELdmFsdWVPckVsc2UCCQCdCAIFDGJvb3N0aW5nRGFwcAkBEmtleVVzZXIyTnVtTWFwcGluZwEFDnVzZXJBZGRyZXNzT3B0BQhFTVBUWVNUUgQKdXNlckFtb3VudAkBC3ZhbHVlT3JFbHNlAgkAmggCBQxib29zdGluZ0RhcHAJARZrZXlMb2NrUGFyYW1Vc2VyQW1vdW50AQUKdXNlck51bVN0cgAABAlsb2NrU3RhcnQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUMYm9vc3RpbmdEYXBwCQEWa2V5TG9ja1BhcmFtU3RhcnRCbG9jawEFCnVzZXJOdW1TdHIFBmhlaWdodAQMbG9ja0R1cmF0aW9uCQELdmFsdWVPckVsc2UCCQCaCAIFDGJvb3N0aW5nRGFwcAkBFGtleUxvY2tQYXJhbUR1cmF0aW9uAQUKdXNlck51bVN0cgAABAdsb2NrRW5kCQBkAgUJbG9ja1N0YXJ0BQxsb2NrRHVyYXRpb24EEXJlbWFpbmluZ0R1cmF0aW9uCQCWAwEJAMwIAgkAZQIFB2xvY2tFbmQFBmhlaWdodAkAzAgCAAAFA25pbAQNdXNlckFtb3VudE5ldwkAZAIFCnVzZXJBbW91bnQFDWRlbHRhV3hBbW91bnQED2xvY2tEdXJhdGlvbk5ldwkAlwMBCQDMCAIJAGQCBRFyZW1haW5pbmdEdXJhdGlvbgUXZGVsdGFMb2NrUGVyaW9kSW5CbG9ja3MJAMwIAgUXbWF4TG9ja0R1cmF0aW9uSW5CbG9ja3MFA25pbAQRdXNlckN1cnJnV3hBbW91bnQJAQVhc0ludAEJAJEDAgkBCWFzQW55TGlzdAEJAPwHBAUMYm9vc3RpbmdEYXBwAhNnd3hVc2VySW5mb1JFQURPTkxZCQDMCAIFDnVzZXJBZGRyZXNzU3RyBQNuaWwFA25pbAAABBFnV3hBbW91bnRTdGFydE5ldwkAkQMCCQEaY2FsY0d3eEFtb3VudFN0YXJ0UkVBRE9OTFkDBQ11c2VyQW1vdW50TmV3BQ9sb2NrRHVyYXRpb25OZXcFF21heExvY2tEdXJhdGlvbkluQmxvY2tzAAAEE2dXeFBhcmFtc1Jlc3VsdExpc3QJAQlhc0FueUxpc3QBCQD8BwQFCG1hdGhEYXBwAhVjYWxjR3d4UGFyYW1zUkVBRE9OTFkJAMwIAgURZ1d4QW1vdW50U3RhcnROZXcJAMwIAgUGaGVpZ2h0CQDMCAIFD2xvY2tEdXJhdGlvbk5ldwUDbmlsBQNuaWwEDWdXeEFtb3VudERpZmYJAGUCBRFnV3hBbW91bnRTdGFydE5ldwURdXNlckN1cnJnV3hBbW91bnQEAWsJAQVhc0ludAEJAJEDAgUTZ1d4UGFyYW1zUmVzdWx0TGlzdAAABAFiCQEFYXNJbnQBCQCRAwIFE2dXeFBhcmFtc1Jlc3VsdExpc3QAAQQGcGVyaW9kCQCkAwEJAQVhc0ludAEJAJEDAgUTZ1d4UGFyYW1zUmVzdWx0TGlzdAACBBh0b3RhbE1heEJvb3N0SW50ZWdyYWxLRVkJARhrZXlUb3RhbE1heEJvb3N0SU5URUdSQUwABBF0b3RhbENhY2hlZEd3eEtFWQkBEWtleVRvdGFsQ2FjaGVkR3d4AAQSdXNlck1heEJvb3N0SW50TmV3CQBpAgkAaAIFEWdXeEFtb3VudFN0YXJ0TmV3BQ9sb2NrRHVyYXRpb25OZXcAAgQQdG90YWxNYXhCb29zdEludAkBDGdldEludE9yWmVybwIFDGJvb3N0aW5nRGFwcAUYdG90YWxNYXhCb29zdEludGVncmFsS0VZBA50b3RhbENhY2hlZEd3eAkBC3ZhbHVlT3JFbHNlAgkAmggCBQxib29zdGluZ0RhcHAFEXRvdGFsQ2FjaGVkR3d4S0VZAAAEBU1VTFQzAOgHBBR3eEVtaXNzaW9uUGVyQmxvY2tYMwkAaAIJAQxnZXRJbnRPckZhaWwCBQxlbWlzc2lvbkRhcHAJAR5rZXlFbWlzc2lvblJhdGVQZXJCbG9ja0N1cnJlbnQABQVNVUxUMwQPc3Rha2VkQnlVc2VyS0VZCQEPa2V5U3Rha2VkQnlVc2VyAgUOdXNlckFkZHJlc3NTdHIFDGxwQXNzZXRJZFN0cgQOc3Rha2VkVG90YWxLRVkJAQ5rZXlTdGFrZWRUb3RhbAEFDGxwQXNzZXRJZFN0cgQMc3Rha2VkQnlVc2VyCQEKcmVhZFN0YWtlZAIFC3N0YWtpbmdEYXBwBQ9zdGFrZWRCeVVzZXJLRVkEC3N0YWtlZFRvdGFsCQEKcmVhZFN0YWtlZAIFC3N0YWtpbmdEYXBwBQ5zdGFrZWRUb3RhbEtFWQQPc3Rha2VkQnlVc2VyTmV3CQBkAgUMc3Rha2VkQnlVc2VyBQ1kZWx0YUxwQW1vdW50BA5zdGFrZWRUb3RhbE5ldwkAZAIFC3N0YWtlZFRvdGFsBQ1kZWx0YUxwQW1vdW50BApwb29sV2VpZ2h0AwkBAiE9AgUMbHBBc3NldElkU3RyBQhFTVBUWVNUUgQOcG9vbEFkZHJlc3NTdHIJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQtmYWN0b3J5RGFwcAkBGmtleUZhY3RvcnlMcDJBc3NldHNNYXBwaW5nAQUMbHBBc3NldElkU3RyCQCsAgICFXVuc3VwcG9ydGVkIGxwIGFzc2V0IAUMbHBBc3NldElkU3RyCQERQGV4dHJOYXRpdmUoMTA1MCkCBQtmYWN0b3J5RGFwcAkBFGtleUZhY3RvcnlQb29sV2VpZ2h0AQUOcG9vbEFkZHJlc3NTdHIAAAQYcG9vbFd4RW1pc3Npb25QZXJCbG9ja1gzCQBrAwUUd3hFbWlzc2lvblBlckJsb2NrWDMFCnBvb2xXZWlnaHQJAGgCBQ5QT09MV0VJR0hUTVVMVAADBAl3eFBlckxwWDMDCQECIT0CBQ5zdGFrZWRUb3RhbE5ldwAACQBrAwUYcG9vbFd4RW1pc3Npb25QZXJCbG9ja1gzBQVNVUxUOAUOc3Rha2VkVG90YWxOZXcAAAQQdXNlcld4UGVyQmxvY2tYMwkAawMFCXd4UGVyTHBYMwUPc3Rha2VkQnlVc2VyTmV3BQVNVUxUOAQXYm9vc3RFbWlzc2lvblBlckJsb2NrWDMJAGgCBRhwb29sV3hFbWlzc2lvblBlckJsb2NrWDMAAgQWdG1wVXNlckJvb3N0UGVyQmxvY2tYMwkAawMFEWdXeEFtb3VudFN0YXJ0TmV3BRdib29zdEVtaXNzaW9uUGVyQmxvY2tYMwkAZAIFDnRvdGFsQ2FjaGVkR3d4BQ1nV3hBbW91bnREaWZmBBN1c2VyQm9vc3RQZXJCbG9ja1gzCQCXAwEJAMwIAgUWdG1wVXNlckJvb3N0UGVyQmxvY2tYMwkAzAgCCQBoAgUQdXNlcld4UGVyQmxvY2tYMwACBQNuaWwECmJvb3N0Q29lZmYDCQAAAgUQdXNlcld4UGVyQmxvY2tYMwAACQBoAgABBQVNVUxUOAkAawMJAGQCBRN1c2VyQm9vc3RQZXJCbG9ja1gzBRB1c2VyV3hQZXJCbG9ja1gzBQVNVUxUOAUQdXNlcld4UGVyQmxvY2tYMwkAlAoCBQNuaWwJALkJAgkAzAgCAgYlZCVkJXMJAMwIAgkApAMBBRFnV3hBbW91bnRTdGFydE5ldwkAzAgCCQCkAwEFCmJvb3N0Q29lZmYJAMwIAgIBZAUDbmlsBQNTRVABaQEXd3hFbWlzc2lvblN0YXRzUkVBRE9OTFkABAdPTkVNVUxUCQCkAwEFBU1VTFQ4BANPTkUCATEEEnd4RW1pc3Npb25QZXJCbG9jawkBDGdldEludE9yRmFpbAIFDGVtaXNzaW9uRGFwcAkBHmtleUVtaXNzaW9uUmF0ZVBlckJsb2NrQ3VycmVudAAEEmVtaXNzaW9uU3RhcnRCbG9jawkBDGdldEludE9yRmFpbAIFDGVtaXNzaW9uRGFwcAkBFWtleUVtaXNzaW9uU3RhcnRCbG9jawAEDHBhc3NlZEJsb2NrcwMJAGYCBRJlbWlzc2lvblN0YXJ0QmxvY2sFBmhlaWdodAAACQBlAgUGaGVpZ2h0BRJlbWlzc2lvblN0YXJ0QmxvY2sEDnRlYW1FbUR1cmF0aW9uCQBoAgCgCwDtAgQJdGVhbUVtTWF4CQBoAgDAiOxfBQVNVUxUOAQGdGVhbUVtAwkAZgIFDHBhc3NlZEJsb2NrcwUOdGVhbUVtRHVyYXRpb24FCXRlYW1FbU1heAkAawMFCXRlYW1FbU1heAUMcGFzc2VkQmxvY2tzBQ50ZWFtRW1EdXJhdGlvbgQPdG90YWxXeFJlbGVhc2VkCQBkAgkAaAIFEnd4RW1pc3Npb25QZXJCbG9jawUMcGFzc2VkQmxvY2tzBQZ0ZWFtRW0EDXRvdGFsV3hMb2NrZWQJAQxnZXRJbnRPclplcm8CBQxib29zdGluZ0RhcHAJAR9rZXlCb29zdGluZ0xvY2tQYXJhbVRvdGFsQW1vdW50AAQYbG9ja3NEdXJhdGlvblN1bUluQmxvY2tzCQEMZ2V0SW50T3JaZXJvAgUMYm9vc3RpbmdEYXBwCQEoa2V5Qm9vc3RpbmdTdGF0c0xvY2tzRHVyYXRpb25TdW1JbkJsb2NrcwAECmxvY2tzQ291bnQJAQxnZXRJbnRPclplcm8CBQxib29zdGluZ0RhcHAJARprZXlCb29zdGluZ1N0YXRzTG9ja3NDb3VudAAJAJQKAgUDbmlsCQC5CQIJAMwIAgIIJWQlZCVkJWQJAMwIAgkApAMBBQ90b3RhbFd4UmVsZWFzZWQJAMwIAgkApAMBBQ10b3RhbFd4TG9ja2VkCQDMCAIJAKQDAQUYbG9ja3NEdXJhdGlvblN1bUluQmxvY2tzCQDMCAIJAKQDAQUKbG9ja3NDb3VudAUDbmlsBQNTRVABaQERcG9vbFN0YXRzUkVBRE9OTFkBB2xwQXNzZXQEC3Bvb2xBZGRyZXNzCQERQGV4dHJOYXRpdmUoMTA2MikBCQEYZ2V0U3RyaW5nQnlBZGRyZXNzT3JGYWlsAgULZmFjdG9yeURhcHAJASZrZXlGYWN0b3J5THBBc3NldFRvUG9vbENvbnRyYWN0QWRkcmVzcwEFB2xwQXNzZXQEA2NmZwkBCWFzQW55TGlzdAEJAPwHBAULcG9vbEFkZHJlc3MCHGdldFBvb2xDb25maWdXcmFwcGVyUkVBRE9OTFkFA25pbAUDbmlsBAlscEFzc2V0SWQJANkEAQkBCGFzU3RyaW5nAQkAkQMCBQNjZmcFEGlkeFBvb2xMUEFzc2V0SWQECmFtdEFzc2V0SWQJAQhhc1N0cmluZwEJAJEDAgUDY2ZnBQ1pZHhBbXRBc3NldElkBAxwcmljZUFzc2V0SWQJAQhhc1N0cmluZwEJAJEDAgUDY2ZnBQ9pZHhQcmljZUFzc2V0SWQEC2lBbXRBc3NldElkCQEIYXNTdHJpbmcBCQCRAwIFA2NmZwUOaWR4SUFtdEFzc2V0SWQEDWlQcmljZUFzc2V0SWQJAQhhc1N0cmluZwEJAJEDAgUDY2ZnBRBpZHhJUHJpY2VBc3NldElkBAthbXRBc3NldERjbQkBDXBhcnNlSW50VmFsdWUBCQEIYXNTdHJpbmcBCQCRAwIFA2NmZwUOaWR4QW10QXNzZXREY20EDXByaWNlQXNzZXREY20JAQ1wYXJzZUludFZhbHVlAQkBCGFzU3RyaW5nAQkAkQMCBQNjZmcFEGlkeFByaWNlQXNzZXREY20EDXBvb2xMUEJhbGFuY2UICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUJbHBBc3NldElkCQCsAgIJAKwCAgIGQXNzZXQgCQDYBAEFCWxwQXNzZXRJZAIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEEmFjY0FtdEFzc2V0QmFsYW5jZQkBBWFzSW50AQkA/AcEBQtwb29sQWRkcmVzcwIcZ2V0QWNjQmFsYW5jZVdyYXBwZXJSRUFET05MWQkAzAgCBQphbXRBc3NldElkBQNuaWwFA25pbAQUYWNjUHJpY2VBc3NldEJhbGFuY2UJAQVhc0ludAEJAPwHBAULcG9vbEFkZHJlc3MCHGdldEFjY0JhbGFuY2VXcmFwcGVyUkVBRE9OTFkJAMwIAgUMcHJpY2VBc3NldElkBQNuaWwFA25pbAQKcHJpY2VzTGlzdAMJAAACBQ1wb29sTFBCYWxhbmNlAAAJAMwIAgkApgMBBQp6ZXJvQmlnSW50CQDMCAIJAKYDAQUKemVyb0JpZ0ludAkAzAgCCQCmAwEFCnplcm9CaWdJbnQFA25pbAkBCWFzQW55TGlzdAEJAPwHBAULcG9vbEFkZHJlc3MCGWNhbGNQcmljZXNXcmFwcGVyUkVBRE9OTFkJAMwIAgUSYWNjQW10QXNzZXRCYWxhbmNlCQDMCAIFFGFjY1ByaWNlQXNzZXRCYWxhbmNlCQDMCAIFDXBvb2xMUEJhbGFuY2UFA25pbAUDbmlsBAhjdXJQcmljZQAABA9scEFtdEFzc2V0U2hhcmUJAQVhc0ludAEJAPwHBAULcG9vbEFkZHJlc3MCFmZyb21YMThXcmFwcGVyUkVBRE9OTFkJAMwIAgkAkQMCBQpwcmljZXNMaXN0AAEJAMwIAgUFTVVMVDgFA25pbAUDbmlsBBFscFByaWNlQXNzZXRTaGFyZQkBBWFzSW50AQkA/AcEBQtwb29sQWRkcmVzcwIWZnJvbVgxOFdyYXBwZXJSRUFET05MWQkAzAgCCQCRAwIFCnByaWNlc0xpc3QAAgkAzAgCBQVNVUxUOAUDbmlsBQNuaWwECnBvb2xXZWlnaHQJARFAZXh0ck5hdGl2ZSgxMDUwKQIFC2ZhY3RvcnlEYXBwCQEUa2V5RmFjdG9yeVBvb2xXZWlnaHQBCQClCAEFC3Bvb2xBZGRyZXNzBANmZWUJAQt2YWx1ZU9yRWxzZQIJAJoIAgULcG9vbEFkZHJlc3MJAQZrZXlGZWUABQpmZWVEZWZhdWx0CQCUCgIFA25pbAkAuQkCCQDMCAICECVkJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBBRJhY2NBbXRBc3NldEJhbGFuY2UJAMwIAgkApAMBBRRhY2NQcmljZUFzc2V0QmFsYW5jZQkAzAgCCQCkAwEFDXBvb2xMUEJhbGFuY2UJAMwIAgkApAMBBQhjdXJQcmljZQkAzAgCCQCkAwEFD2xwQW10QXNzZXRTaGFyZQkAzAgCCQCkAwEFEWxwUHJpY2VBc3NldFNoYXJlCQDMCAIJAKQDAQUKcG9vbFdlaWdodAkAzAgCCQCkAwEFA2ZlZQUDbmlsBQNTRVABaQEkcG9vbEV2YWx1YXRlUHV0QnlBbW91bnRBc3NldFJFQURPTkxZAgdscEFzc2V0DGluQW1Bc3NldEFtdAQLcG9vbEFkZHJlc3MJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARhnZXRTdHJpbmdCeUFkZHJlc3NPckZhaWwCBQtmYWN0b3J5RGFwcAkBJmtleUZhY3RvcnlMcEFzc2V0VG9Qb29sQ29udHJhY3RBZGRyZXNzAQUHbHBBc3NldAQDY2ZnCQEJYXNBbnlMaXN0AQkA/AcEBQtwb29sQWRkcmVzcwIcZ2V0UG9vbENvbmZpZ1dyYXBwZXJSRUFET05MWQUDbmlsBQNuaWwECWxwQXNzZXRJZAkA2QQBCQEIYXNTdHJpbmcBCQCRAwIFA2NmZwUQaWR4UG9vbExQQXNzZXRJZAQMYW1Bc3NldElkU3RyCQEIYXNTdHJpbmcBCQCRAwIFA2NmZwUNaWR4QW10QXNzZXRJZAQJYW1Bc3NldElkCQDZBAEFDGFtQXNzZXRJZFN0cgQMcHJBc3NldElkU3RyCQEIYXNTdHJpbmcBCQCRAwIFA2NmZwUPaWR4UHJpY2VBc3NldElkBAlwckFzc2V0SWQJANkEAQUMcHJBc3NldElkU3RyBAthbXRBc3NldERjbQkBDXBhcnNlSW50VmFsdWUBCQEIYXNTdHJpbmcBCQCRAwIFA2NmZwUOaWR4QW10QXNzZXREY20EDXByaWNlQXNzZXREY20JAQ1wYXJzZUludFZhbHVlAQkBCGFzU3RyaW5nAQkAkQMCBQNjZmcFEGlkeFByaWNlQXNzZXREY20ECnBvb2xTdGF0dXMJAQhhc1N0cmluZwEJAJEDAgUDY2ZnBQ1pZHhQb29sU3RhdHVzBA1wb29sTFBCYWxhbmNlCAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEFCWxwQXNzZXRJZAkArAICCQCsAgICBkFzc2V0IAkA2AQBBQlscEFzc2V0SWQCDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BBJhY2NBbXRBc3NldEJhbGFuY2UJAQVhc0ludAEJAPwHBAULcG9vbEFkZHJlc3MCHGdldEFjY0JhbGFuY2VXcmFwcGVyUkVBRE9OTFkJAMwIAgUMYW1Bc3NldElkU3RyBQNuaWwFA25pbAQUYWNjUHJpY2VBc3NldEJhbGFuY2UJAQVhc0ludAEJAPwHBAULcG9vbEFkZHJlc3MCHGdldEFjY0JhbGFuY2VXcmFwcGVyUkVBRE9OTFkJAMwIAgUMcHJBc3NldElkU3RyBQNuaWwFA25pbAQOYW10QXNzZXRBbXRYMTgJAKcDAQkBCGFzU3RyaW5nAQkA/AcEBQtwb29sQWRkcmVzcwIUdG9YMThXcmFwcGVyUkVBRE9OTFkJAMwIAgUSYWNjQW10QXNzZXRCYWxhbmNlCQDMCAIFC2FtdEFzc2V0RGNtBQNuaWwFA25pbAQQcHJpY2VBc3NldEFtdFgxOAkApwMBCQEIYXNTdHJpbmcBCQD8BwQFC3Bvb2xBZGRyZXNzAhR0b1gxOFdyYXBwZXJSRUFET05MWQkAzAgCBRRhY2NQcmljZUFzc2V0QmFsYW5jZQkAzAgCBQ1wcmljZUFzc2V0RGNtBQNuaWwFA25pbAQLY3VyUHJpY2VYMTgDCQAAAgUNcG9vbExQQmFsYW5jZQAABQp6ZXJvQmlnSW50CQCnAwEJAQhhc1N0cmluZwEJAPwHBAULcG9vbEFkZHJlc3MCHmNhbGNQcmljZUJpZ0ludFdyYXBwZXJSRUFET05MWQkAzAgCCQCmAwEFEHByaWNlQXNzZXRBbXRYMTgJAMwIAgkApgMBBQ5hbXRBc3NldEFtdFgxOAUDbmlsBQNuaWwECGN1clByaWNlCQEFYXNJbnQBCQD8BwQFC3Bvb2xBZGRyZXNzAhZmcm9tWDE4V3JhcHBlclJFQURPTkxZCQDMCAIJAKYDAQULY3VyUHJpY2VYMTgJAMwIAgUFTVVMVDgFA25pbAUDbmlsBA9pbkFtQXNzZXRBbXRYMTgJAKcDAQkBCGFzU3RyaW5nAQkA/AcEBQtwb29sQWRkcmVzcwIUdG9YMThXcmFwcGVyUkVBRE9OTFkJAMwIAgUMaW5BbUFzc2V0QW10CQDMCAIFC2FtdEFzc2V0RGNtBQNuaWwFA25pbAQPaW5QckFzc2V0QW10WDE4CQC8AgMFD2luQW1Bc3NldEFtdFgxOAULY3VyUHJpY2VYMTgFBk1VTFQxOAQMaW5QckFzc2V0QW10CQEFYXNJbnQBCQD8BwQFC3Bvb2xBZGRyZXNzAhZmcm9tWDE4V3JhcHBlclJFQURPTkxZCQDMCAIJAKYDAQUPaW5QckFzc2V0QW10WDE4CQDMCAIFDXByaWNlQXNzZXREY20FA25pbAUDbmlsBANyZXMJAPwHBAULcG9vbEFkZHJlc3MCI2VzdGltYXRlUHV0T3BlcmF0aW9uV3JhcHBlclJFQURPTkxZCQDMCAICAAkAzAgCAKDCHgkAzAgCBQxpbkFtQXNzZXRBbXQJAMwIAgUJYW1Bc3NldElkCQDMCAIFDGluUHJBc3NldEFtdAkAzAgCBQlwckFzc2V0SWQJAMwIAgIACQDMCAIGCQDMCAIHBQNuaWwFA25pbAQNJHQwMjIwMDYyMjM1OQQHJG1hdGNoMAUDcmVzAwMDCQABAggFByRtYXRjaDACXzECA0ludAMJAAECCAUHJG1hdGNoMAJfMwIDSW50AwkAAQIIBQckbWF0Y2gwAl80AgNJbnQDCQABAggFByRtYXRjaDACXzUCA0ludAkAAQIIBQckbWF0Y2gwAl82AgNJbnQHBwcHCQAAAgkAxgoBBQckbWF0Y2gwAA0HBAljYWxjTHBBbXQIBQckbWF0Y2gwAl8xBAxjdXJQcmljZUNhbGMIBQckbWF0Y2gwAl8zBAlhbUJhbGFuY2UIBQckbWF0Y2gwAl80BAlwckJhbGFuY2UIBQckbWF0Y2gwAl81BApscEVtaXNzaW9uCAUHJG1hdGNoMAJfNgkAlwoFBQljYWxjTHBBbXQFDGN1clByaWNlQ2FsYwUJYW1CYWxhbmNlBQlwckJhbGFuY2UFCmxwRW1pc3Npb24JAAIBAhNDb3VsZG4ndCBjYXN0IHR5cGVzBAljYWxjTHBBbXQIBQ0kdDAyMjAwNjIyMzU5Al8xBAxjdXJQcmljZUNhbGMIBQ0kdDAyMjAwNjIyMzU5Al8yBAlhbUJhbGFuY2UIBQ0kdDAyMjAwNjIyMzU5Al8zBAlwckJhbGFuY2UIBQ0kdDAyMjAwNjIyMzU5Al80BApscEVtaXNzaW9uCAUNJHQwMjIwMDYyMjM1OQJfNQkAlAoCBQNuaWwJALkJAgkAzAgCAhAlZCVkJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUJY2FsY0xwQW10CQDMCAIJAKQDAQUIY3VyUHJpY2UJAMwIAgkApAMBBQlhbUJhbGFuY2UJAMwIAgkApAMBBQlwckJhbGFuY2UJAMwIAgkApAMBBQpscEVtaXNzaW9uCQDMCAIFCnBvb2xTdGF0dXMJAMwIAgkApAMBBQxpbkFtQXNzZXRBbXQJAMwIAgkApAMBBQxpblByQXNzZXRBbXQFA25pbAUDU0VQAWkBI3Bvb2xFdmFsdWF0ZVB1dEJ5UHJpY2VBc3NldFJFQURPTkxZAgdscEFzc2V0DGluUHJBc3NldEFtdAQLcG9vbEFkZHJlc3MJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARhnZXRTdHJpbmdCeUFkZHJlc3NPckZhaWwCBQtmYWN0b3J5RGFwcAkBJmtleUZhY3RvcnlMcEFzc2V0VG9Qb29sQ29udHJhY3RBZGRyZXNzAQUHbHBBc3NldAQDY2ZnCQEJYXNBbnlMaXN0AQkA/AcEBQtwb29sQWRkcmVzcwIcZ2V0UG9vbENvbmZpZ1dyYXBwZXJSRUFET05MWQUDbmlsBQNuaWwECWxwQXNzZXRJZAkA2QQBCQEIYXNTdHJpbmcBCQCRAwIFA2NmZwUQaWR4UG9vbExQQXNzZXRJZAQMYW1Bc3NldElkU3RyCQEIYXNTdHJpbmcBCQCRAwIFA2NmZwUNaWR4QW10QXNzZXRJZAQJYW1Bc3NldElkCQDZBAEFDGFtQXNzZXRJZFN0cgQMcHJBc3NldElkU3RyCQEIYXNTdHJpbmcBCQCRAwIFA2NmZwUPaWR4UHJpY2VBc3NldElkBAlwckFzc2V0SWQJANkEAQUMcHJBc3NldElkU3RyBAthbXRBc3NldERjbQkBDXBhcnNlSW50VmFsdWUBCQEIYXNTdHJpbmcBCQCRAwIFA2NmZwUOaWR4QW10QXNzZXREY20EDXByaWNlQXNzZXREY20JAQ1wYXJzZUludFZhbHVlAQkBCGFzU3RyaW5nAQkAkQMCBQNjZmcFEGlkeFByaWNlQXNzZXREY20ECnBvb2xTdGF0dXMJAQhhc1N0cmluZwEJAJEDAgUDY2ZnBQ1pZHhQb29sU3RhdHVzBA1wb29sTFBCYWxhbmNlCAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEFCWxwQXNzZXRJZAkArAICCQCsAgICBkFzc2V0IAkA2AQBBQlscEFzc2V0SWQCDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAxhbUJhbGFuY2VSYXcJAQVhc0ludAEJAPwHBAULcG9vbEFkZHJlc3MCHGdldEFjY0JhbGFuY2VXcmFwcGVyUkVBRE9OTFkJAMwIAgUMYW1Bc3NldElkU3RyBQNuaWwFA25pbAQMcHJCYWxhbmNlUmF3CQEFYXNJbnQBCQD8BwQFC3Bvb2xBZGRyZXNzAhxnZXRBY2NCYWxhbmNlV3JhcHBlclJFQURPTkxZCQDMCAIFDHByQXNzZXRJZFN0cgUDbmlsBQNuaWwED2FtQmFsYW5jZVJhd1gxOAkApwMBCQEIYXNTdHJpbmcBCQD8BwQFC3Bvb2xBZGRyZXNzAhR0b1gxOFdyYXBwZXJSRUFET05MWQkAzAgCBQxhbUJhbGFuY2VSYXcJAMwIAgULYW10QXNzZXREY20FA25pbAUDbmlsBA9wckJhbGFuY2VSYXdYMTgJAKcDAQkBCGFzU3RyaW5nAQkA/AcEBQtwb29sQWRkcmVzcwIUdG9YMThXcmFwcGVyUkVBRE9OTFkJAMwIAgUMcHJCYWxhbmNlUmF3CQDMCAIFDXByaWNlQXNzZXREY20FA25pbAUDbmlsBAtjdXJQcmljZVgxOAMJAAACBQ1wb29sTFBCYWxhbmNlAAAFCnplcm9CaWdJbnQJAKcDAQkBCGFzU3RyaW5nAQkA/AcEBQtwb29sQWRkcmVzcwIeY2FsY1ByaWNlQmlnSW50V3JhcHBlclJFQURPTkxZCQDMCAIJAKYDAQUPcHJCYWxhbmNlUmF3WDE4CQDMCAIJAKYDAQUPYW1CYWxhbmNlUmF3WDE4BQNuaWwFA25pbAQIY3VyUHJpY2UJAQVhc0ludAEJAPwHBAULcG9vbEFkZHJlc3MCFmZyb21YMThXcmFwcGVyUkVBRE9OTFkJAMwIAgkApgMBBQtjdXJQcmljZVgxOAkAzAgCBQVNVUxUOAUDbmlsBQNuaWwED2luUHJBc3NldEFtdFgxOAkApwMBCQEIYXNTdHJpbmcBCQD8BwQFC3Bvb2xBZGRyZXNzAhR0b1gxOFdyYXBwZXJSRUFET05MWQkAzAgCBQxpblByQXNzZXRBbXQJAMwIAgUNcHJpY2VBc3NldERjbQUDbmlsBQNuaWwED2luQW1Bc3NldEFtdFgxOAkAvAIDBQ9pblByQXNzZXRBbXRYMTgFBk1VTFQxOAULY3VyUHJpY2VYMTgEDGluQW1Bc3NldEFtdAkBBWFzSW50AQkA/AcEBQtwb29sQWRkcmVzcwIWZnJvbVgxOFdyYXBwZXJSRUFET05MWQkAzAgCCQCmAwEFD2luQW1Bc3NldEFtdFgxOAkAzAgCBQthbXRBc3NldERjbQUDbmlsBQNuaWwEA3JlcwkA/AcEBQtwb29sQWRkcmVzcwIjZXN0aW1hdGVQdXRPcGVyYXRpb25XcmFwcGVyUkVBRE9OTFkJAMwIAgIACQDMCAIAoMIeCQDMCAIFDGluQW1Bc3NldEFtdAkAzAgCBQlhbUFzc2V0SWQJAMwIAgUMaW5QckFzc2V0QW10CQDMCAIFCXByQXNzZXRJZAkAzAgCAgAJAMwIAgYJAMwIAgcFA25pbAUDbmlsBA0kdDAyNDkzMjI1Mjg1BAckbWF0Y2gwBQNyZXMDAwMJAAECCAUHJG1hdGNoMAJfMQIDSW50AwkAAQIIBQckbWF0Y2gwAl8zAgNJbnQDCQABAggFByRtYXRjaDACXzQCA0ludAMJAAECCAUHJG1hdGNoMAJfNQIDSW50CQABAggFByRtYXRjaDACXzYCA0ludAcHBwcJAAACCQDGCgEFByRtYXRjaDAADQcECWNhbGNMcEFtdAgFByRtYXRjaDACXzEEDGN1clByaWNlQ2FsYwgFByRtYXRjaDACXzMECWFtQmFsYW5jZQgFByRtYXRjaDACXzQECXByQmFsYW5jZQgFByRtYXRjaDACXzUECmxwRW1pc3Npb24IBQckbWF0Y2gwAl82CQCXCgUFCWNhbGNMcEFtdAUMY3VyUHJpY2VDYWxjBQlhbUJhbGFuY2UFCXByQmFsYW5jZQUKbHBFbWlzc2lvbgkAAgECE0NvdWxkbid0IGNhc3QgdHlwZXMECWNhbGNMcEFtdAgFDSR0MDI0OTMyMjUyODUCXzEEDGN1clByaWNlQ2FsYwgFDSR0MDI0OTMyMjUyODUCXzIECWFtQmFsYW5jZQgFDSR0MDI0OTMyMjUyODUCXzMECXByQmFsYW5jZQgFDSR0MDI0OTMyMjUyODUCXzQECmxwRW1pc3Npb24IBQ0kdDAyNDkzMjI1Mjg1Al81CQCUCgIFA25pbAkAuQkCCQDMCAICECVkJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQljYWxjTHBBbXQJAMwIAgkApAMBBQhjdXJQcmljZQkAzAgCCQCkAwEFCWFtQmFsYW5jZQkAzAgCCQCkAwEFCXByQmFsYW5jZQkAzAgCCQCkAwEFCmxwRW1pc3Npb24JAMwIAgUKcG9vbFN0YXR1cwkAzAgCCQCkAwEFDGluQW1Bc3NldEFtdAkAzAgCCQCkAwEFDGluUHJBc3NldEFtdAUDbmlsBQNTRVABaQEXcG9vbEV2YWx1YXRlR2V0UkVBRE9OTFkCEHBheW1lbnRMcEFzc2V0SWQMcGF5bWVudExwQW10BAtwb29sQWRkcmVzcwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBGGdldFN0cmluZ0J5QWRkcmVzc09yRmFpbAIFC2ZhY3RvcnlEYXBwCQEma2V5RmFjdG9yeUxwQXNzZXRUb1Bvb2xDb250cmFjdEFkZHJlc3MBBRBwYXltZW50THBBc3NldElkBANyZXMJAPwHBAULcG9vbEFkZHJlc3MCI2VzdGltYXRlR2V0T3BlcmF0aW9uV3JhcHBlclJFQURPTkxZCQDMCAICAAkAzAgCBRBwYXltZW50THBBc3NldElkCQDMCAIFDHBheW1lbnRMcEFtdAkAzAgCCQClCAEFC3Bvb2xBZGRyZXNzBQNuaWwFA25pbAQNJHQwMjU5ODAyNjM5NwQHJG1hdGNoMAUDcmVzAwMDCQABAggFByRtYXRjaDACXzECA0ludAMJAAECCAUHJG1hdGNoMAJfMgIDSW50AwkAAQIIBQckbWF0Y2gwAl81AgNJbnQDCQABAggFByRtYXRjaDACXzYCA0ludAMJAAECCAUHJG1hdGNoMAJfNwIDSW50AwkAAQIIBQckbWF0Y2gwAl84AgZTdHJpbmcJAAECCAUHJG1hdGNoMAJfOQIGU3RyaW5nBwcHBwcHCQAAAgkAxgoBBQckbWF0Y2gwAAoHBAhvdXRBbUFtdAgFByRtYXRjaDACXzEECG91dFByQW10CAUHJG1hdGNoMAJfMgQJYW1CYWxhbmNlCAUHJG1hdGNoMAJfNQQJcHJCYWxhbmNlCAUHJG1hdGNoMAJfNgQKbHBFbWlzc2lvbggFByRtYXRjaDACXzcECGN1clByaWNlCAUHJG1hdGNoMAJfOAQKcG9vbFN0YXR1cwgFByRtYXRjaDACXzkJAJkKBwUIb3V0QW1BbXQFCG91dFByQW10BQlhbUJhbGFuY2UFCXByQmFsYW5jZQUKbHBFbWlzc2lvbgUIY3VyUHJpY2UFCnBvb2xTdGF0dXMJAAIBAhNDb3VsZG4ndCBjYXN0IHR5cGVzBAhvdXRBbUFtdAgFDSR0MDI1OTgwMjYzOTcCXzEECG91dFByQW10CAUNJHQwMjU5ODAyNjM5NwJfMgQJYW1CYWxhbmNlCAUNJHQwMjU5ODAyNjM5NwJfMwQJcHJCYWxhbmNlCAUNJHQwMjU5ODAyNjM5NwJfNAQKbHBFbWlzc2lvbggFDSR0MDI1OTgwMjYzOTcCXzUECGN1clByaWNlCAUNJHQwMjU5ODAyNjM5NwJfNgQKcG9vbFN0YXR1cwgFDSR0MDI1OTgwMjYzOTcCXzcJAJQKAgUDbmlsCQC5CQIJAMwIAgIOJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQhvdXRBbUFtdAkAzAgCCQCkAwEFCG91dFByQW10CQDMCAIJAKQDAQUJYW1CYWxhbmNlCQDMCAIJAKQDAQUJcHJCYWxhbmNlCQDMCAIJAKQDAQUKbHBFbWlzc2lvbgkAzAgCBQhjdXJQcmljZQkAzAgCBQpwb29sU3RhdHVzBQNuaWwFA1NFUAFpARNnd3hVc2VySW5mb1JFQURPTkxZAQt1c2VyQWRkcmVzcwQPZ3d4VXNlckluZm9MSVNUCQEJYXNBbnlMaXN0AQkA/AcEBQxib29zdGluZ0RhcHACE2d3eFVzZXJJbmZvUkVBRE9OTFkJAMwIAgULdXNlckFkZHJlc3MFA25pbAUDbmlsBAlnd3hBbW91bnQJAQVhc0ludAEJAJEDAgUPZ3d4VXNlckluZm9MSVNUAAAJAJQKAgUDbmlsCQC5CQIJAMwIAgICJWQJAMwIAgkApAMBBQlnd3hBbW91bnQFA25pbAUDU0VQAWkBE3Vuc3Rha2VBbmRHZXRPbmVUa24HC3Bvb2xBZGRyZXNzBmFtb3VudApleGNoUmVzdWx0B25vdFVzZWQJb3V0QW1vdW50Cm91dEFzc2V0SWQIc2xpcHBhZ2UEA2ludgkA/AcECQERQGV4dHJOYXRpdmUoMTA2MikBCQEFdmFsdWUBCQCdCAIJARFAZXh0ck5hdGl2ZSgxMDYyKQEFC3Bvb2xBZGRyZXNzCQEMa2V5QWRkb25BZGRyAAITdW5zdGFrZUFuZEdldE9uZVRrbgkAzAgCBQZhbW91bnQJAMwIAgUKZXhjaFJlc3VsdAkAzAgCBQdub3RVc2VkCQDMCAIFCW91dEFtb3VudAkAzAgCBQpvdXRBc3NldElkCQDMCAIFCHNsaXBwYWdlBQNuaWwFA25pbAMJAAACBQNpbnYFA2ludgkAlAoCBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEKc2V0TWFuYWdlcgEXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkEC2NoZWNrQ2FsbGVyCQELbXVzdE1hbmFnZXIBBQFpAwkAAAIFC2NoZWNrQ2FsbGVyBQtjaGVja0NhbGxlcgQVY2hlY2tNYW5hZ2VyUHVibGljS2V5CQDZBAEFF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5AwkAAAIFFWNoZWNrTWFuYWdlclB1YmxpY0tleQUVY2hlY2tNYW5hZ2VyUHVibGljS2V5CQDMCAIJAQtTdHJpbmdFbnRyeQIJARprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleQAFF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEOY29uZmlybU1hbmFnZXIABAJwbQkBHXBlbmRpbmdNYW5hZ2VyUHVibGljS2V5T3JVbml0AAQFaGFzUE0DCQEJaXNEZWZpbmVkAQUCcG0GCQACAQISTm8gcGVuZGluZyBtYW5hZ2VyAwkAAAIFBWhhc1BNBQVoYXNQTQQHY2hlY2tQTQMJAAACCAUBaQ9jYWxsZXJQdWJsaWNLZXkJAQV2YWx1ZQEFAnBtBgkAAgECG1lvdSBhcmUgbm90IHBlbmRpbmcgbWFuYWdlcgMJAAACBQdjaGVja1BNBQdjaGVja1BNCQDMCAIJAQtTdHJpbmdFbnRyeQIJARNrZXlNYW5hZ2VyUHVibGljS2V5AAkA2AQBCQEFdmFsdWUBBQJwbQkAzAgCCQELRGVsZXRlRW50cnkBCQEaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkABQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAnR4AQZ2ZXJpZnkABA90YXJnZXRQdWJsaWNLZXkEByRtYXRjaDAJARZtYW5hZ2VyUHVibGljS2V5T3JVbml0AAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAJwawUHJG1hdGNoMAUCcGsDCQABAgUHJG1hdGNoMAIEVW5pdAgFAnR4D3NlbmRlclB1YmxpY0tleQkAAgECC01hdGNoIGVycm9yCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQ90YXJnZXRQdWJsaWNLZXnxnT5w", "chainId": 84, "height": 2238926, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8L5xYatP92rrPfJdt9J6ELtbnxv2aWVjTemYeMiehqpN Next: GAz5qJeexwtxMn3XVi1oWXmh7oEPwHwR4db9rnxCt9Kg Diff:
OldNewDifferences
234234 func aR () = "%s%s__emission__endBlock"
235235
236236
237-func aS () = "%s__addonAddr"
237+let aS = fraction(5, a, 10000)
238+
239+func aT () = "%s__addonAddr"
238240
239241
240-func aT () = "%s__feePermille"
242+func aU () = "%s__fee"
241243
242244
243-let aU = X()
245+let aV = X()
244246
245-let aV = Z(aU)
247+let aW = Z(aV)
246248
247-let aW = ad(aV)
249+let aX = ad(aW)
248250
249-let aM = ae(aV)
251+let aM = ae(aW)
250252
251-let aX = af(aV)
253+let aY = af(aW)
252254
253-let aY = ab(aV)
255+let aZ = ab(aW)
254256
255-func aZ (ba) = {
256- let bb = t(aU, U(ba))
257- let bc = b
258- let bd = getIntegerValue(aU, V(bb))
259- let be = w(aW, aN())
260- let bf = w(aW, aO())
261- let bg = 3
262- let bh = (fraction(be, bd, bc) / bg)
263- let bi = fraction(bf, bd, bc)
264- let bj = (bg * b)
265- let bk = v(aM, aH(ba))
266-[bh, bj, bk]
257+func ba (bb) = {
258+ let bc = t(aV, U(bb))
259+ let bd = b
260+ let be = getIntegerValue(aV, V(bc))
261+ let bf = w(aX, aN())
262+ let bg = w(aX, aO())
263+ let bh = 3
264+ let bi = (fraction(bf, be, bd) / bh)
265+ let bj = fraction(bg, be, bd)
266+ let bk = (bh * b)
267+ let bl = v(aM, aH(bb))
268+[bi, bk, bl]
267269 }
268270
269271
270-func bl (bm,bn,bo) = {
271- let bp = fraction(bn, b, bo)
272- let bq = fraction(bm, bp, b)
273-[bq]
272+func bm (bn,bo,bp) = {
273+ let bq = fraction(bo, b, bp)
274+ let br = fraction(bn, bq, b)
275+[br]
274276 }
275277
276278
277-func br () = {
279+func bs () = {
278280 let z = getString(G())
279281 if ($isInstanceOf(z, "String"))
280282 then {
281- let bs = z
282- fromBase58String(bs)
283+ let bt = z
284+ fromBase58String(bt)
283285 }
284286 else if ($isInstanceOf(z, "Unit"))
285287 then unit
287289 }
288290
289291
290-func bt () = {
292+func bu () = {
291293 let z = getString(H())
292294 if ($isInstanceOf(z, "String"))
293295 then {
294- let bs = z
295- fromBase58String(bs)
296+ let bt = z
297+ fromBase58String(bt)
296298 }
297299 else if ($isInstanceOf(z, "Unit"))
298300 then unit
300302 }
301303
302304
303-func bu (bv) = {
304- let bw = throw("Permission denied")
305- let z = br()
305+func bv (bw) = {
306+ let bx = throw("Permission denied")
307+ let z = bs()
306308 if ($isInstanceOf(z, "ByteVector"))
307309 then {
308- let bx = z
309- if ((bv.callerPublicKey == bx))
310+ let by = z
311+ if ((bw.callerPublicKey == by))
310312 then true
311- else bw
313+ else bx
312314 }
313315 else if ($isInstanceOf(z, "Unit"))
314- then if ((bv.caller == this))
316+ then if ((bw.caller == this))
315317 then true
316- else bw
318+ else bx
317319 else throw("Match error")
318320 }
319321
320322
321-@Callable(bv)
322-func constructor (by) = {
323- let bz = bu(bv)
324- if ((bz == bz))
325- then [StringEntry(F(), by)]
323+@Callable(bw)
324+func constructor (bz) = {
325+ let bA = bv(bw)
326+ if ((bA == bA))
327+ then [StringEntry(F(), bz)]
326328 else throw("Strict value is not equal to itself.")
327329 }
328330
329331
330332
331-@Callable(bv)
332-func currentRewardRateREADONLY (ba) = {
333- let bA = aZ(ba)
334- let be = bA[0]
335- let bj = bA[1]
336- let bk = bA[2]
337- $Tuple2(nil, makeString(["%d%d%d", toString(be), toString(bj), toString(bk)], e))
333+@Callable(bw)
334+func currentRewardRateREADONLY (bb) = {
335+ let bB = ba(bb)
336+ let bf = bB[0]
337+ let bk = bB[1]
338+ let bl = bB[2]
339+ $Tuple2(nil, makeString(["%d%d%d", toString(bf), toString(bk), toString(bl)], e))
338340 }
339341
340342
341343
342-@Callable(bv)
343-func currentUserRewardRateREADONLY (ba,am) = {
344- let bA = aZ(ba)
345- let be = bA[0]
346- let bj = bA[1]
347- let bk = bA[2]
348- let bB = v(aM, aE(am, ba))
349- let bC = split(D(invoke(aM, "claimWxREADONLY", [ba, am], nil)), e)
350- let bD = valueOrErrorMessage(parseInt(bC[5]), "couldn't parse minRewardPart")
351- let bE = valueOrErrorMessage(parseInt(bC[6]), "couldn't parse boostRewardPart")
352- let bF = bC[7]
353- let bG = if ((bE == 0))
344+@Callable(bw)
345+func currentUserRewardRateREADONLY (bb,am) = {
346+ let bB = ba(bb)
347+ let bf = bB[0]
348+ let bk = bB[1]
349+ let bl = bB[2]
350+ let bC = v(aM, aE(am, bb))
351+ let bD = split(D(invoke(aM, "claimWxREADONLY", [bb, am], nil)), e)
352+ let bE = valueOrErrorMessage(parseInt(bD[5]), "couldn't parse minRewardPart")
353+ let bF = valueOrErrorMessage(parseInt(bD[6]), "couldn't parse boostRewardPart")
354+ let bG = bD[7]
355+ let bH = if ((bF == 0))
354356 then (1 * b)
355- else fraction((bD + bE), b, bD)
356- $Tuple2(nil, makeString(["%d%d%d%d%d%s", toString(be), toString(bj), toString(bk), toString(bB), toString(bG), bF], e))
357+ else fraction((bE + bF), b, bE)
358+ $Tuple2(nil, makeString(["%d%d%d%d%d%s", toString(bf), toString(bk), toString(bl), toString(bC), toString(bH), bG], e))
357359 }
358360
359361
360362
361-@Callable(bv)
362-func calcBoostBulkInternalREADONLY (bH,bI,bJ,bK,bL,bM,bN) = if ((bH == size(bI)))
363- then $Tuple2(nil, bN)
363+@Callable(bw)
364+func calcBoostBulkInternalREADONLY (bI,bJ,bK,bL,bM,bN,bO) = if ((bI == size(bJ)))
365+ then $Tuple2(nil, bO)
364366 else {
365- let bO = bI[bH]
366- let bP = bJ[bH]
367- let bQ = bK[bH]
368- let bR = bL[bH]
369- let bS = {
370- let bT = invoke(this, "calcBoostREADONLY", [bO, bP, bQ, bR, bM], nil)
371- if ($isInstanceOf(bT, "String"))
372- then bT
373- else throw(($getType(invoke(this, "calcBoostREADONLY", [bO, bP, bQ, bR, bM], nil)) + " couldn't be cast to String"))
367+ let bP = bJ[bI]
368+ let bQ = bK[bI]
369+ let bR = bL[bI]
370+ let bS = bM[bI]
371+ let bT = {
372+ let bU = invoke(this, "calcBoostREADONLY", [bP, bQ, bR, bS, bN], nil)
373+ if ($isInstanceOf(bU, "String"))
374+ then bU
375+ else throw(($getType(invoke(this, "calcBoostREADONLY", [bP, bQ, bR, bS, bN], nil)) + " couldn't be cast to String"))
374376 }
375- let bU = (bN :+ bS)
376- let bV = {
377- let bT = invoke(this, "calcBoostBulkInternalREADONLY", [(bH + 1), bI, bJ, bK, bL, bM, bU], nil)
378- if ($isInstanceOf(bT, "List[Any]"))
379- then bT
380- else throw(($getType(invoke(this, "calcBoostBulkInternalREADONLY", [(bH + 1), bI, bJ, bK, bL, bM, bU], nil)) + " couldn't be cast to List[Any]"))
377+ let bV = (bO :+ bT)
378+ let bW = {
379+ let bU = invoke(this, "calcBoostBulkInternalREADONLY", [(bI + 1), bJ, bK, bL, bM, bN, bV], nil)
380+ if ($isInstanceOf(bU, "List[Any]"))
381+ then bU
382+ else throw(($getType(invoke(this, "calcBoostBulkInternalREADONLY", [(bI + 1), bJ, bK, bL, bM, bN, bV], nil)) + " couldn't be cast to List[Any]"))
381383 }
382- if ((bV == bV))
383- then $Tuple2(nil, bV)
384+ if ((bW == bW))
385+ then $Tuple2(nil, bW)
384386 else throw("Strict value is not equal to itself.")
385387 }
386388
387389
388390
389-@Callable(bv)
390-func calcBoostBulkREADONLY (bO,bP,bQ,bR,bM) = {
391- let bU = invoke(this, "calcBoostBulkInternalREADONLY", [0, bO, bP, bQ, bR, bM, nil], nil)
392- $Tuple2(nil, bU)
391+@Callable(bw)
392+func calcBoostBulkREADONLY (bP,bQ,bR,bS,bN) = {
393+ let bV = invoke(this, "calcBoostBulkInternalREADONLY", [0, bP, bQ, bR, bS, bN, nil], nil)
394+ $Tuple2(nil, bV)
393395 }
394396
395397
396398
397-@Callable(bv)
398-func calcBoostREADONLY (bO,bP,bQ,bR,bM) = {
399- let bW = aX
400- let bX = "empty"
401- let bY = parseIntValue(split(t(aY, ag()), e)[4])
402- let aG = if ((bR == ""))
403- then bX
404- else bR
405- let aF = if ((bM == ""))
406- then bX
407- else bM
408- let bZ = valueOrElse(getString(aY, al(bM)), bX)
409- let ca = valueOrElse(getInteger(aY, ap(bZ)), 0)
410- let cb = valueOrElse(getInteger(aY, ar(bZ)), height)
411- let bn = valueOrElse(getInteger(aY, as(bZ)), 0)
412- let cc = (cb + bn)
413- let cd = max([(cc - height), 0])
414- let ce = (ca + bO)
415- let cf = min([(cd + bP), bY])
416- let cg = B(x(invoke(aY, "gwxUserInfoREADONLY", [aF], nil))[0])
417- let ch = bl(ce, cf, bY)[0]
418- let ci = x(invoke(bW, "calcGwxParamsREADONLY", [ch, height, cf], nil))
419- let cj = (ch - cg)
420- let ck = B(ci[0])
421- let cl = B(ci[1])
422- let aw = toString(B(ci[2]))
423- let cm = aA()
424- let cn = aD()
425- let co = ((ch * cf) / 2)
426- let cp = v(aY, cm)
427- let cq = valueOrElse(getInteger(aY, cn), 0)
428- let cr = 1000
429- let cs = (w(aW, aN()) * cr)
430- let ct = aE(aF, aG)
431- let cu = aH(aG)
432- let cv = aL(aM, ct)
399+@Callable(bw)
400+func calcBoostREADONLY (bP,bQ,bR,bS,bN) = {
401+ let bX = aY
402+ let bY = "empty"
403+ let bZ = parseIntValue(split(t(aZ, ag()), e)[4])
404+ let aG = if ((bS == ""))
405+ then bY
406+ else bS
407+ let aF = if ((bN == ""))
408+ then bY
409+ else bN
410+ let ca = valueOrElse(getString(aZ, al(bN)), bY)
411+ let cb = valueOrElse(getInteger(aZ, ap(ca)), 0)
412+ let cc = valueOrElse(getInteger(aZ, ar(ca)), height)
413+ let bo = valueOrElse(getInteger(aZ, as(ca)), 0)
414+ let cd = (cc + bo)
415+ let ce = max([(cd - height), 0])
416+ let cf = (cb + bP)
417+ let cg = min([(ce + bQ), bZ])
418+ let ch = B(x(invoke(aZ, "gwxUserInfoREADONLY", [aF], nil))[0])
419+ let ci = bm(cf, cg, bZ)[0]
420+ let cj = x(invoke(bX, "calcGwxParamsREADONLY", [ci, height, cg], nil))
421+ let ck = (ci - ch)
422+ let cl = B(cj[0])
423+ let cm = B(cj[1])
424+ let aw = toString(B(cj[2]))
425+ let cn = aA()
426+ let co = aD()
427+ let cp = ((ci * cg) / 2)
428+ let cq = v(aZ, cn)
429+ let cr = valueOrElse(getInteger(aZ, co), 0)
430+ let cs = 1000
431+ let ct = (w(aX, aN()) * cs)
432+ let cu = aE(aF, aG)
433+ let cv = aH(aG)
433434 let cw = aL(aM, cu)
434- let cx = (cv + bQ)
435- let cy = (cw + bQ)
436- let bd = if ((aG != bX))
435+ let cx = aL(aM, cv)
436+ let cy = (cw + bR)
437+ let cz = (cx + bR)
438+ let be = if ((aG != bY))
437439 then {
438- let bb = valueOrErrorMessage(getString(aU, R(aG)), ("unsupported lp asset " + aG))
439- getIntegerValue(aU, V(bb))
440+ let bc = valueOrErrorMessage(getString(aV, R(aG)), ("unsupported lp asset " + aG))
441+ getIntegerValue(aV, V(bc))
440442 }
441443 else 0
442- let cz = fraction(cs, bd, (f * 3))
443- let cA = if ((cy != 0))
444- then fraction(cz, b, cy)
444+ let cA = fraction(ct, be, (f * 3))
445+ let cB = if ((cz != 0))
446+ then fraction(cA, b, cz)
445447 else 0
446- let cB = fraction(cA, cx, b)
447- let cC = (cz * 2)
448- let cD = fraction(ch, cC, (cq + cj))
449- let cE = min([cD, (cB * 2)])
450- let cF = if ((cB == 0))
448+ let cC = fraction(cB, cy, b)
449+ let cD = (cA * 2)
450+ let cE = fraction(ci, cD, (cr + ck))
451+ let cF = min([cE, (cC * 2)])
452+ let cG = if ((cC == 0))
451453 then (1 * b)
452- else fraction((cE + cB), b, cB)
453- $Tuple2(nil, makeString(["%d%d%s", toString(ch), toString(cF), "d"], e))
454+ else fraction((cF + cC), b, cC)
455+ $Tuple2(nil, makeString(["%d%d%s", toString(ci), toString(cG), "d"], e))
454456 }
455457
456458
457459
458-@Callable(bv)
460+@Callable(bw)
459461 func wxEmissionStatsREADONLY () = {
460- let cG = toString(b)
461- let cH = "1"
462- let be = w(aW, aN())
463- let cI = w(aW, aP())
464- let cJ = if ((cI > height))
462+ let cH = toString(b)
463+ let cI = "1"
464+ let bf = w(aX, aN())
465+ let cJ = w(aX, aP())
466+ let cK = if ((cJ > height))
465467 then 0
466- else (height - cI)
467- let cK = (1440 * 365)
468- let cL = (201000000 * b)
469- let cM = if ((cJ > cK))
470- then cL
471- else fraction(cL, cJ, cK)
472- let cN = ((be * cJ) + cM)
473- let cO = v(aY, ah())
474- let cP = v(aY, ai())
475- let cQ = v(aY, aj())
476- $Tuple2(nil, makeString(["%d%d%d%d", toString(cN), toString(cO), toString(cP), toString(cQ)], e))
468+ else (height - cJ)
469+ let cL = (1440 * 365)
470+ let cM = (201000000 * b)
471+ let cN = if ((cK > cL))
472+ then cM
473+ else fraction(cM, cK, cL)
474+ let cO = ((bf * cK) + cN)
475+ let cP = v(aZ, ah())
476+ let cQ = v(aZ, ai())
477+ let cR = v(aZ, aj())
478+ $Tuple2(nil, makeString(["%d%d%d%d", toString(cO), toString(cP), toString(cQ), toString(cR)], e))
477479 }
478480
479481
480482
481-@Callable(bv)
482-func poolStatsREADONLY (cR) = {
483- let cS = addressFromStringValue(t(aU, U(cR)))
484- let cT = x(invoke(cS, "getPoolConfigWrapperREADONLY", nil, nil))
485- let ba = fromBase58String(D(cT[j]))
486- let cU = D(cT[k])
487- let cV = D(cT[l])
488- let cW = D(cT[o])
489- let cX = D(cT[p])
490- let cY = parseIntValue(D(cT[m]))
491- let cZ = parseIntValue(D(cT[n]))
492- let da = valueOrErrorMessage(assetInfo(ba), (("Asset " + toBase58String(ba)) + " doesn't exist")).quantity
493- let db = B(invoke(cS, "getAccBalanceWrapperREADONLY", [cU], nil))
494- let dc = B(invoke(cS, "getAccBalanceWrapperREADONLY", [cV], nil))
495- let dd = if ((da == 0))
483+@Callable(bw)
484+func poolStatsREADONLY (cS) = {
485+ let cT = addressFromStringValue(t(aV, U(cS)))
486+ let cU = x(invoke(cT, "getPoolConfigWrapperREADONLY", nil, nil))
487+ let bb = fromBase58String(D(cU[j]))
488+ let cV = D(cU[k])
489+ let cW = D(cU[l])
490+ let cX = D(cU[o])
491+ let cY = D(cU[p])
492+ let cZ = parseIntValue(D(cU[m]))
493+ let da = parseIntValue(D(cU[n]))
494+ let db = valueOrErrorMessage(assetInfo(bb), (("Asset " + toBase58String(bb)) + " doesn't exist")).quantity
495+ let dc = B(invoke(cT, "getAccBalanceWrapperREADONLY", [cV], nil))
496+ let dd = B(invoke(cT, "getAccBalanceWrapperREADONLY", [cW], nil))
497+ let de = if ((db == 0))
496498 then [toString(g), toString(g), toString(g)]
497- else x(invoke(cS, "calcPricesWrapperREADONLY", [db, dc, da], nil))
498- let de = 0
499- let df = B(invoke(cS, "fromX18WrapperREADONLY", [dd[1], b], nil))
500- let dg = B(invoke(cS, "fromX18WrapperREADONLY", [dd[2], b], nil))
501- let bd = getIntegerValue(aU, V(toString(cS)))
502- let dh = v(cS, aT())
503- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(db), toString(dc), toString(da), toString(de), toString(df), toString(dg), toString(bd), toString(dh)], e))
499+ else x(invoke(cT, "calcPricesWrapperREADONLY", [dc, dd, db], nil))
500+ let df = 0
501+ let dg = B(invoke(cT, "fromX18WrapperREADONLY", [de[1], b], nil))
502+ let dh = B(invoke(cT, "fromX18WrapperREADONLY", [de[2], b], nil))
503+ let be = getIntegerValue(aV, V(toString(cT)))
504+ let di = valueOrElse(getInteger(cT, aU()), aS)
505+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dc), toString(dd), toString(db), toString(df), toString(dg), toString(dh), toString(be), toString(di)], e))
504506 }
505507
506508
507509
508-@Callable(bv)
509-func poolEvaluatePutByAmountAssetREADONLY (cR,di) = {
510- let cS = addressFromStringValue(t(aU, U(cR)))
511- let cT = x(invoke(cS, "getPoolConfigWrapperREADONLY", nil, nil))
512- let ba = fromBase58String(D(cT[j]))
513- let dj = D(cT[k])
514- let dk = fromBase58String(dj)
515- let dl = D(cT[l])
516- let dm = fromBase58String(dl)
517- let cY = parseIntValue(D(cT[m]))
518- let cZ = parseIntValue(D(cT[n]))
519- let dn = D(cT[i])
520- let da = valueOrErrorMessage(assetInfo(ba), (("Asset " + toBase58String(ba)) + " doesn't exist")).quantity
521- let db = B(invoke(cS, "getAccBalanceWrapperREADONLY", [dj], nil))
522- let dc = B(invoke(cS, "getAccBalanceWrapperREADONLY", [dl], nil))
523- let do = parseBigIntValue(D(invoke(cS, "toX18WrapperREADONLY", [db, cY], nil)))
524- let dp = parseBigIntValue(D(invoke(cS, "toX18WrapperREADONLY", [dc, cZ], nil)))
525- let dq = if ((da == 0))
510+@Callable(bw)
511+func poolEvaluatePutByAmountAssetREADONLY (cS,dj) = {
512+ let cT = addressFromStringValue(t(aV, U(cS)))
513+ let cU = x(invoke(cT, "getPoolConfigWrapperREADONLY", nil, nil))
514+ let bb = fromBase58String(D(cU[j]))
515+ let dk = D(cU[k])
516+ let dl = fromBase58String(dk)
517+ let dm = D(cU[l])
518+ let dn = fromBase58String(dm)
519+ let cZ = parseIntValue(D(cU[m]))
520+ let da = parseIntValue(D(cU[n]))
521+ let do = D(cU[i])
522+ let db = valueOrErrorMessage(assetInfo(bb), (("Asset " + toBase58String(bb)) + " doesn't exist")).quantity
523+ let dc = B(invoke(cT, "getAccBalanceWrapperREADONLY", [dk], nil))
524+ let dd = B(invoke(cT, "getAccBalanceWrapperREADONLY", [dm], nil))
525+ let dp = parseBigIntValue(D(invoke(cT, "toX18WrapperREADONLY", [dc, cZ], nil)))
526+ let dq = parseBigIntValue(D(invoke(cT, "toX18WrapperREADONLY", [dd, da], nil)))
527+ let dr = if ((db == 0))
526528 then g
527- else parseBigIntValue(D(invoke(cS, "calcPriceBigIntWrapperREADONLY", [toString(dp), toString(do)], nil)))
528- let de = B(invoke(cS, "fromX18WrapperREADONLY", [toString(dq), b], nil))
529- let dr = parseBigIntValue(D(invoke(cS, "toX18WrapperREADONLY", [di, cY], nil)))
530- let ds = fraction(dr, dq, d)
531- let dt = B(invoke(cS, "fromX18WrapperREADONLY", [toString(ds), cZ], nil))
532- let bU = invoke(cS, "estimatePutOperationWrapperREADONLY", ["", 500000, di, dk, dt, dm, "", true, false], nil)
533- let du = {
534- let z = bU
529+ else parseBigIntValue(D(invoke(cT, "calcPriceBigIntWrapperREADONLY", [toString(dq), toString(dp)], nil)))
530+ let df = B(invoke(cT, "fromX18WrapperREADONLY", [toString(dr), b], nil))
531+ let ds = parseBigIntValue(D(invoke(cT, "toX18WrapperREADONLY", [dj, cZ], nil)))
532+ let dt = fraction(ds, dr, d)
533+ let du = B(invoke(cT, "fromX18WrapperREADONLY", [toString(dt), da], nil))
534+ let bV = invoke(cT, "estimatePutOperationWrapperREADONLY", ["", 500000, dj, dl, du, dn, "", true, false], nil)
535+ let dv = {
536+ let z = bV
535537 if (if (if ($isInstanceOf(z._1, "Int"))
536538 then if ($isInstanceOf(z._3, "Int"))
537539 then if ($isInstanceOf(z._4, "Int"))
544546 then (size(z) == 13)
545547 else false)
546548 then {
547- let dv = z._1
548- let dw = z._3
549- let dx = z._4
550- let dy = z._5
551- let dz = z._6
552- $Tuple5(dv, dw, dx, dy, dz)
549+ let dw = z._1
550+ let dx = z._3
551+ let dy = z._4
552+ let dz = z._5
553+ let dA = z._6
554+ $Tuple5(dw, dx, dy, dz, dA)
553555 }
554556 else throw("Couldn't cast types")
555557 }
556- let dv = du._1
557- let dw = du._2
558- let dx = du._3
559- let dy = du._4
560- let dz = du._5
561- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dv), toString(de), toString(dx), toString(dy), toString(dz), dn, toString(di), toString(dt)], e))
558+ let dw = dv._1
559+ let dx = dv._2
560+ let dy = dv._3
561+ let dz = dv._4
562+ let dA = dv._5
563+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dw), toString(df), toString(dy), toString(dz), toString(dA), do, toString(dj), toString(du)], e))
562564 }
563565
564566
565567
566-@Callable(bv)
567-func poolEvaluatePutByPriceAssetREADONLY (cR,dt) = {
568- let cS = addressFromStringValue(t(aU, U(cR)))
569- let cT = x(invoke(cS, "getPoolConfigWrapperREADONLY", nil, nil))
570- let ba = fromBase58String(D(cT[j]))
571- let dj = D(cT[k])
572- let dk = fromBase58String(dj)
573- let dl = D(cT[l])
574- let dm = fromBase58String(dl)
575- let cY = parseIntValue(D(cT[m]))
576- let cZ = parseIntValue(D(cT[n]))
577- let dn = D(cT[i])
578- let da = valueOrErrorMessage(assetInfo(ba), (("Asset " + toBase58String(ba)) + " doesn't exist")).quantity
579- let dA = B(invoke(cS, "getAccBalanceWrapperREADONLY", [dj], nil))
580- let dB = B(invoke(cS, "getAccBalanceWrapperREADONLY", [dl], nil))
581- let dC = parseBigIntValue(D(invoke(cS, "toX18WrapperREADONLY", [dA, cY], nil)))
582- let dD = parseBigIntValue(D(invoke(cS, "toX18WrapperREADONLY", [dB, cZ], nil)))
583- let dq = if ((da == 0))
568+@Callable(bw)
569+func poolEvaluatePutByPriceAssetREADONLY (cS,du) = {
570+ let cT = addressFromStringValue(t(aV, U(cS)))
571+ let cU = x(invoke(cT, "getPoolConfigWrapperREADONLY", nil, nil))
572+ let bb = fromBase58String(D(cU[j]))
573+ let dk = D(cU[k])
574+ let dl = fromBase58String(dk)
575+ let dm = D(cU[l])
576+ let dn = fromBase58String(dm)
577+ let cZ = parseIntValue(D(cU[m]))
578+ let da = parseIntValue(D(cU[n]))
579+ let do = D(cU[i])
580+ let db = valueOrErrorMessage(assetInfo(bb), (("Asset " + toBase58String(bb)) + " doesn't exist")).quantity
581+ let dB = B(invoke(cT, "getAccBalanceWrapperREADONLY", [dk], nil))
582+ let dC = B(invoke(cT, "getAccBalanceWrapperREADONLY", [dm], nil))
583+ let dD = parseBigIntValue(D(invoke(cT, "toX18WrapperREADONLY", [dB, cZ], nil)))
584+ let dE = parseBigIntValue(D(invoke(cT, "toX18WrapperREADONLY", [dC, da], nil)))
585+ let dr = if ((db == 0))
584586 then g
585- else parseBigIntValue(D(invoke(cS, "calcPriceBigIntWrapperREADONLY", [toString(dD), toString(dC)], nil)))
586- let de = B(invoke(cS, "fromX18WrapperREADONLY", [toString(dq), b], nil))
587- let ds = parseBigIntValue(D(invoke(cS, "toX18WrapperREADONLY", [dt, cZ], nil)))
588- let dr = fraction(ds, d, dq)
589- let di = B(invoke(cS, "fromX18WrapperREADONLY", [toString(dr), cY], nil))
590- let bU = invoke(cS, "estimatePutOperationWrapperREADONLY", ["", 500000, di, dk, dt, dm, "", true, false], nil)
591- let dE = {
592- let z = bU
587+ else parseBigIntValue(D(invoke(cT, "calcPriceBigIntWrapperREADONLY", [toString(dE), toString(dD)], nil)))
588+ let df = B(invoke(cT, "fromX18WrapperREADONLY", [toString(dr), b], nil))
589+ let dt = parseBigIntValue(D(invoke(cT, "toX18WrapperREADONLY", [du, da], nil)))
590+ let ds = fraction(dt, d, dr)
591+ let dj = B(invoke(cT, "fromX18WrapperREADONLY", [toString(ds), cZ], nil))
592+ let bV = invoke(cT, "estimatePutOperationWrapperREADONLY", ["", 500000, dj, dl, du, dn, "", true, false], nil)
593+ let dF = {
594+ let z = bV
593595 if (if (if ($isInstanceOf(z._1, "Int"))
594596 then if ($isInstanceOf(z._3, "Int"))
595597 then if ($isInstanceOf(z._4, "Int"))
602604 then (size(z) == 13)
603605 else false)
604606 then {
605- let dv = z._1
606- let dw = z._3
607- let dx = z._4
608- let dy = z._5
609- let dz = z._6
610- $Tuple5(dv, dw, dx, dy, dz)
607+ let dw = z._1
608+ let dx = z._3
609+ let dy = z._4
610+ let dz = z._5
611+ let dA = z._6
612+ $Tuple5(dw, dx, dy, dz, dA)
611613 }
612614 else throw("Couldn't cast types")
613615 }
614- let dv = dE._1
615- let dw = dE._2
616- let dx = dE._3
617- let dy = dE._4
618- let dz = dE._5
619- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dv), toString(de), toString(dx), toString(dy), toString(dz), dn, toString(di), toString(dt)], e))
616+ let dw = dF._1
617+ let dx = dF._2
618+ let dy = dF._3
619+ let dz = dF._4
620+ let dA = dF._5
621+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dw), toString(df), toString(dy), toString(dz), toString(dA), do, toString(dj), toString(du)], e))
620622 }
621623
622624
623625
624-@Callable(bv)
625-func poolEvaluateGetREADONLY (dF,dG) = {
626- let cS = addressFromStringValue(t(aU, U(dF)))
627- let bU = invoke(cS, "estimateGetOperationWrapperREADONLY", ["", dF, dG, toString(cS)], nil)
628- let dH = {
629- let z = bU
626+@Callable(bw)
627+func poolEvaluateGetREADONLY (dG,dH) = {
628+ let cT = addressFromStringValue(t(aV, U(dG)))
629+ let bV = invoke(cT, "estimateGetOperationWrapperREADONLY", ["", dG, dH, toString(cT)], nil)
630+ let dI = {
631+ let z = bV
630632 if (if (if ($isInstanceOf(z._1, "Int"))
631633 then if ($isInstanceOf(z._2, "Int"))
632634 then if ($isInstanceOf(z._5, "Int"))
643645 then (size(z) == 10)
644646 else false)
645647 then {
646- let dI = z._1
647- let dJ = z._2
648- let dx = z._5
649- let dy = z._6
650- let dz = z._7
651- let de = z._8
652- let dn = z._9
653- $Tuple7(dI, dJ, dx, dy, dz, de, dn)
648+ let dJ = z._1
649+ let dK = z._2
650+ let dy = z._5
651+ let dz = z._6
652+ let dA = z._7
653+ let df = z._8
654+ let do = z._9
655+ $Tuple7(dJ, dK, dy, dz, dA, df, do)
654656 }
655657 else throw("Couldn't cast types")
656658 }
657- let dI = dH._1
658- let dJ = dH._2
659- let dx = dH._3
660- let dy = dH._4
661- let dz = dH._5
662- let de = dH._6
663- let dn = dH._7
664- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(dI), toString(dJ), toString(dx), toString(dy), toString(dz), de, dn], e))
659+ let dJ = dI._1
660+ let dK = dI._2
661+ let dy = dI._3
662+ let dz = dI._4
663+ let dA = dI._5
664+ let df = dI._6
665+ let do = dI._7
666+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(dJ), toString(dK), toString(dy), toString(dz), toString(dA), df, do], e))
665667 }
666668
667669
668670
669-@Callable(bv)
671+@Callable(bw)
670672 func gwxUserInfoREADONLY (am) = {
671- let dK = x(invoke(aY, "gwxUserInfoREADONLY", [am], nil))
672- let dL = B(dK[0])
673- $Tuple2(nil, makeString(["%d", toString(dL)], e))
673+ let dL = x(invoke(aZ, "gwxUserInfoREADONLY", [am], nil))
674+ let dM = B(dL[0])
675+ $Tuple2(nil, makeString(["%d", toString(dM)], e))
674676 }
675677
676678
677679
678-@Callable(bv)
679-func unstakeAndGetOneTkn (cS,dM,dN,dO,dP,dQ,dR) = {
680- let bV = invoke(addressFromStringValue(value(getString(addressFromStringValue(cS), aS()))), "unstakeAndGetOneTkn", [dM, dN, dO, dP, dQ, dR], nil)
681- if ((bV == bV))
680+@Callable(bw)
681+func unstakeAndGetOneTkn (cT,dN,dO,dP,dQ,dR,dS) = {
682+ let bW = invoke(addressFromStringValue(value(getString(addressFromStringValue(cT), aT()))), "unstakeAndGetOneTkn", [dN, dO, dP, dQ, dR, dS], nil)
683+ if ((bW == bW))
682684 then $Tuple2(nil, unit)
683685 else throw("Strict value is not equal to itself.")
684686 }
685687
686688
687689
688-@Callable(bv)
689-func setManager (dS) = {
690- let bz = bu(bv)
691- if ((bz == bz))
690+@Callable(bw)
691+func setManager (dT) = {
692+ let bA = bv(bw)
693+ if ((bA == bA))
692694 then {
693- let dT = fromBase58String(dS)
694- if ((dT == dT))
695- then [StringEntry(H(), dS)]
695+ let dU = fromBase58String(dT)
696+ if ((dU == dU))
697+ then [StringEntry(H(), dT)]
696698 else throw("Strict value is not equal to itself.")
697699 }
698700 else throw("Strict value is not equal to itself.")
700702
701703
702704
703-@Callable(bv)
705+@Callable(bw)
704706 func confirmManager () = {
705- let dU = bt()
706- let dV = if (isDefined(dU))
707+ let dV = bu()
708+ let dW = if (isDefined(dV))
707709 then true
708710 else throw("No pending manager")
709- if ((dV == dV))
711+ if ((dW == dW))
710712 then {
711- let dW = if ((bv.callerPublicKey == value(dU)))
713+ let dX = if ((bw.callerPublicKey == value(dV)))
712714 then true
713715 else throw("You are not pending manager")
714- if ((dW == dW))
715- then [StringEntry(G(), toBase58String(value(dU))), DeleteEntry(H())]
716+ if ((dX == dX))
717+ then [StringEntry(G(), toBase58String(value(dV))), DeleteEntry(H())]
716718 else throw("Strict value is not equal to itself.")
717719 }
718720 else throw("Strict value is not equal to itself.")
719721 }
720722
721723
722-@Verifier(dX)
723-func dY () = {
724- let dZ = {
725- let z = br()
724+@Verifier(dY)
725+func dZ () = {
726+ let ea = {
727+ let z = bs()
726728 if ($isInstanceOf(z, "ByteVector"))
727729 then {
728- let bx = z
729- bx
730+ let by = z
731+ by
730732 }
731733 else if ($isInstanceOf(z, "Unit"))
732- then dX.senderPublicKey
734+ then dY.senderPublicKey
733735 else throw("Match error")
734736 }
735- sigVerify(dX.bodyBytes, dX.proofs[0], dZ)
737+ sigVerify(dY.bodyBytes, dY.proofs[0], ea)
736738 }
737739
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 8
55
66 let b = 100000000
77
88 let c = 18
99
1010 let d = toBigInt(1000000000000000000)
1111
1212 let e = "__"
1313
1414 let f = b
1515
1616 let g = toBigInt(0)
1717
1818 let h = 1
1919
2020 let i = 2
2121
2222 let j = 3
2323
2424 let k = 4
2525
2626 let l = 5
2727
2828 let m = 6
2929
3030 let n = 7
3131
3232 let o = 8
3333
3434 let p = 9
3535
3636 let q = 10
3737
3838 func r (s) = valueOrErrorMessage(getString(s), (("mandatory this." + s) + " is not defined"))
3939
4040
4141 func t (u,s) = valueOrErrorMessage(getString(u, s), (((("mandatory " + toString(u)) + ".") + s) + " is not defined"))
4242
4343
4444 func v (u,s) = valueOrElse(getInteger(u, s), 0)
4545
4646
4747 func w (u,s) = valueOrErrorMessage(getInteger(u, s), (("mandatory this." + s) + " is not defined"))
4848
4949
5050 func x (y) = {
5151 let z = y
5252 if ($isInstanceOf(z, "List[Any]"))
5353 then {
5454 let A = z
5555 A
5656 }
5757 else throw("fail to cast into List[Any]")
5858 }
5959
6060
6161 func B (y) = {
6262 let z = y
6363 if ($isInstanceOf(z, "Int"))
6464 then {
6565 let C = z
6666 C
6767 }
6868 else throw("fail to cast into Int")
6969 }
7070
7171
7272 func D (y) = {
7373 let z = y
7474 if ($isInstanceOf(z, "String"))
7575 then {
7676 let E = z
7777 E
7878 }
7979 else throw("fail to cast into String")
8080 }
8181
8282
8383 func F () = "%s%s__config__factoryAddress"
8484
8585
8686 func G () = "%s__managerPublicKey"
8787
8888
8989 func H () = "%s__pendingManagerPublicKey"
9090
9191
9292 let I = 1
9393
9494 let J = 2
9595
9696 let K = 3
9797
9898 let L = 4
9999
100100 let M = 5
101101
102102 let N = 6
103103
104104 let O = 7
105105
106106 let P = 8
107107
108108 func Q () = "%s__factoryConfig"
109109
110110
111111 func R (S) = makeString(["%s%s%s", S, "mappings__lpAsset2PoolContract"], e)
112112
113113
114114 func T () = "%s__lpTokensList"
115115
116116
117117 func U (S) = makeString(["%s%s%s", S, "mappings__lpAsset2PoolContract"], e)
118118
119119
120120 func V (W) = makeString(["%s%s", "poolWeight", W], e)
121121
122122
123123 func X () = addressFromStringValue(r(F()))
124124
125125
126126 func Y () = split(valueOrElse(getString(X(), T()), ""), e)
127127
128128
129129 func Z (aa) = split(t(aa, Q()), e)
130130
131131
132132 func ab (ac) = addressFromStringValue(ac[J])
133133
134134
135135 func ad (ac) = addressFromStringValue(ac[M])
136136
137137
138138 func ae (ac) = addressFromStringValue(ac[I])
139139
140140
141141 func af (ac) = addressFromStringValue(ac[P])
142142
143143
144144 func ag () = "%s__config"
145145
146146
147147 func ah () = "%s%s__stats__activeTotalLocked"
148148
149149
150150 func ai () = "%s%s__stats__locksDurationSumInBlocks"
151151
152152
153153 func aj () = "%s%s__stats__locksCount"
154154
155155
156156 func ak () = "%s%s__stats__activeUsersCount"
157157
158158
159159 func al (am) = makeString(["%s%s%s__mapping__user2num", am], e)
160160
161161
162162 func an (ao) = makeString(["%s%s%s__mapping__num2user", ao], e)
163163
164164
165165 func ap (aq) = makeString(["%s%d%s__paramByUserNum", aq, "amount"], e)
166166
167167
168168 func ar (aq) = makeString(["%s%d%s__paramByUserNum", aq, "start"], e)
169169
170170
171171 func as (aq) = makeString(["%s%d%s__paramByUserNum", aq, "duration"], e)
172172
173173
174174 func at (aq) = makeString(["%s%d%s__paramByUserNum", aq, "k"], e)
175175
176176
177177 func au (aq) = makeString(["%s%d%s__paramByUserNum", aq, "b"], e)
178178
179179
180180 func av (aq,aw) = makeString(["%s%d%s%d__paramByPeriod", aq, "k", aw], e)
181181
182182
183183 func ax (aq,aw) = makeString(["%s%d%s%d__paramByPeriod", aq, "b", aw], e)
184184
185185
186186 func ay (aq) = makeString(["%s%d__userBoostEmissionLastInt", aq], e)
187187
188188
189189 func az (aq) = makeString(["%s%d__maxBoostInt", aq], e)
190190
191191
192192 func aA () = "%s%s__maxBoostInt__total"
193193
194194
195195 func aB (aq) = makeString(["%s%d__userBoostAvaliableToClaimTotal", aq], e)
196196
197197
198198 func aC (aq) = makeString(["%s%d__userBoostClaimed", aq], e)
199199
200200
201201 func aD () = "%s%s__gwxCached__total"
202202
203203
204204 func aE (aF,aG) = makeString(["%s%s%s__staked", aF, aG], e)
205205
206206
207207 func aH (aG) = ("%s%s%s__staked__total__" + aG)
208208
209209
210210 func aI (aG,aF) = makeString(["%s%s%s__claimed", aF, aG], e)
211211
212212
213213 func aJ (aG,aF) = makeString(["%s%s%s__claimedMinReward", aF, aG], e)
214214
215215
216216 func aK (aG,aF) = makeString(["%s%s%s__claimedBoostReward", aF, aG], e)
217217
218218
219219 func aL (aM,s) = valueOrElse(getInteger(aM, s), 0)
220220
221221
222222 func aN () = "%s%s__ratePerBlock__current"
223223
224224
225225 func aO () = "%s%s__ratePerBlockMax__current"
226226
227227
228228 func aP () = "%s%s__emission__startBlock"
229229
230230
231231 func aQ () = "%s%s__emission__duration"
232232
233233
234234 func aR () = "%s%s__emission__endBlock"
235235
236236
237-func aS () = "%s__addonAddr"
237+let aS = fraction(5, a, 10000)
238+
239+func aT () = "%s__addonAddr"
238240
239241
240-func aT () = "%s__feePermille"
242+func aU () = "%s__fee"
241243
242244
243-let aU = X()
245+let aV = X()
244246
245-let aV = Z(aU)
247+let aW = Z(aV)
246248
247-let aW = ad(aV)
249+let aX = ad(aW)
248250
249-let aM = ae(aV)
251+let aM = ae(aW)
250252
251-let aX = af(aV)
253+let aY = af(aW)
252254
253-let aY = ab(aV)
255+let aZ = ab(aW)
254256
255-func aZ (ba) = {
256- let bb = t(aU, U(ba))
257- let bc = b
258- let bd = getIntegerValue(aU, V(bb))
259- let be = w(aW, aN())
260- let bf = w(aW, aO())
261- let bg = 3
262- let bh = (fraction(be, bd, bc) / bg)
263- let bi = fraction(bf, bd, bc)
264- let bj = (bg * b)
265- let bk = v(aM, aH(ba))
266-[bh, bj, bk]
257+func ba (bb) = {
258+ let bc = t(aV, U(bb))
259+ let bd = b
260+ let be = getIntegerValue(aV, V(bc))
261+ let bf = w(aX, aN())
262+ let bg = w(aX, aO())
263+ let bh = 3
264+ let bi = (fraction(bf, be, bd) / bh)
265+ let bj = fraction(bg, be, bd)
266+ let bk = (bh * b)
267+ let bl = v(aM, aH(bb))
268+[bi, bk, bl]
267269 }
268270
269271
270-func bl (bm,bn,bo) = {
271- let bp = fraction(bn, b, bo)
272- let bq = fraction(bm, bp, b)
273-[bq]
272+func bm (bn,bo,bp) = {
273+ let bq = fraction(bo, b, bp)
274+ let br = fraction(bn, bq, b)
275+[br]
274276 }
275277
276278
277-func br () = {
279+func bs () = {
278280 let z = getString(G())
279281 if ($isInstanceOf(z, "String"))
280282 then {
281- let bs = z
282- fromBase58String(bs)
283+ let bt = z
284+ fromBase58String(bt)
283285 }
284286 else if ($isInstanceOf(z, "Unit"))
285287 then unit
286288 else throw("Match error")
287289 }
288290
289291
290-func bt () = {
292+func bu () = {
291293 let z = getString(H())
292294 if ($isInstanceOf(z, "String"))
293295 then {
294- let bs = z
295- fromBase58String(bs)
296+ let bt = z
297+ fromBase58String(bt)
296298 }
297299 else if ($isInstanceOf(z, "Unit"))
298300 then unit
299301 else throw("Match error")
300302 }
301303
302304
303-func bu (bv) = {
304- let bw = throw("Permission denied")
305- let z = br()
305+func bv (bw) = {
306+ let bx = throw("Permission denied")
307+ let z = bs()
306308 if ($isInstanceOf(z, "ByteVector"))
307309 then {
308- let bx = z
309- if ((bv.callerPublicKey == bx))
310+ let by = z
311+ if ((bw.callerPublicKey == by))
310312 then true
311- else bw
313+ else bx
312314 }
313315 else if ($isInstanceOf(z, "Unit"))
314- then if ((bv.caller == this))
316+ then if ((bw.caller == this))
315317 then true
316- else bw
318+ else bx
317319 else throw("Match error")
318320 }
319321
320322
321-@Callable(bv)
322-func constructor (by) = {
323- let bz = bu(bv)
324- if ((bz == bz))
325- then [StringEntry(F(), by)]
323+@Callable(bw)
324+func constructor (bz) = {
325+ let bA = bv(bw)
326+ if ((bA == bA))
327+ then [StringEntry(F(), bz)]
326328 else throw("Strict value is not equal to itself.")
327329 }
328330
329331
330332
331-@Callable(bv)
332-func currentRewardRateREADONLY (ba) = {
333- let bA = aZ(ba)
334- let be = bA[0]
335- let bj = bA[1]
336- let bk = bA[2]
337- $Tuple2(nil, makeString(["%d%d%d", toString(be), toString(bj), toString(bk)], e))
333+@Callable(bw)
334+func currentRewardRateREADONLY (bb) = {
335+ let bB = ba(bb)
336+ let bf = bB[0]
337+ let bk = bB[1]
338+ let bl = bB[2]
339+ $Tuple2(nil, makeString(["%d%d%d", toString(bf), toString(bk), toString(bl)], e))
338340 }
339341
340342
341343
342-@Callable(bv)
343-func currentUserRewardRateREADONLY (ba,am) = {
344- let bA = aZ(ba)
345- let be = bA[0]
346- let bj = bA[1]
347- let bk = bA[2]
348- let bB = v(aM, aE(am, ba))
349- let bC = split(D(invoke(aM, "claimWxREADONLY", [ba, am], nil)), e)
350- let bD = valueOrErrorMessage(parseInt(bC[5]), "couldn't parse minRewardPart")
351- let bE = valueOrErrorMessage(parseInt(bC[6]), "couldn't parse boostRewardPart")
352- let bF = bC[7]
353- let bG = if ((bE == 0))
344+@Callable(bw)
345+func currentUserRewardRateREADONLY (bb,am) = {
346+ let bB = ba(bb)
347+ let bf = bB[0]
348+ let bk = bB[1]
349+ let bl = bB[2]
350+ let bC = v(aM, aE(am, bb))
351+ let bD = split(D(invoke(aM, "claimWxREADONLY", [bb, am], nil)), e)
352+ let bE = valueOrErrorMessage(parseInt(bD[5]), "couldn't parse minRewardPart")
353+ let bF = valueOrErrorMessage(parseInt(bD[6]), "couldn't parse boostRewardPart")
354+ let bG = bD[7]
355+ let bH = if ((bF == 0))
354356 then (1 * b)
355- else fraction((bD + bE), b, bD)
356- $Tuple2(nil, makeString(["%d%d%d%d%d%s", toString(be), toString(bj), toString(bk), toString(bB), toString(bG), bF], e))
357+ else fraction((bE + bF), b, bE)
358+ $Tuple2(nil, makeString(["%d%d%d%d%d%s", toString(bf), toString(bk), toString(bl), toString(bC), toString(bH), bG], e))
357359 }
358360
359361
360362
361-@Callable(bv)
362-func calcBoostBulkInternalREADONLY (bH,bI,bJ,bK,bL,bM,bN) = if ((bH == size(bI)))
363- then $Tuple2(nil, bN)
363+@Callable(bw)
364+func calcBoostBulkInternalREADONLY (bI,bJ,bK,bL,bM,bN,bO) = if ((bI == size(bJ)))
365+ then $Tuple2(nil, bO)
364366 else {
365- let bO = bI[bH]
366- let bP = bJ[bH]
367- let bQ = bK[bH]
368- let bR = bL[bH]
369- let bS = {
370- let bT = invoke(this, "calcBoostREADONLY", [bO, bP, bQ, bR, bM], nil)
371- if ($isInstanceOf(bT, "String"))
372- then bT
373- else throw(($getType(invoke(this, "calcBoostREADONLY", [bO, bP, bQ, bR, bM], nil)) + " couldn't be cast to String"))
367+ let bP = bJ[bI]
368+ let bQ = bK[bI]
369+ let bR = bL[bI]
370+ let bS = bM[bI]
371+ let bT = {
372+ let bU = invoke(this, "calcBoostREADONLY", [bP, bQ, bR, bS, bN], nil)
373+ if ($isInstanceOf(bU, "String"))
374+ then bU
375+ else throw(($getType(invoke(this, "calcBoostREADONLY", [bP, bQ, bR, bS, bN], nil)) + " couldn't be cast to String"))
374376 }
375- let bU = (bN :+ bS)
376- let bV = {
377- let bT = invoke(this, "calcBoostBulkInternalREADONLY", [(bH + 1), bI, bJ, bK, bL, bM, bU], nil)
378- if ($isInstanceOf(bT, "List[Any]"))
379- then bT
380- else throw(($getType(invoke(this, "calcBoostBulkInternalREADONLY", [(bH + 1), bI, bJ, bK, bL, bM, bU], nil)) + " couldn't be cast to List[Any]"))
377+ let bV = (bO :+ bT)
378+ let bW = {
379+ let bU = invoke(this, "calcBoostBulkInternalREADONLY", [(bI + 1), bJ, bK, bL, bM, bN, bV], nil)
380+ if ($isInstanceOf(bU, "List[Any]"))
381+ then bU
382+ else throw(($getType(invoke(this, "calcBoostBulkInternalREADONLY", [(bI + 1), bJ, bK, bL, bM, bN, bV], nil)) + " couldn't be cast to List[Any]"))
381383 }
382- if ((bV == bV))
383- then $Tuple2(nil, bV)
384+ if ((bW == bW))
385+ then $Tuple2(nil, bW)
384386 else throw("Strict value is not equal to itself.")
385387 }
386388
387389
388390
389-@Callable(bv)
390-func calcBoostBulkREADONLY (bO,bP,bQ,bR,bM) = {
391- let bU = invoke(this, "calcBoostBulkInternalREADONLY", [0, bO, bP, bQ, bR, bM, nil], nil)
392- $Tuple2(nil, bU)
391+@Callable(bw)
392+func calcBoostBulkREADONLY (bP,bQ,bR,bS,bN) = {
393+ let bV = invoke(this, "calcBoostBulkInternalREADONLY", [0, bP, bQ, bR, bS, bN, nil], nil)
394+ $Tuple2(nil, bV)
393395 }
394396
395397
396398
397-@Callable(bv)
398-func calcBoostREADONLY (bO,bP,bQ,bR,bM) = {
399- let bW = aX
400- let bX = "empty"
401- let bY = parseIntValue(split(t(aY, ag()), e)[4])
402- let aG = if ((bR == ""))
403- then bX
404- else bR
405- let aF = if ((bM == ""))
406- then bX
407- else bM
408- let bZ = valueOrElse(getString(aY, al(bM)), bX)
409- let ca = valueOrElse(getInteger(aY, ap(bZ)), 0)
410- let cb = valueOrElse(getInteger(aY, ar(bZ)), height)
411- let bn = valueOrElse(getInteger(aY, as(bZ)), 0)
412- let cc = (cb + bn)
413- let cd = max([(cc - height), 0])
414- let ce = (ca + bO)
415- let cf = min([(cd + bP), bY])
416- let cg = B(x(invoke(aY, "gwxUserInfoREADONLY", [aF], nil))[0])
417- let ch = bl(ce, cf, bY)[0]
418- let ci = x(invoke(bW, "calcGwxParamsREADONLY", [ch, height, cf], nil))
419- let cj = (ch - cg)
420- let ck = B(ci[0])
421- let cl = B(ci[1])
422- let aw = toString(B(ci[2]))
423- let cm = aA()
424- let cn = aD()
425- let co = ((ch * cf) / 2)
426- let cp = v(aY, cm)
427- let cq = valueOrElse(getInteger(aY, cn), 0)
428- let cr = 1000
429- let cs = (w(aW, aN()) * cr)
430- let ct = aE(aF, aG)
431- let cu = aH(aG)
432- let cv = aL(aM, ct)
399+@Callable(bw)
400+func calcBoostREADONLY (bP,bQ,bR,bS,bN) = {
401+ let bX = aY
402+ let bY = "empty"
403+ let bZ = parseIntValue(split(t(aZ, ag()), e)[4])
404+ let aG = if ((bS == ""))
405+ then bY
406+ else bS
407+ let aF = if ((bN == ""))
408+ then bY
409+ else bN
410+ let ca = valueOrElse(getString(aZ, al(bN)), bY)
411+ let cb = valueOrElse(getInteger(aZ, ap(ca)), 0)
412+ let cc = valueOrElse(getInteger(aZ, ar(ca)), height)
413+ let bo = valueOrElse(getInteger(aZ, as(ca)), 0)
414+ let cd = (cc + bo)
415+ let ce = max([(cd - height), 0])
416+ let cf = (cb + bP)
417+ let cg = min([(ce + bQ), bZ])
418+ let ch = B(x(invoke(aZ, "gwxUserInfoREADONLY", [aF], nil))[0])
419+ let ci = bm(cf, cg, bZ)[0]
420+ let cj = x(invoke(bX, "calcGwxParamsREADONLY", [ci, height, cg], nil))
421+ let ck = (ci - ch)
422+ let cl = B(cj[0])
423+ let cm = B(cj[1])
424+ let aw = toString(B(cj[2]))
425+ let cn = aA()
426+ let co = aD()
427+ let cp = ((ci * cg) / 2)
428+ let cq = v(aZ, cn)
429+ let cr = valueOrElse(getInteger(aZ, co), 0)
430+ let cs = 1000
431+ let ct = (w(aX, aN()) * cs)
432+ let cu = aE(aF, aG)
433+ let cv = aH(aG)
433434 let cw = aL(aM, cu)
434- let cx = (cv + bQ)
435- let cy = (cw + bQ)
436- let bd = if ((aG != bX))
435+ let cx = aL(aM, cv)
436+ let cy = (cw + bR)
437+ let cz = (cx + bR)
438+ let be = if ((aG != bY))
437439 then {
438- let bb = valueOrErrorMessage(getString(aU, R(aG)), ("unsupported lp asset " + aG))
439- getIntegerValue(aU, V(bb))
440+ let bc = valueOrErrorMessage(getString(aV, R(aG)), ("unsupported lp asset " + aG))
441+ getIntegerValue(aV, V(bc))
440442 }
441443 else 0
442- let cz = fraction(cs, bd, (f * 3))
443- let cA = if ((cy != 0))
444- then fraction(cz, b, cy)
444+ let cA = fraction(ct, be, (f * 3))
445+ let cB = if ((cz != 0))
446+ then fraction(cA, b, cz)
445447 else 0
446- let cB = fraction(cA, cx, b)
447- let cC = (cz * 2)
448- let cD = fraction(ch, cC, (cq + cj))
449- let cE = min([cD, (cB * 2)])
450- let cF = if ((cB == 0))
448+ let cC = fraction(cB, cy, b)
449+ let cD = (cA * 2)
450+ let cE = fraction(ci, cD, (cr + ck))
451+ let cF = min([cE, (cC * 2)])
452+ let cG = if ((cC == 0))
451453 then (1 * b)
452- else fraction((cE + cB), b, cB)
453- $Tuple2(nil, makeString(["%d%d%s", toString(ch), toString(cF), "d"], e))
454+ else fraction((cF + cC), b, cC)
455+ $Tuple2(nil, makeString(["%d%d%s", toString(ci), toString(cG), "d"], e))
454456 }
455457
456458
457459
458-@Callable(bv)
460+@Callable(bw)
459461 func wxEmissionStatsREADONLY () = {
460- let cG = toString(b)
461- let cH = "1"
462- let be = w(aW, aN())
463- let cI = w(aW, aP())
464- let cJ = if ((cI > height))
462+ let cH = toString(b)
463+ let cI = "1"
464+ let bf = w(aX, aN())
465+ let cJ = w(aX, aP())
466+ let cK = if ((cJ > height))
465467 then 0
466- else (height - cI)
467- let cK = (1440 * 365)
468- let cL = (201000000 * b)
469- let cM = if ((cJ > cK))
470- then cL
471- else fraction(cL, cJ, cK)
472- let cN = ((be * cJ) + cM)
473- let cO = v(aY, ah())
474- let cP = v(aY, ai())
475- let cQ = v(aY, aj())
476- $Tuple2(nil, makeString(["%d%d%d%d", toString(cN), toString(cO), toString(cP), toString(cQ)], e))
468+ else (height - cJ)
469+ let cL = (1440 * 365)
470+ let cM = (201000000 * b)
471+ let cN = if ((cK > cL))
472+ then cM
473+ else fraction(cM, cK, cL)
474+ let cO = ((bf * cK) + cN)
475+ let cP = v(aZ, ah())
476+ let cQ = v(aZ, ai())
477+ let cR = v(aZ, aj())
478+ $Tuple2(nil, makeString(["%d%d%d%d", toString(cO), toString(cP), toString(cQ), toString(cR)], e))
477479 }
478480
479481
480482
481-@Callable(bv)
482-func poolStatsREADONLY (cR) = {
483- let cS = addressFromStringValue(t(aU, U(cR)))
484- let cT = x(invoke(cS, "getPoolConfigWrapperREADONLY", nil, nil))
485- let ba = fromBase58String(D(cT[j]))
486- let cU = D(cT[k])
487- let cV = D(cT[l])
488- let cW = D(cT[o])
489- let cX = D(cT[p])
490- let cY = parseIntValue(D(cT[m]))
491- let cZ = parseIntValue(D(cT[n]))
492- let da = valueOrErrorMessage(assetInfo(ba), (("Asset " + toBase58String(ba)) + " doesn't exist")).quantity
493- let db = B(invoke(cS, "getAccBalanceWrapperREADONLY", [cU], nil))
494- let dc = B(invoke(cS, "getAccBalanceWrapperREADONLY", [cV], nil))
495- let dd = if ((da == 0))
483+@Callable(bw)
484+func poolStatsREADONLY (cS) = {
485+ let cT = addressFromStringValue(t(aV, U(cS)))
486+ let cU = x(invoke(cT, "getPoolConfigWrapperREADONLY", nil, nil))
487+ let bb = fromBase58String(D(cU[j]))
488+ let cV = D(cU[k])
489+ let cW = D(cU[l])
490+ let cX = D(cU[o])
491+ let cY = D(cU[p])
492+ let cZ = parseIntValue(D(cU[m]))
493+ let da = parseIntValue(D(cU[n]))
494+ let db = valueOrErrorMessage(assetInfo(bb), (("Asset " + toBase58String(bb)) + " doesn't exist")).quantity
495+ let dc = B(invoke(cT, "getAccBalanceWrapperREADONLY", [cV], nil))
496+ let dd = B(invoke(cT, "getAccBalanceWrapperREADONLY", [cW], nil))
497+ let de = if ((db == 0))
496498 then [toString(g), toString(g), toString(g)]
497- else x(invoke(cS, "calcPricesWrapperREADONLY", [db, dc, da], nil))
498- let de = 0
499- let df = B(invoke(cS, "fromX18WrapperREADONLY", [dd[1], b], nil))
500- let dg = B(invoke(cS, "fromX18WrapperREADONLY", [dd[2], b], nil))
501- let bd = getIntegerValue(aU, V(toString(cS)))
502- let dh = v(cS, aT())
503- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(db), toString(dc), toString(da), toString(de), toString(df), toString(dg), toString(bd), toString(dh)], e))
499+ else x(invoke(cT, "calcPricesWrapperREADONLY", [dc, dd, db], nil))
500+ let df = 0
501+ let dg = B(invoke(cT, "fromX18WrapperREADONLY", [de[1], b], nil))
502+ let dh = B(invoke(cT, "fromX18WrapperREADONLY", [de[2], b], nil))
503+ let be = getIntegerValue(aV, V(toString(cT)))
504+ let di = valueOrElse(getInteger(cT, aU()), aS)
505+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dc), toString(dd), toString(db), toString(df), toString(dg), toString(dh), toString(be), toString(di)], e))
504506 }
505507
506508
507509
508-@Callable(bv)
509-func poolEvaluatePutByAmountAssetREADONLY (cR,di) = {
510- let cS = addressFromStringValue(t(aU, U(cR)))
511- let cT = x(invoke(cS, "getPoolConfigWrapperREADONLY", nil, nil))
512- let ba = fromBase58String(D(cT[j]))
513- let dj = D(cT[k])
514- let dk = fromBase58String(dj)
515- let dl = D(cT[l])
516- let dm = fromBase58String(dl)
517- let cY = parseIntValue(D(cT[m]))
518- let cZ = parseIntValue(D(cT[n]))
519- let dn = D(cT[i])
520- let da = valueOrErrorMessage(assetInfo(ba), (("Asset " + toBase58String(ba)) + " doesn't exist")).quantity
521- let db = B(invoke(cS, "getAccBalanceWrapperREADONLY", [dj], nil))
522- let dc = B(invoke(cS, "getAccBalanceWrapperREADONLY", [dl], nil))
523- let do = parseBigIntValue(D(invoke(cS, "toX18WrapperREADONLY", [db, cY], nil)))
524- let dp = parseBigIntValue(D(invoke(cS, "toX18WrapperREADONLY", [dc, cZ], nil)))
525- let dq = if ((da == 0))
510+@Callable(bw)
511+func poolEvaluatePutByAmountAssetREADONLY (cS,dj) = {
512+ let cT = addressFromStringValue(t(aV, U(cS)))
513+ let cU = x(invoke(cT, "getPoolConfigWrapperREADONLY", nil, nil))
514+ let bb = fromBase58String(D(cU[j]))
515+ let dk = D(cU[k])
516+ let dl = fromBase58String(dk)
517+ let dm = D(cU[l])
518+ let dn = fromBase58String(dm)
519+ let cZ = parseIntValue(D(cU[m]))
520+ let da = parseIntValue(D(cU[n]))
521+ let do = D(cU[i])
522+ let db = valueOrErrorMessage(assetInfo(bb), (("Asset " + toBase58String(bb)) + " doesn't exist")).quantity
523+ let dc = B(invoke(cT, "getAccBalanceWrapperREADONLY", [dk], nil))
524+ let dd = B(invoke(cT, "getAccBalanceWrapperREADONLY", [dm], nil))
525+ let dp = parseBigIntValue(D(invoke(cT, "toX18WrapperREADONLY", [dc, cZ], nil)))
526+ let dq = parseBigIntValue(D(invoke(cT, "toX18WrapperREADONLY", [dd, da], nil)))
527+ let dr = if ((db == 0))
526528 then g
527- else parseBigIntValue(D(invoke(cS, "calcPriceBigIntWrapperREADONLY", [toString(dp), toString(do)], nil)))
528- let de = B(invoke(cS, "fromX18WrapperREADONLY", [toString(dq), b], nil))
529- let dr = parseBigIntValue(D(invoke(cS, "toX18WrapperREADONLY", [di, cY], nil)))
530- let ds = fraction(dr, dq, d)
531- let dt = B(invoke(cS, "fromX18WrapperREADONLY", [toString(ds), cZ], nil))
532- let bU = invoke(cS, "estimatePutOperationWrapperREADONLY", ["", 500000, di, dk, dt, dm, "", true, false], nil)
533- let du = {
534- let z = bU
529+ else parseBigIntValue(D(invoke(cT, "calcPriceBigIntWrapperREADONLY", [toString(dq), toString(dp)], nil)))
530+ let df = B(invoke(cT, "fromX18WrapperREADONLY", [toString(dr), b], nil))
531+ let ds = parseBigIntValue(D(invoke(cT, "toX18WrapperREADONLY", [dj, cZ], nil)))
532+ let dt = fraction(ds, dr, d)
533+ let du = B(invoke(cT, "fromX18WrapperREADONLY", [toString(dt), da], nil))
534+ let bV = invoke(cT, "estimatePutOperationWrapperREADONLY", ["", 500000, dj, dl, du, dn, "", true, false], nil)
535+ let dv = {
536+ let z = bV
535537 if (if (if ($isInstanceOf(z._1, "Int"))
536538 then if ($isInstanceOf(z._3, "Int"))
537539 then if ($isInstanceOf(z._4, "Int"))
538540 then if ($isInstanceOf(z._5, "Int"))
539541 then $isInstanceOf(z._6, "Int")
540542 else false
541543 else false
542544 else false
543545 else false)
544546 then (size(z) == 13)
545547 else false)
546548 then {
547- let dv = z._1
548- let dw = z._3
549- let dx = z._4
550- let dy = z._5
551- let dz = z._6
552- $Tuple5(dv, dw, dx, dy, dz)
549+ let dw = z._1
550+ let dx = z._3
551+ let dy = z._4
552+ let dz = z._5
553+ let dA = z._6
554+ $Tuple5(dw, dx, dy, dz, dA)
553555 }
554556 else throw("Couldn't cast types")
555557 }
556- let dv = du._1
557- let dw = du._2
558- let dx = du._3
559- let dy = du._4
560- let dz = du._5
561- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dv), toString(de), toString(dx), toString(dy), toString(dz), dn, toString(di), toString(dt)], e))
558+ let dw = dv._1
559+ let dx = dv._2
560+ let dy = dv._3
561+ let dz = dv._4
562+ let dA = dv._5
563+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dw), toString(df), toString(dy), toString(dz), toString(dA), do, toString(dj), toString(du)], e))
562564 }
563565
564566
565567
566-@Callable(bv)
567-func poolEvaluatePutByPriceAssetREADONLY (cR,dt) = {
568- let cS = addressFromStringValue(t(aU, U(cR)))
569- let cT = x(invoke(cS, "getPoolConfigWrapperREADONLY", nil, nil))
570- let ba = fromBase58String(D(cT[j]))
571- let dj = D(cT[k])
572- let dk = fromBase58String(dj)
573- let dl = D(cT[l])
574- let dm = fromBase58String(dl)
575- let cY = parseIntValue(D(cT[m]))
576- let cZ = parseIntValue(D(cT[n]))
577- let dn = D(cT[i])
578- let da = valueOrErrorMessage(assetInfo(ba), (("Asset " + toBase58String(ba)) + " doesn't exist")).quantity
579- let dA = B(invoke(cS, "getAccBalanceWrapperREADONLY", [dj], nil))
580- let dB = B(invoke(cS, "getAccBalanceWrapperREADONLY", [dl], nil))
581- let dC = parseBigIntValue(D(invoke(cS, "toX18WrapperREADONLY", [dA, cY], nil)))
582- let dD = parseBigIntValue(D(invoke(cS, "toX18WrapperREADONLY", [dB, cZ], nil)))
583- let dq = if ((da == 0))
568+@Callable(bw)
569+func poolEvaluatePutByPriceAssetREADONLY (cS,du) = {
570+ let cT = addressFromStringValue(t(aV, U(cS)))
571+ let cU = x(invoke(cT, "getPoolConfigWrapperREADONLY", nil, nil))
572+ let bb = fromBase58String(D(cU[j]))
573+ let dk = D(cU[k])
574+ let dl = fromBase58String(dk)
575+ let dm = D(cU[l])
576+ let dn = fromBase58String(dm)
577+ let cZ = parseIntValue(D(cU[m]))
578+ let da = parseIntValue(D(cU[n]))
579+ let do = D(cU[i])
580+ let db = valueOrErrorMessage(assetInfo(bb), (("Asset " + toBase58String(bb)) + " doesn't exist")).quantity
581+ let dB = B(invoke(cT, "getAccBalanceWrapperREADONLY", [dk], nil))
582+ let dC = B(invoke(cT, "getAccBalanceWrapperREADONLY", [dm], nil))
583+ let dD = parseBigIntValue(D(invoke(cT, "toX18WrapperREADONLY", [dB, cZ], nil)))
584+ let dE = parseBigIntValue(D(invoke(cT, "toX18WrapperREADONLY", [dC, da], nil)))
585+ let dr = if ((db == 0))
584586 then g
585- else parseBigIntValue(D(invoke(cS, "calcPriceBigIntWrapperREADONLY", [toString(dD), toString(dC)], nil)))
586- let de = B(invoke(cS, "fromX18WrapperREADONLY", [toString(dq), b], nil))
587- let ds = parseBigIntValue(D(invoke(cS, "toX18WrapperREADONLY", [dt, cZ], nil)))
588- let dr = fraction(ds, d, dq)
589- let di = B(invoke(cS, "fromX18WrapperREADONLY", [toString(dr), cY], nil))
590- let bU = invoke(cS, "estimatePutOperationWrapperREADONLY", ["", 500000, di, dk, dt, dm, "", true, false], nil)
591- let dE = {
592- let z = bU
587+ else parseBigIntValue(D(invoke(cT, "calcPriceBigIntWrapperREADONLY", [toString(dE), toString(dD)], nil)))
588+ let df = B(invoke(cT, "fromX18WrapperREADONLY", [toString(dr), b], nil))
589+ let dt = parseBigIntValue(D(invoke(cT, "toX18WrapperREADONLY", [du, da], nil)))
590+ let ds = fraction(dt, d, dr)
591+ let dj = B(invoke(cT, "fromX18WrapperREADONLY", [toString(ds), cZ], nil))
592+ let bV = invoke(cT, "estimatePutOperationWrapperREADONLY", ["", 500000, dj, dl, du, dn, "", true, false], nil)
593+ let dF = {
594+ let z = bV
593595 if (if (if ($isInstanceOf(z._1, "Int"))
594596 then if ($isInstanceOf(z._3, "Int"))
595597 then if ($isInstanceOf(z._4, "Int"))
596598 then if ($isInstanceOf(z._5, "Int"))
597599 then $isInstanceOf(z._6, "Int")
598600 else false
599601 else false
600602 else false
601603 else false)
602604 then (size(z) == 13)
603605 else false)
604606 then {
605- let dv = z._1
606- let dw = z._3
607- let dx = z._4
608- let dy = z._5
609- let dz = z._6
610- $Tuple5(dv, dw, dx, dy, dz)
607+ let dw = z._1
608+ let dx = z._3
609+ let dy = z._4
610+ let dz = z._5
611+ let dA = z._6
612+ $Tuple5(dw, dx, dy, dz, dA)
611613 }
612614 else throw("Couldn't cast types")
613615 }
614- let dv = dE._1
615- let dw = dE._2
616- let dx = dE._3
617- let dy = dE._4
618- let dz = dE._5
619- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dv), toString(de), toString(dx), toString(dy), toString(dz), dn, toString(di), toString(dt)], e))
616+ let dw = dF._1
617+ let dx = dF._2
618+ let dy = dF._3
619+ let dz = dF._4
620+ let dA = dF._5
621+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dw), toString(df), toString(dy), toString(dz), toString(dA), do, toString(dj), toString(du)], e))
620622 }
621623
622624
623625
624-@Callable(bv)
625-func poolEvaluateGetREADONLY (dF,dG) = {
626- let cS = addressFromStringValue(t(aU, U(dF)))
627- let bU = invoke(cS, "estimateGetOperationWrapperREADONLY", ["", dF, dG, toString(cS)], nil)
628- let dH = {
629- let z = bU
626+@Callable(bw)
627+func poolEvaluateGetREADONLY (dG,dH) = {
628+ let cT = addressFromStringValue(t(aV, U(dG)))
629+ let bV = invoke(cT, "estimateGetOperationWrapperREADONLY", ["", dG, dH, toString(cT)], nil)
630+ let dI = {
631+ let z = bV
630632 if (if (if ($isInstanceOf(z._1, "Int"))
631633 then if ($isInstanceOf(z._2, "Int"))
632634 then if ($isInstanceOf(z._5, "Int"))
633635 then if ($isInstanceOf(z._6, "Int"))
634636 then if ($isInstanceOf(z._7, "Int"))
635637 then if ($isInstanceOf(z._8, "String"))
636638 then $isInstanceOf(z._9, "String")
637639 else false
638640 else false
639641 else false
640642 else false
641643 else false
642644 else false)
643645 then (size(z) == 10)
644646 else false)
645647 then {
646- let dI = z._1
647- let dJ = z._2
648- let dx = z._5
649- let dy = z._6
650- let dz = z._7
651- let de = z._8
652- let dn = z._9
653- $Tuple7(dI, dJ, dx, dy, dz, de, dn)
648+ let dJ = z._1
649+ let dK = z._2
650+ let dy = z._5
651+ let dz = z._6
652+ let dA = z._7
653+ let df = z._8
654+ let do = z._9
655+ $Tuple7(dJ, dK, dy, dz, dA, df, do)
654656 }
655657 else throw("Couldn't cast types")
656658 }
657- let dI = dH._1
658- let dJ = dH._2
659- let dx = dH._3
660- let dy = dH._4
661- let dz = dH._5
662- let de = dH._6
663- let dn = dH._7
664- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(dI), toString(dJ), toString(dx), toString(dy), toString(dz), de, dn], e))
659+ let dJ = dI._1
660+ let dK = dI._2
661+ let dy = dI._3
662+ let dz = dI._4
663+ let dA = dI._5
664+ let df = dI._6
665+ let do = dI._7
666+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(dJ), toString(dK), toString(dy), toString(dz), toString(dA), df, do], e))
665667 }
666668
667669
668670
669-@Callable(bv)
671+@Callable(bw)
670672 func gwxUserInfoREADONLY (am) = {
671- let dK = x(invoke(aY, "gwxUserInfoREADONLY", [am], nil))
672- let dL = B(dK[0])
673- $Tuple2(nil, makeString(["%d", toString(dL)], e))
673+ let dL = x(invoke(aZ, "gwxUserInfoREADONLY", [am], nil))
674+ let dM = B(dL[0])
675+ $Tuple2(nil, makeString(["%d", toString(dM)], e))
674676 }
675677
676678
677679
678-@Callable(bv)
679-func unstakeAndGetOneTkn (cS,dM,dN,dO,dP,dQ,dR) = {
680- let bV = invoke(addressFromStringValue(value(getString(addressFromStringValue(cS), aS()))), "unstakeAndGetOneTkn", [dM, dN, dO, dP, dQ, dR], nil)
681- if ((bV == bV))
680+@Callable(bw)
681+func unstakeAndGetOneTkn (cT,dN,dO,dP,dQ,dR,dS) = {
682+ let bW = invoke(addressFromStringValue(value(getString(addressFromStringValue(cT), aT()))), "unstakeAndGetOneTkn", [dN, dO, dP, dQ, dR, dS], nil)
683+ if ((bW == bW))
682684 then $Tuple2(nil, unit)
683685 else throw("Strict value is not equal to itself.")
684686 }
685687
686688
687689
688-@Callable(bv)
689-func setManager (dS) = {
690- let bz = bu(bv)
691- if ((bz == bz))
690+@Callable(bw)
691+func setManager (dT) = {
692+ let bA = bv(bw)
693+ if ((bA == bA))
692694 then {
693- let dT = fromBase58String(dS)
694- if ((dT == dT))
695- then [StringEntry(H(), dS)]
695+ let dU = fromBase58String(dT)
696+ if ((dU == dU))
697+ then [StringEntry(H(), dT)]
696698 else throw("Strict value is not equal to itself.")
697699 }
698700 else throw("Strict value is not equal to itself.")
699701 }
700702
701703
702704
703-@Callable(bv)
705+@Callable(bw)
704706 func confirmManager () = {
705- let dU = bt()
706- let dV = if (isDefined(dU))
707+ let dV = bu()
708+ let dW = if (isDefined(dV))
707709 then true
708710 else throw("No pending manager")
709- if ((dV == dV))
711+ if ((dW == dW))
710712 then {
711- let dW = if ((bv.callerPublicKey == value(dU)))
713+ let dX = if ((bw.callerPublicKey == value(dV)))
712714 then true
713715 else throw("You are not pending manager")
714- if ((dW == dW))
715- then [StringEntry(G(), toBase58String(value(dU))), DeleteEntry(H())]
716+ if ((dX == dX))
717+ then [StringEntry(G(), toBase58String(value(dV))), DeleteEntry(H())]
716718 else throw("Strict value is not equal to itself.")
717719 }
718720 else throw("Strict value is not equal to itself.")
719721 }
720722
721723
722-@Verifier(dX)
723-func dY () = {
724- let dZ = {
725- let z = br()
724+@Verifier(dY)
725+func dZ () = {
726+ let ea = {
727+ let z = bs()
726728 if ($isInstanceOf(z, "ByteVector"))
727729 then {
728- let bx = z
729- bx
730+ let by = z
731+ by
730732 }
731733 else if ($isInstanceOf(z, "Unit"))
732- then dX.senderPublicKey
734+ then dY.senderPublicKey
733735 else throw("Match error")
734736 }
735- sigVerify(dX.bodyBytes, dX.proofs[0], dZ)
737+ sigVerify(dY.bodyBytes, dY.proofs[0], ea)
736738 }
737739

github/deemru/w8io/c3f4982 
170.76 ms