tx · KTryZkBiizn7FmoWa3HxgrzWHARH3brtXuWu8ijAznF

3N9Zi6AcWcGbM23jQJ4fnzFsoHoTsxYDznr:  -0.02800000 Waves

2024.04.17 13:20 [3066620] smart account 3N9Zi6AcWcGbM23jQJ4fnzFsoHoTsxYDznr > SELF 0.00000000 Waves

{ "type": 13, "id": "KTryZkBiizn7FmoWa3HxgrzWHARH3brtXuWu8ijAznF", "fee": 2800000, "feeAssetId": null, "timestamp": 1713349251367, "version": 2, "chainId": 84, "sender": "3N9Zi6AcWcGbM23jQJ4fnzFsoHoTsxYDznr", "senderPublicKey": "GFbasS3jufhZkK4xR7tdTjjnP8K33KvJFEDHRtxXDkaJ", "proofs": [ "4SykNKhabRQCkjHbpSkYMXwETmyspdxF5A9jNa1eMHvSTcqDSbfmh5mRgyZm62RuenhD3V3dqBJisYiJnjrJRDgD" ], "script": "base64:BgLoHAgCEgQKAggBEgcKBQgICAgBEgQKAggIEgUKAwgIARIECgIICBIDCgEBEgMKAQESAwoBCBIECgIICBIECgIIBBIAEgMKAQESABIECgIICBIECgIICBIECgIICBIAEgQKAggIEgUKAwgIASIJc2VwYXJhdG9yIg5wb29sV2VpZ2h0TXVsdCIPbWF4RGVwdGhEZWZhdWx0IhlmaW5hbGl6YXRpb25TdGFnZUJhbGFuY2VzIhZmaW5hbGl6YXRpb25TdGFnZVRvdGFsIhdmaW5hbGl6YXRpb25TdGFnZVNoYXJlcyILd2F2ZXNTdHJpbmciDmtleUVwb2NoTGVuZ3RoIhFrZXlFcG9jaExlbmd0aE5ldyIVa2V5RXBvY2hMZW5ndGhCeUVwb2NoIgVlcG9jaCIPa2V5Q3VycmVudEVwb2NoIgtrZXlNYXhEZXB0aCIQa2V5UmVzdW1wdGlvbkZlZSIia2V5Vm90aW5nRW1pc3Npb25DYW5kaWRhdGVDb250cmFjdCIda2V5Vm90aW5nRW1pc3Npb25SYXRlQ29udHJhY3QiEmtleUZhY3RvcnlDb250cmFjdCITa2V5Qm9vc3RpbmdDb250cmFjdCISa2V5U3Rha2luZ0NvbnRyYWN0IhZrZXlBc3NldHNTdG9yZUNvbnRyYWN0IhRrZXlGaW5hbGl6YXRpb25TdGFnZSILa2V5TmV4dFBvb2wiC2tleU5leHRVc2VyIg5rZXlTdGFydEhlaWdodCIRa2V5Q3VycmVudEVwb2NoVWkiEGtleVN0YXJ0SGVpZ2h0VWkiHWtleUZpbmFsaXphdGlvblNob3VsZEJlRm9yY2VkIhZrZXlBbGxvd2VkTHBTY3JpcHRIYXNoIhxrZXlBbGxvd2VkTHBTdGFibGVTY3JpcHRIYXNoIhVrZXlTdGFydEhlaWdodEJ5RXBvY2giDGtleUZpbmFsaXplZCIJa2V5SW5MaXN0IgRwb29sIgskdDAyMTI3MjE2NyINYW1vdW50QXNzZXRJZCIMcHJpY2VBc3NldElkIhdrZXlJbnN1ZmZpY2llbnRCYWxhbmNlcyILJHQwMjMxNjIzNTYiB2tleVVzZWQiB2FkZHJlc3MiB2tleVZvdGUiCyR0MDI2NjQyNzA0Ig9rZXlWb3RpbmdSZXN1bHQiCyR0MDI4ODYyOTI2IhVrZXlWb3RpbmdSZXN1bHRTdGFrZWQiDGxwQXNzZXRJZFN0ciIMa2V5UG9vbFNoYXJlIgskdDAzMjQ3MzI4NyINa2V5VG90YWxWb3RlcyIPa2V5U3Rha2VkQnlVc2VyIg51c2VyQWRkcmVzc1N0ciIHd3JhcEVyciIDbXNnIgh0aHJvd0VyciIOZ2V0VmFsdWVPckZhaWwiA2tleSIEdHlwZSIFZXJyb3IiByRtYXRjaDAiA3N0ciIDaW50IgxnZXRTdHJPckZhaWwiAUAiDGdldEludE9yRmFpbCIMcG9vbFRvU3RyaW5nIgxzdHJpbmdUb1Bvb2wiBXBhcnRzIg9mYWN0b3J5Q29udHJhY3QiGklkeEZhY3RvcnlDZmdHd3hSZXdhcmREYXBwIg1rZXlGYWN0b3J5Q2ZnIhRyZWFkRmFjdG9yeUNmZ09yRmFpbCIHZmFjdG9yeSIZZ2V0R3d4UmV3YXJkQWRkcmVzc09yRmFpbCIKZmFjdG9yeUNmZyIMcGFyc2VBc3NldElkIgVpbnB1dCIPYXNzZXRJZFRvU3RyaW5nIgtnZXRQb29sSW5mbyIOcG9vbEluZm9PcHRpb24iFmdldExwQXNzZXRCeVBvb2xBc3NldHMiH2tleU1hcHBpbmdzQmFzZUFzc2V0MmludGVybmFsSWQiDGJhc2VBc3NldFN0ciIpa2V5TWFwcGluZ1Bvb2xBc3NldHNUb1Bvb2xDb250cmFjdEFkZHJlc3MiGGludGVybmFsQW1vdW50QXNzZXRJZFN0ciIXaW50ZXJuYWxQcmljZUFzc2V0SWRTdHIiH2tleU1hcHBpbmdQb29sQ29udHJhY3RUb0xQQXNzZXQiE3Bvb2xDb250cmFjdEFkZHJlc3MiFWFtb3VudEFzc2V0SW50ZXJuYWxJZCIUcHJpY2VBc3NldEludGVybmFsSWQiCWxwQXNzZXRJZCIYY2hlY2tXeEVtaXNzaW9uUG9vbExhYmVsIgskdDA2NjQ3NjY4NyIQZ3d4UmV3YXJkRGVwb3NpdCISZ3d4UmV3YXJkc0NvbnRyYWN0Ig1wb29sc0xpc3ROYW1lIhBnZXRWb3Rlc0xpc3ROYW1lIgskdDA3MTA0NzE0NCILa2V5TGlzdEhlYWQiCGxpc3ROYW1lIgRtZXRhIgtrZXlMaXN0U2l6ZSILa2V5TGlzdFByZXYiAmlkIgtrZXlMaXN0TmV4dCIMY29udGFpbnNOb2RlIgpoZWFkT3JVbml0IgpwcmV2T3JVbml0IgpuZXh0T3JVbml0IhFpbnNlcnROb2RlQWN0aW9ucyIIbGlzdFNpemUiCWNoZWNrTm9kZSIRZGVsZXRlTm9kZUFjdGlvbnMiFmtleU1hbmFnZXJWYXVsdEFkZHJlc3MiE2tleU1hbmFnZXJQdWJsaWNLZXkiHGdldE1hbmFnZXJWYXVsdEFkZHJlc3NPclRoaXMiAXMiFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQiE21hbmFnZXJWYXVsdEFkZHJlc3MiCWlzTWFuYWdlciIBaSICcGsiC211c3RNYW5hZ2VyIghtdXN0VGhpcyILdXNlckFkZHJlc3MiDHRhcmdldEhlaWdodCIXYm9vc3RpbmdDb250cmFjdEFkZHJlc3MiH3ZvdGluZ0VtaXNzaW9uQ2FuZGlkYXRlQ29udHJhY3QiEGJvb3N0aW5nQ29udHJhY3QiD3N0YWtpbmdDb250cmFjdCILZXBvY2hMZW5ndGgiBmNoZWNrcyINaW5MaXN0QWN0aW9ucyIYY3VycmVudEVwb2NoSXNOb3REZWZpbmVkIhJzdGFydEhlaWdodEFjdGlvbnMiBmFtb3VudCILc3RhcnRIZWlnaHQiCWVuZEhlaWdodCIXZmluYWxpemF0aW9uU3RhZ2VPclVuaXQiBHVzZWQiBHZvdGUiCnBvb2xSZXN1bHQiCnRvdGFsVm90ZXMiE2d3eEFtb3VudEF0RW5kVG90YWwiCWF2YWlsYWJsZSIHbmV3Vm90ZSIKd3hFbWlzc2lvbiINdm90ZXNMaXN0TmFtZSIQdm90ZXNMaXN0QWN0aW9ucyIObmV3RXBvY2hMZW5ndGgiC25ld01heERlcHRoIgdwb29sU3RyIgtjaGVja0NhbGxlciINZXBvY2hQcmV2aW91cyINJHQwMTczNjgxNzQwOCISYmFsYW5jZUlzT2tDdXJyZW50IhNiYWxhbmNlSXNPa1ByZXZpb3VzIgdhY3Rpb25zIhNkZWxldGVXeEVtaXNzaW9uSW52Ig9tb2RpZnlXZWlnaHRJbnYiC3Bvb2xBZGRyZXNzIgluZXdTdGF0dXMiEHNldFBvb2xTdGF0dXNJbnYiC2xpc3RBY3Rpb25zIhNzdGFydEhlaWdodFByZXZpb3VzIhNlcG9jaExlbmd0aFByZXZpb3VzIhFlbmRIZWlnaHRQcmV2aW91cyIQY2hlY2tUYXJnZXRFcG9jaCINJHQwMTk3NjExOTgwMSIbZ3d4QW1vdW50QXRFbmRUb3RhbFByZXZpb3VzIgx2b3RpbmdSZXN1bHQiDHZvdGVQcmV2aW91cyIadm90aW5nUmVzdWx0U3Rha2VkUHJldmlvdXMiDHN0YWtlZEJ5VXNlciIZdm90aW5nUmVzdWx0U3Rha2VkQWN0aW9ucyIFZm9yY2UiC3RhcmdldEVwb2NoIgxjdXJyZW50RXBvY2giDSR0MDIyMTY0MjIyMDQiAXIiE2Fzc2V0c1N0b3JlQ29udHJhY3QiBXNoYXJlIg1wcmV2aW91c0Vwb2NoIghuZXdFcG9jaCIUbmV3RXBvY2hMZW5ndGhPcHRpb24iFW5ld0Vwb2NoTGVuZ3RoQWN0aW9ucyIKcG9vbE9yVW5pdCIHJG1hdGNoMSILbmV4dFBvb2xTdHIiDm5leHRQb29sT3JVbml0Igp1c2VyT3JVbml0Igxwb29sc0hlYWRTdHIiDm5leHRVc2VyT3JVbml0IgR1c2VyIgRuZXh0Ig5wcm9jZXNzVm90ZUludiIHJG1hdGNoMiIIbmV4dFVzZXIiE2d3eFJld2FyZERlcG9zaXRJbnYiB2NvdW50ZXIiGnZvdGluZ0VtaXNzaW9uUmF0ZUNvbnRyYWN0IgZyZXN1bHQiA2ludiIIbWF4RGVwdGgiFmZpbmFsaXphdGlvbkluUHJvZ3Jlc3MiH3NsaXBwYWdlVG9sZXJhbmNlT3JNaW5PdXRBbW91bnQiDSR0MDMzMDg1MzMyMTUiCmZlZVBheW1lbnQiD2tCb29zdGluZ0NvbmZpZyINaWR4Q2ZnQXNzZXRJZCIJd3hBc3NldElkIhNhbW91bnRBc3NldFZlcmlmaWVkIhJwcmljZUFzc2V0VmVyaWZpZWQiDXJlc3VtcHRpb25GZWUiFGxwQXNzZXRCYWxhbmNlQmVmb3JlIglhdXRvU3Rha2UiA3B1dCILYmFsYW5jZUlzT2siDnBvb2xTY3JpcHRIYXNoIhFhbGxvd2VkU2NyaXB0SGFzaCIIaXNTdGFibGUiDGZ1bmN0aW9uTmFtZSITbHBBc3NldEJhbGFuY2VBZnRlciISbHBBc3NldEJhbGFuY2VEaWZmIhZscEFzc2V0VHJhbnNmZXJBY3Rpb25zIhBzZXRXeEVtaXNzaW9uSW52IgJ0eCIGdmVyaWZ5Ig90YXJnZXRQdWJsaWNLZXlJAAFhAgJfXwABYgCAwtcvAAFjAAoAAWQAAAABZQABAAFmAAIAAWcCBVdBVkVTAAFoCQC5CQIJAMwIAgICJXMJAMwIAgILZXBvY2hMZW5ndGgFA25pbAUBYQABaQkAuQkCCQDMCAICBCVzJXMJAMwIAgIQZXBvY2hMZW5ndGhfX25ldwUDbmlsBQFhAQFqAQFrCQC5CQIJAMwIAgIEJXMlZAkAzAgCAgtlcG9jaExlbmd0aAkAzAgCCQCkAwEFAWsFA25pbAUBYQABbAkAuQkCCQDMCAICAiVzCQDMCAICDGN1cnJlbnRFcG9jaAUDbmlsBQFhAAFtCQC5CQIJAMwIAgICJXMJAMwIAgIIbWF4RGVwdGgFA25pbAUBYQABbgkAuQkCCQDMCAICAiVzCQDMCAICDXJlc3VtcHRpb25GZWUFA25pbAUBYQABbwkAuQkCCQDMCAICAiVzCQDMCAICH3ZvdGluZ0VtaXNzaW9uQ2FuZGlkYXRlQ29udHJhY3QFA25pbAUBYQABcAkAuQkCCQDMCAICAiVzCQDMCAICGnZvdGluZ0VtaXNzaW9uUmF0ZUNvbnRyYWN0BQNuaWwFAWEAAXEJALkJAgkAzAgCAgIlcwkAzAgCAg9mYWN0b3J5Q29udHJhY3QFA25pbAUBYQABcgkAuQkCCQDMCAICAiVzCQDMCAICEGJvb3N0aW5nQ29udHJhY3QFA25pbAUBYQABcwkAuQkCCQDMCAICAiVzCQDMCAICD3N0YWtpbmdDb250cmFjdAUDbmlsBQFhAAF0CQC5CQIJAMwIAgICJXMJAMwIAgITYXNzZXRzU3RvcmVDb250cmFjdAUDbmlsBQFhAAF1CQC5CQIJAMwIAgICJXMJAMwIAgIRZmluYWxpemF0aW9uU3RhZ2UFA25pbAUBYQABdgkAuQkCCQDMCAICAiVzCQDMCAICCG5leHRQb29sBQNuaWwFAWEAAXcJALkJAgkAzAgCAgIlcwkAzAgCAghuZXh0VXNlcgUDbmlsBQFhAAF4CQC5CQIJAMwIAgICJXMJAMwIAgILc3RhcnRIZWlnaHQFA25pbAUBYQABeQkAuQkCCQDMCAICAiVzCQDMCAICDmN1cnJlbnRFcG9jaFVpBQNuaWwFAWEAAXoJALkJAgkAzAgCAgIlcwkAzAgCAg1zdGFydEhlaWdodFVpBQNuaWwFAWEAAUEJALkJAgkAzAgCAgIlcwkAzAgCAgVmb3JjZQUDbmlsBQFhAQFCAAIXJXNfX2FsbG93ZWRMcFNjcmlwdEhhc2gBAUMAAh0lc19fYWxsb3dlZExwU3RhYmxlU2NyaXB0SGFzaAEBRAEBawkAuQkCCQDMCAICBCVzJWQJAMwIAgILc3RhcnRIZWlnaHQJAMwIAgkApAMBBQFrBQNuaWwFAWEBAUUBAWsJALkJAgkAzAgCAgQlcyVkCQDMCAICCWZpbmFsaXplZAkAzAgCCQCkAwEFAWsFA25pbAUBYQEBRgEBRwQBSAUBRwQBSQgFAUgCXzEEAUoIBQFIAl8yCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICBmluTGlzdAkAzAgCBQFJCQDMCAIFAUoFA25pbAUBYQEBSwIBRwFrBAFMBQFHBAFJCAUBTAJfMQQBSggFAUwCXzIJALkJAgkAzAgCAgglcyVzJXMlZAkAzAgCAhRpbnN1ZmZpY2llbnRCYWxhbmNlcwkAzAgCBQFJCQDMCAIFAUoJAMwIAgkApAMBBQFrBQNuaWwFAWEBAU0CAU4BawkAuQkCCQDMCAICBiVzJXMlZAkAzAgCAgR1c2VkCQDMCAIJAKUIAQUBTgkAzAgCCQCkAwEFAWsFA25pbAUBYQEBTwMBRwFOAWsEAVAFAUcEAUkIBQFQAl8xBAFKCAUBUAJfMgkAuQkCCQDMCAICCiVzJXMlcyVzJWQJAMwIAgIEdm90ZQkAzAgCBQFJCQDMCAIFAUoJAMwIAgkApQgBBQFOCQDMCAIJAKQDAQUBawUDbmlsBQFhAQFRAgFHAWsEAVIFAUcEAUkIBQFSAl8xBAFKCAUBUgJfMgkAuQkCCQDMCAICCCVzJXMlcyVkCQDMCAICDHZvdGluZ1Jlc3VsdAkAzAgCBQFJCQDMCAIFAUoJAMwIAgkApAMBBQFrBQNuaWwFAWEBAVMCAVQBawkAuQkCCQDMCAICBiVzJXMlZAkAzAgCAhJ2b3RpbmdSZXN1bHRTdGFrZWQJAMwIAgUBVAkAzAgCCQCkAwEFAWsFA25pbAUBYQEBVQIBRwFrBAFWBQFHBAFJCAUBVgJfMQQBSggFAVYCXzIJALkJAgkAzAgCAgglcyVzJXMlZAkAzAgCAglwb29sU2hhcmUJAMwIAgUBSQkAzAgCBQFKCQDMCAIJAKQDAQUBawUDbmlsBQFhAQFXAQFrCQC5CQIJAMwIAgIEJXMlZAkAzAgCAgp0b3RhbFZvdGVzCQDMCAIJAKQDAQUBawUDbmlsBQFhAQFYAgFUAVkJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIGc3Rha2VkCQDMCAIFAVkJAMwIAgUBVAUDbmlsBQFhAQFaAQJhYQkAuQkCCQDMCAICFXZvdGluZ19lbWlzc2lvbi5yaWRlOgkAzAgCBQJhYQUDbmlsAgEgAQJhYgECYWEJAAIBCQEBWgEFAmFhAQJhYwMBTgJhZAJhZQQCYWYJAQFaAQkAuQkCCQDMCAICCm1hbmRhdG9yeSAJAMwIAgkApQgBBQFOCQDMCAICAS4JAMwIAgUCYWQJAMwIAgIPIGlzIG5vdCBkZWZpbmVkBQNuaWwCAAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCBAJhZwUCYWUDCQABAgUCYWcCBlN0cmluZwQCYWgFAmFnCQCdCAIFAU4FAmFkAwkAAQIFAmFnAgNJbnQEAmFpBQJhZwkAmggCBQFOBQJhZAkBAmFiAQISaW52YWxpZCBlbnRyeSB0eXBlBQJhZgECYWoCAU4CYWQKAAJhawkBAmFjAwUBTgUCYWQCAAMJAAECBQJhawIGU3RyaW5nBQJhawkAAgEJAKwCAgkAAwEFAmFrAhsgY291bGRuJ3QgYmUgY2FzdCB0byBTdHJpbmcBAmFsAgFOAmFkCgACYWsJAQJhYwMFAU4FAmFkAAADCQABAgUCYWsCA0ludAUCYWsJAAIBCQCsAgIJAAMBBQJhawIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50AQJhbQEBRwkArAICCQCsAgIIBQFHAl8xBQFhCAUBRwJfMgECYW4BAmFoBAJhbwkAtQkCBQJhaAUBYQMJAAACCQCQAwEFAmFvAAIJAJQKAgkAkQMCBQJhbwAACQCRAwIFAmFvAAEJAQJhYgECE2ludmFsaWQgcG9vbCBzdHJpbmcAAmFwCQERQGV4dHJOYXRpdmUoMTA2MikBCQECYWoCBQR0aGlzBQFxAAJhcQAKAQJhcgACESVzX19mYWN0b3J5Q29uZmlnAQJhcwECYXQJALUJAgkBAmFqAgUCYXQJAQJhcgAFAWEBAmF1AQJhdgkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJhdgUCYXEBAmF3AQJheAMJAAACBQJheAUBZwUEdW5pdAkA2QQBBQJheAECYXkBAmF4AwkAAAIFAmF4BQR1bml0BQFnCQDYBAEJAQV2YWx1ZQEFAmF4AQJhegIBSQFKBAJhQQoAAmFrCQD8BwQFAmFwAhBwb29sSW5mb1JFQURPTkxZCQDMCAIFAUkJAMwIAgUBSgUDbmlsBQNuaWwDCQABAgUCYWsCFShBZGRyZXNzLCBCeXRlVmVjdG9yKQUCYWsFBHVuaXQFAmFBAQJhQgIBSQFKCgECYUMBAmFECQCsAgICKCVzJXMlc19fbWFwcGluZ3NfX2Jhc2VBc3NldDJpbnRlcm5hbElkX18FAmFECgECYUUCAmFGAmFHCQCsAgIJAKwCAgkArAICCQCsAgICCiVkJWQlcyVzX18JAKQDAQUCYUYCAl9fCQCkAwEFAmFHAiNfX21hcHBpbmdzX19wb29sQXNzZXRzMlBvb2xDb250cmFjdAoBAmFIAQJhSQkArAICCQCsAgICCCVzJXMlc19fBQJhSQIgX19tYXBwaW5nc19fcG9vbENvbnRyYWN0MkxwQXNzZXQEAmFKCQECYWwCBQJhcAkBAmFDAQUBSQQCYUsJAQJhbAIFAmFwCQECYUMBBQFKBAJhSQkBAmFqAgUCYXAJAQJhRQIFAmFKBQJhSwQCYUwJAQJhagIFAmFwCQECYUgBBQJhSQUCYUwBAmFNAQFHBAJhTgUBRwQBSQgFAmFOAl8xBAFKCAUCYU4CXzIKAAJhawkA/AcEBQJhcAIYY2hlY2tXeEVtaXNzaW9uUG9vbExhYmVsCQDMCAIFAUkJAMwIAgUBSgUDbmlsBQNuaWwDCQABAgUCYWsCB0Jvb2xlYW4FAmFrCQACAQkArAICCQADAQUCYWsCHCBjb3VsZG4ndCBiZSBjYXN0IHRvIEJvb2xlYW4BAmFPAAQCYXYJAQJhcwEFAmFwBAJhUAkBAmF1AQUCYXYJAPwHBAUCYVACB2RlcG9zaXQFA25pbAUDbmlsAAJhUQIFcG9vbHMBAmFSAQFHBAJhUwUBRwQBSQgFAmFTAl8xBAFKCAUCYVMCXzIJALkJAgkAzAgCAgV2b3RlcwkAzAgCBQFJCQDMCAIFAUoFA25pbAUBYQECYVQBAmFVBAJhVgMJAAACBQJhVQUCYVECBCVzJXMCCCVzJXMlcyVzCQC5CQIJAMwIAgUCYVYJAMwIAgUCYVUJAMwIAgIEaGVhZAUDbmlsBQFhAQJhVwECYVUEAmFWAwkAAAIFAmFVBQJhUQIEJXMlcwIIJXMlcyVzJXMJALkJAgkAzAgCBQJhVgkAzAgCBQJhVQkAzAgCAgRzaXplBQNuaWwFAWEBAmFYAgJhVQJhWQQCYVYDCQAAAgUCYVUFAmFRAgglcyVzJXMlcwIKJXMlcyVzJXMlcwkAuQkCCQDMCAIFAmFWCQDMCAIFAmFVCQDMCAIFAmFZCQDMCAICBHByZXYFA25pbAUBYQECYVoCAmFVAmFZBAJhVgMJAAACBQJhVQUCYVECCCVzJXMlcyVzAgolcyVzJXMlcyVzCQC5CQIJAMwIAgUCYVYJAMwIAgUCYVUJAMwIAgUCYVkJAMwIAgIEbmV4dAUDbmlsBQFhAQJiYQICYVUCYVkEAmJiCQCdCAIFBHRoaXMJAQJhVAEFAmFVBAJiYwkAnQgCBQR0aGlzCQECYVgCBQJhVQUCYVkEAmJkCQCdCAIFBHRoaXMJAQJhWgIFAmFVBQJhWQMDCQAAAgUCYVkJAQt2YWx1ZU9yRWxzZQIFAmJiAgAGCQECIT0CBQJiYwUEdW5pdAYJAQIhPQIFAmJkBQR1bml0AQJiZQICYVUCYVkEAmJiCQCdCAIFBHRoaXMJAQJhVAEFAmFVBAJiZgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQECYVcBBQJhVQAABAJiZwMJAQEhAQkBAmJhAgUCYVUFAmFZBgkBAmFiAQILTm9kZSBleGlzdHMDCQAAAgUCYmcFAmJnCQDOCAIJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFXAQUCYVUJAGQCBQJiZgABBQNuaWwDCQECIT0CBQJiYgUEdW5pdAkAzAgCCQELU3RyaW5nRW50cnkCCQECYVoCBQJhVQUCYVkJAQV2YWx1ZQEFAmJiCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhWAIFAmFVCQEFdmFsdWUBBQJiYgUCYVkFA25pbAUDbmlsCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhVAEFAmFVBQJhWQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJiaAICYVUCYVkEAmJiCQCdCAIFBHRoaXMJAQJhVAEFAmFVBAJiZgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQECYVcBBQJhVQAABAJiYwkAnQgCBQR0aGlzCQECYVgCBQJhVQUCYVkEAmJkCQCdCAIFBHRoaXMJAQJhWgIFAmFVBQJhWQkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYVcBBQJhVQkAZQIFAmJmAAEFA25pbAMDCQECIT0CBQJiYwUEdW5pdAkBAiE9AgUCYmQFBHVuaXQHCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhWgIFAmFVCQEFdmFsdWUBBQJiYwkBBXZhbHVlAQUCYmQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFYAgUCYVUJAQV2YWx1ZQEFAmJkCQEFdmFsdWUBBQJiYwkAzAgCCQELRGVsZXRlRW50cnkBCQECYVgCBQJhVQUCYVkJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmFaAgUCYVUFAmFZBQNuaWwDCQECIT0CBQJiZAUEdW5pdAkAzAgCCQELU3RyaW5nRW50cnkCCQECYVQBBQJhVQkBBXZhbHVlAQUCYmQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmFaAgUCYVUFAmFZCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhWAIFAmFVCQEFdmFsdWUBBQJiZAUDbmlsAwkBAiE9AgUCYmMFBHVuaXQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmFYAgUCYVUFAmFZCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhWgIFAmFVCQEFdmFsdWUBBQJiYwUDbmlsAwkAAAIFAmFZCQELdmFsdWVPckVsc2UCBQJiYgIACQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhVAEFAmFVBQNuaWwJAQJhYgEJAKwCAgkArAICCQCsAgICDmludmFsaWQgbm9kZTogBQJhVQIBLgUCYVkBAmJpAAIXJXNfX21hbmFnZXJWYXVsdEFkZHJlc3MBAmJqAAIUJXNfX21hbmFnZXJQdWJsaWNLZXkBAmJrAAQCYWcJAKIIAQkBAmJpAAMJAAECBQJhZwIGU3RyaW5nBAJibAUCYWcJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmJsBQR0aGlzAQJibQAEAmJuCQECYmsABAJhZwkAnQgCBQJibgkBAmJqAAMJAAECBQJhZwIGU3RyaW5nBAJibAUCYWcJANkEAQUCYmwDCQABAgUCYWcCBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgECYm8BAmJwBAJhZwkBAmJtAAMJAAECBQJhZwIKQnl0ZVZlY3RvcgQCYnEFAmFnCQAAAggFAmJwD2NhbGxlclB1YmxpY0tleQUCYnEDCQABAgUCYWcCBFVuaXQJAAACCAUCYnAGY2FsbGVyBQR0aGlzCQACAQILTWF0Y2ggZXJyb3IBAmJyAQJicAMJAQJibwEFAmJwBgkAAgECEXBlcm1pc3Npb24gZGVuaWVkAQJicwECYnADCQAAAggFAmJwBmNhbGxlcgUEdGhpcwYJAAIBAhFwZXJtaXNzaW9uIGRlbmllZBMCYnABGGdldFVzZXJHd3hBbW91bnRBdEhlaWdodAICYnQCYnUEAmJ2CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkBAmFqAgUEdGhpcwUBcgkBAVoBAiFpbnZhbGlkIGJvb3N0aW5nIGNvbnRyYWN0IGFkZHJlc3MJAJQKAgUDbmlsCgACYWsJAPwHBAUCYnYCIGdldFVzZXJHd3hBbW91bnRBdEhlaWdodFJFQURPTkxZCQDMCAIFAmJ0CQDMCAIFAmJ1BQNuaWwFA25pbAMJAAECBQJhawIDSW50BQJhawkAAgEJAKwCAgkAAwEFAmFrAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQCYnABC2NvbnN0cnVjdG9yBQJhcAJidwJieAJieQJiegQCYkEJAMwIAgkBAmJyAQUCYnAJAMwIAgMJAQIhPQIJAKYIAQUCYXAFBHVuaXQGAiBpbnZhbGlkIGZhY3RvcnkgY29udHJhY3QgYWRkcmVzcwkAzAgCAwkBAiE9AgkApggBBQJidwUEdW5pdAYCMmludmFsaWQgdm90aW5nIGVtaXNzaW9uIGNhbmRpZGF0ZSBjb250cmFjdCBhZGRyZXNzCQDMCAIDCQECIT0CCQCmCAEFAmJ4BQR1bml0BgIhaW52YWxpZCBib29zdGluZyBjb250cmFjdCBhZGRyZXNzCQDMCAIDCQECIT0CCQCmCAEFAmJ5BQR1bml0BgIgaW52YWxpZCBzdGFraW5nIGNvbnRyYWN0IGFkZHJlc3MJAMwIAgMJAGYCBQJiegAABgkBAmFiAQIUaW52YWxpZCBlcG9jaCBsZW5ndGgFA25pbAMJAAACBQJiQQUCYkEJAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCBQFxBQJhcAkAzAgCCQELU3RyaW5nRW50cnkCBQFvBQJidwkAzAgCCQELU3RyaW5nRW50cnkCBQFyBQJieAkAzAgCCQELU3RyaW5nRW50cnkCBQFzBQJieQkAzAgCCQEMSW50ZWdlckVudHJ5AgUBaAUCYnoFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJicAEGY3JlYXRlAgFJAUoEAmJBCQDMCAIDCQAAAgkA2AQBCAgFAmJwBmNhbGxlcgVieXRlcwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzBQFvAgAGCQECYnIBBQJicAUDbmlsAwkAAAIFAmJBBQJiQQQBRwkAlAoCBQFJBQFKBAJiQgkAzggCCQDMCAIJAQxCb29sZWFuRW50cnkCCQEBRgEFAUcGBQNuaWwJAQJiZQIFAmFRCQECYW0BBQFHBAJiQwkAAAIJAJoIAgUEdGhpcwUBbAUEdW5pdAQCYkQDBQJiQwQBawAACQDMCAIJAQxJbnRlZ2VyRW50cnkCBQFsBQFrCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBRAEFAWsFBmhlaWdodAkAzAgCCQEMSW50ZWdlckVudHJ5AgUBeAUGaGVpZ2h0CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQF5BQFrCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQF6BQZoZWlnaHQFA25pbAUDbmlsCQCUCgIJAM4IAgUCYkIFAmJEBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJwAQR2b3RlAwFJAUoCYkUEAUcJAJQKAgUBSQUBSgQBawkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQFsAAAEAmJGCQECYWwCBQR0aGlzCQEBRAEFAWsEAmJ6CQECYWwCBQR0aGlzBQFoBAJiRwkAZAIFAmJGBQJiegQCYkgJAJoIAgUEdGhpcwUBdQQCYkkJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAU0CCAUCYnAGY2FsbGVyBQFrAAAEAmJKCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQFPAwUBRwgFAmJwBmNhbGxlcgUBawAABAJiSwkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEBUQIFAUcFAWsAAAQCYkwJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAVcBBQFrAAAEAmJNCgACYWsJAPwHBAUEdGhpcwIYZ2V0VXNlckd3eEFtb3VudEF0SGVpZ2h0CQDMCAIJANgEAQgIBQJicAZjYWxsZXIFYnl0ZXMJAMwIAgUCYkcFA25pbAUDbmlsAwkAAQIFAmFrAgNJbnQFAmFrCQACAQkArAICCQADAQUCYWsCGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAQCYk4JAGUCBQJiTQUCYkkEAmJPCQBkAgUCYkoFAmJFBAJiUAkBAmFNAQUBRwQCYkEJAMwIAgMJAQIhPQIJAKAIAQkBAUYBBQFHBQR1bml0BgkBAmFiAQIOaW52YWxpZCBhc3NldHMJAMwIAgMJAGYCBQJiRwUGaGVpZ2h0BgkBAmFiAQIOaW52YWxpZCBoZWlnaHQJAMwIAgMJAAACBQJiSAUEdW5pdAYJAQJhYgECGGZpbmFsaXphdGlvbiBpbiBwcm9ncmVzcwkAzAgCAwkAZgIFAmJNAAAGCQECYWIBAhN5b3UgZG8gbm90IGhhdmUgZ1dYCQDMCAIDAwkAZgIFAmJFAAAJAGcCBQJiTgUCYkUHBgkBAmFiAQIOaW52YWxpZCBhbW91bnQJAMwIAgMFAmJQBgkBAmFiAQIdcG9vbCBoYXNuJ3QgV1hfRU1JU1NJT04gbGFiZWwFA25pbAMJAAACBQJiQQUCYkEEAmJRCQECYVIBBQFHBAFZCQClCAEIBQJicAZjYWxsZXIEAmJSAwkBAmJhAgUCYlEFAVkFA25pbAkBAmJlAgUCYlEFAVkJAJQKAgkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBTQIIBQJicAZjYWxsZXIFAWsJAGQCBQJiSQUCYkUJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFPAwUBRwgFAmJwBmNhbGxlcgUBawUCYk8JAMwIAgkBDEludGVnZXJFbnRyeQIJAQFRAgUBRwUBawkAZAIFAmJLBQJiRQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVcBBQFrCQBkAgUCYkwFAmJFBQNuaWwFAmJSBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJwAQpjYW5jZWxWb3RlAgFJAUoEAUcJAJQKAgUBSQUBSgQBawkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQFsAAAEAmJGCQECYWwCBQR0aGlzCQEBRAEFAWsEAmJ6CQECYWwCBQR0aGlzBQFoBAJiRwkAZAIFAmJGBQJiegQCYkgJAJoIAgUEdGhpcwUBdQQCYkkJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAU0CCAUCYnAGY2FsbGVyBQFrAAAEAmJKCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQFPAwUBRwgFAmJwBmNhbGxlcgUBawAABAJiSwkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEBUQIFAUcFAWsAAAQCYkwJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAVcBBQFrAAAEAmJBCQDMCAIDCQECIT0CCQCgCAEJAQFGAQUBRwUEdW5pdAYJAQJhYgECDmludmFsaWQgYXNzZXRzCQDMCAIDCQBmAgUCYkcFBmhlaWdodAYJAQJhYgECDmludmFsaWQgaGVpZ2h0CQDMCAIDCQAAAgUCYkgFBHVuaXQGCQECYWIBAhhmaW5hbGl6YXRpb24gaW4gcHJvZ3Jlc3MJAMwIAgMJAGYCBQJiSgAABgkBAmFiAQIHbm8gdm90ZQUDbmlsAwkAAAIFAmJBBQJiQQQCYlEJAQJhUgEFAUcEAVkJAKUIAQgFAmJwBmNhbGxlcgkAlAoCCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFNAggFAmJwBmNhbGxlcgUBawkAlgMBCQDMCAIJAGUCBQJiSQUCYkoJAMwIAgAABQNuaWwJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAU8DBQFHCAUCYnAGY2FsbGVyBQFrCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBUQIFAUcFAWsJAGUCBQJiSwUCYkoJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFXAQUBawkAZQIFAmJMBQJiSgUDbmlsCQECYmgCBQJiUQUBWQUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJicAEOc2V0RXBvY2hMZW5ndGgBAmJTBAJiQQkAzAgCCQECYnIBBQJicAkAzAgCAwkAZgIFAmJTAAAGCQECYWIBAhRpbnZhbGlkIGVwb2NoIGxlbmd0aAUDbmlsAwkAAAIFAmJBBQJiQQkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQFpBQJiUwUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJwAQtzZXRNYXhEZXB0aAECYlQEAmJBCQDMCAIJAQJicgEFAmJwCQDMCAIDCQBmAgUCYlQAAAYJAQJhYgECEWludmFsaWQgbWF4IGRlcHRoBQNuaWwDCQAAAgUCYkEFAmJBCQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIFAW0FAmJUBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYnABGnByb2Nlc3NQb29sQmFsYW5jZUlOVEVSTkFMAQJiVQQCYlYJAQJicwEFAmJwAwkAAAIFAmJWBQJiVgQBawkBAmFsAgUEdGhpcwUBbAQCYlcJAGUCBQFrAAEEAUcJAQJhbgEFAmJVBAJiWAUBRwQBSQgFAmJYAl8xBAFKCAUCYlgCXzIEAmFMCQECYUICBQFJBQFKBAJiWQoAAmFrCQD8BwQFAmFwAgxjaGVja0JhbGFuY2UJAMwIAgUCYUwFA25pbAUDbmlsAwkAAQIFAmFrAgdCb29sZWFuBQJhawkAAgEJAKwCAgkAAwEFAmFrAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuBAJiWgkBASEBCQELdmFsdWVPckVsc2UCCQCbCAIFBHRoaXMJAQFLAgUBRwkAZQIFAmJXAAEHBAJjYQMJAQEhAQUCYlkDCQEBIQEFAmJaBAJjYgkA/AcEBQJhcAIZZGVsZXRlV3hFbWlzc2lvblBvb2xMYWJlbAkAzAgCBQFJCQDMCAIFAUoFA25pbAUDbmlsAwkAAAIFAmNiBQJjYgQCY2MJAPwHBAUCYXACDG1vZGlmeVdlaWdodAkAzAgCBQJhTAkAzAgCAAAFA25pbAUDbmlsAwkAAAIFAmNjBQJjYwQCY2QICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAQJhegIFAUkFAUoJAQFaAQIOaW52YWxpZCBhc3NldHMCXzEEAmNlAAMEAmNmCQD8BwQFAmFwAgptYW5hZ2VQb29sCQDMCAIJAKUIAQUCY2QJAMwIAgUCY2UFA25pbAUDbmlsAwkAAAIFAmNmBQJjZgQCY2cJAM4IAgkAzAgCCQELRGVsZXRlRW50cnkBCQEBRgEFAUcFA25pbAkBAmJoAgUCYVEJAQJhbQEFAUcJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVUCBQFHBQJiVwAABQNuaWwFAmNnCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQDMCAIJAQxCb29sZWFuRW50cnkCCQEBSwIFAUcFAmJXBgUDbmlsBQNuaWwJAJQKAgUCY2EFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYnABE3Byb2Nlc3NWb3RlSU5URVJOQUwCAmJVAVkEAmJWCQECYnMBBQJicAMJAAACBQJiVgUCYlYEAmJ0CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQUBWQkBAVoBCQCsAgICKnByb2Nlc3NWb3RlSU5URVJOQUw6IGludmFsaWQgdXNlciBhZGRyZXNzIAUBWQQBawkBAmFsAgUEdGhpcwUBbAQCYlcJAGUCBQFrAAEEAmJ6CQECYWwCBQR0aGlzBQFoBAJiRgkBAmFsAgUEdGhpcwkBAUQBBQFrBAJiRwkAZAIFAmJGBQJiegQCY2gJAQJhbAIFBHRoaXMJAQFEAQUCYlcEAmNpCQECYWwCBQR0aGlzCQEBagEFAmJXBAJjagkAZAIFAmNoBQJjaQQCY2sDCQBnAgUCYlcAAAYJAQJhYgECK3Byb2Nlc3NWb3RlSU5URVJOQUw6IGludmFsaWQgcHJldmlvdXMgZXBvY2gDCQAAAgUCY2sFAmNrBAFHCQECYW4BBQJiVQQCY2wFAUcEAUkIBQJjbAJfMQQBSggFAmNsAl8yBAJiTQoAAmFrCQD8BwQFBHRoaXMCGGdldFVzZXJHd3hBbW91bnRBdEhlaWdodAkAzAgCBQFZCQDMCAIFAmJHBQNuaWwFA25pbAMJAAECBQJhawIDSW50BQJhawkAAgEJAKwCAgkAAwEFAmFrAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQEAmNtCgACYWsJAPwHBAUEdGhpcwIYZ2V0VXNlckd3eEFtb3VudEF0SGVpZ2h0CQDMCAIFAVkJAMwIAgUCY2oFA25pbAUDbmlsAwkAAQIFAmFrAgNJbnQFAmFrCQACAQkArAICCQADAQUCYWsCGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAQCYkwJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBAVcBBQFrAAAEAmNuCQELdmFsdWVPckVsc2UCCQCfCAEJAQFRAgUBRwUBawAABAJjbwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCfCAEJAQFPAwUBRwUCYnQFAmJXCQEBWgEJAKwCAgkArAICCQCsAgIJAKwCAgIUcHJvY2Vzc1ZvdGVJTlRFUk5BTCAFAmJVAgEgBQFZAhI6IG5vIHByZXZpb3VzIHZvdGUEAmJJCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQFNAgUCYnQFAWsAAAQBVAkBAmFCAgUBSQUBSgQCY3AJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBAVMCBQFUBQJiVwAABAJieQkBEUBleHRyTmF0aXZlKDEwNjIpAQkBAmFqAgUEdGhpcwUBcwQCY3EJAQt2YWx1ZU9yRWxzZQIJAJoIAgUCYnkJAQFYAgUBVAUBWQAABAJjcgMJAAACBQJjcQAABQNuaWwJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFTAgUBVAUCYlcJAGQCBQJjcAUCY28FA25pbAQCYUwJAQJhQgIFAUkFAUoEAmJPAwkAZgIFAmNtAAAJAGsDBQJjbwUCYk0FAmNtAAAEAmNhAwkAZgIFAmJPAAAJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFPAwUBRwUCYnQFAWsFAmJPCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBVwEFAWsJAGQCBQJiTAUCYk8JAMwIAgkBDEludGVnZXJFbnRyeQIJAQFRAgUBRwUBawkAZAIFAmNuBQJiTwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAU0CBQJidAUBawkAZAIFAmJJBQJiTwUDbmlsCQECYmgCCQECYVIBBQFHBQFZCQCUCgIJAM4IAgUCY2EFAmNyBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJwARNwcm9jZXNzUG9vbElOVEVSTkFMAgJiVQJjcwQCYlYJAQJicwEFAmJwAwkAAAIFAmJWBQJiVgQCY3QEAmN1CQECYWwCBQR0aGlzBQFsAwUCY3MFAmN1CQBlAgUCY3UAAQQCY2sDCQBnAgUCY3QAAAYJAQJhYgECKXByb2Nlc3NQb29sSU5URVJOQUw6IGludmFsaWQgdGFyZ2V0IGVwb2NoAwkAAAIFAmNrBQJjawQBRwkBAmFuAQUCYlUEAmN2BQFHBAFJCAUCY3YCXzEEAUoIBQJjdgJfMgQCYnkJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQJhagIFBHRoaXMFAXMEAmFMCQECYUICBQFJBQFKBAJjdwoAAmFrCQD8BwQFAmJ5AhJ1c2Vyc0xpc3RUcmF2ZXJzYWwJAMwIAgUCYUwFA25pbAUDbmlsAwkAAQIFAmFrAgdCb29sZWFuBQJhawkAAgEJAKwCAgkAAwEFAmFrAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuAwkAAAIFAmN3BQJjdwMFAmN3CQCUCgIFA25pbAYEAmN4CQERQGV4dHJOYXRpdmUoMTA2MikBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUCYXAFAXQCHWludmFsaWQgYXNzZXRzIHN0b3JlIGNvbnRyYWN0BAJiTAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEBVwEFAmN0AAAEAmNuCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQFRAgUBRwUCY3QAAAQCY3kDCQAAAgUCYkwAAAAACQBrAwUCY24FAWIFAmJMBAJjYwkA/AcEBQJhcAIMbW9kaWZ5V2VpZ2h0CQDMCAIFAmFMCQDMCAIFAmN5BQNuaWwFA25pbAMJAAACBQJjYwUCY2MJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVUCBQFHBQJjdAUCY3kFA25pbAcJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYnABDmZpbmFsaXplSGVscGVyAAQCY3MJAQt2YWx1ZU9yRWxzZQIJAKAIAQUBQQcEAWsJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUBbAAABAJjegkAZQIFAWsAAQQCYkYJAQJhbAIFBHRoaXMJAQFEAQUBawQCYnoJAQJhbAIFBHRoaXMFAWgEAmJHCQBkAgUCYkYFAmJ6BAJiSAkAmggCBQR0aGlzBQF1AwMDCQBnAgUGaGVpZ2h0BQJiRwkAAAIFAmJIBQR1bml0BwkBASEBBQJjcwcEAmNBCQBkAgUBawABBAJjQgkAmggCBQR0aGlzBQFpBAJjQwQCYWcFAmNCAwkAAQIFAmFnAgNJbnQEAmJTBQJhZwkAzAgCCQEMSW50ZWdlckVudHJ5AgUBaAUCYlMJAMwIAgkBC0RlbGV0ZUVudHJ5AQUBaQUDbmlsAwkAAQIFAmFnAgRVbml0BQNuaWwJAAIBAgtNYXRjaCBlcnJvcgkAlAoCCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFEAQUCY0EFBmhlaWdodAkAzAgCCQEMSW50ZWdlckVudHJ5AgUBeAUGaGVpZ2h0CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQFsBQJjQQkAzAgCCQEMSW50ZWdlckVudHJ5AgUBdQUBZAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAWoBBQFrBQJiegUDbmlsBQJjQwYDAwUCY3MJAAACBQJiSAUEdW5pdAcJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUBdQUBZgUDbmlsBgMJAAACBQJiSAUEdW5pdAkAlAoCBQNuaWwHAwkAAAIFAmJIBQFkBAJjRAkAoggBBQF2BAJhZwUCY0QDCQABAgUCYWcCBFVuaXQEAmNFCQCiCAEJAQJhVAEFAmFRAwkAAQIFAmNFAgRVbml0CQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIFAXUFAWUJAMwIAgkBC0RlbGV0ZUVudHJ5AQUBdgUDbmlsBgMJAAECBQJjRQIGU3RyaW5nBAJjRgUCY0UJAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCBQF2BQJjRgUDbmlsBgkAAgECC01hdGNoIGVycm9yAwkAAQIFAmFnAgZTdHJpbmcEAmJVBQJhZwQCY0cJAKIIAQkBAmFaAgUCYVEFAmJVAwkAAAIFAmNHBQJjRwQCY3cJAPwHBAUEdGhpcwIacHJvY2Vzc1Bvb2xCYWxhbmNlSU5URVJOQUwJAMwIAgUCYlUFA25pbAUDbmlsAwkAAAIFAmN3BQJjdwQCY0UFAmNHAwkAAQIFAmNFAgRVbml0CQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIFAXUFAWUJAMwIAgkBC0RlbGV0ZUVudHJ5AQUBdgUDbmlsBgMJAAECBQJjRQIGU3RyaW5nBAJjRgUCY0UJAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCBQF2BQJjRgUDbmlsBgkAAgECC01hdGNoIGVycm9yCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQILTWF0Y2ggZXJyb3IDCQAAAgUCYkgFAWUEAmNECQCiCAEFAXYEAmNICQCiCAEFAXcEAmFnBQJjRAMJAAECBQJhZwIEVW5pdAQCY0UJAKIIAQkBAmFUAQUCYVEDCQABAgUCY0UCBFVuaXQJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUBdQUBZgkAzAgCCQELRGVsZXRlRW50cnkBBQF2CQDMCAIJAQtEZWxldGVFbnRyeQEFAXcFA25pbAYDCQABAgUCY0UCBlN0cmluZwQCY0kFAmNFCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgUBdgUCY0kFA25pbAYJAAIBAgtNYXRjaCBlcnJvcgMJAAECBQJhZwIGU3RyaW5nBAJiVQUCYWcEAUcJAQJhbgEFAmJVBAJjSgQCY0UFAmNIAwkAAQIFAmNFAgRVbml0CQCiCAEJAQJhVAEJAQJhUgEFAUcDCQABAgUCY0UCBlN0cmluZwQCY0sFAmNFBAJjTAkAoggBCQECYVoCCQECYVIBBQFHBQJjSwMJAAACBQJjTAUCY0wEAmNNCQD8BwQFBHRoaXMCE3Byb2Nlc3NWb3RlSU5URVJOQUwJAMwIAgUCYlUJAMwIAgUCY0sFA25pbAUDbmlsAwkAAAIFAmNNBQJjTQUCY0wJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAgtNYXRjaCBlcnJvcgQCY0UFAmNKAwkAAQIFAmNFAgRVbml0BAJjRwkAoggBCQECYVoCBQJhUQUCYlUEAmNOBQJjRwMJAAECBQJjTgIEVW5pdAkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQF1BQFmCQDMCAIJAQtEZWxldGVFbnRyeQEFAXYJAMwIAgkBC0RlbGV0ZUVudHJ5AQUBdwUDbmlsBgMJAAECBQJjTgIGU3RyaW5nBAJibAUCY04JAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCBQF2BQJibAkAzAgCCQELRGVsZXRlRW50cnkBBQF3BQNuaWwGCQACAQILTWF0Y2ggZXJyb3IDCQABAgUCY0UCBlN0cmluZwQCY08FAmNFCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgUBdwUCY08FA25pbAYJAAIBAgtNYXRjaCBlcnJvcgkAAgECC01hdGNoIGVycm9yAwkAAAIFAmJIBQFmBAJjRAkAoggBBQF2BAJhZwUCY0QDCQABAgUCYWcCBFVuaXQEAmNFCQCiCAEJAQJhVAEFAmFRAwkAAQIFAmNFAgRVbml0BAJjYQMFAmNzCQDMCAIJAQtEZWxldGVFbnRyeQEFAXUJAMwIAgkBC0RlbGV0ZUVudHJ5AQUBQQUDbmlsCQDMCAIJAQtEZWxldGVFbnRyeQEFAXUJAMwIAgkBDEJvb2xlYW5FbnRyeQIJAQFFAQUCY3oGCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQF5BQFrCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQF6BQJiRgUDbmlsBAJjUAkBAmFPAAMJAAACBQJjUAUCY1AJAJQKAgUCY2EGCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAwkAAQIFAmNFAgZTdHJpbmcEAmNGBQJjRQkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIFAXYFAmNGBQNuaWwGCQACAQILTWF0Y2ggZXJyb3IDCQABAgUCYWcCBlN0cmluZwQCYlUFAmFnBAJjRwkAoggBCQECYVoCBQJhUQUCYlUDCQAAAgUCY0cFAmNHBAJjdwoAAmFrCQD8BwQFBHRoaXMCE3Byb2Nlc3NQb29sSU5URVJOQUwJAMwIAgUCYlUJAMwIAgUCY3MFA25pbAUDbmlsAwkAAQIFAmFrAgdCb29sZWFuBQJhawkAAgEJAKwCAgkAAwEFAmFrAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuAwkAAAIFAmN3BQJjdwMFAmN3CQCUCgIFA25pbAYEAmNFBQJjRwMJAAECBQJjRQIEVW5pdAQCY2EDBQJjcwkAzAgCCQELRGVsZXRlRW50cnkBBQF1CQDMCAIJAQtEZWxldGVFbnRyeQEFAUEJAMwIAgkBC0RlbGV0ZUVudHJ5AQUBdgUDbmlsCQDMCAIJAQtEZWxldGVFbnRyeQEFAXUJAMwIAgkBDEJvb2xlYW5FbnRyeQIJAQFFAQUCY3oGCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQF5BQFrCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQF6BQJiRgkAzAgCCQELRGVsZXRlRW50cnkBBQF2BQNuaWwEAmNQCQECYU8AAwkAAAIFAmNQBQJjUAkAlAoCBQJjYQYJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4DCQABAgUCY0UCBlN0cmluZwQCY0YFAmNFCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgUBdgUCY0YFA25pbAYJAAIBAgtNYXRjaCBlcnJvcgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECC01hdGNoIGVycm9yCQECYWIBAhZmaW5hbGl6YXRpb24gaXMgYnJva2VuAmJwAQ9maW5hbGl6ZVdyYXBwZXIBAmNRBAJjUgkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwUBcAQCY1MKAAJhawkA/AcEBQR0aGlzAg5maW5hbGl6ZUhlbHBlcgUDbmlsBQNuaWwDCQABAgUCYWsCB0Jvb2xlYW4FAmFrCQACAQkArAICCQADAQUCYWsCHCBjb3VsZG4ndCBiZSBjYXN0IHRvIEJvb2xlYW4DCQAAAgUCY1MFAmNTAwkBASEBBQJjUwMJAAACBQJjUQAACQECYWIBAh5DdXJyZW50IHZvdGluZyBpcyBub3Qgb3ZlciB5ZXQEAmNUCQD8BwQFAmNSAghmaW5hbGl6ZQUDbmlsBQNuaWwDCQAAAgUCY1QFAmNUCQCUCgIFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgQCY1UJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUBbQUBYwMJAGYCBQJjVQUCY1EEAmNUCQD8BwQFBHRoaXMCD2ZpbmFsaXplV3JhcHBlcgkAzAgCCQBkAgUCY1EAAQUDbmlsBQNuaWwDCQAAAgUCY1QFAmNUCQCUCgIFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAlAoCBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYnABCGZpbmFsaXplAAQCY1QJAPwHBAUEdGhpcwIPZmluYWxpemVXcmFwcGVyCQDMCAIAAAUDbmlsBQNuaWwDCQAAAgUCY1QFAmNUCQCUCgIFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJicAEUY29udGFpbnNOb2RlUkVBRE9OTFkCAmFVAmFZCQCUCgIFA25pbAkBAmJhAgUCYVUFAmFZAmJwAQppbnNlcnROb2RlAgJhVQJhWQQCYlYJAQJicgEFAmJwAwkAAAIFAmJWBQJiVgkAlAoCCQECYmUCBQJhVQUCYVkFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYnABCmRlbGV0ZU5vZGUCAmFVAmFZBAJiVgkBAmJyAQUCYnADCQAAAgUCYlYFAmJWCQCUCgIJAQJiaAIFAmFVBQJhWQUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJicAEYaXNGaW5hbGl6YXRpb25JblByb2dyZXNzAAQCYkgJAJoIAgUEdGhpcwUBdQQCY1YJAQIhPQIFAmJIBQR1bml0CQCUCgIFA25pbAUCY1YCYnABCmRlbGV0ZVBvb2wCAUkBSgQCYlYDAwkAAAIIBQJicAZjYWxsZXIFAmFwBgkBAmJyAQUCYnAGCQECYWIBAhFQZXJtaXNzaW9uIGRlbmllZAMJAAACBQJiVgUCYlYEAmFVAgVwb29scwQBRwkAlAoCBQFJBQFKBAJhWQkAuQkCCQDMCAIFAUkJAMwIAgUBSgUDbmlsBQFhBAJjYQMJAQJiYQIFAmFVBQJhWQkBAmJoAgUCYVUFAmFZBQNuaWwJAM4IAgkAzAgCCQELRGVsZXRlRW50cnkBCQEBRgEFAUcFA25pbAUCY2EJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYnABBnJlc3VtZQMBSQFKAmNXBAJjWAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQECYXoCBQFJBQFKCQEBWgECDmludmFsaWQgYXNzZXRzBAJjZAgFAmNYAl8xBAJhTAgFAmNYAl8yBAJjWQkAkQMCCAUCYnAIcGF5bWVudHMAAAQCY3gJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMFAXQEAmNaAgolc19fY29uZmlnBAJkYQABBAJieAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBAmFqAgUEdGhpcwUBcgQCZGIJANkEAQkAkQMCCQC1CQIJARFAZXh0ck5hdGl2ZSgxMDUzKQIFAmJ4BQJjWgUBYQUCZGEEAmRjCgACYWsJAPwHBAUCY3gCEmlzVmVyaWZpZWRSRUFET05MWQkAzAgCBQFJBQNuaWwFA25pbAMJAAECBQJhawIHQm9vbGVhbgUCYWsJAAIBCQCsAgIJAAMBBQJhawIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgQCZGQKAAJhawkA/AcEBQJjeAISaXNWZXJpZmllZFJFQURPTkxZCQDMCAIFAUoFA25pbAUDbmlsAwkAAQIFAmFrAgdCb29sZWFuBQJhawkAAgEJAKwCAgkAAwEFAmFrAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuBAJkZQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFBHRoaXMFAW4CFmludmFsaWQgcmVzdW1wdGlvbiBmZWUEAmJBCQDMCAIDCQAAAggFAmNZB2Fzc2V0SWQFAmRiBgkBAmFiAQIcaW52YWxpZCBmZWUgcGF5bWVudCBhc3NldCBpZAkAzAgCAwkAAAIIBQJjWQZhbW91bnQFAmRlBgkBAmFiAQIaaW52YWxpZCBmZWUgcGF5bWVudCBhbW91bnQJAMwIAgMDBQJkYwUCZGQHBgkBAmFiAQIeYm90aCBhc3NldHMgc2hvdWxkIGJlIHZlcmlmaWVkBQNuaWwDCQAAAgUCYkEFAmJBBAJkZgkA8AcCBQR0aGlzBQJhTAMJAAACBQJkZgUCZGYEAmRnBwQCZGgDCQAAAgkAkAMBCAUCYnAIcGF5bWVudHMAAQQCZGkKAAJhawkA/AcEBQJhcAIMY2hlY2tCYWxhbmNlCQDMCAIJAQJheQEFAmFMBQNuaWwFA25pbAMJAAECBQJhawIHQm9vbGVhbgUCYWsJAAIBCQCsAgIJAAMBBQJhawIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgMFAmRpBgkBAmFiAQIZYXNzZXRzIHNob3VsZCBiZSBhdHRhY2hlZAMJAAACCQCQAwEIBQJicAhwYXltZW50cwACBAJkagkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDxBwEFAmNkCQEBWgECHHBvb2wgYWRkcmVzcyBpcyBub3Qgc2NyaXB0ZWQEAmRrCQDbBAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQJhcAkBAUMACQEBWgECKGFsbG93ZWQgbHAgc3RhYmxlIHNjcmlwdCBoYXNoIGlzIG5vdCBzZXQEAmRsCQAAAgUCZGoFAmRrBAJkbQMFAmRsAgtwdXRPbmVUa25WMgIJcHV0T25lVGtuCQD8BwQFAmNkBQJkbQkAzAgCBQJjVwkAzAgCBQJkZwUDbmlsCQDMCAIJAJEDAggFAmJwCHBheW1lbnRzAAEFA25pbAMJAAACCQCQAwEIBQJicAhwYXltZW50cwADCQD8BwQFAmNkAgNwdXQJAMwIAgUCY1cJAMwIAgUCZGcFA25pbAkAzAgCCQCRAwIIBQJicAhwYXltZW50cwABCQDMCAIJAJEDAggFAmJwCHBheW1lbnRzAAIFA25pbAkBAmFiAQIVaW52YWxpZCBwYXltZW50cyBzaXplAwkAAAIFAmRoBQJkaAQCZG4JAPAHAgUEdGhpcwUCYUwDCQAAAgUCZG4FAmRuBAJkbwkAZQIFAmRuBQJkZgQCZHADCQBmAgUCZG8AAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUCYnAGY2FsbGVyBQJkbwUCYUwFA25pbAUDbmlsBAJkcQkA/AcEBQJhcAIWc2V0V3hFbWlzc2lvblBvb2xMYWJlbAkAzAgCBQFJCQDMCAIFAUoFA25pbAUDbmlsAwkAAAIFAmRxBQJkcQQBRwkAlAoCBQFJBQFKBAJiQgkAzggCCQDMCAIJAQxCb29sZWFuRW50cnkCCQEBRgEFAUcGBQNuaWwJAQJiZQIFAmFRCQECYW0BBQFHCQCUCgIJAM4IAgUCYkIFAmRwBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJkcgECZHMABAJkdAQCYWcJAQJibQADCQABAgUCYWcCCkJ5dGVWZWN0b3IEAmJxBQJhZwUCYnEDCQABAgUCYWcCBFVuaXQIBQJkcg9zZW5kZXJQdWJsaWNLZXkJAAIBAgtNYXRjaCBlcnJvcgkA9AMDCAUCZHIJYm9keUJ5dGVzCQCRAwIIBQJkcgZwcm9vZnMAAAUCZHSTI/2E", "height": 3066620, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: HMhuth8E4erWybLPu7ULFa7bpB7QgAw6YLn3amCMAga4 Next: BL3oJzDQxq8t8jLPudSUKH8mn4h5SHVfixt7y6njYRmi Diff:
OldNewDifferences
1313
1414 let f = 2
1515
16-let g = makeString(["%s", "epochLength"], a)
16+let g = "WAVES"
1717
18-let h = makeString(["%s%s", "epochLength__new"], a)
18+let h = makeString(["%s", "epochLength"], a)
1919
20-func i (j) = makeString(["%s%d", "epochLength", toString(j)], a)
20+let i = makeString(["%s%s", "epochLength__new"], a)
21+
22+func j (k) = makeString(["%s%d", "epochLength", toString(k)], a)
2123
2224
23-let k = makeString(["%s", "currentEpoch"], a)
25+let l = makeString(["%s", "currentEpoch"], a)
2426
25-let l = makeString(["%s", "maxDepth"], a)
27+let m = makeString(["%s", "maxDepth"], a)
2628
27-let m = makeString(["%s", "resumptionFee"], a)
29+let n = makeString(["%s", "resumptionFee"], a)
2830
29-let n = makeString(["%s", "votingEmissionCandidateContract"], a)
31+let o = makeString(["%s", "votingEmissionCandidateContract"], a)
3032
31-let o = makeString(["%s", "votingEmissionRateContract"], a)
33+let p = makeString(["%s", "votingEmissionRateContract"], a)
3234
33-let p = makeString(["%s", "factoryContract"], a)
35+let q = makeString(["%s", "factoryContract"], a)
3436
35-let q = makeString(["%s", "boostingContract"], a)
37+let r = makeString(["%s", "boostingContract"], a)
3638
37-let r = makeString(["%s", "stakingContract"], a)
39+let s = makeString(["%s", "stakingContract"], a)
3840
39-let s = makeString(["%s", "assetsStoreContract"], a)
41+let t = makeString(["%s", "assetsStoreContract"], a)
4042
41-let t = makeString(["%s", "finalizationStage"], a)
43+let u = makeString(["%s", "finalizationStage"], a)
4244
43-let u = makeString(["%s", "nextPool"], a)
45+let v = makeString(["%s", "nextPool"], a)
4446
45-let v = makeString(["%s", "nextUser"], a)
47+let w = makeString(["%s", "nextUser"], a)
4648
47-let w = makeString(["%s", "startHeight"], a)
49+let x = makeString(["%s", "startHeight"], a)
4850
49-let x = makeString(["%s", "currentEpochUi"], a)
51+let y = makeString(["%s", "currentEpochUi"], a)
5052
51-let y = makeString(["%s", "startHeightUi"], a)
53+let z = makeString(["%s", "startHeightUi"], a)
5254
53-let z = makeString(["%s", "force"], a)
55+let A = makeString(["%s", "force"], a)
5456
55-func A (j) = makeString(["%s%d", "startHeight", toString(j)], a)
57+func B () = "%s__allowedLpScriptHash"
5658
5759
58-func B (j) = makeString(["%s%d", "finalized", toString(j)], a)
60+func C () = "%s__allowedLpStableScriptHash"
5961
6062
61-func C (D) = {
62- let E = D
63- let F = E._1
64- let G = E._2
65- makeString(["%s%s%s", "inList", F, G], a)
63+func D (k) = makeString(["%s%d", "startHeight", toString(k)], a)
64+
65+
66+func E (k) = makeString(["%s%d", "finalized", toString(k)], a)
67+
68+
69+func F (G) = {
70+ let H = G
71+ let I = H._1
72+ let J = H._2
73+ makeString(["%s%s%s", "inList", I, J], a)
6674 }
6775
6876
69-func H (D,j) = {
70- let I = D
71- let F = I._1
72- let G = I._2
73- makeString(["%s%s%s%d", "insufficientBalances", F, G, toString(j)], a)
77+func K (G,k) = {
78+ let L = G
79+ let I = L._1
80+ let J = L._2
81+ makeString(["%s%s%s%d", "insufficientBalances", I, J, toString(k)], a)
7482 }
7583
7684
77-func J (K,j) = makeString(["%s%s%d", "used", toString(K), toString(j)], a)
85+func M (N,k) = makeString(["%s%s%d", "used", toString(N), toString(k)], a)
7886
7987
80-func L (D,K,j) = {
81- let M = D
82- let F = M._1
83- let G = M._2
84- makeString(["%s%s%s%s%d", "vote", F, G, toString(K), toString(j)], a)
88+func O (G,N,k) = {
89+ let P = G
90+ let I = P._1
91+ let J = P._2
92+ makeString(["%s%s%s%s%d", "vote", I, J, toString(N), toString(k)], a)
8593 }
8694
8795
88-func N (D,j) = {
89- let O = D
90- let F = O._1
91- let G = O._2
92- makeString(["%s%s%s%d", "votingResult", F, G, toString(j)], a)
96+func Q (G,k) = {
97+ let R = G
98+ let I = R._1
99+ let J = R._2
100+ makeString(["%s%s%s%d", "votingResult", I, J, toString(k)], a)
93101 }
94102
95103
96-func P (Q,j) = makeString(["%s%s%d", "votingResultStaked", Q, toString(j)], a)
104+func S (T,k) = makeString(["%s%s%d", "votingResultStaked", T, toString(k)], a)
97105
98106
99-func R (D,j) = {
100- let S = D
101- let F = S._1
102- let G = S._2
103- makeString(["%s%s%s%d", "poolShare", F, G, toString(j)], a)
107+func U (G,k) = {
108+ let V = G
109+ let I = V._1
110+ let J = V._2
111+ makeString(["%s%s%s%d", "poolShare", I, J, toString(k)], a)
104112 }
105113
106114
107-func T (j) = makeString(["%s%d", "totalVotes", toString(j)], a)
115+func W (k) = makeString(["%s%d", "totalVotes", toString(k)], a)
108116
109117
110-func U (Q,V) = makeString(["%s%s%s", "staked", V, Q], a)
118+func X (T,Y) = makeString(["%s%s%s", "staked", Y, T], a)
111119
112120
113-func W (X) = makeString(["voting_emission.ride:", X], " ")
121+func Z (aa) = makeString(["voting_emission.ride:", aa], " ")
114122
115123
116-func Y (X) = throw(W(X))
124+func ab (aa) = throw(Z(aa))
117125
118126
119-func Z (K,aa,ab) = {
120- let ac = W(makeString(["mandatory ", toString(K), ".", aa, " is not defined"], ""))
127+func ac (N,ad,ae) = {
128+ let af = Z(makeString(["mandatory ", toString(N), ".", ad, " is not defined"], ""))
121129 valueOrErrorMessage({
122- let ad = ab
123- if ($isInstanceOf(ad, "String"))
130+ let ag = ae
131+ if ($isInstanceOf(ag, "String"))
124132 then {
125- let ae = ad
126- getString(K, aa)
133+ let ah = ag
134+ getString(N, ad)
127135 }
128- else if ($isInstanceOf(ad, "Int"))
136+ else if ($isInstanceOf(ag, "Int"))
129137 then {
130- let af = ad
131- getInteger(K, aa)
138+ let ai = ag
139+ getInteger(N, ad)
132140 }
133- else Y("invalid entry type")
134- }, ac)
141+ else ab("invalid entry type")
142+ }, af)
135143 }
136144
137145
138-func ag (K,aa) = {
139- let ah = Z(K, aa, "")
140- if ($isInstanceOf(ah, "String"))
141- then ah
142- else throw(($getType(ah) + " couldn't be cast to String"))
146+func aj (N,ad) = {
147+ let ak = ac(N, ad, "")
148+ if ($isInstanceOf(ak, "String"))
149+ then ak
150+ else throw(($getType(ak) + " couldn't be cast to String"))
143151 }
144152
145153
146-func ai (K,aa) = {
147- let ah = Z(K, aa, 0)
148- if ($isInstanceOf(ah, "Int"))
149- then ah
150- else throw(($getType(ah) + " couldn't be cast to Int"))
154+func al (N,ad) = {
155+ let ak = ac(N, ad, 0)
156+ if ($isInstanceOf(ak, "Int"))
157+ then ak
158+ else throw(($getType(ak) + " couldn't be cast to Int"))
151159 }
152160
153161
154-func aj (D) = ((D._1 + a) + D._2)
162+func am (G) = ((G._1 + a) + G._2)
155163
156164
157-func ak (ae) = {
158- let al = split(ae, a)
159- if ((size(al) == 2))
160- then $Tuple2(al[0], al[1])
161- else Y("invalid pool string")
165+func an (ah) = {
166+ let ao = split(ah, a)
167+ if ((size(ao) == 2))
168+ then $Tuple2(ao[0], ao[1])
169+ else ab("invalid pool string")
162170 }
163171
164172
165-let am = addressFromStringValue(ag(this, p))
173+let ap = addressFromStringValue(aj(this, q))
166174
167-let an = 10
175+let aq = 10
168176
169-func ao () = "%s__factoryConfig"
177+func ar () = "%s__factoryConfig"
170178
171179
172-func ap (aq) = split(ag(aq, ao()), a)
180+func as (at) = split(aj(at, ar()), a)
173181
174182
175-func ar (as) = addressFromStringValue(as[an])
183+func au (av) = addressFromStringValue(av[aq])
176184
177185
178-func at (F,G) = {
179- let au = {
180- let ah = invoke(am, "poolInfoREADONLY", [F, G], nil)
181- if ($isInstanceOf(ah, "(Address, ByteVector)"))
182- then ah
186+func aw (ax) = if ((ax == g))
187+ then unit
188+ else fromBase58String(ax)
189+
190+
191+func ay (ax) = if ((ax == unit))
192+ then g
193+ else toBase58String(value(ax))
194+
195+
196+func az (I,J) = {
197+ let aA = {
198+ let ak = invoke(ap, "poolInfoREADONLY", [I, J], nil)
199+ if ($isInstanceOf(ak, "(Address, ByteVector)"))
200+ then ak
183201 else unit
184202 }
185- au
203+ aA
186204 }
187205
188206
189-func av (F,G) = {
190- func aw (ax) = ("%s%s%s__mappings__baseAsset2internalId__" + ax)
207+func aB (I,J) = {
208+ func aC (aD) = ("%s%s%s__mappings__baseAsset2internalId__" + aD)
191209
192- func ay (az,aA) = (((("%d%d%s%s__" + toString(az)) + "__") + toString(aA)) + "__mappings__poolAssets2PoolContract")
210+ func aE (aF,aG) = (((("%d%d%s%s__" + toString(aF)) + "__") + toString(aG)) + "__mappings__poolAssets2PoolContract")
193211
194- func aB (aC) = (("%s%s%s__" + aC) + "__mappings__poolContract2LpAsset")
212+ func aH (aI) = (("%s%s%s__" + aI) + "__mappings__poolContract2LpAsset")
195213
196- let aD = ai(am, aw(F))
197- let aE = ai(am, aw(G))
198- let aC = ag(am, ay(aD, aE))
199- let aF = ag(am, aB(aC))
200- aF
214+ let aJ = al(ap, aC(I))
215+ let aK = al(ap, aC(J))
216+ let aI = aj(ap, aE(aJ, aK))
217+ let aL = aj(ap, aH(aI))
218+ aL
201219 }
202220
203221
204-func aG (D) = {
205- let aH = D
206- let F = aH._1
207- let G = aH._2
208- let ah = invoke(am, "checkWxEmissionPoolLabel", [F, G], nil)
209- if ($isInstanceOf(ah, "Boolean"))
210- then ah
211- else throw(($getType(ah) + " couldn't be cast to Boolean"))
222+func aM (G) = {
223+ let aN = G
224+ let I = aN._1
225+ let J = aN._2
226+ let ak = invoke(ap, "checkWxEmissionPoolLabel", [I, J], nil)
227+ if ($isInstanceOf(ak, "Boolean"))
228+ then ak
229+ else throw(($getType(ak) + " couldn't be cast to Boolean"))
212230 }
213231
214232
215-func aI () = {
216- let as = ap(am)
217- let aJ = ar(as)
218- invoke(aJ, "deposit", nil, nil)
233+func aO () = {
234+ let av = as(ap)
235+ let aP = au(av)
236+ invoke(aP, "deposit", nil, nil)
219237 }
220238
221239
222-let aK = "pools"
240+let aQ = "pools"
223241
224-func aL (D) = {
225- let aM = D
226- let F = aM._1
227- let G = aM._2
228- makeString(["votes", F, G], a)
242+func aR (G) = {
243+ let aS = G
244+ let I = aS._1
245+ let J = aS._2
246+ makeString(["votes", I, J], a)
229247 }
230248
231249
232-func aN (aO) = {
233- let aP = if ((aO == aK))
250+func aT (aU) = {
251+ let aV = if ((aU == aQ))
234252 then "%s%s"
235253 else "%s%s%s%s"
236- makeString([aP, aO, "head"], a)
254+ makeString([aV, aU, "head"], a)
237255 }
238256
239257
240-func aQ (aO) = {
241- let aP = if ((aO == aK))
258+func aW (aU) = {
259+ let aV = if ((aU == aQ))
242260 then "%s%s"
243261 else "%s%s%s%s"
244- makeString([aP, aO, "size"], a)
262+ makeString([aV, aU, "size"], a)
245263 }
246264
247265
248-func aR (aO,aS) = {
249- let aP = if ((aO == aK))
266+func aX (aU,aY) = {
267+ let aV = if ((aU == aQ))
250268 then "%s%s%s%s"
251269 else "%s%s%s%s%s"
252- makeString([aP, aO, aS, "prev"], a)
270+ makeString([aV, aU, aY, "prev"], a)
253271 }
254272
255273
256-func aT (aO,aS) = {
257- let aP = if ((aO == aK))
274+func aZ (aU,aY) = {
275+ let aV = if ((aU == aQ))
258276 then "%s%s%s%s"
259277 else "%s%s%s%s%s"
260- makeString([aP, aO, aS, "next"], a)
278+ makeString([aV, aU, aY, "next"], a)
261279 }
262280
263281
264-func aU (aO,aS) = {
265- let aV = getString(this, aN(aO))
266- let aW = getString(this, aR(aO, aS))
267- let aX = getString(this, aT(aO, aS))
268- if (if ((aS == valueOrElse(aV, "")))
282+func ba (aU,aY) = {
283+ let bb = getString(this, aT(aU))
284+ let bc = getString(this, aX(aU, aY))
285+ let bd = getString(this, aZ(aU, aY))
286+ if (if ((aY == valueOrElse(bb, "")))
269287 then true
270- else (aW != unit))
288+ else (bc != unit))
271289 then true
272- else (aX != unit)
290+ else (bd != unit)
273291 }
274292
275293
276-func aY (aO,aS) = {
277- let aV = getString(this, aN(aO))
278- let aZ = valueOrElse(getInteger(this, aQ(aO)), 0)
279- let ba = if (!(aU(aO, aS)))
294+func be (aU,aY) = {
295+ let bb = getString(this, aT(aU))
296+ let bf = valueOrElse(getInteger(this, aW(aU)), 0)
297+ let bg = if (!(ba(aU, aY)))
280298 then true
281- else Y("Node exists")
282- if ((ba == ba))
283- then (([IntegerEntry(aQ(aO), (aZ + 1))] ++ (if ((aV != unit))
284- then [StringEntry(aT(aO, aS), value(aV)), StringEntry(aR(aO, value(aV)), aS)]
285- else nil)) ++ [StringEntry(aN(aO), aS)])
299+ else ab("Node exists")
300+ if ((bg == bg))
301+ then (([IntegerEntry(aW(aU), (bf + 1))] ++ (if ((bb != unit))
302+ then [StringEntry(aZ(aU, aY), value(bb)), StringEntry(aX(aU, value(bb)), aY)]
303+ else nil)) ++ [StringEntry(aT(aU), aY)])
286304 else throw("Strict value is not equal to itself.")
287305 }
288306
289307
290-func bb (aO,aS) = {
291- let aV = getString(this, aN(aO))
292- let aZ = valueOrElse(getInteger(this, aQ(aO)), 0)
293- let aW = getString(this, aR(aO, aS))
294- let aX = getString(this, aT(aO, aS))
295- ([IntegerEntry(aQ(aO), (aZ - 1))] ++ (if (if ((aW != unit))
296- then (aX != unit)
308+func bh (aU,aY) = {
309+ let bb = getString(this, aT(aU))
310+ let bf = valueOrElse(getInteger(this, aW(aU)), 0)
311+ let bc = getString(this, aX(aU, aY))
312+ let bd = getString(this, aZ(aU, aY))
313+ ([IntegerEntry(aW(aU), (bf - 1))] ++ (if (if ((bc != unit))
314+ then (bd != unit)
297315 else false)
298- then [StringEntry(aT(aO, value(aW)), value(aX)), StringEntry(aR(aO, value(aX)), value(aW)), DeleteEntry(aR(aO, aS)), DeleteEntry(aT(aO, aS))]
299- else if ((aX != unit))
300- then [StringEntry(aN(aO), value(aX)), DeleteEntry(aT(aO, aS)), DeleteEntry(aR(aO, value(aX)))]
301- else if ((aW != unit))
302- then [DeleteEntry(aR(aO, aS)), DeleteEntry(aT(aO, value(aW)))]
303- else if ((aS == valueOrElse(aV, "")))
304- then [DeleteEntry(aN(aO))]
305- else Y(((("invalid node: " + aO) + ".") + aS))))
316+ then [StringEntry(aZ(aU, value(bc)), value(bd)), StringEntry(aX(aU, value(bd)), value(bc)), DeleteEntry(aX(aU, aY)), DeleteEntry(aZ(aU, aY))]
317+ else if ((bd != unit))
318+ then [StringEntry(aT(aU), value(bd)), DeleteEntry(aZ(aU, aY)), DeleteEntry(aX(aU, value(bd)))]
319+ else if ((bc != unit))
320+ then [DeleteEntry(aX(aU, aY)), DeleteEntry(aZ(aU, value(bc)))]
321+ else if ((aY == valueOrElse(bb, "")))
322+ then [DeleteEntry(aT(aU))]
323+ else ab(((("invalid node: " + aU) + ".") + aY))))
306324 }
307325
308326
309-func bc () = "%s__managerVaultAddress"
327+func bi () = "%s__managerVaultAddress"
310328
311329
312-func bd () = "%s__managerPublicKey"
330+func bj () = "%s__managerPublicKey"
313331
314332
315-func be () = {
316- let ad = getString(bc())
317- if ($isInstanceOf(ad, "String"))
333+func bk () = {
334+ let ag = getString(bi())
335+ if ($isInstanceOf(ag, "String"))
318336 then {
319- let bf = ad
320- addressFromStringValue(bf)
337+ let bl = ag
338+ addressFromStringValue(bl)
321339 }
322340 else this
323341 }
324342
325343
326-func bg () = {
327- let bh = be()
328- let ad = getString(bh, bd())
329- if ($isInstanceOf(ad, "String"))
344+func bm () = {
345+ let bn = bk()
346+ let ag = getString(bn, bj())
347+ if ($isInstanceOf(ag, "String"))
330348 then {
331- let bf = ad
332- fromBase58String(bf)
349+ let bl = ag
350+ fromBase58String(bl)
333351 }
334- else if ($isInstanceOf(ad, "Unit"))
352+ else if ($isInstanceOf(ag, "Unit"))
335353 then unit
336354 else throw("Match error")
337355 }
338356
339357
340-func bi (bj) = {
341- let ad = bg()
342- if ($isInstanceOf(ad, "ByteVector"))
358+func bo (bp) = {
359+ let ag = bm()
360+ if ($isInstanceOf(ag, "ByteVector"))
343361 then {
344- let bk = ad
345- (bj.callerPublicKey == bk)
362+ let bq = ag
363+ (bp.callerPublicKey == bq)
346364 }
347- else if ($isInstanceOf(ad, "Unit"))
348- then (bj.caller == this)
365+ else if ($isInstanceOf(ag, "Unit"))
366+ then (bp.caller == this)
349367 else throw("Match error")
350368 }
351369
352370
353-func bl (bj) = if (bi(bj))
371+func br (bp) = if (bo(bp))
354372 then true
355373 else throw("permission denied")
356374
357375
358-func bm (bj) = if ((bj.caller == this))
376+func bs (bp) = if ((bp.caller == this))
359377 then true
360378 else throw("permission denied")
361379
362380
363-@Callable(bj)
364-func getUserGwxAmountAtHeight (bn,bo) = {
365- let bp = valueOrErrorMessage(addressFromString(ag(this, q)), W("invalid boosting contract address"))
381+@Callable(bp)
382+func getUserGwxAmountAtHeight (bt,bu) = {
383+ let bv = valueOrErrorMessage(addressFromString(aj(this, r)), Z("invalid boosting contract address"))
366384 $Tuple2(nil, {
367- let ah = invoke(bp, "getUserGwxAmountAtHeightREADONLY", [bn, bo], nil)
368- if ($isInstanceOf(ah, "Int"))
369- then ah
370- else throw(($getType(ah) + " couldn't be cast to Int"))
385+ let ak = invoke(bv, "getUserGwxAmountAtHeightREADONLY", [bt, bu], nil)
386+ if ($isInstanceOf(ak, "Int"))
387+ then ak
388+ else throw(($getType(ak) + " couldn't be cast to Int"))
371389 })
372390 }
373391
374392
375393
376-@Callable(bj)
377-func constructor (am,bq,br,bs,bt) = {
378- let bu = [bl(bj), if ((addressFromString(am) != unit))
394+@Callable(bp)
395+func constructor (ap,bw,bx,by,bz) = {
396+ let bA = [br(bp), if ((addressFromString(ap) != unit))
379397 then true
380- else "invalid factory contract address", if ((addressFromString(bq) != unit))
398+ else "invalid factory contract address", if ((addressFromString(bw) != unit))
381399 then true
382- else "invalid voting emission candidate contract address", if ((addressFromString(br) != unit))
400+ else "invalid voting emission candidate contract address", if ((addressFromString(bx) != unit))
383401 then true
384- else "invalid boosting contract address", if ((addressFromString(bs) != unit))
402+ else "invalid boosting contract address", if ((addressFromString(by) != unit))
385403 then true
386- else "invalid staking contract address", if ((bt > 0))
404+ else "invalid staking contract address", if ((bz > 0))
387405 then true
388- else Y("invalid epoch length")]
389- if ((bu == bu))
390- then $Tuple2([StringEntry(p, am), StringEntry(n, bq), StringEntry(q, br), StringEntry(r, bs), IntegerEntry(g, bt)], unit)
406+ else ab("invalid epoch length")]
407+ if ((bA == bA))
408+ then $Tuple2([StringEntry(q, ap), StringEntry(o, bw), StringEntry(r, bx), StringEntry(s, by), IntegerEntry(h, bz)], unit)
391409 else throw("Strict value is not equal to itself.")
392410 }
393411
394412
395413
396-@Callable(bj)
397-func create (F,G) = {
398- let bu = [if ((toBase58String(bj.caller.bytes) == valueOrElse(getString(this, n), "")))
414+@Callable(bp)
415+func create (I,J) = {
416+ let bA = [if ((toBase58String(bp.caller.bytes) == valueOrElse(getString(this, o), "")))
399417 then true
400- else bl(bj)]
401- if ((bu == bu))
418+ else br(bp)]
419+ if ((bA == bA))
402420 then {
403- let D = $Tuple2(F, G)
404- let bv = ([BooleanEntry(C(D), true)] ++ aY(aK, aj(D)))
405- let bw = (getInteger(this, k) == unit)
406- let bx = if (bw)
421+ let G = $Tuple2(I, J)
422+ let bB = ([BooleanEntry(F(G), true)] ++ be(aQ, am(G)))
423+ let bC = (getInteger(this, l) == unit)
424+ let bD = if (bC)
407425 then {
408- let j = 0
409-[IntegerEntry(k, j), IntegerEntry(A(j), height), IntegerEntry(w, height), IntegerEntry(x, j), IntegerEntry(y, height)]
426+ let k = 0
427+[IntegerEntry(l, k), IntegerEntry(D(k), height), IntegerEntry(x, height), IntegerEntry(y, k), IntegerEntry(z, height)]
410428 }
411429 else nil
412- $Tuple2((bv ++ bx), unit)
430+ $Tuple2((bB ++ bD), unit)
413431 }
414432 else throw("Strict value is not equal to itself.")
415433 }
416434
417435
418436
419-@Callable(bj)
420-func vote (F,G,by) = {
421- let D = $Tuple2(F, G)
422- let j = valueOrElse(getInteger(this, k), 0)
423- let bz = ai(this, A(j))
424- let bt = ai(this, g)
425- let bA = (bz + bt)
426- let bB = getInteger(this, t)
427- let bC = valueOrElse(getInteger(this, J(bj.caller, j)), 0)
428- let bD = valueOrElse(getInteger(this, L(D, bj.caller, j)), 0)
429- let bE = valueOrElse(getInteger(this, N(D, j)), 0)
430- let bF = valueOrElse(getInteger(this, T(j)), 0)
431- let bG = {
432- let ah = invoke(this, "getUserGwxAmountAtHeight", [toBase58String(bj.caller.bytes), bA], nil)
433- if ($isInstanceOf(ah, "Int"))
434- then ah
435- else throw(($getType(ah) + " couldn't be cast to Int"))
437+@Callable(bp)
438+func vote (I,J,bE) = {
439+ let G = $Tuple2(I, J)
440+ let k = valueOrElse(getInteger(this, l), 0)
441+ let bF = al(this, D(k))
442+ let bz = al(this, h)
443+ let bG = (bF + bz)
444+ let bH = getInteger(this, u)
445+ let bI = valueOrElse(getInteger(this, M(bp.caller, k)), 0)
446+ let bJ = valueOrElse(getInteger(this, O(G, bp.caller, k)), 0)
447+ let bK = valueOrElse(getInteger(this, Q(G, k)), 0)
448+ let bL = valueOrElse(getInteger(this, W(k)), 0)
449+ let bM = {
450+ let ak = invoke(this, "getUserGwxAmountAtHeight", [toBase58String(bp.caller.bytes), bG], nil)
451+ if ($isInstanceOf(ak, "Int"))
452+ then ak
453+ else throw(($getType(ak) + " couldn't be cast to Int"))
436454 }
437- let bH = (bG - bC)
438- let bI = (bD + by)
439- let bJ = aG(D)
440- let bu = [if ((getBoolean(C(D)) != unit))
455+ let bN = (bM - bI)
456+ let bO = (bJ + bE)
457+ let bP = aM(G)
458+ let bA = [if ((getBoolean(F(G)) != unit))
441459 then true
442- else Y("invalid assets"), if ((bA > height))
460+ else ab("invalid assets"), if ((bG > height))
443461 then true
444- else Y("invalid height"), if ((bB == unit))
462+ else ab("invalid height"), if ((bH == unit))
445463 then true
446- else Y("finalization in progress"), if ((bG > 0))
464+ else ab("finalization in progress"), if ((bM > 0))
447465 then true
448- else Y("you do not have gWX"), if (if ((by > 0))
449- then (bH >= by)
466+ else ab("you do not have gWX"), if (if ((bE > 0))
467+ then (bN >= bE)
450468 else false)
451469 then true
452- else Y("invalid amount"), if (bJ)
470+ else ab("invalid amount"), if (bP)
453471 then true
454- else Y("pool hasn't WX_EMISSION label")]
455- if ((bu == bu))
472+ else ab("pool hasn't WX_EMISSION label")]
473+ if ((bA == bA))
456474 then {
457- let bK = aL(D)
458- let V = toString(bj.caller)
459- let bL = if (aU(bK, V))
475+ let bQ = aR(G)
476+ let Y = toString(bp.caller)
477+ let bR = if (ba(bQ, Y))
460478 then nil
461- else aY(bK, V)
462- $Tuple2(([IntegerEntry(J(bj.caller, j), (bC + by)), IntegerEntry(L(D, bj.caller, j), bI), IntegerEntry(N(D, j), (bE + by)), IntegerEntry(T(j), (bF + by))] ++ bL), unit)
479+ else be(bQ, Y)
480+ $Tuple2(([IntegerEntry(M(bp.caller, k), (bI + bE)), IntegerEntry(O(G, bp.caller, k), bO), IntegerEntry(Q(G, k), (bK + bE)), IntegerEntry(W(k), (bL + bE))] ++ bR), unit)
463481 }
464482 else throw("Strict value is not equal to itself.")
465483 }
466484
467485
468486
469-@Callable(bj)
470-func cancelVote (F,G) = {
471- let D = $Tuple2(F, G)
472- let j = valueOrElse(getInteger(this, k), 0)
473- let bz = ai(this, A(j))
474- let bt = ai(this, g)
475- let bA = (bz + bt)
476- let bB = getInteger(this, t)
477- let bC = valueOrElse(getInteger(this, J(bj.caller, j)), 0)
478- let bD = valueOrElse(getInteger(this, L(D, bj.caller, j)), 0)
479- let bE = valueOrElse(getInteger(this, N(D, j)), 0)
480- let bF = valueOrElse(getInteger(this, T(j)), 0)
481- let bu = [if ((getBoolean(C(D)) != unit))
487+@Callable(bp)
488+func cancelVote (I,J) = {
489+ let G = $Tuple2(I, J)
490+ let k = valueOrElse(getInteger(this, l), 0)
491+ let bF = al(this, D(k))
492+ let bz = al(this, h)
493+ let bG = (bF + bz)
494+ let bH = getInteger(this, u)
495+ let bI = valueOrElse(getInteger(this, M(bp.caller, k)), 0)
496+ let bJ = valueOrElse(getInteger(this, O(G, bp.caller, k)), 0)
497+ let bK = valueOrElse(getInteger(this, Q(G, k)), 0)
498+ let bL = valueOrElse(getInteger(this, W(k)), 0)
499+ let bA = [if ((getBoolean(F(G)) != unit))
482500 then true
483- else Y("invalid assets"), if ((bA > height))
501+ else ab("invalid assets"), if ((bG > height))
484502 then true
485- else Y("invalid height"), if ((bB == unit))
503+ else ab("invalid height"), if ((bH == unit))
486504 then true
487- else Y("finalization in progress"), if ((bD > 0))
505+ else ab("finalization in progress"), if ((bJ > 0))
488506 then true
489- else Y("no vote")]
490- if ((bu == bu))
507+ else ab("no vote")]
508+ if ((bA == bA))
491509 then {
492- let bK = aL(D)
493- let V = toString(bj.caller)
494- $Tuple2(([IntegerEntry(J(bj.caller, j), max([(bC - bD), 0])), DeleteEntry(L(D, bj.caller, j)), IntegerEntry(N(D, j), (bE - bD)), IntegerEntry(T(j), (bF - bD))] ++ bb(bK, V)), unit)
510+ let bQ = aR(G)
511+ let Y = toString(bp.caller)
512+ $Tuple2(([IntegerEntry(M(bp.caller, k), max([(bI - bJ), 0])), DeleteEntry(O(G, bp.caller, k)), IntegerEntry(Q(G, k), (bK - bJ)), IntegerEntry(W(k), (bL - bJ))] ++ bh(bQ, Y)), unit)
495513 }
496514 else throw("Strict value is not equal to itself.")
497515 }
498516
499517
500518
501-@Callable(bj)
502-func setEpochLength (bM) = {
503- let bu = [bl(bj), if ((bM > 0))
519+@Callable(bp)
520+func setEpochLength (bS) = {
521+ let bA = [br(bp), if ((bS > 0))
504522 then true
505- else Y("invalid epoch length")]
506- if ((bu == bu))
507- then $Tuple2([IntegerEntry(h, bM)], unit)
523+ else ab("invalid epoch length")]
524+ if ((bA == bA))
525+ then $Tuple2([IntegerEntry(i, bS)], unit)
508526 else throw("Strict value is not equal to itself.")
509527 }
510528
511529
512530
513-@Callable(bj)
514-func setMaxDepth (bN) = {
515- let bu = [bl(bj), if ((bN > 0))
531+@Callable(bp)
532+func setMaxDepth (bT) = {
533+ let bA = [br(bp), if ((bT > 0))
516534 then true
517- else Y("invalid max depth")]
518- if ((bu == bu))
519- then $Tuple2([IntegerEntry(l, bN)], unit)
535+ else ab("invalid max depth")]
536+ if ((bA == bA))
537+ then $Tuple2([IntegerEntry(m, bT)], unit)
520538 else throw("Strict value is not equal to itself.")
521539 }
522540
523541
524542
525-@Callable(bj)
526-func processPoolBalanceINTERNAL (bO) = {
527- let bP = bm(bj)
528- if ((bP == bP))
543+@Callable(bp)
544+func processPoolBalanceINTERNAL (bU) = {
545+ let bV = bs(bp)
546+ if ((bV == bV))
529547 then {
530- let j = ai(this, k)
531- let bQ = (j - 1)
532- let D = ak(bO)
533- let bR = D
534- let F = bR._1
535- let G = bR._2
536- let aF = av(F, G)
537- let bS = {
538- let ah = invoke(am, "checkBalance", [aF], nil)
539- if ($isInstanceOf(ah, "Boolean"))
540- then ah
541- else throw(($getType(ah) + " couldn't be cast to Boolean"))
548+ let k = al(this, l)
549+ let bW = (k - 1)
550+ let G = an(bU)
551+ let bX = G
552+ let I = bX._1
553+ let J = bX._2
554+ let aL = aB(I, J)
555+ let bY = {
556+ let ak = invoke(ap, "checkBalance", [aL], nil)
557+ if ($isInstanceOf(ak, "Boolean"))
558+ then ak
559+ else throw(($getType(ak) + " couldn't be cast to Boolean"))
542560 }
543- let bT = !(valueOrElse(getBoolean(this, H(D, (bQ - 1))), false))
544- let bU = if (!(bS))
545- then if (!(bT))
561+ let bZ = !(valueOrElse(getBoolean(this, K(G, (bW - 1))), false))
562+ let ca = if (!(bY))
563+ then if (!(bZ))
546564 then {
547- let bV = invoke(am, "deleteWxEmissionPoolLabel", [F, G], nil)
548- if ((bV == bV))
565+ let cb = invoke(ap, "deleteWxEmissionPoolLabel", [I, J], nil)
566+ if ((cb == cb))
549567 then {
550- let bW = invoke(am, "modifyWeight", [aF, 0], nil)
551- if ((bW == bW))
568+ let cc = invoke(ap, "modifyWeight", [aL, 0], nil)
569+ if ((cc == cc))
552570 then {
553- let bX = valueOrErrorMessage(at(F, G), W("invalid assets"))._1
554- let bY = 3
555- let bZ = invoke(am, "managePool", [toString(bX), bY], nil)
556- if ((bZ == bZ))
571+ let cd = valueOrErrorMessage(az(I, J), Z("invalid assets"))._1
572+ let ce = 3
573+ let cf = invoke(ap, "managePool", [toString(cd), ce], nil)
574+ if ((cf == cf))
557575 then {
558- let ca = ([DeleteEntry(C(D))] ++ bb(aK, aj(D)))
559- ([IntegerEntry(R(D, bQ), 0)] ++ ca)
576+ let cg = ([DeleteEntry(F(G))] ++ bh(aQ, am(G)))
577+ ([IntegerEntry(U(G, bW), 0)] ++ cg)
560578 }
561579 else throw("Strict value is not equal to itself.")
562580 }
564582 }
565583 else throw("Strict value is not equal to itself.")
566584 }
567- else [BooleanEntry(H(D, bQ), true)]
585+ else [BooleanEntry(K(G, bW), true)]
568586 else nil
569- $Tuple2(bU, unit)
587+ $Tuple2(ca, unit)
570588 }
571589 else throw("Strict value is not equal to itself.")
572590 }
573591
574592
575593
576-@Callable(bj)
577-func processVoteINTERNAL (bO,V) = {
578- let bP = bm(bj)
579- if ((bP == bP))
594+@Callable(bp)
595+func processVoteINTERNAL (bU,Y) = {
596+ let bV = bs(bp)
597+ if ((bV == bV))
580598 then {
581- let bn = valueOrErrorMessage(addressFromString(V), W(("processVoteINTERNAL: invalid user address " + V)))
582- let j = ai(this, k)
583- let bQ = (j - 1)
584- let bt = ai(this, g)
585- let bz = ai(this, A(j))
586- let bA = (bz + bt)
587- let cb = ai(this, A(bQ))
588- let cc = ai(this, i(bQ))
589- let cd = (cb + cc)
590- let ce = if ((bQ >= 0))
599+ let bt = valueOrErrorMessage(addressFromString(Y), Z(("processVoteINTERNAL: invalid user address " + Y)))
600+ let k = al(this, l)
601+ let bW = (k - 1)
602+ let bz = al(this, h)
603+ let bF = al(this, D(k))
604+ let bG = (bF + bz)
605+ let ch = al(this, D(bW))
606+ let ci = al(this, j(bW))
607+ let cj = (ch + ci)
608+ let ck = if ((bW >= 0))
591609 then true
592- else Y("processVoteINTERNAL: invalid previous epoch")
593- if ((ce == ce))
610+ else ab("processVoteINTERNAL: invalid previous epoch")
611+ if ((ck == ck))
594612 then {
595- let D = ak(bO)
596- let cf = D
597- let F = cf._1
598- let G = cf._2
599- let bG = {
600- let ah = invoke(this, "getUserGwxAmountAtHeight", [V, bA], nil)
601- if ($isInstanceOf(ah, "Int"))
602- then ah
603- else throw(($getType(ah) + " couldn't be cast to Int"))
613+ let G = an(bU)
614+ let cl = G
615+ let I = cl._1
616+ let J = cl._2
617+ let bM = {
618+ let ak = invoke(this, "getUserGwxAmountAtHeight", [Y, bG], nil)
619+ if ($isInstanceOf(ak, "Int"))
620+ then ak
621+ else throw(($getType(ak) + " couldn't be cast to Int"))
604622 }
605- let cg = {
606- let ah = invoke(this, "getUserGwxAmountAtHeight", [V, cd], nil)
607- if ($isInstanceOf(ah, "Int"))
608- then ah
609- else throw(($getType(ah) + " couldn't be cast to Int"))
623+ let cm = {
624+ let ak = invoke(this, "getUserGwxAmountAtHeight", [Y, cj], nil)
625+ if ($isInstanceOf(ak, "Int"))
626+ then ak
627+ else throw(($getType(ak) + " couldn't be cast to Int"))
610628 }
611- let bF = valueOrElse(getInteger(T(j)), 0)
612- let ch = valueOrElse(getInteger(N(D, j)), 0)
613- let ci = valueOrErrorMessage(getInteger(L(D, bn, bQ)), W((((("processVoteINTERNAL " + bO) + " ") + V) + ": no previous vote")))
614- let bC = valueOrElse(getInteger(this, J(bn, j)), 0)
615- let Q = av(F, G)
616- let cj = valueOrElse(getInteger(P(Q, bQ)), 0)
617- let bs = addressFromStringValue(ag(this, r))
618- let ck = valueOrElse(getInteger(bs, U(Q, V)), 0)
619- let cl = if ((ck == 0))
629+ let bL = valueOrElse(getInteger(W(k)), 0)
630+ let cn = valueOrElse(getInteger(Q(G, k)), 0)
631+ let co = valueOrErrorMessage(getInteger(O(G, bt, bW)), Z((((("processVoteINTERNAL " + bU) + " ") + Y) + ": no previous vote")))
632+ let bI = valueOrElse(getInteger(this, M(bt, k)), 0)
633+ let T = aB(I, J)
634+ let cp = valueOrElse(getInteger(S(T, bW)), 0)
635+ let by = addressFromStringValue(aj(this, s))
636+ let cq = valueOrElse(getInteger(by, X(T, Y)), 0)
637+ let cr = if ((cq == 0))
620638 then nil
621- else [IntegerEntry(P(Q, bQ), (cj + ci))]
622- let aF = av(F, G)
623- let bI = if ((cg > 0))
624- then fraction(ci, bG, cg)
639+ else [IntegerEntry(S(T, bW), (cp + co))]
640+ let aL = aB(I, J)
641+ let bO = if ((cm > 0))
642+ then fraction(co, bM, cm)
625643 else 0
626- let bU = if ((bI > 0))
627- then [IntegerEntry(L(D, bn, j), bI), IntegerEntry(T(j), (bF + bI)), IntegerEntry(N(D, j), (ch + bI)), IntegerEntry(J(bn, j), (bC + bI))]
628- else bb(aL(D), V)
629- $Tuple2((bU ++ cl), unit)
644+ let ca = if ((bO > 0))
645+ then [IntegerEntry(O(G, bt, k), bO), IntegerEntry(W(k), (bL + bO)), IntegerEntry(Q(G, k), (cn + bO)), IntegerEntry(M(bt, k), (bI + bO))]
646+ else bh(aR(G), Y)
647+ $Tuple2((ca ++ cr), unit)
630648 }
631649 else throw("Strict value is not equal to itself.")
632650 }
635653
636654
637655
638-@Callable(bj)
639-func processPoolINTERNAL (bO,cm) = {
640- let bP = bm(bj)
641- if ((bP == bP))
656+@Callable(bp)
657+func processPoolINTERNAL (bU,cs) = {
658+ let bV = bs(bp)
659+ if ((bV == bV))
642660 then {
643- let cn = {
644- let co = ai(this, k)
645- if (cm)
646- then co
647- else (co - 1)
661+ let ct = {
662+ let cu = al(this, l)
663+ if (cs)
664+ then cu
665+ else (cu - 1)
648666 }
649- let ce = if ((cn >= 0))
667+ let ck = if ((ct >= 0))
650668 then true
651- else Y("processPoolINTERNAL: invalid target epoch")
652- if ((ce == ce))
669+ else ab("processPoolINTERNAL: invalid target epoch")
670+ if ((ck == ck))
653671 then {
654- let D = ak(bO)
655- let cp = D
656- let F = cp._1
657- let G = cp._2
658- let bs = addressFromStringValue(ag(this, r))
659- let aF = av(F, G)
660- let cq = {
661- let ah = invoke(bs, "usersListTraversal", [aF], nil)
662- if ($isInstanceOf(ah, "Boolean"))
663- then ah
664- else throw(($getType(ah) + " couldn't be cast to Boolean"))
672+ let G = an(bU)
673+ let cv = G
674+ let I = cv._1
675+ let J = cv._2
676+ let by = addressFromStringValue(aj(this, s))
677+ let aL = aB(I, J)
678+ let cw = {
679+ let ak = invoke(by, "usersListTraversal", [aL], nil)
680+ if ($isInstanceOf(ak, "Boolean"))
681+ then ak
682+ else throw(($getType(ak) + " couldn't be cast to Boolean"))
665683 }
666- if ((cq == cq))
667- then if (cq)
684+ if ((cw == cw))
685+ then if (cw)
668686 then $Tuple2(nil, true)
669687 else {
670- let cr = addressFromStringValue(valueOrErrorMessage(getString(am, s), "invalid assets store contract"))
671- let bF = valueOrElse(getInteger(this, T(cn)), 0)
672- let ch = valueOrElse(getInteger(this, N(D, cn)), 0)
673- let cs = if ((bF == 0))
688+ let cx = addressFromStringValue(valueOrErrorMessage(getString(ap, t), "invalid assets store contract"))
689+ let bL = valueOrElse(getInteger(this, W(ct)), 0)
690+ let cn = valueOrElse(getInteger(this, Q(G, ct)), 0)
691+ let cy = if ((bL == 0))
674692 then 0
675- else fraction(ch, b, bF)
676- let bW = invoke(am, "modifyWeight", [aF, cs], nil)
677- if ((bW == bW))
678- then $Tuple2([IntegerEntry(R(D, cn), cs)], false)
693+ else fraction(cn, b, bL)
694+ let cc = invoke(ap, "modifyWeight", [aL, cy], nil)
695+ if ((cc == cc))
696+ then $Tuple2([IntegerEntry(U(G, ct), cy)], false)
679697 else throw("Strict value is not equal to itself.")
680698 }
681699 else throw("Strict value is not equal to itself.")
687705
688706
689707
690-@Callable(bj)
708+@Callable(bp)
691709 func finalizeHelper () = {
692- let cm = valueOrElse(getBoolean(z), false)
693- let j = valueOrElse(getInteger(this, k), 0)
694- let ct = (j - 1)
695- let bz = ai(this, A(j))
696- let bt = ai(this, g)
697- let bA = (bz + bt)
698- let bB = getInteger(this, t)
699- if (if (if ((height >= bA))
700- then (bB == unit)
710+ let cs = valueOrElse(getBoolean(A), false)
711+ let k = valueOrElse(getInteger(this, l), 0)
712+ let cz = (k - 1)
713+ let bF = al(this, D(k))
714+ let bz = al(this, h)
715+ let bG = (bF + bz)
716+ let bH = getInteger(this, u)
717+ if (if (if ((height >= bG))
718+ then (bH == unit)
701719 else false)
702- then !(cm)
720+ then !(cs)
703721 else false)
704722 then {
705- let cu = (j + 1)
706- let cv = getInteger(this, h)
707- let cw = {
708- let ad = cv
709- if ($isInstanceOf(ad, "Int"))
723+ let cA = (k + 1)
724+ let cB = getInteger(this, i)
725+ let cC = {
726+ let ag = cB
727+ if ($isInstanceOf(ag, "Int"))
710728 then {
711- let bM = ad
712-[IntegerEntry(g, bM), DeleteEntry(h)]
729+ let bS = ag
730+[IntegerEntry(h, bS), DeleteEntry(i)]
713731 }
714- else if ($isInstanceOf(ad, "Unit"))
732+ else if ($isInstanceOf(ag, "Unit"))
715733 then nil
716734 else throw("Match error")
717735 }
718- $Tuple2(([IntegerEntry(A(cu), height), IntegerEntry(w, height), IntegerEntry(k, cu), IntegerEntry(t, d), IntegerEntry(i(j), bt)] ++ cw), true)
736+ $Tuple2(([IntegerEntry(D(cA), height), IntegerEntry(x, height), IntegerEntry(l, cA), IntegerEntry(u, d), IntegerEntry(j(k), bz)] ++ cC), true)
719737 }
720- else if (if (cm)
721- then (bB == unit)
738+ else if (if (cs)
739+ then (bH == unit)
722740 else false)
723- then $Tuple2([IntegerEntry(t, f)], true)
724- else if ((bB == unit))
741+ then $Tuple2([IntegerEntry(u, f)], true)
742+ else if ((bH == unit))
725743 then $Tuple2(nil, false)
726- else if ((bB == d))
744+ else if ((bH == d))
727745 then {
728- let cx = getString(u)
729- let ad = cx
730- if ($isInstanceOf(ad, "Unit"))
746+ let cD = getString(v)
747+ let ag = cD
748+ if ($isInstanceOf(ag, "Unit"))
731749 then {
732- let cy = getString(aN(aK))
733- if ($isInstanceOf(cy, "Unit"))
734- then $Tuple2([IntegerEntry(t, e), DeleteEntry(u)], true)
735- else if ($isInstanceOf(cy, "String"))
750+ let cE = getString(aT(aQ))
751+ if ($isInstanceOf(cE, "Unit"))
752+ then $Tuple2([IntegerEntry(u, e), DeleteEntry(v)], true)
753+ else if ($isInstanceOf(cE, "String"))
736754 then {
737- let cz = cy
738- $Tuple2([StringEntry(u, cz)], true)
755+ let cF = cE
756+ $Tuple2([StringEntry(v, cF)], true)
739757 }
740758 else throw("Match error")
741759 }
742- else if ($isInstanceOf(ad, "String"))
760+ else if ($isInstanceOf(ag, "String"))
743761 then {
744- let bO = ad
745- let cA = getString(aT(aK, bO))
746- if ((cA == cA))
762+ let bU = ag
763+ let cG = getString(aZ(aQ, bU))
764+ if ((cG == cG))
747765 then {
748- let cq = invoke(this, "processPoolBalanceINTERNAL", [bO], nil)
749- if ((cq == cq))
766+ let cw = invoke(this, "processPoolBalanceINTERNAL", [bU], nil)
767+ if ((cw == cw))
750768 then {
751- let cy = cA
752- if ($isInstanceOf(cy, "Unit"))
753- then $Tuple2([IntegerEntry(t, e), DeleteEntry(u)], true)
754- else if ($isInstanceOf(cy, "String"))
769+ let cE = cG
770+ if ($isInstanceOf(cE, "Unit"))
771+ then $Tuple2([IntegerEntry(u, e), DeleteEntry(v)], true)
772+ else if ($isInstanceOf(cE, "String"))
755773 then {
756- let cz = cy
757- $Tuple2([StringEntry(u, cz)], true)
774+ let cF = cE
775+ $Tuple2([StringEntry(v, cF)], true)
758776 }
759777 else throw("Match error")
760778 }
764782 }
765783 else throw("Match error")
766784 }
767- else if ((bB == e))
785+ else if ((bH == e))
768786 then {
769- let cx = getString(u)
770- let cB = getString(v)
771- let ad = cx
772- if ($isInstanceOf(ad, "Unit"))
787+ let cD = getString(v)
788+ let cH = getString(w)
789+ let ag = cD
790+ if ($isInstanceOf(ag, "Unit"))
773791 then {
774- let cy = getString(aN(aK))
775- if ($isInstanceOf(cy, "Unit"))
776- then $Tuple2([IntegerEntry(t, f), DeleteEntry(u), DeleteEntry(v)], true)
777- else if ($isInstanceOf(cy, "String"))
792+ let cE = getString(aT(aQ))
793+ if ($isInstanceOf(cE, "Unit"))
794+ then $Tuple2([IntegerEntry(u, f), DeleteEntry(v), DeleteEntry(w)], true)
795+ else if ($isInstanceOf(cE, "String"))
778796 then {
779- let cC = cy
780- $Tuple2([StringEntry(u, cC)], true)
797+ let cI = cE
798+ $Tuple2([StringEntry(v, cI)], true)
781799 }
782800 else throw("Match error")
783801 }
784- else if ($isInstanceOf(ad, "String"))
802+ else if ($isInstanceOf(ag, "String"))
785803 then {
786- let bO = ad
787- let D = ak(bO)
788- let cD = {
789- let cy = cB
790- if ($isInstanceOf(cy, "Unit"))
791- then getString(aN(aL(D)))
792- else if ($isInstanceOf(cy, "String"))
804+ let bU = ag
805+ let G = an(bU)
806+ let cJ = {
807+ let cE = cH
808+ if ($isInstanceOf(cE, "Unit"))
809+ then getString(aT(aR(G)))
810+ else if ($isInstanceOf(cE, "String"))
793811 then {
794- let cE = cy
795- let cF = getString(aT(aL(D), cE))
796- if ((cF == cF))
812+ let cK = cE
813+ let cL = getString(aZ(aR(G), cK))
814+ if ((cL == cL))
797815 then {
798- let cG = invoke(this, "processVoteINTERNAL", [bO, cE], nil)
799- if ((cG == cG))
800- then cF
816+ let cM = invoke(this, "processVoteINTERNAL", [bU, cK], nil)
817+ if ((cM == cM))
818+ then cL
801819 else throw("Strict value is not equal to itself.")
802820 }
803821 else throw("Strict value is not equal to itself.")
804822 }
805823 else throw("Match error")
806824 }
807- let cy = cD
808- if ($isInstanceOf(cy, "Unit"))
825+ let cE = cJ
826+ if ($isInstanceOf(cE, "Unit"))
809827 then {
810- let cA = getString(aT(aK, bO))
811- let cH = cA
812- if ($isInstanceOf(cH, "Unit"))
813- then $Tuple2([IntegerEntry(t, f), DeleteEntry(u), DeleteEntry(v)], true)
814- else if ($isInstanceOf(cH, "String"))
828+ let cG = getString(aZ(aQ, bU))
829+ let cN = cG
830+ if ($isInstanceOf(cN, "Unit"))
831+ then $Tuple2([IntegerEntry(u, f), DeleteEntry(v), DeleteEntry(w)], true)
832+ else if ($isInstanceOf(cN, "String"))
815833 then {
816- let bf = cH
817- $Tuple2([StringEntry(u, bf), DeleteEntry(v)], true)
834+ let bl = cN
835+ $Tuple2([StringEntry(v, bl), DeleteEntry(w)], true)
818836 }
819837 else throw("Match error")
820838 }
821- else if ($isInstanceOf(cy, "String"))
839+ else if ($isInstanceOf(cE, "String"))
822840 then {
823- let cI = cy
824- $Tuple2([StringEntry(v, cI)], true)
841+ let cO = cE
842+ $Tuple2([StringEntry(w, cO)], true)
825843 }
826844 else throw("Match error")
827845 }
828846 else throw("Match error")
829847 }
830- else if ((bB == f))
848+ else if ((bH == f))
831849 then {
832- let cx = getString(u)
833- let ad = cx
834- if ($isInstanceOf(ad, "Unit"))
850+ let cD = getString(v)
851+ let ag = cD
852+ if ($isInstanceOf(ag, "Unit"))
835853 then {
836- let cy = getString(aN(aK))
837- if ($isInstanceOf(cy, "Unit"))
854+ let cE = getString(aT(aQ))
855+ if ($isInstanceOf(cE, "Unit"))
838856 then {
839- let bU = if (cm)
840- then [DeleteEntry(t), DeleteEntry(z)]
841- else [DeleteEntry(t), BooleanEntry(B(ct), true), IntegerEntry(x, j), IntegerEntry(y, bz)]
842- let cJ = aI()
843- if ((cJ == cJ))
844- then $Tuple2(bU, true)
857+ let ca = if (cs)
858+ then [DeleteEntry(u), DeleteEntry(A)]
859+ else [DeleteEntry(u), BooleanEntry(E(cz), true), IntegerEntry(y, k), IntegerEntry(z, bF)]
860+ let cP = aO()
861+ if ((cP == cP))
862+ then $Tuple2(ca, true)
845863 else throw("Strict value is not equal to itself.")
846864 }
847- else if ($isInstanceOf(cy, "String"))
865+ else if ($isInstanceOf(cE, "String"))
848866 then {
849- let cz = cy
850- $Tuple2([StringEntry(u, cz)], true)
867+ let cF = cE
868+ $Tuple2([StringEntry(v, cF)], true)
851869 }
852870 else throw("Match error")
853871 }
854- else if ($isInstanceOf(ad, "String"))
872+ else if ($isInstanceOf(ag, "String"))
855873 then {
856- let bO = ad
857- let cA = getString(aT(aK, bO))
858- if ((cA == cA))
874+ let bU = ag
875+ let cG = getString(aZ(aQ, bU))
876+ if ((cG == cG))
859877 then {
860- let cq = {
861- let ah = invoke(this, "processPoolINTERNAL", [bO, cm], nil)
862- if ($isInstanceOf(ah, "Boolean"))
863- then ah
864- else throw(($getType(ah) + " couldn't be cast to Boolean"))
878+ let cw = {
879+ let ak = invoke(this, "processPoolINTERNAL", [bU, cs], nil)
880+ if ($isInstanceOf(ak, "Boolean"))
881+ then ak
882+ else throw(($getType(ak) + " couldn't be cast to Boolean"))
865883 }
866- if ((cq == cq))
867- then if (cq)
884+ if ((cw == cw))
885+ then if (cw)
868886 then $Tuple2(nil, true)
869887 else {
870- let cy = cA
871- if ($isInstanceOf(cy, "Unit"))
888+ let cE = cG
889+ if ($isInstanceOf(cE, "Unit"))
872890 then {
873- let bU = if (cm)
874- then [DeleteEntry(t), DeleteEntry(z), DeleteEntry(u)]
875- else [DeleteEntry(t), BooleanEntry(B(ct), true), IntegerEntry(x, j), IntegerEntry(y, bz), DeleteEntry(u)]
876- let cJ = aI()
877- if ((cJ == cJ))
878- then $Tuple2(bU, true)
891+ let ca = if (cs)
892+ then [DeleteEntry(u), DeleteEntry(A), DeleteEntry(v)]
893+ else [DeleteEntry(u), BooleanEntry(E(cz), true), IntegerEntry(y, k), IntegerEntry(z, bF), DeleteEntry(v)]
894+ let cP = aO()
895+ if ((cP == cP))
896+ then $Tuple2(ca, true)
879897 else throw("Strict value is not equal to itself.")
880898 }
881- else if ($isInstanceOf(cy, "String"))
899+ else if ($isInstanceOf(cE, "String"))
882900 then {
883- let cz = cy
884- $Tuple2([StringEntry(u, cz)], true)
901+ let cF = cE
902+ $Tuple2([StringEntry(v, cF)], true)
885903 }
886904 else throw("Match error")
887905 }
891909 }
892910 else throw("Match error")
893911 }
894- else Y("finalization is broken")
912+ else ab("finalization is broken")
895913 }
896914
897915
898916
899-@Callable(bj)
900-func finalizeWrapper (cK) = {
901- let cL = addressFromStringValue(getStringValue(this, o))
902- let cM = {
903- let ah = invoke(this, "finalizeHelper", nil, nil)
904- if ($isInstanceOf(ah, "Boolean"))
905- then ah
906- else throw(($getType(ah) + " couldn't be cast to Boolean"))
917+@Callable(bp)
918+func finalizeWrapper (cQ) = {
919+ let cR = addressFromStringValue(getStringValue(this, p))
920+ let cS = {
921+ let ak = invoke(this, "finalizeHelper", nil, nil)
922+ if ($isInstanceOf(ak, "Boolean"))
923+ then ak
924+ else throw(($getType(ak) + " couldn't be cast to Boolean"))
907925 }
908- if ((cM == cM))
909- then if (!(cM))
910- then if ((cK == 0))
911- then Y("Current voting is not over yet")
926+ if ((cS == cS))
927+ then if (!(cS))
928+ then if ((cQ == 0))
929+ then ab("Current voting is not over yet")
912930 else {
913- let cN = invoke(cL, "finalize", nil, nil)
914- if ((cN == cN))
931+ let cT = invoke(cR, "finalize", nil, nil)
932+ if ((cT == cT))
915933 then $Tuple2(nil, unit)
916934 else throw("Strict value is not equal to itself.")
917935 }
918936 else {
919- let cO = valueOrElse(getInteger(this, l), c)
920- if ((cO > cK))
937+ let cU = valueOrElse(getInteger(this, m), c)
938+ if ((cU > cQ))
921939 then {
922- let cN = invoke(this, "finalizeWrapper", [(cK + 1)], nil)
923- if ((cN == cN))
940+ let cT = invoke(this, "finalizeWrapper", [(cQ + 1)], nil)
941+ if ((cT == cT))
924942 then $Tuple2(nil, unit)
925943 else throw("Strict value is not equal to itself.")
926944 }
931949
932950
933951
934-@Callable(bj)
952+@Callable(bp)
935953 func finalize () = {
936- let cN = invoke(this, "finalizeWrapper", [0], nil)
937- if ((cN == cN))
954+ let cT = invoke(this, "finalizeWrapper", [0], nil)
955+ if ((cT == cT))
938956 then $Tuple2(nil, unit)
939957 else throw("Strict value is not equal to itself.")
940958 }
941959
942960
943961
944-@Callable(bj)
945-func containsNodeREADONLY (aO,aS) = $Tuple2(nil, aU(aO, aS))
962+@Callable(bp)
963+func containsNodeREADONLY (aU,aY) = $Tuple2(nil, ba(aU, aY))
946964
947965
948966
949-@Callable(bj)
950-func insertNode (aO,aS) = {
951- let bP = bl(bj)
952- if ((bP == bP))
953- then $Tuple2(aY(aO, aS), unit)
967+@Callable(bp)
968+func insertNode (aU,aY) = {
969+ let bV = br(bp)
970+ if ((bV == bV))
971+ then $Tuple2(be(aU, aY), unit)
954972 else throw("Strict value is not equal to itself.")
955973 }
956974
957975
958976
959-@Callable(bj)
960-func deleteNode (aO,aS) = {
961- let bP = bl(bj)
962- if ((bP == bP))
963- then $Tuple2(bb(aO, aS), unit)
977+@Callable(bp)
978+func deleteNode (aU,aY) = {
979+ let bV = br(bp)
980+ if ((bV == bV))
981+ then $Tuple2(bh(aU, aY), unit)
964982 else throw("Strict value is not equal to itself.")
965983 }
966984
967985
968986
969-@Callable(bj)
987+@Callable(bp)
970988 func isFinalizationInProgress () = {
971- let bB = getInteger(this, t)
972- let cP = (bB != unit)
973- $Tuple2(nil, cP)
989+ let bH = getInteger(this, u)
990+ let cV = (bH != unit)
991+ $Tuple2(nil, cV)
974992 }
975993
976994
977995
978-@Callable(bj)
979-func deletePool (F,G) = {
980- let bP = if (if ((bj.caller == am))
996+@Callable(bp)
997+func deletePool (I,J) = {
998+ let bV = if (if ((bp.caller == ap))
981999 then true
982- else bl(bj))
1000+ else br(bp))
9831001 then true
984- else Y("Permission denied")
985- if ((bP == bP))
1002+ else ab("Permission denied")
1003+ if ((bV == bV))
9861004 then {
987- let aO = "pools"
988- let D = $Tuple2(F, G)
989- let aS = makeString([F, G], a)
990- let bU = if (aU(aO, aS))
991- then bb(aO, aS)
1005+ let aU = "pools"
1006+ let G = $Tuple2(I, J)
1007+ let aY = makeString([I, J], a)
1008+ let ca = if (ba(aU, aY))
1009+ then bh(aU, aY)
9921010 else nil
993- ([DeleteEntry(C(D))] ++ bU)
1011+ ([DeleteEntry(F(G))] ++ ca)
9941012 }
9951013 else throw("Strict value is not equal to itself.")
9961014 }
9971015
9981016
9991017
1000-@Callable(bj)
1001-func resume (F,G) = {
1002- let aF = av(F, G)
1003- let cQ = {
1004- let ah = invoke(am, "checkBalance", [aF], nil)
1005- if ($isInstanceOf(ah, "Boolean"))
1006- then ah
1007- else throw(($getType(ah) + " couldn't be cast to Boolean"))
1018+@Callable(bp)
1019+func resume (I,J,cW) = {
1020+ let cX = valueOrErrorMessage(az(I, J), Z("invalid assets"))
1021+ let cd = cX._1
1022+ let aL = cX._2
1023+ let cY = bp.payments[0]
1024+ let cx = addressFromStringValue(getStringValue(this, t))
1025+ let cZ = "%s__config"
1026+ let da = 1
1027+ let bx = addressFromStringValue(aj(this, r))
1028+ let db = fromBase58String(split(getStringValue(bx, cZ), a)[da])
1029+ let dc = {
1030+ let ak = invoke(cx, "isVerifiedREADONLY", [I], nil)
1031+ if ($isInstanceOf(ak, "Boolean"))
1032+ then ak
1033+ else throw(($getType(ak) + " couldn't be cast to Boolean"))
10081034 }
1009- let cR = bj.payments[0]
1010- let cr = addressFromStringValue(getStringValue(this, s))
1011- let cS = "%s__config"
1012- let cT = 1
1013- let br = addressFromStringValue(ag(this, q))
1014- let cU = fromBase58String(split(getStringValue(br, cS), a)[cT])
1015- let cV = {
1016- let ah = invoke(cr, "isVerifiedREADONLY", [F], nil)
1017- if ($isInstanceOf(ah, "Boolean"))
1018- then ah
1019- else throw(($getType(ah) + " couldn't be cast to Boolean"))
1035+ let dd = {
1036+ let ak = invoke(cx, "isVerifiedREADONLY", [J], nil)
1037+ if ($isInstanceOf(ak, "Boolean"))
1038+ then ak
1039+ else throw(($getType(ak) + " couldn't be cast to Boolean"))
10201040 }
1021- let cW = {
1022- let ah = invoke(cr, "isVerifiedREADONLY", [G], nil)
1023- if ($isInstanceOf(ah, "Boolean"))
1024- then ah
1025- else throw(($getType(ah) + " couldn't be cast to Boolean"))
1026- }
1027- let cX = valueOrErrorMessage(getInteger(this, m), "invalid resumption fee")
1028- let bu = [if (cQ)
1041+ let de = valueOrErrorMessage(getInteger(this, n), "invalid resumption fee")
1042+ let bA = [if ((cY.assetId == db))
10291043 then true
1030- else Y("insufficient balances"), if ((size(bj.payments) == 1))
1044+ else ab("invalid fee payment asset id"), if ((cY.amount == de))
10311045 then true
1032- else Y("1 payment is required"), if ((cR.assetId == cU))
1033- then true
1034- else Y("invalid payment asset id"), if ((cR.amount == cX))
1035- then true
1036- else Y("invalid payment amount"), if (if (cV)
1037- then cW
1046+ else ab("invalid fee payment amount"), if (if (dc)
1047+ then dd
10381048 else false)
10391049 then true
1040- else Y("both assets should be verified")]
1041- if ((bu == bu))
1050+ else ab("both assets should be verified")]
1051+ if ((bA == bA))
10421052 then {
1043- let cY = invoke(am, "setWxEmissionPoolLabel", [F, G], nil)
1044- if ((cY == cY))
1053+ let df = assetBalance(this, aL)
1054+ if ((df == df))
10451055 then {
1046- let D = $Tuple2(F, G)
1047- let bv = ([BooleanEntry(C(D), true)] ++ aY(aK, aj(D)))
1048- $Tuple2(bv, unit)
1056+ let dg = false
1057+ let dh = if ((size(bp.payments) == 1))
1058+ then {
1059+ let di = {
1060+ let ak = invoke(ap, "checkBalance", [ay(aL)], nil)
1061+ if ($isInstanceOf(ak, "Boolean"))
1062+ then ak
1063+ else throw(($getType(ak) + " couldn't be cast to Boolean"))
1064+ }
1065+ if (di)
1066+ then true
1067+ else ab("assets should be attached")
1068+ }
1069+ else if ((size(bp.payments) == 2))
1070+ then {
1071+ let dj = valueOrErrorMessage(scriptHash(cd), Z("pool address is not scripted"))
1072+ let dk = fromBase64String(valueOrErrorMessage(getString(ap, C()), Z("allowed lp stable script hash is not set")))
1073+ let dl = (dj == dk)
1074+ let dm = if (dl)
1075+ then "putOneTknV2"
1076+ else "putOneTkn"
1077+ invoke(cd, dm, [cW, dg], [bp.payments[1]])
1078+ }
1079+ else if ((size(bp.payments) == 3))
1080+ then invoke(cd, "put", [cW, dg], [bp.payments[1], bp.payments[2]])
1081+ else ab("invalid payments size")
1082+ if ((dh == dh))
1083+ then {
1084+ let dn = assetBalance(this, aL)
1085+ if ((dn == dn))
1086+ then {
1087+ let do = (dn - df)
1088+ let dp = if ((do > 0))
1089+ then [ScriptTransfer(bp.caller, do, aL)]
1090+ else nil
1091+ let dq = invoke(ap, "setWxEmissionPoolLabel", [I, J], nil)
1092+ if ((dq == dq))
1093+ then {
1094+ let G = $Tuple2(I, J)
1095+ let bB = ([BooleanEntry(F(G), true)] ++ be(aQ, am(G)))
1096+ $Tuple2((bB ++ dp), unit)
1097+ }
1098+ else throw("Strict value is not equal to itself.")
1099+ }
1100+ else throw("Strict value is not equal to itself.")
1101+ }
1102+ else throw("Strict value is not equal to itself.")
10491103 }
10501104 else throw("Strict value is not equal to itself.")
10511105 }
10531107 }
10541108
10551109
1056-@Verifier(cZ)
1057-func da () = {
1058- let db = {
1059- let ad = bg()
1060- if ($isInstanceOf(ad, "ByteVector"))
1110+@Verifier(dr)
1111+func ds () = {
1112+ let dt = {
1113+ let ag = bm()
1114+ if ($isInstanceOf(ag, "ByteVector"))
10611115 then {
1062- let bk = ad
1063- bk
1116+ let bq = ag
1117+ bq
10641118 }
1065- else if ($isInstanceOf(ad, "Unit"))
1066- then cZ.senderPublicKey
1119+ else if ($isInstanceOf(ag, "Unit"))
1120+ then dr.senderPublicKey
10671121 else throw("Match error")
10681122 }
1069- sigVerify(cZ.bodyBytes, cZ.proofs[0], db)
1123+ sigVerify(dr.bodyBytes, dr.proofs[0], dt)
10701124 }
10711125
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = 100000000
77
88 let c = 10
99
1010 let d = 0
1111
1212 let e = 1
1313
1414 let f = 2
1515
16-let g = makeString(["%s", "epochLength"], a)
16+let g = "WAVES"
1717
18-let h = makeString(["%s%s", "epochLength__new"], a)
18+let h = makeString(["%s", "epochLength"], a)
1919
20-func i (j) = makeString(["%s%d", "epochLength", toString(j)], a)
20+let i = makeString(["%s%s", "epochLength__new"], a)
21+
22+func j (k) = makeString(["%s%d", "epochLength", toString(k)], a)
2123
2224
23-let k = makeString(["%s", "currentEpoch"], a)
25+let l = makeString(["%s", "currentEpoch"], a)
2426
25-let l = makeString(["%s", "maxDepth"], a)
27+let m = makeString(["%s", "maxDepth"], a)
2628
27-let m = makeString(["%s", "resumptionFee"], a)
29+let n = makeString(["%s", "resumptionFee"], a)
2830
29-let n = makeString(["%s", "votingEmissionCandidateContract"], a)
31+let o = makeString(["%s", "votingEmissionCandidateContract"], a)
3032
31-let o = makeString(["%s", "votingEmissionRateContract"], a)
33+let p = makeString(["%s", "votingEmissionRateContract"], a)
3234
33-let p = makeString(["%s", "factoryContract"], a)
35+let q = makeString(["%s", "factoryContract"], a)
3436
35-let q = makeString(["%s", "boostingContract"], a)
37+let r = makeString(["%s", "boostingContract"], a)
3638
37-let r = makeString(["%s", "stakingContract"], a)
39+let s = makeString(["%s", "stakingContract"], a)
3840
39-let s = makeString(["%s", "assetsStoreContract"], a)
41+let t = makeString(["%s", "assetsStoreContract"], a)
4042
41-let t = makeString(["%s", "finalizationStage"], a)
43+let u = makeString(["%s", "finalizationStage"], a)
4244
43-let u = makeString(["%s", "nextPool"], a)
45+let v = makeString(["%s", "nextPool"], a)
4446
45-let v = makeString(["%s", "nextUser"], a)
47+let w = makeString(["%s", "nextUser"], a)
4648
47-let w = makeString(["%s", "startHeight"], a)
49+let x = makeString(["%s", "startHeight"], a)
4850
49-let x = makeString(["%s", "currentEpochUi"], a)
51+let y = makeString(["%s", "currentEpochUi"], a)
5052
51-let y = makeString(["%s", "startHeightUi"], a)
53+let z = makeString(["%s", "startHeightUi"], a)
5254
53-let z = makeString(["%s", "force"], a)
55+let A = makeString(["%s", "force"], a)
5456
55-func A (j) = makeString(["%s%d", "startHeight", toString(j)], a)
57+func B () = "%s__allowedLpScriptHash"
5658
5759
58-func B (j) = makeString(["%s%d", "finalized", toString(j)], a)
60+func C () = "%s__allowedLpStableScriptHash"
5961
6062
61-func C (D) = {
62- let E = D
63- let F = E._1
64- let G = E._2
65- makeString(["%s%s%s", "inList", F, G], a)
63+func D (k) = makeString(["%s%d", "startHeight", toString(k)], a)
64+
65+
66+func E (k) = makeString(["%s%d", "finalized", toString(k)], a)
67+
68+
69+func F (G) = {
70+ let H = G
71+ let I = H._1
72+ let J = H._2
73+ makeString(["%s%s%s", "inList", I, J], a)
6674 }
6775
6876
69-func H (D,j) = {
70- let I = D
71- let F = I._1
72- let G = I._2
73- makeString(["%s%s%s%d", "insufficientBalances", F, G, toString(j)], a)
77+func K (G,k) = {
78+ let L = G
79+ let I = L._1
80+ let J = L._2
81+ makeString(["%s%s%s%d", "insufficientBalances", I, J, toString(k)], a)
7482 }
7583
7684
77-func J (K,j) = makeString(["%s%s%d", "used", toString(K), toString(j)], a)
85+func M (N,k) = makeString(["%s%s%d", "used", toString(N), toString(k)], a)
7886
7987
80-func L (D,K,j) = {
81- let M = D
82- let F = M._1
83- let G = M._2
84- makeString(["%s%s%s%s%d", "vote", F, G, toString(K), toString(j)], a)
88+func O (G,N,k) = {
89+ let P = G
90+ let I = P._1
91+ let J = P._2
92+ makeString(["%s%s%s%s%d", "vote", I, J, toString(N), toString(k)], a)
8593 }
8694
8795
88-func N (D,j) = {
89- let O = D
90- let F = O._1
91- let G = O._2
92- makeString(["%s%s%s%d", "votingResult", F, G, toString(j)], a)
96+func Q (G,k) = {
97+ let R = G
98+ let I = R._1
99+ let J = R._2
100+ makeString(["%s%s%s%d", "votingResult", I, J, toString(k)], a)
93101 }
94102
95103
96-func P (Q,j) = makeString(["%s%s%d", "votingResultStaked", Q, toString(j)], a)
104+func S (T,k) = makeString(["%s%s%d", "votingResultStaked", T, toString(k)], a)
97105
98106
99-func R (D,j) = {
100- let S = D
101- let F = S._1
102- let G = S._2
103- makeString(["%s%s%s%d", "poolShare", F, G, toString(j)], a)
107+func U (G,k) = {
108+ let V = G
109+ let I = V._1
110+ let J = V._2
111+ makeString(["%s%s%s%d", "poolShare", I, J, toString(k)], a)
104112 }
105113
106114
107-func T (j) = makeString(["%s%d", "totalVotes", toString(j)], a)
115+func W (k) = makeString(["%s%d", "totalVotes", toString(k)], a)
108116
109117
110-func U (Q,V) = makeString(["%s%s%s", "staked", V, Q], a)
118+func X (T,Y) = makeString(["%s%s%s", "staked", Y, T], a)
111119
112120
113-func W (X) = makeString(["voting_emission.ride:", X], " ")
121+func Z (aa) = makeString(["voting_emission.ride:", aa], " ")
114122
115123
116-func Y (X) = throw(W(X))
124+func ab (aa) = throw(Z(aa))
117125
118126
119-func Z (K,aa,ab) = {
120- let ac = W(makeString(["mandatory ", toString(K), ".", aa, " is not defined"], ""))
127+func ac (N,ad,ae) = {
128+ let af = Z(makeString(["mandatory ", toString(N), ".", ad, " is not defined"], ""))
121129 valueOrErrorMessage({
122- let ad = ab
123- if ($isInstanceOf(ad, "String"))
130+ let ag = ae
131+ if ($isInstanceOf(ag, "String"))
124132 then {
125- let ae = ad
126- getString(K, aa)
133+ let ah = ag
134+ getString(N, ad)
127135 }
128- else if ($isInstanceOf(ad, "Int"))
136+ else if ($isInstanceOf(ag, "Int"))
129137 then {
130- let af = ad
131- getInteger(K, aa)
138+ let ai = ag
139+ getInteger(N, ad)
132140 }
133- else Y("invalid entry type")
134- }, ac)
141+ else ab("invalid entry type")
142+ }, af)
135143 }
136144
137145
138-func ag (K,aa) = {
139- let ah = Z(K, aa, "")
140- if ($isInstanceOf(ah, "String"))
141- then ah
142- else throw(($getType(ah) + " couldn't be cast to String"))
146+func aj (N,ad) = {
147+ let ak = ac(N, ad, "")
148+ if ($isInstanceOf(ak, "String"))
149+ then ak
150+ else throw(($getType(ak) + " couldn't be cast to String"))
143151 }
144152
145153
146-func ai (K,aa) = {
147- let ah = Z(K, aa, 0)
148- if ($isInstanceOf(ah, "Int"))
149- then ah
150- else throw(($getType(ah) + " couldn't be cast to Int"))
154+func al (N,ad) = {
155+ let ak = ac(N, ad, 0)
156+ if ($isInstanceOf(ak, "Int"))
157+ then ak
158+ else throw(($getType(ak) + " couldn't be cast to Int"))
151159 }
152160
153161
154-func aj (D) = ((D._1 + a) + D._2)
162+func am (G) = ((G._1 + a) + G._2)
155163
156164
157-func ak (ae) = {
158- let al = split(ae, a)
159- if ((size(al) == 2))
160- then $Tuple2(al[0], al[1])
161- else Y("invalid pool string")
165+func an (ah) = {
166+ let ao = split(ah, a)
167+ if ((size(ao) == 2))
168+ then $Tuple2(ao[0], ao[1])
169+ else ab("invalid pool string")
162170 }
163171
164172
165-let am = addressFromStringValue(ag(this, p))
173+let ap = addressFromStringValue(aj(this, q))
166174
167-let an = 10
175+let aq = 10
168176
169-func ao () = "%s__factoryConfig"
177+func ar () = "%s__factoryConfig"
170178
171179
172-func ap (aq) = split(ag(aq, ao()), a)
180+func as (at) = split(aj(at, ar()), a)
173181
174182
175-func ar (as) = addressFromStringValue(as[an])
183+func au (av) = addressFromStringValue(av[aq])
176184
177185
178-func at (F,G) = {
179- let au = {
180- let ah = invoke(am, "poolInfoREADONLY", [F, G], nil)
181- if ($isInstanceOf(ah, "(Address, ByteVector)"))
182- then ah
186+func aw (ax) = if ((ax == g))
187+ then unit
188+ else fromBase58String(ax)
189+
190+
191+func ay (ax) = if ((ax == unit))
192+ then g
193+ else toBase58String(value(ax))
194+
195+
196+func az (I,J) = {
197+ let aA = {
198+ let ak = invoke(ap, "poolInfoREADONLY", [I, J], nil)
199+ if ($isInstanceOf(ak, "(Address, ByteVector)"))
200+ then ak
183201 else unit
184202 }
185- au
203+ aA
186204 }
187205
188206
189-func av (F,G) = {
190- func aw (ax) = ("%s%s%s__mappings__baseAsset2internalId__" + ax)
207+func aB (I,J) = {
208+ func aC (aD) = ("%s%s%s__mappings__baseAsset2internalId__" + aD)
191209
192- func ay (az,aA) = (((("%d%d%s%s__" + toString(az)) + "__") + toString(aA)) + "__mappings__poolAssets2PoolContract")
210+ func aE (aF,aG) = (((("%d%d%s%s__" + toString(aF)) + "__") + toString(aG)) + "__mappings__poolAssets2PoolContract")
193211
194- func aB (aC) = (("%s%s%s__" + aC) + "__mappings__poolContract2LpAsset")
212+ func aH (aI) = (("%s%s%s__" + aI) + "__mappings__poolContract2LpAsset")
195213
196- let aD = ai(am, aw(F))
197- let aE = ai(am, aw(G))
198- let aC = ag(am, ay(aD, aE))
199- let aF = ag(am, aB(aC))
200- aF
214+ let aJ = al(ap, aC(I))
215+ let aK = al(ap, aC(J))
216+ let aI = aj(ap, aE(aJ, aK))
217+ let aL = aj(ap, aH(aI))
218+ aL
201219 }
202220
203221
204-func aG (D) = {
205- let aH = D
206- let F = aH._1
207- let G = aH._2
208- let ah = invoke(am, "checkWxEmissionPoolLabel", [F, G], nil)
209- if ($isInstanceOf(ah, "Boolean"))
210- then ah
211- else throw(($getType(ah) + " couldn't be cast to Boolean"))
222+func aM (G) = {
223+ let aN = G
224+ let I = aN._1
225+ let J = aN._2
226+ let ak = invoke(ap, "checkWxEmissionPoolLabel", [I, J], nil)
227+ if ($isInstanceOf(ak, "Boolean"))
228+ then ak
229+ else throw(($getType(ak) + " couldn't be cast to Boolean"))
212230 }
213231
214232
215-func aI () = {
216- let as = ap(am)
217- let aJ = ar(as)
218- invoke(aJ, "deposit", nil, nil)
233+func aO () = {
234+ let av = as(ap)
235+ let aP = au(av)
236+ invoke(aP, "deposit", nil, nil)
219237 }
220238
221239
222-let aK = "pools"
240+let aQ = "pools"
223241
224-func aL (D) = {
225- let aM = D
226- let F = aM._1
227- let G = aM._2
228- makeString(["votes", F, G], a)
242+func aR (G) = {
243+ let aS = G
244+ let I = aS._1
245+ let J = aS._2
246+ makeString(["votes", I, J], a)
229247 }
230248
231249
232-func aN (aO) = {
233- let aP = if ((aO == aK))
250+func aT (aU) = {
251+ let aV = if ((aU == aQ))
234252 then "%s%s"
235253 else "%s%s%s%s"
236- makeString([aP, aO, "head"], a)
254+ makeString([aV, aU, "head"], a)
237255 }
238256
239257
240-func aQ (aO) = {
241- let aP = if ((aO == aK))
258+func aW (aU) = {
259+ let aV = if ((aU == aQ))
242260 then "%s%s"
243261 else "%s%s%s%s"
244- makeString([aP, aO, "size"], a)
262+ makeString([aV, aU, "size"], a)
245263 }
246264
247265
248-func aR (aO,aS) = {
249- let aP = if ((aO == aK))
266+func aX (aU,aY) = {
267+ let aV = if ((aU == aQ))
250268 then "%s%s%s%s"
251269 else "%s%s%s%s%s"
252- makeString([aP, aO, aS, "prev"], a)
270+ makeString([aV, aU, aY, "prev"], a)
253271 }
254272
255273
256-func aT (aO,aS) = {
257- let aP = if ((aO == aK))
274+func aZ (aU,aY) = {
275+ let aV = if ((aU == aQ))
258276 then "%s%s%s%s"
259277 else "%s%s%s%s%s"
260- makeString([aP, aO, aS, "next"], a)
278+ makeString([aV, aU, aY, "next"], a)
261279 }
262280
263281
264-func aU (aO,aS) = {
265- let aV = getString(this, aN(aO))
266- let aW = getString(this, aR(aO, aS))
267- let aX = getString(this, aT(aO, aS))
268- if (if ((aS == valueOrElse(aV, "")))
282+func ba (aU,aY) = {
283+ let bb = getString(this, aT(aU))
284+ let bc = getString(this, aX(aU, aY))
285+ let bd = getString(this, aZ(aU, aY))
286+ if (if ((aY == valueOrElse(bb, "")))
269287 then true
270- else (aW != unit))
288+ else (bc != unit))
271289 then true
272- else (aX != unit)
290+ else (bd != unit)
273291 }
274292
275293
276-func aY (aO,aS) = {
277- let aV = getString(this, aN(aO))
278- let aZ = valueOrElse(getInteger(this, aQ(aO)), 0)
279- let ba = if (!(aU(aO, aS)))
294+func be (aU,aY) = {
295+ let bb = getString(this, aT(aU))
296+ let bf = valueOrElse(getInteger(this, aW(aU)), 0)
297+ let bg = if (!(ba(aU, aY)))
280298 then true
281- else Y("Node exists")
282- if ((ba == ba))
283- then (([IntegerEntry(aQ(aO), (aZ + 1))] ++ (if ((aV != unit))
284- then [StringEntry(aT(aO, aS), value(aV)), StringEntry(aR(aO, value(aV)), aS)]
285- else nil)) ++ [StringEntry(aN(aO), aS)])
299+ else ab("Node exists")
300+ if ((bg == bg))
301+ then (([IntegerEntry(aW(aU), (bf + 1))] ++ (if ((bb != unit))
302+ then [StringEntry(aZ(aU, aY), value(bb)), StringEntry(aX(aU, value(bb)), aY)]
303+ else nil)) ++ [StringEntry(aT(aU), aY)])
286304 else throw("Strict value is not equal to itself.")
287305 }
288306
289307
290-func bb (aO,aS) = {
291- let aV = getString(this, aN(aO))
292- let aZ = valueOrElse(getInteger(this, aQ(aO)), 0)
293- let aW = getString(this, aR(aO, aS))
294- let aX = getString(this, aT(aO, aS))
295- ([IntegerEntry(aQ(aO), (aZ - 1))] ++ (if (if ((aW != unit))
296- then (aX != unit)
308+func bh (aU,aY) = {
309+ let bb = getString(this, aT(aU))
310+ let bf = valueOrElse(getInteger(this, aW(aU)), 0)
311+ let bc = getString(this, aX(aU, aY))
312+ let bd = getString(this, aZ(aU, aY))
313+ ([IntegerEntry(aW(aU), (bf - 1))] ++ (if (if ((bc != unit))
314+ then (bd != unit)
297315 else false)
298- then [StringEntry(aT(aO, value(aW)), value(aX)), StringEntry(aR(aO, value(aX)), value(aW)), DeleteEntry(aR(aO, aS)), DeleteEntry(aT(aO, aS))]
299- else if ((aX != unit))
300- then [StringEntry(aN(aO), value(aX)), DeleteEntry(aT(aO, aS)), DeleteEntry(aR(aO, value(aX)))]
301- else if ((aW != unit))
302- then [DeleteEntry(aR(aO, aS)), DeleteEntry(aT(aO, value(aW)))]
303- else if ((aS == valueOrElse(aV, "")))
304- then [DeleteEntry(aN(aO))]
305- else Y(((("invalid node: " + aO) + ".") + aS))))
316+ then [StringEntry(aZ(aU, value(bc)), value(bd)), StringEntry(aX(aU, value(bd)), value(bc)), DeleteEntry(aX(aU, aY)), DeleteEntry(aZ(aU, aY))]
317+ else if ((bd != unit))
318+ then [StringEntry(aT(aU), value(bd)), DeleteEntry(aZ(aU, aY)), DeleteEntry(aX(aU, value(bd)))]
319+ else if ((bc != unit))
320+ then [DeleteEntry(aX(aU, aY)), DeleteEntry(aZ(aU, value(bc)))]
321+ else if ((aY == valueOrElse(bb, "")))
322+ then [DeleteEntry(aT(aU))]
323+ else ab(((("invalid node: " + aU) + ".") + aY))))
306324 }
307325
308326
309-func bc () = "%s__managerVaultAddress"
327+func bi () = "%s__managerVaultAddress"
310328
311329
312-func bd () = "%s__managerPublicKey"
330+func bj () = "%s__managerPublicKey"
313331
314332
315-func be () = {
316- let ad = getString(bc())
317- if ($isInstanceOf(ad, "String"))
333+func bk () = {
334+ let ag = getString(bi())
335+ if ($isInstanceOf(ag, "String"))
318336 then {
319- let bf = ad
320- addressFromStringValue(bf)
337+ let bl = ag
338+ addressFromStringValue(bl)
321339 }
322340 else this
323341 }
324342
325343
326-func bg () = {
327- let bh = be()
328- let ad = getString(bh, bd())
329- if ($isInstanceOf(ad, "String"))
344+func bm () = {
345+ let bn = bk()
346+ let ag = getString(bn, bj())
347+ if ($isInstanceOf(ag, "String"))
330348 then {
331- let bf = ad
332- fromBase58String(bf)
349+ let bl = ag
350+ fromBase58String(bl)
333351 }
334- else if ($isInstanceOf(ad, "Unit"))
352+ else if ($isInstanceOf(ag, "Unit"))
335353 then unit
336354 else throw("Match error")
337355 }
338356
339357
340-func bi (bj) = {
341- let ad = bg()
342- if ($isInstanceOf(ad, "ByteVector"))
358+func bo (bp) = {
359+ let ag = bm()
360+ if ($isInstanceOf(ag, "ByteVector"))
343361 then {
344- let bk = ad
345- (bj.callerPublicKey == bk)
362+ let bq = ag
363+ (bp.callerPublicKey == bq)
346364 }
347- else if ($isInstanceOf(ad, "Unit"))
348- then (bj.caller == this)
365+ else if ($isInstanceOf(ag, "Unit"))
366+ then (bp.caller == this)
349367 else throw("Match error")
350368 }
351369
352370
353-func bl (bj) = if (bi(bj))
371+func br (bp) = if (bo(bp))
354372 then true
355373 else throw("permission denied")
356374
357375
358-func bm (bj) = if ((bj.caller == this))
376+func bs (bp) = if ((bp.caller == this))
359377 then true
360378 else throw("permission denied")
361379
362380
363-@Callable(bj)
364-func getUserGwxAmountAtHeight (bn,bo) = {
365- let bp = valueOrErrorMessage(addressFromString(ag(this, q)), W("invalid boosting contract address"))
381+@Callable(bp)
382+func getUserGwxAmountAtHeight (bt,bu) = {
383+ let bv = valueOrErrorMessage(addressFromString(aj(this, r)), Z("invalid boosting contract address"))
366384 $Tuple2(nil, {
367- let ah = invoke(bp, "getUserGwxAmountAtHeightREADONLY", [bn, bo], nil)
368- if ($isInstanceOf(ah, "Int"))
369- then ah
370- else throw(($getType(ah) + " couldn't be cast to Int"))
385+ let ak = invoke(bv, "getUserGwxAmountAtHeightREADONLY", [bt, bu], nil)
386+ if ($isInstanceOf(ak, "Int"))
387+ then ak
388+ else throw(($getType(ak) + " couldn't be cast to Int"))
371389 })
372390 }
373391
374392
375393
376-@Callable(bj)
377-func constructor (am,bq,br,bs,bt) = {
378- let bu = [bl(bj), if ((addressFromString(am) != unit))
394+@Callable(bp)
395+func constructor (ap,bw,bx,by,bz) = {
396+ let bA = [br(bp), if ((addressFromString(ap) != unit))
379397 then true
380- else "invalid factory contract address", if ((addressFromString(bq) != unit))
398+ else "invalid factory contract address", if ((addressFromString(bw) != unit))
381399 then true
382- else "invalid voting emission candidate contract address", if ((addressFromString(br) != unit))
400+ else "invalid voting emission candidate contract address", if ((addressFromString(bx) != unit))
383401 then true
384- else "invalid boosting contract address", if ((addressFromString(bs) != unit))
402+ else "invalid boosting contract address", if ((addressFromString(by) != unit))
385403 then true
386- else "invalid staking contract address", if ((bt > 0))
404+ else "invalid staking contract address", if ((bz > 0))
387405 then true
388- else Y("invalid epoch length")]
389- if ((bu == bu))
390- then $Tuple2([StringEntry(p, am), StringEntry(n, bq), StringEntry(q, br), StringEntry(r, bs), IntegerEntry(g, bt)], unit)
406+ else ab("invalid epoch length")]
407+ if ((bA == bA))
408+ then $Tuple2([StringEntry(q, ap), StringEntry(o, bw), StringEntry(r, bx), StringEntry(s, by), IntegerEntry(h, bz)], unit)
391409 else throw("Strict value is not equal to itself.")
392410 }
393411
394412
395413
396-@Callable(bj)
397-func create (F,G) = {
398- let bu = [if ((toBase58String(bj.caller.bytes) == valueOrElse(getString(this, n), "")))
414+@Callable(bp)
415+func create (I,J) = {
416+ let bA = [if ((toBase58String(bp.caller.bytes) == valueOrElse(getString(this, o), "")))
399417 then true
400- else bl(bj)]
401- if ((bu == bu))
418+ else br(bp)]
419+ if ((bA == bA))
402420 then {
403- let D = $Tuple2(F, G)
404- let bv = ([BooleanEntry(C(D), true)] ++ aY(aK, aj(D)))
405- let bw = (getInteger(this, k) == unit)
406- let bx = if (bw)
421+ let G = $Tuple2(I, J)
422+ let bB = ([BooleanEntry(F(G), true)] ++ be(aQ, am(G)))
423+ let bC = (getInteger(this, l) == unit)
424+ let bD = if (bC)
407425 then {
408- let j = 0
409-[IntegerEntry(k, j), IntegerEntry(A(j), height), IntegerEntry(w, height), IntegerEntry(x, j), IntegerEntry(y, height)]
426+ let k = 0
427+[IntegerEntry(l, k), IntegerEntry(D(k), height), IntegerEntry(x, height), IntegerEntry(y, k), IntegerEntry(z, height)]
410428 }
411429 else nil
412- $Tuple2((bv ++ bx), unit)
430+ $Tuple2((bB ++ bD), unit)
413431 }
414432 else throw("Strict value is not equal to itself.")
415433 }
416434
417435
418436
419-@Callable(bj)
420-func vote (F,G,by) = {
421- let D = $Tuple2(F, G)
422- let j = valueOrElse(getInteger(this, k), 0)
423- let bz = ai(this, A(j))
424- let bt = ai(this, g)
425- let bA = (bz + bt)
426- let bB = getInteger(this, t)
427- let bC = valueOrElse(getInteger(this, J(bj.caller, j)), 0)
428- let bD = valueOrElse(getInteger(this, L(D, bj.caller, j)), 0)
429- let bE = valueOrElse(getInteger(this, N(D, j)), 0)
430- let bF = valueOrElse(getInteger(this, T(j)), 0)
431- let bG = {
432- let ah = invoke(this, "getUserGwxAmountAtHeight", [toBase58String(bj.caller.bytes), bA], nil)
433- if ($isInstanceOf(ah, "Int"))
434- then ah
435- else throw(($getType(ah) + " couldn't be cast to Int"))
437+@Callable(bp)
438+func vote (I,J,bE) = {
439+ let G = $Tuple2(I, J)
440+ let k = valueOrElse(getInteger(this, l), 0)
441+ let bF = al(this, D(k))
442+ let bz = al(this, h)
443+ let bG = (bF + bz)
444+ let bH = getInteger(this, u)
445+ let bI = valueOrElse(getInteger(this, M(bp.caller, k)), 0)
446+ let bJ = valueOrElse(getInteger(this, O(G, bp.caller, k)), 0)
447+ let bK = valueOrElse(getInteger(this, Q(G, k)), 0)
448+ let bL = valueOrElse(getInteger(this, W(k)), 0)
449+ let bM = {
450+ let ak = invoke(this, "getUserGwxAmountAtHeight", [toBase58String(bp.caller.bytes), bG], nil)
451+ if ($isInstanceOf(ak, "Int"))
452+ then ak
453+ else throw(($getType(ak) + " couldn't be cast to Int"))
436454 }
437- let bH = (bG - bC)
438- let bI = (bD + by)
439- let bJ = aG(D)
440- let bu = [if ((getBoolean(C(D)) != unit))
455+ let bN = (bM - bI)
456+ let bO = (bJ + bE)
457+ let bP = aM(G)
458+ let bA = [if ((getBoolean(F(G)) != unit))
441459 then true
442- else Y("invalid assets"), if ((bA > height))
460+ else ab("invalid assets"), if ((bG > height))
443461 then true
444- else Y("invalid height"), if ((bB == unit))
462+ else ab("invalid height"), if ((bH == unit))
445463 then true
446- else Y("finalization in progress"), if ((bG > 0))
464+ else ab("finalization in progress"), if ((bM > 0))
447465 then true
448- else Y("you do not have gWX"), if (if ((by > 0))
449- then (bH >= by)
466+ else ab("you do not have gWX"), if (if ((bE > 0))
467+ then (bN >= bE)
450468 else false)
451469 then true
452- else Y("invalid amount"), if (bJ)
470+ else ab("invalid amount"), if (bP)
453471 then true
454- else Y("pool hasn't WX_EMISSION label")]
455- if ((bu == bu))
472+ else ab("pool hasn't WX_EMISSION label")]
473+ if ((bA == bA))
456474 then {
457- let bK = aL(D)
458- let V = toString(bj.caller)
459- let bL = if (aU(bK, V))
475+ let bQ = aR(G)
476+ let Y = toString(bp.caller)
477+ let bR = if (ba(bQ, Y))
460478 then nil
461- else aY(bK, V)
462- $Tuple2(([IntegerEntry(J(bj.caller, j), (bC + by)), IntegerEntry(L(D, bj.caller, j), bI), IntegerEntry(N(D, j), (bE + by)), IntegerEntry(T(j), (bF + by))] ++ bL), unit)
479+ else be(bQ, Y)
480+ $Tuple2(([IntegerEntry(M(bp.caller, k), (bI + bE)), IntegerEntry(O(G, bp.caller, k), bO), IntegerEntry(Q(G, k), (bK + bE)), IntegerEntry(W(k), (bL + bE))] ++ bR), unit)
463481 }
464482 else throw("Strict value is not equal to itself.")
465483 }
466484
467485
468486
469-@Callable(bj)
470-func cancelVote (F,G) = {
471- let D = $Tuple2(F, G)
472- let j = valueOrElse(getInteger(this, k), 0)
473- let bz = ai(this, A(j))
474- let bt = ai(this, g)
475- let bA = (bz + bt)
476- let bB = getInteger(this, t)
477- let bC = valueOrElse(getInteger(this, J(bj.caller, j)), 0)
478- let bD = valueOrElse(getInteger(this, L(D, bj.caller, j)), 0)
479- let bE = valueOrElse(getInteger(this, N(D, j)), 0)
480- let bF = valueOrElse(getInteger(this, T(j)), 0)
481- let bu = [if ((getBoolean(C(D)) != unit))
487+@Callable(bp)
488+func cancelVote (I,J) = {
489+ let G = $Tuple2(I, J)
490+ let k = valueOrElse(getInteger(this, l), 0)
491+ let bF = al(this, D(k))
492+ let bz = al(this, h)
493+ let bG = (bF + bz)
494+ let bH = getInteger(this, u)
495+ let bI = valueOrElse(getInteger(this, M(bp.caller, k)), 0)
496+ let bJ = valueOrElse(getInteger(this, O(G, bp.caller, k)), 0)
497+ let bK = valueOrElse(getInteger(this, Q(G, k)), 0)
498+ let bL = valueOrElse(getInteger(this, W(k)), 0)
499+ let bA = [if ((getBoolean(F(G)) != unit))
482500 then true
483- else Y("invalid assets"), if ((bA > height))
501+ else ab("invalid assets"), if ((bG > height))
484502 then true
485- else Y("invalid height"), if ((bB == unit))
503+ else ab("invalid height"), if ((bH == unit))
486504 then true
487- else Y("finalization in progress"), if ((bD > 0))
505+ else ab("finalization in progress"), if ((bJ > 0))
488506 then true
489- else Y("no vote")]
490- if ((bu == bu))
507+ else ab("no vote")]
508+ if ((bA == bA))
491509 then {
492- let bK = aL(D)
493- let V = toString(bj.caller)
494- $Tuple2(([IntegerEntry(J(bj.caller, j), max([(bC - bD), 0])), DeleteEntry(L(D, bj.caller, j)), IntegerEntry(N(D, j), (bE - bD)), IntegerEntry(T(j), (bF - bD))] ++ bb(bK, V)), unit)
510+ let bQ = aR(G)
511+ let Y = toString(bp.caller)
512+ $Tuple2(([IntegerEntry(M(bp.caller, k), max([(bI - bJ), 0])), DeleteEntry(O(G, bp.caller, k)), IntegerEntry(Q(G, k), (bK - bJ)), IntegerEntry(W(k), (bL - bJ))] ++ bh(bQ, Y)), unit)
495513 }
496514 else throw("Strict value is not equal to itself.")
497515 }
498516
499517
500518
501-@Callable(bj)
502-func setEpochLength (bM) = {
503- let bu = [bl(bj), if ((bM > 0))
519+@Callable(bp)
520+func setEpochLength (bS) = {
521+ let bA = [br(bp), if ((bS > 0))
504522 then true
505- else Y("invalid epoch length")]
506- if ((bu == bu))
507- then $Tuple2([IntegerEntry(h, bM)], unit)
523+ else ab("invalid epoch length")]
524+ if ((bA == bA))
525+ then $Tuple2([IntegerEntry(i, bS)], unit)
508526 else throw("Strict value is not equal to itself.")
509527 }
510528
511529
512530
513-@Callable(bj)
514-func setMaxDepth (bN) = {
515- let bu = [bl(bj), if ((bN > 0))
531+@Callable(bp)
532+func setMaxDepth (bT) = {
533+ let bA = [br(bp), if ((bT > 0))
516534 then true
517- else Y("invalid max depth")]
518- if ((bu == bu))
519- then $Tuple2([IntegerEntry(l, bN)], unit)
535+ else ab("invalid max depth")]
536+ if ((bA == bA))
537+ then $Tuple2([IntegerEntry(m, bT)], unit)
520538 else throw("Strict value is not equal to itself.")
521539 }
522540
523541
524542
525-@Callable(bj)
526-func processPoolBalanceINTERNAL (bO) = {
527- let bP = bm(bj)
528- if ((bP == bP))
543+@Callable(bp)
544+func processPoolBalanceINTERNAL (bU) = {
545+ let bV = bs(bp)
546+ if ((bV == bV))
529547 then {
530- let j = ai(this, k)
531- let bQ = (j - 1)
532- let D = ak(bO)
533- let bR = D
534- let F = bR._1
535- let G = bR._2
536- let aF = av(F, G)
537- let bS = {
538- let ah = invoke(am, "checkBalance", [aF], nil)
539- if ($isInstanceOf(ah, "Boolean"))
540- then ah
541- else throw(($getType(ah) + " couldn't be cast to Boolean"))
548+ let k = al(this, l)
549+ let bW = (k - 1)
550+ let G = an(bU)
551+ let bX = G
552+ let I = bX._1
553+ let J = bX._2
554+ let aL = aB(I, J)
555+ let bY = {
556+ let ak = invoke(ap, "checkBalance", [aL], nil)
557+ if ($isInstanceOf(ak, "Boolean"))
558+ then ak
559+ else throw(($getType(ak) + " couldn't be cast to Boolean"))
542560 }
543- let bT = !(valueOrElse(getBoolean(this, H(D, (bQ - 1))), false))
544- let bU = if (!(bS))
545- then if (!(bT))
561+ let bZ = !(valueOrElse(getBoolean(this, K(G, (bW - 1))), false))
562+ let ca = if (!(bY))
563+ then if (!(bZ))
546564 then {
547- let bV = invoke(am, "deleteWxEmissionPoolLabel", [F, G], nil)
548- if ((bV == bV))
565+ let cb = invoke(ap, "deleteWxEmissionPoolLabel", [I, J], nil)
566+ if ((cb == cb))
549567 then {
550- let bW = invoke(am, "modifyWeight", [aF, 0], nil)
551- if ((bW == bW))
568+ let cc = invoke(ap, "modifyWeight", [aL, 0], nil)
569+ if ((cc == cc))
552570 then {
553- let bX = valueOrErrorMessage(at(F, G), W("invalid assets"))._1
554- let bY = 3
555- let bZ = invoke(am, "managePool", [toString(bX), bY], nil)
556- if ((bZ == bZ))
571+ let cd = valueOrErrorMessage(az(I, J), Z("invalid assets"))._1
572+ let ce = 3
573+ let cf = invoke(ap, "managePool", [toString(cd), ce], nil)
574+ if ((cf == cf))
557575 then {
558- let ca = ([DeleteEntry(C(D))] ++ bb(aK, aj(D)))
559- ([IntegerEntry(R(D, bQ), 0)] ++ ca)
576+ let cg = ([DeleteEntry(F(G))] ++ bh(aQ, am(G)))
577+ ([IntegerEntry(U(G, bW), 0)] ++ cg)
560578 }
561579 else throw("Strict value is not equal to itself.")
562580 }
563581 else throw("Strict value is not equal to itself.")
564582 }
565583 else throw("Strict value is not equal to itself.")
566584 }
567- else [BooleanEntry(H(D, bQ), true)]
585+ else [BooleanEntry(K(G, bW), true)]
568586 else nil
569- $Tuple2(bU, unit)
587+ $Tuple2(ca, unit)
570588 }
571589 else throw("Strict value is not equal to itself.")
572590 }
573591
574592
575593
576-@Callable(bj)
577-func processVoteINTERNAL (bO,V) = {
578- let bP = bm(bj)
579- if ((bP == bP))
594+@Callable(bp)
595+func processVoteINTERNAL (bU,Y) = {
596+ let bV = bs(bp)
597+ if ((bV == bV))
580598 then {
581- let bn = valueOrErrorMessage(addressFromString(V), W(("processVoteINTERNAL: invalid user address " + V)))
582- let j = ai(this, k)
583- let bQ = (j - 1)
584- let bt = ai(this, g)
585- let bz = ai(this, A(j))
586- let bA = (bz + bt)
587- let cb = ai(this, A(bQ))
588- let cc = ai(this, i(bQ))
589- let cd = (cb + cc)
590- let ce = if ((bQ >= 0))
599+ let bt = valueOrErrorMessage(addressFromString(Y), Z(("processVoteINTERNAL: invalid user address " + Y)))
600+ let k = al(this, l)
601+ let bW = (k - 1)
602+ let bz = al(this, h)
603+ let bF = al(this, D(k))
604+ let bG = (bF + bz)
605+ let ch = al(this, D(bW))
606+ let ci = al(this, j(bW))
607+ let cj = (ch + ci)
608+ let ck = if ((bW >= 0))
591609 then true
592- else Y("processVoteINTERNAL: invalid previous epoch")
593- if ((ce == ce))
610+ else ab("processVoteINTERNAL: invalid previous epoch")
611+ if ((ck == ck))
594612 then {
595- let D = ak(bO)
596- let cf = D
597- let F = cf._1
598- let G = cf._2
599- let bG = {
600- let ah = invoke(this, "getUserGwxAmountAtHeight", [V, bA], nil)
601- if ($isInstanceOf(ah, "Int"))
602- then ah
603- else throw(($getType(ah) + " couldn't be cast to Int"))
613+ let G = an(bU)
614+ let cl = G
615+ let I = cl._1
616+ let J = cl._2
617+ let bM = {
618+ let ak = invoke(this, "getUserGwxAmountAtHeight", [Y, bG], nil)
619+ if ($isInstanceOf(ak, "Int"))
620+ then ak
621+ else throw(($getType(ak) + " couldn't be cast to Int"))
604622 }
605- let cg = {
606- let ah = invoke(this, "getUserGwxAmountAtHeight", [V, cd], nil)
607- if ($isInstanceOf(ah, "Int"))
608- then ah
609- else throw(($getType(ah) + " couldn't be cast to Int"))
623+ let cm = {
624+ let ak = invoke(this, "getUserGwxAmountAtHeight", [Y, cj], nil)
625+ if ($isInstanceOf(ak, "Int"))
626+ then ak
627+ else throw(($getType(ak) + " couldn't be cast to Int"))
610628 }
611- let bF = valueOrElse(getInteger(T(j)), 0)
612- let ch = valueOrElse(getInteger(N(D, j)), 0)
613- let ci = valueOrErrorMessage(getInteger(L(D, bn, bQ)), W((((("processVoteINTERNAL " + bO) + " ") + V) + ": no previous vote")))
614- let bC = valueOrElse(getInteger(this, J(bn, j)), 0)
615- let Q = av(F, G)
616- let cj = valueOrElse(getInteger(P(Q, bQ)), 0)
617- let bs = addressFromStringValue(ag(this, r))
618- let ck = valueOrElse(getInteger(bs, U(Q, V)), 0)
619- let cl = if ((ck == 0))
629+ let bL = valueOrElse(getInteger(W(k)), 0)
630+ let cn = valueOrElse(getInteger(Q(G, k)), 0)
631+ let co = valueOrErrorMessage(getInteger(O(G, bt, bW)), Z((((("processVoteINTERNAL " + bU) + " ") + Y) + ": no previous vote")))
632+ let bI = valueOrElse(getInteger(this, M(bt, k)), 0)
633+ let T = aB(I, J)
634+ let cp = valueOrElse(getInteger(S(T, bW)), 0)
635+ let by = addressFromStringValue(aj(this, s))
636+ let cq = valueOrElse(getInteger(by, X(T, Y)), 0)
637+ let cr = if ((cq == 0))
620638 then nil
621- else [IntegerEntry(P(Q, bQ), (cj + ci))]
622- let aF = av(F, G)
623- let bI = if ((cg > 0))
624- then fraction(ci, bG, cg)
639+ else [IntegerEntry(S(T, bW), (cp + co))]
640+ let aL = aB(I, J)
641+ let bO = if ((cm > 0))
642+ then fraction(co, bM, cm)
625643 else 0
626- let bU = if ((bI > 0))
627- then [IntegerEntry(L(D, bn, j), bI), IntegerEntry(T(j), (bF + bI)), IntegerEntry(N(D, j), (ch + bI)), IntegerEntry(J(bn, j), (bC + bI))]
628- else bb(aL(D), V)
629- $Tuple2((bU ++ cl), unit)
644+ let ca = if ((bO > 0))
645+ then [IntegerEntry(O(G, bt, k), bO), IntegerEntry(W(k), (bL + bO)), IntegerEntry(Q(G, k), (cn + bO)), IntegerEntry(M(bt, k), (bI + bO))]
646+ else bh(aR(G), Y)
647+ $Tuple2((ca ++ cr), unit)
630648 }
631649 else throw("Strict value is not equal to itself.")
632650 }
633651 else throw("Strict value is not equal to itself.")
634652 }
635653
636654
637655
638-@Callable(bj)
639-func processPoolINTERNAL (bO,cm) = {
640- let bP = bm(bj)
641- if ((bP == bP))
656+@Callable(bp)
657+func processPoolINTERNAL (bU,cs) = {
658+ let bV = bs(bp)
659+ if ((bV == bV))
642660 then {
643- let cn = {
644- let co = ai(this, k)
645- if (cm)
646- then co
647- else (co - 1)
661+ let ct = {
662+ let cu = al(this, l)
663+ if (cs)
664+ then cu
665+ else (cu - 1)
648666 }
649- let ce = if ((cn >= 0))
667+ let ck = if ((ct >= 0))
650668 then true
651- else Y("processPoolINTERNAL: invalid target epoch")
652- if ((ce == ce))
669+ else ab("processPoolINTERNAL: invalid target epoch")
670+ if ((ck == ck))
653671 then {
654- let D = ak(bO)
655- let cp = D
656- let F = cp._1
657- let G = cp._2
658- let bs = addressFromStringValue(ag(this, r))
659- let aF = av(F, G)
660- let cq = {
661- let ah = invoke(bs, "usersListTraversal", [aF], nil)
662- if ($isInstanceOf(ah, "Boolean"))
663- then ah
664- else throw(($getType(ah) + " couldn't be cast to Boolean"))
672+ let G = an(bU)
673+ let cv = G
674+ let I = cv._1
675+ let J = cv._2
676+ let by = addressFromStringValue(aj(this, s))
677+ let aL = aB(I, J)
678+ let cw = {
679+ let ak = invoke(by, "usersListTraversal", [aL], nil)
680+ if ($isInstanceOf(ak, "Boolean"))
681+ then ak
682+ else throw(($getType(ak) + " couldn't be cast to Boolean"))
665683 }
666- if ((cq == cq))
667- then if (cq)
684+ if ((cw == cw))
685+ then if (cw)
668686 then $Tuple2(nil, true)
669687 else {
670- let cr = addressFromStringValue(valueOrErrorMessage(getString(am, s), "invalid assets store contract"))
671- let bF = valueOrElse(getInteger(this, T(cn)), 0)
672- let ch = valueOrElse(getInteger(this, N(D, cn)), 0)
673- let cs = if ((bF == 0))
688+ let cx = addressFromStringValue(valueOrErrorMessage(getString(ap, t), "invalid assets store contract"))
689+ let bL = valueOrElse(getInteger(this, W(ct)), 0)
690+ let cn = valueOrElse(getInteger(this, Q(G, ct)), 0)
691+ let cy = if ((bL == 0))
674692 then 0
675- else fraction(ch, b, bF)
676- let bW = invoke(am, "modifyWeight", [aF, cs], nil)
677- if ((bW == bW))
678- then $Tuple2([IntegerEntry(R(D, cn), cs)], false)
693+ else fraction(cn, b, bL)
694+ let cc = invoke(ap, "modifyWeight", [aL, cy], nil)
695+ if ((cc == cc))
696+ then $Tuple2([IntegerEntry(U(G, ct), cy)], false)
679697 else throw("Strict value is not equal to itself.")
680698 }
681699 else throw("Strict value is not equal to itself.")
682700 }
683701 else throw("Strict value is not equal to itself.")
684702 }
685703 else throw("Strict value is not equal to itself.")
686704 }
687705
688706
689707
690-@Callable(bj)
708+@Callable(bp)
691709 func finalizeHelper () = {
692- let cm = valueOrElse(getBoolean(z), false)
693- let j = valueOrElse(getInteger(this, k), 0)
694- let ct = (j - 1)
695- let bz = ai(this, A(j))
696- let bt = ai(this, g)
697- let bA = (bz + bt)
698- let bB = getInteger(this, t)
699- if (if (if ((height >= bA))
700- then (bB == unit)
710+ let cs = valueOrElse(getBoolean(A), false)
711+ let k = valueOrElse(getInteger(this, l), 0)
712+ let cz = (k - 1)
713+ let bF = al(this, D(k))
714+ let bz = al(this, h)
715+ let bG = (bF + bz)
716+ let bH = getInteger(this, u)
717+ if (if (if ((height >= bG))
718+ then (bH == unit)
701719 else false)
702- then !(cm)
720+ then !(cs)
703721 else false)
704722 then {
705- let cu = (j + 1)
706- let cv = getInteger(this, h)
707- let cw = {
708- let ad = cv
709- if ($isInstanceOf(ad, "Int"))
723+ let cA = (k + 1)
724+ let cB = getInteger(this, i)
725+ let cC = {
726+ let ag = cB
727+ if ($isInstanceOf(ag, "Int"))
710728 then {
711- let bM = ad
712-[IntegerEntry(g, bM), DeleteEntry(h)]
729+ let bS = ag
730+[IntegerEntry(h, bS), DeleteEntry(i)]
713731 }
714- else if ($isInstanceOf(ad, "Unit"))
732+ else if ($isInstanceOf(ag, "Unit"))
715733 then nil
716734 else throw("Match error")
717735 }
718- $Tuple2(([IntegerEntry(A(cu), height), IntegerEntry(w, height), IntegerEntry(k, cu), IntegerEntry(t, d), IntegerEntry(i(j), bt)] ++ cw), true)
736+ $Tuple2(([IntegerEntry(D(cA), height), IntegerEntry(x, height), IntegerEntry(l, cA), IntegerEntry(u, d), IntegerEntry(j(k), bz)] ++ cC), true)
719737 }
720- else if (if (cm)
721- then (bB == unit)
738+ else if (if (cs)
739+ then (bH == unit)
722740 else false)
723- then $Tuple2([IntegerEntry(t, f)], true)
724- else if ((bB == unit))
741+ then $Tuple2([IntegerEntry(u, f)], true)
742+ else if ((bH == unit))
725743 then $Tuple2(nil, false)
726- else if ((bB == d))
744+ else if ((bH == d))
727745 then {
728- let cx = getString(u)
729- let ad = cx
730- if ($isInstanceOf(ad, "Unit"))
746+ let cD = getString(v)
747+ let ag = cD
748+ if ($isInstanceOf(ag, "Unit"))
731749 then {
732- let cy = getString(aN(aK))
733- if ($isInstanceOf(cy, "Unit"))
734- then $Tuple2([IntegerEntry(t, e), DeleteEntry(u)], true)
735- else if ($isInstanceOf(cy, "String"))
750+ let cE = getString(aT(aQ))
751+ if ($isInstanceOf(cE, "Unit"))
752+ then $Tuple2([IntegerEntry(u, e), DeleteEntry(v)], true)
753+ else if ($isInstanceOf(cE, "String"))
736754 then {
737- let cz = cy
738- $Tuple2([StringEntry(u, cz)], true)
755+ let cF = cE
756+ $Tuple2([StringEntry(v, cF)], true)
739757 }
740758 else throw("Match error")
741759 }
742- else if ($isInstanceOf(ad, "String"))
760+ else if ($isInstanceOf(ag, "String"))
743761 then {
744- let bO = ad
745- let cA = getString(aT(aK, bO))
746- if ((cA == cA))
762+ let bU = ag
763+ let cG = getString(aZ(aQ, bU))
764+ if ((cG == cG))
747765 then {
748- let cq = invoke(this, "processPoolBalanceINTERNAL", [bO], nil)
749- if ((cq == cq))
766+ let cw = invoke(this, "processPoolBalanceINTERNAL", [bU], nil)
767+ if ((cw == cw))
750768 then {
751- let cy = cA
752- if ($isInstanceOf(cy, "Unit"))
753- then $Tuple2([IntegerEntry(t, e), DeleteEntry(u)], true)
754- else if ($isInstanceOf(cy, "String"))
769+ let cE = cG
770+ if ($isInstanceOf(cE, "Unit"))
771+ then $Tuple2([IntegerEntry(u, e), DeleteEntry(v)], true)
772+ else if ($isInstanceOf(cE, "String"))
755773 then {
756- let cz = cy
757- $Tuple2([StringEntry(u, cz)], true)
774+ let cF = cE
775+ $Tuple2([StringEntry(v, cF)], true)
758776 }
759777 else throw("Match error")
760778 }
761779 else throw("Strict value is not equal to itself.")
762780 }
763781 else throw("Strict value is not equal to itself.")
764782 }
765783 else throw("Match error")
766784 }
767- else if ((bB == e))
785+ else if ((bH == e))
768786 then {
769- let cx = getString(u)
770- let cB = getString(v)
771- let ad = cx
772- if ($isInstanceOf(ad, "Unit"))
787+ let cD = getString(v)
788+ let cH = getString(w)
789+ let ag = cD
790+ if ($isInstanceOf(ag, "Unit"))
773791 then {
774- let cy = getString(aN(aK))
775- if ($isInstanceOf(cy, "Unit"))
776- then $Tuple2([IntegerEntry(t, f), DeleteEntry(u), DeleteEntry(v)], true)
777- else if ($isInstanceOf(cy, "String"))
792+ let cE = getString(aT(aQ))
793+ if ($isInstanceOf(cE, "Unit"))
794+ then $Tuple2([IntegerEntry(u, f), DeleteEntry(v), DeleteEntry(w)], true)
795+ else if ($isInstanceOf(cE, "String"))
778796 then {
779- let cC = cy
780- $Tuple2([StringEntry(u, cC)], true)
797+ let cI = cE
798+ $Tuple2([StringEntry(v, cI)], true)
781799 }
782800 else throw("Match error")
783801 }
784- else if ($isInstanceOf(ad, "String"))
802+ else if ($isInstanceOf(ag, "String"))
785803 then {
786- let bO = ad
787- let D = ak(bO)
788- let cD = {
789- let cy = cB
790- if ($isInstanceOf(cy, "Unit"))
791- then getString(aN(aL(D)))
792- else if ($isInstanceOf(cy, "String"))
804+ let bU = ag
805+ let G = an(bU)
806+ let cJ = {
807+ let cE = cH
808+ if ($isInstanceOf(cE, "Unit"))
809+ then getString(aT(aR(G)))
810+ else if ($isInstanceOf(cE, "String"))
793811 then {
794- let cE = cy
795- let cF = getString(aT(aL(D), cE))
796- if ((cF == cF))
812+ let cK = cE
813+ let cL = getString(aZ(aR(G), cK))
814+ if ((cL == cL))
797815 then {
798- let cG = invoke(this, "processVoteINTERNAL", [bO, cE], nil)
799- if ((cG == cG))
800- then cF
816+ let cM = invoke(this, "processVoteINTERNAL", [bU, cK], nil)
817+ if ((cM == cM))
818+ then cL
801819 else throw("Strict value is not equal to itself.")
802820 }
803821 else throw("Strict value is not equal to itself.")
804822 }
805823 else throw("Match error")
806824 }
807- let cy = cD
808- if ($isInstanceOf(cy, "Unit"))
825+ let cE = cJ
826+ if ($isInstanceOf(cE, "Unit"))
809827 then {
810- let cA = getString(aT(aK, bO))
811- let cH = cA
812- if ($isInstanceOf(cH, "Unit"))
813- then $Tuple2([IntegerEntry(t, f), DeleteEntry(u), DeleteEntry(v)], true)
814- else if ($isInstanceOf(cH, "String"))
828+ let cG = getString(aZ(aQ, bU))
829+ let cN = cG
830+ if ($isInstanceOf(cN, "Unit"))
831+ then $Tuple2([IntegerEntry(u, f), DeleteEntry(v), DeleteEntry(w)], true)
832+ else if ($isInstanceOf(cN, "String"))
815833 then {
816- let bf = cH
817- $Tuple2([StringEntry(u, bf), DeleteEntry(v)], true)
834+ let bl = cN
835+ $Tuple2([StringEntry(v, bl), DeleteEntry(w)], true)
818836 }
819837 else throw("Match error")
820838 }
821- else if ($isInstanceOf(cy, "String"))
839+ else if ($isInstanceOf(cE, "String"))
822840 then {
823- let cI = cy
824- $Tuple2([StringEntry(v, cI)], true)
841+ let cO = cE
842+ $Tuple2([StringEntry(w, cO)], true)
825843 }
826844 else throw("Match error")
827845 }
828846 else throw("Match error")
829847 }
830- else if ((bB == f))
848+ else if ((bH == f))
831849 then {
832- let cx = getString(u)
833- let ad = cx
834- if ($isInstanceOf(ad, "Unit"))
850+ let cD = getString(v)
851+ let ag = cD
852+ if ($isInstanceOf(ag, "Unit"))
835853 then {
836- let cy = getString(aN(aK))
837- if ($isInstanceOf(cy, "Unit"))
854+ let cE = getString(aT(aQ))
855+ if ($isInstanceOf(cE, "Unit"))
838856 then {
839- let bU = if (cm)
840- then [DeleteEntry(t), DeleteEntry(z)]
841- else [DeleteEntry(t), BooleanEntry(B(ct), true), IntegerEntry(x, j), IntegerEntry(y, bz)]
842- let cJ = aI()
843- if ((cJ == cJ))
844- then $Tuple2(bU, true)
857+ let ca = if (cs)
858+ then [DeleteEntry(u), DeleteEntry(A)]
859+ else [DeleteEntry(u), BooleanEntry(E(cz), true), IntegerEntry(y, k), IntegerEntry(z, bF)]
860+ let cP = aO()
861+ if ((cP == cP))
862+ then $Tuple2(ca, true)
845863 else throw("Strict value is not equal to itself.")
846864 }
847- else if ($isInstanceOf(cy, "String"))
865+ else if ($isInstanceOf(cE, "String"))
848866 then {
849- let cz = cy
850- $Tuple2([StringEntry(u, cz)], true)
867+ let cF = cE
868+ $Tuple2([StringEntry(v, cF)], true)
851869 }
852870 else throw("Match error")
853871 }
854- else if ($isInstanceOf(ad, "String"))
872+ else if ($isInstanceOf(ag, "String"))
855873 then {
856- let bO = ad
857- let cA = getString(aT(aK, bO))
858- if ((cA == cA))
874+ let bU = ag
875+ let cG = getString(aZ(aQ, bU))
876+ if ((cG == cG))
859877 then {
860- let cq = {
861- let ah = invoke(this, "processPoolINTERNAL", [bO, cm], nil)
862- if ($isInstanceOf(ah, "Boolean"))
863- then ah
864- else throw(($getType(ah) + " couldn't be cast to Boolean"))
878+ let cw = {
879+ let ak = invoke(this, "processPoolINTERNAL", [bU, cs], nil)
880+ if ($isInstanceOf(ak, "Boolean"))
881+ then ak
882+ else throw(($getType(ak) + " couldn't be cast to Boolean"))
865883 }
866- if ((cq == cq))
867- then if (cq)
884+ if ((cw == cw))
885+ then if (cw)
868886 then $Tuple2(nil, true)
869887 else {
870- let cy = cA
871- if ($isInstanceOf(cy, "Unit"))
888+ let cE = cG
889+ if ($isInstanceOf(cE, "Unit"))
872890 then {
873- let bU = if (cm)
874- then [DeleteEntry(t), DeleteEntry(z), DeleteEntry(u)]
875- else [DeleteEntry(t), BooleanEntry(B(ct), true), IntegerEntry(x, j), IntegerEntry(y, bz), DeleteEntry(u)]
876- let cJ = aI()
877- if ((cJ == cJ))
878- then $Tuple2(bU, true)
891+ let ca = if (cs)
892+ then [DeleteEntry(u), DeleteEntry(A), DeleteEntry(v)]
893+ else [DeleteEntry(u), BooleanEntry(E(cz), true), IntegerEntry(y, k), IntegerEntry(z, bF), DeleteEntry(v)]
894+ let cP = aO()
895+ if ((cP == cP))
896+ then $Tuple2(ca, true)
879897 else throw("Strict value is not equal to itself.")
880898 }
881- else if ($isInstanceOf(cy, "String"))
899+ else if ($isInstanceOf(cE, "String"))
882900 then {
883- let cz = cy
884- $Tuple2([StringEntry(u, cz)], true)
901+ let cF = cE
902+ $Tuple2([StringEntry(v, cF)], true)
885903 }
886904 else throw("Match error")
887905 }
888906 else throw("Strict value is not equal to itself.")
889907 }
890908 else throw("Strict value is not equal to itself.")
891909 }
892910 else throw("Match error")
893911 }
894- else Y("finalization is broken")
912+ else ab("finalization is broken")
895913 }
896914
897915
898916
899-@Callable(bj)
900-func finalizeWrapper (cK) = {
901- let cL = addressFromStringValue(getStringValue(this, o))
902- let cM = {
903- let ah = invoke(this, "finalizeHelper", nil, nil)
904- if ($isInstanceOf(ah, "Boolean"))
905- then ah
906- else throw(($getType(ah) + " couldn't be cast to Boolean"))
917+@Callable(bp)
918+func finalizeWrapper (cQ) = {
919+ let cR = addressFromStringValue(getStringValue(this, p))
920+ let cS = {
921+ let ak = invoke(this, "finalizeHelper", nil, nil)
922+ if ($isInstanceOf(ak, "Boolean"))
923+ then ak
924+ else throw(($getType(ak) + " couldn't be cast to Boolean"))
907925 }
908- if ((cM == cM))
909- then if (!(cM))
910- then if ((cK == 0))
911- then Y("Current voting is not over yet")
926+ if ((cS == cS))
927+ then if (!(cS))
928+ then if ((cQ == 0))
929+ then ab("Current voting is not over yet")
912930 else {
913- let cN = invoke(cL, "finalize", nil, nil)
914- if ((cN == cN))
931+ let cT = invoke(cR, "finalize", nil, nil)
932+ if ((cT == cT))
915933 then $Tuple2(nil, unit)
916934 else throw("Strict value is not equal to itself.")
917935 }
918936 else {
919- let cO = valueOrElse(getInteger(this, l), c)
920- if ((cO > cK))
937+ let cU = valueOrElse(getInteger(this, m), c)
938+ if ((cU > cQ))
921939 then {
922- let cN = invoke(this, "finalizeWrapper", [(cK + 1)], nil)
923- if ((cN == cN))
940+ let cT = invoke(this, "finalizeWrapper", [(cQ + 1)], nil)
941+ if ((cT == cT))
924942 then $Tuple2(nil, unit)
925943 else throw("Strict value is not equal to itself.")
926944 }
927945 else $Tuple2(nil, unit)
928946 }
929947 else throw("Strict value is not equal to itself.")
930948 }
931949
932950
933951
934-@Callable(bj)
952+@Callable(bp)
935953 func finalize () = {
936- let cN = invoke(this, "finalizeWrapper", [0], nil)
937- if ((cN == cN))
954+ let cT = invoke(this, "finalizeWrapper", [0], nil)
955+ if ((cT == cT))
938956 then $Tuple2(nil, unit)
939957 else throw("Strict value is not equal to itself.")
940958 }
941959
942960
943961
944-@Callable(bj)
945-func containsNodeREADONLY (aO,aS) = $Tuple2(nil, aU(aO, aS))
962+@Callable(bp)
963+func containsNodeREADONLY (aU,aY) = $Tuple2(nil, ba(aU, aY))
946964
947965
948966
949-@Callable(bj)
950-func insertNode (aO,aS) = {
951- let bP = bl(bj)
952- if ((bP == bP))
953- then $Tuple2(aY(aO, aS), unit)
967+@Callable(bp)
968+func insertNode (aU,aY) = {
969+ let bV = br(bp)
970+ if ((bV == bV))
971+ then $Tuple2(be(aU, aY), unit)
954972 else throw("Strict value is not equal to itself.")
955973 }
956974
957975
958976
959-@Callable(bj)
960-func deleteNode (aO,aS) = {
961- let bP = bl(bj)
962- if ((bP == bP))
963- then $Tuple2(bb(aO, aS), unit)
977+@Callable(bp)
978+func deleteNode (aU,aY) = {
979+ let bV = br(bp)
980+ if ((bV == bV))
981+ then $Tuple2(bh(aU, aY), unit)
964982 else throw("Strict value is not equal to itself.")
965983 }
966984
967985
968986
969-@Callable(bj)
987+@Callable(bp)
970988 func isFinalizationInProgress () = {
971- let bB = getInteger(this, t)
972- let cP = (bB != unit)
973- $Tuple2(nil, cP)
989+ let bH = getInteger(this, u)
990+ let cV = (bH != unit)
991+ $Tuple2(nil, cV)
974992 }
975993
976994
977995
978-@Callable(bj)
979-func deletePool (F,G) = {
980- let bP = if (if ((bj.caller == am))
996+@Callable(bp)
997+func deletePool (I,J) = {
998+ let bV = if (if ((bp.caller == ap))
981999 then true
982- else bl(bj))
1000+ else br(bp))
9831001 then true
984- else Y("Permission denied")
985- if ((bP == bP))
1002+ else ab("Permission denied")
1003+ if ((bV == bV))
9861004 then {
987- let aO = "pools"
988- let D = $Tuple2(F, G)
989- let aS = makeString([F, G], a)
990- let bU = if (aU(aO, aS))
991- then bb(aO, aS)
1005+ let aU = "pools"
1006+ let G = $Tuple2(I, J)
1007+ let aY = makeString([I, J], a)
1008+ let ca = if (ba(aU, aY))
1009+ then bh(aU, aY)
9921010 else nil
993- ([DeleteEntry(C(D))] ++ bU)
1011+ ([DeleteEntry(F(G))] ++ ca)
9941012 }
9951013 else throw("Strict value is not equal to itself.")
9961014 }
9971015
9981016
9991017
1000-@Callable(bj)
1001-func resume (F,G) = {
1002- let aF = av(F, G)
1003- let cQ = {
1004- let ah = invoke(am, "checkBalance", [aF], nil)
1005- if ($isInstanceOf(ah, "Boolean"))
1006- then ah
1007- else throw(($getType(ah) + " couldn't be cast to Boolean"))
1018+@Callable(bp)
1019+func resume (I,J,cW) = {
1020+ let cX = valueOrErrorMessage(az(I, J), Z("invalid assets"))
1021+ let cd = cX._1
1022+ let aL = cX._2
1023+ let cY = bp.payments[0]
1024+ let cx = addressFromStringValue(getStringValue(this, t))
1025+ let cZ = "%s__config"
1026+ let da = 1
1027+ let bx = addressFromStringValue(aj(this, r))
1028+ let db = fromBase58String(split(getStringValue(bx, cZ), a)[da])
1029+ let dc = {
1030+ let ak = invoke(cx, "isVerifiedREADONLY", [I], nil)
1031+ if ($isInstanceOf(ak, "Boolean"))
1032+ then ak
1033+ else throw(($getType(ak) + " couldn't be cast to Boolean"))
10081034 }
1009- let cR = bj.payments[0]
1010- let cr = addressFromStringValue(getStringValue(this, s))
1011- let cS = "%s__config"
1012- let cT = 1
1013- let br = addressFromStringValue(ag(this, q))
1014- let cU = fromBase58String(split(getStringValue(br, cS), a)[cT])
1015- let cV = {
1016- let ah = invoke(cr, "isVerifiedREADONLY", [F], nil)
1017- if ($isInstanceOf(ah, "Boolean"))
1018- then ah
1019- else throw(($getType(ah) + " couldn't be cast to Boolean"))
1035+ let dd = {
1036+ let ak = invoke(cx, "isVerifiedREADONLY", [J], nil)
1037+ if ($isInstanceOf(ak, "Boolean"))
1038+ then ak
1039+ else throw(($getType(ak) + " couldn't be cast to Boolean"))
10201040 }
1021- let cW = {
1022- let ah = invoke(cr, "isVerifiedREADONLY", [G], nil)
1023- if ($isInstanceOf(ah, "Boolean"))
1024- then ah
1025- else throw(($getType(ah) + " couldn't be cast to Boolean"))
1026- }
1027- let cX = valueOrErrorMessage(getInteger(this, m), "invalid resumption fee")
1028- let bu = [if (cQ)
1041+ let de = valueOrErrorMessage(getInteger(this, n), "invalid resumption fee")
1042+ let bA = [if ((cY.assetId == db))
10291043 then true
1030- else Y("insufficient balances"), if ((size(bj.payments) == 1))
1044+ else ab("invalid fee payment asset id"), if ((cY.amount == de))
10311045 then true
1032- else Y("1 payment is required"), if ((cR.assetId == cU))
1033- then true
1034- else Y("invalid payment asset id"), if ((cR.amount == cX))
1035- then true
1036- else Y("invalid payment amount"), if (if (cV)
1037- then cW
1046+ else ab("invalid fee payment amount"), if (if (dc)
1047+ then dd
10381048 else false)
10391049 then true
1040- else Y("both assets should be verified")]
1041- if ((bu == bu))
1050+ else ab("both assets should be verified")]
1051+ if ((bA == bA))
10421052 then {
1043- let cY = invoke(am, "setWxEmissionPoolLabel", [F, G], nil)
1044- if ((cY == cY))
1053+ let df = assetBalance(this, aL)
1054+ if ((df == df))
10451055 then {
1046- let D = $Tuple2(F, G)
1047- let bv = ([BooleanEntry(C(D), true)] ++ aY(aK, aj(D)))
1048- $Tuple2(bv, unit)
1056+ let dg = false
1057+ let dh = if ((size(bp.payments) == 1))
1058+ then {
1059+ let di = {
1060+ let ak = invoke(ap, "checkBalance", [ay(aL)], nil)
1061+ if ($isInstanceOf(ak, "Boolean"))
1062+ then ak
1063+ else throw(($getType(ak) + " couldn't be cast to Boolean"))
1064+ }
1065+ if (di)
1066+ then true
1067+ else ab("assets should be attached")
1068+ }
1069+ else if ((size(bp.payments) == 2))
1070+ then {
1071+ let dj = valueOrErrorMessage(scriptHash(cd), Z("pool address is not scripted"))
1072+ let dk = fromBase64String(valueOrErrorMessage(getString(ap, C()), Z("allowed lp stable script hash is not set")))
1073+ let dl = (dj == dk)
1074+ let dm = if (dl)
1075+ then "putOneTknV2"
1076+ else "putOneTkn"
1077+ invoke(cd, dm, [cW, dg], [bp.payments[1]])
1078+ }
1079+ else if ((size(bp.payments) == 3))
1080+ then invoke(cd, "put", [cW, dg], [bp.payments[1], bp.payments[2]])
1081+ else ab("invalid payments size")
1082+ if ((dh == dh))
1083+ then {
1084+ let dn = assetBalance(this, aL)
1085+ if ((dn == dn))
1086+ then {
1087+ let do = (dn - df)
1088+ let dp = if ((do > 0))
1089+ then [ScriptTransfer(bp.caller, do, aL)]
1090+ else nil
1091+ let dq = invoke(ap, "setWxEmissionPoolLabel", [I, J], nil)
1092+ if ((dq == dq))
1093+ then {
1094+ let G = $Tuple2(I, J)
1095+ let bB = ([BooleanEntry(F(G), true)] ++ be(aQ, am(G)))
1096+ $Tuple2((bB ++ dp), unit)
1097+ }
1098+ else throw("Strict value is not equal to itself.")
1099+ }
1100+ else throw("Strict value is not equal to itself.")
1101+ }
1102+ else throw("Strict value is not equal to itself.")
10491103 }
10501104 else throw("Strict value is not equal to itself.")
10511105 }
10521106 else throw("Strict value is not equal to itself.")
10531107 }
10541108
10551109
1056-@Verifier(cZ)
1057-func da () = {
1058- let db = {
1059- let ad = bg()
1060- if ($isInstanceOf(ad, "ByteVector"))
1110+@Verifier(dr)
1111+func ds () = {
1112+ let dt = {
1113+ let ag = bm()
1114+ if ($isInstanceOf(ag, "ByteVector"))
10611115 then {
1062- let bk = ad
1063- bk
1116+ let bq = ag
1117+ bq
10641118 }
1065- else if ($isInstanceOf(ad, "Unit"))
1066- then cZ.senderPublicKey
1119+ else if ($isInstanceOf(ag, "Unit"))
1120+ then dr.senderPublicKey
10671121 else throw("Match error")
10681122 }
1069- sigVerify(cZ.bodyBytes, cZ.proofs[0], db)
1123+ sigVerify(dr.bodyBytes, dr.proofs[0], dt)
10701124 }
10711125

github/deemru/w8io/169f3d6 
425.57 ms