tx · 5HmkgC4yPdmKxBECrSjaNrXpyJUdUC5mTa1Xgq85b2ru

3N9Zi6AcWcGbM23jQJ4fnzFsoHoTsxYDznr:  -0.02800000 Waves

2024.04.19 09:47 [3069306] smart account 3N9Zi6AcWcGbM23jQJ4fnzFsoHoTsxYDznr > SELF 0.00000000 Waves

{ "type": 13, "id": "5HmkgC4yPdmKxBECrSjaNrXpyJUdUC5mTa1Xgq85b2ru", "fee": 2800000, "feeAssetId": null, "timestamp": 1713509277468, "version": 2, "chainId": 84, "sender": "3N9Zi6AcWcGbM23jQJ4fnzFsoHoTsxYDznr", "senderPublicKey": "GFbasS3jufhZkK4xR7tdTjjnP8K33KvJFEDHRtxXDkaJ", "proofs": [ "3Hsx2wmkpNU6YuxUDGLkgZXgX6y9mWEYqPQFRjSR8zjfgWgQ7stHURBqDbrAG8H4ifQDm1xScTyELQ7PoB4Z2btj" ], "script": "base64:BgKGHQgCEgQKAggBEgcKBQgICAgBEgQKAggIEgUKAwgIARIECgIICBIDCgEBEgMKAQESAwoBCBIECgIICBIECgIIBBIAEgMKAQESABIECgIICBIECgIICBIECgIICBIAEgQKAggIEgUKAwgIASIJc2VwYXJhdG9yIg5wb29sV2VpZ2h0TXVsdCIPbWF4RGVwdGhEZWZhdWx0IhlmaW5hbGl6YXRpb25TdGFnZUJhbGFuY2VzIhZmaW5hbGl6YXRpb25TdGFnZVRvdGFsIhdmaW5hbGl6YXRpb25TdGFnZVNoYXJlcyILd2F2ZXNTdHJpbmciEHBvb2xTdGF0dXNBY3RpdmUiFXBvb2xTdGF0dXNQdXREaXNhYmxlZCIZcG9vbFN0YXR1c01hdGNoZXJEaXNhYmxlZCIScG9vbFN0YXR1c1NodXRkb3duIg5rZXlFcG9jaExlbmd0aCIRa2V5RXBvY2hMZW5ndGhOZXciFWtleUVwb2NoTGVuZ3RoQnlFcG9jaCIFZXBvY2giD2tleUN1cnJlbnRFcG9jaCILa2V5TWF4RGVwdGgiEGtleVJlc3VtcHRpb25GZWUiImtleVZvdGluZ0VtaXNzaW9uQ2FuZGlkYXRlQ29udHJhY3QiHWtleVZvdGluZ0VtaXNzaW9uUmF0ZUNvbnRyYWN0IhJrZXlGYWN0b3J5Q29udHJhY3QiE2tleUJvb3N0aW5nQ29udHJhY3QiEmtleVN0YWtpbmdDb250cmFjdCIWa2V5QXNzZXRzU3RvcmVDb250cmFjdCIUa2V5RmluYWxpemF0aW9uU3RhZ2UiC2tleU5leHRQb29sIgtrZXlOZXh0VXNlciIOa2V5U3RhcnRIZWlnaHQiEWtleUN1cnJlbnRFcG9jaFVpIhBrZXlTdGFydEhlaWdodFVpIh1rZXlGaW5hbGl6YXRpb25TaG91bGRCZUZvcmNlZCIWa2V5QWxsb3dlZExwU2NyaXB0SGFzaCIca2V5QWxsb3dlZExwU3RhYmxlU2NyaXB0SGFzaCIVa2V5U3RhcnRIZWlnaHRCeUVwb2NoIgxrZXlGaW5hbGl6ZWQiCWtleUluTGlzdCIEcG9vbCILJHQwMjI0NDIyODQiDWFtb3VudEFzc2V0SWQiDHByaWNlQXNzZXRJZCIHa2V5VXNlZCIHYWRkcmVzcyIHa2V5Vm90ZSILJHQwMjU1ODI1OTgiD2tleVZvdGluZ1Jlc3VsdCILJHQwMjc4MDI4MjAiFWtleVZvdGluZ1Jlc3VsdFN0YWtlZCIMbHBBc3NldElkU3RyIgxrZXlQb29sU2hhcmUiCyR0MDMxNDEzMTgxIg1rZXlUb3RhbFZvdGVzIg9rZXlTdGFrZWRCeVVzZXIiDnVzZXJBZGRyZXNzU3RyIgd3cmFwRXJyIgNtc2ciCHRocm93RXJyIg5nZXRWYWx1ZU9yRmFpbCIDa2V5IgR0eXBlIgVlcnJvciIHJG1hdGNoMCIDc3RyIgNpbnQiDGdldFN0ck9yRmFpbCIBQCIMZ2V0SW50T3JGYWlsIgxwb29sVG9TdHJpbmciDHN0cmluZ1RvUG9vbCIFcGFydHMiD2ZhY3RvcnlDb250cmFjdCIaSWR4RmFjdG9yeUNmZ0d3eFJld2FyZERhcHAiDWtleUZhY3RvcnlDZmciFHJlYWRGYWN0b3J5Q2ZnT3JGYWlsIgdmYWN0b3J5IhlnZXRHd3hSZXdhcmRBZGRyZXNzT3JGYWlsIgpmYWN0b3J5Q2ZnIgxwYXJzZUFzc2V0SWQiBWlucHV0Ig9hc3NldElkVG9TdHJpbmciC2dldFBvb2xJbmZvIg5wb29sSW5mb09wdGlvbiIWZ2V0THBBc3NldEJ5UG9vbEFzc2V0cyIfa2V5TWFwcGluZ3NCYXNlQXNzZXQyaW50ZXJuYWxJZCIMYmFzZUFzc2V0U3RyIilrZXlNYXBwaW5nUG9vbEFzc2V0c1RvUG9vbENvbnRyYWN0QWRkcmVzcyIYaW50ZXJuYWxBbW91bnRBc3NldElkU3RyIhdpbnRlcm5hbFByaWNlQXNzZXRJZFN0ciIfa2V5TWFwcGluZ1Bvb2xDb250cmFjdFRvTFBBc3NldCITcG9vbENvbnRyYWN0QWRkcmVzcyIVYW1vdW50QXNzZXRJbnRlcm5hbElkIhRwcmljZUFzc2V0SW50ZXJuYWxJZCIJbHBBc3NldElkIhhjaGVja1d4RW1pc3Npb25Qb29sTGFiZWwiCyR0MDY1NDE2NTgxIhBnd3hSZXdhcmREZXBvc2l0IhJnd3hSZXdhcmRzQ29udHJhY3QiDXBvb2xzTGlzdE5hbWUiEGdldFZvdGVzTGlzdE5hbWUiCyR0MDY5OTg3MDM4IgtrZXlMaXN0SGVhZCIIbGlzdE5hbWUiBG1ldGEiC2tleUxpc3RTaXplIgtrZXlMaXN0UHJldiICaWQiC2tleUxpc3ROZXh0Igxjb250YWluc05vZGUiCmhlYWRPclVuaXQiCnByZXZPclVuaXQiCm5leHRPclVuaXQiEWluc2VydE5vZGVBY3Rpb25zIghsaXN0U2l6ZSIJY2hlY2tOb2RlIhFkZWxldGVOb2RlQWN0aW9ucyIWa2V5TWFuYWdlclZhdWx0QWRkcmVzcyITa2V5TWFuYWdlclB1YmxpY0tleSIcZ2V0TWFuYWdlclZhdWx0QWRkcmVzc09yVGhpcyIBcyIWbWFuYWdlclB1YmxpY0tleU9yVW5pdCITbWFuYWdlclZhdWx0QWRkcmVzcyIJaXNNYW5hZ2VyIgFpIgJwayILbXVzdE1hbmFnZXIiCG11c3RUaGlzIgt1c2VyQWRkcmVzcyIMdGFyZ2V0SGVpZ2h0Ihdib29zdGluZ0NvbnRyYWN0QWRkcmVzcyIfdm90aW5nRW1pc3Npb25DYW5kaWRhdGVDb250cmFjdCIQYm9vc3RpbmdDb250cmFjdCIPc3Rha2luZ0NvbnRyYWN0IgtlcG9jaExlbmd0aCIGY2hlY2tzIg1pbkxpc3RBY3Rpb25zIhhjdXJyZW50RXBvY2hJc05vdERlZmluZWQiEnN0YXJ0SGVpZ2h0QWN0aW9ucyIGYW1vdW50IgtzdGFydEhlaWdodCIJZW5kSGVpZ2h0IhdmaW5hbGl6YXRpb25TdGFnZU9yVW5pdCIEdXNlZCIEdm90ZSIKcG9vbFJlc3VsdCIKdG90YWxWb3RlcyITZ3d4QW1vdW50QXRFbmRUb3RhbCIJYXZhaWxhYmxlIgduZXdWb3RlIgp3eEVtaXNzaW9uIg12b3Rlc0xpc3ROYW1lIhB2b3Rlc0xpc3RBY3Rpb25zIg5uZXdFcG9jaExlbmd0aCILbmV3TWF4RGVwdGgiB3Bvb2xTdHIiC2NoZWNrQ2FsbGVyIg1lcG9jaFByZXZpb3VzIg0kdDAxNzI2MjE3MzAyIgtiYWxhbmNlSXNPayIHYWN0aW9ucyITZGVsZXRlV3hFbWlzc2lvbkludiIPbW9kaWZ5V2VpZ2h0SW52Igtwb29sQWRkcmVzcyIQc2V0UG9vbFN0YXR1c0ludiILbGlzdEFjdGlvbnMiE3N0YXJ0SGVpZ2h0UHJldmlvdXMiE2Vwb2NoTGVuZ3RoUHJldmlvdXMiEWVuZEhlaWdodFByZXZpb3VzIhBjaGVja1RhcmdldEVwb2NoIg0kdDAxOTM0ODE5Mzg4Ihtnd3hBbW91bnRBdEVuZFRvdGFsUHJldmlvdXMiDHZvdGluZ1Jlc3VsdCISdm90ZVByZXZpb3VzT3B0aW9uIgx2b3RlUHJldmlvdXMiGnZvdGluZ1Jlc3VsdFN0YWtlZFByZXZpb3VzIgxzdGFrZWRCeVVzZXIiGXZvdGluZ1Jlc3VsdFN0YWtlZEFjdGlvbnMiBWZvcmNlIgt0YXJnZXRFcG9jaCIMY3VycmVudEVwb2NoIg0kdDAyMTg1ODIxODk4IgFyIhNhc3NldHNTdG9yZUNvbnRyYWN0IgVzaGFyZSINcHJldmlvdXNFcG9jaCIIbmV3RXBvY2giFG5ld0Vwb2NoTGVuZ3RoT3B0aW9uIhVuZXdFcG9jaExlbmd0aEFjdGlvbnMiCnBvb2xPclVuaXQiByRtYXRjaDEiC25leHRQb29sU3RyIg5uZXh0UG9vbE9yVW5pdCIKdXNlck9yVW5pdCIMcG9vbHNIZWFkU3RyIg5uZXh0VXNlck9yVW5pdCIEdXNlciIEbmV4dCIOcHJvY2Vzc1ZvdGVJbnYiByRtYXRjaDIiCG5leHRVc2VyIhNnd3hSZXdhcmREZXBvc2l0SW52Igdjb3VudGVyIhp2b3RpbmdFbWlzc2lvblJhdGVDb250cmFjdCIGcmVzdWx0IgNpbnYiCG1heERlcHRoIhZmaW5hbGl6YXRpb25JblByb2dyZXNzIh9zbGlwcGFnZVRvbGVyYW5jZU9yTWluT3V0QW1vdW50Ig0kdDAzMjg1MDMyOTgwIgpmZWVQYXltZW50Ig9rQm9vc3RpbmdDb25maWciDWlkeENmZ0Fzc2V0SWQiCXd4QXNzZXRJZCITYW1vdW50QXNzZXRWZXJpZmllZCIScHJpY2VBc3NldFZlcmlmaWVkIg1yZXN1bXB0aW9uRmVlIhRscEFzc2V0QmFsYW5jZUJlZm9yZSIJYXV0b1N0YWtlIgNwdXQiDnBvb2xTY3JpcHRIYXNoIhFhbGxvd2VkU2NyaXB0SGFzaCIIaXNTdGFibGUiDGZ1bmN0aW9uTmFtZSITbHBBc3NldEJhbGFuY2VBZnRlciISbHBBc3NldEJhbGFuY2VEaWZmIhZscEFzc2V0VHJhbnNmZXJBY3Rpb25zIhBzZXRXeEVtaXNzaW9uSW52Igpwb29sU3RhdHVzIgJ0eCIGdmVyaWZ5Ig90YXJnZXRQdWJsaWNLZXlMAAFhAgJfXwABYgCAwtcvAAFjAAoAAWQAAAABZQABAAFmAAIAAWcCBVdBVkVTAAFoAAEAAWkAAgABagADAAFrAAQAAWwJALkJAgkAzAgCAgIlcwkAzAgCAgtlcG9jaExlbmd0aAUDbmlsBQFhAAFtCQC5CQIJAMwIAgIEJXMlcwkAzAgCAhBlcG9jaExlbmd0aF9fbmV3BQNuaWwFAWEBAW4BAW8JALkJAgkAzAgCAgQlcyVkCQDMCAICC2Vwb2NoTGVuZ3RoCQDMCAIJAKQDAQUBbwUDbmlsBQFhAAFwCQC5CQIJAMwIAgICJXMJAMwIAgIMY3VycmVudEVwb2NoBQNuaWwFAWEAAXEJALkJAgkAzAgCAgIlcwkAzAgCAghtYXhEZXB0aAUDbmlsBQFhAAFyCQC5CQIJAMwIAgICJXMJAMwIAgINcmVzdW1wdGlvbkZlZQUDbmlsBQFhAAFzCQC5CQIJAMwIAgICJXMJAMwIAgIfdm90aW5nRW1pc3Npb25DYW5kaWRhdGVDb250cmFjdAUDbmlsBQFhAAF0CQC5CQIJAMwIAgICJXMJAMwIAgIadm90aW5nRW1pc3Npb25SYXRlQ29udHJhY3QFA25pbAUBYQABdQkAuQkCCQDMCAICAiVzCQDMCAICD2ZhY3RvcnlDb250cmFjdAUDbmlsBQFhAAF2CQC5CQIJAMwIAgICJXMJAMwIAgIQYm9vc3RpbmdDb250cmFjdAUDbmlsBQFhAAF3CQC5CQIJAMwIAgICJXMJAMwIAgIPc3Rha2luZ0NvbnRyYWN0BQNuaWwFAWEAAXgJALkJAgkAzAgCAgIlcwkAzAgCAhNhc3NldHNTdG9yZUNvbnRyYWN0BQNuaWwFAWEAAXkJALkJAgkAzAgCAgIlcwkAzAgCAhFmaW5hbGl6YXRpb25TdGFnZQUDbmlsBQFhAAF6CQC5CQIJAMwIAgICJXMJAMwIAgIIbmV4dFBvb2wFA25pbAUBYQABQQkAuQkCCQDMCAICAiVzCQDMCAICCG5leHRVc2VyBQNuaWwFAWEAAUIJALkJAgkAzAgCAgIlcwkAzAgCAgtzdGFydEhlaWdodAUDbmlsBQFhAAFDCQC5CQIJAMwIAgICJXMJAMwIAgIOY3VycmVudEVwb2NoVWkFA25pbAUBYQABRAkAuQkCCQDMCAICAiVzCQDMCAICDXN0YXJ0SGVpZ2h0VWkFA25pbAUBYQABRQkAuQkCCQDMCAICAiVzCQDMCAICBWZvcmNlBQNuaWwFAWEBAUYAAhclc19fYWxsb3dlZExwU2NyaXB0SGFzaAEBRwACHSVzX19hbGxvd2VkTHBTdGFibGVTY3JpcHRIYXNoAQFIAQFvCQC5CQIJAMwIAgIEJXMlZAkAzAgCAgtzdGFydEhlaWdodAkAzAgCCQCkAwEFAW8FA25pbAUBYQEBSQEBbwkAuQkCCQDMCAICBCVzJWQJAMwIAgIJZmluYWxpemVkCQDMCAIJAKQDAQUBbwUDbmlsBQFhAQFKAQFLBAFMBQFLBAFNCAUBTAJfMQQBTggFAUwCXzIJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIGaW5MaXN0CQDMCAIFAU0JAMwIAgUBTgUDbmlsBQFhAQFPAgFQAW8JALkJAgkAzAgCAgYlcyVzJWQJAMwIAgIEdXNlZAkAzAgCCQClCAEFAVAJAMwIAgkApAMBBQFvBQNuaWwFAWEBAVEDAUsBUAFvBAFSBQFLBAFNCAUBUgJfMQQBTggFAVICXzIJALkJAgkAzAgCAgolcyVzJXMlcyVkCQDMCAICBHZvdGUJAMwIAgUBTQkAzAgCBQFOCQDMCAIJAKUIAQUBUAkAzAgCCQCkAwEFAW8FA25pbAUBYQEBUwIBSwFvBAFUBQFLBAFNCAUBVAJfMQQBTggFAVQCXzIJALkJAgkAzAgCAgglcyVzJXMlZAkAzAgCAgx2b3RpbmdSZXN1bHQJAMwIAgUBTQkAzAgCBQFOCQDMCAIJAKQDAQUBbwUDbmlsBQFhAQFVAgFWAW8JALkJAgkAzAgCAgYlcyVzJWQJAMwIAgISdm90aW5nUmVzdWx0U3Rha2VkCQDMCAIFAVYJAMwIAgkApAMBBQFvBQNuaWwFAWEBAVcCAUsBbwQBWAUBSwQBTQgFAVgCXzEEAU4IBQFYAl8yCQC5CQIJAMwIAgIIJXMlcyVzJWQJAMwIAgIJcG9vbFNoYXJlCQDMCAIFAU0JAMwIAgUBTgkAzAgCCQCkAwEFAW8FA25pbAUBYQEBWQEBbwkAuQkCCQDMCAICBCVzJWQJAMwIAgIKdG90YWxWb3RlcwkAzAgCCQCkAwEFAW8FA25pbAUBYQEBWgIBVgJhYQkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAgZzdGFrZWQJAMwIAgUCYWEJAMwIAgUBVgUDbmlsBQFhAQJhYgECYWMJALkJAgkAzAgCAhV2b3RpbmdfZW1pc3Npb24ucmlkZToJAMwIAgUCYWMFA25pbAIBIAECYWQBAmFjCQACAQkBAmFiAQUCYWMBAmFlAwFQAmFmAmFnBAJhaAkBAmFiAQkAuQkCCQDMCAICCm1hbmRhdG9yeSAJAMwIAgkApQgBBQFQCQDMCAICAS4JAMwIAgUCYWYJAMwIAgIPIGlzIG5vdCBkZWZpbmVkBQNuaWwCAAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCBAJhaQUCYWcDCQABAgUCYWkCBlN0cmluZwQCYWoFAmFpCQCdCAIFAVAFAmFmAwkAAQIFAmFpAgNJbnQEAmFrBQJhaQkAmggCBQFQBQJhZgkBAmFkAQISaW52YWxpZCBlbnRyeSB0eXBlBQJhaAECYWwCAVACYWYKAAJhbQkBAmFlAwUBUAUCYWYCAAMJAAECBQJhbQIGU3RyaW5nBQJhbQkAAgEJAKwCAgkAAwEFAmFtAhsgY291bGRuJ3QgYmUgY2FzdCB0byBTdHJpbmcBAmFuAgFQAmFmCgACYW0JAQJhZQMFAVAFAmFmAAADCQABAgUCYW0CA0ludAUCYW0JAAIBCQCsAgIJAAMBBQJhbQIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50AQJhbwEBSwkArAICCQCsAgIIBQFLAl8xBQFhCAUBSwJfMgECYXABAmFqBAJhcQkAtQkCBQJhagUBYQMJAAACCQCQAwEFAmFxAAIJAJQKAgkAkQMCBQJhcQAACQCRAwIFAmFxAAEJAQJhZAECE2ludmFsaWQgcG9vbCBzdHJpbmcAAmFyCQERQGV4dHJOYXRpdmUoMTA2MikBCQECYWwCBQR0aGlzBQF1AAJhcwAKAQJhdAACESVzX19mYWN0b3J5Q29uZmlnAQJhdQECYXYJALUJAgkBAmFsAgUCYXYJAQJhdAAFAWEBAmF3AQJheAkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJheAUCYXMBAmF5AQJhegMJAAACBQJhegUBZwUEdW5pdAkA2QQBBQJhegECYUEBAmF6AwkAAAIFAmF6BQR1bml0BQFnCQDYBAEJAQV2YWx1ZQEFAmF6AQJhQgIBTQFOBAJhQwoAAmFtCQD8BwQFAmFyAhBwb29sSW5mb1JFQURPTkxZCQDMCAIFAU0JAMwIAgUBTgUDbmlsBQNuaWwDCQABAgUCYW0CFShBZGRyZXNzLCBCeXRlVmVjdG9yKQUCYW0FBHVuaXQFAmFDAQJhRAIBTQFOCgECYUUBAmFGCQCsAgICKCVzJXMlc19fbWFwcGluZ3NfX2Jhc2VBc3NldDJpbnRlcm5hbElkX18FAmFGCgECYUcCAmFIAmFJCQCsAgIJAKwCAgkArAICCQCsAgICCiVkJWQlcyVzX18JAKQDAQUCYUgCAl9fCQCkAwEFAmFJAiNfX21hcHBpbmdzX19wb29sQXNzZXRzMlBvb2xDb250cmFjdAoBAmFKAQJhSwkArAICCQCsAgICCCVzJXMlc19fBQJhSwIgX19tYXBwaW5nc19fcG9vbENvbnRyYWN0MkxwQXNzZXQEAmFMCQECYW4CBQJhcgkBAmFFAQUBTQQCYU0JAQJhbgIFAmFyCQECYUUBBQFOBAJhSwkBAmFsAgUCYXIJAQJhRwIFAmFMBQJhTQQCYU4JAQJhbAIFAmFyCQECYUoBBQJhSwUCYU4BAmFPAQFLBAJhUAUBSwQBTQgFAmFQAl8xBAFOCAUCYVACXzIKAAJhbQkA/AcEBQJhcgIYY2hlY2tXeEVtaXNzaW9uUG9vbExhYmVsCQDMCAIFAU0JAMwIAgUBTgUDbmlsBQNuaWwDCQABAgUCYW0CB0Jvb2xlYW4FAmFtCQACAQkArAICCQADAQUCYW0CHCBjb3VsZG4ndCBiZSBjYXN0IHRvIEJvb2xlYW4BAmFRAAQCYXgJAQJhdQEFAmFyBAJhUgkBAmF3AQUCYXgJAPwHBAUCYVICB2RlcG9zaXQFA25pbAUDbmlsAAJhUwIFcG9vbHMBAmFUAQFLBAJhVQUBSwQBTQgFAmFVAl8xBAFOCAUCYVUCXzIJALkJAgkAzAgCAgV2b3RlcwkAzAgCBQFNCQDMCAIFAU4FA25pbAUBYQECYVYBAmFXBAJhWAMJAAACBQJhVwUCYVMCBCVzJXMCCCVzJXMlcyVzCQC5CQIJAMwIAgUCYVgJAMwIAgUCYVcJAMwIAgIEaGVhZAUDbmlsBQFhAQJhWQECYVcEAmFYAwkAAAIFAmFXBQJhUwIEJXMlcwIIJXMlcyVzJXMJALkJAgkAzAgCBQJhWAkAzAgCBQJhVwkAzAgCAgRzaXplBQNuaWwFAWEBAmFaAgJhVwJiYQQCYVgDCQAAAgUCYVcFAmFTAgglcyVzJXMlcwIKJXMlcyVzJXMlcwkAuQkCCQDMCAIFAmFYCQDMCAIFAmFXCQDMCAIFAmJhCQDMCAICBHByZXYFA25pbAUBYQECYmICAmFXAmJhBAJhWAMJAAACBQJhVwUCYVMCCCVzJXMlcyVzAgolcyVzJXMlcyVzCQC5CQIJAMwIAgUCYVgJAMwIAgUCYVcJAMwIAgUCYmEJAMwIAgIEbmV4dAUDbmlsBQFhAQJiYwICYVcCYmEEAmJkCQCdCAIFBHRoaXMJAQJhVgEFAmFXBAJiZQkAnQgCBQR0aGlzCQECYVoCBQJhVwUCYmEEAmJmCQCdCAIFBHRoaXMJAQJiYgIFAmFXBQJiYQMDCQAAAgUCYmEJAQt2YWx1ZU9yRWxzZQIFAmJkAgAGCQECIT0CBQJiZQUEdW5pdAYJAQIhPQIFAmJmBQR1bml0AQJiZwICYVcCYmEEAmJkCQCdCAIFBHRoaXMJAQJhVgEFAmFXBAJiaAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQECYVkBBQJhVwAABAJiaQMJAQEhAQkBAmJjAgUCYVcFAmJhBgkBAmFkAQILTm9kZSBleGlzdHMDCQAAAgUCYmkFAmJpCQDOCAIJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFZAQUCYVcJAGQCBQJiaAABBQNuaWwDCQECIT0CBQJiZAUEdW5pdAkAzAgCCQELU3RyaW5nRW50cnkCCQECYmICBQJhVwUCYmEJAQV2YWx1ZQEFAmJkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhWgIFAmFXCQEFdmFsdWUBBQJiZAUCYmEFA25pbAUDbmlsCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhVgEFAmFXBQJiYQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJiagICYVcCYmEEAmJkCQCdCAIFBHRoaXMJAQJhVgEFAmFXBAJiaAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQECYVkBBQJhVwAABAJiZQkAnQgCBQR0aGlzCQECYVoCBQJhVwUCYmEEAmJmCQCdCAIFBHRoaXMJAQJiYgIFAmFXBQJiYQkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYVkBBQJhVwkAZQIFAmJoAAEFA25pbAMDCQECIT0CBQJiZQUEdW5pdAkBAiE9AgUCYmYFBHVuaXQHCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJiYgIFAmFXCQEFdmFsdWUBBQJiZQkBBXZhbHVlAQUCYmYJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFaAgUCYVcJAQV2YWx1ZQEFAmJmCQEFdmFsdWUBBQJiZQkAzAgCCQELRGVsZXRlRW50cnkBCQECYVoCBQJhVwUCYmEJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmJiAgUCYVcFAmJhBQNuaWwDCQECIT0CBQJiZgUEdW5pdAkAzAgCCQELU3RyaW5nRW50cnkCCQECYVYBBQJhVwkBBXZhbHVlAQUCYmYJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmJiAgUCYVcFAmJhCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhWgIFAmFXCQEFdmFsdWUBBQJiZgUDbmlsAwkBAiE9AgUCYmUFBHVuaXQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmFaAgUCYVcFAmJhCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJiYgIFAmFXCQEFdmFsdWUBBQJiZQUDbmlsAwkAAAIFAmJhCQELdmFsdWVPckVsc2UCBQJiZAIACQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhVgEFAmFXBQNuaWwJAQJhZAEJAKwCAgkArAICCQCsAgICDmludmFsaWQgbm9kZTogBQJhVwIBLgUCYmEBAmJrAAIXJXNfX21hbmFnZXJWYXVsdEFkZHJlc3MBAmJsAAIUJXNfX21hbmFnZXJQdWJsaWNLZXkBAmJtAAQCYWkJAKIIAQkBAmJrAAMJAAECBQJhaQIGU3RyaW5nBAJibgUCYWkJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmJuBQR0aGlzAQJibwAEAmJwCQECYm0ABAJhaQkAnQgCBQJicAkBAmJsAAMJAAECBQJhaQIGU3RyaW5nBAJibgUCYWkJANkEAQUCYm4DCQABAgUCYWkCBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgECYnEBAmJyBAJhaQkBAmJvAAMJAAECBQJhaQIKQnl0ZVZlY3RvcgQCYnMFAmFpCQAAAggFAmJyD2NhbGxlclB1YmxpY0tleQUCYnMDCQABAgUCYWkCBFVuaXQJAAACCAUCYnIGY2FsbGVyBQR0aGlzCQACAQILTWF0Y2ggZXJyb3IBAmJ0AQJicgMJAQJicQEFAmJyBgkAAgECEXBlcm1pc3Npb24gZGVuaWVkAQJidQECYnIDCQAAAggFAmJyBmNhbGxlcgUEdGhpcwYJAAIBAhFwZXJtaXNzaW9uIGRlbmllZBMCYnIBGGdldFVzZXJHd3hBbW91bnRBdEhlaWdodAICYnYCYncEAmJ4CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkBAmFsAgUEdGhpcwUBdgkBAmFiAQIhaW52YWxpZCBib29zdGluZyBjb250cmFjdCBhZGRyZXNzCQCUCgIFA25pbAoAAmFtCQD8BwQFAmJ4AiBnZXRVc2VyR3d4QW1vdW50QXRIZWlnaHRSRUFET05MWQkAzAgCBQJidgkAzAgCBQJidwUDbmlsBQNuaWwDCQABAgUCYW0CA0ludAUCYW0JAAIBCQCsAgIJAAMBBQJhbQIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50AmJyAQtjb25zdHJ1Y3RvcgUCYXICYnkCYnoCYkECYkIEAmJDCQDMCAIJAQJidAEFAmJyCQDMCAIDCQECIT0CCQCmCAEFAmFyBQR1bml0BgIgaW52YWxpZCBmYWN0b3J5IGNvbnRyYWN0IGFkZHJlc3MJAMwIAgMJAQIhPQIJAKYIAQUCYnkFBHVuaXQGAjJpbnZhbGlkIHZvdGluZyBlbWlzc2lvbiBjYW5kaWRhdGUgY29udHJhY3QgYWRkcmVzcwkAzAgCAwkBAiE9AgkApggBBQJiegUEdW5pdAYCIWludmFsaWQgYm9vc3RpbmcgY29udHJhY3QgYWRkcmVzcwkAzAgCAwkBAiE9AgkApggBBQJiQQUEdW5pdAYCIGludmFsaWQgc3Rha2luZyBjb250cmFjdCBhZGRyZXNzCQDMCAIDCQBmAgUCYkIAAAYJAQJhZAECFGludmFsaWQgZXBvY2ggbGVuZ3RoBQNuaWwDCQAAAgUCYkMFAmJDCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgUBdQUCYXIJAMwIAgkBC1N0cmluZ0VudHJ5AgUBcwUCYnkJAMwIAgkBC1N0cmluZ0VudHJ5AgUBdgUCYnoJAMwIAgkBC1N0cmluZ0VudHJ5AgUBdwUCYkEJAMwIAgkBDEludGVnZXJFbnRyeQIFAWwFAmJCBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYnIBBmNyZWF0ZQIBTQFOBAJiQwkAzAgCAwkAAAIJANgEAQgIBQJicgZjYWxsZXIFYnl0ZXMJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUBcwIABgkBAmJ0AQUCYnIFA25pbAMJAAACBQJiQwUCYkMEAUsJAJQKAgUBTQUBTgQCYkQJAM4IAgkAzAgCCQEMQm9vbGVhbkVudHJ5AgkBAUoBBQFLBgUDbmlsCQECYmcCBQJhUwkBAmFvAQUBSwQCYkUJAAACCQCaCAIFBHRoaXMFAXAFBHVuaXQEAmJGAwUCYkUEAW8AAAkAzAgCCQEMSW50ZWdlckVudHJ5AgUBcAUBbwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAUgBBQFvBQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIFAUIFBmhlaWdodAkAzAgCCQEMSW50ZWdlckVudHJ5AgUBQwUBbwkAzAgCCQEMSW50ZWdlckVudHJ5AgUBRAUGaGVpZ2h0BQNuaWwFA25pbAkAlAoCCQDOCAIFAmJEBQJiRgUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJicgEEdm90ZQMBTQFOAmJHBAFLCQCUCgIFAU0FAU4EAW8JAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUBcAAABAJiSAkBAmFuAgUEdGhpcwkBAUgBBQFvBAJiQgkBAmFuAgUEdGhpcwUBbAQCYkkJAGQCBQJiSAUCYkIEAmJKCQCaCAIFBHRoaXMFAXkEAmJLCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQFPAggFAmJyBmNhbGxlcgUBbwAABAJiTAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEBUQMFAUsIBQJicgZjYWxsZXIFAW8AAAQCYk0JAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAVMCBQFLBQFvAAAEAmJOCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQFZAQUBbwAABAJiTwoAAmFtCQD8BwQFBHRoaXMCGGdldFVzZXJHd3hBbW91bnRBdEhlaWdodAkAzAgCCQDYBAEICAUCYnIGY2FsbGVyBWJ5dGVzCQDMCAIFAmJJBQNuaWwFA25pbAMJAAECBQJhbQIDSW50BQJhbQkAAgEJAKwCAgkAAwEFAmFtAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQEAmJQCQBlAgUCYk8FAmJLBAJiUQkAZAIFAmJMBQJiRwQCYlIJAQJhTwEFAUsEAmJDCQDMCAIDCQECIT0CCQCgCAEJAQFKAQUBSwUEdW5pdAYJAQJhZAECDmludmFsaWQgYXNzZXRzCQDMCAIDCQBmAgUCYkkFBmhlaWdodAYJAQJhZAECDmludmFsaWQgaGVpZ2h0CQDMCAIDCQAAAgUCYkoFBHVuaXQGCQECYWQBAhhmaW5hbGl6YXRpb24gaW4gcHJvZ3Jlc3MJAMwIAgMJAGYCBQJiTwAABgkBAmFkAQITeW91IGRvIG5vdCBoYXZlIGdXWAkAzAgCAwMJAGYCBQJiRwAACQBnAgUCYlAFAmJHBwYJAQJhZAECDmludmFsaWQgYW1vdW50CQDMCAIDBQJiUgYJAQJhZAECHXBvb2wgaGFzbid0IFdYX0VNSVNTSU9OIGxhYmVsBQNuaWwDCQAAAgUCYkMFAmJDBAJiUwkBAmFUAQUBSwQCYWEJAKUIAQgFAmJyBmNhbGxlcgQCYlQDCQECYmMCBQJiUwUCYWEFA25pbAkBAmJnAgUCYlMFAmFhCQCUCgIJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAU8CCAUCYnIGY2FsbGVyBQFvCQBkAgUCYksFAmJHCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBUQMFAUsIBQJicgZjYWxsZXIFAW8FAmJRCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBUwIFAUsFAW8JAGQCBQJiTQUCYkcJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFZAQUBbwkAZAIFAmJOBQJiRwUDbmlsBQJiVAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJicgEKY2FuY2VsVm90ZQIBTQFOBAFLCQCUCgIFAU0FAU4EAW8JAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUBcAAABAJiSAkBAmFuAgUEdGhpcwkBAUgBBQFvBAJiQgkBAmFuAgUEdGhpcwUBbAQCYkkJAGQCBQJiSAUCYkIEAmJKCQCaCAIFBHRoaXMFAXkEAmJLCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQFPAggFAmJyBmNhbGxlcgUBbwAABAJiTAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEBUQMFAUsIBQJicgZjYWxsZXIFAW8AAAQCYk0JAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAVMCBQFLBQFvAAAEAmJOCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQFZAQUBbwAABAJiQwkAzAgCAwkBAiE9AgkAoAgBCQEBSgEFAUsFBHVuaXQGCQECYWQBAg5pbnZhbGlkIGFzc2V0cwkAzAgCAwkAZgIFAmJJBQZoZWlnaHQGCQECYWQBAg5pbnZhbGlkIGhlaWdodAkAzAgCAwkAAAIFAmJKBQR1bml0BgkBAmFkAQIYZmluYWxpemF0aW9uIGluIHByb2dyZXNzCQDMCAIDCQBmAgUCYkwAAAYJAQJhZAECB25vIHZvdGUFA25pbAMJAAACBQJiQwUCYkMEAmJTCQECYVQBBQFLBAJhYQkApQgBCAUCYnIGY2FsbGVyCQCUCgIJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAU8CCAUCYnIGY2FsbGVyBQFvCQCWAwEJAMwIAgkAZQIFAmJLBQJiTAkAzAgCAAAFA25pbAkAzAgCCQELRGVsZXRlRW50cnkBCQEBUQMFAUsIBQJicgZjYWxsZXIFAW8JAMwIAgkBDEludGVnZXJFbnRyeQIJAQFTAgUBSwUBbwkAZQIFAmJNBQJiTAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVkBBQFvCQBlAgUCYk4FAmJMBQNuaWwJAQJiagIFAmJTBQJhYQUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJicgEOc2V0RXBvY2hMZW5ndGgBAmJVBAJiQwkAzAgCCQECYnQBBQJicgkAzAgCAwkAZgIFAmJVAAAGCQECYWQBAhRpbnZhbGlkIGVwb2NoIGxlbmd0aAUDbmlsAwkAAAIFAmJDBQJiQwkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQFtBQJiVQUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJyAQtzZXRNYXhEZXB0aAECYlYEAmJDCQDMCAIJAQJidAEFAmJyCQDMCAIDCQBmAgUCYlYAAAYJAQJhZAECEWludmFsaWQgbWF4IGRlcHRoBQNuaWwDCQAAAgUCYkMFAmJDCQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIFAXEFAmJWBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYnIBGnByb2Nlc3NQb29sQmFsYW5jZUlOVEVSTkFMAQJiVwQCYlgJAQJidQEFAmJyAwkAAAIFAmJYBQJiWAQBbwkBAmFuAgUEdGhpcwUBcAQCYlkJAGUCBQFvAAEEAUsJAQJhcAEFAmJXBAJiWgUBSwQBTQgFAmJaAl8xBAFOCAUCYloCXzIEAmFOCQECYUQCBQFNBQFOBAJjYQoAAmFtCQD8BwQFAmFyAgxjaGVja0JhbGFuY2UJAMwIAgUCYU4FA25pbAUDbmlsAwkAAQIFAmFtAgdCb29sZWFuBQJhbQkAAgEJAKwCAgkAAwEFAmFtAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuBAJjYgMJAQEhAQUCY2EEAmNjCQD8BwQFAmFyAhlkZWxldGVXeEVtaXNzaW9uUG9vbExhYmVsCQDMCAIFAU0JAMwIAgUBTgUDbmlsBQNuaWwDCQAAAgUCY2MFAmNjBAJjZAkA/AcEBQJhcgIMbW9kaWZ5V2VpZ2h0CQDMCAIFAmFOCQDMCAIAAAUDbmlsBQNuaWwDCQAAAgUCY2QFAmNkBAJjZQgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkBAmFCAgUBTQUBTgkBAmFiAQIOaW52YWxpZCBhc3NldHMCXzEEAmNmCQD8BwQFAmFyAgptYW5hZ2VQb29sCQDMCAIJAKUIAQUCY2UJAMwIAgUBagUDbmlsBQNuaWwDCQAAAgUCY2YFAmNmBAJjZwkAzggCCQDMCAIJAQtEZWxldGVFbnRyeQEJAQFKAQUBSwUDbmlsCQECYmoCBQJhUwkBAmFvAQUBSwkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBVwIFAUsFAmJZAAAFA25pbAUCY2cJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4FA25pbAkAlAoCBQJjYgUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJicgETcHJvY2Vzc1ZvdGVJTlRFUk5BTAICYlcCYWEEAmJYCQECYnUBBQJicgMJAAACBQJiWAUCYlgEAmJ2CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQUCYWEJAQJhYgEJAKwCAgIqcHJvY2Vzc1ZvdGVJTlRFUk5BTDogaW52YWxpZCB1c2VyIGFkZHJlc3MgBQJhYQQBbwkBAmFuAgUEdGhpcwUBcAQCYlkJAGUCBQFvAAEEAmJCCQECYW4CBQR0aGlzBQFsBAJiSAkBAmFuAgUEdGhpcwkBAUgBBQFvBAJiSQkAZAIFAmJIBQJiQgQCY2gJAQJhbgIFBHRoaXMJAQFIAQUCYlkEAmNpCQECYW4CBQR0aGlzCQEBbgEFAmJZBAJjagkAZAIFAmNoBQJjaQQCY2sDCQBnAgUCYlkAAAYJAQJhZAECK3Byb2Nlc3NWb3RlSU5URVJOQUw6IGludmFsaWQgcHJldmlvdXMgZXBvY2gDCQAAAgUCY2sFAmNrBAFLCQECYXABBQJiVwQCY2wFAUsEAU0IBQJjbAJfMQQBTggFAmNsAl8yBAJiTwoAAmFtCQD8BwQFBHRoaXMCGGdldFVzZXJHd3hBbW91bnRBdEhlaWdodAkAzAgCBQJhYQkAzAgCBQJiSQUDbmlsBQNuaWwDCQABAgUCYW0CA0ludAUCYW0JAAIBCQCsAgIJAAMBBQJhbQIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50BAJjbQoAAmFtCQD8BwQFBHRoaXMCGGdldFVzZXJHd3hBbW91bnRBdEhlaWdodAkAzAgCBQJhYQkAzAgCBQJjagUDbmlsBQNuaWwDCQABAgUCYW0CA0ludAUCYW0JAAIBCQCsAgIJAAMBBQJhbQIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50BAJiTgkBC3ZhbHVlT3JFbHNlAgkAnwgBCQEBWQEFAW8AAAQCY24JAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBAVMCBQFLBQFvAAAEAmNvCQCfCAEJAQFRAwUBSwUCYnYFAmJZBAJjcAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCBQJjbwkBAmFiAQkArAICCQCsAgIJAKwCAgkArAICAhRwcm9jZXNzVm90ZUlOVEVSTkFMIAUCYlcCASAFAmFhAhI6IG5vIHByZXZpb3VzIHZvdGUEAmJLCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQFPAgUCYnYFAW8AAAQBVgkBAmFEAgUBTQUBTgQCY3EJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBAVUCBQFWBQJiWQAABAJiQQkBEUBleHRyTmF0aXZlKDEwNjIpAQkBAmFsAgUEdGhpcwUBdwQCY3IJAQt2YWx1ZU9yRWxzZQIJAJoIAgUCYkEJAQFaAgUBVgUCYWEAAAQCY3MDAwkAAAIFAmNyAAAGCQAAAgUCY28FBHVuaXQFA25pbAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVUCBQFWBQJiWQkAZAIFAmNxBQJjcAUDbmlsBAJhTgkBAmFEAgUBTQUBTgQCYlEDCQBmAgUCY20AAAkAawMFAmNwBQJiTwUCY20AAAQCY2IDAwkAAAIFAmNvBQR1bml0BgkAZwIAAAUCYlEJAQJiagIJAQJhVAEFAUsFAmFhCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBUQMFAUsFAmJ2BQFvBQJiUQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVkBBQFvCQBkAgUCYk4FAmJRCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBUwIFAUsFAW8JAGQCBQJjbgUCYlEJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFPAgUCYnYFAW8JAGQCBQJiSwUCYlEFA25pbAkAlAoCCQDOCAIFAmNiBQJjcwUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJicgETcHJvY2Vzc1Bvb2xJTlRFUk5BTAICYlcCY3QEAmJYCQECYnUBBQJicgMJAAACBQJiWAUCYlgEAmN1BAJjdgkBAmFuAgUEdGhpcwUBcAMFAmN0BQJjdgkAZQIFAmN2AAEEAmNrAwkAZwIFAmN1AAAGCQECYWQBAilwcm9jZXNzUG9vbElOVEVSTkFMOiBpbnZhbGlkIHRhcmdldCBlcG9jaAMJAAACBQJjawUCY2sEAUsJAQJhcAEFAmJXBAJjdwUBSwQBTQgFAmN3Al8xBAFOCAUCY3cCXzIEAmJBCQERQGV4dHJOYXRpdmUoMTA2MikBCQECYWwCBQR0aGlzBQF3BAJhTgkBAmFEAgUBTQUBTgQCY3gKAAJhbQkA/AcEBQJiQQISdXNlcnNMaXN0VHJhdmVyc2FsCQDMCAIFAmFOBQNuaWwFA25pbAMJAAECBQJhbQIHQm9vbGVhbgUCYW0JAAIBCQCsAgIJAAMBBQJhbQIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgMJAAACBQJjeAUCY3gDBQJjeAkAlAoCBQNuaWwGBAJjeQkBEUBleHRyTmF0aXZlKDEwNjIpAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFAmFyBQF4Ah1pbnZhbGlkIGFzc2V0cyBzdG9yZSBjb250cmFjdAQCYk4JAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAVkBBQJjdQAABAJjbgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEBUwIFAUsFAmN1AAAEAmN6AwkAAAIFAmJOAAAAAAkAawMFAmNuBQFiBQJiTgQCY2QJAPwHBAUCYXICDG1vZGlmeVdlaWdodAkAzAgCBQJhTgkAzAgCBQJjegUDbmlsBQNuaWwDCQAAAgUCY2QFAmNkCQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFXAgUBSwUCY3UFAmN6BQNuaWwHCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJyAQ5maW5hbGl6ZUhlbHBlcgAEAmN0CQELdmFsdWVPckVsc2UCCQCgCAEFAUUHBAFvCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAXAAAAQCY0EJAGUCBQFvAAEEAmJICQECYW4CBQR0aGlzCQEBSAEFAW8EAmJCCQECYW4CBQR0aGlzBQFsBAJiSQkAZAIFAmJIBQJiQgQCYkoJAJoIAgUEdGhpcwUBeQMDAwkAZwIFBmhlaWdodAUCYkkJAAACBQJiSgUEdW5pdAcJAQEhAQUCY3QHBAJjQgkAZAIFAW8AAQQCY0MJAJoIAgUEdGhpcwUBbQQCY0QEAmFpBQJjQwMJAAECBQJhaQIDSW50BAJiVQUCYWkJAMwIAgkBDEludGVnZXJFbnRyeQIFAWwFAmJVCQDMCAIJAQtEZWxldGVFbnRyeQEFAW0FA25pbAMJAAECBQJhaQIEVW5pdAUDbmlsCQACAQILTWF0Y2ggZXJyb3IJAJQKAgkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBSAEFAmNCBQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIFAUIFBmhlaWdodAkAzAgCCQEMSW50ZWdlckVudHJ5AgUBcAUCY0IJAMwIAgkBDEludGVnZXJFbnRyeQIFAXkFAWQJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFuAQUBbwUCYkIFA25pbAUCY0QGAwMFAmN0CQAAAgUCYkoFBHVuaXQHCQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIFAXkFAWYFA25pbAYDCQAAAgUCYkoFBHVuaXQJAJQKAgUDbmlsBwMJAAACBQJiSgUBZAQCY0UJAKIIAQUBegQCYWkFAmNFAwkAAQIFAmFpAgRVbml0BAJjRgkAoggBCQECYVYBBQJhUwMJAAECBQJjRgIEVW5pdAkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQF5BQFlCQDMCAIJAQtEZWxldGVFbnRyeQEFAXoFA25pbAYDCQABAgUCY0YCBlN0cmluZwQCY0cFAmNGCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgUBegUCY0cFA25pbAYJAAIBAgtNYXRjaCBlcnJvcgMJAAECBQJhaQIGU3RyaW5nBAJiVwUCYWkEAmNICQCiCAEJAQJiYgIFAmFTBQJiVwMJAAACBQJjSAUCY0gEAmN4CQD8BwQFBHRoaXMCGnByb2Nlc3NQb29sQmFsYW5jZUlOVEVSTkFMCQDMCAIFAmJXBQNuaWwFA25pbAMJAAACBQJjeAUCY3gEAmNGBQJjSAMJAAECBQJjRgIEVW5pdAkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQF5BQFlCQDMCAIJAQtEZWxldGVFbnRyeQEFAXoFA25pbAYDCQABAgUCY0YCBlN0cmluZwQCY0cFAmNGCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgUBegUCY0cFA25pbAYJAAIBAgtNYXRjaCBlcnJvcgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECC01hdGNoIGVycm9yAwkAAAIFAmJKBQFlBAJjRQkAoggBBQF6BAJjSQkAoggBBQFBBAJhaQUCY0UDCQABAgUCYWkCBFVuaXQEAmNGCQCiCAEJAQJhVgEFAmFTAwkAAQIFAmNGAgRVbml0CQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIFAXkFAWYJAMwIAgkBC0RlbGV0ZUVudHJ5AQUBegkAzAgCCQELRGVsZXRlRW50cnkBBQFBBQNuaWwGAwkAAQIFAmNGAgZTdHJpbmcEAmNKBQJjRgkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIFAXoFAmNKBQNuaWwGCQACAQILTWF0Y2ggZXJyb3IDCQABAgUCYWkCBlN0cmluZwQCYlcFAmFpBAFLCQECYXABBQJiVwQCY0sEAmNGBQJjSQMJAAECBQJjRgIEVW5pdAkAoggBCQECYVYBCQECYVQBBQFLAwkAAQIFAmNGAgZTdHJpbmcEAmNMBQJjRgQCY00JAKIIAQkBAmJiAgkBAmFUAQUBSwUCY0wDCQAAAgUCY00FAmNNBAJjTgkA/AcEBQR0aGlzAhNwcm9jZXNzVm90ZUlOVEVSTkFMCQDMCAIFAmJXCQDMCAIFAmNMBQNuaWwFA25pbAMJAAACBQJjTgUCY04FAmNNCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQILTWF0Y2ggZXJyb3IEAmNGBQJjSwMJAAECBQJjRgIEVW5pdAQCY0gJAKIIAQkBAmJiAgUCYVMFAmJXBAJjTwUCY0gDCQABAgUCY08CBFVuaXQJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUBeQUBZgkAzAgCCQELRGVsZXRlRW50cnkBBQF6CQDMCAIJAQtEZWxldGVFbnRyeQEFAUEFA25pbAYDCQABAgUCY08CBlN0cmluZwQCYm4FAmNPCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgUBegUCYm4JAMwIAgkBC0RlbGV0ZUVudHJ5AQUBQQUDbmlsBgkAAgECC01hdGNoIGVycm9yAwkAAQIFAmNGAgZTdHJpbmcEAmNQBQJjRgkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIFAUEFAmNQBQNuaWwGCQACAQILTWF0Y2ggZXJyb3IJAAIBAgtNYXRjaCBlcnJvcgMJAAACBQJiSgUBZgQCY0UJAKIIAQUBegQCYWkFAmNFAwkAAQIFAmFpAgRVbml0BAJjRgkAoggBCQECYVYBBQJhUwMJAAECBQJjRgIEVW5pdAQCY2IDBQJjdAkAzAgCCQELRGVsZXRlRW50cnkBBQF5CQDMCAIJAQtEZWxldGVFbnRyeQEFAUUFA25pbAkAzAgCCQELRGVsZXRlRW50cnkBBQF5CQDMCAIJAQxCb29sZWFuRW50cnkCCQEBSQEFAmNBBgkAzAgCCQEMSW50ZWdlckVudHJ5AgUBQwUBbwkAzAgCCQEMSW50ZWdlckVudHJ5AgUBRAUCYkgFA25pbAQCY1EJAQJhUQADCQAAAgUCY1EFAmNRCQCUCgIFAmNiBgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgMJAAECBQJjRgIGU3RyaW5nBAJjRwUCY0YJAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCBQF6BQJjRwUDbmlsBgkAAgECC01hdGNoIGVycm9yAwkAAQIFAmFpAgZTdHJpbmcEAmJXBQJhaQQCY0gJAKIIAQkBAmJiAgUCYVMFAmJXAwkAAAIFAmNIBQJjSAQCY3gKAAJhbQkA/AcEBQR0aGlzAhNwcm9jZXNzUG9vbElOVEVSTkFMCQDMCAIFAmJXCQDMCAIFAmN0BQNuaWwFA25pbAMJAAECBQJhbQIHQm9vbGVhbgUCYW0JAAIBCQCsAgIJAAMBBQJhbQIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgMJAAACBQJjeAUCY3gDBQJjeAkAlAoCBQNuaWwGBAJjRgUCY0gDCQABAgUCY0YCBFVuaXQEAmNiAwUCY3QJAMwIAgkBC0RlbGV0ZUVudHJ5AQUBeQkAzAgCCQELRGVsZXRlRW50cnkBBQFFCQDMCAIJAQtEZWxldGVFbnRyeQEFAXoFA25pbAkAzAgCCQELRGVsZXRlRW50cnkBBQF5CQDMCAIJAQxCb29sZWFuRW50cnkCCQEBSQEFAmNBBgkAzAgCCQEMSW50ZWdlckVudHJ5AgUBQwUBbwkAzAgCCQEMSW50ZWdlckVudHJ5AgUBRAUCYkgJAMwIAgkBC0RlbGV0ZUVudHJ5AQUBegUDbmlsBAJjUQkBAmFRAAMJAAACBQJjUQUCY1EJAJQKAgUCY2IGCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAwkAAQIFAmNGAgZTdHJpbmcEAmNHBQJjRgkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIFAXoFAmNHBQNuaWwGCQACAQILTWF0Y2ggZXJyb3IJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAgtNYXRjaCBlcnJvcgkBAmFkAQIWZmluYWxpemF0aW9uIGlzIGJyb2tlbgJicgEPZmluYWxpemVXcmFwcGVyAQJjUgQCY1MJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMFAXQEAmNUCgACYW0JAPwHBAUEdGhpcwIOZmluYWxpemVIZWxwZXIFA25pbAUDbmlsAwkAAQIFAmFtAgdCb29sZWFuBQJhbQkAAgEJAKwCAgkAAwEFAmFtAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuAwkAAAIFAmNUBQJjVAMJAQEhAQUCY1QDCQAAAgUCY1IAAAkBAmFkAQIeQ3VycmVudCB2b3RpbmcgaXMgbm90IG92ZXIgeWV0BAJjVQkA/AcEBQJjUwIIZmluYWxpemUFA25pbAUDbmlsAwkAAAIFAmNVBQJjVQkAlAoCBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4EAmNWCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAXEFAWMDCQBmAgUCY1YFAmNSBAJjVQkA/AcEBQR0aGlzAg9maW5hbGl6ZVdyYXBwZXIJAMwIAgkAZAIFAmNSAAEFA25pbAUDbmlsAwkAAAIFAmNVBQJjVQkAlAoCBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAJQKAgUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJyAQhmaW5hbGl6ZQAEAmNVCQD8BwQFBHRoaXMCD2ZpbmFsaXplV3JhcHBlcgkAzAgCAAAFA25pbAUDbmlsAwkAAAIFAmNVBQJjVQkAlAoCBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYnIBFGNvbnRhaW5zTm9kZVJFQURPTkxZAgJhVwJiYQkAlAoCBQNuaWwJAQJiYwIFAmFXBQJiYQJicgEKaW5zZXJ0Tm9kZQICYVcCYmEEAmJYCQECYnQBBQJicgMJAAACBQJiWAUCYlgJAJQKAgkBAmJnAgUCYVcFAmJhBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJyAQpkZWxldGVOb2RlAgJhVwJiYQQCYlgJAQJidAEFAmJyAwkAAAIFAmJYBQJiWAkAlAoCCQECYmoCBQJhVwUCYmEFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYnIBGGlzRmluYWxpemF0aW9uSW5Qcm9ncmVzcwAEAmJKCQCaCAIFBHRoaXMFAXkEAmNXCQECIT0CBQJiSgUEdW5pdAkAlAoCBQNuaWwFAmNXAmJyAQpkZWxldGVQb29sAgFNAU4EAmJYAwMJAAACCAUCYnIGY2FsbGVyBQJhcgYJAQJidAEFAmJyBgkBAmFkAQIRUGVybWlzc2lvbiBkZW5pZWQDCQAAAgUCYlgFAmJYBAJhVwIFcG9vbHMEAUsJAJQKAgUBTQUBTgQCYmEJALkJAgkAzAgCBQFNCQDMCAIFAU4FA25pbAUBYQQCY2IDCQECYmMCBQJhVwUCYmEJAQJiagIFAmFXBQJiYQUDbmlsCQDOCAIJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAUoBBQFLBQNuaWwFAmNiCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJyAQZyZXN1bWUDAU0BTgJjWAQCYkoJAJoIAgUEdGhpcwUBeQQCY1kJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkBAmFCAgUBTQUBTgkBAmFiAQIOaW52YWxpZCBhc3NldHMEAmNlCAUCY1kCXzEEAmFOCAUCY1kCXzIEAmNaCQCRAwIIBQJicghwYXltZW50cwAABAJjeQkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwUBeAQCZGECCiVzX19jb25maWcEAmRiAAEEAmJ6CQERQGV4dHJOYXRpdmUoMTA2MikBCQECYWwCBQR0aGlzBQF2BAJkYwkA2QQBCQCRAwIJALUJAgkBEUBleHRyTmF0aXZlKDEwNTMpAgUCYnoFAmRhBQFhBQJkYgQCZGQKAAJhbQkA/AcEBQJjeQISaXNWZXJpZmllZFJFQURPTkxZCQDMCAIFAU0FA25pbAUDbmlsAwkAAQIFAmFtAgdCb29sZWFuBQJhbQkAAgEJAKwCAgkAAwEFAmFtAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuBAJkZQoAAmFtCQD8BwQFAmN5AhJpc1ZlcmlmaWVkUkVBRE9OTFkJAMwIAgUBTgUDbmlsBQNuaWwDCQABAgUCYW0CB0Jvb2xlYW4FAmFtCQACAQkArAICCQADAQUCYW0CHCBjb3VsZG4ndCBiZSBjYXN0IHRvIEJvb2xlYW4EAmRmCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUEdGhpcwUBcgIWaW52YWxpZCByZXN1bXB0aW9uIGZlZQQCYkMJAMwIAgMJAAACBQJiSgUEdW5pdAYJAQJhZAECG2ZpbmFsaXphdGlvbiBpcyBpbiBwcm9ncmVzcwkAzAgCAwkAAAIIBQJjWgdhc3NldElkBQJkYwYJAQJhZAECHGludmFsaWQgZmVlIHBheW1lbnQgYXNzZXQgaWQJAMwIAgMJAAACCAUCY1oGYW1vdW50BQJkZgYJAQJhZAECGmludmFsaWQgZmVlIHBheW1lbnQgYW1vdW50CQDMCAIDAwUCZGQFAmRlBwYJAQJhZAECHmJvdGggYXNzZXRzIHNob3VsZCBiZSB2ZXJpZmllZAUDbmlsAwkAAAIFAmJDBQJiQwQCZGcJAPAHAgUEdGhpcwUCYU4DCQAAAgUCZGcFAmRnBAJkaAcEAmRpAwkAAAIJAJADAQgFAmJyCHBheW1lbnRzAAEEAmNhCgACYW0JAPwHBAUCYXICDGNoZWNrQmFsYW5jZQkAzAgCCQECYUEBBQJhTgUDbmlsBQNuaWwDCQABAgUCYW0CB0Jvb2xlYW4FAmFtCQACAQkArAICCQADAQUCYW0CHCBjb3VsZG4ndCBiZSBjYXN0IHRvIEJvb2xlYW4DBQJjYQYJAQJhZAECGWFzc2V0cyBzaG91bGQgYmUgYXR0YWNoZWQDCQAAAgkAkAMBCAUCYnIIcGF5bWVudHMAAgQCZGoJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA8QcBBQJjZQkBAmFiAQIccG9vbCBhZGRyZXNzIGlzIG5vdCBzY3JpcHRlZAQCZGsJANsEAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFAmFyCQEBRwAJAQJhYgECKGFsbG93ZWQgbHAgc3RhYmxlIHNjcmlwdCBoYXNoIGlzIG5vdCBzZXQEAmRsCQAAAgUCZGoFAmRrBAJkbQMFAmRsAgtwdXRPbmVUa25WMgIJcHV0T25lVGtuCQD8BwQFAmNlBQJkbQkAzAgCBQJjWAkAzAgCBQJkaAUDbmlsCQDMCAIJAJEDAggFAmJyCHBheW1lbnRzAAEFA25pbAMJAAACCQCQAwEIBQJicghwYXltZW50cwADCQD8BwQFAmNlAgNwdXQJAMwIAgUCY1gJAMwIAgUCZGgFA25pbAkAzAgCCQCRAwIIBQJicghwYXltZW50cwABCQDMCAIJAJEDAggFAmJyCHBheW1lbnRzAAIFA25pbAkBAmFkAQIVaW52YWxpZCBwYXltZW50cyBzaXplAwkAAAIFAmRpBQJkaQQCZG4JAPAHAgUEdGhpcwUCYU4DCQAAAgUCZG4FAmRuBAJkbwkAZQIFAmRuBQJkZwQCZHADCQBmAgUCZG8AAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUCYnIGY2FsbGVyBQJkbwUCYU4FA25pbAUDbmlsBAJkcQkA/AcEBQJhcgIWc2V0V3hFbWlzc2lvblBvb2xMYWJlbAkAzAgCBQFNCQDMCAIFAU4FA25pbAUDbmlsAwkAAAIFAmRxBQJkcQQCZHIKAAJhbQkA/AcEBQJhcgIVZ2V0UG9vbFN0YXR1c1JFQURPTkxZCQDMCAIJAKUIAQUCY2UFA25pbAUDbmlsAwkAAQIFAmFtAgNJbnQFAmFtCQACAQkArAICCQADAQUCYW0CGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAQCY2YDCQAAAgUCZHIFAWoJAPwHBAUCYXICCm1hbmFnZVBvb2wJAMwIAgkApQgBBQJjZQkAzAgCBQFoBQNuaWwFA25pbAUEdW5pdAMJAAACBQJjZgUCY2YEAUsJAJQKAgUBTQUBTgQCYkQJAM4IAgkAzAgCCQEMQm9vbGVhbkVudHJ5AgkBAUoBBQFLBgUDbmlsCQECYmcCBQJhUwkBAmFvAQUBSwkAlAoCCQDOCAIFAmJEBQJkcAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECZHMBAmR0AAQCZHUEAmFpCQECYm8AAwkAAQIFAmFpAgpCeXRlVmVjdG9yBAJicwUCYWkFAmJzAwkAAQIFAmFpAgRVbml0CAUCZHMPc2VuZGVyUHVibGljS2V5CQACAQILTWF0Y2ggZXJyb3IJAPQDAwgFAmRzCWJvZHlCeXRlcwkAkQMCCAUCZHMGcHJvb2ZzAAAFAmR1qE0mxg==", "height": 3069306, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BL3oJzDQxq8t8jLPudSUKH8mn4h5SHVfixt7y6njYRmi Next: 5Lrz9ARrmWLs4a4SSf12xH6ApDgh6XHk2Mm5bsL1RaAo Diff:
OldNewDifferences
1515
1616 let g = "WAVES"
1717
18-let h = makeString(["%s", "epochLength"], a)
18+let h = 1
1919
20-let i = makeString(["%s%s", "epochLength__new"], a)
20+let i = 2
2121
22-func j (k) = makeString(["%s%d", "epochLength", toString(k)], a)
22+let j = 3
23+
24+let k = 4
25+
26+let l = makeString(["%s", "epochLength"], a)
27+
28+let m = makeString(["%s%s", "epochLength__new"], a)
29+
30+func n (o) = makeString(["%s%d", "epochLength", toString(o)], a)
2331
2432
25-let l = makeString(["%s", "currentEpoch"], a)
33+let p = makeString(["%s", "currentEpoch"], a)
2634
27-let m = makeString(["%s", "maxDepth"], a)
35+let q = makeString(["%s", "maxDepth"], a)
2836
29-let n = makeString(["%s", "resumptionFee"], a)
37+let r = makeString(["%s", "resumptionFee"], a)
3038
31-let o = makeString(["%s", "votingEmissionCandidateContract"], a)
39+let s = makeString(["%s", "votingEmissionCandidateContract"], a)
3240
33-let p = makeString(["%s", "votingEmissionRateContract"], a)
41+let t = makeString(["%s", "votingEmissionRateContract"], a)
3442
35-let q = makeString(["%s", "factoryContract"], a)
43+let u = makeString(["%s", "factoryContract"], a)
3644
37-let r = makeString(["%s", "boostingContract"], a)
45+let v = makeString(["%s", "boostingContract"], a)
3846
39-let s = makeString(["%s", "stakingContract"], a)
47+let w = makeString(["%s", "stakingContract"], a)
4048
41-let t = makeString(["%s", "assetsStoreContract"], a)
49+let x = makeString(["%s", "assetsStoreContract"], a)
4250
43-let u = makeString(["%s", "finalizationStage"], a)
51+let y = makeString(["%s", "finalizationStage"], a)
4452
45-let v = makeString(["%s", "nextPool"], a)
53+let z = makeString(["%s", "nextPool"], a)
4654
47-let w = makeString(["%s", "nextUser"], a)
55+let A = makeString(["%s", "nextUser"], a)
4856
49-let x = makeString(["%s", "startHeight"], a)
57+let B = makeString(["%s", "startHeight"], a)
5058
51-let y = makeString(["%s", "currentEpochUi"], a)
59+let C = makeString(["%s", "currentEpochUi"], a)
5260
53-let z = makeString(["%s", "startHeightUi"], a)
61+let D = makeString(["%s", "startHeightUi"], a)
5462
55-let A = makeString(["%s", "force"], a)
63+let E = makeString(["%s", "force"], a)
5664
57-func B () = "%s__allowedLpScriptHash"
65+func F () = "%s__allowedLpScriptHash"
5866
5967
60-func C () = "%s__allowedLpStableScriptHash"
68+func G () = "%s__allowedLpStableScriptHash"
6169
6270
63-func D (k) = makeString(["%s%d", "startHeight", toString(k)], a)
71+func H (o) = makeString(["%s%d", "startHeight", toString(o)], a)
6472
6573
66-func E (k) = makeString(["%s%d", "finalized", toString(k)], a)
74+func I (o) = makeString(["%s%d", "finalized", toString(o)], a)
6775
6876
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)
77+func J (K) = {
78+ let L = K
79+ let M = L._1
80+ let N = L._2
81+ makeString(["%s%s%s", "inList", M, N], a)
7482 }
7583
7684
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)
85+func O (P,o) = makeString(["%s%s%d", "used", toString(P), toString(o)], a)
86+
87+
88+func Q (K,P,o) = {
89+ let R = K
90+ let M = R._1
91+ let N = R._2
92+ makeString(["%s%s%s%s%d", "vote", M, N, toString(P), toString(o)], a)
8293 }
8394
8495
85-func M (N,k) = makeString(["%s%s%d", "used", toString(N), toString(k)], a)
86-
87-
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)
96+func S (K,o) = {
97+ let T = K
98+ let M = T._1
99+ let N = T._2
100+ makeString(["%s%s%s%d", "votingResult", M, N, toString(o)], a)
93101 }
94102
95103
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)
104+func U (V,o) = makeString(["%s%s%d", "votingResultStaked", V, toString(o)], a)
105+
106+
107+func W (K,o) = {
108+ let X = K
109+ let M = X._1
110+ let N = X._2
111+ makeString(["%s%s%s%d", "poolShare", M, N, toString(o)], a)
101112 }
102113
103114
104-func S (T,k) = makeString(["%s%s%d", "votingResultStaked", T, toString(k)], a)
115+func Y (o) = makeString(["%s%d", "totalVotes", toString(o)], a)
105116
106117
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)
118+func Z (V,aa) = makeString(["%s%s%s", "staked", aa, V], a)
119+
120+
121+func ab (ac) = makeString(["voting_emission.ride:", ac], " ")
122+
123+
124+func ad (ac) = throw(ab(ac))
125+
126+
127+func ae (P,af,ag) = {
128+ let ah = ab(makeString(["mandatory ", toString(P), ".", af, " is not defined"], ""))
129+ valueOrErrorMessage({
130+ let ai = ag
131+ if ($isInstanceOf(ai, "String"))
132+ then {
133+ let aj = ai
134+ getString(P, af)
135+ }
136+ else if ($isInstanceOf(ai, "Int"))
137+ then {
138+ let ak = ai
139+ getInteger(P, af)
140+ }
141+ else ad("invalid entry type")
142+ }, ah)
112143 }
113144
114145
115-func W (k) = makeString(["%s%d", "totalVotes", toString(k)], a)
116-
117-
118-func X (T,Y) = makeString(["%s%s%s", "staked", Y, T], a)
119-
120-
121-func Z (aa) = makeString(["voting_emission.ride:", aa], " ")
122-
123-
124-func ab (aa) = throw(Z(aa))
125-
126-
127-func ac (N,ad,ae) = {
128- let af = Z(makeString(["mandatory ", toString(N), ".", ad, " is not defined"], ""))
129- valueOrErrorMessage({
130- let ag = ae
131- if ($isInstanceOf(ag, "String"))
132- then {
133- let ah = ag
134- getString(N, ad)
135- }
136- else if ($isInstanceOf(ag, "Int"))
137- then {
138- let ai = ag
139- getInteger(N, ad)
140- }
141- else ab("invalid entry type")
142- }, af)
146+func al (P,af) = {
147+ let am = ae(P, af, "")
148+ if ($isInstanceOf(am, "String"))
149+ then am
150+ else throw(($getType(am) + " couldn't be cast to String"))
143151 }
144152
145153
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"))
154+func an (P,af) = {
155+ let am = ae(P, af, 0)
156+ if ($isInstanceOf(am, "Int"))
157+ then am
158+ else throw(($getType(am) + " couldn't be cast to Int"))
151159 }
152160
153161
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"))
162+func ao (K) = ((K._1 + a) + K._2)
163+
164+
165+func ap (aj) = {
166+ let aq = split(aj, a)
167+ if ((size(aq) == 2))
168+ then $Tuple2(aq[0], aq[1])
169+ else ad("invalid pool string")
159170 }
160171
161172
162-func am (G) = ((G._1 + a) + G._2)
173+let ar = addressFromStringValue(al(this, u))
174+
175+let as = 10
176+
177+func at () = "%s__factoryConfig"
163178
164179
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")
180+func au (av) = split(al(av, at()), a)
181+
182+
183+func aw (ax) = addressFromStringValue(ax[as])
184+
185+
186+func ay (az) = if ((az == g))
187+ then unit
188+ else fromBase58String(az)
189+
190+
191+func aA (az) = if ((az == unit))
192+ then g
193+ else toBase58String(value(az))
194+
195+
196+func aB (M,N) = {
197+ let aC = {
198+ let am = invoke(ar, "poolInfoREADONLY", [M, N], nil)
199+ if ($isInstanceOf(am, "(Address, ByteVector)"))
200+ then am
201+ else unit
202+ }
203+ aC
170204 }
171205
172206
173-let ap = addressFromStringValue(aj(this, q))
207+func aD (M,N) = {
208+ func aE (aF) = ("%s%s%s__mappings__baseAsset2internalId__" + aF)
174209
175-let aq = 10
210+ func aG (aH,aI) = (((("%d%d%s%s__" + toString(aH)) + "__") + toString(aI)) + "__mappings__poolAssets2PoolContract")
176211
177-func ar () = "%s__factoryConfig"
212+ func aJ (aK) = (("%s%s%s__" + aK) + "__mappings__poolContract2LpAsset")
178213
179-
180-func as (at) = split(aj(at, ar()), a)
181-
182-
183-func au (av) = addressFromStringValue(av[aq])
184-
185-
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
201- else unit
202- }
203- aA
214+ let aL = an(ar, aE(M))
215+ let aM = an(ar, aE(N))
216+ let aK = al(ar, aG(aL, aM))
217+ let aN = al(ar, aJ(aK))
218+ aN
204219 }
205220
206221
207-func aB (I,J) = {
208- func aC (aD) = ("%s%s%s__mappings__baseAsset2internalId__" + aD)
209-
210- func aE (aF,aG) = (((("%d%d%s%s__" + toString(aF)) + "__") + toString(aG)) + "__mappings__poolAssets2PoolContract")
211-
212- func aH (aI) = (("%s%s%s__" + aI) + "__mappings__poolContract2LpAsset")
213-
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
222+func aO (K) = {
223+ let aP = K
224+ let M = aP._1
225+ let N = aP._2
226+ let am = invoke(ar, "checkWxEmissionPoolLabel", [M, N], nil)
227+ if ($isInstanceOf(am, "Boolean"))
228+ then am
229+ else throw(($getType(am) + " couldn't be cast to Boolean"))
219230 }
220231
221232
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"))
233+func aQ () = {
234+ let ax = au(ar)
235+ let aR = aw(ax)
236+ invoke(aR, "deposit", nil, nil)
230237 }
231238
232239
233-func aO () = {
234- let av = as(ap)
235- let aP = au(av)
236- invoke(aP, "deposit", nil, nil)
240+let aS = "pools"
241+
242+func aT (K) = {
243+ let aU = K
244+ let M = aU._1
245+ let N = aU._2
246+ makeString(["votes", M, N], a)
237247 }
238248
239249
240-let aQ = "pools"
241-
242-func aR (G) = {
243- let aS = G
244- let I = aS._1
245- let J = aS._2
246- makeString(["votes", I, J], a)
250+func aV (aW) = {
251+ let aX = if ((aW == aS))
252+ then "%s%s"
253+ else "%s%s%s%s"
254+ makeString([aX, aW, "head"], a)
247255 }
248256
249257
250-func aT (aU) = {
251- let aV = if ((aU == aQ))
258+func aY (aW) = {
259+ let aX = if ((aW == aS))
252260 then "%s%s"
253261 else "%s%s%s%s"
254- makeString([aV, aU, "head"], a)
262+ makeString([aX, aW, "size"], a)
255263 }
256264
257265
258-func aW (aU) = {
259- let aV = if ((aU == aQ))
260- then "%s%s"
261- else "%s%s%s%s"
262- makeString([aV, aU, "size"], a)
266+func aZ (aW,ba) = {
267+ let aX = if ((aW == aS))
268+ then "%s%s%s%s"
269+ else "%s%s%s%s%s"
270+ makeString([aX, aW, ba, "prev"], a)
263271 }
264272
265273
266-func aX (aU,aY) = {
267- let aV = if ((aU == aQ))
274+func bb (aW,ba) = {
275+ let aX = if ((aW == aS))
268276 then "%s%s%s%s"
269277 else "%s%s%s%s%s"
270- makeString([aV, aU, aY, "prev"], a)
278+ makeString([aX, aW, ba, "next"], a)
271279 }
272280
273281
274-func aZ (aU,aY) = {
275- let aV = if ((aU == aQ))
276- then "%s%s%s%s"
277- else "%s%s%s%s%s"
278- makeString([aV, aU, aY, "next"], a)
282+func bc (aW,ba) = {
283+ let bd = getString(this, aV(aW))
284+ let be = getString(this, aZ(aW, ba))
285+ let bf = getString(this, bb(aW, ba))
286+ if (if ((ba == valueOrElse(bd, "")))
287+ then true
288+ else (be != unit))
289+ then true
290+ else (bf != unit)
279291 }
280292
281293
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, "")))
294+func bg (aW,ba) = {
295+ let bd = getString(this, aV(aW))
296+ let bh = valueOrElse(getInteger(this, aY(aW)), 0)
297+ let bi = if (!(bc(aW, ba)))
287298 then true
288- else (bc != unit))
289- then true
290- else (bd != unit)
291- }
292-
293-
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)))
298- then true
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)])
299+ else ad("Node exists")
300+ if ((bi == bi))
301+ then (([IntegerEntry(aY(aW), (bh + 1))] ++ (if ((bd != unit))
302+ then [StringEntry(bb(aW, ba), value(bd)), StringEntry(aZ(aW, value(bd)), ba)]
303+ else nil)) ++ [StringEntry(aV(aW), ba)])
304304 else throw("Strict value is not equal to itself.")
305305 }
306306
307307
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)
308+func bj (aW,ba) = {
309+ let bd = getString(this, aV(aW))
310+ let bh = valueOrElse(getInteger(this, aY(aW)), 0)
311+ let be = getString(this, aZ(aW, ba))
312+ let bf = getString(this, bb(aW, ba))
313+ ([IntegerEntry(aY(aW), (bh - 1))] ++ (if (if ((be != unit))
314+ then (bf != unit)
315315 else false)
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))))
316+ then [StringEntry(bb(aW, value(be)), value(bf)), StringEntry(aZ(aW, value(bf)), value(be)), DeleteEntry(aZ(aW, ba)), DeleteEntry(bb(aW, ba))]
317+ else if ((bf != unit))
318+ then [StringEntry(aV(aW), value(bf)), DeleteEntry(bb(aW, ba)), DeleteEntry(aZ(aW, value(bf)))]
319+ else if ((be != unit))
320+ then [DeleteEntry(aZ(aW, ba)), DeleteEntry(bb(aW, value(be)))]
321+ else if ((ba == valueOrElse(bd, "")))
322+ then [DeleteEntry(aV(aW))]
323+ else ad(((("invalid node: " + aW) + ".") + ba))))
324324 }
325325
326326
327-func bi () = "%s__managerVaultAddress"
327+func bk () = "%s__managerVaultAddress"
328328
329329
330-func bj () = "%s__managerPublicKey"
330+func bl () = "%s__managerPublicKey"
331331
332332
333-func bk () = {
334- let ag = getString(bi())
335- if ($isInstanceOf(ag, "String"))
333+func bm () = {
334+ let ai = getString(bk())
335+ if ($isInstanceOf(ai, "String"))
336336 then {
337- let bl = ag
338- addressFromStringValue(bl)
337+ let bn = ai
338+ addressFromStringValue(bn)
339339 }
340340 else this
341341 }
342342
343343
344-func bm () = {
345- let bn = bk()
346- let ag = getString(bn, bj())
347- if ($isInstanceOf(ag, "String"))
344+func bo () = {
345+ let bp = bm()
346+ let ai = getString(bp, bl())
347+ if ($isInstanceOf(ai, "String"))
348348 then {
349- let bl = ag
350- fromBase58String(bl)
349+ let bn = ai
350+ fromBase58String(bn)
351351 }
352- else if ($isInstanceOf(ag, "Unit"))
352+ else if ($isInstanceOf(ai, "Unit"))
353353 then unit
354354 else throw("Match error")
355355 }
356356
357357
358-func bo (bp) = {
359- let ag = bm()
360- if ($isInstanceOf(ag, "ByteVector"))
358+func bq (br) = {
359+ let ai = bo()
360+ if ($isInstanceOf(ai, "ByteVector"))
361361 then {
362- let bq = ag
363- (bp.callerPublicKey == bq)
362+ let bs = ai
363+ (br.callerPublicKey == bs)
364364 }
365- else if ($isInstanceOf(ag, "Unit"))
366- then (bp.caller == this)
365+ else if ($isInstanceOf(ai, "Unit"))
366+ then (br.caller == this)
367367 else throw("Match error")
368368 }
369369
370370
371-func br (bp) = if (bo(bp))
371+func bt (br) = if (bq(br))
372372 then true
373373 else throw("permission denied")
374374
375375
376-func bs (bp) = if ((bp.caller == this))
376+func bu (br) = if ((br.caller == this))
377377 then true
378378 else throw("permission denied")
379379
380380
381-@Callable(bp)
382-func getUserGwxAmountAtHeight (bt,bu) = {
383- let bv = valueOrErrorMessage(addressFromString(aj(this, r)), Z("invalid boosting contract address"))
381+@Callable(br)
382+func getUserGwxAmountAtHeight (bv,bw) = {
383+ let bx = valueOrErrorMessage(addressFromString(al(this, v)), ab("invalid boosting contract address"))
384384 $Tuple2(nil, {
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"))
385+ let am = invoke(bx, "getUserGwxAmountAtHeightREADONLY", [bv, bw], nil)
386+ if ($isInstanceOf(am, "Int"))
387+ then am
388+ else throw(($getType(am) + " couldn't be cast to Int"))
389389 })
390390 }
391391
392392
393393
394-@Callable(bp)
395-func constructor (ap,bw,bx,by,bz) = {
396- let bA = [br(bp), if ((addressFromString(ap) != unit))
394+@Callable(br)
395+func constructor (ar,by,bz,bA,bB) = {
396+ let bC = [bt(br), if ((addressFromString(ar) != unit))
397397 then true
398- else "invalid factory contract address", if ((addressFromString(bw) != unit))
398+ else "invalid factory contract address", if ((addressFromString(by) != unit))
399399 then true
400- else "invalid voting emission candidate contract address", if ((addressFromString(bx) != unit))
400+ else "invalid voting emission candidate contract address", if ((addressFromString(bz) != unit))
401401 then true
402- else "invalid boosting contract address", if ((addressFromString(by) != unit))
402+ else "invalid boosting contract address", if ((addressFromString(bA) != unit))
403403 then true
404- else "invalid staking contract address", if ((bz > 0))
404+ else "invalid staking contract address", if ((bB > 0))
405405 then true
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)
406+ else ad("invalid epoch length")]
407+ if ((bC == bC))
408+ then $Tuple2([StringEntry(u, ar), StringEntry(s, by), StringEntry(v, bz), StringEntry(w, bA), IntegerEntry(l, bB)], unit)
409409 else throw("Strict value is not equal to itself.")
410410 }
411411
412412
413413
414-@Callable(bp)
415-func create (I,J) = {
416- let bA = [if ((toBase58String(bp.caller.bytes) == valueOrElse(getString(this, o), "")))
414+@Callable(br)
415+func create (M,N) = {
416+ let bC = [if ((toBase58String(br.caller.bytes) == valueOrElse(getString(this, s), "")))
417417 then true
418- else br(bp)]
419- if ((bA == bA))
418+ else bt(br)]
419+ if ((bC == bC))
420420 then {
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)
421+ let K = $Tuple2(M, N)
422+ let bD = ([BooleanEntry(J(K), true)] ++ bg(aS, ao(K)))
423+ let bE = (getInteger(this, p) == unit)
424+ let bF = if (bE)
425425 then {
426- let k = 0
427-[IntegerEntry(l, k), IntegerEntry(D(k), height), IntegerEntry(x, height), IntegerEntry(y, k), IntegerEntry(z, height)]
426+ let o = 0
427+[IntegerEntry(p, o), IntegerEntry(H(o), height), IntegerEntry(B, height), IntegerEntry(C, o), IntegerEntry(D, height)]
428428 }
429429 else nil
430- $Tuple2((bB ++ bD), unit)
430+ $Tuple2((bD ++ bF), unit)
431431 }
432432 else throw("Strict value is not equal to itself.")
433433 }
434434
435435
436436
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"))
437+@Callable(br)
438+func vote (M,N,bG) = {
439+ let K = $Tuple2(M, N)
440+ let o = valueOrElse(getInteger(this, p), 0)
441+ let bH = an(this, H(o))
442+ let bB = an(this, l)
443+ let bI = (bH + bB)
444+ let bJ = getInteger(this, y)
445+ let bK = valueOrElse(getInteger(this, O(br.caller, o)), 0)
446+ let bL = valueOrElse(getInteger(this, Q(K, br.caller, o)), 0)
447+ let bM = valueOrElse(getInteger(this, S(K, o)), 0)
448+ let bN = valueOrElse(getInteger(this, Y(o)), 0)
449+ let bO = {
450+ let am = invoke(this, "getUserGwxAmountAtHeight", [toBase58String(br.caller.bytes), bI], nil)
451+ if ($isInstanceOf(am, "Int"))
452+ then am
453+ else throw(($getType(am) + " couldn't be cast to Int"))
454454 }
455- let bN = (bM - bI)
456- let bO = (bJ + bE)
457- let bP = aM(G)
458- let bA = [if ((getBoolean(F(G)) != unit))
455+ let bP = (bO - bK)
456+ let bQ = (bL + bG)
457+ let bR = aO(K)
458+ let bC = [if ((getBoolean(J(K)) != unit))
459459 then true
460- else ab("invalid assets"), if ((bG > height))
460+ else ad("invalid assets"), if ((bI > height))
461461 then true
462- else ab("invalid height"), if ((bH == unit))
462+ else ad("invalid height"), if ((bJ == unit))
463463 then true
464- else ab("finalization in progress"), if ((bM > 0))
464+ else ad("finalization in progress"), if ((bO > 0))
465465 then true
466- else ab("you do not have gWX"), if (if ((bE > 0))
467- then (bN >= bE)
466+ else ad("you do not have gWX"), if (if ((bG > 0))
467+ then (bP >= bG)
468468 else false)
469469 then true
470- else ab("invalid amount"), if (bP)
470+ else ad("invalid amount"), if (bR)
471471 then true
472- else ab("pool hasn't WX_EMISSION label")]
473- if ((bA == bA))
472+ else ad("pool hasn't WX_EMISSION label")]
473+ if ((bC == bC))
474474 then {
475- let bQ = aR(G)
476- let Y = toString(bp.caller)
477- let bR = if (ba(bQ, Y))
475+ let bS = aT(K)
476+ let aa = toString(br.caller)
477+ let bT = if (bc(bS, aa))
478478 then nil
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)
479+ else bg(bS, aa)
480+ $Tuple2(([IntegerEntry(O(br.caller, o), (bK + bG)), IntegerEntry(Q(K, br.caller, o), bQ), IntegerEntry(S(K, o), (bM + bG)), IntegerEntry(Y(o), (bN + bG))] ++ bT), unit)
481481 }
482482 else throw("Strict value is not equal to itself.")
483483 }
484484
485485
486486
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))
487+@Callable(br)
488+func cancelVote (M,N) = {
489+ let K = $Tuple2(M, N)
490+ let o = valueOrElse(getInteger(this, p), 0)
491+ let bH = an(this, H(o))
492+ let bB = an(this, l)
493+ let bI = (bH + bB)
494+ let bJ = getInteger(this, y)
495+ let bK = valueOrElse(getInteger(this, O(br.caller, o)), 0)
496+ let bL = valueOrElse(getInteger(this, Q(K, br.caller, o)), 0)
497+ let bM = valueOrElse(getInteger(this, S(K, o)), 0)
498+ let bN = valueOrElse(getInteger(this, Y(o)), 0)
499+ let bC = [if ((getBoolean(J(K)) != unit))
500500 then true
501- else ab("invalid assets"), if ((bG > height))
501+ else ad("invalid assets"), if ((bI > height))
502502 then true
503- else ab("invalid height"), if ((bH == unit))
503+ else ad("invalid height"), if ((bJ == unit))
504504 then true
505- else ab("finalization in progress"), if ((bJ > 0))
505+ else ad("finalization in progress"), if ((bL > 0))
506506 then true
507- else ab("no vote")]
508- if ((bA == bA))
507+ else ad("no vote")]
508+ if ((bC == bC))
509509 then {
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)
510+ let bS = aT(K)
511+ let aa = toString(br.caller)
512+ $Tuple2(([IntegerEntry(O(br.caller, o), max([(bK - bL), 0])), DeleteEntry(Q(K, br.caller, o)), IntegerEntry(S(K, o), (bM - bL)), IntegerEntry(Y(o), (bN - bL))] ++ bj(bS, aa)), unit)
513513 }
514514 else throw("Strict value is not equal to itself.")
515515 }
516516
517517
518518
519-@Callable(bp)
520-func setEpochLength (bS) = {
521- let bA = [br(bp), if ((bS > 0))
519+@Callable(br)
520+func setEpochLength (bU) = {
521+ let bC = [bt(br), if ((bU > 0))
522522 then true
523- else ab("invalid epoch length")]
524- if ((bA == bA))
525- then $Tuple2([IntegerEntry(i, bS)], unit)
523+ else ad("invalid epoch length")]
524+ if ((bC == bC))
525+ then $Tuple2([IntegerEntry(m, bU)], unit)
526526 else throw("Strict value is not equal to itself.")
527527 }
528528
529529
530530
531-@Callable(bp)
532-func setMaxDepth (bT) = {
533- let bA = [br(bp), if ((bT > 0))
531+@Callable(br)
532+func setMaxDepth (bV) = {
533+ let bC = [bt(br), if ((bV > 0))
534534 then true
535- else ab("invalid max depth")]
536- if ((bA == bA))
537- then $Tuple2([IntegerEntry(m, bT)], unit)
535+ else ad("invalid max depth")]
536+ if ((bC == bC))
537+ then $Tuple2([IntegerEntry(q, bV)], unit)
538538 else throw("Strict value is not equal to itself.")
539539 }
540540
541541
542542
543-@Callable(bp)
544-func processPoolBalanceINTERNAL (bU) = {
545- let bV = bs(bp)
546- if ((bV == bV))
543+@Callable(br)
544+func processPoolBalanceINTERNAL (bW) = {
545+ let bX = bu(br)
546+ if ((bX == bX))
547547 then {
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"))
548+ let o = an(this, p)
549+ let bY = (o - 1)
550+ let K = ap(bW)
551+ let bZ = K
552+ let M = bZ._1
553+ let N = bZ._2
554+ let aN = aD(M, N)
555+ let ca = {
556+ let am = invoke(ar, "checkBalance", [aN], nil)
557+ if ($isInstanceOf(am, "Boolean"))
558+ then am
559+ else throw(($getType(am) + " couldn't be cast to Boolean"))
560560 }
561- let bZ = !(valueOrElse(getBoolean(this, K(G, (bW - 1))), false))
562- let ca = if (!(bY))
563- then if (!(bZ))
564- then {
565- let cb = invoke(ap, "deleteWxEmissionPoolLabel", [I, J], nil)
566- if ((cb == cb))
567- then {
568- let cc = invoke(ap, "modifyWeight", [aL, 0], nil)
569- if ((cc == cc))
570- then {
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))
575- then {
576- let cg = ([DeleteEntry(F(G))] ++ bh(aQ, am(G)))
577- ([IntegerEntry(U(G, bW), 0)] ++ cg)
578- }
579- else throw("Strict value is not equal to itself.")
580- }
581- else throw("Strict value is not equal to itself.")
582- }
583- else throw("Strict value is not equal to itself.")
584- }
585- else [BooleanEntry(K(G, bW), true)]
561+ let cb = if (!(ca))
562+ then {
563+ let cc = invoke(ar, "deleteWxEmissionPoolLabel", [M, N], nil)
564+ if ((cc == cc))
565+ then {
566+ let cd = invoke(ar, "modifyWeight", [aN, 0], nil)
567+ if ((cd == cd))
568+ then {
569+ let ce = valueOrErrorMessage(aB(M, N), ab("invalid assets"))._1
570+ let cf = invoke(ar, "managePool", [toString(ce), j], nil)
571+ if ((cf == cf))
572+ then {
573+ let cg = ([DeleteEntry(J(K))] ++ bj(aS, ao(K)))
574+ ([IntegerEntry(W(K, bY), 0)] ++ cg)
575+ }
576+ else throw("Strict value is not equal to itself.")
577+ }
578+ else throw("Strict value is not equal to itself.")
579+ }
580+ else throw("Strict value is not equal to itself.")
581+ }
586582 else nil
587- $Tuple2(ca, unit)
583+ $Tuple2(cb, unit)
588584 }
589585 else throw("Strict value is not equal to itself.")
590586 }
591587
592588
593589
594-@Callable(bp)
595-func processVoteINTERNAL (bU,Y) = {
596- let bV = bs(bp)
597- if ((bV == bV))
590+@Callable(br)
591+func processVoteINTERNAL (bW,aa) = {
592+ let bX = bu(br)
593+ if ((bX == bX))
598594 then {
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))
595+ let bv = valueOrErrorMessage(addressFromString(aa), ab(("processVoteINTERNAL: invalid user address " + aa)))
596+ let o = an(this, p)
597+ let bY = (o - 1)
598+ let bB = an(this, l)
599+ let bH = an(this, H(o))
600+ let bI = (bH + bB)
601+ let ch = an(this, H(bY))
602+ let ci = an(this, n(bY))
607603 let cj = (ch + ci)
608- let ck = if ((bW >= 0))
604+ let ck = if ((bY >= 0))
609605 then true
610- else ab("processVoteINTERNAL: invalid previous epoch")
606+ else ad("processVoteINTERNAL: invalid previous epoch")
611607 if ((ck == ck))
612608 then {
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"))
609+ let K = ap(bW)
610+ let cl = K
611+ let M = cl._1
612+ let N = cl._2
613+ let bO = {
614+ let am = invoke(this, "getUserGwxAmountAtHeight", [aa, bI], nil)
615+ if ($isInstanceOf(am, "Int"))
616+ then am
617+ else throw(($getType(am) + " couldn't be cast to Int"))
622618 }
623619 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"))
620+ let am = invoke(this, "getUserGwxAmountAtHeight", [aa, cj], nil)
621+ if ($isInstanceOf(am, "Int"))
622+ then am
623+ else throw(($getType(am) + " couldn't be cast to Int"))
628624 }
629- let bL = valueOrElse(getInteger(W(k)), 0)
630- let cn = valueOrElse(getInteger(Q(G, k)), 0)
631- let co = getInteger(O(G, bt, bW))
632- let cp = valueOrErrorMessage(co, Z((((("processVoteINTERNAL " + bU) + " ") + Y) + ": no previous vote")))
633- let bI = valueOrElse(getInteger(this, M(bt, k)), 0)
634- let T = aB(I, J)
635- let cq = valueOrElse(getInteger(S(T, bW)), 0)
636- let by = addressFromStringValue(aj(this, s))
637- let cr = valueOrElse(getInteger(by, X(T, Y)), 0)
625+ let bN = valueOrElse(getInteger(Y(o)), 0)
626+ let cn = valueOrElse(getInteger(S(K, o)), 0)
627+ let co = getInteger(Q(K, bv, bY))
628+ let cp = valueOrErrorMessage(co, ab((((("processVoteINTERNAL " + bW) + " ") + aa) + ": no previous vote")))
629+ let bK = valueOrElse(getInteger(this, O(bv, o)), 0)
630+ let V = aD(M, N)
631+ let cq = valueOrElse(getInteger(U(V, bY)), 0)
632+ let bA = addressFromStringValue(al(this, w))
633+ let cr = valueOrElse(getInteger(bA, Z(V, aa)), 0)
638634 let cs = if (if ((cr == 0))
639635 then true
640636 else (co == unit))
641637 then nil
642- else [IntegerEntry(S(T, bW), (cq + cp))]
643- let aL = aB(I, J)
644- let bO = if ((cm > 0))
645- then fraction(cp, bM, cm)
638+ else [IntegerEntry(U(V, bY), (cq + cp))]
639+ let aN = aD(M, N)
640+ let bQ = if ((cm > 0))
641+ then fraction(cp, bO, cm)
646642 else 0
647- let ca = if (if ((co == unit))
643+ let cb = if (if ((co == unit))
648644 then true
649- else (0 >= bO))
650- then bh(aR(G), Y)
651- else [IntegerEntry(O(G, bt, k), bO), IntegerEntry(W(k), (bL + bO)), IntegerEntry(Q(G, k), (cn + bO)), IntegerEntry(M(bt, k), (bI + bO))]
652- $Tuple2((ca ++ cs), unit)
645+ else (0 >= bQ))
646+ then bj(aT(K), aa)
647+ else [IntegerEntry(Q(K, bv, o), bQ), IntegerEntry(Y(o), (bN + bQ)), IntegerEntry(S(K, o), (cn + bQ)), IntegerEntry(O(bv, o), (bK + bQ))]
648+ $Tuple2((cb ++ cs), unit)
653649 }
654650 else throw("Strict value is not equal to itself.")
655651 }
658654
659655
660656
661-@Callable(bp)
662-func processPoolINTERNAL (bU,ct) = {
663- let bV = bs(bp)
664- if ((bV == bV))
657+@Callable(br)
658+func processPoolINTERNAL (bW,ct) = {
659+ let bX = bu(br)
660+ if ((bX == bX))
665661 then {
666662 let cu = {
667- let cv = al(this, l)
663+ let cv = an(this, p)
668664 if (ct)
669665 then cv
670666 else (cv - 1)
671667 }
672668 let ck = if ((cu >= 0))
673669 then true
674- else ab("processPoolINTERNAL: invalid target epoch")
670+ else ad("processPoolINTERNAL: invalid target epoch")
675671 if ((ck == ck))
676672 then {
677- let G = an(bU)
678- let cw = G
679- let I = cw._1
680- let J = cw._2
681- let by = addressFromStringValue(aj(this, s))
682- let aL = aB(I, J)
673+ let K = ap(bW)
674+ let cw = K
675+ let M = cw._1
676+ let N = cw._2
677+ let bA = addressFromStringValue(al(this, w))
678+ let aN = aD(M, N)
683679 let cx = {
684- let ak = invoke(by, "usersListTraversal", [aL], nil)
685- if ($isInstanceOf(ak, "Boolean"))
686- then ak
687- else throw(($getType(ak) + " couldn't be cast to Boolean"))
680+ let am = invoke(bA, "usersListTraversal", [aN], nil)
681+ if ($isInstanceOf(am, "Boolean"))
682+ then am
683+ else throw(($getType(am) + " couldn't be cast to Boolean"))
688684 }
689685 if ((cx == cx))
690686 then if (cx)
691687 then $Tuple2(nil, true)
692688 else {
693- let cy = addressFromStringValue(valueOrErrorMessage(getString(ap, t), "invalid assets store contract"))
694- let bL = valueOrElse(getInteger(this, W(cu)), 0)
695- let cn = valueOrElse(getInteger(this, Q(G, cu)), 0)
696- let cz = if ((bL == 0))
689+ let cy = addressFromStringValue(valueOrErrorMessage(getString(ar, x), "invalid assets store contract"))
690+ let bN = valueOrElse(getInteger(this, Y(cu)), 0)
691+ let cn = valueOrElse(getInteger(this, S(K, cu)), 0)
692+ let cz = if ((bN == 0))
697693 then 0
698- else fraction(cn, b, bL)
699- let cc = invoke(ap, "modifyWeight", [aL, cz], nil)
700- if ((cc == cc))
701- then $Tuple2([IntegerEntry(U(G, cu), cz)], false)
694+ else fraction(cn, b, bN)
695+ let cd = invoke(ar, "modifyWeight", [aN, cz], nil)
696+ if ((cd == cd))
697+ then $Tuple2([IntegerEntry(W(K, cu), cz)], false)
702698 else throw("Strict value is not equal to itself.")
703699 }
704700 else throw("Strict value is not equal to itself.")
710706
711707
712708
713-@Callable(bp)
709+@Callable(br)
714710 func finalizeHelper () = {
715- let ct = valueOrElse(getBoolean(A), false)
716- let k = valueOrElse(getInteger(this, l), 0)
717- let cA = (k - 1)
718- let bF = al(this, D(k))
719- let bz = al(this, h)
720- let bG = (bF + bz)
721- let bH = getInteger(this, u)
722- if (if (if ((height >= bG))
723- then (bH == unit)
711+ let ct = valueOrElse(getBoolean(E), false)
712+ let o = valueOrElse(getInteger(this, p), 0)
713+ let cA = (o - 1)
714+ let bH = an(this, H(o))
715+ let bB = an(this, l)
716+ let bI = (bH + bB)
717+ let bJ = getInteger(this, y)
718+ if (if (if ((height >= bI))
719+ then (bJ == unit)
724720 else false)
725721 then !(ct)
726722 else false)
727723 then {
728- let cB = (k + 1)
729- let cC = getInteger(this, i)
724+ let cB = (o + 1)
725+ let cC = getInteger(this, m)
730726 let cD = {
731- let ag = cC
732- if ($isInstanceOf(ag, "Int"))
727+ let ai = cC
728+ if ($isInstanceOf(ai, "Int"))
733729 then {
734- let bS = ag
735-[IntegerEntry(h, bS), DeleteEntry(i)]
730+ let bU = ai
731+[IntegerEntry(l, bU), DeleteEntry(m)]
736732 }
737- else if ($isInstanceOf(ag, "Unit"))
733+ else if ($isInstanceOf(ai, "Unit"))
738734 then nil
739735 else throw("Match error")
740736 }
741- $Tuple2(([IntegerEntry(D(cB), height), IntegerEntry(x, height), IntegerEntry(l, cB), IntegerEntry(u, d), IntegerEntry(j(k), bz)] ++ cD), true)
737+ $Tuple2(([IntegerEntry(H(cB), height), IntegerEntry(B, height), IntegerEntry(p, cB), IntegerEntry(y, d), IntegerEntry(n(o), bB)] ++ cD), true)
742738 }
743739 else if (if (ct)
744- then (bH == unit)
740+ then (bJ == unit)
745741 else false)
746- then $Tuple2([IntegerEntry(u, f)], true)
747- else if ((bH == unit))
742+ then $Tuple2([IntegerEntry(y, f)], true)
743+ else if ((bJ == unit))
748744 then $Tuple2(nil, false)
749- else if ((bH == d))
745+ else if ((bJ == d))
750746 then {
751- let cE = getString(v)
752- let ag = cE
753- if ($isInstanceOf(ag, "Unit"))
747+ let cE = getString(z)
748+ let ai = cE
749+ if ($isInstanceOf(ai, "Unit"))
754750 then {
755- let cF = getString(aT(aQ))
751+ let cF = getString(aV(aS))
756752 if ($isInstanceOf(cF, "Unit"))
757- then $Tuple2([IntegerEntry(u, e), DeleteEntry(v)], true)
753+ then $Tuple2([IntegerEntry(y, e), DeleteEntry(z)], true)
758754 else if ($isInstanceOf(cF, "String"))
759755 then {
760756 let cG = cF
761- $Tuple2([StringEntry(v, cG)], true)
757+ $Tuple2([StringEntry(z, cG)], true)
762758 }
763759 else throw("Match error")
764760 }
765- else if ($isInstanceOf(ag, "String"))
761+ else if ($isInstanceOf(ai, "String"))
766762 then {
767- let bU = ag
768- let cH = getString(aZ(aQ, bU))
763+ let bW = ai
764+ let cH = getString(bb(aS, bW))
769765 if ((cH == cH))
770766 then {
771- let cx = invoke(this, "processPoolBalanceINTERNAL", [bU], nil)
767+ let cx = invoke(this, "processPoolBalanceINTERNAL", [bW], nil)
772768 if ((cx == cx))
773769 then {
774770 let cF = cH
775771 if ($isInstanceOf(cF, "Unit"))
776- then $Tuple2([IntegerEntry(u, e), DeleteEntry(v)], true)
772+ then $Tuple2([IntegerEntry(y, e), DeleteEntry(z)], true)
777773 else if ($isInstanceOf(cF, "String"))
778774 then {
779775 let cG = cF
780- $Tuple2([StringEntry(v, cG)], true)
776+ $Tuple2([StringEntry(z, cG)], true)
781777 }
782778 else throw("Match error")
783779 }
787783 }
788784 else throw("Match error")
789785 }
790- else if ((bH == e))
786+ else if ((bJ == e))
791787 then {
792- let cE = getString(v)
793- let cI = getString(w)
794- let ag = cE
795- if ($isInstanceOf(ag, "Unit"))
788+ let cE = getString(z)
789+ let cI = getString(A)
790+ let ai = cE
791+ if ($isInstanceOf(ai, "Unit"))
796792 then {
797- let cF = getString(aT(aQ))
793+ let cF = getString(aV(aS))
798794 if ($isInstanceOf(cF, "Unit"))
799- then $Tuple2([IntegerEntry(u, f), DeleteEntry(v), DeleteEntry(w)], true)
795+ then $Tuple2([IntegerEntry(y, f), DeleteEntry(z), DeleteEntry(A)], true)
800796 else if ($isInstanceOf(cF, "String"))
801797 then {
802798 let cJ = cF
803- $Tuple2([StringEntry(v, cJ)], true)
799+ $Tuple2([StringEntry(z, cJ)], true)
804800 }
805801 else throw("Match error")
806802 }
807- else if ($isInstanceOf(ag, "String"))
803+ else if ($isInstanceOf(ai, "String"))
808804 then {
809- let bU = ag
810- let G = an(bU)
805+ let bW = ai
806+ let K = ap(bW)
811807 let cK = {
812808 let cF = cI
813809 if ($isInstanceOf(cF, "Unit"))
814- then getString(aT(aR(G)))
810+ then getString(aV(aT(K)))
815811 else if ($isInstanceOf(cF, "String"))
816812 then {
817813 let cL = cF
818- let cM = getString(aZ(aR(G), cL))
814+ let cM = getString(bb(aT(K), cL))
819815 if ((cM == cM))
820816 then {
821- let cN = invoke(this, "processVoteINTERNAL", [bU, cL], nil)
817+ let cN = invoke(this, "processVoteINTERNAL", [bW, cL], nil)
822818 if ((cN == cN))
823819 then cM
824820 else throw("Strict value is not equal to itself.")
830826 let cF = cK
831827 if ($isInstanceOf(cF, "Unit"))
832828 then {
833- let cH = getString(aZ(aQ, bU))
829+ let cH = getString(bb(aS, bW))
834830 let cO = cH
835831 if ($isInstanceOf(cO, "Unit"))
836- then $Tuple2([IntegerEntry(u, f), DeleteEntry(v), DeleteEntry(w)], true)
832+ then $Tuple2([IntegerEntry(y, f), DeleteEntry(z), DeleteEntry(A)], true)
837833 else if ($isInstanceOf(cO, "String"))
838834 then {
839- let bl = cO
840- $Tuple2([StringEntry(v, bl), DeleteEntry(w)], true)
835+ let bn = cO
836+ $Tuple2([StringEntry(z, bn), DeleteEntry(A)], true)
841837 }
842838 else throw("Match error")
843839 }
844840 else if ($isInstanceOf(cF, "String"))
845841 then {
846842 let cP = cF
847- $Tuple2([StringEntry(w, cP)], true)
843+ $Tuple2([StringEntry(A, cP)], true)
848844 }
849845 else throw("Match error")
850846 }
851847 else throw("Match error")
852848 }
853- else if ((bH == f))
849+ else if ((bJ == f))
854850 then {
855- let cE = getString(v)
856- let ag = cE
857- if ($isInstanceOf(ag, "Unit"))
851+ let cE = getString(z)
852+ let ai = cE
853+ if ($isInstanceOf(ai, "Unit"))
858854 then {
859- let cF = getString(aT(aQ))
855+ let cF = getString(aV(aS))
860856 if ($isInstanceOf(cF, "Unit"))
861857 then {
862- let ca = if (ct)
863- then [DeleteEntry(u), DeleteEntry(A)]
864- else [DeleteEntry(u), BooleanEntry(E(cA), true), IntegerEntry(y, k), IntegerEntry(z, bF)]
865- let cQ = aO()
858+ let cb = if (ct)
859+ then [DeleteEntry(y), DeleteEntry(E)]
860+ else [DeleteEntry(y), BooleanEntry(I(cA), true), IntegerEntry(C, o), IntegerEntry(D, bH)]
861+ let cQ = aQ()
866862 if ((cQ == cQ))
867- then $Tuple2(ca, true)
863+ then $Tuple2(cb, true)
868864 else throw("Strict value is not equal to itself.")
869865 }
870866 else if ($isInstanceOf(cF, "String"))
871867 then {
872868 let cG = cF
873- $Tuple2([StringEntry(v, cG)], true)
869+ $Tuple2([StringEntry(z, cG)], true)
874870 }
875871 else throw("Match error")
876872 }
877- else if ($isInstanceOf(ag, "String"))
873+ else if ($isInstanceOf(ai, "String"))
878874 then {
879- let bU = ag
880- let cH = getString(aZ(aQ, bU))
875+ let bW = ai
876+ let cH = getString(bb(aS, bW))
881877 if ((cH == cH))
882878 then {
883879 let cx = {
884- let ak = invoke(this, "processPoolINTERNAL", [bU, ct], nil)
885- if ($isInstanceOf(ak, "Boolean"))
886- then ak
887- else throw(($getType(ak) + " couldn't be cast to Boolean"))
880+ let am = invoke(this, "processPoolINTERNAL", [bW, ct], nil)
881+ if ($isInstanceOf(am, "Boolean"))
882+ then am
883+ else throw(($getType(am) + " couldn't be cast to Boolean"))
888884 }
889885 if ((cx == cx))
890886 then if (cx)
893889 let cF = cH
894890 if ($isInstanceOf(cF, "Unit"))
895891 then {
896- let ca = if (ct)
897- then [DeleteEntry(u), DeleteEntry(A), DeleteEntry(v)]
898- else [DeleteEntry(u), BooleanEntry(E(cA), true), IntegerEntry(y, k), IntegerEntry(z, bF), DeleteEntry(v)]
899- let cQ = aO()
892+ let cb = if (ct)
893+ then [DeleteEntry(y), DeleteEntry(E), DeleteEntry(z)]
894+ else [DeleteEntry(y), BooleanEntry(I(cA), true), IntegerEntry(C, o), IntegerEntry(D, bH), DeleteEntry(z)]
895+ let cQ = aQ()
900896 if ((cQ == cQ))
901- then $Tuple2(ca, true)
897+ then $Tuple2(cb, true)
902898 else throw("Strict value is not equal to itself.")
903899 }
904900 else if ($isInstanceOf(cF, "String"))
905901 then {
906902 let cG = cF
907- $Tuple2([StringEntry(v, cG)], true)
903+ $Tuple2([StringEntry(z, cG)], true)
908904 }
909905 else throw("Match error")
910906 }
914910 }
915911 else throw("Match error")
916912 }
917- else ab("finalization is broken")
913+ else ad("finalization is broken")
918914 }
919915
920916
921917
922-@Callable(bp)
918+@Callable(br)
923919 func finalizeWrapper (cR) = {
924- let cS = addressFromStringValue(getStringValue(this, p))
920+ let cS = addressFromStringValue(getStringValue(this, t))
925921 let cT = {
926- let ak = invoke(this, "finalizeHelper", nil, nil)
927- if ($isInstanceOf(ak, "Boolean"))
928- then ak
929- else throw(($getType(ak) + " couldn't be cast to Boolean"))
922+ let am = invoke(this, "finalizeHelper", nil, nil)
923+ if ($isInstanceOf(am, "Boolean"))
924+ then am
925+ else throw(($getType(am) + " couldn't be cast to Boolean"))
930926 }
931927 if ((cT == cT))
932928 then if (!(cT))
933929 then if ((cR == 0))
934- then ab("Current voting is not over yet")
930+ then ad("Current voting is not over yet")
935931 else {
936932 let cU = invoke(cS, "finalize", nil, nil)
937933 if ((cU == cU))
939935 else throw("Strict value is not equal to itself.")
940936 }
941937 else {
942- let cV = valueOrElse(getInteger(this, m), c)
938+ let cV = valueOrElse(getInteger(this, q), c)
943939 if ((cV > cR))
944940 then {
945941 let cU = invoke(this, "finalizeWrapper", [(cR + 1)], nil)
954950
955951
956952
957-@Callable(bp)
953+@Callable(br)
958954 func finalize () = {
959955 let cU = invoke(this, "finalizeWrapper", [0], nil)
960956 if ((cU == cU))
964960
965961
966962
967-@Callable(bp)
968-func containsNodeREADONLY (aU,aY) = $Tuple2(nil, ba(aU, aY))
963+@Callable(br)
964+func containsNodeREADONLY (aW,ba) = $Tuple2(nil, bc(aW, ba))
969965
970966
971967
972-@Callable(bp)
973-func insertNode (aU,aY) = {
974- let bV = br(bp)
975- if ((bV == bV))
976- then $Tuple2(be(aU, aY), unit)
968+@Callable(br)
969+func insertNode (aW,ba) = {
970+ let bX = bt(br)
971+ if ((bX == bX))
972+ then $Tuple2(bg(aW, ba), unit)
977973 else throw("Strict value is not equal to itself.")
978974 }
979975
980976
981977
982-@Callable(bp)
983-func deleteNode (aU,aY) = {
984- let bV = br(bp)
985- if ((bV == bV))
986- then $Tuple2(bh(aU, aY), unit)
978+@Callable(br)
979+func deleteNode (aW,ba) = {
980+ let bX = bt(br)
981+ if ((bX == bX))
982+ then $Tuple2(bj(aW, ba), unit)
987983 else throw("Strict value is not equal to itself.")
988984 }
989985
990986
991987
992-@Callable(bp)
988+@Callable(br)
993989 func isFinalizationInProgress () = {
994- let bH = getInteger(this, u)
995- let cW = (bH != unit)
990+ let bJ = getInteger(this, y)
991+ let cW = (bJ != unit)
996992 $Tuple2(nil, cW)
997993 }
998994
999995
1000996
1001-@Callable(bp)
1002-func deletePool (I,J) = {
1003- let bV = if (if ((bp.caller == ap))
997+@Callable(br)
998+func deletePool (M,N) = {
999+ let bX = if (if ((br.caller == ar))
10041000 then true
1005- else br(bp))
1001+ else bt(br))
10061002 then true
1007- else ab("Permission denied")
1008- if ((bV == bV))
1003+ else ad("Permission denied")
1004+ if ((bX == bX))
10091005 then {
1010- let aU = "pools"
1011- let G = $Tuple2(I, J)
1012- let aY = makeString([I, J], a)
1013- let ca = if (ba(aU, aY))
1014- then bh(aU, aY)
1006+ let aW = "pools"
1007+ let K = $Tuple2(M, N)
1008+ let ba = makeString([M, N], a)
1009+ let cb = if (bc(aW, ba))
1010+ then bj(aW, ba)
10151011 else nil
1016- ([DeleteEntry(F(G))] ++ ca)
1012+ ([DeleteEntry(J(K))] ++ cb)
10171013 }
10181014 else throw("Strict value is not equal to itself.")
10191015 }
10201016
10211017
10221018
1023-@Callable(bp)
1024-func resume (I,J,cX) = {
1025- let bH = getInteger(this, u)
1026- let cY = valueOrErrorMessage(az(I, J), Z("invalid assets"))
1027- let cd = cY._1
1028- let aL = cY._2
1029- let cZ = bp.payments[0]
1030- let cy = addressFromStringValue(getStringValue(this, t))
1019+@Callable(br)
1020+func resume (M,N,cX) = {
1021+ let bJ = getInteger(this, y)
1022+ let cY = valueOrErrorMessage(aB(M, N), ab("invalid assets"))
1023+ let ce = cY._1
1024+ let aN = cY._2
1025+ let cZ = br.payments[0]
1026+ let cy = addressFromStringValue(getStringValue(this, x))
10311027 let da = "%s__config"
10321028 let db = 1
1033- let bx = addressFromStringValue(aj(this, r))
1034- let dc = fromBase58String(split(getStringValue(bx, da), a)[db])
1029+ let bz = addressFromStringValue(al(this, v))
1030+ let dc = fromBase58String(split(getStringValue(bz, da), a)[db])
10351031 let dd = {
1036- let ak = invoke(cy, "isVerifiedREADONLY", [I], nil)
1037- if ($isInstanceOf(ak, "Boolean"))
1038- then ak
1039- else throw(($getType(ak) + " couldn't be cast to Boolean"))
1032+ let am = invoke(cy, "isVerifiedREADONLY", [M], nil)
1033+ if ($isInstanceOf(am, "Boolean"))
1034+ then am
1035+ else throw(($getType(am) + " couldn't be cast to Boolean"))
10401036 }
10411037 let de = {
1042- let ak = invoke(cy, "isVerifiedREADONLY", [J], nil)
1043- if ($isInstanceOf(ak, "Boolean"))
1044- then ak
1045- else throw(($getType(ak) + " couldn't be cast to Boolean"))
1038+ let am = invoke(cy, "isVerifiedREADONLY", [N], nil)
1039+ if ($isInstanceOf(am, "Boolean"))
1040+ then am
1041+ else throw(($getType(am) + " couldn't be cast to Boolean"))
10461042 }
1047- let df = valueOrErrorMessage(getInteger(this, n), "invalid resumption fee")
1048- let bA = [if ((bH == unit))
1043+ let df = valueOrErrorMessage(getInteger(this, r), "invalid resumption fee")
1044+ let bC = [if ((bJ == unit))
10491045 then true
1050- else ab("finalization is in progress"), if ((cZ.assetId == dc))
1046+ else ad("finalization is in progress"), if ((cZ.assetId == dc))
10511047 then true
1052- else ab("invalid fee payment asset id"), if ((cZ.amount == df))
1048+ else ad("invalid fee payment asset id"), if ((cZ.amount == df))
10531049 then true
1054- else ab("invalid fee payment amount"), if (if (dd)
1050+ else ad("invalid fee payment amount"), if (if (dd)
10551051 then de
10561052 else false)
10571053 then true
1058- else ab("both assets should be verified")]
1059- if ((bA == bA))
1054+ else ad("both assets should be verified")]
1055+ if ((bC == bC))
10601056 then {
1061- let dg = assetBalance(this, aL)
1057+ let dg = assetBalance(this, aN)
10621058 if ((dg == dg))
10631059 then {
10641060 let dh = false
1065- let di = if ((size(bp.payments) == 1))
1061+ let di = if ((size(br.payments) == 1))
10661062 then {
1067- let dj = {
1068- let ak = invoke(ap, "checkBalance", [ay(aL)], nil)
1069- if ($isInstanceOf(ak, "Boolean"))
1070- then ak
1071- else throw(($getType(ak) + " couldn't be cast to Boolean"))
1063+ let ca = {
1064+ let am = invoke(ar, "checkBalance", [aA(aN)], nil)
1065+ if ($isInstanceOf(am, "Boolean"))
1066+ then am
1067+ else throw(($getType(am) + " couldn't be cast to Boolean"))
10721068 }
1073- if (dj)
1069+ if (ca)
10741070 then true
1075- else ab("assets should be attached")
1071+ else ad("assets should be attached")
10761072 }
1077- else if ((size(bp.payments) == 2))
1073+ else if ((size(br.payments) == 2))
10781074 then {
1079- let dk = valueOrErrorMessage(scriptHash(cd), Z("pool address is not scripted"))
1080- let dl = fromBase64String(valueOrErrorMessage(getString(ap, C()), Z("allowed lp stable script hash is not set")))
1081- let dm = (dk == dl)
1082- let dn = if (dm)
1075+ let dj = valueOrErrorMessage(scriptHash(ce), ab("pool address is not scripted"))
1076+ let dk = fromBase64String(valueOrErrorMessage(getString(ar, G()), ab("allowed lp stable script hash is not set")))
1077+ let dl = (dj == dk)
1078+ let dm = if (dl)
10831079 then "putOneTknV2"
10841080 else "putOneTkn"
1085- invoke(cd, dn, [cX, dh], [bp.payments[1]])
1081+ invoke(ce, dm, [cX, dh], [br.payments[1]])
10861082 }
1087- else if ((size(bp.payments) == 3))
1088- then invoke(cd, "put", [cX, dh], [bp.payments[1], bp.payments[2]])
1089- else ab("invalid payments size")
1083+ else if ((size(br.payments) == 3))
1084+ then invoke(ce, "put", [cX, dh], [br.payments[1], br.payments[2]])
1085+ else ad("invalid payments size")
10901086 if ((di == di))
10911087 then {
1092- let do = assetBalance(this, aL)
1093- if ((do == do))
1088+ let dn = assetBalance(this, aN)
1089+ if ((dn == dn))
10941090 then {
1095- let dp = (do - dg)
1096- let dq = if ((dp > 0))
1097- then [ScriptTransfer(bp.caller, dp, aL)]
1091+ let do = (dn - dg)
1092+ let dp = if ((do > 0))
1093+ then [ScriptTransfer(br.caller, do, aN)]
10981094 else nil
1099- let dr = invoke(ap, "setWxEmissionPoolLabel", [I, J], nil)
1100- if ((dr == dr))
1095+ let dq = invoke(ar, "setWxEmissionPoolLabel", [M, N], nil)
1096+ if ((dq == dq))
11011097 then {
1102- let G = $Tuple2(I, J)
1103- let bB = ([BooleanEntry(F(G), true)] ++ be(aQ, am(G)))
1104- $Tuple2((bB ++ dq), unit)
1098+ let dr = {
1099+ let am = invoke(ar, "getPoolStatusREADONLY", [toString(ce)], nil)
1100+ if ($isInstanceOf(am, "Int"))
1101+ then am
1102+ else throw(($getType(am) + " couldn't be cast to Int"))
1103+ }
1104+ let cf = if ((dr == j))
1105+ then invoke(ar, "managePool", [toString(ce), h], nil)
1106+ else unit
1107+ if ((cf == cf))
1108+ then {
1109+ let K = $Tuple2(M, N)
1110+ let bD = ([BooleanEntry(J(K), true)] ++ bg(aS, ao(K)))
1111+ $Tuple2((bD ++ dp), unit)
1112+ }
1113+ else throw("Strict value is not equal to itself.")
11051114 }
11061115 else throw("Strict value is not equal to itself.")
11071116 }
11181127 @Verifier(ds)
11191128 func dt () = {
11201129 let du = {
1121- let ag = bm()
1122- if ($isInstanceOf(ag, "ByteVector"))
1130+ let ai = bo()
1131+ if ($isInstanceOf(ai, "ByteVector"))
11231132 then {
1124- let bq = ag
1125- bq
1133+ let bs = ai
1134+ bs
11261135 }
1127- else if ($isInstanceOf(ag, "Unit"))
1136+ else if ($isInstanceOf(ai, "Unit"))
11281137 then ds.senderPublicKey
11291138 else throw("Match error")
11301139 }
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
1616 let g = "WAVES"
1717
18-let h = makeString(["%s", "epochLength"], a)
18+let h = 1
1919
20-let i = makeString(["%s%s", "epochLength__new"], a)
20+let i = 2
2121
22-func j (k) = makeString(["%s%d", "epochLength", toString(k)], a)
22+let j = 3
23+
24+let k = 4
25+
26+let l = makeString(["%s", "epochLength"], a)
27+
28+let m = makeString(["%s%s", "epochLength__new"], a)
29+
30+func n (o) = makeString(["%s%d", "epochLength", toString(o)], a)
2331
2432
25-let l = makeString(["%s", "currentEpoch"], a)
33+let p = makeString(["%s", "currentEpoch"], a)
2634
27-let m = makeString(["%s", "maxDepth"], a)
35+let q = makeString(["%s", "maxDepth"], a)
2836
29-let n = makeString(["%s", "resumptionFee"], a)
37+let r = makeString(["%s", "resumptionFee"], a)
3038
31-let o = makeString(["%s", "votingEmissionCandidateContract"], a)
39+let s = makeString(["%s", "votingEmissionCandidateContract"], a)
3240
33-let p = makeString(["%s", "votingEmissionRateContract"], a)
41+let t = makeString(["%s", "votingEmissionRateContract"], a)
3442
35-let q = makeString(["%s", "factoryContract"], a)
43+let u = makeString(["%s", "factoryContract"], a)
3644
37-let r = makeString(["%s", "boostingContract"], a)
45+let v = makeString(["%s", "boostingContract"], a)
3846
39-let s = makeString(["%s", "stakingContract"], a)
47+let w = makeString(["%s", "stakingContract"], a)
4048
41-let t = makeString(["%s", "assetsStoreContract"], a)
49+let x = makeString(["%s", "assetsStoreContract"], a)
4250
43-let u = makeString(["%s", "finalizationStage"], a)
51+let y = makeString(["%s", "finalizationStage"], a)
4452
45-let v = makeString(["%s", "nextPool"], a)
53+let z = makeString(["%s", "nextPool"], a)
4654
47-let w = makeString(["%s", "nextUser"], a)
55+let A = makeString(["%s", "nextUser"], a)
4856
49-let x = makeString(["%s", "startHeight"], a)
57+let B = makeString(["%s", "startHeight"], a)
5058
51-let y = makeString(["%s", "currentEpochUi"], a)
59+let C = makeString(["%s", "currentEpochUi"], a)
5260
53-let z = makeString(["%s", "startHeightUi"], a)
61+let D = makeString(["%s", "startHeightUi"], a)
5462
55-let A = makeString(["%s", "force"], a)
63+let E = makeString(["%s", "force"], a)
5664
57-func B () = "%s__allowedLpScriptHash"
65+func F () = "%s__allowedLpScriptHash"
5866
5967
60-func C () = "%s__allowedLpStableScriptHash"
68+func G () = "%s__allowedLpStableScriptHash"
6169
6270
63-func D (k) = makeString(["%s%d", "startHeight", toString(k)], a)
71+func H (o) = makeString(["%s%d", "startHeight", toString(o)], a)
6472
6573
66-func E (k) = makeString(["%s%d", "finalized", toString(k)], a)
74+func I (o) = makeString(["%s%d", "finalized", toString(o)], a)
6775
6876
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)
77+func J (K) = {
78+ let L = K
79+ let M = L._1
80+ let N = L._2
81+ makeString(["%s%s%s", "inList", M, N], a)
7482 }
7583
7684
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)
85+func O (P,o) = makeString(["%s%s%d", "used", toString(P), toString(o)], a)
86+
87+
88+func Q (K,P,o) = {
89+ let R = K
90+ let M = R._1
91+ let N = R._2
92+ makeString(["%s%s%s%s%d", "vote", M, N, toString(P), toString(o)], a)
8293 }
8394
8495
85-func M (N,k) = makeString(["%s%s%d", "used", toString(N), toString(k)], a)
86-
87-
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)
96+func S (K,o) = {
97+ let T = K
98+ let M = T._1
99+ let N = T._2
100+ makeString(["%s%s%s%d", "votingResult", M, N, toString(o)], a)
93101 }
94102
95103
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)
104+func U (V,o) = makeString(["%s%s%d", "votingResultStaked", V, toString(o)], a)
105+
106+
107+func W (K,o) = {
108+ let X = K
109+ let M = X._1
110+ let N = X._2
111+ makeString(["%s%s%s%d", "poolShare", M, N, toString(o)], a)
101112 }
102113
103114
104-func S (T,k) = makeString(["%s%s%d", "votingResultStaked", T, toString(k)], a)
115+func Y (o) = makeString(["%s%d", "totalVotes", toString(o)], a)
105116
106117
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)
118+func Z (V,aa) = makeString(["%s%s%s", "staked", aa, V], a)
119+
120+
121+func ab (ac) = makeString(["voting_emission.ride:", ac], " ")
122+
123+
124+func ad (ac) = throw(ab(ac))
125+
126+
127+func ae (P,af,ag) = {
128+ let ah = ab(makeString(["mandatory ", toString(P), ".", af, " is not defined"], ""))
129+ valueOrErrorMessage({
130+ let ai = ag
131+ if ($isInstanceOf(ai, "String"))
132+ then {
133+ let aj = ai
134+ getString(P, af)
135+ }
136+ else if ($isInstanceOf(ai, "Int"))
137+ then {
138+ let ak = ai
139+ getInteger(P, af)
140+ }
141+ else ad("invalid entry type")
142+ }, ah)
112143 }
113144
114145
115-func W (k) = makeString(["%s%d", "totalVotes", toString(k)], a)
116-
117-
118-func X (T,Y) = makeString(["%s%s%s", "staked", Y, T], a)
119-
120-
121-func Z (aa) = makeString(["voting_emission.ride:", aa], " ")
122-
123-
124-func ab (aa) = throw(Z(aa))
125-
126-
127-func ac (N,ad,ae) = {
128- let af = Z(makeString(["mandatory ", toString(N), ".", ad, " is not defined"], ""))
129- valueOrErrorMessage({
130- let ag = ae
131- if ($isInstanceOf(ag, "String"))
132- then {
133- let ah = ag
134- getString(N, ad)
135- }
136- else if ($isInstanceOf(ag, "Int"))
137- then {
138- let ai = ag
139- getInteger(N, ad)
140- }
141- else ab("invalid entry type")
142- }, af)
146+func al (P,af) = {
147+ let am = ae(P, af, "")
148+ if ($isInstanceOf(am, "String"))
149+ then am
150+ else throw(($getType(am) + " couldn't be cast to String"))
143151 }
144152
145153
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"))
154+func an (P,af) = {
155+ let am = ae(P, af, 0)
156+ if ($isInstanceOf(am, "Int"))
157+ then am
158+ else throw(($getType(am) + " couldn't be cast to Int"))
151159 }
152160
153161
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"))
162+func ao (K) = ((K._1 + a) + K._2)
163+
164+
165+func ap (aj) = {
166+ let aq = split(aj, a)
167+ if ((size(aq) == 2))
168+ then $Tuple2(aq[0], aq[1])
169+ else ad("invalid pool string")
159170 }
160171
161172
162-func am (G) = ((G._1 + a) + G._2)
173+let ar = addressFromStringValue(al(this, u))
174+
175+let as = 10
176+
177+func at () = "%s__factoryConfig"
163178
164179
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")
180+func au (av) = split(al(av, at()), a)
181+
182+
183+func aw (ax) = addressFromStringValue(ax[as])
184+
185+
186+func ay (az) = if ((az == g))
187+ then unit
188+ else fromBase58String(az)
189+
190+
191+func aA (az) = if ((az == unit))
192+ then g
193+ else toBase58String(value(az))
194+
195+
196+func aB (M,N) = {
197+ let aC = {
198+ let am = invoke(ar, "poolInfoREADONLY", [M, N], nil)
199+ if ($isInstanceOf(am, "(Address, ByteVector)"))
200+ then am
201+ else unit
202+ }
203+ aC
170204 }
171205
172206
173-let ap = addressFromStringValue(aj(this, q))
207+func aD (M,N) = {
208+ func aE (aF) = ("%s%s%s__mappings__baseAsset2internalId__" + aF)
174209
175-let aq = 10
210+ func aG (aH,aI) = (((("%d%d%s%s__" + toString(aH)) + "__") + toString(aI)) + "__mappings__poolAssets2PoolContract")
176211
177-func ar () = "%s__factoryConfig"
212+ func aJ (aK) = (("%s%s%s__" + aK) + "__mappings__poolContract2LpAsset")
178213
179-
180-func as (at) = split(aj(at, ar()), a)
181-
182-
183-func au (av) = addressFromStringValue(av[aq])
184-
185-
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
201- else unit
202- }
203- aA
214+ let aL = an(ar, aE(M))
215+ let aM = an(ar, aE(N))
216+ let aK = al(ar, aG(aL, aM))
217+ let aN = al(ar, aJ(aK))
218+ aN
204219 }
205220
206221
207-func aB (I,J) = {
208- func aC (aD) = ("%s%s%s__mappings__baseAsset2internalId__" + aD)
209-
210- func aE (aF,aG) = (((("%d%d%s%s__" + toString(aF)) + "__") + toString(aG)) + "__mappings__poolAssets2PoolContract")
211-
212- func aH (aI) = (("%s%s%s__" + aI) + "__mappings__poolContract2LpAsset")
213-
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
222+func aO (K) = {
223+ let aP = K
224+ let M = aP._1
225+ let N = aP._2
226+ let am = invoke(ar, "checkWxEmissionPoolLabel", [M, N], nil)
227+ if ($isInstanceOf(am, "Boolean"))
228+ then am
229+ else throw(($getType(am) + " couldn't be cast to Boolean"))
219230 }
220231
221232
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"))
233+func aQ () = {
234+ let ax = au(ar)
235+ let aR = aw(ax)
236+ invoke(aR, "deposit", nil, nil)
230237 }
231238
232239
233-func aO () = {
234- let av = as(ap)
235- let aP = au(av)
236- invoke(aP, "deposit", nil, nil)
240+let aS = "pools"
241+
242+func aT (K) = {
243+ let aU = K
244+ let M = aU._1
245+ let N = aU._2
246+ makeString(["votes", M, N], a)
237247 }
238248
239249
240-let aQ = "pools"
241-
242-func aR (G) = {
243- let aS = G
244- let I = aS._1
245- let J = aS._2
246- makeString(["votes", I, J], a)
250+func aV (aW) = {
251+ let aX = if ((aW == aS))
252+ then "%s%s"
253+ else "%s%s%s%s"
254+ makeString([aX, aW, "head"], a)
247255 }
248256
249257
250-func aT (aU) = {
251- let aV = if ((aU == aQ))
258+func aY (aW) = {
259+ let aX = if ((aW == aS))
252260 then "%s%s"
253261 else "%s%s%s%s"
254- makeString([aV, aU, "head"], a)
262+ makeString([aX, aW, "size"], a)
255263 }
256264
257265
258-func aW (aU) = {
259- let aV = if ((aU == aQ))
260- then "%s%s"
261- else "%s%s%s%s"
262- makeString([aV, aU, "size"], a)
266+func aZ (aW,ba) = {
267+ let aX = if ((aW == aS))
268+ then "%s%s%s%s"
269+ else "%s%s%s%s%s"
270+ makeString([aX, aW, ba, "prev"], a)
263271 }
264272
265273
266-func aX (aU,aY) = {
267- let aV = if ((aU == aQ))
274+func bb (aW,ba) = {
275+ let aX = if ((aW == aS))
268276 then "%s%s%s%s"
269277 else "%s%s%s%s%s"
270- makeString([aV, aU, aY, "prev"], a)
278+ makeString([aX, aW, ba, "next"], a)
271279 }
272280
273281
274-func aZ (aU,aY) = {
275- let aV = if ((aU == aQ))
276- then "%s%s%s%s"
277- else "%s%s%s%s%s"
278- makeString([aV, aU, aY, "next"], a)
282+func bc (aW,ba) = {
283+ let bd = getString(this, aV(aW))
284+ let be = getString(this, aZ(aW, ba))
285+ let bf = getString(this, bb(aW, ba))
286+ if (if ((ba == valueOrElse(bd, "")))
287+ then true
288+ else (be != unit))
289+ then true
290+ else (bf != unit)
279291 }
280292
281293
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, "")))
294+func bg (aW,ba) = {
295+ let bd = getString(this, aV(aW))
296+ let bh = valueOrElse(getInteger(this, aY(aW)), 0)
297+ let bi = if (!(bc(aW, ba)))
287298 then true
288- else (bc != unit))
289- then true
290- else (bd != unit)
291- }
292-
293-
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)))
298- then true
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)])
299+ else ad("Node exists")
300+ if ((bi == bi))
301+ then (([IntegerEntry(aY(aW), (bh + 1))] ++ (if ((bd != unit))
302+ then [StringEntry(bb(aW, ba), value(bd)), StringEntry(aZ(aW, value(bd)), ba)]
303+ else nil)) ++ [StringEntry(aV(aW), ba)])
304304 else throw("Strict value is not equal to itself.")
305305 }
306306
307307
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)
308+func bj (aW,ba) = {
309+ let bd = getString(this, aV(aW))
310+ let bh = valueOrElse(getInteger(this, aY(aW)), 0)
311+ let be = getString(this, aZ(aW, ba))
312+ let bf = getString(this, bb(aW, ba))
313+ ([IntegerEntry(aY(aW), (bh - 1))] ++ (if (if ((be != unit))
314+ then (bf != unit)
315315 else false)
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))))
316+ then [StringEntry(bb(aW, value(be)), value(bf)), StringEntry(aZ(aW, value(bf)), value(be)), DeleteEntry(aZ(aW, ba)), DeleteEntry(bb(aW, ba))]
317+ else if ((bf != unit))
318+ then [StringEntry(aV(aW), value(bf)), DeleteEntry(bb(aW, ba)), DeleteEntry(aZ(aW, value(bf)))]
319+ else if ((be != unit))
320+ then [DeleteEntry(aZ(aW, ba)), DeleteEntry(bb(aW, value(be)))]
321+ else if ((ba == valueOrElse(bd, "")))
322+ then [DeleteEntry(aV(aW))]
323+ else ad(((("invalid node: " + aW) + ".") + ba))))
324324 }
325325
326326
327-func bi () = "%s__managerVaultAddress"
327+func bk () = "%s__managerVaultAddress"
328328
329329
330-func bj () = "%s__managerPublicKey"
330+func bl () = "%s__managerPublicKey"
331331
332332
333-func bk () = {
334- let ag = getString(bi())
335- if ($isInstanceOf(ag, "String"))
333+func bm () = {
334+ let ai = getString(bk())
335+ if ($isInstanceOf(ai, "String"))
336336 then {
337- let bl = ag
338- addressFromStringValue(bl)
337+ let bn = ai
338+ addressFromStringValue(bn)
339339 }
340340 else this
341341 }
342342
343343
344-func bm () = {
345- let bn = bk()
346- let ag = getString(bn, bj())
347- if ($isInstanceOf(ag, "String"))
344+func bo () = {
345+ let bp = bm()
346+ let ai = getString(bp, bl())
347+ if ($isInstanceOf(ai, "String"))
348348 then {
349- let bl = ag
350- fromBase58String(bl)
349+ let bn = ai
350+ fromBase58String(bn)
351351 }
352- else if ($isInstanceOf(ag, "Unit"))
352+ else if ($isInstanceOf(ai, "Unit"))
353353 then unit
354354 else throw("Match error")
355355 }
356356
357357
358-func bo (bp) = {
359- let ag = bm()
360- if ($isInstanceOf(ag, "ByteVector"))
358+func bq (br) = {
359+ let ai = bo()
360+ if ($isInstanceOf(ai, "ByteVector"))
361361 then {
362- let bq = ag
363- (bp.callerPublicKey == bq)
362+ let bs = ai
363+ (br.callerPublicKey == bs)
364364 }
365- else if ($isInstanceOf(ag, "Unit"))
366- then (bp.caller == this)
365+ else if ($isInstanceOf(ai, "Unit"))
366+ then (br.caller == this)
367367 else throw("Match error")
368368 }
369369
370370
371-func br (bp) = if (bo(bp))
371+func bt (br) = if (bq(br))
372372 then true
373373 else throw("permission denied")
374374
375375
376-func bs (bp) = if ((bp.caller == this))
376+func bu (br) = if ((br.caller == this))
377377 then true
378378 else throw("permission denied")
379379
380380
381-@Callable(bp)
382-func getUserGwxAmountAtHeight (bt,bu) = {
383- let bv = valueOrErrorMessage(addressFromString(aj(this, r)), Z("invalid boosting contract address"))
381+@Callable(br)
382+func getUserGwxAmountAtHeight (bv,bw) = {
383+ let bx = valueOrErrorMessage(addressFromString(al(this, v)), ab("invalid boosting contract address"))
384384 $Tuple2(nil, {
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"))
385+ let am = invoke(bx, "getUserGwxAmountAtHeightREADONLY", [bv, bw], nil)
386+ if ($isInstanceOf(am, "Int"))
387+ then am
388+ else throw(($getType(am) + " couldn't be cast to Int"))
389389 })
390390 }
391391
392392
393393
394-@Callable(bp)
395-func constructor (ap,bw,bx,by,bz) = {
396- let bA = [br(bp), if ((addressFromString(ap) != unit))
394+@Callable(br)
395+func constructor (ar,by,bz,bA,bB) = {
396+ let bC = [bt(br), if ((addressFromString(ar) != unit))
397397 then true
398- else "invalid factory contract address", if ((addressFromString(bw) != unit))
398+ else "invalid factory contract address", if ((addressFromString(by) != unit))
399399 then true
400- else "invalid voting emission candidate contract address", if ((addressFromString(bx) != unit))
400+ else "invalid voting emission candidate contract address", if ((addressFromString(bz) != unit))
401401 then true
402- else "invalid boosting contract address", if ((addressFromString(by) != unit))
402+ else "invalid boosting contract address", if ((addressFromString(bA) != unit))
403403 then true
404- else "invalid staking contract address", if ((bz > 0))
404+ else "invalid staking contract address", if ((bB > 0))
405405 then true
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)
406+ else ad("invalid epoch length")]
407+ if ((bC == bC))
408+ then $Tuple2([StringEntry(u, ar), StringEntry(s, by), StringEntry(v, bz), StringEntry(w, bA), IntegerEntry(l, bB)], unit)
409409 else throw("Strict value is not equal to itself.")
410410 }
411411
412412
413413
414-@Callable(bp)
415-func create (I,J) = {
416- let bA = [if ((toBase58String(bp.caller.bytes) == valueOrElse(getString(this, o), "")))
414+@Callable(br)
415+func create (M,N) = {
416+ let bC = [if ((toBase58String(br.caller.bytes) == valueOrElse(getString(this, s), "")))
417417 then true
418- else br(bp)]
419- if ((bA == bA))
418+ else bt(br)]
419+ if ((bC == bC))
420420 then {
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)
421+ let K = $Tuple2(M, N)
422+ let bD = ([BooleanEntry(J(K), true)] ++ bg(aS, ao(K)))
423+ let bE = (getInteger(this, p) == unit)
424+ let bF = if (bE)
425425 then {
426- let k = 0
427-[IntegerEntry(l, k), IntegerEntry(D(k), height), IntegerEntry(x, height), IntegerEntry(y, k), IntegerEntry(z, height)]
426+ let o = 0
427+[IntegerEntry(p, o), IntegerEntry(H(o), height), IntegerEntry(B, height), IntegerEntry(C, o), IntegerEntry(D, height)]
428428 }
429429 else nil
430- $Tuple2((bB ++ bD), unit)
430+ $Tuple2((bD ++ bF), unit)
431431 }
432432 else throw("Strict value is not equal to itself.")
433433 }
434434
435435
436436
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"))
437+@Callable(br)
438+func vote (M,N,bG) = {
439+ let K = $Tuple2(M, N)
440+ let o = valueOrElse(getInteger(this, p), 0)
441+ let bH = an(this, H(o))
442+ let bB = an(this, l)
443+ let bI = (bH + bB)
444+ let bJ = getInteger(this, y)
445+ let bK = valueOrElse(getInteger(this, O(br.caller, o)), 0)
446+ let bL = valueOrElse(getInteger(this, Q(K, br.caller, o)), 0)
447+ let bM = valueOrElse(getInteger(this, S(K, o)), 0)
448+ let bN = valueOrElse(getInteger(this, Y(o)), 0)
449+ let bO = {
450+ let am = invoke(this, "getUserGwxAmountAtHeight", [toBase58String(br.caller.bytes), bI], nil)
451+ if ($isInstanceOf(am, "Int"))
452+ then am
453+ else throw(($getType(am) + " couldn't be cast to Int"))
454454 }
455- let bN = (bM - bI)
456- let bO = (bJ + bE)
457- let bP = aM(G)
458- let bA = [if ((getBoolean(F(G)) != unit))
455+ let bP = (bO - bK)
456+ let bQ = (bL + bG)
457+ let bR = aO(K)
458+ let bC = [if ((getBoolean(J(K)) != unit))
459459 then true
460- else ab("invalid assets"), if ((bG > height))
460+ else ad("invalid assets"), if ((bI > height))
461461 then true
462- else ab("invalid height"), if ((bH == unit))
462+ else ad("invalid height"), if ((bJ == unit))
463463 then true
464- else ab("finalization in progress"), if ((bM > 0))
464+ else ad("finalization in progress"), if ((bO > 0))
465465 then true
466- else ab("you do not have gWX"), if (if ((bE > 0))
467- then (bN >= bE)
466+ else ad("you do not have gWX"), if (if ((bG > 0))
467+ then (bP >= bG)
468468 else false)
469469 then true
470- else ab("invalid amount"), if (bP)
470+ else ad("invalid amount"), if (bR)
471471 then true
472- else ab("pool hasn't WX_EMISSION label")]
473- if ((bA == bA))
472+ else ad("pool hasn't WX_EMISSION label")]
473+ if ((bC == bC))
474474 then {
475- let bQ = aR(G)
476- let Y = toString(bp.caller)
477- let bR = if (ba(bQ, Y))
475+ let bS = aT(K)
476+ let aa = toString(br.caller)
477+ let bT = if (bc(bS, aa))
478478 then nil
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)
479+ else bg(bS, aa)
480+ $Tuple2(([IntegerEntry(O(br.caller, o), (bK + bG)), IntegerEntry(Q(K, br.caller, o), bQ), IntegerEntry(S(K, o), (bM + bG)), IntegerEntry(Y(o), (bN + bG))] ++ bT), unit)
481481 }
482482 else throw("Strict value is not equal to itself.")
483483 }
484484
485485
486486
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))
487+@Callable(br)
488+func cancelVote (M,N) = {
489+ let K = $Tuple2(M, N)
490+ let o = valueOrElse(getInteger(this, p), 0)
491+ let bH = an(this, H(o))
492+ let bB = an(this, l)
493+ let bI = (bH + bB)
494+ let bJ = getInteger(this, y)
495+ let bK = valueOrElse(getInteger(this, O(br.caller, o)), 0)
496+ let bL = valueOrElse(getInteger(this, Q(K, br.caller, o)), 0)
497+ let bM = valueOrElse(getInteger(this, S(K, o)), 0)
498+ let bN = valueOrElse(getInteger(this, Y(o)), 0)
499+ let bC = [if ((getBoolean(J(K)) != unit))
500500 then true
501- else ab("invalid assets"), if ((bG > height))
501+ else ad("invalid assets"), if ((bI > height))
502502 then true
503- else ab("invalid height"), if ((bH == unit))
503+ else ad("invalid height"), if ((bJ == unit))
504504 then true
505- else ab("finalization in progress"), if ((bJ > 0))
505+ else ad("finalization in progress"), if ((bL > 0))
506506 then true
507- else ab("no vote")]
508- if ((bA == bA))
507+ else ad("no vote")]
508+ if ((bC == bC))
509509 then {
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)
510+ let bS = aT(K)
511+ let aa = toString(br.caller)
512+ $Tuple2(([IntegerEntry(O(br.caller, o), max([(bK - bL), 0])), DeleteEntry(Q(K, br.caller, o)), IntegerEntry(S(K, o), (bM - bL)), IntegerEntry(Y(o), (bN - bL))] ++ bj(bS, aa)), unit)
513513 }
514514 else throw("Strict value is not equal to itself.")
515515 }
516516
517517
518518
519-@Callable(bp)
520-func setEpochLength (bS) = {
521- let bA = [br(bp), if ((bS > 0))
519+@Callable(br)
520+func setEpochLength (bU) = {
521+ let bC = [bt(br), if ((bU > 0))
522522 then true
523- else ab("invalid epoch length")]
524- if ((bA == bA))
525- then $Tuple2([IntegerEntry(i, bS)], unit)
523+ else ad("invalid epoch length")]
524+ if ((bC == bC))
525+ then $Tuple2([IntegerEntry(m, bU)], unit)
526526 else throw("Strict value is not equal to itself.")
527527 }
528528
529529
530530
531-@Callable(bp)
532-func setMaxDepth (bT) = {
533- let bA = [br(bp), if ((bT > 0))
531+@Callable(br)
532+func setMaxDepth (bV) = {
533+ let bC = [bt(br), if ((bV > 0))
534534 then true
535- else ab("invalid max depth")]
536- if ((bA == bA))
537- then $Tuple2([IntegerEntry(m, bT)], unit)
535+ else ad("invalid max depth")]
536+ if ((bC == bC))
537+ then $Tuple2([IntegerEntry(q, bV)], unit)
538538 else throw("Strict value is not equal to itself.")
539539 }
540540
541541
542542
543-@Callable(bp)
544-func processPoolBalanceINTERNAL (bU) = {
545- let bV = bs(bp)
546- if ((bV == bV))
543+@Callable(br)
544+func processPoolBalanceINTERNAL (bW) = {
545+ let bX = bu(br)
546+ if ((bX == bX))
547547 then {
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"))
548+ let o = an(this, p)
549+ let bY = (o - 1)
550+ let K = ap(bW)
551+ let bZ = K
552+ let M = bZ._1
553+ let N = bZ._2
554+ let aN = aD(M, N)
555+ let ca = {
556+ let am = invoke(ar, "checkBalance", [aN], nil)
557+ if ($isInstanceOf(am, "Boolean"))
558+ then am
559+ else throw(($getType(am) + " couldn't be cast to Boolean"))
560560 }
561- let bZ = !(valueOrElse(getBoolean(this, K(G, (bW - 1))), false))
562- let ca = if (!(bY))
563- then if (!(bZ))
564- then {
565- let cb = invoke(ap, "deleteWxEmissionPoolLabel", [I, J], nil)
566- if ((cb == cb))
567- then {
568- let cc = invoke(ap, "modifyWeight", [aL, 0], nil)
569- if ((cc == cc))
570- then {
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))
575- then {
576- let cg = ([DeleteEntry(F(G))] ++ bh(aQ, am(G)))
577- ([IntegerEntry(U(G, bW), 0)] ++ cg)
578- }
579- else throw("Strict value is not equal to itself.")
580- }
581- else throw("Strict value is not equal to itself.")
582- }
583- else throw("Strict value is not equal to itself.")
584- }
585- else [BooleanEntry(K(G, bW), true)]
561+ let cb = if (!(ca))
562+ then {
563+ let cc = invoke(ar, "deleteWxEmissionPoolLabel", [M, N], nil)
564+ if ((cc == cc))
565+ then {
566+ let cd = invoke(ar, "modifyWeight", [aN, 0], nil)
567+ if ((cd == cd))
568+ then {
569+ let ce = valueOrErrorMessage(aB(M, N), ab("invalid assets"))._1
570+ let cf = invoke(ar, "managePool", [toString(ce), j], nil)
571+ if ((cf == cf))
572+ then {
573+ let cg = ([DeleteEntry(J(K))] ++ bj(aS, ao(K)))
574+ ([IntegerEntry(W(K, bY), 0)] ++ cg)
575+ }
576+ else throw("Strict value is not equal to itself.")
577+ }
578+ else throw("Strict value is not equal to itself.")
579+ }
580+ else throw("Strict value is not equal to itself.")
581+ }
586582 else nil
587- $Tuple2(ca, unit)
583+ $Tuple2(cb, unit)
588584 }
589585 else throw("Strict value is not equal to itself.")
590586 }
591587
592588
593589
594-@Callable(bp)
595-func processVoteINTERNAL (bU,Y) = {
596- let bV = bs(bp)
597- if ((bV == bV))
590+@Callable(br)
591+func processVoteINTERNAL (bW,aa) = {
592+ let bX = bu(br)
593+ if ((bX == bX))
598594 then {
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))
595+ let bv = valueOrErrorMessage(addressFromString(aa), ab(("processVoteINTERNAL: invalid user address " + aa)))
596+ let o = an(this, p)
597+ let bY = (o - 1)
598+ let bB = an(this, l)
599+ let bH = an(this, H(o))
600+ let bI = (bH + bB)
601+ let ch = an(this, H(bY))
602+ let ci = an(this, n(bY))
607603 let cj = (ch + ci)
608- let ck = if ((bW >= 0))
604+ let ck = if ((bY >= 0))
609605 then true
610- else ab("processVoteINTERNAL: invalid previous epoch")
606+ else ad("processVoteINTERNAL: invalid previous epoch")
611607 if ((ck == ck))
612608 then {
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"))
609+ let K = ap(bW)
610+ let cl = K
611+ let M = cl._1
612+ let N = cl._2
613+ let bO = {
614+ let am = invoke(this, "getUserGwxAmountAtHeight", [aa, bI], nil)
615+ if ($isInstanceOf(am, "Int"))
616+ then am
617+ else throw(($getType(am) + " couldn't be cast to Int"))
622618 }
623619 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"))
620+ let am = invoke(this, "getUserGwxAmountAtHeight", [aa, cj], nil)
621+ if ($isInstanceOf(am, "Int"))
622+ then am
623+ else throw(($getType(am) + " couldn't be cast to Int"))
628624 }
629- let bL = valueOrElse(getInteger(W(k)), 0)
630- let cn = valueOrElse(getInteger(Q(G, k)), 0)
631- let co = getInteger(O(G, bt, bW))
632- let cp = valueOrErrorMessage(co, Z((((("processVoteINTERNAL " + bU) + " ") + Y) + ": no previous vote")))
633- let bI = valueOrElse(getInteger(this, M(bt, k)), 0)
634- let T = aB(I, J)
635- let cq = valueOrElse(getInteger(S(T, bW)), 0)
636- let by = addressFromStringValue(aj(this, s))
637- let cr = valueOrElse(getInteger(by, X(T, Y)), 0)
625+ let bN = valueOrElse(getInteger(Y(o)), 0)
626+ let cn = valueOrElse(getInteger(S(K, o)), 0)
627+ let co = getInteger(Q(K, bv, bY))
628+ let cp = valueOrErrorMessage(co, ab((((("processVoteINTERNAL " + bW) + " ") + aa) + ": no previous vote")))
629+ let bK = valueOrElse(getInteger(this, O(bv, o)), 0)
630+ let V = aD(M, N)
631+ let cq = valueOrElse(getInteger(U(V, bY)), 0)
632+ let bA = addressFromStringValue(al(this, w))
633+ let cr = valueOrElse(getInteger(bA, Z(V, aa)), 0)
638634 let cs = if (if ((cr == 0))
639635 then true
640636 else (co == unit))
641637 then nil
642- else [IntegerEntry(S(T, bW), (cq + cp))]
643- let aL = aB(I, J)
644- let bO = if ((cm > 0))
645- then fraction(cp, bM, cm)
638+ else [IntegerEntry(U(V, bY), (cq + cp))]
639+ let aN = aD(M, N)
640+ let bQ = if ((cm > 0))
641+ then fraction(cp, bO, cm)
646642 else 0
647- let ca = if (if ((co == unit))
643+ let cb = if (if ((co == unit))
648644 then true
649- else (0 >= bO))
650- then bh(aR(G), Y)
651- else [IntegerEntry(O(G, bt, k), bO), IntegerEntry(W(k), (bL + bO)), IntegerEntry(Q(G, k), (cn + bO)), IntegerEntry(M(bt, k), (bI + bO))]
652- $Tuple2((ca ++ cs), unit)
645+ else (0 >= bQ))
646+ then bj(aT(K), aa)
647+ else [IntegerEntry(Q(K, bv, o), bQ), IntegerEntry(Y(o), (bN + bQ)), IntegerEntry(S(K, o), (cn + bQ)), IntegerEntry(O(bv, o), (bK + bQ))]
648+ $Tuple2((cb ++ cs), unit)
653649 }
654650 else throw("Strict value is not equal to itself.")
655651 }
656652 else throw("Strict value is not equal to itself.")
657653 }
658654
659655
660656
661-@Callable(bp)
662-func processPoolINTERNAL (bU,ct) = {
663- let bV = bs(bp)
664- if ((bV == bV))
657+@Callable(br)
658+func processPoolINTERNAL (bW,ct) = {
659+ let bX = bu(br)
660+ if ((bX == bX))
665661 then {
666662 let cu = {
667- let cv = al(this, l)
663+ let cv = an(this, p)
668664 if (ct)
669665 then cv
670666 else (cv - 1)
671667 }
672668 let ck = if ((cu >= 0))
673669 then true
674- else ab("processPoolINTERNAL: invalid target epoch")
670+ else ad("processPoolINTERNAL: invalid target epoch")
675671 if ((ck == ck))
676672 then {
677- let G = an(bU)
678- let cw = G
679- let I = cw._1
680- let J = cw._2
681- let by = addressFromStringValue(aj(this, s))
682- let aL = aB(I, J)
673+ let K = ap(bW)
674+ let cw = K
675+ let M = cw._1
676+ let N = cw._2
677+ let bA = addressFromStringValue(al(this, w))
678+ let aN = aD(M, N)
683679 let cx = {
684- let ak = invoke(by, "usersListTraversal", [aL], nil)
685- if ($isInstanceOf(ak, "Boolean"))
686- then ak
687- else throw(($getType(ak) + " couldn't be cast to Boolean"))
680+ let am = invoke(bA, "usersListTraversal", [aN], nil)
681+ if ($isInstanceOf(am, "Boolean"))
682+ then am
683+ else throw(($getType(am) + " couldn't be cast to Boolean"))
688684 }
689685 if ((cx == cx))
690686 then if (cx)
691687 then $Tuple2(nil, true)
692688 else {
693- let cy = addressFromStringValue(valueOrErrorMessage(getString(ap, t), "invalid assets store contract"))
694- let bL = valueOrElse(getInteger(this, W(cu)), 0)
695- let cn = valueOrElse(getInteger(this, Q(G, cu)), 0)
696- let cz = if ((bL == 0))
689+ let cy = addressFromStringValue(valueOrErrorMessage(getString(ar, x), "invalid assets store contract"))
690+ let bN = valueOrElse(getInteger(this, Y(cu)), 0)
691+ let cn = valueOrElse(getInteger(this, S(K, cu)), 0)
692+ let cz = if ((bN == 0))
697693 then 0
698- else fraction(cn, b, bL)
699- let cc = invoke(ap, "modifyWeight", [aL, cz], nil)
700- if ((cc == cc))
701- then $Tuple2([IntegerEntry(U(G, cu), cz)], false)
694+ else fraction(cn, b, bN)
695+ let cd = invoke(ar, "modifyWeight", [aN, cz], nil)
696+ if ((cd == cd))
697+ then $Tuple2([IntegerEntry(W(K, cu), cz)], false)
702698 else throw("Strict value is not equal to itself.")
703699 }
704700 else throw("Strict value is not equal to itself.")
705701 }
706702 else throw("Strict value is not equal to itself.")
707703 }
708704 else throw("Strict value is not equal to itself.")
709705 }
710706
711707
712708
713-@Callable(bp)
709+@Callable(br)
714710 func finalizeHelper () = {
715- let ct = valueOrElse(getBoolean(A), false)
716- let k = valueOrElse(getInteger(this, l), 0)
717- let cA = (k - 1)
718- let bF = al(this, D(k))
719- let bz = al(this, h)
720- let bG = (bF + bz)
721- let bH = getInteger(this, u)
722- if (if (if ((height >= bG))
723- then (bH == unit)
711+ let ct = valueOrElse(getBoolean(E), false)
712+ let o = valueOrElse(getInteger(this, p), 0)
713+ let cA = (o - 1)
714+ let bH = an(this, H(o))
715+ let bB = an(this, l)
716+ let bI = (bH + bB)
717+ let bJ = getInteger(this, y)
718+ if (if (if ((height >= bI))
719+ then (bJ == unit)
724720 else false)
725721 then !(ct)
726722 else false)
727723 then {
728- let cB = (k + 1)
729- let cC = getInteger(this, i)
724+ let cB = (o + 1)
725+ let cC = getInteger(this, m)
730726 let cD = {
731- let ag = cC
732- if ($isInstanceOf(ag, "Int"))
727+ let ai = cC
728+ if ($isInstanceOf(ai, "Int"))
733729 then {
734- let bS = ag
735-[IntegerEntry(h, bS), DeleteEntry(i)]
730+ let bU = ai
731+[IntegerEntry(l, bU), DeleteEntry(m)]
736732 }
737- else if ($isInstanceOf(ag, "Unit"))
733+ else if ($isInstanceOf(ai, "Unit"))
738734 then nil
739735 else throw("Match error")
740736 }
741- $Tuple2(([IntegerEntry(D(cB), height), IntegerEntry(x, height), IntegerEntry(l, cB), IntegerEntry(u, d), IntegerEntry(j(k), bz)] ++ cD), true)
737+ $Tuple2(([IntegerEntry(H(cB), height), IntegerEntry(B, height), IntegerEntry(p, cB), IntegerEntry(y, d), IntegerEntry(n(o), bB)] ++ cD), true)
742738 }
743739 else if (if (ct)
744- then (bH == unit)
740+ then (bJ == unit)
745741 else false)
746- then $Tuple2([IntegerEntry(u, f)], true)
747- else if ((bH == unit))
742+ then $Tuple2([IntegerEntry(y, f)], true)
743+ else if ((bJ == unit))
748744 then $Tuple2(nil, false)
749- else if ((bH == d))
745+ else if ((bJ == d))
750746 then {
751- let cE = getString(v)
752- let ag = cE
753- if ($isInstanceOf(ag, "Unit"))
747+ let cE = getString(z)
748+ let ai = cE
749+ if ($isInstanceOf(ai, "Unit"))
754750 then {
755- let cF = getString(aT(aQ))
751+ let cF = getString(aV(aS))
756752 if ($isInstanceOf(cF, "Unit"))
757- then $Tuple2([IntegerEntry(u, e), DeleteEntry(v)], true)
753+ then $Tuple2([IntegerEntry(y, e), DeleteEntry(z)], true)
758754 else if ($isInstanceOf(cF, "String"))
759755 then {
760756 let cG = cF
761- $Tuple2([StringEntry(v, cG)], true)
757+ $Tuple2([StringEntry(z, cG)], true)
762758 }
763759 else throw("Match error")
764760 }
765- else if ($isInstanceOf(ag, "String"))
761+ else if ($isInstanceOf(ai, "String"))
766762 then {
767- let bU = ag
768- let cH = getString(aZ(aQ, bU))
763+ let bW = ai
764+ let cH = getString(bb(aS, bW))
769765 if ((cH == cH))
770766 then {
771- let cx = invoke(this, "processPoolBalanceINTERNAL", [bU], nil)
767+ let cx = invoke(this, "processPoolBalanceINTERNAL", [bW], nil)
772768 if ((cx == cx))
773769 then {
774770 let cF = cH
775771 if ($isInstanceOf(cF, "Unit"))
776- then $Tuple2([IntegerEntry(u, e), DeleteEntry(v)], true)
772+ then $Tuple2([IntegerEntry(y, e), DeleteEntry(z)], true)
777773 else if ($isInstanceOf(cF, "String"))
778774 then {
779775 let cG = cF
780- $Tuple2([StringEntry(v, cG)], true)
776+ $Tuple2([StringEntry(z, cG)], true)
781777 }
782778 else throw("Match error")
783779 }
784780 else throw("Strict value is not equal to itself.")
785781 }
786782 else throw("Strict value is not equal to itself.")
787783 }
788784 else throw("Match error")
789785 }
790- else if ((bH == e))
786+ else if ((bJ == e))
791787 then {
792- let cE = getString(v)
793- let cI = getString(w)
794- let ag = cE
795- if ($isInstanceOf(ag, "Unit"))
788+ let cE = getString(z)
789+ let cI = getString(A)
790+ let ai = cE
791+ if ($isInstanceOf(ai, "Unit"))
796792 then {
797- let cF = getString(aT(aQ))
793+ let cF = getString(aV(aS))
798794 if ($isInstanceOf(cF, "Unit"))
799- then $Tuple2([IntegerEntry(u, f), DeleteEntry(v), DeleteEntry(w)], true)
795+ then $Tuple2([IntegerEntry(y, f), DeleteEntry(z), DeleteEntry(A)], true)
800796 else if ($isInstanceOf(cF, "String"))
801797 then {
802798 let cJ = cF
803- $Tuple2([StringEntry(v, cJ)], true)
799+ $Tuple2([StringEntry(z, cJ)], true)
804800 }
805801 else throw("Match error")
806802 }
807- else if ($isInstanceOf(ag, "String"))
803+ else if ($isInstanceOf(ai, "String"))
808804 then {
809- let bU = ag
810- let G = an(bU)
805+ let bW = ai
806+ let K = ap(bW)
811807 let cK = {
812808 let cF = cI
813809 if ($isInstanceOf(cF, "Unit"))
814- then getString(aT(aR(G)))
810+ then getString(aV(aT(K)))
815811 else if ($isInstanceOf(cF, "String"))
816812 then {
817813 let cL = cF
818- let cM = getString(aZ(aR(G), cL))
814+ let cM = getString(bb(aT(K), cL))
819815 if ((cM == cM))
820816 then {
821- let cN = invoke(this, "processVoteINTERNAL", [bU, cL], nil)
817+ let cN = invoke(this, "processVoteINTERNAL", [bW, cL], nil)
822818 if ((cN == cN))
823819 then cM
824820 else throw("Strict value is not equal to itself.")
825821 }
826822 else throw("Strict value is not equal to itself.")
827823 }
828824 else throw("Match error")
829825 }
830826 let cF = cK
831827 if ($isInstanceOf(cF, "Unit"))
832828 then {
833- let cH = getString(aZ(aQ, bU))
829+ let cH = getString(bb(aS, bW))
834830 let cO = cH
835831 if ($isInstanceOf(cO, "Unit"))
836- then $Tuple2([IntegerEntry(u, f), DeleteEntry(v), DeleteEntry(w)], true)
832+ then $Tuple2([IntegerEntry(y, f), DeleteEntry(z), DeleteEntry(A)], true)
837833 else if ($isInstanceOf(cO, "String"))
838834 then {
839- let bl = cO
840- $Tuple2([StringEntry(v, bl), DeleteEntry(w)], true)
835+ let bn = cO
836+ $Tuple2([StringEntry(z, bn), DeleteEntry(A)], true)
841837 }
842838 else throw("Match error")
843839 }
844840 else if ($isInstanceOf(cF, "String"))
845841 then {
846842 let cP = cF
847- $Tuple2([StringEntry(w, cP)], true)
843+ $Tuple2([StringEntry(A, cP)], true)
848844 }
849845 else throw("Match error")
850846 }
851847 else throw("Match error")
852848 }
853- else if ((bH == f))
849+ else if ((bJ == f))
854850 then {
855- let cE = getString(v)
856- let ag = cE
857- if ($isInstanceOf(ag, "Unit"))
851+ let cE = getString(z)
852+ let ai = cE
853+ if ($isInstanceOf(ai, "Unit"))
858854 then {
859- let cF = getString(aT(aQ))
855+ let cF = getString(aV(aS))
860856 if ($isInstanceOf(cF, "Unit"))
861857 then {
862- let ca = if (ct)
863- then [DeleteEntry(u), DeleteEntry(A)]
864- else [DeleteEntry(u), BooleanEntry(E(cA), true), IntegerEntry(y, k), IntegerEntry(z, bF)]
865- let cQ = aO()
858+ let cb = if (ct)
859+ then [DeleteEntry(y), DeleteEntry(E)]
860+ else [DeleteEntry(y), BooleanEntry(I(cA), true), IntegerEntry(C, o), IntegerEntry(D, bH)]
861+ let cQ = aQ()
866862 if ((cQ == cQ))
867- then $Tuple2(ca, true)
863+ then $Tuple2(cb, true)
868864 else throw("Strict value is not equal to itself.")
869865 }
870866 else if ($isInstanceOf(cF, "String"))
871867 then {
872868 let cG = cF
873- $Tuple2([StringEntry(v, cG)], true)
869+ $Tuple2([StringEntry(z, cG)], true)
874870 }
875871 else throw("Match error")
876872 }
877- else if ($isInstanceOf(ag, "String"))
873+ else if ($isInstanceOf(ai, "String"))
878874 then {
879- let bU = ag
880- let cH = getString(aZ(aQ, bU))
875+ let bW = ai
876+ let cH = getString(bb(aS, bW))
881877 if ((cH == cH))
882878 then {
883879 let cx = {
884- let ak = invoke(this, "processPoolINTERNAL", [bU, ct], nil)
885- if ($isInstanceOf(ak, "Boolean"))
886- then ak
887- else throw(($getType(ak) + " couldn't be cast to Boolean"))
880+ let am = invoke(this, "processPoolINTERNAL", [bW, ct], nil)
881+ if ($isInstanceOf(am, "Boolean"))
882+ then am
883+ else throw(($getType(am) + " couldn't be cast to Boolean"))
888884 }
889885 if ((cx == cx))
890886 then if (cx)
891887 then $Tuple2(nil, true)
892888 else {
893889 let cF = cH
894890 if ($isInstanceOf(cF, "Unit"))
895891 then {
896- let ca = if (ct)
897- then [DeleteEntry(u), DeleteEntry(A), DeleteEntry(v)]
898- else [DeleteEntry(u), BooleanEntry(E(cA), true), IntegerEntry(y, k), IntegerEntry(z, bF), DeleteEntry(v)]
899- let cQ = aO()
892+ let cb = if (ct)
893+ then [DeleteEntry(y), DeleteEntry(E), DeleteEntry(z)]
894+ else [DeleteEntry(y), BooleanEntry(I(cA), true), IntegerEntry(C, o), IntegerEntry(D, bH), DeleteEntry(z)]
895+ let cQ = aQ()
900896 if ((cQ == cQ))
901- then $Tuple2(ca, true)
897+ then $Tuple2(cb, true)
902898 else throw("Strict value is not equal to itself.")
903899 }
904900 else if ($isInstanceOf(cF, "String"))
905901 then {
906902 let cG = cF
907- $Tuple2([StringEntry(v, cG)], true)
903+ $Tuple2([StringEntry(z, cG)], true)
908904 }
909905 else throw("Match error")
910906 }
911907 else throw("Strict value is not equal to itself.")
912908 }
913909 else throw("Strict value is not equal to itself.")
914910 }
915911 else throw("Match error")
916912 }
917- else ab("finalization is broken")
913+ else ad("finalization is broken")
918914 }
919915
920916
921917
922-@Callable(bp)
918+@Callable(br)
923919 func finalizeWrapper (cR) = {
924- let cS = addressFromStringValue(getStringValue(this, p))
920+ let cS = addressFromStringValue(getStringValue(this, t))
925921 let cT = {
926- let ak = invoke(this, "finalizeHelper", nil, nil)
927- if ($isInstanceOf(ak, "Boolean"))
928- then ak
929- else throw(($getType(ak) + " couldn't be cast to Boolean"))
922+ let am = invoke(this, "finalizeHelper", nil, nil)
923+ if ($isInstanceOf(am, "Boolean"))
924+ then am
925+ else throw(($getType(am) + " couldn't be cast to Boolean"))
930926 }
931927 if ((cT == cT))
932928 then if (!(cT))
933929 then if ((cR == 0))
934- then ab("Current voting is not over yet")
930+ then ad("Current voting is not over yet")
935931 else {
936932 let cU = invoke(cS, "finalize", nil, nil)
937933 if ((cU == cU))
938934 then $Tuple2(nil, unit)
939935 else throw("Strict value is not equal to itself.")
940936 }
941937 else {
942- let cV = valueOrElse(getInteger(this, m), c)
938+ let cV = valueOrElse(getInteger(this, q), c)
943939 if ((cV > cR))
944940 then {
945941 let cU = invoke(this, "finalizeWrapper", [(cR + 1)], nil)
946942 if ((cU == cU))
947943 then $Tuple2(nil, unit)
948944 else throw("Strict value is not equal to itself.")
949945 }
950946 else $Tuple2(nil, unit)
951947 }
952948 else throw("Strict value is not equal to itself.")
953949 }
954950
955951
956952
957-@Callable(bp)
953+@Callable(br)
958954 func finalize () = {
959955 let cU = invoke(this, "finalizeWrapper", [0], nil)
960956 if ((cU == cU))
961957 then $Tuple2(nil, unit)
962958 else throw("Strict value is not equal to itself.")
963959 }
964960
965961
966962
967-@Callable(bp)
968-func containsNodeREADONLY (aU,aY) = $Tuple2(nil, ba(aU, aY))
963+@Callable(br)
964+func containsNodeREADONLY (aW,ba) = $Tuple2(nil, bc(aW, ba))
969965
970966
971967
972-@Callable(bp)
973-func insertNode (aU,aY) = {
974- let bV = br(bp)
975- if ((bV == bV))
976- then $Tuple2(be(aU, aY), unit)
968+@Callable(br)
969+func insertNode (aW,ba) = {
970+ let bX = bt(br)
971+ if ((bX == bX))
972+ then $Tuple2(bg(aW, ba), unit)
977973 else throw("Strict value is not equal to itself.")
978974 }
979975
980976
981977
982-@Callable(bp)
983-func deleteNode (aU,aY) = {
984- let bV = br(bp)
985- if ((bV == bV))
986- then $Tuple2(bh(aU, aY), unit)
978+@Callable(br)
979+func deleteNode (aW,ba) = {
980+ let bX = bt(br)
981+ if ((bX == bX))
982+ then $Tuple2(bj(aW, ba), unit)
987983 else throw("Strict value is not equal to itself.")
988984 }
989985
990986
991987
992-@Callable(bp)
988+@Callable(br)
993989 func isFinalizationInProgress () = {
994- let bH = getInteger(this, u)
995- let cW = (bH != unit)
990+ let bJ = getInteger(this, y)
991+ let cW = (bJ != unit)
996992 $Tuple2(nil, cW)
997993 }
998994
999995
1000996
1001-@Callable(bp)
1002-func deletePool (I,J) = {
1003- let bV = if (if ((bp.caller == ap))
997+@Callable(br)
998+func deletePool (M,N) = {
999+ let bX = if (if ((br.caller == ar))
10041000 then true
1005- else br(bp))
1001+ else bt(br))
10061002 then true
1007- else ab("Permission denied")
1008- if ((bV == bV))
1003+ else ad("Permission denied")
1004+ if ((bX == bX))
10091005 then {
1010- let aU = "pools"
1011- let G = $Tuple2(I, J)
1012- let aY = makeString([I, J], a)
1013- let ca = if (ba(aU, aY))
1014- then bh(aU, aY)
1006+ let aW = "pools"
1007+ let K = $Tuple2(M, N)
1008+ let ba = makeString([M, N], a)
1009+ let cb = if (bc(aW, ba))
1010+ then bj(aW, ba)
10151011 else nil
1016- ([DeleteEntry(F(G))] ++ ca)
1012+ ([DeleteEntry(J(K))] ++ cb)
10171013 }
10181014 else throw("Strict value is not equal to itself.")
10191015 }
10201016
10211017
10221018
1023-@Callable(bp)
1024-func resume (I,J,cX) = {
1025- let bH = getInteger(this, u)
1026- let cY = valueOrErrorMessage(az(I, J), Z("invalid assets"))
1027- let cd = cY._1
1028- let aL = cY._2
1029- let cZ = bp.payments[0]
1030- let cy = addressFromStringValue(getStringValue(this, t))
1019+@Callable(br)
1020+func resume (M,N,cX) = {
1021+ let bJ = getInteger(this, y)
1022+ let cY = valueOrErrorMessage(aB(M, N), ab("invalid assets"))
1023+ let ce = cY._1
1024+ let aN = cY._2
1025+ let cZ = br.payments[0]
1026+ let cy = addressFromStringValue(getStringValue(this, x))
10311027 let da = "%s__config"
10321028 let db = 1
1033- let bx = addressFromStringValue(aj(this, r))
1034- let dc = fromBase58String(split(getStringValue(bx, da), a)[db])
1029+ let bz = addressFromStringValue(al(this, v))
1030+ let dc = fromBase58String(split(getStringValue(bz, da), a)[db])
10351031 let dd = {
1036- let ak = invoke(cy, "isVerifiedREADONLY", [I], nil)
1037- if ($isInstanceOf(ak, "Boolean"))
1038- then ak
1039- else throw(($getType(ak) + " couldn't be cast to Boolean"))
1032+ let am = invoke(cy, "isVerifiedREADONLY", [M], nil)
1033+ if ($isInstanceOf(am, "Boolean"))
1034+ then am
1035+ else throw(($getType(am) + " couldn't be cast to Boolean"))
10401036 }
10411037 let de = {
1042- let ak = invoke(cy, "isVerifiedREADONLY", [J], nil)
1043- if ($isInstanceOf(ak, "Boolean"))
1044- then ak
1045- else throw(($getType(ak) + " couldn't be cast to Boolean"))
1038+ let am = invoke(cy, "isVerifiedREADONLY", [N], nil)
1039+ if ($isInstanceOf(am, "Boolean"))
1040+ then am
1041+ else throw(($getType(am) + " couldn't be cast to Boolean"))
10461042 }
1047- let df = valueOrErrorMessage(getInteger(this, n), "invalid resumption fee")
1048- let bA = [if ((bH == unit))
1043+ let df = valueOrErrorMessage(getInteger(this, r), "invalid resumption fee")
1044+ let bC = [if ((bJ == unit))
10491045 then true
1050- else ab("finalization is in progress"), if ((cZ.assetId == dc))
1046+ else ad("finalization is in progress"), if ((cZ.assetId == dc))
10511047 then true
1052- else ab("invalid fee payment asset id"), if ((cZ.amount == df))
1048+ else ad("invalid fee payment asset id"), if ((cZ.amount == df))
10531049 then true
1054- else ab("invalid fee payment amount"), if (if (dd)
1050+ else ad("invalid fee payment amount"), if (if (dd)
10551051 then de
10561052 else false)
10571053 then true
1058- else ab("both assets should be verified")]
1059- if ((bA == bA))
1054+ else ad("both assets should be verified")]
1055+ if ((bC == bC))
10601056 then {
1061- let dg = assetBalance(this, aL)
1057+ let dg = assetBalance(this, aN)
10621058 if ((dg == dg))
10631059 then {
10641060 let dh = false
1065- let di = if ((size(bp.payments) == 1))
1061+ let di = if ((size(br.payments) == 1))
10661062 then {
1067- let dj = {
1068- let ak = invoke(ap, "checkBalance", [ay(aL)], nil)
1069- if ($isInstanceOf(ak, "Boolean"))
1070- then ak
1071- else throw(($getType(ak) + " couldn't be cast to Boolean"))
1063+ let ca = {
1064+ let am = invoke(ar, "checkBalance", [aA(aN)], nil)
1065+ if ($isInstanceOf(am, "Boolean"))
1066+ then am
1067+ else throw(($getType(am) + " couldn't be cast to Boolean"))
10721068 }
1073- if (dj)
1069+ if (ca)
10741070 then true
1075- else ab("assets should be attached")
1071+ else ad("assets should be attached")
10761072 }
1077- else if ((size(bp.payments) == 2))
1073+ else if ((size(br.payments) == 2))
10781074 then {
1079- let dk = valueOrErrorMessage(scriptHash(cd), Z("pool address is not scripted"))
1080- let dl = fromBase64String(valueOrErrorMessage(getString(ap, C()), Z("allowed lp stable script hash is not set")))
1081- let dm = (dk == dl)
1082- let dn = if (dm)
1075+ let dj = valueOrErrorMessage(scriptHash(ce), ab("pool address is not scripted"))
1076+ let dk = fromBase64String(valueOrErrorMessage(getString(ar, G()), ab("allowed lp stable script hash is not set")))
1077+ let dl = (dj == dk)
1078+ let dm = if (dl)
10831079 then "putOneTknV2"
10841080 else "putOneTkn"
1085- invoke(cd, dn, [cX, dh], [bp.payments[1]])
1081+ invoke(ce, dm, [cX, dh], [br.payments[1]])
10861082 }
1087- else if ((size(bp.payments) == 3))
1088- then invoke(cd, "put", [cX, dh], [bp.payments[1], bp.payments[2]])
1089- else ab("invalid payments size")
1083+ else if ((size(br.payments) == 3))
1084+ then invoke(ce, "put", [cX, dh], [br.payments[1], br.payments[2]])
1085+ else ad("invalid payments size")
10901086 if ((di == di))
10911087 then {
1092- let do = assetBalance(this, aL)
1093- if ((do == do))
1088+ let dn = assetBalance(this, aN)
1089+ if ((dn == dn))
10941090 then {
1095- let dp = (do - dg)
1096- let dq = if ((dp > 0))
1097- then [ScriptTransfer(bp.caller, dp, aL)]
1091+ let do = (dn - dg)
1092+ let dp = if ((do > 0))
1093+ then [ScriptTransfer(br.caller, do, aN)]
10981094 else nil
1099- let dr = invoke(ap, "setWxEmissionPoolLabel", [I, J], nil)
1100- if ((dr == dr))
1095+ let dq = invoke(ar, "setWxEmissionPoolLabel", [M, N], nil)
1096+ if ((dq == dq))
11011097 then {
1102- let G = $Tuple2(I, J)
1103- let bB = ([BooleanEntry(F(G), true)] ++ be(aQ, am(G)))
1104- $Tuple2((bB ++ dq), unit)
1098+ let dr = {
1099+ let am = invoke(ar, "getPoolStatusREADONLY", [toString(ce)], nil)
1100+ if ($isInstanceOf(am, "Int"))
1101+ then am
1102+ else throw(($getType(am) + " couldn't be cast to Int"))
1103+ }
1104+ let cf = if ((dr == j))
1105+ then invoke(ar, "managePool", [toString(ce), h], nil)
1106+ else unit
1107+ if ((cf == cf))
1108+ then {
1109+ let K = $Tuple2(M, N)
1110+ let bD = ([BooleanEntry(J(K), true)] ++ bg(aS, ao(K)))
1111+ $Tuple2((bD ++ dp), unit)
1112+ }
1113+ else throw("Strict value is not equal to itself.")
11051114 }
11061115 else throw("Strict value is not equal to itself.")
11071116 }
11081117 else throw("Strict value is not equal to itself.")
11091118 }
11101119 else throw("Strict value is not equal to itself.")
11111120 }
11121121 else throw("Strict value is not equal to itself.")
11131122 }
11141123 else throw("Strict value is not equal to itself.")
11151124 }
11161125
11171126
11181127 @Verifier(ds)
11191128 func dt () = {
11201129 let du = {
1121- let ag = bm()
1122- if ($isInstanceOf(ag, "ByteVector"))
1130+ let ai = bo()
1131+ if ($isInstanceOf(ai, "ByteVector"))
11231132 then {
1124- let bq = ag
1125- bq
1133+ let bs = ai
1134+ bs
11261135 }
1127- else if ($isInstanceOf(ag, "Unit"))
1136+ else if ($isInstanceOf(ai, "Unit"))
11281137 then ds.senderPublicKey
11291138 else throw("Match error")
11301139 }
11311140 sigVerify(ds.bodyBytes, ds.proofs[0], du)
11321141 }
11331142

github/deemru/w8io/6500d08 
547.29 ms