tx · 3KEMXjcq4QrWhPX9QLNfcYHcMo3TGpFxAeXf93BYX2dd

3P7VznyyJc91e2SXpWTgc9Zp2d9XWHdwLJ1:  -0.02300000 Waves

2023.12.30 21:02 [3975701] smart account 3P7VznyyJc91e2SXpWTgc9Zp2d9XWHdwLJ1 > SELF 0.00000000 Waves

{ "type": 13, "id": "3KEMXjcq4QrWhPX9QLNfcYHcMo3TGpFxAeXf93BYX2dd", "fee": 2300000, "feeAssetId": null, "timestamp": 1703959382980, "version": 2, "chainId": 87, "sender": "3P7VznyyJc91e2SXpWTgc9Zp2d9XWHdwLJ1", "senderPublicKey": "DiCe6VGgddpG7YfGhT4XXsPuQtiyzaV68EZUB8GNT3hs", "proofs": [ "vFkPsMC9H4DHdBkQnRFPc4AGzViK7FmMJSUsKxtbwT4z5cFsM3ZrpAKnHHqYUXDpgGGa4Jr6aUSN461ztgo9h8E" ], "script": "base64:BgIHCAISAwoBCG0AA3JleAIjM1BHRkh6VkdUNE5UaWd3Q0tQMU5jd29Ya29kVlp3dkJ1dVUADXN3b3BmaV9vcmFjbGUCIzNQRWJxVmlFUkNvS25tY1NVTGg2bjJhaU12VWRTUWRDc29tAAhwbF9wcm94eQIjM1BKRVNWRFRIUnY4aTgzWGJtSHJSR1FoRGM1cmdSM2F6UXMABG9yY2wCIzNQOGQxRTFCTEtvRDUyeTNiUUoxYkRUZDJURDFncGFMbjl0AA53eF9mYWN0b3J5X3N0cgIjM1BDdUhzVFU1OFdLaENxb3RiY1N3QUJ2ZFB6cXFWQWJiVHYAC3d4X3N3YXBfc3RyAiMzUDY4ek5pdWZzdTF2aVpwdTFhWTNjZGFoUlJLY3ZWNU45MwAKd3hfZmFjdG9yeQkBB0FkZHJlc3MBCQDZBAEFDnd4X2ZhY3Rvcnlfc3RyAAd3eF9zd2FwCQEHQWRkcmVzcwEJANkEAQULd3hfc3dhcF9zdHIACktfYW1fYXNfaWQCDyVzX19hbW91bnRBc3NldAAKS19wcl9hc19pZAIOJXNfX3ByaWNlQXNzZXQABUtfYW1wAgclc19fYW1wAAdLX3NoYXJlAkQlcyVzX19zaGFyZUFzc2V0QmFsYW5jZV9fWWlOYm9mRnpDMTdqRUhIQ013clJjcHk5TXJyamFiTU1MWnhnOGc1eG1mNwAIS19zdGFrZWQCGiVzJXNfX3N0YWtlZEJhbGFuY2VfX1dBVkVTAAlLX2FfYXNfaWQCCkFfYXNzZXRfaWQACUtfYl9hc19pZAIKQl9hc3NldF9pZAAKS19hX2FzX2JhbAIPQV9hc3NldF9iYWxhbmNlAApLX2JfYXNfYmFsAg9CX2Fzc2V0X2JhbGFuY2UABUtfZmVlAgpjb21taXNzaW9uAAtLX2Fzc2V0X2lkcwIPc3RhdGljX3Rva2VuSWRzAAlLX2ZlZV9wdXoCCnN0YXRpY19mZWUACktfZmVlVG9rZW4CD3N0YXRpY19mZWVUb2tlbgAWS190bXBfcmVibGFuY2VBc3NldElkcwIVdG1wX3JlYmFsYW5jZUFzc2V0SWRzABZLX3JlYmFsYW5jZV9pblByb2dyZXNzAhRyZWJhbGFuY2VfaW5Qcm9ncmVzcwAVS19yZWJhbGFuY2Vfc3RlcHNEb25lAhNyZWJhbGFuY2Vfc3RlcHNEb25lABdLX3JlYmFsYW5jZV9zdGVwc0Ftb3VudAIVcmViYWxhbmNlX3N0ZXBzQW1vdW50ABdLX3JlYmFsYW5jZV9hc3NldERlbHRhcwIVcmViYWxhbmNlX2Fzc2V0RGVsdGFzABtLX3JlYmFsYW5jZV9hdHRhY2hlZFBheW1lbnQCGnJlYmFsYW5jZV9hdHRhY2hlZFBheW1lbnRfAAt0c25fc3dhcHBlcgIjM1BLejVqbkpMb2hGMkdqU2hRN2JHNUg0QmViZG9BOTh6WjIAEHRzbl9zd2FwcGVyX2FkZHIJAQdBZGRyZXNzAQkA2QQBBQt0c25fc3dhcHBlcgAFa19mZWUCBWtfZmVlAAhrX3JlYmF0ZQIIa19yZWJhdGUAFWtfZmVlVG9TdGFrZXJzUGVyY2VudAIVa19mZWVUb1N0YWtlcnNQZXJjZW50AA9rX2V4Y2Vzc0JhbGFuY2UCD2tfZXhjZXNzQmFsYW5jZQANa19mcmVlQmFsYW5jZQINa19mcmVlQmFsYW5jZQAUa19tYXhTcG90VXRpbGl6YXRpb24CFGtfbWF4U3BvdFV0aWxpemF0aW9uAA1rX3RvdGFsU3VwcGx5Ag1rX3RvdGFsU3VwcGx5AAZrX3JhdGUCBmtfcmF0ZQAIa19ic0FzdFICCGtfYnNBc3RSAAhrX2JzQXN0VwIIa19ic0FzdFcACGtfcXRBc3RSAghrX3F0QXN0UgAIa19xdEFzdFcCCGtfcXRBc3RXABBrX21heFByaWNlSW1wYWN0AhBrX21heFByaWNlSW1wYWN0ABBrX21heFByaWNlU3ByZWFkAhBrX21heFByaWNlU3ByZWFkABNrX3RvdGFsUG9zaXRpb25TaXplAhNrX3RvdGFsUG9zaXRpb25TaXplAAxrX2Jhc2VPcmFjbGUCDGtfYmFzZU9yYWNsZQAQa19tYXhPcmFjbGVEZWxheQIQa19tYXhPcmFjbGVEZWxheQAJa19zdG9yYWdlAgdTVE9SQUdFAAhrX2Fzc2V0cwIGQVNTRVRTAAhrX3N0YXR1cwIGU1RBVFVTAAhrX3BhdXNlZAIGUEFVU0VEABBrX2Fzc2V0X2JhbGFuY2VzAg5BU1NFVF9CQUxBTkNFUwAPa19hc3NldF93ZWlnaHRzAg1BU1NFVF9XRUlHSFRTAAhrX2xwX2ZlZQIGTFBfRkVFAA5rX3Byb3RvY29sX2ZlZQIMUFJPVE9DT0xfRkVFAAtrX3ByZWNpc2lvbgIJUFJFQ0lTSU9OABJrX3NpZ21hX2ZlZV9wZXJfbHACEFNJR01BX0ZFRV9QRVJfTFAAF2tfdXNlcl9zaWdtYV9mZWVfcGVyX2xwAhVVU0VSX1NJR01BX0ZFRV9QRVJfTFAACWtfdXNlcl9scAIHVVNFUl9MUAAKa190b3RhbF9scAIIVE9UQUxfTFAADmtfdXNlcl9wcm9maXRzAgxVU0VSX1BST0ZJVFMBCmdldF9kb21haW4BC3Bvb2xBZGRyZXNzBAckbWF0Y2gwBQtwb29sQWRkcmVzcwMJAAACAiMzUDR1QTVldG5aaTRBbUJhYktpbnEyYk1pV1U4S2NuSFpkSAUHJG1hdGNoMAIBMQIBMAEJa19wbFRva2VuAghhc3NldF9pZAZkb21haW4JAKwCAgkArAICCQCsAgICCXNldHVwX3BsXwUIYXNzZXRfaWQCAV8FBmRvbWFpbgEQa190b3RhbF9zdXBwbGllZAEIYXNzZXRfaWQJAKwCAgIPdG90YWxfc3VwcGxpZWRfBQhhc3NldF9pZAEHa19zUmF0ZQEIYXNzZXRfaWQJAKwCAgUIYXNzZXRfaWQCBl9zUmF0ZQEQa190b3RhbF9ib3Jyb3dlZAEIYXNzZXRfaWQJAKwCAgIPdG90YWxfYm9ycm93ZWRfBQhhc3NldF9pZAEHa19iUmF0ZQEIYXNzZXRfaWQJAKwCAgUIYXNzZXRfaWQCBl9iUmF0ZQELa19tYXhTdXBwbHkBCGFzc2V0X2lkCQCsAgICEHNldHVwX21heFN1cHBseV8FCGFzc2V0X2lkABBrX2xhc3RSYXRlSGVpZ2h0Ag5sYXN0UmF0ZUhlaWdodAEQZ2V0UHV6QmFsYW5jZUtleQEHYXNzZXRJZAkArAICCQCsAgICB2dsb2JhbF8FB2Fzc2V0SWQCCF9iYWxhbmNlAQ9nZXRQdXpXZWlnaHRLZXkBB2Fzc2V0SWQJAKwCAgkArAICAgdzdGF0aWNfBQdhc3NldElkAgdfd2VpZ2h0AQdnZXRCUEFLAQdhZGRyZXNzCQCsAgIFB2FkZHJlc3MCEF9zdGF0aWNBc3NldHNJZHMBDHRyeUdldFN0cmluZwIDa2V5B2FkZHJlc3MEByRtYXRjaDAJAJ0IAgUHYWRkcmVzcwUDa2V5AwkAAQIFByRtYXRjaDACBlN0cmluZwQBYgUHJG1hdGNoMAUBYgIAAQp0cnlHZXRCb29sAgNrZXkHYWRkcmVzcwQHJG1hdGNoMAkAmwgCBQdhZGRyZXNzBQNrZXkDCQABAgUHJG1hdGNoMAIHQm9vbGVhbgQBYgUHJG1hdGNoMAUBYgcBDXRyeUdldEludGVnZXICA2tleQdhZGRyZXNzBAckbWF0Y2gwCQCaCAIFB2FkZHJlc3MFA2tleQMJAAECBQckbWF0Y2gwAgNJbnQEAWIFByRtYXRjaDAFAWIAAAEUdHJ5R2V0SW50ZWdlcldpdGhEZWYDA2tleQdhZGRyZXNzA2RlZgQHJG1hdGNoMAkAmggCBQdhZGRyZXNzBQNrZXkDCQABAgUHJG1hdGNoMAIDSW50BAFiBQckbWF0Y2gwBQFiBQNkZWYBEGdldFd4RGVmYXVsdEZlZXMABAdwb29sRmVlCQEUdHJ5R2V0SW50ZWdlcldpdGhEZWYDAgslc19fcG9vbEZlZQUHd3hfc3dhcADAmgwEC3Byb3RvY29sRmVlCQEUdHJ5R2V0SW50ZWdlcldpdGhEZWYDAg8lc19fcHJvdG9jb2xGZWUFB3d4X3N3YXAAwJoMCQCUCgIJAKQDAQUHcG9vbEZlZQkApAMBBQtwcm90b2NvbEZlZQENZ2V0V3hQb29sRmVlcwEHYWRkcmVzcwQHZmVlc0tleQkArAICAg8lcyVzX19zd2FwRmVlX18FB2FkZHJlc3MEBGZlZXMJAQx0cnlHZXRTdHJpbmcCBQdmZWVzS2V5BQp3eF9mYWN0b3J5AwkAAAIFBGZlZXMCAAkBEGdldFd4RGVmYXVsdEZlZXMABAxzcGxpdHRlZEZlZXMJALUJAgUEZmVlcwICX18JAJQKAgkAkQMCBQxzcGxpdHRlZEZlZXMAAQkAkQMCBQxzcGxpdHRlZEZlZXMAAgEPZ2V0QXNzZXRCYWxhbmNlAgdhZGRyZXNzB2Fzc2V0SWQEAWEJAPAHAgUHYWRkcmVzcwUHYXNzZXRJZAUBYQEPZ2V0V2F2ZXNCYWxhbmNlAQdhZGRyZXNzBAF3CAkA7wcBBQdhZGRyZXNzCWF2YWlsYWJsZQUBdwEKZ2V0QmFsYW5jZQIGcmVzdWx0B2Fzc2V0SWQEB2FkZHJlc3MJAK8CAgUGcmVzdWx0ACMEBGFkZHIJAQdBZGRyZXNzAQkA2QQBBQdhZGRyZXNzBAdiYWxhbmNlAwkAAAIFB2Fzc2V0SWQCBVdBVkVTCQEPZ2V0V2F2ZXNCYWxhbmNlAQUEYWRkcgQDYUlkCQDZBAEFB2Fzc2V0SWQJAQ9nZXRBc3NldEJhbGFuY2UCBQRhZGRyBQNhSWQEA2xlbgkAsQIBBQZyZXN1bHQJAKwCAgkArAICCQCsAgIJAKwCAgkArAICBQdhZGRyZXNzCQCwAgIFBnJlc3VsdAAjBQdhc3NldElkAgE6CQCkAwEFB2JhbGFuY2UCASwBEWdldEFkZHJlc3NCYWxhbmNlAgRhZGRyB2Fzc2V0SWQEB2JhbGFuY2UDCQAAAgUHYXNzZXRJZAIFV0FWRVMJAQ9nZXRXYXZlc0JhbGFuY2UBBQRhZGRyBANhSWQJANkEAQUHYXNzZXRJZAkBD2dldEFzc2V0QmFsYW5jZQIFBGFkZHIFA2FJZAUHYmFsYW5jZQEQZ2V0QXNzZXREZWNpbWFscwEKYXNzZXRJZFN0cgQIZGVjaW1hbHMDCQAAAgUKYXNzZXRJZFN0cgIFV0FWRVMACAgJAQV2YWx1ZQEJAOwHAQkA2QQBBQphc3NldElkU3RyCGRlY2ltYWxzBQhkZWNpbWFscwEJZ2V0V3hEYXRhAQdhZGRyZXNzBARhZGRyCQEHQWRkcmVzcwEJANkEAQUHYWRkcmVzcwQIYW1vdW50SWQJAQx0cnlHZXRTdHJpbmcCBQpLX2FtX2FzX2lkBQRhZGRyBAdwcmljZUlkCQEMdHJ5R2V0U3RyaW5nAgUKS19wcl9hc19pZAUEYWRkcgQDYW1wCQEMdHJ5R2V0U3RyaW5nAgUFS19hbXAFBGFkZHIEBXNoYXJlCQENdHJ5R2V0SW50ZWdlcgIFB0tfc2hhcmUFBGFkZHIEBXN0YWtlCQENdHJ5R2V0SW50ZWdlcgIFCEtfc3Rha2VkBQRhZGRyBAskdDA2MzQ0NjM5NQkBDWdldFd4UG9vbEZlZXMBBQdhZGRyZXNzBAdwb29sRmVlCAULJHQwNjM0NDYzOTUCXzEEC3Byb3RvY29sRmVlCAULJHQwNjM0NDYzOTUCXzIJAJQKAgkArAICCQCsAgIFCGFtb3VudElkAgEsBQdwcmljZUlkCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgUDYW1wAgEsCQCkAwEFBXNoYXJlAgEsCQCkAwEFBXN0YWtlAgEsBQdwb29sRmVlAgEsBQtwcm90b2NvbEZlZQEJZ2V0U3dEYXRhAQdhZGRyZXNzBARhZGRyCQEHQWRkcmVzcwEJANkEAQUHYWRkcmVzcwQEQV9pZAkBDHRyeUdldFN0cmluZwIFCUtfYV9hc19pZAUEYWRkcgQEQl9pZAkBDHRyeUdldFN0cmluZwIFCUtfYl9hc19pZAUEYWRkcgQJQV9iYWxhbmNlCQENdHJ5R2V0SW50ZWdlcgIFCktfYV9hc19iYWwFBGFkZHIECUJfYmFsYW5jZQkBDXRyeUdldEludGVnZXICBQpLX2JfYXNfYmFsBQRhZGRyBANmZWUJARR0cnlHZXRJbnRlZ2VyV2l0aERlZgMFBUtfZmVlBQRhZGRyAPAuBApkZXByZWNhdGVkCQEKdHJ5R2V0Qm9vbAIJAKwCAgILZGVwcmVjYXRlZF8FB2FkZHJlc3MJAQdBZGRyZXNzAQkA2QQBBQ1zd29wZmlfb3JhY2xlCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIFBEFfaWQCAToJAKQDAQUJQV9iYWxhbmNlAgEsBQRCX2lkAgE6CQCkAwEFCUJfYmFsYW5jZQIBLAkApAMBBQNmZWUCASwJAKUDAQUKZGVwcmVjYXRlZAESZ2V0UHpSZWJhbGFuY2VEYXRhAQdhZGRyZXNzBARhZGRyCQEHQWRkcmVzcwEJANkEAQUHYWRkcmVzcwQMdG1wQXNzZXRzU3RyCQELdmFsdWVPckVsc2UCCQCdCAIFBGFkZHIFFktfdG1wX3JlYmxhbmNlQXNzZXRJZHMCAAQKaW5Qcm9ncmVzcwkBC3ZhbHVlT3JFbHNlAgkAmwgCBQRhZGRyBRZLX3JlYmFsYW5jZV9pblByb2dyZXNzBwQJc3RlcHNEb25lCQELdmFsdWVPckVsc2UCCQCaCAIFBGFkZHIFFUtfcmViYWxhbmNlX3N0ZXBzRG9uZQAABAtzdGVwc0Ftb3VudAkBC3ZhbHVlT3JFbHNlAgkAmggCBQRhZGRyBRdLX3JlYmFsYW5jZV9zdGVwc0Ftb3VudAAABAthc3NldERlbHRhcwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQRhZGRyBRdLX3JlYmFsYW5jZV9hc3NldERlbHRhcwIABAl0bXBBc3NldHMJALUJAgUMdG1wQXNzZXRzU3RyAgEsCgEPY29sbGVjdFBheW1lbnRzAgVhY2N1bQdhc3NldElkBANrZXkJAKwCAgUbS19yZWJhbGFuY2VfYXR0YWNoZWRQYXltZW50BQdhc3NldElkBAN2YWwJAQ10cnlHZXRJbnRlZ2VyAgUDa2V5BQRhZGRyAwkBAiE9AgUDdmFsAAAJAM4IAgUFYWNjdW0JAMwIAgkArAICCQCsAgIFA2tleQIBKgkApAMBBQN2YWwFA25pbAUFYWNjdW0EEXJlYmFsYW5jZVBheW1lbnRzCgACJGwFCXRtcEFzc2V0cwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEPY29sbGVjdFBheW1lbnRzAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKBBRyZWJhbGFuY2VQYXltZW50c1N0cgkAuQkCBRFyZWJhbGFuY2VQYXltZW50cwIBLAkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICBQx0bXBBc3NldHNTdHICATsJAKUDAQUKaW5Qcm9ncmVzcwIBOwkApAMBBQlzdGVwc0RvbmUCATsJAKQDAQULc3RlcHNBbW91bnQCATsFC2Fzc2V0RGVsdGFzAgE7BRRyZWJhbGFuY2VQYXltZW50c1N0cgEUY29sbGVjdFB1ekFzc2V0c0RhdGECBnJlc3VsdAdhc3NldElkBANsZW4JAJADAQUGcmVzdWx0BAdhZGRyZXNzCQCRAwIFBnJlc3VsdAkAZQIFA2xlbgABBARhZGRyCQEHQWRkcmVzcwEJANkEAQUHYWRkcmVzcwQKYmFsYW5jZUtleQkBEGdldFB1ekJhbGFuY2VLZXkBBQdhc3NldElkBAl3ZWlnaHRLZXkJAQ9nZXRQdXpXZWlnaHRLZXkBBQdhc3NldElkBAdiYWxhbmNlCQENdHJ5R2V0SW50ZWdlcgIFCmJhbGFuY2VLZXkFBGFkZHIEBndlaWdodAkBDXRyeUdldEludGVnZXICBQl3ZWlnaHRLZXkFBGFkZHIEC3JlYWxCYWxhbmNlCQERZ2V0QWRkcmVzc0JhbGFuY2UCBQRhZGRyBQdhc3NldElkBANyZXMJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIFB2Fzc2V0SWQCASwJAKQDAQUHYmFsYW5jZQIBLAkApAMBBQZ3ZWlnaHQCASwJAKQDAQULcmVhbEJhbGFuY2UJAMwIAgUDcmVzBQZyZXN1bHQBCWdldFB6RGF0YQEHYWRkcmVzcwQEYWRkcgkBB0FkZHJlc3MBCQDZBAEFB2FkZHJlc3MEBGZlZTEJAQ10cnlHZXRJbnRlZ2VyAgUJS19mZWVfcHV6BQRhZGRyBAhmZWVUb2tlbgkBDHRyeUdldFN0cmluZwIFCktfZmVlVG9rZW4FBGFkZHIECmFzc2V0c1N0cjEJAQx0cnlHZXRTdHJpbmcCBQtLX2Fzc2V0X2lkcwUEYWRkcgQLJHQwOTAzMTkxODQDCQAAAgUKYXNzZXRzU3RyMQIACQCUCgIJAQx0cnlHZXRTdHJpbmcCCQEHZ2V0QlBBSwEFB2FkZHJlc3MFBHRoaXMAyAEJAJQKAgUKYXNzZXRzU3RyMQUEZmVlMQQJYXNzZXRzU3RyCAULJHQwOTAzMTkxODQCXzEEA2ZlZQgFCyR0MDkwMzE5MTg0Al8yBAZhc3NldHMJALUJAgUJYXNzZXRzU3RyAgEsBAphc3NldHNEYXRhCgACJGwFBmFzc2V0cwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAJAMwIAgUHYWRkcmVzcwUDbmlsCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJARRjb2xsZWN0UHV6QXNzZXRzRGF0YQIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgQDbGVuCQCQAwEFCmFzc2V0c0RhdGEECWFzc2V0c0FycgkA0QgCBQphc3NldHNEYXRhCQBlAgUDbGVuAAEEDWFzc2V0c0RhdGFTdHIJALoJAgUJYXNzZXRzQXJyAgE7CQCVCgMFA2ZlZQUIZmVlVG9rZW4FDWFzc2V0c0RhdGFTdHIBCmdldFRzbkRhdGECB2FkZHJlc3MIYXNzZXRfaWQEBGFkZHIJAQdBZGRyZXNzAQkA2QQBBQdhZGRyZXNzBAZic0FzdFIJAQ10cnlHZXRJbnRlZ2VyAgUIa19ic0FzdFIFBGFkZHIEBmJzQXN0VwkBDXRyeUdldEludGVnZXICBQhrX2JzQXN0VwUEYWRkcgQGcXRBc3RSCQENdHJ5R2V0SW50ZWdlcgIFCGtfcXRBc3RSBQRhZGRyBAZxdEFzdFcJAQ10cnlHZXRJbnRlZ2VyAgUIa19xdEFzdFcFBGFkZHIEDm1heFByaWNlSW1wYWN0CQENdHJ5R2V0SW50ZWdlcgIFEGtfbWF4UHJpY2VJbXBhY3QFBGFkZHIEDm1heFByaWNlU3ByZWFkCQENdHJ5R2V0SW50ZWdlcgIFEGtfbWF4UHJpY2VTcHJlYWQFBGFkZHIEEXRvdGFsUG9zaXRpb25TaXplCQENdHJ5R2V0SW50ZWdlcgIFE2tfdG90YWxQb3NpdGlvblNpemUFBGFkZHIEDm1heE9yYWNsZURlbGF5CQENdHJ5R2V0SW50ZWdlcgIFEGtfbWF4T3JhY2xlRGVsYXkFBGFkZHIEDG9yYWNsZVN0cmluZwkBDHRyeUdldFN0cmluZwIFDGtfYmFzZU9yYWNsZQUEYWRkcgQDYXJyCQC1CQIFDG9yYWNsZVN0cmluZwIBLAQNJHQwMTAxNDUxMDIxMQkAlQoDCQCRAwIFA2FycgAACQCRAwIFA2FycgABCQCRAwIFA2FycgACBA1vcmFjbGVBZGRyZXNzCAUNJHQwMTAxNDUxMDIxMQJfMQQIcHJpY2VLZXkIBQ0kdDAxMDE0NTEwMjExAl8yBAhibG9ja0tleQgFDSR0MDEwMTQ1MTAyMTECXzMECm9yYWNsZUFkZHIJAQdBZGRyZXNzAQkA2QQBBQ1vcmFjbGVBZGRyZXNzBAtvcmFjbGVQcmljZQkBDXRyeUdldEludGVnZXICBQhwcmljZUtleQUKb3JhY2xlQWRkcgQJY3VySGVpZ2h0BQZoZWlnaHQECmxhc3RIZWlnaHQDCQECIT0CBQhibG9ja0tleQIACQENdHJ5R2V0SW50ZWdlcgIFCGJsb2NrS2V5BQpvcmFjbGVBZGRyBQljdXJIZWlnaHQEBXZhdWx0CQEMdHJ5R2V0U3RyaW5nAgkArAICAg5rX2Fzc2V0X3ZhdWx0XwUIYXNzZXRfaWQFEHRzbl9zd2FwcGVyX2FkZHIECnZhdWx0X2FkZHIJAQdBZGRyZXNzAQkA2QQBBQV2YXVsdAQNZXhjZXNzQmFsYW5jZQkBDXRyeUdldEludGVnZXICBQ9rX2V4Y2Vzc0JhbGFuY2UFCnZhdWx0X2FkZHIEC2ZyZWVCYWxhbmNlCQENdHJ5R2V0SW50ZWdlcgIFDWtfZnJlZUJhbGFuY2UFCnZhdWx0X2FkZHIEEm1heFNwb3RVdGlsaXphdGlvbgkBDXRyeUdldEludGVnZXICBRRrX21heFNwb3RVdGlsaXphdGlvbgUKdmF1bHRfYWRkcgQLdG90YWxTdXBwbHkJAQ10cnlHZXRJbnRlZ2VyAgUNa190b3RhbFN1cHBseQUKdmF1bHRfYWRkcgQEcmF0ZQkBDXRyeUdldEludGVnZXICBQZrX3JhdGUFCnZhdWx0X2FkZHIJAKIKEAUGYnNBc3RSBQZic0FzdFcFBnF0QXN0UgUGcXRBc3RXBRF0b3RhbFBvc2l0aW9uU2l6ZQUObWF4UHJpY2VJbXBhY3QFDm1heFByaWNlU3ByZWFkBQtvcmFjbGVQcmljZQUNZXhjZXNzQmFsYW5jZQULZnJlZUJhbGFuY2UFEm1heFNwb3RVdGlsaXphdGlvbgULdG90YWxTdXBwbHkFBHJhdGUFCWN1ckhlaWdodAUKbGFzdEhlaWdodAUObWF4T3JhY2xlRGVsYXkBCGdldFByaWNlAQdhc3NldElkBAVwcmljZQkBDXRyeUdldEludGVnZXICCQCsAgIFB2Fzc2V0SWQCB190d2FwNUIJAQdBZGRyZXNzAQkA2QQBBQRvcmNsBQVwcmljZQEJZ2V0UExEYXRhAgxwb29sX2FkZHJlc3MIYXNzZXRfaWQEBmRvbWFpbgkBCmdldF9kb21haW4BBQxwb29sX2FkZHJlc3MEB3Bvb2xBZHIJAQdBZGRyZXNzAQkA2QQBBQxwb29sX2FkZHJlc3MECXBsVG9rZW5JZAkBDHRyeUdldFN0cmluZwIJAQlrX3BsVG9rZW4CBQhhc3NldF9pZAUGZG9tYWluCQEHQWRkcmVzcwEJANkEAQUIcGxfcHJveHkEBXNSYXRlCQENdHJ5R2V0SW50ZWdlcgIJAQdrX3NSYXRlAQUIYXNzZXRfaWQFB3Bvb2xBZHIEBWJSYXRlCQENdHJ5R2V0SW50ZWdlcgIJAQdrX2JSYXRlAQUIYXNzZXRfaWQFB3Bvb2xBZHIEDXRvdGFsU3VwcGxpZWQJAQ10cnlHZXRJbnRlZ2VyAgkBEGtfdG90YWxfc3VwcGxpZWQBBQhhc3NldF9pZAUHcG9vbEFkcgQNdG90YWxCb3Jyb3dlZAkBDXRyeUdldEludGVnZXICCQEQa190b3RhbF9ib3Jyb3dlZAEFCGFzc2V0X2lkBQdwb29sQWRyBAltYXhTdXBwbHkJAQx0cnlHZXRTdHJpbmcCCQELa19tYXhTdXBwbHkBBQhhc3NldF9pZAUHcG9vbEFkcgQKbGFzdEhlaWdodAkBDXRyeUdldEludGVnZXICBRBrX2xhc3RSYXRlSGVpZ2h0BQdwb29sQWRyBAljdXJIZWlnaHQFBmhlaWdodAQFcHJpY2UJAQhnZXRQcmljZQEFCGFzc2V0X2lkBAhkZWNpbWFscwkBEGdldEFzc2V0RGVjaW1hbHMBBQhhc3NldF9pZAkAnQoLBQhhc3NldF9pZAUJcGxUb2tlbklkBQVzUmF0ZQUFYlJhdGUFDXRvdGFsU3VwcGxpZWQFDXRvdGFsQm9ycm93ZWQFCW1heFN1cHBseQUKbGFzdEhlaWdodAUJY3VySGVpZ2h0BQVwcmljZQUIZGVjaW1hbHMBCXRlc3RfbG9vcAIGcmVzdWx0A2VsZQkAzAgCBQNlbGUFBnJlc3VsdAEOZ2V0QmFsYW5jZXNTdHICCWFzc2V0c1N0cgdhZGRyZXNzBAZhc3NldHMJALwJAgUJYXNzZXRzU3RyAgEsBANyZXMKAAIkbAUGYXNzZXRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAUHYWRkcmVzcwoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEKZ2V0QmFsYW5jZQIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQITTGlzdCBzaXplIGV4Y2VlZHMgMgkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIECGJhbGFuY2VzCQCwAgIFA3JlcwAjBARiYWxzCQCzAgIFCGJhbGFuY2VzAAEFBGJhbHMBCXByb2Nlc3NXWAIGcmVzdWx0B2FkZHJlc3MEDSR0MDEyNTg3MTI2MzAJAQlnZXRXeERhdGEBBQdhZGRyZXNzBAlhc3NldHNTdHIIBQ0kdDAxMjU4NzEyNjMwAl8xBAVkYXRhcwgFDSR0MDEyNTg3MTI2MzACXzIEDGFzc2V0c1N0cmluZwkBDmdldEJhbGFuY2VzU3RyAgUJYXNzZXRzU3RyBQdhZGRyZXNzBAdyZXNJdGVtCQCsAgIJAKwCAgkArAICCQCsAgIFB2FkZHJlc3MCAS8FDGFzc2V0c1N0cmluZwIBLwUFZGF0YXMJAMwIAgUHcmVzSXRlbQUGcmVzdWx0AQlwcm9jZXNzU1cCBnJlc3VsdAdhZGRyZXNzBAxhc3NldHNTdHJpbmcJAQlnZXRTd0RhdGEBBQdhZGRyZXNzBAdyZXNJdGVtCQCsAgIJAKwCAgUHYWRkcmVzcwIBLwUMYXNzZXRzU3RyaW5nCQDMCAIFB3Jlc0l0ZW0FBnJlc3VsdAEJcHJvY2Vzc1BaAgZyZXN1bHQHYWRkcmVzcwQNJHQwMTMwMzAxMzA4NAkBCWdldFB6RGF0YQEFB2FkZHJlc3MEA2ZlZQgFDSR0MDEzMDMwMTMwODQCXzEECGZlZVRva2VuCAUNJHQwMTMwMzAxMzA4NAJfMgQMYXNzZXRzU3RyaW5nCAUNJHQwMTMwMzAxMzA4NAJfMwQIcmViYURhdGEJARJnZXRQelJlYmFsYW5jZURhdGEBBQdhZGRyZXNzBAdyZXNJdGVtCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgUHYWRkcmVzcwIBLwkApAMBBQNmZWUCAS8FCGZlZVRva2VuAgEvBQxhc3NldHNTdHJpbmcCAS8FCHJlYmFEYXRhCQDMCAIFB3Jlc0l0ZW0FBnJlc3VsdAEKcHJvY2Vzc1RTTgIGcmVzdWx0BWxhYmVsBANhcnIJALUJAgUFbGFiZWwCAV8EDSR0MDEzMzY2MTM0MDgJAJQKAgkAkQMCBQNhcnIAAAkAkQMCBQNhcnIAAQQHYWRkcmVzcwgFDSR0MDEzMzY2MTM0MDgCXzEECGFzc2V0X2lkCAUNJHQwMTMzNjYxMzQwOAJfMgQNJHQwMTM0MTQxMzY1MgkBCmdldFRzbkRhdGECBQdhZGRyZXNzBQhhc3NldF9pZAQGYnNBc3RSCAUNJHQwMTM0MTQxMzY1MgJfMQQGYnNBc3RXCAUNJHQwMTM0MTQxMzY1MgJfMgQGcXRBc3RSCAUNJHQwMTM0MTQxMzY1MgJfMwQGcXRBc3RXCAUNJHQwMTM0MTQxMzY1MgJfNAQRdG90YWxQb3NpdGlvblNpemUIBQ0kdDAxMzQxNDEzNjUyAl81BA5tYXhQcmljZUltcGFjdAgFDSR0MDEzNDE0MTM2NTICXzYEDm1heFByaWNlU3ByZWFkCAUNJHQwMTM0MTQxMzY1MgJfNwQLb3JhY2xlUHJpY2UIBQ0kdDAxMzQxNDEzNjUyAl84BA1leGNlc3NCYWxhbmNlCAUNJHQwMTM0MTQxMzY1MgJfOQQLZnJlZUJhbGFuY2UIBQ0kdDAxMzQxNDEzNjUyA18xMAQSbWF4U3BvdFV0aWxpemF0aW9uCAUNJHQwMTM0MTQxMzY1MgNfMTEEC3RvdGFsU3VwcGx5CAUNJHQwMTM0MTQxMzY1MgNfMTIEBHJhdGUIBQ0kdDAxMzQxNDEzNjUyA18xMwQJY3VySGVpZ2h0CAUNJHQwMTM0MTQxMzY1MgNfMTQECmxhc3RIZWlnaHQIBQ0kdDAxMzQxNDEzNjUyA18xNQQObWF4T3JhY2xlRGVsYXkIBQ0kdDAxMzQxNDEzNjUyA18xNgQOYXNzZXRfZGVjaW1hbHMDCQAAAgUIYXNzZXRfaWQCBVdBVkVTAAgICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQkA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MF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRm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dEludGVnZXICBRVrX2ZlZVRvU3Rha2Vyc1BlcmNlbnQFEHRzbl9zd2FwcGVyX2FkZHIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKQDAQUDZmVlAgEsCQCkAwEFBnJlYmF0ZQIBLAkApAMBBRNmZWVUb1N0YWtlcnNQZXJjZW50AgEvBQZyZXN1bHQBBWdldFBMAQZwYXJhbXMEBXBvb2xzCQC1CQIFBnBhcmFtcwIBLAQGcmVzQXJyCgACJGwFBXBvb2xzCgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQlwcm9jZXNzUEwCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoEBnJlc3VsdAkAugkCBQZyZXNBcnICAXwFBnJlc3VsdAEObG9hZFBlcGVBc3NldHMBC3BlcGVfbWFya2V0BAZhc3NldHMJAQx0cnlHZXRTdHJpbmcCBQhrX2Fzc2V0cwULcGVwZV9tYXJrZXQJALwJAgUGYXNzZXRzAgJfXwEVbG9hZFBlcGVBc3NldEJhbGFuY2VzAQtwZXBlX21hcmtldAoBCGZvbGRGdW5jAgNhY2MEZWxlbQQHYmFsYW5jZQkBDXBhcnNlSW50VmFsdWUBBQRlbGVtCQCUCgIJAM0IAggFA2FjYwJfMQUEZWxlbQkAZAIIBQNhY2MCXzIFB2JhbGFuY2UEDWFzc2V0QmFsYW5jZXMJAQx0cnlHZXRTdHJpbmcCBRBrX2Fzc2V0X2JhbGFuY2VzBQtwZXBlX21hcmtldAoAAiRsCQC9CQIFDWFzc2V0QmFsYW5jZXMCAl9fCgACJHMJAJADAQUCJGwKAAUkYWNjMAkAlAoCBQNuaWwAAAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEIZm9sZEZ1bmMCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoBFGxvYWRQZXBlQXNzZXRXZWlnaHRzAQtwZXBlX21hcmtldAoBCGZvbGRGdW5jAgNhY2MEZWxlbQQGd2VpZ2h0CQENcGFyc2VJbnRWYWx1ZQEFBGVsZW0JAJQKAgkAzQgCCAUDYWNjAl8xBQRlbGVtCQBkAggFA2FjYwJfMgUGd2VpZ2h0BAxhc3NldFdlaWdodHMJAQx0cnlHZXRTdHJpbmcCBQ9rX2Fzc2V0X3dlaWdodHMFC3BlcGVfbWFya2V0CgACJGwJALwJAgUMYXNzZXRXZWlnaHRzAgJfXwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAJAJQKAgUDbmlsAAAKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBCGZvbGRGdW5jAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKARBsb2FkUGVwZURlY2ltYWxzAQZhc3NldHMKAQdnZXREZWNzAgNhY2MEaXRlbQQIZGVjaW1hbHMJARBnZXRBc3NldERlY2ltYWxzAQUEaXRlbQkAzQgCBQNhY2MJAKQDAQUIZGVjaW1hbHMKAAIkbAUGYXNzZXRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQdnZXREZWNzAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMQkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsBC3Byb2Nlc3NQZXBlAgZyZXN1bHQPcGVwZV9tYXJrZXRfc3RyBAtwZXBlX21hcmtldAkBB0FkZHJlc3MBCQDZBAEFD3BlcGVfbWFya2V0X3N0cgQHc3RvcmFnZQkBDHRyeUdldFN0cmluZwIFCWtfc3RvcmFnZQULcGVwZV9tYXJrZXQEBHNhcnIJALwJAgUHc3RvcmFnZQICX18EDSR0MDE5MTEwMTkzMzEJAJsKCQkAkQMCBQRzYXJyAAAJAAACCQCRAwIFBHNhcnIAAQIBMQkAkQMCBQRzYXJyAAIJAJEDAgUEc2FycgADCQCRAwIFBHNhcnIABAkAkQMCBQRzYXJyAAUJAJEDAgUEc2FycgAGCQCRAwIFBHNhcnIABwkAkQMCBQRzYXJyAAgECWxwQXNzZXRJZAgFDSR0MDE5MTEwMTkzMzECXzEECHVubG9ja2VkCAUNJHQwMTkxMTAxOTMzMQJfMgQNbHBUb3RhbFN1cHBseQgFDSR0MDE5MTEwMTkzMzECXzMECWxwRmVlUmF0ZQgFDSR0MDE5MTEwMTkzMzECXzQED3Byb3RvY29sRmVlUmF0ZQgFDSR0MDE5MTEwMTkzMzECXzUEEW1heEFsbG9jQW1wbGlmaWVyCAUNJHQwMTkxMTAxOTMzMQJfNgQPd2VpZ2h0QW1wbGlmaWVyCAUNJHQwMTkxMTAxOTMzMQJfNwQMc2xpcHBhZ2VSYXRlCAUNJHQwMTkxMTAxOTMzMQJfOAQKZmVlTWF4UmF0ZQgFDSR0MDE5MTEwMTkzMzECXzkECXByZWNpc2lvbgkBDXRyeUdldEludGVnZXICBQtrX3ByZWNpc2lvbgULcGVwZV9tYXJrZXQEDXNpZ21hRmVlUGVyTHAJAQx0cnlHZXRTdHJpbmcCBRJrX3NpZ21hX2ZlZV9wZXJfbHAFC3BlcGVfbWFya2V0BAZwYXVzZWQJAQp0cnlHZXRCb29sAgUIa19wYXVzZWQFC3BlcGVfbWFya2V0BAd0b3RhbExwCQENdHJ5R2V0SW50ZWdlcgIFCmtfdG90YWxfbHAFC3BlcGVfbWFya2V0BApscERlY2ltYWxzCQEQZ2V0QXNzZXREZWNpbWFscwEFCWxwQXNzZXRJZAQGYXNzZXRzCQEObG9hZFBlcGVBc3NldHMBBQtwZXBlX21hcmtldAQMZGVjaW1hbHNfYXJyCQEQbG9hZFBlcGVEZWNpbWFscwEFBmFzc2V0cwQNJHQwMTk3MjQxOTc5MQkBFGxvYWRQZXBlQXNzZXRXZWlnaHRzAQULcGVwZV9tYXJrZXQEDGFzc2V0V2VpZ2h0cwgFDSR0MDE5NzI0MTk3OTECXzEEC3NpZ21hV2VpZ2h0CAUNJHQwMTk3MjQxOTc5MQJfMgQNJHQwMTk3OTcxOTg4MAkBFWxvYWRQZXBlQXNzZXRCYWxhbmNlcwEFC3BlcGVfbWFya2V0BBFwcmV2QXNzZXRCYWxhbmNlcwgFDSR0MDE5Nzk3MTk4ODACXzEEFHByZXZBc3NldFRvdGFsU3VwcGx5CAUNJHQwMTk3OTcxOTg4MAJfMgQIbWFpbl9zdHIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICBQlscEFzc2V0SWQCASwJAKUDAQUIdW5sb2NrZWQCASwFDWxwVG90YWxTdXBwbHkCASwFCWxwRmVlUmF0ZQIBLAUPcHJvdG9jb2xGZWVSYXRlAgEsBRFtYXhBbGxvY0FtcGxpZmllcgIBLAUPd2VpZ2h0QW1wbGlmaWVyAgEsBQxzbGlwcGFnZVJhdGUCASwFCmZlZU1heFJhdGUCASwJAKQDAQULc2lnbWFXZWlnaHQCASwJAKQDAQUUcHJldkFzc2V0VG90YWxTdXBwbHkCASwJAKQDAQUJcHJlY2lzaW9uAgEsBQ1zaWdtYUZlZVBlckxwAgEsCQCkAwEFB3RvdGFsTHACASwJAKUDAQUGcGF1c2VkAgEsCQCkAwEFCmxwRGVjaW1hbHMCASwFD3BlcGVfbWFya2V0X3N0cgQKYXNzZXRzX2lkcwkAuwkCBQZhc3NldHMCASwEDmFzc2V0c193ZWlnaHRzCQC7CQIFDGFzc2V0V2VpZ2h0cwIBLAQPYXNzZXRzX2JhbGFuY2VzCQC7CQIFEXByZXZBc3NldEJhbGFuY2VzAgEsBA9hc3NldHNfZGVjaW1hbHMJALsJAgUMZGVjaW1hbHNfYXJyAgEsBANyZXMJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICBQhtYWluX3N0cgIBfAUKYXNzZXRzX2lkcwIBfAUOYXNzZXRzX3dlaWdodHMCAXwFD2Fzc2V0c19iYWxhbmNlcwIBfAUPYXNzZXRzX2RlY2ltYWxzCQDNCAIFBnJlc3VsdAUDcmVzAQdnZXRQZXBlAQZwYXJhbXMECWFkZHJlc3NlcwkAtQkCBQZwYXJhbXMCASwEBnJlc0FycgoAAiRsBQlhZGRyZXNzZXMKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBC3Byb2Nlc3NQZXBlAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKBAZyZXN1bHQJALsJAgUGcmVzQXJyAgE7BQZyZXN1bHQBCmdldENvbWJpbmUBBnBhcmFtcwQJcGFyYW1zQXJyCQC1CQIFBnBhcmFtcwICKioEDSR0MDIxMzQyMjE0MjQJAJUKAwkAkQMCBQlwYXJhbXNBcnIAAAkAkQMCBQlwYXJhbXNBcnIAAQkAkQMCBQlwYXJhbXNBcnIAAgQJdHNuUGFyYW1zCAUNJHQwMjEzNDIyMTQyNAJfMQQIcGxQYXJhbXMIBQ0kdDAyMTM0MjIxNDI0Al8yBApwZXBlUGFyYW1zCAUNJHQwMjEzNDIyMTQyNAJfMwQHdHNuRGF0YQkBBmdldFRTTgEFCXRzblBhcmFtcwQGcGxEYXRhCQEFZ2V0UEwBBQhwbFBhcmFtcwQIcGVwZURhdGEJAQdnZXRQZXBlAQUKcGVwZVBhcmFtcwkAuwkCCQDMCAIFB3RzbkRhdGEJAMwIAgUGcGxEYXRhCQDMCAIFCHBlcGVEYXRhBQNuaWwCAioqAQFpAQR0ZXN0AQFzBAFyCQEKdHJ5R2V0Qm9vbAICLmRlcHJlY2F0ZWRfM1AyODZUa1RIQVJ0ckp6eFVoUG9IWGFyZHZ1dEMzN2E5ck0JAQdBZGRyZXNzAQkA2QQBBQ1zd29wZmlfb3JhY2xlCQACAQkApQMBBQFyAPCxXvU=", "height": 3975701, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: FbFj5cXk9NM5fSrjpJ2PFWDeYSS7zSG5kTGpZzdbJoQ7 Next: E5en9Jiu9sPcE3xk4TwncWRVMeV3pxUMKJ9Riw6TbMSr Diff:
OldNewDifferences
759759 }
760760
761761
762+func getCombine (params) = {
763+ let paramsArr = split(params, "**")
764+ let $t02134221424 = $Tuple3(paramsArr[0], paramsArr[1], paramsArr[2])
765+ let tsnParams = $t02134221424._1
766+ let plParams = $t02134221424._2
767+ let pepeParams = $t02134221424._3
768+ let tsnData = getTSN(tsnParams)
769+ let plData = getPL(plParams)
770+ let pepeData = getPepe(pepeParams)
771+ makeString_11C([tsnData, plData, pepeData], "**")
772+ }
773+
774+
762775 @Callable(i)
763776 func test (s) = {
764777 let r = tryGetBool("deprecated_3P286TkTHARtrJzxUhPoHXardvutC37a9rM", Address(fromBase58String(swopfi_oracle)))
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let rex = "3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU"
55
66 let swopfi_oracle = "3PEbqViERCoKnmcSULh6n2aiMvUdSQdCsom"
77
88 let pl_proxy = "3PJESVDTHRv8i83XbmHrRGQhDc5rgR3azQs"
99
1010 let orcl = "3P8d1E1BLKoD52y3bQJ1bDTd2TD1gpaLn9t"
1111
1212 let wx_factory_str = "3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv"
1313
1414 let wx_swap_str = "3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93"
1515
1616 let wx_factory = Address(fromBase58String(wx_factory_str))
1717
1818 let wx_swap = Address(fromBase58String(wx_swap_str))
1919
2020 let K_am_as_id = "%s__amountAsset"
2121
2222 let K_pr_as_id = "%s__priceAsset"
2323
2424 let K_amp = "%s__amp"
2525
2626 let K_share = "%s%s__shareAssetBalance__YiNbofFzC17jEHHCMwrRcpy9MrrjabMMLZxg8g5xmf7"
2727
2828 let K_staked = "%s%s__stakedBalance__WAVES"
2929
3030 let K_a_as_id = "A_asset_id"
3131
3232 let K_b_as_id = "B_asset_id"
3333
3434 let K_a_as_bal = "A_asset_balance"
3535
3636 let K_b_as_bal = "B_asset_balance"
3737
3838 let K_fee = "commission"
3939
4040 let K_asset_ids = "static_tokenIds"
4141
4242 let K_fee_puz = "static_fee"
4343
4444 let K_feeToken = "static_feeToken"
4545
4646 let K_tmp_reblanceAssetIds = "tmp_rebalanceAssetIds"
4747
4848 let K_rebalance_inProgress = "rebalance_inProgress"
4949
5050 let K_rebalance_stepsDone = "rebalance_stepsDone"
5151
5252 let K_rebalance_stepsAmount = "rebalance_stepsAmount"
5353
5454 let K_rebalance_assetDeltas = "rebalance_assetDeltas"
5555
5656 let K_rebalance_attachedPayment = "rebalance_attachedPayment_"
5757
5858 let tsn_swapper = "3PKz5jnJLohF2GjShQ7bG5H4BebdoA98zZ2"
5959
6060 let tsn_swapper_addr = Address(fromBase58String(tsn_swapper))
6161
6262 let k_fee = "k_fee"
6363
6464 let k_rebate = "k_rebate"
6565
6666 let k_feeToStakersPercent = "k_feeToStakersPercent"
6767
6868 let k_excessBalance = "k_excessBalance"
6969
7070 let k_freeBalance = "k_freeBalance"
7171
7272 let k_maxSpotUtilization = "k_maxSpotUtilization"
7373
7474 let k_totalSupply = "k_totalSupply"
7575
7676 let k_rate = "k_rate"
7777
7878 let k_bsAstR = "k_bsAstR"
7979
8080 let k_bsAstW = "k_bsAstW"
8181
8282 let k_qtAstR = "k_qtAstR"
8383
8484 let k_qtAstW = "k_qtAstW"
8585
8686 let k_maxPriceImpact = "k_maxPriceImpact"
8787
8888 let k_maxPriceSpread = "k_maxPriceSpread"
8989
9090 let k_totalPositionSize = "k_totalPositionSize"
9191
9292 let k_baseOracle = "k_baseOracle"
9393
9494 let k_maxOracleDelay = "k_maxOracleDelay"
9595
9696 let k_storage = "STORAGE"
9797
9898 let k_assets = "ASSETS"
9999
100100 let k_status = "STATUS"
101101
102102 let k_paused = "PAUSED"
103103
104104 let k_asset_balances = "ASSET_BALANCES"
105105
106106 let k_asset_weights = "ASSET_WEIGHTS"
107107
108108 let k_lp_fee = "LP_FEE"
109109
110110 let k_protocol_fee = "PROTOCOL_FEE"
111111
112112 let k_precision = "PRECISION"
113113
114114 let k_sigma_fee_per_lp = "SIGMA_FEE_PER_LP"
115115
116116 let k_user_sigma_fee_per_lp = "USER_SIGMA_FEE_PER_LP"
117117
118118 let k_user_lp = "USER_LP"
119119
120120 let k_total_lp = "TOTAL_LP"
121121
122122 let k_user_profits = "USER_PROFITS"
123123
124124 func get_domain (poolAddress) = match poolAddress {
125125 case _ =>
126126 if (("3P4uA5etnZi4AmBabKinq2bMiWU8KcnHZdH" == $match0))
127127 then "1"
128128 else "0"
129129 }
130130
131131
132132 func k_plToken (asset_id,domain) = ((("setup_pl_" + asset_id) + "_") + domain)
133133
134134
135135 func k_total_supplied (asset_id) = ("total_supplied_" + asset_id)
136136
137137
138138 func k_sRate (asset_id) = (asset_id + "_sRate")
139139
140140
141141 func k_total_borrowed (asset_id) = ("total_borrowed_" + asset_id)
142142
143143
144144 func k_bRate (asset_id) = (asset_id + "_bRate")
145145
146146
147147 func k_maxSupply (asset_id) = ("setup_maxSupply_" + asset_id)
148148
149149
150150 let k_lastRateHeight = "lastRateHeight"
151151
152152 func getPuzBalanceKey (assetId) = (("global_" + assetId) + "_balance")
153153
154154
155155 func getPuzWeightKey (assetId) = (("static_" + assetId) + "_weight")
156156
157157
158158 func getBPAK (address) = (address + "_staticAssetsIds")
159159
160160
161161 func tryGetString (key,address) = match getString(address, key) {
162162 case b: String =>
163163 b
164164 case _ =>
165165 ""
166166 }
167167
168168
169169 func tryGetBool (key,address) = match getBoolean(address, key) {
170170 case b: Boolean =>
171171 b
172172 case _ =>
173173 false
174174 }
175175
176176
177177 func tryGetInteger (key,address) = match getInteger(address, key) {
178178 case b: Int =>
179179 b
180180 case _ =>
181181 0
182182 }
183183
184184
185185 func tryGetIntegerWithDef (key,address,def) = match getInteger(address, key) {
186186 case b: Int =>
187187 b
188188 case _ =>
189189 def
190190 }
191191
192192
193193 func getWxDefaultFees () = {
194194 let poolFee = tryGetIntegerWithDef("%s__poolFee", wx_swap, 200000)
195195 let protocolFee = tryGetIntegerWithDef("%s__protocolFee", wx_swap, 200000)
196196 $Tuple2(toString(poolFee), toString(protocolFee))
197197 }
198198
199199
200200 func getWxPoolFees (address) = {
201201 let feesKey = ("%s%s__swapFee__" + address)
202202 let fees = tryGetString(feesKey, wx_factory)
203203 if ((fees == ""))
204204 then getWxDefaultFees()
205205 else {
206206 let splittedFees = split(fees, "__")
207207 $Tuple2(splittedFees[1], splittedFees[2])
208208 }
209209 }
210210
211211
212212 func getAssetBalance (address,assetId) = {
213213 let a = assetBalance(address, assetId)
214214 a
215215 }
216216
217217
218218 func getWavesBalance (address) = {
219219 let w = wavesBalance(address).available
220220 w
221221 }
222222
223223
224224 func getBalance (result,assetId) = {
225225 let address = take(result, 35)
226226 let addr = Address(fromBase58String(address))
227227 let balance = if ((assetId == "WAVES"))
228228 then getWavesBalance(addr)
229229 else {
230230 let aId = fromBase58String(assetId)
231231 getAssetBalance(addr, aId)
232232 }
233233 let len = size(result)
234234 (((((address + drop(result, 35)) + assetId) + ":") + toString(balance)) + ",")
235235 }
236236
237237
238238 func getAddressBalance (addr,assetId) = {
239239 let balance = if ((assetId == "WAVES"))
240240 then getWavesBalance(addr)
241241 else {
242242 let aId = fromBase58String(assetId)
243243 getAssetBalance(addr, aId)
244244 }
245245 balance
246246 }
247247
248248
249249 func getAssetDecimals (assetIdStr) = {
250250 let decimals = if ((assetIdStr == "WAVES"))
251251 then 8
252252 else value(assetInfo(fromBase58String(assetIdStr))).decimals
253253 decimals
254254 }
255255
256256
257257 func getWxData (address) = {
258258 let addr = Address(fromBase58String(address))
259259 let amountId = tryGetString(K_am_as_id, addr)
260260 let priceId = tryGetString(K_pr_as_id, addr)
261261 let amp = tryGetString(K_amp, addr)
262262 let share = tryGetInteger(K_share, addr)
263263 let stake = tryGetInteger(K_staked, addr)
264264 let $t063446395 = getWxPoolFees(address)
265265 let poolFee = $t063446395._1
266266 let protocolFee = $t063446395._2
267267 $Tuple2(((amountId + ",") + priceId), ((((((((amp + ",") + toString(share)) + ",") + toString(stake)) + ",") + poolFee) + ",") + protocolFee))
268268 }
269269
270270
271271 func getSwData (address) = {
272272 let addr = Address(fromBase58String(address))
273273 let A_id = tryGetString(K_a_as_id, addr)
274274 let B_id = tryGetString(K_b_as_id, addr)
275275 let A_balance = tryGetInteger(K_a_as_bal, addr)
276276 let B_balance = tryGetInteger(K_b_as_bal, addr)
277277 let fee = tryGetIntegerWithDef(K_fee, addr, 6000)
278278 let deprecated = tryGetBool(("deprecated_" + address), Address(fromBase58String(swopfi_oracle)))
279279 ((((((((((A_id + ":") + toString(A_balance)) + ",") + B_id) + ":") + toString(B_balance)) + ",") + toString(fee)) + ",") + toString(deprecated))
280280 }
281281
282282
283283 func getPzRebalanceData (address) = {
284284 let addr = Address(fromBase58String(address))
285285 let tmpAssetsStr = valueOrElse(getString(addr, K_tmp_reblanceAssetIds), "")
286286 let inProgress = valueOrElse(getBoolean(addr, K_rebalance_inProgress), false)
287287 let stepsDone = valueOrElse(getInteger(addr, K_rebalance_stepsDone), 0)
288288 let stepsAmount = valueOrElse(getInteger(addr, K_rebalance_stepsAmount), 0)
289289 let assetDeltas = valueOrElse(getString(addr, K_rebalance_assetDeltas), "")
290290 let tmpAssets = split(tmpAssetsStr, ",")
291291 func collectPayments (accum,assetId) = {
292292 let key = (K_rebalance_attachedPayment + assetId)
293293 let val = tryGetInteger(key, addr)
294294 if ((val != 0))
295295 then (accum ++ [((key + "*") + toString(val))])
296296 else accum
297297 }
298298
299299 let rebalancePayments = {
300300 let $l = tmpAssets
301301 let $s = size($l)
302302 let $acc0 = nil
303303 func $f0_1 ($a,$i) = if (($i >= $s))
304304 then $a
305305 else collectPayments($a, $l[$i])
306306
307307 func $f0_2 ($a,$i) = if (($i >= $s))
308308 then $a
309309 else throw("List size exceeds 10")
310310
311311 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
312312 }
313313 let rebalancePaymentsStr = makeString(rebalancePayments, ",")
314314 ((((((((((tmpAssetsStr + ";") + toString(inProgress)) + ";") + toString(stepsDone)) + ";") + toString(stepsAmount)) + ";") + assetDeltas) + ";") + rebalancePaymentsStr)
315315 }
316316
317317
318318 func collectPuzAssetsData (result,assetId) = {
319319 let len = size(result)
320320 let address = result[(len - 1)]
321321 let addr = Address(fromBase58String(address))
322322 let balanceKey = getPuzBalanceKey(assetId)
323323 let weightKey = getPuzWeightKey(assetId)
324324 let balance = tryGetInteger(balanceKey, addr)
325325 let weight = tryGetInteger(weightKey, addr)
326326 let realBalance = getAddressBalance(addr, assetId)
327327 let res = ((((((assetId + ",") + toString(balance)) + ",") + toString(weight)) + ",") + toString(realBalance))
328328 res :: result
329329 }
330330
331331
332332 func getPzData (address) = {
333333 let addr = Address(fromBase58String(address))
334334 let fee1 = tryGetInteger(K_fee_puz, addr)
335335 let feeToken = tryGetString(K_feeToken, addr)
336336 let assetsStr1 = tryGetString(K_asset_ids, addr)
337337 let $t090319184 = if ((assetsStr1 == ""))
338338 then $Tuple2(tryGetString(getBPAK(address), this), 200)
339339 else $Tuple2(assetsStr1, fee1)
340340 let assetsStr = $t090319184._1
341341 let fee = $t090319184._2
342342 let assets = split(assetsStr, ",")
343343 let assetsData = {
344344 let $l = assets
345345 let $s = size($l)
346346 let $acc0 = [address]
347347 func $f0_1 ($a,$i) = if (($i >= $s))
348348 then $a
349349 else collectPuzAssetsData($a, $l[$i])
350350
351351 func $f0_2 ($a,$i) = if (($i >= $s))
352352 then $a
353353 else throw("List size exceeds 10")
354354
355355 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
356356 }
357357 let len = size(assetsData)
358358 let assetsArr = removeByIndex(assetsData, (len - 1))
359359 let assetsDataStr = makeString_2C(assetsArr, ";")
360360 $Tuple3(fee, feeToken, assetsDataStr)
361361 }
362362
363363
364364 func getTsnData (address,asset_id) = {
365365 let addr = Address(fromBase58String(address))
366366 let bsAstR = tryGetInteger(k_bsAstR, addr)
367367 let bsAstW = tryGetInteger(k_bsAstW, addr)
368368 let qtAstR = tryGetInteger(k_qtAstR, addr)
369369 let qtAstW = tryGetInteger(k_qtAstW, addr)
370370 let maxPriceImpact = tryGetInteger(k_maxPriceImpact, addr)
371371 let maxPriceSpread = tryGetInteger(k_maxPriceSpread, addr)
372372 let totalPositionSize = tryGetInteger(k_totalPositionSize, addr)
373373 let maxOracleDelay = tryGetInteger(k_maxOracleDelay, addr)
374374 let oracleString = tryGetString(k_baseOracle, addr)
375375 let arr = split(oracleString, ",")
376376 let $t01014510211 = $Tuple3(arr[0], arr[1], arr[2])
377377 let oracleAddress = $t01014510211._1
378378 let priceKey = $t01014510211._2
379379 let blockKey = $t01014510211._3
380380 let oracleAddr = Address(fromBase58String(oracleAddress))
381381 let oraclePrice = tryGetInteger(priceKey, oracleAddr)
382382 let curHeight = height
383383 let lastHeight = if ((blockKey != ""))
384384 then tryGetInteger(blockKey, oracleAddr)
385385 else curHeight
386386 let vault = tryGetString(("k_asset_vault_" + asset_id), tsn_swapper_addr)
387387 let vault_addr = Address(fromBase58String(vault))
388388 let excessBalance = tryGetInteger(k_excessBalance, vault_addr)
389389 let freeBalance = tryGetInteger(k_freeBalance, vault_addr)
390390 let maxSpotUtilization = tryGetInteger(k_maxSpotUtilization, vault_addr)
391391 let totalSupply = tryGetInteger(k_totalSupply, vault_addr)
392392 let rate = tryGetInteger(k_rate, vault_addr)
393393 $Tuple16(bsAstR, bsAstW, qtAstR, qtAstW, totalPositionSize, maxPriceImpact, maxPriceSpread, oraclePrice, excessBalance, freeBalance, maxSpotUtilization, totalSupply, rate, curHeight, lastHeight, maxOracleDelay)
394394 }
395395
396396
397397 func getPrice (assetId) = {
398398 let price = tryGetInteger((assetId + "_twap5B"), Address(fromBase58String(orcl)))
399399 price
400400 }
401401
402402
403403 func getPLData (pool_address,asset_id) = {
404404 let domain = get_domain(pool_address)
405405 let poolAdr = Address(fromBase58String(pool_address))
406406 let plTokenId = tryGetString(k_plToken(asset_id, domain), Address(fromBase58String(pl_proxy)))
407407 let sRate = tryGetInteger(k_sRate(asset_id), poolAdr)
408408 let bRate = tryGetInteger(k_bRate(asset_id), poolAdr)
409409 let totalSupplied = tryGetInteger(k_total_supplied(asset_id), poolAdr)
410410 let totalBorrowed = tryGetInteger(k_total_borrowed(asset_id), poolAdr)
411411 let maxSupply = tryGetString(k_maxSupply(asset_id), poolAdr)
412412 let lastHeight = tryGetInteger(k_lastRateHeight, poolAdr)
413413 let curHeight = height
414414 let price = getPrice(asset_id)
415415 let decimals = getAssetDecimals(asset_id)
416416 $Tuple11(asset_id, plTokenId, sRate, bRate, totalSupplied, totalBorrowed, maxSupply, lastHeight, curHeight, price, decimals)
417417 }
418418
419419
420420 func test_loop (result,ele) = ele :: result
421421
422422
423423 func getBalancesStr (assetsStr,address) = {
424424 let assets = split_4C(assetsStr, ",")
425425 let res = {
426426 let $l = assets
427427 let $s = size($l)
428428 let $acc0 = address
429429 func $f0_1 ($a,$i) = if (($i >= $s))
430430 then $a
431431 else getBalance($a, $l[$i])
432432
433433 func $f0_2 ($a,$i) = if (($i >= $s))
434434 then $a
435435 else throw("List size exceeds 2")
436436
437437 $f0_2($f0_1($f0_1($acc0, 0), 1), 2)
438438 }
439439 let balances = drop(res, 35)
440440 let bals = dropRight(balances, 1)
441441 bals
442442 }
443443
444444
445445 func processWX (result,address) = {
446446 let $t01258712630 = getWxData(address)
447447 let assetsStr = $t01258712630._1
448448 let datas = $t01258712630._2
449449 let assetsString = getBalancesStr(assetsStr, address)
450450 let resItem = ((((address + "/") + assetsString) + "/") + datas)
451451 resItem :: result
452452 }
453453
454454
455455 func processSW (result,address) = {
456456 let assetsString = getSwData(address)
457457 let resItem = ((address + "/") + assetsString)
458458 resItem :: result
459459 }
460460
461461
462462 func processPZ (result,address) = {
463463 let $t01303013084 = getPzData(address)
464464 let fee = $t01303013084._1
465465 let feeToken = $t01303013084._2
466466 let assetsString = $t01303013084._3
467467 let rebaData = getPzRebalanceData(address)
468468 let resItem = ((((((((address + "/") + toString(fee)) + "/") + feeToken) + "/") + assetsString) + "/") + rebaData)
469469 resItem :: result
470470 }
471471
472472
473473 func processTSN (result,label) = {
474474 let arr = split(label, "_")
475475 let $t01336613408 = $Tuple2(arr[0], arr[1])
476476 let address = $t01336613408._1
477477 let asset_id = $t01336613408._2
478478 let $t01341413652 = getTsnData(address, asset_id)
479479 let bsAstR = $t01341413652._1
480480 let bsAstW = $t01341413652._2
481481 let qtAstR = $t01341413652._3
482482 let qtAstW = $t01341413652._4
483483 let totalPositionSize = $t01341413652._5
484484 let maxPriceImpact = $t01341413652._6
485485 let maxPriceSpread = $t01341413652._7
486486 let oraclePrice = $t01341413652._8
487487 let excessBalance = $t01341413652._9
488488 let freeBalance = $t01341413652._10
489489 let maxSpotUtilization = $t01341413652._11
490490 let totalSupply = $t01341413652._12
491491 let rate = $t01341413652._13
492492 let curHeight = $t01341413652._14
493493 let lastHeight = $t01341413652._15
494494 let maxOracleDelay = $t01341413652._16
495495 let asset_decimals = if ((asset_id == "WAVES"))
496496 then 8
497497 else valueOrErrorMessage(assetInfo(fromBase58String(asset_id)), ("Ivalid asset " + asset_id)).decimals
498498 let resItem = ((((((((((((((((((((((((((((((((((((address + ",") + asset_id) + ",") + toString(asset_decimals)) + ",") + toString(bsAstR)) + ",") + toString(bsAstW)) + ",") + toString(qtAstR)) + ",") + toString(qtAstW)) + ",") + toString(totalPositionSize)) + ",") + toString(maxPriceImpact)) + ",") + toString(maxPriceSpread)) + ",") + toString(oraclePrice)) + ",") + toString(excessBalance)) + ",") + toString(freeBalance)) + ",") + toString(maxSpotUtilization)) + ",") + toString(totalSupply)) + ",") + toString(rate)) + ",") + toString(curHeight)) + ",") + toString(lastHeight)) + ",") + toString(maxOracleDelay))
499499 resItem :: result
500500 }
501501
502502
503503 func processPL (result,label) = {
504504 let arr = split(label, "-")
505505 let $t01454214589 = $Tuple2(arr[0], arr[1])
506506 let pool_address = $t01454214589._1
507507 let asset_id = $t01454214589._2
508508 let $t01459514752 = getPLData(pool_address, asset_id)
509509 let asset_idd = $t01459514752._1
510510 let plTokenId = $t01459514752._2
511511 let sRate = $t01459514752._3
512512 let bRate = $t01459514752._4
513513 let totalSupplied = $t01459514752._5
514514 let totalBorrowed = $t01459514752._6
515515 let maxSupply = $t01459514752._7
516516 let lastHeight = $t01459514752._8
517517 let curHeight = $t01459514752._9
518518 let price = $t01459514752._10
519519 let decimals = $t01459514752._11
520520 let resItem = ((((((((((((((((((((((label + ",") + asset_idd) + ",") + plTokenId) + ",") + toString(sRate)) + ",") + toString(bRate)) + ",") + toString(totalSupplied)) + ",") + toString(totalBorrowed)) + ",") + maxSupply) + ",") + toString(lastHeight)) + ",") + toString(curHeight)) + ",") + toString(price)) + ",") + toString(decimals))
521521 resItem :: result
522522 }
523523
524524
525525 func getWX (params) = {
526526 let pools = split_51C(params, ",")
527527 let resArr = {
528528 let $l = pools
529529 let $s = size($l)
530530 let $acc0 = nil
531531 func $f0_1 ($a,$i) = if (($i >= $s))
532532 then $a
533533 else processWX($a, $l[$i])
534534
535535 func $f0_2 ($a,$i) = if (($i >= $s))
536536 then $a
537537 else throw("List size exceeds 120")
538538
539539 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100), 101), 102), 103), 104), 105), 106), 107), 108), 109), 110), 111), 112), 113), 114), 115), 116), 117), 118), 119), 120)
540540 }
541541 let result = makeString_11C(resArr, "|")
542542 result
543543 }
544544
545545
546546 func getSW (params) = {
547547 let pools = split_4C(params, ",")
548548 let resArr = {
549549 let $l = pools
550550 let $s = size($l)
551551 let $acc0 = nil
552552 func $f0_1 ($a,$i) = if (($i >= $s))
553553 then $a
554554 else processSW($a, $l[$i])
555555
556556 func $f0_2 ($a,$i) = if (($i >= $s))
557557 then $a
558558 else throw("List size exceeds 100")
559559
560560 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
561561 }
562562 let result = makeString_11C(resArr, "|")
563563 result
564564 }
565565
566566
567567 func getPZ (params) = {
568568 let pools = split_4C(params, ",")
569569 let resArr = {
570570 let $l = pools
571571 let $s = size($l)
572572 let $acc0 = nil
573573 func $f0_1 ($a,$i) = if (($i >= $s))
574574 then $a
575575 else processPZ($a, $l[$i])
576576
577577 func $f0_2 ($a,$i) = if (($i >= $s))
578578 then $a
579579 else throw("List size exceeds 100")
580580
581581 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
582582 }
583583 let result = makeString_11C(resArr, "|")
584584 result
585585 }
586586
587587
588588 func getTSN (params) = {
589589 let vaults_labels = split(params, ",")
590590 let resArr = {
591591 let $l = vaults_labels
592592 let $s = size($l)
593593 let $acc0 = nil
594594 func $f0_1 ($a,$i) = if (($i >= $s))
595595 then $a
596596 else processTSN($a, $l[$i])
597597
598598 func $f0_2 ($a,$i) = if (($i >= $s))
599599 then $a
600600 else throw("List size exceeds 10")
601601
602602 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
603603 }
604604 let result = makeString_2C(resArr, "|")
605605 let fee = tryGetInteger(k_fee, tsn_swapper_addr)
606606 let rebate = tryGetInteger(k_rebate, tsn_swapper_addr)
607607 let feeToStakersPercent = tryGetInteger(k_feeToStakersPercent, tsn_swapper_addr)
608608 ((((((toString(fee) + ",") + toString(rebate)) + ",") + toString(feeToStakersPercent)) + "/") + result)
609609 }
610610
611611
612612 func getPL (params) = {
613613 let pools = split(params, ",")
614614 let resArr = {
615615 let $l = pools
616616 let $s = size($l)
617617 let $acc0 = nil
618618 func $f0_1 ($a,$i) = if (($i >= $s))
619619 then $a
620620 else processPL($a, $l[$i])
621621
622622 func $f0_2 ($a,$i) = if (($i >= $s))
623623 then $a
624624 else throw("List size exceeds 10")
625625
626626 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
627627 }
628628 let result = makeString_2C(resArr, "|")
629629 result
630630 }
631631
632632
633633 func loadPepeAssets (pepe_market) = {
634634 let assets = tryGetString(k_assets, pepe_market)
635635 split_4C(assets, "__")
636636 }
637637
638638
639639 func loadPepeAssetBalances (pepe_market) = {
640640 func foldFunc (acc,elem) = {
641641 let balance = parseIntValue(elem)
642642 $Tuple2((acc._1 :+ elem), (acc._2 + balance))
643643 }
644644
645645 let assetBalances = tryGetString(k_asset_balances, pepe_market)
646646 let $l = split_51C(assetBalances, "__")
647647 let $s = size($l)
648648 let $acc0 = $Tuple2(nil, 0)
649649 func $f0_1 ($a,$i) = if (($i >= $s))
650650 then $a
651651 else foldFunc($a, $l[$i])
652652
653653 func $f0_2 ($a,$i) = if (($i >= $s))
654654 then $a
655655 else throw("List size exceeds 10")
656656
657657 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
658658 }
659659
660660
661661 func loadPepeAssetWeights (pepe_market) = {
662662 func foldFunc (acc,elem) = {
663663 let weight = parseIntValue(elem)
664664 $Tuple2((acc._1 :+ elem), (acc._2 + weight))
665665 }
666666
667667 let assetWeights = tryGetString(k_asset_weights, pepe_market)
668668 let $l = split_4C(assetWeights, "__")
669669 let $s = size($l)
670670 let $acc0 = $Tuple2(nil, 0)
671671 func $f0_1 ($a,$i) = if (($i >= $s))
672672 then $a
673673 else foldFunc($a, $l[$i])
674674
675675 func $f0_2 ($a,$i) = if (($i >= $s))
676676 then $a
677677 else throw("List size exceeds 10")
678678
679679 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
680680 }
681681
682682
683683 func loadPepeDecimals (assets) = {
684684 func getDecs (acc,item) = {
685685 let decimals = getAssetDecimals(item)
686686 (acc :+ toString(decimals))
687687 }
688688
689689 let $l = assets
690690 let $s = size($l)
691691 let $acc0 = nil
692692 func $f0_1 ($a,$i) = if (($i >= $s))
693693 then $a
694694 else getDecs($a, $l[$i])
695695
696696 func $f0_2 ($a,$i) = if (($i >= $s))
697697 then $a
698698 else throw("List size exceeds 11")
699699
700700 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11)
701701 }
702702
703703
704704 func processPepe (result,pepe_market_str) = {
705705 let pepe_market = Address(fromBase58String(pepe_market_str))
706706 let storage = tryGetString(k_storage, pepe_market)
707707 let sarr = split_4C(storage, "__")
708708 let $t01911019331 = $Tuple9(sarr[0], (sarr[1] == "1"), sarr[2], sarr[3], sarr[4], sarr[5], sarr[6], sarr[7], sarr[8])
709709 let lpAssetId = $t01911019331._1
710710 let unlocked = $t01911019331._2
711711 let lpTotalSupply = $t01911019331._3
712712 let lpFeeRate = $t01911019331._4
713713 let protocolFeeRate = $t01911019331._5
714714 let maxAllocAmplifier = $t01911019331._6
715715 let weightAmplifier = $t01911019331._7
716716 let slippageRate = $t01911019331._8
717717 let feeMaxRate = $t01911019331._9
718718 let precision = tryGetInteger(k_precision, pepe_market)
719719 let sigmaFeePerLp = tryGetString(k_sigma_fee_per_lp, pepe_market)
720720 let paused = tryGetBool(k_paused, pepe_market)
721721 let totalLp = tryGetInteger(k_total_lp, pepe_market)
722722 let lpDecimals = getAssetDecimals(lpAssetId)
723723 let assets = loadPepeAssets(pepe_market)
724724 let decimals_arr = loadPepeDecimals(assets)
725725 let $t01972419791 = loadPepeAssetWeights(pepe_market)
726726 let assetWeights = $t01972419791._1
727727 let sigmaWeight = $t01972419791._2
728728 let $t01979719880 = loadPepeAssetBalances(pepe_market)
729729 let prevAssetBalances = $t01979719880._1
730730 let prevAssetTotalSupply = $t01979719880._2
731731 let main_str = ((((((((((((((((((((((((((((((((lpAssetId + ",") + toString(unlocked)) + ",") + lpTotalSupply) + ",") + lpFeeRate) + ",") + protocolFeeRate) + ",") + maxAllocAmplifier) + ",") + weightAmplifier) + ",") + slippageRate) + ",") + feeMaxRate) + ",") + toString(sigmaWeight)) + ",") + toString(prevAssetTotalSupply)) + ",") + toString(precision)) + ",") + sigmaFeePerLp) + ",") + toString(totalLp)) + ",") + toString(paused)) + ",") + toString(lpDecimals)) + ",") + pepe_market_str)
732732 let assets_ids = makeString_11C(assets, ",")
733733 let assets_weights = makeString_11C(assetWeights, ",")
734734 let assets_balances = makeString_11C(prevAssetBalances, ",")
735735 let assets_decimals = makeString_11C(decimals_arr, ",")
736736 let res = ((((((((main_str + "|") + assets_ids) + "|") + assets_weights) + "|") + assets_balances) + "|") + assets_decimals)
737737 (result :+ res)
738738 }
739739
740740
741741 func getPepe (params) = {
742742 let addresses = split(params, ",")
743743 let resArr = {
744744 let $l = addresses
745745 let $s = size($l)
746746 let $acc0 = nil
747747 func $f0_1 ($a,$i) = if (($i >= $s))
748748 then $a
749749 else processPepe($a, $l[$i])
750750
751751 func $f0_2 ($a,$i) = if (($i >= $s))
752752 then $a
753753 else throw("List size exceeds 10")
754754
755755 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
756756 }
757757 let result = makeString_11C(resArr, ";")
758758 result
759759 }
760760
761761
762+func getCombine (params) = {
763+ let paramsArr = split(params, "**")
764+ let $t02134221424 = $Tuple3(paramsArr[0], paramsArr[1], paramsArr[2])
765+ let tsnParams = $t02134221424._1
766+ let plParams = $t02134221424._2
767+ let pepeParams = $t02134221424._3
768+ let tsnData = getTSN(tsnParams)
769+ let plData = getPL(plParams)
770+ let pepeData = getPepe(pepeParams)
771+ makeString_11C([tsnData, plData, pepeData], "**")
772+ }
773+
774+
762775 @Callable(i)
763776 func test (s) = {
764777 let r = tryGetBool("deprecated_3P286TkTHARtrJzxUhPoHXardvutC37a9rM", Address(fromBase58String(swopfi_oracle)))
765778 throw(toString(r))
766779 }
767780
768781

github/deemru/w8io/6500d08 
76.60 ms