tx · 5WZLzSkU8YrnK71Knck2rbhg9tvQ6AogkthRYwJDCu3t

3PQtGwmFsbKygGi8wPfUxz4bTUNgYodK3je:  -0.01800000 Waves

2024.02.27 14:50 [4060412] smart account 3PQtGwmFsbKygGi8wPfUxz4bTUNgYodK3je > SELF 0.00000000 Waves

{ "type": 13, "id": "5WZLzSkU8YrnK71Knck2rbhg9tvQ6AogkthRYwJDCu3t", "fee": 1800000, "feeAssetId": null, "timestamp": 1709034583259, "version": 2, "chainId": 87, "sender": "3PQtGwmFsbKygGi8wPfUxz4bTUNgYodK3je", "senderPublicKey": "CtYpnoMZ1pX6F6Mo3Ghxuk2tz2wd4zwyxZPvELGU1pQK", "proofs": [ "38Fnk5buaLTRxmeYJ4jE7G2btzrqZ9uxTicE4TZADy6RcDK78necc3Ax6MTLgVsXHvpRLBajCr7WDKAJBh1xpEGE" ], "script": "base64:BwIoCAISBAoCAhgSBgoEAgIBARIECgICGBIECgICGBIECgICGBIECgICGDUAB2NoYWluSWQJAMkBAgkAygECCAUEdGhpcwVieXRlcwABAAEACGNoYWluSWRSAQFSAAhjaGFpbklkVAEBVAAIY2hhaW5JZFcBAVcAA1NFUAICX18ABVdBVkVTAgVXQVZFUwAQY29udHJhY3RGaWxlbmFtZQIVd3hkYW9fY2FsY3VsYXRvci5yaWRlAAVtdWx0OACAwtcvAAZtdWx0MTgJALYCAQCAgJC7utat8A0ADXdhdmVzRGVjaW1hbHMACAAMdXNkdERlY2ltYWxzAAYBBXRvWDE4AgdvcmlnVmFsDW9yaWdTY2FsZU11bHQJALwCAwkAtgIBBQdvcmlnVmFsBQZtdWx0MTgJALYCAQUNb3JpZ1NjYWxlTXVsdAEHZnJvbVgxOAIDdmFsD3Jlc3VsdFNjYWxlTXVsdAkAoAMBCQC8AgMFA3ZhbAkAtgIBBQ9yZXN1bHRTY2FsZU11bHQFBm11bHQxOAEHd3JhcEVycgEBcwkArAICCQCsAgIFEGNvbnRyYWN0RmlsZW5hbWUCAjogBQFzAQh0aHJvd0VycgEBcwkAAgEJAQd3cmFwRXJyAQUBcwERa2V5RmFjdG9yeUFkZHJlc3MAAhIlc19fZmFjdG9yeUFkZHJlc3MBDmZhY3RvcnlBZGRyZXNzAAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCBAckbWF0Y2gwCQCdCAIFBHRoaXMJARFrZXlGYWN0b3J5QWRkcmVzcwADCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQCmCAEFAXMDCQABAgUHJG1hdGNoMAIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yCQEHd3JhcEVycgECF2ludmFsaWQgZmFjdG9yeSBhZGRyZXNzAQtvbmx5QWRkcmVzcwIBaQdhZGRyZXNzAwkAAAIIBQFpBmNhbGxlcgUHYWRkcmVzcwYJAQh0aHJvd0VycgECEXBlcm1pc3Npb24gZGVuaWVkAQhvbmx5VGhpcwEBaQkBC29ubHlBZGRyZXNzAgUBaQUEdGhpcwELb25seUZhY3RvcnkBAWkJAQtvbmx5QWRkcmVzcwIFAWkJAQ5mYWN0b3J5QWRkcmVzcwAACXd4QXNzZXRJZAMJAAACBQdjaGFpbklkBQhjaGFpbklkVwEgkwEcq6nHbiVXzmaecba9qmv4POhYCyru2aBOuzzcFLEDCQAAAgUHY2hhaW5JZAUIY2hhaW5JZFQBIMZSHoFO6m7jPMCXsA5fLPJq6e2dsobRmkJ4qGB9PhuxCQEIdGhyb3dFcnIBAhBpbnZhbGlkIGNoYWluIGlkARBrZXlDdXJyZW50UGVyaW9kAAkAuQkCCQDMCAICAiVzCQDMCAICDWN1cnJlbnRQZXJpb2QFA25pbAUDU0VQARZrZXlTdGFydEhlaWdodEJ5UGVyaW9kAQZwZXJpb2QJALkJAgkAzAgCAgQlcyVkCQDMCAICC3N0YXJ0SGVpZ2h0CQDMCAIJAKQDAQUGcGVyaW9kBQNuaWwFA1NFUAEPa2V5UGVyaW9kTGVuZ3RoAAkAuQkCCQDMCAICAiVzCQDMCAICDHBlcmlvZExlbmd0aAUDbmlsBQNTRVABGGtleVRyZWFzdXJ5VmFsdWVCeVBlcmlvZAEGcGVyaW9kCQC5CQIJAMwIAgIEJXMlZAkAzAgCAg10cmVhc3VyeVZhbHVlCQDMCAIJAKQDAQUGcGVyaW9kBQNuaWwFA1NFUAEUa2V5TG9ja0dsb2JhbENvdW50ZXIACQC5CQIJAMwIAgICJXMJAMwIAgIRbG9ja0dsb2JhbENvdW50ZXIFA25pbAUDU0VQAQ9rZXlMb2NrRHVyYXRpb24ACQC5CQIJAMwIAgICJXMJAMwIAgIMbG9ja0R1cmF0aW9uBQNuaWwFA1NFUAEHa2V5TG9jawILdXNlckFkZHJlc3MHY291bnRlcgkAuQkCCQDMCAICBiVzJXMlZAkAzAgCAgRsb2NrCQDMCAIJAKUIAQULdXNlckFkZHJlc3MJAMwIAgkApAMBBQdjb3VudGVyBQNuaWwFA1NFUAEMa2V5U2tpblRvdGFsAQ90cmVhc3VyeUFkZHJlc3MJAKwCAgILc2tpbl90b3RhbF8JAKUIAQUPdHJlYXN1cnlBZGRyZXNzARVrZXlQb3dlckNvbmZpZ0FkZHJlc3MAAhYlc19fcG93ZXJDb25maWdBZGRyZXNzARJwb3dlckNvbmZpZ0FkZHJlc3MACQETdmFsdWVPckVycm9yTWVzc2FnZQIEByRtYXRjaDAJAJ0IAgkBDmZhY3RvcnlBZGRyZXNzAAkBFWtleVBvd2VyQ29uZmlnQWRkcmVzcwADCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQCmCAEFAXMDCQABAgUHJG1hdGNoMAIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yCQEHd3JhcEVycgECHGludmFsaWQgcG93ZXIgY29uZmlnIGFkZHJlc3MBD2tleVBvd2VyQXNzZXRJZAACDHBvd2VyQXNzZXRJZAEPZ2V0UG93ZXJBc3NldElkAAkA2QQBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgkBEnBvd2VyQ29uZmlnQWRkcmVzcwAJAQ9rZXlQb3dlckFzc2V0SWQACQEHd3JhcEVycgECFmludmFsaWQgcG93ZXIgYXNzZXQgaWQBF2tleVBvd2VyQ29udHJhY3RBZGRyZXNzAAIYJXNfX3Bvd2VyQ29udHJhY3RBZGRyZXNzARRwb3dlckNvbnRyYWN0QWRkcmVzcwAJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgQHJG1hdGNoMAkAnQgCCQEOZmFjdG9yeUFkZHJlc3MACQEXa2V5UG93ZXJDb250cmFjdEFkZHJlc3MAAwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAkApggBBQFzAwkAAQIFByRtYXRjaDACBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgkBB3dyYXBFcnIBAh5pbnZhbGlkIHBvd2VyIGNvbnRyYWN0IGFkZHJlc3MBDmtleUxvY2tBZGRyZXNzAAIPJXNfX2xvY2tBZGRyZXNzAQtsb2NrQWRkcmVzcwAJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgQHJG1hdGNoMAkAnQgCCQEOZmFjdG9yeUFkZHJlc3MACQEOa2V5TG9ja0FkZHJlc3MAAwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAkApggBBQFzAwkAAQIFByRtYXRjaDACBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgkBB3dyYXBFcnIBAh1pbnZhbGlkIGxvY2sgY29udHJhY3QgYWRkcmVzcwEWa2V5UG9vbHNGYWN0b3J5QWRkcmVzcwACFyVzX19wb29sc0ZhY3RvcnlBZGRyZXNzARZnZXRQb29sc0ZhY3RvcnlBZGRyZXNzAAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCBAckbWF0Y2gwCQCdCAIJAQ5mYWN0b3J5QWRkcmVzcwAJARZrZXlQb29sc0ZhY3RvcnlBZGRyZXNzAAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJAKYIAQUBcwMJAAECBQckbWF0Y2gwAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IJAQd3cmFwRXJyAQIdaW52YWxpZCBwb29scyBmYWN0b3J5IGFkZHJlc3MBEmtleVRyZWFzdXJ5QWRkcmVzcwACEyVzX190cmVhc3VyeUFkZHJlc3MBEmdldFRyZWFzdXJ5QWRkcmVzcwAJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgQHJG1hdGNoMAkAnQgCCQEOZmFjdG9yeUFkZHJlc3MACQESa2V5VHJlYXN1cnlBZGRyZXNzAAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJAKYIAQUBcwMJAAECBQckbWF0Y2gwAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IJAQd3cmFwRXJyAQIYaW52YWxpZCB0cmVhc3VyeSBhZGRyZXNzAQlrZXlBc3NldHMAAgolc19fYXNzZXRzAQxnZXRBc3NldHNTdHIACQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgkBDmZhY3RvcnlBZGRyZXNzAAkBCWtleUFzc2V0cwAJAQd3cmFwRXJyAQIOaW52YWxpZCBhc3NldHMBDGtleUxwQXNzZXRJZAACDSVzX19scEFzc2V0SWQBDGdldExwQXNzZXRJZAAJANkEAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIJAQ5mYWN0b3J5QWRkcmVzcwAJAQxrZXlMcEFzc2V0SWQACQEHd3JhcEVycgECE2ludmFsaWQgbHAgYXNzZXQgaWQBEmdldEFzc2V0SW5mb09yRmFpbAEHYXNzZXRJZAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEFB2Fzc2V0SWQJAQd3cmFwRXJyAQISaW52YWxpZCBhc3NldCBpbmZvAQpsb2NrRm9ybWF0BQRmcm9tAnRvB2Fzc2V0SWQGYW1vdW50DWxwQXNzZXRBbW91bnQJALkJAgkAzAgCAgolZCVkJXMlZCVkCQDMCAIJAKQDAQUEZnJvbQkAzAgCCQCkAwEFAnRvCQDMCAIJANgEAQUHYXNzZXRJZAkAzAgCCQCkAwEFBmFtb3VudAkAzAgCCQCkAwEFDWxwQXNzZXRBbW91bnQFA25pbAUDU0VQAQlsb2NrUGFyc2UBAXMEBXBhcnRzCQC1CQIFAXMFA1NFUAkAlgoECQETdmFsdWVPckVycm9yTWVzc2FnZQIJALYJAQkAkQMCBQVwYXJ0cwABCQEHd3JhcEVycgECKWVycm9yIGR1cmluZyBwcm9jZXNzaW5nIGxvY2sgc3RhcnQgaGVpZ2h0CQETdmFsdWVPckVycm9yTWVzc2FnZQIJALYJAQkAkQMCBQVwYXJ0cwACCQEHd3JhcEVycgECJ2Vycm9yIGR1cmluZyBwcm9jZXNzaW5nIGxvY2sgZW5kIGhlaWdodAkA2QQBCQCRAwIFBXBhcnRzAAMJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAtgkBCQCRAwIFBXBhcnRzAAQJAQd3cmFwRXJyAQIjZXJyb3IgZHVyaW5nIHByb2Nlc3NpbmcgbG9jayBhbW91bnQBEWdldEFzc2V0c0JhbGFuY2VzAg10YXJnZXRBZGRyZXNzC2Fzc2V0SWRMaXN0CgEDbWFwAgNhY2MObmV4dEFzc2V0SWRTdHIEB2JhbGFuY2UDCQAAAgUObmV4dEFzc2V0SWRTdHIFBVdBVkVTCQEFdG9YMTgCCAkA7wcBBQ10YXJnZXRBZGRyZXNzCWF2YWlsYWJsZQkAbAYACgAABQ13YXZlc0RlY2ltYWxzAAAAAAUERE9XTgQHYXNzZXRJZAkA2QQBBQ5uZXh0QXNzZXRJZFN0cgQNYXNzZXREZWNpbWFscwgJARJnZXRBc3NldEluZm9PckZhaWwBBQdhc3NldElkCGRlY2ltYWxzCQEFdG9YMTgCCQDwBwIFDXRhcmdldEFkZHJlc3MFB2Fzc2V0SWQJAGwGAAoAAAUNYXNzZXREZWNpbWFscwAAAAAFBERPV04JAM0IAgUDYWNjBQdiYWxhbmNlCgACJGwFC2Fzc2V0SWRMaXN0CgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQNtYXACBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoBD2dldEFzc2V0c1ByaWNlcwITcG9vbHNGYWN0b3J5QWRkcmVzcwthc3NldElkTGlzdAMJAAACBQdjaGFpbklkBQhjaGFpbklkVwQTd2F2ZXNVc2R0QWRkcmVzc1N0cgIjM1BLZnJ1cEV5ZFUyblpBZ2hWalpBZnZDd01Ca3p1UjFGNTIEDndhdmVzVXNkdFByaWNlCQCnAwEKAAFACQD8BwQFE3Bvb2xzRmFjdG9yeUFkZHJlc3MCCGdldFByaWNlCQDMCAIFE3dhdmVzVXNkdEFkZHJlc3NTdHIFA25pbAUDbmlsAwkAAQIFAUACBlN0cmluZwUBQAkAAgEJAKwCAgkAAwEFAUACGyBjb3VsZG4ndCBiZSBjYXN0IHRvIFN0cmluZwQSd2F2ZXNYdG5BZGRyZXNzU3RyAiMzUFBaV2dGTlJLSEx2TTUxcHdTOTM0QzhWWjdkMkY0WjU4ZwQNd2F2ZXNYdG5QcmljZQkApwMBCgABQAkA/AcEBRNwb29sc0ZhY3RvcnlBZGRyZXNzAghnZXRQcmljZQkAzAgCBRJ3YXZlc1h0bkFkZHJlc3NTdHIFA25pbAUDbmlsAwkAAQIFAUACBlN0cmluZwUBQAkAAgEJAKwCAgkAAwEFAUACGyBjb3VsZG4ndCBiZSBjYXN0IHRvIFN0cmluZwQMeHRuVXNkdFByaWNlCQC8AgMFDndhdmVzVXNkdFByaWNlBQZtdWx0MTgFDXdhdmVzWHRuUHJpY2UKAQNtYXACA2FjYwtuZXh0QXNzZXRJZAQFcHJpY2UEByRtYXRjaDAFC25leHRBc3NldElkAwkAAAICLDJ0aHNBQ3VIbXpETXVOZXpQTTMyd2c5YTNCd1V6QldEZVNLYWtnejNjdzIxBQckbWF0Y2gwBBJwd3JXYXZlc0FkZHJlc3NTdHICIzNQRGk3UXE4cExRWXZ0S3lUZlF1cXFQVVd5aG9ZYlU5NTd0BA1wd3JXYXZlc1ByaWNlCQCnAwEKAAFACQD8BwQFE3Bvb2xzRmFjdG9yeUFkZHJlc3MCCGdldFByaWNlCQDMCAIFEnB3cldhdmVzQWRkcmVzc1N0cgUDbmlsBQNuaWwDCQABAgUBQAIGU3RyaW5nBQFACQACAQkArAICCQADAQUBQAIbIGNvdWxkbid0IGJlIGNhc3QgdG8gU3RyaW5nCQC8AgMFDXB3cldhdmVzUHJpY2UFDndhdmVzVXNkdFByaWNlBQZtdWx0MTgDCQAAAgIsQXRxdjU5RVl6akZHdWl0S1ZuTVJrNkg4RnVram9WM2t0UG9yYkV5czI1b24FByRtYXRjaDAEEXd4V2F2ZXNBZGRyZXNzU3RyAiMzUEZ6YUgyZ2hwd0FOSEZnamV2YTgzTjF5eHpFckVMeDJlaAQMd3hXYXZlc1ByaWNlCQCnAwEKAAFACQD8BwQFE3Bvb2xzRmFjdG9yeUFkZHJlc3MCCGdldFByaWNlCQDMCAIFEXd4V2F2ZXNBZGRyZXNzU3RyBQNuaWwFA25pbAMJAAECBQFAAgZTdHJpbmcFAUAJAAIBCQCsAgIJAAMBBQFAAhsgY291bGRuJ3QgYmUgY2FzdCB0byBTdHJpbmcJALwCAwUMd3hXYXZlc1ByaWNlBQ53YXZlc1VzZHRQcmljZQUGbXVsdDE4AwkAAAICLDM0TjlZY0VFVExXbjkzcVlRNjRFc1AxeDg5dFNydUpVNDRSckVNU1hYRVBKBQckbWF0Y2gwBBZ3YXZlc1VzZHR3eGdBZGRyZXNzU3RyAiMzUEtNVlo3a1FlYVJFYWpZaThZYzI1Um82bWNOdzVENlFTYQQRd2F2ZXNVc2R0d3hnUHJpY2UJAKcDAQoAAUAJAPwHBAUTcG9vbHNGYWN0b3J5QWRkcmVzcwIIZ2V0UHJpY2UJAMwIAgUWd2F2ZXNVc2R0d3hnQWRkcmVzc1N0cgUDbmlsBQNuaWwDCQABAgUBQAIGU3RyaW5nBQFACQACAQkArAICCQADAQUBQAIbIGNvdWxkbid0IGJlIGNhc3QgdG8gU3RyaW5nCQC8AgMFDndhdmVzVXNkdFByaWNlBQZtdWx0MTgFEXdhdmVzVXNkdHd4Z1ByaWNlAwkAAAICLDZYdEhqcFhiczlSUkpQMlNyOUdVeVZxekFDY2J5OVRrVGhIWG5qVkM1Q0RKBQckbWF0Y2gwBBZ3YXZlc1VzZGN3eGdBZGRyZXNzU3RyAiMzUDNnM2VpcGZHMk5aS0tRRThEWlh0MkU5dFJKcWlpOWpjWAQRd2F2ZXNVc2Rjd3hnUHJpY2UJAKcDAQoAAUAJAPwHBAUTcG9vbHNGYWN0b3J5QWRkcmVzcwIIZ2V0UHJpY2UJAMwIAgUWd2F2ZXNVc2Rjd3hnQWRkcmVzc1N0cgUDbmlsBQNuaWwDCQABAgUBQAIGU3RyaW5nBQFACQACAQkArAICCQADAQUBQAIbIGNvdWxkbid0IGJlIGNhc3QgdG8gU3RyaW5nCQC8AgMFDndhdmVzVXNkdFByaWNlBQZtdWx0MTgFEXdhdmVzVXNkY3d4Z1ByaWNlAwkAAAICLEhaazFtYmZ1SnBteFUxRnM0QVg1TVdMVll0Y3RzTmNnNmUyQzZWS3FLOHprBQckbWF0Y2gwBBNsdGN3eGdYdG5BZGRyZXNzU3RyAiMzUDk0d3Z1NWdBN1ZoalBnQUIzdHdhZXFkd0hDd05LMnZzbgQObHRjd3hnWHRuUHJpY2UJAKcDAQoAAUAJAPwHBAUTcG9vbHNGYWN0b3J5QWRkcmVzcwIIZ2V0UHJpY2UJAMwIAgUTbHRjd3hnWHRuQWRkcmVzc1N0cgUDbmlsBQNuaWwDCQABAgUBQAIGU3RyaW5nBQFACQACAQkArAICCQADAQUBQAIbIGNvdWxkbid0IGJlIGNhc3QgdG8gU3RyaW5nCQC8AgMFDmx0Y3d4Z1h0blByaWNlBQx4dG5Vc2R0UHJpY2UFBm11bHQxOAMJAAACAiw0NzRqVGVZeDJyMlZhMzU3OTR0Q1NjQVhXSkc5aFUySGNneHpNb3dhWlVudQUHJG1hdGNoMAQVZXRod3hnV2F2ZXNBZGRyZXNzU3RyAiMzUDNYR1RONnMyOTJnOWl3WWhzM1RFcUpxSGlmZlFZb2p1RQQQZXRod3hnV2F2ZXNQcmljZQkApwMBCgABQAkA/AcEBRNwb29sc0ZhY3RvcnlBZGRyZXNzAghnZXRQcmljZQkAzAgCBRVldGh3eGdXYXZlc0FkZHJlc3NTdHIFA25pbAUDbmlsAwkAAQIFAUACBlN0cmluZwUBQAkAAgEJAKwCAgkAAwEFAUACGyBjb3VsZG4ndCBiZSBjYXN0IHRvIFN0cmluZwkAvAIDBRBldGh3eGdXYXZlc1ByaWNlBQ53YXZlc1VzZHRQcmljZQUGbXVsdDE4AwkAAAICLDhMUVc4ZjdQNWQ1UFpNN0d0WkVCZ2FxUlBHU3pTM0RmUHVpWHJVUko0QUpTBQckbWF0Y2gwBBNidGN3eGdYdG5BZGRyZXNzU3RyAiMzUENCV0RUQTZqckZzd2Q3Z1FnYUUzWGs3Z0xNNVJLb2Z2cAQOYnRjd3hnWHRuUHJpY2UJAKcDAQoAAUAJAPwHBAUTcG9vbHNGYWN0b3J5QWRkcmVzcwIIZ2V0UHJpY2UJAMwIAgUTYnRjd3hnWHRuQWRkcmVzc1N0cgUDbmlsBQNuaWwDCQABAgUBQAIGU3RyaW5nBQFACQACAQkArAICCQADAQUBQAIbIGNvdWxkbid0IGJlIGNhc3QgdG8gU3RyaW5nCQC8AgMFDmJ0Y3d4Z1h0blByaWNlBQx4dG5Vc2R0UHJpY2UFBm11bHQxOAkBCHRocm93RXJyAQIQaW52YWxpZCBhc3NldCBpZAkAzQgCBQNhY2MFBXByaWNlCgACJGwFC2Fzc2V0SWRMaXN0CgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQNtYXACBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoDCQAAAgUHY2hhaW5JZAUIY2hhaW5JZFQKAQNtYXACA2FjYwtuZXh0QXNzZXRJZAQFcHJpY2UEByRtYXRjaDAFC25leHRBc3NldElkAwkAAAICLEVNQU1MeERudjN4aXo4UlhnOEJ0ajMzamNFdzN3TGN6TDNKS1lZbXV1YnBjBQckbWF0Y2gwBBB3eFVzZHRBZGRyZXNzU3RyAiMzTXJVTFFSTGM1MkdXckpGMXRNY0FtNE03OGZQZTU3bzlLdAQLd3hVc2R0UHJpY2UJAKcDAQoAAUAJAPwHBAUTcG9vbHNGYWN0b3J5QWRkcmVzcwIIZ2V0UHJpY2UJAMwIAgUQd3hVc2R0QWRkcmVzc1N0cgUDbmlsBQNuaWwDCQABAgUBQAIGU3RyaW5nBQFACQACAQkArAICCQADAQUBQAIbIGNvdWxkbid0IGJlIGNhc3QgdG8gU3RyaW5nBQt3eFVzZHRQcmljZQMJAAACAixBN0tzaDdmWHlxbTFLaEtBaUszYkFCMmFpUFNpdFFRRjZ2MXB5dTlTUzNGUgUHJG1hdGNoMAQSdXNkY1VzZHRBZGRyZXNzU3RyAiMzTXpLU2RUSDJqRmJ5cExzb05mckg3UWdrelNieDNFWXdDQQQNdXNkY1VzZHRQcmljZQkApwMBCgABQAkA/AcEBRNwb29sc0ZhY3RvcnlBZGRyZXNzAghnZXRQcmljZQkAzAgCBRJ1c2RjVXNkdEFkZHJlc3NTdHIFA25pbAUDbmlsAwkAAQIFAUACBlN0cmluZwUBQAkAAgEJAKwCAgkAAwEFAUACGyBjb3VsZG4ndCBiZSBjYXN0IHRvIFN0cmluZwUNdXNkY1VzZHRQcmljZQMJAAACAiw4UTZTRTJBTmVidWZ3OEp1UGpKVlJqWkQ2ZHJEOGloak5qTTh4YUdVU2ZkUgUHJG1hdGNoMAQFcHJpY2UJAQV0b1gxOAIAgKPDRwkAbAYACgAABQx1c2R0RGVjaW1hbHMAAAAABQRET1dOBQVwcmljZQkBCHRocm93RXJyAQIQaW52YWxpZCBhc3NldCBpZAkAzQgCBQNhY2MFBXByaWNlCgACJGwFC2Fzc2V0SWRMaXN0CgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQNtYXACBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoJAQh0aHJvd0VycgECEGludmFsaWQgY2hhaW4gaWQBEWNhbGNUcmVhc3VyeVZhbHVlAAQPdHJlYXN1cnlBZGRyZXNzCQESZ2V0VHJlYXN1cnlBZGRyZXNzAAQTcG9vbHNGYWN0b3J5QWRkcmVzcwkBFmdldFBvb2xzRmFjdG9yeUFkZHJlc3MABAlhc3NldHNTdHIJALUJAgkBDGdldEFzc2V0c1N0cgAFA1NFUAQOYXNzZXRzQmFsYW5jZXMJARFnZXRBc3NldHNCYWxhbmNlcwIFD3RyZWFzdXJ5QWRkcmVzcwUJYXNzZXRzU3RyBAxhc3NldHNQcmljZXMJAQ9nZXRBc3NldHNQcmljZXMCBRNwb29sc0ZhY3RvcnlBZGRyZXNzBQlhc3NldHNTdHIKAQZyZWR1Y2UCA2FjYw5uZXh0QXNzZXRJZFN0cgQHYXNzZXRJZAkA2QQBBQ5uZXh0QXNzZXRJZFN0cgQFaW5kZXgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAzwgCBQlhc3NldHNTdHIFDm5leHRBc3NldElkU3RyCQEHd3JhcEVycgECEGludmFsaWQgYXNzZXQgaWQEB2JhbGFuY2UJAJEDAgUOYXNzZXRzQmFsYW5jZXMFBWluZGV4BAVwcmljZQkAkQMCBQxhc3NldHNQcmljZXMFBWluZGV4BAphc3NldFZhbHVlCQC8AgMFB2JhbGFuY2UFBXByaWNlBQZtdWx0MTgJALcCAgUDYWNjBQphc3NldFZhbHVlBA10cmVhc3VyeVZhbHVlCgACJGwFCWFzc2V0c1N0cgoAAiRzCQCQAwEFAiRsCgAFJGFjYzAJALYCAQAACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQZyZWR1Y2UCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoFDXRyZWFzdXJ5VmFsdWUBEmNhbGNSZXdhcmRzQW5kTG9jawINcGF5bWVudEFtb3VudBF1c2VyQWRkcmVzc09wdGlvbgQJYXNzZXRzU3RyCQC1CQIJAQxnZXRBc3NldHNTdHIABQNTRVAEDXd4ZGFvUXVhbnRpdHkICQESZ2V0QXNzZXRJbmZvT3JGYWlsAQkBDGdldExwQXNzZXRJZAAIcXVhbnRpdHkDCQAAAgUNd3hkYW9RdWFudGl0eQUNd3hkYW9RdWFudGl0eQQOYXNzZXRzQmFsYW5jZXMJARFnZXRBc3NldHNCYWxhbmNlcwIJAQ5mYWN0b3J5QWRkcmVzcwAFCWFzc2V0c1N0cgoBA21hcAIDYWNjDm5leHRBc3NldElkU3RyBAdhc3NldElkCQDZBAEFDm5leHRBc3NldElkU3RyBAVpbmRleAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDPCAIFCWFzc2V0c1N0cgUObmV4dEFzc2V0SWRTdHIJAQd3cmFwRXJyAQIVaW52YWxpZCBhc3NldCBiYWxhbmNlBA1hc3NldERlY2ltYWxzCAkBEmdldEFzc2V0SW5mb09yRmFpbAEFB2Fzc2V0SWQIZGVjaW1hbHMEB2JhbGFuY2UJAQdmcm9tWDE4AgkAkQMCBQ5hc3NldHNCYWxhbmNlcwUFaW5kZXgJAGwGAAoAAAUNYXNzZXREZWNpbWFscwAAAAAFBERPV04EBmFtb3VudAkAawMFB2JhbGFuY2UFDXBheW1lbnRBbW91bnQFDXd4ZGFvUXVhbnRpdHkDCQBmAgUGYW1vdW50AAAEBGxvY2sDCQAAAgURdXNlckFkZHJlc3NPcHRpb24FBHVuaXQFBHVuaXQJAPwHBAUEdGhpcwIMbG9ja0ludGVybmFsCQDMCAIICQEFdmFsdWUBBRF1c2VyQWRkcmVzc09wdGlvbgVieXRlcwkAzAgCBQdhc3NldElkCQDMCAIFBmFtb3VudAkAzAgCBQ1wYXltZW50QW1vdW50BQNuaWwFA25pbAMJAAACBQRsb2NrBQRsb2NrCQCUCgIJAM0IAggFA2FjYwJfMQUHYXNzZXRJZAkAzQgCCAUDYWNjAl8yBQZhbW91bnQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4FA2FjYwoAAiRsBQlhc3NldHNTdHIKAAIkcwkAkAMBBQIkbAoABSRhY2MwCQCUCgIFA25pbAUDbmlsCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQNtYXACBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDYJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BCWNhbGNQcmljZQAEE3Bvb2xzRmFjdG9yeUFkZHJlc3MJARZnZXRQb29sc0ZhY3RvcnlBZGRyZXNzAAQNY3VycmVudFBlcmlvZAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIJAQ5mYWN0b3J5QWRkcmVzcwAJARBrZXlDdXJyZW50UGVyaW9kAAkBB3dyYXBFcnIBAhZpbnZhbGlkIGN1cnJlbnQgcGVyaW9kBBJzdGFydFRyZWFzdXJ5VmFsdWUJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCCQEOZmFjdG9yeUFkZHJlc3MACQEYa2V5VHJlYXN1cnlWYWx1ZUJ5UGVyaW9kAQUNY3VycmVudFBlcmlvZAkBB3dyYXBFcnIBCQCsAgICImludmFsaWQgdHJlYXN1cnkgdmFsdWUgZm9yIHBlcmlvZCAJAKQDAQUNY3VycmVudFBlcmlvZAQNdHJlYXN1cnlWYWx1ZQkBB2Zyb21YMTgCCQERY2FsY1RyZWFzdXJ5VmFsdWUACQBsBgAKAAAFDHVzZHREZWNpbWFscwAAAAAFBERPV04EEXRyZWFzdXJ5VmFsdWVEaWZmCQBlAgUNdHJlYXN1cnlWYWx1ZQUSc3RhcnRUcmVhc3VyeVZhbHVlBBR0cmVhc3VyeVZhbHVlRGlmZlgxOAkBBXRvWDE4AgURdHJlYXN1cnlWYWx1ZURpZmYJAGwGAAoAAAUMdXNkdERlY2ltYWxzAAAAAAUERE9XTgQKcHdyQXNzZXRJZAkBD2dldFBvd2VyQXNzZXRJZAAEB3B3ckluZm8JARJnZXRBc3NldEluZm9PckZhaWwBBQpwd3JBc3NldElkBAtwd3JQcmljZVgxOAkAkQMCCQEPZ2V0QXNzZXRzUHJpY2VzAgUTcG9vbHNGYWN0b3J5QWRkcmVzcwkAzAgCCQDYBAEFCnB3ckFzc2V0SWQFA25pbAAABAhwd3JQcmljZQMJAL8CAgULcHdyUHJpY2VYMTgJALYCAQAACQEHZnJvbVgxOAIFC3B3clByaWNlWDE4CQBsBgAKAAAFDHVzZHREZWNpbWFscwAAAAAFBERPV04JAQh0aHJvd0VycgECEWludmFsaWQgUFdSIHByaWNlBA90cmVhc3VyeUFkZHJlc3MJARJnZXRUcmVhc3VyeUFkZHJlc3MABAlza2luVG90YWwJAQt2YWx1ZU9yRWxzZQIJAJoIAgkBFHBvd2VyQ29udHJhY3RBZGRyZXNzAAkBDGtleVNraW5Ub3RhbAEFD3RyZWFzdXJ5QWRkcmVzcwAABAl3eGRhb0luZm8JARJnZXRBc3NldEluZm9PckZhaWwBCQEMZ2V0THBBc3NldElkAAQMcHdyUmVtYWluaW5nCQBpAggFCXd4ZGFvSW5mbwhxdWFudGl0eQBkBAlwd3JBbW91bnQJAGQCBQlza2luVG90YWwFDHB3clJlbWFpbmluZwQMcHdyQW1vdW50WDE4CQEFdG9YMTgCBQlwd3JBbW91bnQJAGwGAAoAAAgFB3B3ckluZm8IZGVjaW1hbHMAAAAABQRET1dOBBpmYWN0b3J5QWRkcmVzc1d4QmFsYW5jZVgxOAkAkQMCCQERZ2V0QXNzZXRzQmFsYW5jZXMCCQEOZmFjdG9yeUFkZHJlc3MACQDMCAIJANgEAQUJd3hBc3NldElkBQNuaWwAAAQXZmFjdG9yeUFkZHJlc3NXeEJhbGFuY2UJAQdmcm9tWDE4AgUaZmFjdG9yeUFkZHJlc3NXeEJhbGFuY2VYMTgJAGwGAAoAAAUMdXNkdERlY2ltYWxzAAAAAAUERE9XTgQKd3hQcmljZVgxOAkAkQMCCQEPZ2V0QXNzZXRzUHJpY2VzAgUTcG9vbHNGYWN0b3J5QWRkcmVzcwkAzAgCCQDYBAEFCXd4QXNzZXRJZAUDbmlsAAAEB3d4UHJpY2UDCQC/AgIFCnd4UHJpY2VYMTgJALYCAQAACQEHZnJvbVgxOAIFCnd4UHJpY2VYMTgJAGwGAAoAAAUMdXNkdERlY2ltYWxzAAAAAAUERE9XTgkBCHRocm93RXJyAQIQaW52YWxpZCB3eCBwcmljZQQNd3hkYW9RdWFudGl0eQgFCXd4ZGFvSW5mbwhxdWFudGl0eQQQd3hkYW9RdWFudGl0eVgxOAkBBXRvWDE4AgUNd3hkYW9RdWFudGl0eQkAbAYACgAACAUJd3hkYW9JbmZvCGRlY2ltYWxzAAAAAAUERE9XTgQNd3hEYW9QcmljZVgxOAkAugICCQC3AgIJALcCAgULcHdyUHJpY2VYMTgJALwCAwkAuQICBRpmYWN0b3J5QWRkcmVzc1d4QmFsYW5jZVgxOAkAtgIBAGQFCnd4UHJpY2VYMTgFEHd4ZGFvUXVhbnRpdHlYMTgJALwCAwkAmAMBCQDMCAIFFHRyZWFzdXJ5VmFsdWVEaWZmWDE4CQDMCAIJALYCAQAABQNuaWwJALkCAgkAtgIBAAIFBm11bHQxOAkAuQICCQC2AgEACgUMcHdyQW1vdW50WDE4CQC2AgEAZAQKd3hEYW9QcmljZQkBB2Zyb21YMTgCBQ13eERhb1ByaWNlWDE4CQBsBgAKAAAFDHVzZHREZWNpbWFscwAAAAAFBERPV04EDXJld2FyZHNQcmljZXMJARJjYWxjUmV3YXJkc0FuZExvY2sCCQBsBgAKAAAIBQl3eGRhb0luZm8IZGVjaW1hbHMAAAAABQRET1dOBQR1bml0CQCUCgIJAMwIAgUKd3hEYW9QcmljZQkAzAgCBQ1yZXdhcmRzUHJpY2VzBQNuaWwJAMwIAgkAzAgCAgp3eERhb1ByaWNlCQDMCAIFCnd4RGFvUHJpY2UFA25pbAkAzAgCCQDMCAICCHB3clByaWNlCQDMCAIFCHB3clByaWNlBQNuaWwJAMwIAgkAzAgCAhdmYWN0b3J5QWRkcmVzc1d4QmFsYW5jZQkAzAgCBRdmYWN0b3J5QWRkcmVzc1d4QmFsYW5jZQUDbmlsCQDMCAIJAMwIAgIHd3hQcmljZQkAzAgCBQd3eFByaWNlBQNuaWwJAMwIAgkAzAgCAg13eGRhb1F1YW50aXR5CQDMCAIFDXd4ZGFvUXVhbnRpdHkFA25pbAkAzAgCCQDMCAICEXRyZWFzdXJ5VmFsdWVEaWZmCQDMCAIFEXRyZWFzdXJ5VmFsdWVEaWZmBQNuaWwJAMwIAgkAzAgCAglwd3JBbW91bnQJAMwIAgUJcHdyQW1vdW50BQNuaWwJAMwIAgkAzAgCAglza2luVG90YWwJAMwIAgUJc2tpblRvdGFsBQNuaWwJAMwIAgkAzAgCAgxwd3JSZW1haW5pbmcJAMwIAgUMcHdyUmVtYWluaW5nBQNuaWwFA25pbAYBaQEEc3dhcAIPY2FsbGVyUHVibGljS2V5BGFyZ3MEC2NoZWNrQ2FsbGVyCQELb25seUZhY3RvcnkBBQFpAwkAAAIFC2NoZWNrQ2FsbGVyBQtjaGVja0NhbGxlcgQLdXNlckFkZHJlc3MJAKcIAQUPY2FsbGVyUHVibGljS2V5BAdwYXltZW50AwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAQkAkQMCCAUBaQhwYXltZW50cwAACQEIdGhyb3dFcnIBAhUxIHBheW1lbnQgaXMgcmVxdWlyZWQEA2VycgkBB3dyYXBFcnIBAhhpbnZhbGlkIHBheW1lbnQgYXNzZXQgaWQEDnBheW1lbnRBc3NldElkAwkAAAIJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAggFB3BheW1lbnQHYXNzZXRJZAUDZXJyCQEMZ2V0THBBc3NldElkAAkBBXZhbHVlAQgFB3BheW1lbnQHYXNzZXRJZAkBCHRocm93RXJyAQUDZXJyBAhwd3JQcmljZQBkBAlwd3JBbW91bnQJAGkCCAUHcGF5bWVudAZhbW91bnQFCHB3clByaWNlBAdyZXdhcmRzCQESY2FsY1Jld2FyZHNBbmRMb2NrAggFB3BheW1lbnQGYW1vdW50BQt1c2VyQWRkcmVzcwMJAAACBQdyZXdhcmRzBQdyZXdhcmRzBBRhZGRpdGlvbmFsTG9ja1JvdW5kcwAABA5mYWN0b3J5QWN0aW9ucwkAzAgCCQD8BwQJAQ5mYWN0b3J5QWRkcmVzcwACIGNvbW1pdEFmdGVyU3RhcnRXaXRoTG9ja1JvdW5kRm9yCQDMCAIJAKUIAQkBFHBvd2VyQ29udHJhY3RBZGRyZXNzAAkAzAgCCQClCAEJARJnZXRUcmVhc3VyeUFkZHJlc3MACQDMCAIJAKUIAQULdXNlckFkZHJlc3MJAMwIAgUUYWRkaXRpb25hbExvY2tSb3VuZHMJAMwIAgkBD2dldFBvd2VyQXNzZXRJZAAJAMwIAgUJcHdyQW1vdW50BQNuaWwFA25pbAUDbmlsCQCUCgIJAMwIAgkBBEJ1cm4CBQ5wYXltZW50QXNzZXRJZAgFB3BheW1lbnQGYW1vdW50BQNuaWwFDmZhY3RvcnlBY3Rpb25zCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBDGxvY2tJbnRlcm5hbAQQdXNlckFkZHJlc3NCeXRlcwdhc3NldElkBmFtb3VudA1scEFzc2V0QW1vdW50BAtjaGVja0NhbGxlcgkBCG9ubHlUaGlzAQUBaQMJAAACBQtjaGVja0NhbGxlcgULY2hlY2tDYWxsZXIEC3VzZXJBZGRyZXNzCQEHQWRkcmVzcwEFEHVzZXJBZGRyZXNzQnl0ZXMEEWxvY2tHbG9iYWxDb3VudGVyCQELdmFsdWVPckVsc2UCCQCaCAIJAQ5mYWN0b3J5QWRkcmVzcwAJARRrZXlMb2NrR2xvYmFsQ291bnRlcgAAAAQMbG9ja0R1cmF0aW9uCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgkBDmZhY3RvcnlBZGRyZXNzAAkBD2tleUxvY2tEdXJhdGlvbgAJAQd3cmFwRXJyAQIVaW52YWxpZCBsb2NrIGR1cmF0aW9uBAlnZXRBc3NldHMJAPwHBAkBDmZhY3RvcnlBZGRyZXNzAAINdHJhbnNmZXJBc3NldAkAzAgCCAkBC2xvY2tBZGRyZXNzAAVieXRlcwkAzAgCBQZhbW91bnQJAMwIAgUHYXNzZXRJZAUDbmlsBQNuaWwDCQAAAgUJZ2V0QXNzZXRzBQlnZXRBc3NldHMEDmZhY3RvcnlBY3Rpb25zCQDMCAIJAPwHBAkBDmZhY3RvcnlBZGRyZXNzAAILc3RyaW5nRW50cnkJAMwIAgkBB2tleUxvY2sCBQt1c2VyQWRkcmVzcwURbG9ja0dsb2JhbENvdW50ZXIJAMwIAgkBCmxvY2tGb3JtYXQFBQZoZWlnaHQJAGQCBQZoZWlnaHQFDGxvY2tEdXJhdGlvbgUHYXNzZXRJZAUGYW1vdW50BQ1scEFzc2V0QW1vdW50BQNuaWwFA25pbAkAzAgCCQD8BwQJAQ5mYWN0b3J5QWRkcmVzcwACDGludGVnZXJFbnRyeQkAzAgCCQEUa2V5TG9ja0dsb2JhbENvdW50ZXIACQDMCAIJAGQCBRFsb2NrR2xvYmFsQ291bnRlcgABBQNuaWwFA25pbAUDbmlsCQCUCgIFA25pbAUOZmFjdG9yeUFjdGlvbnMJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEGdW5sb2NrAg9jYWxsZXJQdWJsaWNLZXkEYXJncwQLY2hlY2tDYWxsZXIJAQtvbmx5RmFjdG9yeQEFAWkDCQAAAgULY2hlY2tDYWxsZXIFC2NoZWNrQ2FsbGVyBAt1c2VyQWRkcmVzcwkApwgBBQ9jYWxsZXJQdWJsaWNLZXkKAQRmb2xkAgNhY2MEbmV4dAQHY291bnRlcgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQC2CQEFBG5leHQJAQd3cmFwRXJyAQIPaW52YWxpZCBjb3VudGVyBA0kdDAxNzYzOTE3ODQ4CQEJbG9ja1BhcnNlAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIJAQ5mYWN0b3J5QWRkcmVzcwAJAQdrZXlMb2NrAgULdXNlckFkZHJlc3MFB2NvdW50ZXIJAQd3cmFwRXJyAQkArAICAg5pbnZhbGlkIGxvY2s6IAkBB2tleUxvY2sCBQt1c2VyQWRkcmVzcwUHY291bnRlcgQEZnJvbQgFDSR0MDE3NjM5MTc4NDgCXzEEAnRvCAUNJHQwMTc2MzkxNzg0OAJfMgQHYXNzZXRJZAgFDSR0MDE3NjM5MTc4NDgCXzMEBmFtb3VudAgFDSR0MDE3NjM5MTc4NDgCXzQEBnJlc3VsdAMJAGYCBQZoZWlnaHQFAnRvCQDMCAIJAPwHBAkBC2xvY2tBZGRyZXNzAAINdHJhbnNmZXJBc3NldAkAzAgCCAULdXNlckFkZHJlc3MFYnl0ZXMJAMwIAgUGYW1vdW50CQDMCAIFB2Fzc2V0SWQFA25pbAUDbmlsCQDMCAIJAPwHBAkBDmZhY3RvcnlBZGRyZXNzAAILZGVsZXRlRW50cnkJAMwIAgkBB2tleUxvY2sCBQt1c2VyQWRkcmVzcwUHY291bnRlcgUDbmlsBQNuaWwFA25pbAkBCHRocm93RXJyAQIOaW52YWxpZCBoZWlnaHQJAM0IAgUDYWNjBQZyZXN1bHQEBnJlc3VsdAoAAiRsBQRhcmdzCgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQRmb2xkAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAzMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgkAlAoCBQNuaWwFBnJlc3VsdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQVwcmljZQIPY2FsbGVyUHVibGljS2V5BGFyZ3MEC2NoZWNrQ2FsbGVyCQELb25seUZhY3RvcnkBBQFpAwkAAAIFC2NoZWNrQ2FsbGVyBQtjaGVja0NhbGxlcgkAlAoCBQNuaWwICQEJY2FsY1ByaWNlAAJfMQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQpwcmljZURlYnVnAg9jYWxsZXJQdWJsaWNLZXkEYXJncwQLY2hlY2tDYWxsZXIJAQtvbmx5RmFjdG9yeQEFAWkDCQAAAgULY2hlY2tDYWxsZXIFC2NoZWNrQ2FsbGVyCQCUCgIFA25pbAgJAQljYWxjUHJpY2UAAl8yCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBEGdldFRyZWFzdXJ5VmFsdWUCD2NhbGxlclB1YmxpY0tleQRhcmdzBAtjaGVja0NhbGxlcgkBC29ubHlGYWN0b3J5AQUBaQMJAAACBQtjaGVja0NhbGxlcgULY2hlY2tDYWxsZXIEDXRyZWFzdXJ5VmFsdWUJAQdmcm9tWDE4AgkBEWNhbGNUcmVhc3VyeVZhbHVlAAkAbAYACgAABQx1c2R0RGVjaW1hbHMAAAAABQRET1dOCQCUCgIFA25pbAUNdHJlYXN1cnlWYWx1ZQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECdHgBBnZlcmlmeQADCQAAAgUHY2hhaW5JZAUIY2hhaW5JZFQGCQAAAgUHY2hhaW5JZAUIY2hhaW5JZFKLtctf", "height": 4060412, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 7 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let a = take(drop(this.bytes, 1), 1)
5+
6+let b = base58'2R'
7+
8+let c = base58'2T'
9+
10+let d = base58'2W'
11+
12+let e = "__"
13+
14+let f = "WAVES"
15+
16+let g = "wxdao_calculator.ride"
17+
18+let h = 100000000
19+
20+let i = toBigInt(1000000000000000000)
21+
22+let j = 8
23+
24+let k = 6
25+
26+func l (m,n) = fraction(toBigInt(m), i, toBigInt(n))
27+
28+
29+func o (p,q) = toInt(fraction(p, toBigInt(q), i))
30+
31+
32+func r (s) = ((g + ": ") + s)
33+
34+
35+func t (s) = throw(r(s))
36+
37+
38+func u () = "%s__factoryAddress"
39+
40+
41+func v () = valueOrErrorMessage({
42+ let w = getString(this, u())
43+ if ($isInstanceOf(w, "String"))
44+ then {
45+ let s = w
46+ addressFromString(s)
47+ }
48+ else if ($isInstanceOf(w, "Unit"))
49+ then unit
50+ else throw("Match error")
51+ }, r("invalid factory address"))
52+
53+
54+func x (y,z) = if ((y.caller == z))
55+ then true
56+ else t("permission denied")
57+
58+
59+func A (y) = x(y, this)
60+
61+
62+func B (y) = x(y, v())
63+
64+
65+let C = if ((a == d))
66+ then base58'Atqv59EYzjFGuitKVnMRk6H8FukjoV3ktPorbEys25on'
67+ else if ((a == c))
68+ then base58'EMAMLxDnv3xiz8RXg8Btj33jcEw3wLczL3JKYYmuubpc'
69+ else t("invalid chain id")
70+
71+func D () = makeString(["%s", "currentPeriod"], e)
72+
73+
74+func E (F) = makeString(["%s%d", "startHeight", toString(F)], e)
75+
76+
77+func G () = makeString(["%s", "periodLength"], e)
78+
79+
80+func H (F) = makeString(["%s%d", "treasuryValue", toString(F)], e)
81+
82+
83+func I () = makeString(["%s", "lockGlobalCounter"], e)
84+
85+
86+func J () = makeString(["%s", "lockDuration"], e)
87+
88+
89+func K (L,M) = makeString(["%s%s%d", "lock", toString(L), toString(M)], e)
90+
91+
92+func N (O) = ("skin_total_" + toString(O))
93+
94+
95+func P () = "%s__powerConfigAddress"
96+
97+
98+func Q () = valueOrErrorMessage({
99+ let w = getString(v(), P())
100+ if ($isInstanceOf(w, "String"))
101+ then {
102+ let s = w
103+ addressFromString(s)
104+ }
105+ else if ($isInstanceOf(w, "Unit"))
106+ then unit
107+ else throw("Match error")
108+ }, r("invalid power config address"))
109+
110+
111+func R () = "powerAssetId"
112+
113+
114+func S () = fromBase58String(valueOrErrorMessage(getString(Q(), R()), r("invalid power asset id")))
115+
116+
117+func T () = "%s__powerContractAddress"
118+
119+
120+func U () = valueOrErrorMessage({
121+ let w = getString(v(), T())
122+ if ($isInstanceOf(w, "String"))
123+ then {
124+ let s = w
125+ addressFromString(s)
126+ }
127+ else if ($isInstanceOf(w, "Unit"))
128+ then unit
129+ else throw("Match error")
130+ }, r("invalid power contract address"))
131+
132+
133+func V () = "%s__lockAddress"
134+
135+
136+func W () = valueOrErrorMessage({
137+ let w = getString(v(), V())
138+ if ($isInstanceOf(w, "String"))
139+ then {
140+ let s = w
141+ addressFromString(s)
142+ }
143+ else if ($isInstanceOf(w, "Unit"))
144+ then unit
145+ else throw("Match error")
146+ }, r("invalid lock contract address"))
147+
148+
149+func X () = "%s__poolsFactoryAddress"
150+
151+
152+func Y () = valueOrErrorMessage({
153+ let w = getString(v(), X())
154+ if ($isInstanceOf(w, "String"))
155+ then {
156+ let s = w
157+ addressFromString(s)
158+ }
159+ else if ($isInstanceOf(w, "Unit"))
160+ then unit
161+ else throw("Match error")
162+ }, r("invalid pools factory address"))
163+
164+
165+func Z () = "%s__treasuryAddress"
166+
167+
168+func aa () = valueOrErrorMessage({
169+ let w = getString(v(), Z())
170+ if ($isInstanceOf(w, "String"))
171+ then {
172+ let s = w
173+ addressFromString(s)
174+ }
175+ else if ($isInstanceOf(w, "Unit"))
176+ then unit
177+ else throw("Match error")
178+ }, r("invalid treasury address"))
179+
180+
181+func ab () = "%s__assets"
182+
183+
184+func ac () = valueOrErrorMessage(getString(v(), ab()), r("invalid assets"))
185+
186+
187+func ad () = "%s__lpAssetId"
188+
189+
190+func ae () = fromBase58String(valueOrErrorMessage(getString(v(), ad()), r("invalid lp asset id")))
191+
192+
193+func af (ag) = valueOrErrorMessage(assetInfo(ag), r("invalid asset info"))
194+
195+
196+func ah (ai,aj,ag,ak,al) = makeString(["%d%d%s%d%d", toString(ai), toString(aj), toBase58String(ag), toString(ak), toString(al)], e)
197+
198+
199+func am (s) = {
200+ let an = split(s, e)
201+ $Tuple4(valueOrErrorMessage(parseInt(an[1]), r("error during processing lock start height")), valueOrErrorMessage(parseInt(an[2]), r("error during processing lock end height")), fromBase58String(an[3]), valueOrErrorMessage(parseInt(an[4]), r("error during processing lock amount")))
202+ }
203+
204+
205+func ao (ap,aq) = {
206+ func ar (as,at) = {
207+ let au = if ((at == f))
208+ then l(wavesBalance(ap).available, pow(10, 0, j, 0, 0, DOWN))
209+ else {
210+ let ag = fromBase58String(at)
211+ let av = af(ag).decimals
212+ l(assetBalance(ap, ag), pow(10, 0, av, 0, 0, DOWN))
213+ }
214+ (as :+ au)
215+ }
216+
217+ let aw = aq
218+ let ax = size(aw)
219+ let ay = nil
220+ func az (aA,aB) = if ((aB >= ax))
221+ then aA
222+ else ar(aA, aw[aB])
223+
224+ func aC (aA,aB) = if ((aB >= ax))
225+ then aA
226+ else throw("List size exceeds 10")
227+
228+ aC(az(az(az(az(az(az(az(az(az(az(ay, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
229+ }
230+
231+
232+func aD (aE,aq) = if ((a == d))
233+ then {
234+ let aF = "3PKfrupEydU2nZAghVjZAfvCwMBkzuR1F52"
235+ let aG = parseBigIntValue({
236+ let aH = invoke(aE, "getPrice", [aF], nil)
237+ if ($isInstanceOf(aH, "String"))
238+ then aH
239+ else throw(($getType(aH) + " couldn't be cast to String"))
240+ })
241+ let aI = "3PPZWgFNRKHLvM51pwS934C8VZ7d2F4Z58g"
242+ let aJ = parseBigIntValue({
243+ let aH = invoke(aE, "getPrice", [aI], nil)
244+ if ($isInstanceOf(aH, "String"))
245+ then aH
246+ else throw(($getType(aH) + " couldn't be cast to String"))
247+ })
248+ let aK = fraction(aG, i, aJ)
249+ func ar (as,aL) = {
250+ let aM = {
251+ let w = aL
252+ if (("2thsACuHmzDMuNezPM32wg9a3BwUzBWDeSKakgz3cw21" == w))
253+ then {
254+ let aN = "3PDi7Qq8pLQYvtKyTfQuqqPUWyhoYbU957t"
255+ let aO = parseBigIntValue({
256+ let aH = invoke(aE, "getPrice", [aN], nil)
257+ if ($isInstanceOf(aH, "String"))
258+ then aH
259+ else throw(($getType(aH) + " couldn't be cast to String"))
260+ })
261+ fraction(aO, aG, i)
262+ }
263+ else if (("Atqv59EYzjFGuitKVnMRk6H8FukjoV3ktPorbEys25on" == w))
264+ then {
265+ let aP = "3PFzaH2ghpwANHFgjeva83N1yxzErELx2eh"
266+ let aQ = parseBigIntValue({
267+ let aH = invoke(aE, "getPrice", [aP], nil)
268+ if ($isInstanceOf(aH, "String"))
269+ then aH
270+ else throw(($getType(aH) + " couldn't be cast to String"))
271+ })
272+ fraction(aQ, aG, i)
273+ }
274+ else if (("34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ" == w))
275+ then {
276+ let aR = "3PKMVZ7kQeaREajYi8Yc25Ro6mcNw5D6QSa"
277+ let aS = parseBigIntValue({
278+ let aH = invoke(aE, "getPrice", [aR], nil)
279+ if ($isInstanceOf(aH, "String"))
280+ then aH
281+ else throw(($getType(aH) + " couldn't be cast to String"))
282+ })
283+ fraction(aG, i, aS)
284+ }
285+ else if (("6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ" == w))
286+ then {
287+ let aT = "3P3g3eipfG2NZKKQE8DZXt2E9tRJqii9jcX"
288+ let aU = parseBigIntValue({
289+ let aH = invoke(aE, "getPrice", [aT], nil)
290+ if ($isInstanceOf(aH, "String"))
291+ then aH
292+ else throw(($getType(aH) + " couldn't be cast to String"))
293+ })
294+ fraction(aG, i, aU)
295+ }
296+ else if (("HZk1mbfuJpmxU1Fs4AX5MWLVYtctsNcg6e2C6VKqK8zk" == w))
297+ then {
298+ let aV = "3P94wvu5gA7VhjPgAB3twaeqdwHCwNK2vsn"
299+ let aW = parseBigIntValue({
300+ let aH = invoke(aE, "getPrice", [aV], nil)
301+ if ($isInstanceOf(aH, "String"))
302+ then aH
303+ else throw(($getType(aH) + " couldn't be cast to String"))
304+ })
305+ fraction(aW, aK, i)
306+ }
307+ else if (("474jTeYx2r2Va35794tCScAXWJG9hU2HcgxzMowaZUnu" == w))
308+ then {
309+ let aX = "3P3XGTN6s292g9iwYhs3TEqJqHiffQYojuE"
310+ let aY = parseBigIntValue({
311+ let aH = invoke(aE, "getPrice", [aX], nil)
312+ if ($isInstanceOf(aH, "String"))
313+ then aH
314+ else throw(($getType(aH) + " couldn't be cast to String"))
315+ })
316+ fraction(aY, aG, i)
317+ }
318+ else if (("8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS" == w))
319+ then {
320+ let aZ = "3PCBWDTA6jrFswd7gQgaE3Xk7gLM5RKofvp"
321+ let ba = parseBigIntValue({
322+ let aH = invoke(aE, "getPrice", [aZ], nil)
323+ if ($isInstanceOf(aH, "String"))
324+ then aH
325+ else throw(($getType(aH) + " couldn't be cast to String"))
326+ })
327+ fraction(ba, aK, i)
328+ }
329+ else t("invalid asset id")
330+ }
331+ (as :+ aM)
332+ }
333+
334+ let aw = aq
335+ let ax = size(aw)
336+ let ay = nil
337+ func az (aA,aB) = if ((aB >= ax))
338+ then aA
339+ else ar(aA, aw[aB])
340+
341+ func aC (aA,aB) = if ((aB >= ax))
342+ then aA
343+ else throw("List size exceeds 10")
344+
345+ aC(az(az(az(az(az(az(az(az(az(az(ay, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
346+ }
347+ else if ((a == c))
348+ then {
349+ func ar (as,aL) = {
350+ let aM = {
351+ let w = aL
352+ if (("EMAMLxDnv3xiz8RXg8Btj33jcEw3wLczL3JKYYmuubpc" == w))
353+ then {
354+ let bb = "3MrULQRLc52GWrJF1tMcAm4M78fPe57o9Kt"
355+ let bc = parseBigIntValue({
356+ let aH = invoke(aE, "getPrice", [bb], nil)
357+ if ($isInstanceOf(aH, "String"))
358+ then aH
359+ else throw(($getType(aH) + " couldn't be cast to String"))
360+ })
361+ bc
362+ }
363+ else if (("A7Ksh7fXyqm1KhKAiK3bAB2aiPSitQQF6v1pyu9SS3FR" == w))
364+ then {
365+ let bd = "3MzKSdTH2jFbypLsoNfrH7QgkzSbx3EYwCA"
366+ let be = parseBigIntValue({
367+ let aH = invoke(aE, "getPrice", [bd], nil)
368+ if ($isInstanceOf(aH, "String"))
369+ then aH
370+ else throw(($getType(aH) + " couldn't be cast to String"))
371+ })
372+ be
373+ }
374+ else if (("8Q6SE2ANebufw8JuPjJVRjZD6drD8ihjNjM8xaGUSfdR" == w))
375+ then {
376+ let aM = l(150000000, pow(10, 0, k, 0, 0, DOWN))
377+ aM
378+ }
379+ else t("invalid asset id")
380+ }
381+ (as :+ aM)
382+ }
383+
384+ let aw = aq
385+ let ax = size(aw)
386+ let ay = nil
387+ func az (aA,aB) = if ((aB >= ax))
388+ then aA
389+ else ar(aA, aw[aB])
390+
391+ func aC (aA,aB) = if ((aB >= ax))
392+ then aA
393+ else throw("List size exceeds 10")
394+
395+ aC(az(az(az(az(az(az(az(az(az(az(ay, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
396+ }
397+ else t("invalid chain id")
398+
399+
400+func bf () = {
401+ let O = aa()
402+ let aE = Y()
403+ let bg = split(ac(), e)
404+ let bh = ao(O, bg)
405+ let bi = aD(aE, bg)
406+ func bj (as,at) = {
407+ let ag = fromBase58String(at)
408+ let bk = valueOrErrorMessage(indexOf(bg, at), r("invalid asset id"))
409+ let au = bh[bk]
410+ let aM = bi[bk]
411+ let bl = fraction(au, aM, i)
412+ (as + bl)
413+ }
414+
415+ let bm = {
416+ let aw = bg
417+ let ax = size(aw)
418+ let ay = toBigInt(0)
419+ func az (aA,aB) = if ((aB >= ax))
420+ then aA
421+ else bj(aA, aw[aB])
422+
423+ func aC (aA,aB) = if ((aB >= ax))
424+ then aA
425+ else throw("List size exceeds 10")
426+
427+ aC(az(az(az(az(az(az(az(az(az(az(ay, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
428+ }
429+ bm
430+ }
431+
432+
433+func bn (bo,bp) = {
434+ let bg = split(ac(), e)
435+ let bq = af(ae()).quantity
436+ if ((bq == bq))
437+ then {
438+ let bh = ao(v(), bg)
439+ func ar (as,at) = {
440+ let ag = fromBase58String(at)
441+ let bk = valueOrErrorMessage(indexOf(bg, at), r("invalid asset balance"))
442+ let av = af(ag).decimals
443+ let au = o(bh[bk], pow(10, 0, av, 0, 0, DOWN))
444+ let ak = fraction(au, bo, bq)
445+ if ((ak > 0))
446+ then {
447+ let br = if ((bp == unit))
448+ then unit
449+ else invoke(this, "lockInternal", [value(bp).bytes, ag, ak, bo], nil)
450+ if ((br == br))
451+ then $Tuple2((as._1 :+ ag), (as._2 :+ ak))
452+ else throw("Strict value is not equal to itself.")
453+ }
454+ else as
455+ }
456+
457+ let aw = bg
458+ let ax = size(aw)
459+ let ay = $Tuple2(nil, nil)
460+ func az (aA,aB) = if ((aB >= ax))
461+ then aA
462+ else ar(aA, aw[aB])
463+
464+ func aC (aA,aB) = if ((aB >= ax))
465+ then aA
466+ else throw("List size exceeds 6")
467+
468+ aC(az(az(az(az(az(az(ay, 0), 1), 2), 3), 4), 5), 6)
469+ }
470+ else throw("Strict value is not equal to itself.")
471+ }
472+
473+
474+func bs () = {
475+ let aE = Y()
476+ let bt = valueOrErrorMessage(getInteger(v(), D()), r("invalid current period"))
477+ let bu = valueOrErrorMessage(getInteger(v(), H(bt)), r(("invalid treasury value for period " + toString(bt))))
478+ let bm = o(bf(), pow(10, 0, k, 0, 0, DOWN))
479+ let bv = (bm - bu)
480+ let bw = l(bv, pow(10, 0, k, 0, 0, DOWN))
481+ let bx = S()
482+ let by = af(bx)
483+ let bz = aD(aE, [toBase58String(bx)])[0]
484+ let bA = if ((bz > toBigInt(0)))
485+ then o(bz, pow(10, 0, k, 0, 0, DOWN))
486+ else t("invalid PWR price")
487+ let O = aa()
488+ let bB = valueOrElse(getInteger(U(), N(O)), 0)
489+ let bC = af(ae())
490+ let bD = (bC.quantity / 100)
491+ let bE = (bB + bD)
492+ let bF = l(bE, pow(10, 0, by.decimals, 0, 0, DOWN))
493+ let bG = ao(v(), [toBase58String(C)])[0]
494+ let bH = o(bG, pow(10, 0, k, 0, 0, DOWN))
495+ let bI = aD(aE, [toBase58String(C)])[0]
496+ let bJ = if ((bI > toBigInt(0)))
497+ then o(bI, pow(10, 0, k, 0, 0, DOWN))
498+ else t("invalid wx price")
499+ let bq = bC.quantity
500+ let bK = l(bq, pow(10, 0, bC.decimals, 0, 0, DOWN))
501+ let bL = (((bz + fraction((bG * toBigInt(100)), bI, bK)) + fraction(max([bw, toBigInt(0)]), (toBigInt(2) * i), (toBigInt(10) * bF))) / toBigInt(100))
502+ let bM = o(bL, pow(10, 0, k, 0, 0, DOWN))
503+ let bN = bn(pow(10, 0, bC.decimals, 0, 0, DOWN), unit)
504+ $Tuple2([bM, bN], [["wxDaoPrice", bM], ["pwrPrice", bA], ["factoryAddressWxBalance", bH], ["wxPrice", bJ], ["wxdaoQuantity", bq], ["treasuryValueDiff", bv], ["pwrAmount", bE], ["skinTotal", bB], ["pwrRemaining", bD]])
505+ }
506+
507+
508+@Callable(y)
509+func swap (bO,bP) = {
510+ let bQ = B(y)
511+ if ((bQ == bQ))
512+ then {
513+ let L = addressFromPublicKey(bO)
514+ let bR = if ((size(y.payments) == 1))
515+ then y.payments[0]
516+ else t("1 payment is required")
517+ let bS = r("invalid payment asset id")
518+ let bT = if ((valueOrErrorMessage(bR.assetId, bS) == ae()))
519+ then value(bR.assetId)
520+ else t(bS)
521+ let bA = 100
522+ let bE = (bR.amount / bA)
523+ let bU = bn(bR.amount, L)
524+ if ((bU == bU))
525+ then {
526+ let bV = 0
527+ let bW = [invoke(v(), "commitAfterStartWithLockRoundFor", [toString(U()), toString(aa()), toString(L), bV, S(), bE], nil)]
528+ $Tuple2([Burn(bT, bR.amount)], bW)
529+ }
530+ else throw("Strict value is not equal to itself.")
531+ }
532+ else throw("Strict value is not equal to itself.")
533+ }
534+
535+
536+
537+@Callable(y)
538+func lockInternal (bX,ag,ak,al) = {
539+ let bQ = A(y)
540+ if ((bQ == bQ))
541+ then {
542+ let L = Address(bX)
543+ let bY = valueOrElse(getInteger(v(), I()), 0)
544+ let bZ = valueOrErrorMessage(getInteger(v(), J()), r("invalid lock duration"))
545+ let ca = invoke(v(), "transferAsset", [W().bytes, ak, ag], nil)
546+ if ((ca == ca))
547+ then {
548+ let bW = [invoke(v(), "stringEntry", [K(L, bY), ah(height, (height + bZ), ag, ak, al)], nil), invoke(v(), "integerEntry", [I(), (bY + 1)], nil)]
549+ $Tuple2(nil, bW)
550+ }
551+ else throw("Strict value is not equal to itself.")
552+ }
553+ else throw("Strict value is not equal to itself.")
554+ }
555+
556+
557+
558+@Callable(y)
559+func unlock (bO,bP) = {
560+ let bQ = B(y)
561+ if ((bQ == bQ))
562+ then {
563+ let L = addressFromPublicKey(bO)
564+ func cb (as,cc) = {
565+ let M = valueOrErrorMessage(parseInt(cc), r("invalid counter"))
566+ let cd = am(valueOrErrorMessage(getString(v(), K(L, M)), r(("invalid lock: " + K(L, M)))))
567+ let ai = cd._1
568+ let aj = cd._2
569+ let ag = cd._3
570+ let ak = cd._4
571+ let ce = if ((height > aj))
572+ then [invoke(W(), "transferAsset", [L.bytes, ak, ag], nil), invoke(v(), "deleteEntry", [K(L, M)], nil)]
573+ else t("invalid height")
574+ (as :+ ce)
575+ }
576+
577+ let ce = {
578+ let aw = bP
579+ let ax = size(aw)
580+ let ay = nil
581+ func az (aA,aB) = if ((aB >= ax))
582+ then aA
583+ else cb(aA, aw[aB])
584+
585+ func aC (aA,aB) = if ((aB >= ax))
586+ then aA
587+ else throw("List size exceeds 30")
588+
589+ aC(az(az(az(az(az(az(az(az(az(az(az(az(az(az(az(az(az(az(az(az(az(az(az(az(az(az(az(az(az(az(ay, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30)
590+ }
591+ $Tuple2(nil, ce)
592+ }
593+ else throw("Strict value is not equal to itself.")
594+ }
595+
596+
597+
598+@Callable(y)
599+func price (bO,bP) = {
600+ let bQ = B(y)
601+ if ((bQ == bQ))
602+ then $Tuple2(nil, bs()._1)
603+ else throw("Strict value is not equal to itself.")
604+ }
605+
606+
607+
608+@Callable(y)
609+func priceDebug (bO,bP) = {
610+ let bQ = B(y)
611+ if ((bQ == bQ))
612+ then $Tuple2(nil, bs()._2)
613+ else throw("Strict value is not equal to itself.")
614+ }
615+
616+
617+
618+@Callable(y)
619+func getTreasuryValue (bO,bP) = {
620+ let bQ = B(y)
621+ if ((bQ == bQ))
622+ then {
623+ let bm = o(bf(), pow(10, 0, k, 0, 0, DOWN))
624+ $Tuple2(nil, bm)
625+ }
626+ else throw("Strict value is not equal to itself.")
627+ }
628+
629+
630+@Verifier(cf)
631+func cg () = if ((a == c))
632+ then true
633+ else (a == b)
634+

github/deemru/w8io/873ac7e 
44.29 ms