tx · DpBnKrkZzLRZvrHzj181W395GwdhwFtgLGMx9USQ7ETa

3MwkjgDrsm5k73WJU9Nbxbx4y2iy3zjQzMi:  -0.01400000 Waves

2021.12.10 16:32 [1828204] smart account 3MwkjgDrsm5k73WJU9Nbxbx4y2iy3zjQzMi > SELF 0.00000000 Waves

{ "type": 13, "id": "DpBnKrkZzLRZvrHzj181W395GwdhwFtgLGMx9USQ7ETa", "fee": 1400000, "feeAssetId": null, "timestamp": 1639143161665, "version": 2, "chainId": 84, "sender": "3MwkjgDrsm5k73WJU9Nbxbx4y2iy3zjQzMi", "senderPublicKey": "FRotxVW1MhTQRDvVbMM4yvYGWzBFvHqvMsonvGeEXQUy", "proofs": [ "2UY3Jugx25mPHpi4ruyz5Yx4SdHaJpzYexSR8Df9b5RTRZas1ysWPorZjJwwMVVvYUjMokCWrdhrowRgWbtoXSjD", "3RK2sgWK8vQjN4Z22UxTJum9qywpQCRwCsdD5jeRLFUwQxUYxM86Nqa4siD7vcBSpdwLhJgwoMzpVEzY5xgmuCa6" ], "script": "base64:AAIFAAAAAAAAEvwIAhIECgIBCBIDCgEIEhQKEggBAQgBAQEBAQEBARgEAQEEGBIECgIBCBIECgIBCBIECgIBCBIFCgMBAQgSAwoBARIDCgEBEgQKAgEBEgASABoPCgJhMRIJa2V5QWN0aXZlGhUKAmEyEg9rZXlBZG1pblB1YktleTEaFQoCYTMSD2tleUFkbWluUHViS2V5MhoVCgJhNBIPa2V5QWRtaW5QdWJLZXkzGicKAmE1EiFrZXlMYXVuY2hwYWREYXRhVHJhbnNhY3Rpb25TdGF0dXMaGAoCYTYSEmtleUxhdW5jaHBhZE5leHRJZBoaCgJhNxIUa2V5TGF1bmNocGFkQWN0aXZlSWQaEwoCYTgSDWtleUluaXRDYWxsZXIaEAoCYTkSCmtleUFkZHJlc3MaEwoCYjESDWtleUluaXRIZWlnaHQaFAoCYjISDmtleVN0YXJ0SGVpZ2h0GhcKAmIzEhFrZXlGaW5hbGlzZUhlaWdodBoSCgJiNBIMa2V5Q29taXNzaW9uGiEKAmI1EhtrZXlIaWdoQ29tcGV0aXRpb25Db21pc3Npb24aEAoCYjYSCmtleUFzc2V0SWQaGQoCYjcSE2tleVRvdGFsVG9rZW5BbW91bnQaIAoCYjgSGmtleVRvdGFsQW1vdW50QnV5QXNzZXRTb2xkGiIKAmI5EhxrZXlUb3RhbEFtb3VudEJ1eUFzc2V0U29sZEhDGhgKAmMxEhJrZXlUb2tlbnNQZXJUaWNrZXQaFgoCYzISEGtleVByaWNlUGVyVG9rZW4aFgoCYzMSEGtleVN3b3BQZXJUaWNrZXQaHAoCYzQSFmtleVN3b3BmaVRpY2tldHNBbW91bnQaEQoCYzUSC2tleUhDQW1vdW50Gh0KAmM2EhdrZXlDYW1wYWlnblRva2Vuc0Ftb3VudBocCgJjNxIWa2V5VG9rZW5zUGVyQWxsb2NhdGlvbhoZCgJjOBITa2V5VGlja2V0TGFzdE51bWJlchobCgJjORIVa2V5SENUaWNrZXRMYXN0TnVtYmVyGhkKAmQxEhNrZXlHb3Zlcm5hbmNlU3Rha2VkGhIKAmQyEgxrZXlVc2VyUmVmSWQaEwoCZDMSDWtleVZlcmlmeUhhc2gaEQoCZDQSC2tleUR1cmF0aW9uGiIKAmQ1EhxrZXlBbW91bnRCdXlBc3NldEluTWFya2V0aW5nGisKAmQ2EiVrZXlBbW91bnRCdXlBc3NldEluTWFya2V0aW5nRmluYWxpemVkGhkKAmQ3EhNrZXlUcmFuc2ZlckJ1eUFzc2V0GhoKAmQ4EhRrZXlGcmVlelN3b3BEdXJhdGlvbhocCgJkORIWa2V5SGlnaENvbXBldGl0aW9uU2FsZRoeCgJlMRIYa2V5RnJlZXplQWRkaXRpb25hbFRva2VuGhYKAmUyEhBrZXlGcmVlemVUb2tlbklkGhwKAmUzEhZrZXlGcmVlemVUb2tlbkR1cmF0aW9uGh0KAmU0EhdrZXlGcmVlemVUb2tlblBlclRpY2tldBoRCgJlNRILa2V5QnV5VG9rZW4aFAoCZTYSDmtleUNsYWltUGFyYW1zGiAKAmU3EhprZXlVc2VyQm91Z2h0VGlja2V0c0Ftb3VudBoiCgJlOBIca2V5VXNlckhDQm91Z2h0VGlja2V0c0Ftb3VudBoUCgJlORIOa2V5VXNlclRpY2tldHMaFgoCZjESEGtleVVzZXJIQ1RpY2tldHMaIQoCZjISG2tleVVzZXJBdmFpbGFibGVBbGxvY2F0aW9ucxomCgJmMxIga2V5VXNlckFtb3VudEJ1eUFzc2V0SW5NYXJrZXRpbmcaHgoCZjQSGGtleVVzZXJCb3VnaHRBbGxvY2F0aW9ucxoYCgJmNRISa2V5VXNlckNsYWltU3RhdHVzGiAKAmY2EhprZXlVc2VyV2lubmVkVGlja2V0c0Ftb3VudBoYCgJmNxISa2V5VXNlckZyZWV6ZVRva2VuGgwKAmY4EgZvcmFjbGUaEAoCZjkSCmdvdmVybmFuY2UaFgoCZzESEGNvbW1pc3Npb25XYWxsZXQaGAoCZzISEnN0YWtpbmdVU0ROQWRkcmVzcxoKCgJnMxIEVVNEThoYCgJnNBISYWRtaW5QdWJLZXlTdGFraW5nGhoKAmc1EhRtYXhBbGxvY2F0aW9uc0Ftb3VudBoOCgJnNhIIaXNBY3RpdmUaFwoCZzcSEWFjdGl2ZUxhdW5jaHBhZElkGhEKAmc4EgtnZXRBZG1pblB1YhoRCgJnORILa2V5QWRtaW5QdWIaDQoCaDESByRtYXRjaDAaDAoCaDISBnN0cmluZxoNCgJoMxIHbm90aGluZxoSCgJoNBIMYWRtaW5QdWJLZXkxGhIKAmg1EgxhZG1pblB1YktleTIaEgoCaDYSDGFkbWluUHViS2V5MxoSCgJoNxIMZ2V0QXNzZXRJbmZvGg0KAmg4Egdhc3NldElkGg4KAmg5EghzdHJpbmdJZBoKCgJpMRIEaW5mbxoLCgJpMhIFd2F2ZXMaGAoCaTMSEmdldExhdW5jaHBhZE5leHRJZBoWCgJpNBIQc3Rha2VkVXNkbkFtb3VudBocCgJpNRIWZ2V0QXNzZXRJbmZvRnJvbVN0cmluZxoOCgJpNhIIYXNzZXRTdHIaEQoCaTcSC2xhdW5jaHBhZElkGgoKAmk4EgRoYXNoGg0KAmk5EgdhZGRyZXNzGhQKAmoxEg5wcm9qZWN0QWRkcmVzcxoRCgJqMhILc3RhcnRIZWlnaHQaDgoCajMSCGR1cmF0aW9uGg4KAmo0EghidXlUb2tlbhoQCgJqNRIKY29tbWlzc2lvbhoVCgJqNhIPdG9rZW5zUGVyVGlja2V0GhMKAmo3Eg1wcmljZVBlclRva2VuGhkKAmo4EhNzd29wZmlUaWNrZXRzQW1vdW50GhoKAmo5EhRjYW1wYWlnblRva2Vuc0Ftb3VudBoZCgJrMRITdG9rZW5zUGVyQWxsb2NhdGlvbhoTCgJrMhINc3dvcFBlclRpY2tldBoYCgJrMxISc3dvcEZyZWV6ZUR1cmF0aW9uGhEKAms0EgtjbGFpbVBhcmFtcxoZCgJrNRITSGlnaENvbXBldGl0aW9uU2FsZRoeCgJrNhIYaGlnaENvbXBldGl0aW9uQ29taXNzaW9uGiIKAms3EhxoaWdoQ29tcGV0aXRpb25UaWNrZXRzQW1vdW50GhsKAms4EhVmcmVlemVBZGRpdGlvbmFsVG9rZW4aEgoCazkSDGZyZWV6ZVBhcmFtcxoUCgJsMRIObGF1bmNocGFkSWRTdHIaEQoCbDISCyR0MDYzMzU2NDEwGg8KAmwzEglwbXRBbW91bnQaEAoCbDQSCnBtdEFzc2V0SWQaEQoCbDUSCyR0MDY0MTk2NDkyGhMKAmw2Eg1wbXRTdHJBc3NldElkGhIKAmw3EgxwbXRBc3NldE5hbWUaEQoCbDgSC3BtdERlY2ltYWxzGhsKAmw5EhVmcmVlemVBZGRpdGlvbmFsRW50cnkaCwoCbTESBXJlZklkGhEKAm0yEgskdDA4OTkyOTA2NxoRCgJtMxILJHQwOTA3MjkyMjIaEAoCbTQSCmJ1eUFzc2V0SWQaEwoCbTUSDWJ1eUFzc2V0U3RySWQaEgoCbTYSDGJ1eUFzc2V0TmFtZRoWCgJtNxIQYnV5QXNzZXREZWNpbWFscxoRCgJtOBILc3Rha2VkU3dvcHMaHQoCbTkSF2FsbG93ZWRUaWNrZXRzQW1vdW50QWxsGhkKAm4xEhNib3VnaHRUaWNrZXRzQW1vdW50GhoKAm4yEhRhbGxvd2VkVGlja2V0c0Ftb3VudBoTCgJuMxINZnJlZXplVG9rZW5JZBoQCgJuNBIKdG9rZW5QcmljZRoTCgJuNRINJHQwMTExMTAxMTI1NBoNCgJuNhIHdG9rZW5JZBoVCgJuNxIPdG9rZW5TdHJBc3NldElkGhQKAm44Eg50b2tlbkFzc2V0TmFtZRoTCgJuORINdG9rZW5EZWNpbWFscxoRCgJvMRILdGlja2V0UHJpY2UaGQoCbzISE2NvbW1pc3Npb25QZXJUaWNrZXQaFQoCbzMSD2J1eVRpY2tldEFtb3VudBocCgJvNBIWYWxsb3dlZEJ1eVRpY2tldEFtb3VudBoiCgJvNRIcYWxsb3dlZEJ1eVByaWNlV2l0aENvbWlzc2lvbhoMCgJvNhIGY2hhbmdlGhoKAm83EhRmcmVlemVUb2tlblBlclRpY2tldBoTCgJvOBINJHQwMTI0MTgxMjUwNRoVCgJvORIPcG10QW1vdW50RnJlZXplGhYKAnAxEhBwbXRBc3NldElkRnJlZXplGhMKAnAyEg0kdDAxMjUyMjEyNjEzGhkKAnAzEhNwbXRGcmVlemVTdHJBc3NldElkGhgKAnA0EhJwbXRGcmVlemVBc3NldE5hbWUaFwoCcDUSEXBtdEZyZWV6ZURlY2ltYWxzGhYKAnA2EhBuZWVkRnJlZXplVG9rZW5zGh4KAnA3Ehh1c2VyQm91Z2h0VGlja2V0c051bWJlcnMaHAoCcDgSFmxhc3RCb3VnaHRUaWNrZXROdW1iZXIaEQoCcDkSC2JvdWdodFJhbmdlGiEKAnExEhtuZXdVc2VyQm91Z2h0VGlja2V0c051bWJlcnMaCQoCcTISA2ludhoPCgJxMxIJYmFzZUVudHJ5GhMKAnE0Eg0kdDAxNDY2MDE0NzM1GhMKAnE1Eg0kdDAxNDc0MDE0ODkwGhkKAnE2EhN1c2VyVXNkbkluTWFya2V0aW5nGhUKAnE3Eg91c2RuSW5NYXJrZXRpbmcaFwoCcTgSEWJvdWdodEFsbG9jYXRpb25zGhMKAnE5Eg0kdDAxNTU1OTE1NzAzGiIKAnIxEhxhbGxvY2F0aW9uUHJpY2VXaXRoQ29taXNzaW9uGhoKAnIyEhRidXlBbGxvY2F0aW9uc0Ftb3VudBoTCgJyMxINJHQwMTgwMTIxODA4NxoTCgJyNBINJHQwMTgwOTIxODI0MhobCgJyNRIVYm91Z2h0SENUaWNrZXRzQW1vdW50GhkKAnI2EhNoaWdoQ29tcGV0aXRpb25TYWxlGhMKAnI3Eg0kdDAxOTQ5MTE5NjM1GhsKAnI4EhVidXlQcmljZVdpdGhDb21pc3Npb24aDwoCcjkSCXZyZkhlaWdodBoQCgJzMRIKc2VjcmV0V29yZBoPCgJzMhIJc2F2ZWRIYXNoGg4KAnMzEghjYWxjSGFzaBoTCgJzNBINJHQwMjI0MjAyMjU3MBoSCgJzNRIMY29tbWlzc2lvbkhDGhgKAnM2EhJ0cmFuc2ZlcmVkQnV5QXNzZXQaIQoCczcSG3N3b3BmaU1lbWJlcnNCdXlBc3NldEFtb3VudBocCgJzOBIWc3dvcGZpSENCdXlBc3NldEFtb3VudBocCgJzORIWc3dvcGZpTWVtYmVyc0NvbWlzc2lvbhoXCgJ0MRIRc3dvcGZpSENDb21pc3Npb24aJAoCdDISHnRvdGFsQW1vdW50QnV5QXNzZXRJbk1hcmtldGluZxoYCgJ0MxISbWFya2V0aW5nQ29taXNzaW9uGhMKAnQ0Eg11bnN0YWtlQW1vdW50GhUKAnQ1Eg91c2VyQ2xhaW1TdGF0dXMaEwoCdDYSDWJvdWdodFRpY2tldHMaEwoCdDcSDSR0MDI1NDI5MjU1NzkaEwoCdDgSDXdvbm5lZFRpY2tldHMaGgoCdDkSFGF3YWlsYWJsZUFsbG9jYXRpb25zGhgKAnUxEhJhbGxvd2VkQWxsb2NhdGlvbnMaEwoCdTISDSR0MDI2MjI2MjYzNzAaGgoCdTMSFHRyYW5zZmVyVG9rZW5zQW1vdW50GiEKAnU0Ehtub3RBbGxvd2VkQWxsb2NhdGlvbnNUb2tlbnMaHAoCdTUSFmJ1eUFzc2V0Rm9yQWxsb2NhdGlvbnMaIAoCdTYSGmJ1eUFzc2V0Rm9yVW53b25uZWRUaWNrZXRzGhwKAnU3EhZyZXR1cm5lZEJ1eUFzc2V0QW1vdW50GhIKAnU4Egx0cmFuc2ZlclVzZG4aFAoCdTkSDnRyYW5zZmVyVG9rZW5zGhcKAnYxEhF1c2VyVG9rZW5zRnJlZXplZBoZCgJ2MhITZnJlZXplVG9rZW5EdXJhdGlvbhoUCgJ2MxIOYmxvY2tFbmRIZWlnaHQaDAoCdjQSBmFtb3VudBoTCgJ2NRINJHQwMzAwNDIzMDE5MhoMCgJ2NhIGdmVyaWZ5GhkKAnY3EhNtdWx0aVNpZ25lZEJ5QWRtaW5zGhgKAnY4EhJhZG1pblB1YktleTFTaWduZWQaGAoCdjkSEmFkbWluUHViS2V5MlNpZ25lZBoYCgJ3MRISYWRtaW5QdWJLZXkzU2lnbmVkGhMKAncyEg1zaWduZWRCeUFkbWluGgkKAnczEgNkdHgAAABFAAAAAAJhMQIAAAAGYWN0aXZlAAAAAAJhMgIAAAALYWRtaW5fcHViXzEAAAAAAmEzAgAAAAthZG1pbl9wdWJfMgAAAAACYTQCAAAAC2FkbWluX3B1Yl8zAAAAAAJhNQIAAAAhbGF1bmNocGFkX2RhdGFfdHJhbnNhY3Rpb25fc3RhdHVzAAAAAAJhNgIAAAARbGF1bmNocGFkX25leHRfaWQAAAAAAmE3AgAAABNsYXVuY2hwYWRfYWN0aXZlX2lkAAAAAAJhOAIAAAALaW5pdF9jYWxsZXIAAAAAAmE5AgAAAAhfYWRkcmVzcwAAAAACYjECAAAADF9pbml0X2hlaWdodAAAAAACYjICAAAADV9zdGFydF9oZWlnaHQAAAAAAmIzAgAAABBfZmluYWxpc2VfaGVpZ2h0AAAAAAJiNAIAAAAKX2NvbWlzc2lvbgAAAAACYjUCAAAAG19oaWdoX2NvbXBldGl0aW9uX2NvbWlzc2lvbgAAAAACYjYCAAAACV9hc3NldF9pZAAAAAACYjcCAAAAE190b3RhbF90b2tlbl9hbW91bnQAAAAAAmI4AgAAABVfdG90YWxfYnV5X2Fzc2V0X3NvbGQAAAAAAmI5AgAAACZfdG90YWxfYnV5X2Fzc2V0X3NvbGRfaGlnaF9jb21wZXRpdGlvbgAAAAACYzECAAAAEl90b2tlbnNfcGVyX3RpY2tldAAAAAACYzICAAAAEF9wcmljZV9wZXJfdG9rZW4AAAAAAmMzAgAAABBfc3dvcF9wZXJfdGlja2V0AAAAAAJjNAIAAAAXX3RpY2tldHNfc3dvcGZpX21lbWJlcnMAAAAAAmM1AgAAABlfdGlja2V0c19oaWdoX2NvbXBldGl0aW9uAAAAAAJjNgIAAAATX3Rva2Vuc19hY2Nlc3NfbGlzdAAAAAACYzcCAAAAFl90b2tlbnNfcGVyX2FsbG9jYXRpb24AAAAAAmM4AgAAACRfdGlja2V0X2xhc3RfbnVtYmVyX2hpZ2hfY29tcGV0aXRpb24AAAAAAmM5AgAAABNfdGlja2V0X2xhc3RfbnVtYmVyAAAAAAJkMQIAAAAMX1NXT1BfYW1vdW50AAAAAAJkMgIAAAAHX3JlZl9pZAAAAAACZDMCAAAADF92ZXJpZnlfaGFzaAAAAAACZDQCAAAACV9kdXJhdGlvbgAAAAACZDUCAAAAJ190b3RhbF9wdXJjaGFzZWRfYnV5X2Fzc2V0X2luX21hcmtldGluZwAAAAACZDYCAAAAMV90b3RhbF9wdXJjaGFzZWRfYnV5X2Fzc2V0X2luX21hcmtldGluZ19maW5hbGl6ZWQAAAAAAmQ3AgAAABNfdHJhbnNmZXJfYnV5X2Fzc2V0AAAAAAJkOAIAAAAVX2ZyZWV6ZV9zd29wX2R1cmF0aW9uAAAAAAJkOQIAAAAWX2hpZ2hfY29tcGV0aXRpb25fc2FsZQAAAAACZTECAAAAGF9mcmVlemVfYWRkaXRpb25hbF90b2tlbgAAAAACZTICAAAAEF9mcmVlemVfdG9rZW5faWQAAAAAAmUzAgAAABZfZnJlZXplX3Rva2VuX2R1cmF0aW9uAAAAAAJlNAIAAAAYX2ZyZWV6ZV90b2tlbl9wZXJfdGlja2V0AAAAAAJlNQIAAAAKX2J1eV90b2tlbgAAAAACZTYCAAAADV9jbGFpbV9wYXJhbXMAAAAAAmU3AgAAAA9fYm91Z2h0X3RpY2tldHMAAAAAAmU4AgAAACBfYm91Z2h0X3RpY2tldHNfaGlnaF9jb21wZXRpdGlvbgAAAAACZTkCAAAAD190aWNrZXRzX251bWJlcgAAAAACZjECAAAAIF90aWNrZXRzX251bWJlcl9oaWdoX2NvbXBldGl0aW9uAAAAAAJmMgIAAAAdX2F2YWlsYWJsZV9wdXJjaGFzZV9tYXJrZXRpbmcAAAAAAmYzAgAAACFfcHVyY2hhc2VkX2J1eV9hc3NldF9pbl9tYXJrZXRpbmcAAAAAAmY0AgAAABNfYm91Z2h0X2FsbG9jYXRpb25zAAAAAAJmNQIAAAANX2NsYWltX3N0YXR1cwAAAAACZjYCAAAAD190aWNrZXRzX3Jlc3VsdAAAAAACZjcCAAAAFF9mcmVlemVfdG9rZW5fYW1vdW50AAAAAAJmOAkBAAAAB0FkZHJlc3MAAAABAQAAABoBVOlFqh6QLzqu8boO5i6akl8amITh82KzCAAAAAACZjkJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVSq+mnegfQTUoXKPy46iFGzGeqYHFnyDS0AAAAAAmcxCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFUjCkd+bF5UssJflqf2tcvBgcUg+wM3RFJAAAAAAJnMgkBAAAAB0FkZHJlc3MAAAABAQAAABoBVLmJzc9HcbqXcuy4RQ8zsKpJhdENeDICbQAAAAACZzMBAAAAIG8ko8qrMNxSKZjoLGFa7lp/I03CLXW76Z2qVODS0AfBAAAAAAJnNAEAAAAgBM915WTQwQ9OZ7kfE2TEGg3qhCRCMX0zkF1AWAqdk0oAAAAAAmc1AAAAAAAAAAACAAAAAAJnNgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBsAAAACBQAAAAR0aGlzBQAAAAJhMQYAAAAAAmc3CQEAAAALdmFsdWVPckVsc2UAAAACCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzBQAAAAJhNwD//////////wEAAAACZzgAAAABAAAAAmc5BAAAAAJoMQkABB0AAAACBQAAAAJmOAUAAAACZzkDCQAAAQAAAAIFAAAAAmgxAgAAAAZTdHJpbmcEAAAAAmgyBQAAAAJoMQkAAlkAAAABBQAAAAJoMgQAAAACaDMFAAAAAmgxCQAAAgAAAAECAAAAGUFkbWluIHB1YmxpYyBrZXkgaXMgZW1wdHkAAAAAAmg0CQEAAAACZzgAAAABBQAAAAJhMgAAAAACaDUJAQAAAAJnOAAAAAEFAAAAAmEzAAAAAAJoNgkBAAAAAmc4AAAAAQUAAAACYTQBAAAAAmg3AAAAAQAAAAJoOAQAAAACaDEFAAAAAmg4AwkAAAEAAAACBQAAAAJoMQIAAAAKQnl0ZVZlY3RvcgQAAAACaWQFAAAAAmgxBAAAAAJoOQkAAlgAAAABBQAAAAJpZAQAAAACaTEJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkAA+wAAAABBQAAAAJpZAkAASwAAAACCQABLAAAAAICAAAABkFzc2V0IAUAAAACaDkCAAAADiBkb2Vzbid0IGV4aXN0CQAFFQAAAAMFAAAAAmg5CAUAAAACaTEAAAAEbmFtZQgFAAAAAmkxAAAACGRlY2ltYWxzAwkAAAEAAAACBQAAAAJoMQIAAAAEVW5pdAQAAAACaTIFAAAAAmgxCQAFFQAAAAMCAAAABVdBVkVTAgAAAAVXQVZFUwAAAAAAAAAACAkAAAIAAAABAgAAAAtNYXRjaCBlcnJvcgEAAAACaTMAAAAACQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAAmE2AAAAAAAAAAABAQAAAAJpNAAAAAAJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAACZzIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAADHJwZF9iYWxhbmNlXwkAAlgAAAABBQAAAAJnMwIAAAABXwkABCUAAAABBQAAAAR0aGlzAAAAAAAAAAAAAQAAAAJpNQAAAAEAAAACaTYDCQAAAAAAAAIFAAAAAmk2AgAAAAVXQVZFUwkABRYAAAAEBQAAAAR1bml0AgAAAAVXQVZFUwIAAAAFV0FWRVMAAAAAAAAAAAgEAAAAAmg5BQAAAAJpNgQAAAACaWQJAAJZAAAAAQUAAAACaTYEAAAAAmkxCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAPsAAAAAQUAAAACaWQJAAEsAAAAAgkAASwAAAACAgAAAAZBc3NldCAFAAAAAmg5AgAAAA4gZG9lc24ndCBleGlzdAkABRYAAAAEBQAAAAJpZAUAAAACaDkIBQAAAAJpMQAAAARuYW1lCAUAAAACaTEAAAAIZGVjaW1hbHMAAAAMAAAAAWkBAAAADWhhc2hpbmdSYW5kb20AAAACAAAAAmk3AAAAAmk4AwkBAAAAASEAAAABBQAAAAJnNgkAAAIAAAABAgAAAB9EQXBwIGlzIGluYWN0aXZlIGF0IHRoaXMgbW9tZW50AwkBAAAAASEAAAABCQEAAAAPY29udGFpbnNFbGVtZW50AAAAAgkABEwAAAACBQAAAAJoNAkABEwAAAACBQAAAAJoNQkABEwAAAACBQAAAAJoNgUAAAADbmlsCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkJAAACAAAAAQIAAAAhT25seSBhZG1pbiBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAAAJpNwUAAAACZDMFAAAAAmk4BQAAAANuaWwAAAABaQEAAAAKaW5pdENhbGxlcgAAAAEAAAACaTkDCQEAAAABIQAAAAEFAAAAAmc2CQAAAgAAAAECAAAAH0RBcHAgaXMgaW5hY3RpdmUgYXQgdGhpcyBtb21lbnQDCQEAAAABIQAAAAEJAQAAAA9jb250YWluc0VsZW1lbnQAAAACCQAETAAAAAIFAAAAAmg0CQAETAAAAAIFAAAAAmg1CQAETAAAAAIFAAAAAmg2BQAAAANuaWwIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQkAAAIAAAABAgAAACFPbmx5IGFkbWluIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24JAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAACYTgFAAAAAmk5BQAAAANuaWwAAAABaQEAAAAEaW5pdAAAABIAAAACajEAAAACajIAAAACajMAAAACajQAAAACajUAAAACajYAAAACajcAAAACajgAAAACajkAAAACazEAAAACazIAAAACazMAAAACazQAAAACazUAAAACazYAAAACazcAAAACazgAAAACazkDCQEAAAABIQAAAAEFAAAAAmc2CQAAAgAAAAECAAAAH0RBcHAgaXMgaW5hY3RpdmUgYXQgdGhpcyBtb21lbnQDCQEAAAACIT0AAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB0AAAACBQAAAAR0aGlzBQAAAAJhOAIAAAAACQAAAgAAAAECAAAAKU9ubHkgcHJvamVjdCBhZG1pbiBjYW4gY2FsbCBpbml0IGZ1bmN0aW9uAwkBAAAAAiE9AAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAQkAAAIAAAABAgAAAB1PbmUgYXR0YWNoZWQgcGF5bWVudCBleHBlY3RlZAMJAABmAAAAAgUAAAAGaGVpZ2h0BQAAAAJqMgkAAAIAAAABAgAAADNTdGFydCBoZWlnaHQgbXVzdCBiZSBncmVhdGVyIHRoYW4gYmxvY2tjaGFpbiBoZWlnaHQDAwUAAAACazgJAQAAAAIhPQAAAAIJAAGQAAAAAQUAAAACazkAAAAAAAAAAAMHCQAAAgAAAAECAAAAJEZyZWV6ZSBwYXJhbXMgbGlzdCBtdXN0IGhhdmUgMyBpdGVtcwQAAAACaTcJAQAAAAJpMwAAAAAEAAAAAmwxCQABpAAAAAEFAAAAAmk3BAAAAAJsMgkABRQAAAACCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAZhbW91bnQICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAAB2Fzc2V0SWQEAAAAAmwzCAUAAAACbDIAAAACXzEEAAAAAmw0CAUAAAACbDIAAAACXzIEAAAAAmw1CQEAAAACaDcAAAABBQAAAAJsNAQAAAACbDYIBQAAAAJsNQAAAAJfMQQAAAACbDcIBQAAAAJsNQAAAAJfMgQAAAACbDgIBQAAAAJsNQAAAAJfMwQAAAACbDkDBQAAAAJrOAkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgkAASwAAAACBQAAAAJsMQUAAAACZTEGCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgUAAAACbDEFAAAAAmUyCQABkQAAAAIFAAAAAms5AAAAAAAAAAAACQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAAAmwxBQAAAAJlMwkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAAms5AAAAAAAAAAABCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAAAmwxBQAAAAJlNAkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAAms5AAAAAAAAAAACBQAAAANuaWwFAAAAA25pbAkABE4AAAACCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAAAmw2AgAAAApfbGF1bmNocGFkBQAAAAJpNwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAACYTYJAABkAAAAAgUAAAACaTcAAAAAAAAAAAEJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACBQAAAAJsMQUAAAACYTkFAAAAAmoxCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAAAmwxBQAAAAJiMQUAAAAGaGVpZ2h0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAAAmwxBQAAAAJiMgUAAAACajIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAACbDEFAAAAAmQ0BQAAAAJqMwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIFAAAAAmwxBQAAAAJlNQUAAAACajQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAACbDEFAAAAAmQ4BQAAAAJrMwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAAJsMQUAAAACYjcFAAAAAmwzCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgUAAAACbDEFAAAAAmI2BQAAAAJsNgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAAJsMQUAAAACYjQFAAAAAmo1CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAAAmwxBQAAAAJiNQUAAAACazYJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAACbDEFAAAAAmM4AAAAAAAAAAAACQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAAAmwxBQAAAAJjMQUAAAACajYJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAACbDEFAAAAAmMyBQAAAAJqNwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAAJsMQUAAAACYzMFAAAAAmsyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAAAmwxBQAAAAJjNAUAAAACajgJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAACbDEFAAAAAmM2BQAAAAJqOQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAAJsMQUAAAACYzUFAAAAAms3CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAAAmwxBQAAAAJjNwUAAAACazEJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACBQAAAAJsMQUAAAACZTYJAAS5AAAAAgUAAAACazQCAAAAASwJAARMAAAAAgkBAAAADEJvb2xlYW5FbnRyeQAAAAIJAAEsAAAAAgUAAAACbDEFAAAAAmQ5BQAAAAJrNQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAACYTcFAAAAAmk3CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAAmE4AgAAAAAFAAAAA25pbAUAAAACbDkAAAABaQEAAAAQY29tbWl0U3dvcGZpU2FsZQAAAAIAAAACaTcAAAACbTEEAAAAAm0yCQAFFAAAAAIICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAABmFtb3VudAgJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAHYXNzZXRJZAQAAAACbDMIBQAAAAJtMgAAAAJfMQQAAAACbDQIBQAAAAJtMgAAAAJfMgQAAAACbTMJAQAAAAJpNQAAAAEJAQAAAAV2YWx1ZQAAAAEJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAAmk3BQAAAAJlNQQAAAACbTQIBQAAAAJtMwAAAAJfMQQAAAACbTUIBQAAAAJtMwAAAAJfMgQAAAACbTYIBQAAAAJtMwAAAAJfMwQAAAACbTcIBQAAAAJtMwAAAAJfNAQAAAACbTgJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAACZjkJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAAmQxAAAAAAAAAAAABAAAAAJtOQkAAGkAAAACBQAAAAJtOAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAAmk3BQAAAAJjMwQAAAACbjEJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXICAAAAAV8JAAGkAAAAAQUAAAACaTcFAAAAAmU3AAAAAAAAAAAABAAAAAJuMgkAAGUAAAACBQAAAAJtOQUAAAACbjEEAAAAAmoyCQEAAAAFdmFsdWUAAAABCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAAaQAAAABBQAAAAJpNwUAAAACYjIEAAAAAmozCQEAAAAFdmFsdWUAAAABCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAAaQAAAABBQAAAAJpNwUAAAACZDQEAAAAAms4CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGwAAAAIFAAAABHRoaXMJAAEsAAAAAgkAAaQAAAABBQAAAAJpNwUAAAACZTEHAwkBAAAAASEAAAABBQAAAAJnNgkAAAIAAAABAgAAAB9EQXBwIGlzIGluYWN0aXZlIGF0IHRoaXMgbW9tZW50AwkBAAAAAiE9AAAAAgUAAAACZzcFAAAAAmk3CQAAAgAAAAECAAAAN1RoZXJlIGlzIG5vIGFjdGl2ZSBsYXVuY2hwYWQgb3IgdGhpcyBsYXVuY2hwYWQgaXMgZW5kZWQDCQAAZgAAAAIFAAAAAmoyBQAAAAZoZWlnaHQJAAACAAAAAQIAAAAeTGF1bmNocGFkIHNhbGUgbm90IHN0YXJ0ZWQgeWV0AwkAAGYAAAACBQAAAAZoZWlnaHQJAABkAAAAAgUAAAACajIFAAAAAmozCQAAAgAAAAECAAAAFExhdW5jaHBhZCBzYWxlIGVuZGVkAwMJAQAAAAEhAAAAAQUAAAACazgDCQEAAAACIT0AAAACCQABkAAAAAEIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAABBgkBAAAAAiE9AAAAAgUAAAACbDQFAAAAAm00BwkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAYT25lIGF0dGFjaGVkIHBheW1lbnQgaW4gBQAAAAJtNgIAAAAJIGV4cGVjdGVkAwMFAAAAAms4AwkBAAAAAiE9AAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAgYJAQAAAAIhPQAAAAIFAAAAAmw0BQAAAAJtNAcEAAAAAm4zCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAR0aGlzCQABLAAAAAIJAAGkAAAAAQUAAAACaTcFAAAAAmUyCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAKVR3byBhdHRhY2hlZCBwYXltZW50cyBleHBlY3RlZDogRmlyc3QgaW4gBQAAAAJtNgIAAAAMLCBzZWNvbmQgaW4gBQAAAAJuMwMDCQAAZwAAAAIAAAAAAAAAAAAFAAAAAm05BgkAAGcAAAACAAAAAAAAAAAABQAAAAJuMgkAAAIAAAABAgAAACpOb3QgZW5vdWdodCBTV09QIGluIHN0YWtpbmcgdG8gYnV5IHRpY2tldHMEAAAAAm40CQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzCQABLAAAAAIJAAGkAAAAAQUAAAACaTcFAAAAAmMyBAAAAAJqNgkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAAmk3BQAAAAJjMQQAAAACbjUJAQAAAAJpNQAAAAEJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMJAAEsAAAAAgkAAaQAAAABBQAAAAJpNwUAAAACYjYEAAAAAm42CAUAAAACbjUAAAACXzEEAAAAAm43CAUAAAACbjUAAAACXzIEAAAAAm44CAUAAAACbjUAAAACXzMEAAAAAm45CAUAAAACbjUAAAACXzQEAAAAAm8xCQAAawAAAAMFAAAAAmo2BQAAAAJuNAkAAGwAAAAGAAAAAAAAAAAKAAAAAAAAAAAABQAAAAJuOQAAAAAAAAAAAAAAAAAAAAAAAAUAAAAERE9XTgQAAAACbzIJAABrAAAAAwUAAAACbzEJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAAEsAAAAAgkAAaQAAAABBQAAAAJpNwUAAAACYjQAAAAAAAAAAGQEAAAAAm8zCQAAaQAAAAIFAAAAAmwzCQAAZAAAAAIFAAAAAm8xBQAAAAJvMgQAAAACbzQJAAGXAAAAAQkABEwAAAACBQAAAAJvMwkABEwAAAACBQAAAAJuMgUAAAADbmlsBAAAAAJvNQkAAGgAAAACBQAAAAJvNAkAAGQAAAACBQAAAAJvMQUAAAACbzIEAAAAAm82CQAAZQAAAAIFAAAAAmwzBQAAAAJvNQMJAAAAAAAAAgUAAAACbzMAAAAAAAAAAAAJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAADE5vdCBlbm91Z2h0IAUAAAACbTYCAAAADyB0byBidXkgdGlja2V0cwMJAQAAAAIhPQAAAAIFAAAAAm82AAAAAAAAAAAACQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAWV3JvbmcgcGF5bWVudC4gVG8gYnV5IAkAAaQAAAABBQAAAAJvNAIAAAAYdGlja2V0cyB5b3UgbmVlZCB0byBwYXkgCQABpAAAAAEFAAAAAm81BQAAAAJtNgQAAAACbDkDBQAAAAJrOAQAAAACbjMJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMJAAEsAAAAAgkAAaQAAAABBQAAAAJpNwUAAAACZTIEAAAAAm83CQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzCQABLAAAAAIJAAGkAAAAAQUAAAACaTcFAAAAAmU0BAAAAAJvOAkABRQAAAACCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAQAAAAZhbW91bnQICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAABAAAAB2Fzc2V0SWQEAAAAAm85CAUAAAACbzgAAAACXzEEAAAAAnAxCAUAAAACbzgAAAACXzIEAAAAAnAyCQEAAAACaDcAAAABBQAAAAJsNAQAAAACcDMIBQAAAAJwMgAAAAJfMQQAAAACcDQIBQAAAAJwMgAAAAJfMgQAAAACcDUIBQAAAAJwMgAAAAJfMwQAAAACcDYJAABoAAAAAgUAAAACbzcFAAAAAm8zAwMJAQAAAAIhPQAAAAIFAAAAAnAzBQAAAAJuMwYJAQAAAAIhPQAAAAIFAAAAAnA2BQAAAAJvOQkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAEFlvdSBuZWVkIHRvIGFkZCAJAAGkAAAAAQUAAAACcDYCAAAAASAFAAAAAnA0AgAAABQgYXMgYSBzZWNvbmQgcGF5bWVudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXICAAAAAV8JAAGkAAAAAQUAAAACaTcFAAAAAmY3BQAAAAJvOQUAAAADbmlsBQAAAANuaWwEAAAAAnA3CQEAAAALdmFsdWVPckVsc2UAAAACCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyAgAAAAFfCQABpAAAAAEFAAAAAmk3BQAAAAJlOQIAAAAABAAAAAJwOAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAAmk3BQAAAAJjOAQAAAACcDkJAAEsAAAAAgkAASwAAAACCQABpAAAAAEJAABkAAAAAgUAAAACcDgAAAAAAAAAAAECAAAAAS0JAAGkAAAAAQkAAGQAAAACBQAAAAJwOAUAAAACbzQEAAAAAnExCQABLAAAAAIFAAAAAnA3AwkBAAAAAiE9AAAAAgUAAAACcDcCAAAAAAkAASwAAAACAgAAAAEsBQAAAAJwOQkAASwAAAACAgAAAAAFAAAAAnA5BAAAAAJxMgMJAAAAAAAAAgUAAAACbTQFAAAAAmczCQAD/AAAAAQFAAAAAmcyAgAAAAxsb2NrTmV1dHJpbm8FAAAAA25pbAkABEwAAAACCQEAAAAPQXR0YWNoZWRQYXltZW50AAAAAgUAAAACbDQFAAAAAmwzBQAAAANuaWwAAAAAAAAAAAADCQAAAAAAAAIFAAAAAnEyBQAAAAJxMgQAAAACcTMJAAROAAAAAgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXICAAAAAV8JAAGkAAAAAQUAAAACaTcFAAAAAmU3CQAAZAAAAAIFAAAAAm4xBQAAAAJvNAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAAmk3BQAAAAJjOAkAAGQAAAACBQAAAAJwOAUAAAACbzQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXICAAAAAV8JAAGkAAAAAQUAAAACaTcFAAAAAmU5BQAAAAJxMQUAAAADbmlsBQAAAAJsOQMJAQAAAAEhAAAAAQkBAAAACWlzRGVmaW5lZAAAAAEJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXICAAAAAV8JAAGkAAAAAQUAAAACaTcFAAAAAmQyCQAETgAAAAIFAAAAAnEzCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyAgAAAAFfCQABpAAAAAEFAAAAAmk3BQAAAAJkMgUAAAACbTEFAAAAA25pbAUAAAACcTMJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAAFGNvbW1pdEFjY2Vzc0xpc3RTYWxlAAAAAgAAAAJpNwAAAAJtMQQAAAACcTQJAAUUAAAAAggJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAGYW1vdW50CAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAdhc3NldElkBAAAAAJsMwgFAAAAAnE0AAAAAl8xBAAAAAJsNAgFAAAAAnE0AAAAAl8yBAAAAAJxNQkBAAAAAmk1AAAAAQkBAAAABXZhbHVlAAAAAQkABB0AAAACBQAAAAR0aGlzCQABLAAAAAIJAAGkAAAAAQUAAAACaTcFAAAAAmU1BAAAAAJtNAgFAAAAAnE1AAAAAl8xBAAAAAJtNQgFAAAAAnE1AAAAAl8yBAAAAAJtNggFAAAAAnE1AAAAAl8zBAAAAAJtNwgFAAAAAnE1AAAAAl80BAAAAAJxNgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgIAAAABXwkAAaQAAAABBQAAAAJpNwUAAAACZjMAAAAAAAAAAAAEAAAAAnE3CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAAaQAAAABBQAAAAJpNwUAAAACZDUAAAAAAAAAAAAEAAAAAnE4CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyAgAAAAFfCQABpAAAAAEFAAAAAmk3BQAAAAJmNAAAAAAAAAAAAAQAAAACajUJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAAEsAAAAAgkAAaQAAAABBQAAAAJpNwUAAAACYjQEAAAAAm40CQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzCQABLAAAAAIJAAGkAAAAAQUAAAACaTcFAAAAAmMyBAAAAAJrMQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAAmk3BQAAAAJjNwQAAAACcTkJAQAAAAJpNQAAAAEJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMJAAEsAAAAAgkAAaQAAAABBQAAAAJpNwUAAAACYjYEAAAAAm42CAUAAAACcTkAAAACXzEEAAAAAm43CAUAAAACcTkAAAACXzIEAAAAAm44CAUAAAACcTkAAAACXzMEAAAAAm45CAUAAAACcTkAAAACXzQEAAAAAnIxCQAAawAAAAMJAABrAAAAAwUAAAACbjQFAAAAAmsxCQAAbAAAAAYAAAAAAAAAAAoAAAAAAAAAAAAFAAAAAm45AAAAAAAAAAAAAAAAAAAAAAAABQAAAARET1dOCQAAZAAAAAIAAAAAAAAAAGQFAAAAAmo1AAAAAAAAAABkBAAAAAJqMgkBAAAABXZhbHVlAAAAAQkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAGkAAAAAQUAAAACaTcFAAAAAmIyBAAAAAJqMwkBAAAABXZhbHVlAAAAAQkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAGkAAAAAQUAAAACaTcFAAAAAmQ0AwkBAAAAASEAAAABBQAAAAJnNgkAAAIAAAABAgAAAB9EQXBwIGlzIGluYWN0aXZlIGF0IHRoaXMgbW9tZW50AwkBAAAAAiE9AAAAAgUAAAACZzcFAAAAAmk3CQAAAgAAAAECAAAAN1RoZXJlIGlzIG5vIGFjdGl2ZSBsYXVuY2hwYWQgb3IgdGhpcyBsYXVuY2hwYWQgaXMgZW5kZWQDCQAAZgAAAAIFAAAAAmoyBQAAAAZoZWlnaHQJAAACAAAAAQIAAAAeTGF1bmNocGFkIHNhbGUgbm90IHN0YXJ0ZWQgeWV0AwkAAGYAAAACBQAAAAZoZWlnaHQJAABkAAAAAgUAAAACajIFAAAAAmozCQAAAgAAAAECAAAAFExhdW5jaHBhZCBzYWxlIGVuZGVkAwMJAQAAAAIhPQAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEGCQEAAAACIT0AAAACBQAAAAJsNAUAAAACbTQJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAGE9uZSBhdHRhY2hlZCBwYXltZW50IGluIAUAAAACbTYCAAAACSBleHBlY3RlZAMJAABnAAAAAgUAAAACcTgFAAAAAmc1CQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAABFZb3UgY2FuIGJ1eSBvbmx5IAkAAaQAAAABBQAAAAJnNQIAAAALYWxsb2NhdGlvbnMDAwkBAAAAAiE9AAAAAgUAAAACcjEFAAAAAmwzCQEAAAACIT0AAAACCQAAaAAAAAIFAAAAAnIxAAAAAAAAAAACBQAAAAJsMwcJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAyV3JvbmcgcGF5bWVudC4gWW91IGNhbiBidXkgMSBvciAyIGFsbG9jYXRpb25zIGZvciAJAAGkAAAAAQUAAAACcjEFAAAAAm02AgAAAA8gcGVyIGFsbG9jYXRpb24EAAAAAnIyCQAAaQAAAAIFAAAAAmwzBQAAAAJyMQQAAAACcTIDCQAAAAAAAAIFAAAAAm00BQAAAAJnMwkAA/wAAAAEBQAAAAJnMgIAAAAMbG9ja05ldXRyaW5vBQAAAANuaWwJAARMAAAAAgkBAAAAD0F0dGFjaGVkUGF5bWVudAAAAAIFAAAAAmw0BQAAAAJsMwUAAAADbmlsAAAAAAAAAAAAAwkAAAAAAAACBQAAAAJxMgUAAAACcTIEAAAAAnEzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgIAAAABXwkAAaQAAAABBQAAAAJpNwUAAAACZjQJAABkAAAAAgUAAAACcTgFAAAAAnIyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgIAAAABXwkAAaQAAAABBQAAAAJpNwUAAAACZjMJAABkAAAAAgUAAAACcTYFAAAAAmwzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAACaTcFAAAAAmQ1CQAAZAAAAAIFAAAAAnE3BQAAAAJsMwUAAAADbmlsAwkBAAAAASEAAAABCQEAAAAJaXNEZWZpbmVkAAAAAQkABB0AAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgIAAAABXwkAAaQAAAABBQAAAAJpNwUAAAACZDIJAAROAAAAAgUAAAACcTMJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXICAAAAAV8JAAGkAAAAAQUAAAACaTcFAAAAAmQyBQAAAAJtMQUAAAADbmlsBQAAAAJxMwkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABaQEAAAAZY29tbWl0SGlnaENvbXBldGl0aW9uU2FsZQAAAAIAAAACaTcAAAACbTEEAAAAAnIzCQAFFAAAAAIICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAABmFtb3VudAgJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAHYXNzZXRJZAQAAAACbDMIBQAAAAJyMwAAAAJfMQQAAAACbDQIBQAAAAJyMwAAAAJfMgQAAAACcjQJAQAAAAJpNQAAAAEJAQAAAAV2YWx1ZQAAAAEJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAAmk3BQAAAAJlNQQAAAACbTQIBQAAAAJyNAAAAAJfMQQAAAACbTUIBQAAAAJyNAAAAAJfMgQAAAACbTYIBQAAAAJyNAAAAAJfMwQAAAACbTcIBQAAAAJyNAAAAAJfNAQAAAACajIJAQAAAAV2YWx1ZQAAAAEJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAAmk3BQAAAAJiMgQAAAACajMJAQAAAAV2YWx1ZQAAAAEJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAAmk3BQAAAAJkNAQAAAACcjUJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXICAAAAAV8JAAGkAAAAAQUAAAACaTcFAAAAAmU4AAAAAAAAAAAABAAAAAJyNgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBsAAAACBQAAAAR0aGlzCQABLAAAAAIJAAGkAAAAAQUAAAACaTcFAAAAAmQ5BwMJAQAAAAEhAAAAAQUAAAACZzYJAAACAAAAAQIAAAAfREFwcCBpcyBpbmFjdGl2ZSBhdCB0aGlzIG1vbWVudAMJAQAAAAIhPQAAAAIFAAAAAmc3BQAAAAJpNwkAAAIAAAABAgAAADdUaGVyZSBpcyBubyBhY3RpdmUgbGF1bmNocGFkIG9yIHRoaXMgbGF1bmNocGFkIGlzIGVuZGVkAwkBAAAAASEAAAABBQAAAAJyNgkAAAIAAAABAgAAADRUaGVyZSBpcyBubyBoaWdoIGNvbXBldGl0aW9uIHNhbGUgZm9yIHRoaXMgbGF1bmNocGFkAwkAAGYAAAACBQAAAAJqMgUAAAAGaGVpZ2h0CQAAAgAAAAECAAAAHkxhdW5jaHBhZCBzYWxlIG5vdCBzdGFydGVkIHlldAMJAABmAAAAAgUAAAAGaGVpZ2h0CQAAZAAAAAIFAAAAAmoyBQAAAAJqMwkAAAIAAAABAgAAABRMYXVuY2hwYWQgc2FsZSBlbmRlZAMDCQEAAAACIT0AAAACCQABkAAAAAEIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAABBgkBAAAAAiE9AAAAAgUAAAACbDQFAAAAAm00CQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAABhPbmUgYXR0YWNoZWQgcGF5bWVudCBpbiAFAAAAAm02AgAAAAkgZXhwZWN0ZWQEAAAAAm40CQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzCQABLAAAAAIJAAGkAAAAAQUAAAACaTcFAAAAAmMyBAAAAAJqNgkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAAmk3BQAAAAJjMQQAAAACcjcJAQAAAAJpNQAAAAEJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMJAAEsAAAAAgkAAaQAAAABBQAAAAJpNwUAAAACYjYEAAAAAm42CAUAAAACcjcAAAACXzEEAAAAAm43CAUAAAACcjcAAAACXzIEAAAAAm44CAUAAAACcjcAAAACXzMEAAAAAm45CAUAAAACcjcAAAACXzQEAAAAAm8xCQAAawAAAAMFAAAAAmo2BQAAAAJuNAkAAGwAAAAGAAAAAAAAAAAKAAAAAAAAAAAABQAAAAJuOQAAAAAAAAAAAAAAAAAAAAAAAAUAAAAERE9XTgQAAAACbzIJAABrAAAAAwUAAAACbzEJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAAEsAAAAAgkAAaQAAAABBQAAAAJpNwUAAAACYjUAAAAAAAAAAGQEAAAAAm8zCQAAaQAAAAIFAAAAAmwzCQAAZAAAAAIFAAAAAm8xBQAAAAJvMgQAAAACcjgJAABoAAAAAgUAAAACbzMJAABkAAAAAgUAAAACbzEFAAAAAm8yBAAAAAJvNgkAAGUAAAACBQAAAAJsMwUAAAACcjgDCQAAAAAAAAIFAAAAAm8zAAAAAAAAAAAACQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAAAxOb3QgZW5vdWdodCAFAAAAAm02AgAAAA8gdG8gYnV5IHRpY2tldHMDCQEAAAACIT0AAAACBQAAAAJvNgAAAAAAAAAAAAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAFldyb25nIHBheW1lbnQuIFRvIGJ1eSAJAAGkAAAAAQUAAAACbzMCAAAAGHRpY2tldHMgeW91IG5lZWQgdG8gcGF5IAkAAaQAAAABBQAAAAJyOAUAAAACbTYEAAAAAnA3CQEAAAALdmFsdWVPckVsc2UAAAACCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyAgAAAAFfCQABpAAAAAEFAAAAAmk3BQAAAAJmMQIAAAAABAAAAAJwOAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAAmk3BQAAAAJjOQQAAAACcDkJAAEsAAAAAgkAASwAAAACCQABpAAAAAEJAABkAAAAAgUAAAACcDgAAAAAAAAAAAECAAAAAS0JAAGkAAAAAQkAAGQAAAACBQAAAAJwOAUAAAACbzMEAAAAAnExCQABLAAAAAIFAAAAAnA3AwkBAAAAAiE9AAAAAgUAAAACcDcCAAAAAAkAASwAAAACAgAAAAEsBQAAAAJwOQkAASwAAAACAgAAAAAFAAAAAnA5BAAAAAJxMgMJAAAAAAAAAgUAAAACbTQFAAAAAmczCQAD/AAAAAQFAAAAAmcyAgAAAAxsb2NrTmV1dHJpbm8FAAAAA25pbAkABEwAAAACCQEAAAAPQXR0YWNoZWRQYXltZW50AAAAAgUAAAACbDQFAAAAAmwzBQAAAANuaWwAAAAAAAAAAAADCQAAAAAAAAIFAAAAAnEyBQAAAAJxMgQAAAACcTMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyAgAAAAFfCQABpAAAAAEFAAAAAmk3BQAAAAJlOAkAAGQAAAACBQAAAAJyNQUAAAACbzMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAAAJpNwUAAAACYzkJAABkAAAAAgUAAAACcDgFAAAAAm8zCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyAgAAAAFfCQABpAAAAAEFAAAAAmk3BQAAAAJmMQUAAAACcTEFAAAAA25pbAMJAQAAAAEhAAAAAQkBAAAACWlzRGVmaW5lZAAAAAEJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXICAAAAAV8JAAGkAAAAAQUAAAACaTcFAAAAAmQyCQAETgAAAAIFAAAAAnEzCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyAgAAAAFfCQABpAAAAAEFAAAAAmk3BQAAAAJkMgUAAAACbTEFAAAAA25pbAUAAAACcTMJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAACGZpbmFsaXNlAAAAAwAAAAJpNwAAAAJyOQAAAAJzMQQAAAACczIJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMJAAEsAAAAAgkAAaQAAAABBQAAAAJpNwUAAAACZDMEAAAAAnMzCQACWAAAAAEJAAH3AAAAAQkAAMsAAAACCQABmgAAAAEFAAAAAnI5CQABmwAAAAEFAAAAAnMxAwkBAAAAASEAAAABBQAAAAJnNgkAAAIAAAABAgAAAB9EQXBwIGlzIGluYWN0aXZlIGF0IHRoaXMgbW9tZW50AwkBAAAAASEAAAABCQEAAAAPY29udGFpbnNFbGVtZW50AAAAAgkABEwAAAACBQAAAAJoNAkABEwAAAACBQAAAAJoNQkABEwAAAACBQAAAAJoNgUAAAADbmlsCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkJAAACAAAAAQIAAAAhT25seSBhZG1pbiBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uAwkBAAAAAiE9AAAAAgUAAAACczMFAAAAAnMyCQAAAgAAAAECAAAAHHZyZiBIZWlnaHQgaGFzaCBub3QgbWF0Y2hpbmcEAAAAAnM0CQEAAAACaTUAAAABCQEAAAAFdmFsdWUAAAABCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgkAAaQAAAABBQAAAAJpNwUAAAACZTUEAAAAAm00CAUAAAACczQAAAACXzEEAAAAAm01CAUAAAACczQAAAACXzIEAAAAAm02CAUAAAACczQAAAACXzMEAAAAAm03CAUAAAACczQAAAACXzQEAAAAAmoxCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAR0aGlzCQABLAAAAAIJAAGkAAAAAQUAAAACaTcFAAAAAmE5BAAAAAJqNQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAAmk3BQAAAAJiNAQAAAACczUJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAAEsAAAAAgkAAaQAAAABBQAAAAJpNwUAAAACYjUEAAAAAnM2CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAAaQAAAABBQAAAAJpNwUAAAACZDcAAAAAAAAAAAAEAAAAAnM3CQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzCQABLAAAAAIJAAGkAAAAAQUAAAACaTcFAAAAAmI4BAAAAAJzOAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAAmk3BQAAAAJiOQAAAAAAAAAAAAQAAAACczkJAABrAAAAAwUAAAACczcFAAAAAmo1AAAAAAAAAABkBAAAAAJ0MQkAAGsAAAADBQAAAAJzOAUAAAACczUAAAAAAAAAAGQEAAAAAnQyCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzCQABLAAAAAIJAAGkAAAAAQUAAAACaTcFAAAAAmQ2BAAAAAJ0MwkAAGsAAAADBQAAAAJ0MgUAAAACajUAAAAAAAAAAGQEAAAAAnQ0CQAAZAAAAAIJAABkAAAAAgkAAGQAAAACCQAAZAAAAAIJAABkAAAAAgUAAAACczcFAAAAAnQyBQAAAAJzOQUAAAACdDMFAAAAAnM4BQAAAAJ0MQMJAABmAAAAAgUAAAACczYJAABkAAAAAgUAAAACczcFAAAAAnQyCQAAAgAAAAECAAAAKENhbid0IHRyYW5zZmVyIG5lZ2F0aXZlIHZhbHVlIHRvIHByb2plY3QEAAAAAnEyAwkAAAAAAAACBQAAAAJtNAUAAAACZzMJAAP8AAAABAUAAAACZzICAAAADnVubG9ja05ldXRyaW5vCQAETAAAAAIFAAAAAnQ0CQAETAAAAAIJAAJYAAAAAQUAAAACZzMFAAAAA25pbAUAAAADbmlsAAAAAAAAAAAAAwkAAAAAAAACBQAAAAJxMgUAAAACcTIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAAAJpNwUAAAACYjMFAAAABmhlaWdodAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAAJqMQkAAGUAAAACCQAAZAAAAAIFAAAAAnM3BQAAAAJ0MgUAAAACczYFAAAAAm00CQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAAmcxCQAAZAAAAAIJAABkAAAAAgUAAAACczkFAAAAAnQzBQAAAAJ0MQUAAAACbTQFAAAAA25pbAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABaQEAAAAFY2xhaW0AAAABAAAAAmk3BAAAAAJ0NQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBsAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgIAAAABXwkAAaQAAAABBQAAAAJpNwUAAAACZjUHBAAAAAJ0NgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgIAAAABXwkAAaQAAAABBQAAAAJpNwUAAAACZTcAAAAAAAAAAAAEAAAAAnE4CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyAgAAAAFfCQABpAAAAAEFAAAAAmk3BQAAAAJmNAAAAAAAAAAAAAMJAQAAAAEhAAAAAQUAAAACZzYJAAACAAAAAQIAAAAfREFwcCBpcyBpbmFjdGl2ZSBhdCB0aGlzIG1vbWVudAMJAQAAAAEhAAAAAQkBAAAACWlzRGVmaW5lZAAAAAEJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAAmk3BQAAAAJiMwkAAAIAAAABAgAAADFZb3UgY2FuJ3QgY2xhaW0gYmVjYXVzZSByZXN1bHRzIGFyZSBub3QgZmluYWxpemVkAwUAAAACdDUJAAACAAAAAQIAAAAXWW91IGFyZSBhbHJlYWR5IGNsYWltZWQDAwkAAAAAAAACBQAAAAJ0NgAAAAAAAAAAAAkAAAAAAAACBQAAAAJxOAAAAAAAAAAAAAcJAAACAAAAAQIAAAAuWW91IGNhbid0IGNsYWltIGJlY2F1c2UgeW91IGRvbid0IGJ1eSBhbnl0aGluZwQAAAACdDcJAQAAAAJpNQAAAAEJAQAAAAV2YWx1ZQAAAAEJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAAmk3BQAAAAJlNQQAAAACbTQIBQAAAAJ0NwAAAAJfMQQAAAACbTUIBQAAAAJ0NwAAAAJfMgQAAAACbTYIBQAAAAJ0NwAAAAJfMwQAAAACbTcIBQAAAAJ0NwAAAAJfNAQAAAACdDgJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXICAAAAAV8JAAGkAAAAAQUAAAACaTcFAAAAAmY2AAAAAAAAAAAABAAAAAJ0OQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgIAAAABXwkAAaQAAAABBQAAAAJpNwUAAAACZjIAAAAAAAAAAAAEAAAAAmo1CQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzCQABLAAAAAIJAAGkAAAAAQUAAAACaTcFAAAAAmI0BAAAAAJ1MQkAAZcAAAABCQAETAAAAAIFAAAAAnE4CQAETAAAAAIFAAAAAnQ5BQAAAANuaWwEAAAAAm40CQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzCQABLAAAAAIJAAGkAAAAAQUAAAACaTcFAAAAAmMyBAAAAAJqNgkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAAmk3BQAAAAJjMQQAAAACdTIJAQAAAAJpNQAAAAEJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMJAAEsAAAAAgkAAaQAAAABBQAAAAJpNwUAAAACYjYEAAAAAm42CAUAAAACdTIAAAACXzEEAAAAAm43CAUAAAACdTIAAAACXzIEAAAAAm44CAUAAAACdTIAAAACXzMEAAAAAm45CAUAAAACdTIAAAACXzQEAAAAAm8xCQAAawAAAAMFAAAAAmo2BQAAAAJuNAkAAGwAAAAGAAAAAAAAAAAKAAAAAAAAAAAABQAAAAJuOQAAAAAAAAAAAAAAAAAAAAAAAAUAAAAERE9XTgQAAAACazEJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAAEsAAAAAgkAAaQAAAABBQAAAAJpNwUAAAACYzcEAAAAAnUzCQAAZAAAAAIJAABoAAAAAgUAAAACdDgFAAAAAmo2CQAAaAAAAAIFAAAAAnUxBQAAAAJrMQQAAAACdTQJAABoAAAAAgkAAGUAAAACBQAAAAJxOAUAAAACdTEFAAAAAmsxBAAAAAJ1NQkAAGsAAAADCQAAawAAAAMFAAAAAnU0BQAAAAJuNAkAAGwAAAAGAAAAAAAAAAAKAAAAAAAAAAAABQAAAAJuOQAAAAAAAAAAAAAAAAAAAAAAAAUAAAAERE9XTgkAAGQAAAACAAAAAAAAAABkBQAAAAJqNQAAAAAAAAAAZAQAAAACdTYJAABrAAAAAwkAAGgAAAACCQAAZQAAAAIFAAAAAnQ2BQAAAAJ0OAUAAAACbzEJAABkAAAAAgAAAAAAAAAAZAUAAAACajUAAAAAAAAAAGQDAwkAAGYAAAACAAAAAAAAAAAABQAAAAJ1NQYJAABmAAAAAgAAAAAAAAAAAAUAAAACdTYJAAACAAAAAQIAAABSRXJyb3Igd2l0aCBhbGxvd2VkIGFsbG9jYXRpb24gcGFyYW0gb3Igd29ubmVkIHRpY2tldHMgcGFyYW0gcGxlYXNlIGNvbnRhY3Qgc3VwcG9ydAQAAAACdTcJAABkAAAAAgUAAAACdTYFAAAAAnU2BAAAAAJ1OAMJAABmAAAAAgUAAAACdTcAAAAAAAAAAAAJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAAJ1NwUAAAACbTQFAAAAA25pbAUAAAADbmlsBAAAAAJ1OQMJAABmAAAAAgUAAAACdTMAAAAAAAAAAAAJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAAJ1MwUAAAACbjYFAAAAA25pbAUAAAADbmlsBAAAAAJxMgMDCQAAZgAAAAIFAAAAAnU3AAAAAAAAAAAACQAAAAAAAAIFAAAAAm00BQAAAAJnMwcJAAP8AAAABAUAAAACZzICAAAADnVubG9ja05ldXRyaW5vCQAETAAAAAIFAAAAAnU3CQAETAAAAAIJAAJYAAAAAQUAAAACZzMFAAAAA25pbAUAAAADbmlsAAAAAAAAAAAAAwkAAAAAAAACBQAAAAJxMgUAAAACcTIJAAROAAAAAgkABE4AAAACCQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgIAAAABXwkAAaQAAAABBQAAAAJpNwUAAAACZjUGBQAAAANuaWwFAAAAAnU5BQAAAAJ1OAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABaQEAAAAQY2xhaW1GcmVlemVUb2tlbgAAAAEAAAACaTcEAAAAAms4CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGwAAAAIFAAAABHRoaXMJAAEsAAAAAgkAAaQAAAABBQAAAAJpNwUAAAACZTEHAwkBAAAAASEAAAABBQAAAAJnNgkAAAIAAAABAgAAAB9EQXBwIGlzIGluYWN0aXZlIGF0IHRoaXMgbW9tZW50AwkBAAAAASEAAAABCQEAAAAJaXNEZWZpbmVkAAAAAQkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAGkAAAAAQUAAAACaTcFAAAAAmIzCQAAAgAAAAECAAAAMVlvdSBjYW4ndCBjbGFpbSBiZWNhdXNlIHJlc3VsdHMgYXJlIG5vdCBmaW5hbGl6ZWQDCQEAAAABIQAAAAEFAAAAAms4CQAAAgAAAAECAAAAOVRoZXJlIGFyZSBubyBhZGRpdGlvbmFsIHRva2VuIGZyZWV6aW5nIGZvciB0aGlzIGxhdW5jaHBhZAQAAAACbjYJAAJZAAAAAQkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAAmk3BQAAAAJlMgQAAAACdjEJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXICAAAAAV8JAAGkAAAAAQUAAAACaTcFAAAAAmY3AAAAAAAAAAAABAAAAAJqMgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAGkAAAAAQUAAAACaTcFAAAAAmIyAAAAAAAAAAAABAAAAAJqMwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAGkAAAAAQUAAAACaTcFAAAAAmQ0AAAAAAAAAAAABAAAAAJ2MgkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAAmk3BQAAAAJlMwQAAAACdjMJAABkAAAAAgkAAGQAAAACBQAAAAJqMgUAAAACajMFAAAAAnYyAwkAAAAAAAACBQAAAAJ2MQAAAAAAAAAAAAkAAAIAAAABAgAAADhZb3UgYXJlIGFscmVhZHkgY2xhaW1lZCB5b3VyIHRva2VucyBvciBub3QgcGFpZCBhbnl0aGluZwMJAABmAAAAAgUAAAACdjMFAAAABmhlaWdodAkAAAIAAAABCQABLAAAAAICAAAAGVlvdXIgdG9rZW5zIGZyZWV6ZWQgdGVlbCAJAAGkAAAAAQUAAAACdjMJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAAJ2MQUAAAACbjYJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyAgAAAAFfCQABpAAAAAEFAAAAAmk3BQAAAAJmNwAAAAAAAAAAAAUAAAADbmlsAAAAAWkBAAAAEHRyYW5zZmVyQnV5QXNzZXQAAAACAAAAAmk3AAAAAnY0AwkBAAAAASEAAAABBQAAAAJnNgkAAAIAAAABAgAAABBEQXBwIGlzIGluYWN0aXZlAwkBAAAAASEAAAABCQEAAAAPY29udGFpbnNFbGVtZW50AAAAAgkABEwAAAACBQAAAAJoNAkABEwAAAACBQAAAAJoNQkABEwAAAACBQAAAAJoNgUAAAADbmlsCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkJAAACAAAAAQIAAAAhT25seSBhZG1pbiBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uBAAAAAJqMQkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAAmk3BQAAAAJhOQQAAAACdjUJAQAAAAJpNQAAAAEJAQAAAAV2YWx1ZQAAAAEJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAAmk3BQAAAAJlNQQAAAACbTQIBQAAAAJ2NQAAAAJfMQQAAAACbTUIBQAAAAJ2NQAAAAJfMgQAAAACbTYIBQAAAAJ2NQAAAAJfMwQAAAACbTcIBQAAAAJ2NQAAAAJfNAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAAmk3BQAAAAJkNwUAAAACdjQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAACajEFAAAAAnY0BQAAAAJtNAUAAAADbmlsAAAAAWkBAAAACHNodXRkb3duAAAAAAMJAQAAAAEhAAAAAQUAAAACZzYJAAACAAAAAQIAAAAVREFwcCBhbHJlYWR5IGluYWN0aXZlAwkBAAAAASEAAAABCQEAAAAPY29udGFpbnNFbGVtZW50AAAAAgkABEwAAAACBQAAAAJoNAkABEwAAAACBQAAAAJoNQkABEwAAAACBQAAAAJoNgUAAAADbmlsCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkJAAACAAAAAQIAAAAhT25seSBhZG1pbiBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uCQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACBQAAAAJhMQcFAAAAA25pbAAAAAFpAQAAAAhhY3RpdmF0ZQAAAAADBQAAAAJnNgkAAAIAAAABAgAAABNEQXBwIGFscmVhZHkgYWN0aXZlAwkBAAAAASEAAAABCQEAAAAPY29udGFpbnNFbGVtZW50AAAAAgkABEwAAAACBQAAAAJoNAkABEwAAAACBQAAAAJoNQkABEwAAAACBQAAAAJoNgUAAAADbmlsCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkJAAACAAAAAQIAAAAhT25seSBhZG1pbiBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uCQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACBQAAAAJhMQYFAAAAA25pbAAAAAEAAAACdHgBAAAAAnY2AAAAAAQAAAACdjcEAAAAAnY4AwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAFAAAAAmg0AAAAAAAAAAABAAAAAAAAAAAABAAAAAJ2OQMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAABBQAAAAJoNQAAAAAAAAAAAQAAAAAAAAAAAAQAAAACdzEDCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAgUAAAACaDYAAAAAAAAAAAEAAAAAAAAAAAAJAABnAAAAAgkAAGQAAAACCQAAZAAAAAIFAAAAAnY4BQAAAAJ2OQUAAAACdzEAAAAAAAAAAAIEAAAAAncyAwMDCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAUAAAACaDQGCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAUAAAACaDUGCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAUAAAACaDYGCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAUAAAACZzQEAAAAAmgxBQAAAAJ0eAMJAAABAAAAAgUAAAACaDECAAAAD0RhdGFUcmFuc2FjdGlvbgQAAAACdzMFAAAAAmgxAwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBsAAAACBQAAAAJmOAUAAAACYTUHBQAAAAJ3MgcFAAAAAnY3vQYSzQ==", "height": 1828204, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: CDWcwp553L4RJpxspWNTcpGXwthNGVK4Hch9wENYEfvb Next: 3t4G5GERYgzUXMfnuYcEKXmpfy9UkCF4JeCctU6btD7c Diff:
OldNewDifferences
2727
2828 let m = "_comission"
2929
30-let n = "_asset_id"
30+let n = "_high_competition_comission"
3131
32-let o = "_total_token_amount"
32+let o = "_asset_id"
3333
34-let p = "_total_usdn_sold"
34+let p = "_total_token_amount"
3535
36-let q = "_tokens_per_ticket"
36+let q = "_total_buy_asset_sold"
3737
38-let r = "_price_per_token"
38+let r = "_total_buy_asset_sold_high_competition"
3939
40-let s = "_swop_per_ticket"
40+let s = "_tokens_per_ticket"
4141
42-let t = "_tickets_swopfi_members"
42+let t = "_price_per_token"
4343
44-let u = "_tokens_access_list"
44+let u = "_swop_per_ticket"
4545
46-let v = "_tokens_per_allocation"
46+let v = "_tickets_swopfi_members"
4747
48-let w = "_ticket_last_number"
48+let w = "_tickets_high_competition"
4949
50-let x = "_SWOP_amount"
50+let x = "_tokens_access_list"
5151
52-let y = "_ref_id"
52+let y = "_tokens_per_allocation"
5353
54-let z = "_verify_hash"
54+let z = "_ticket_last_number_high_competition"
5555
56-let A = "_duration"
56+let A = "_ticket_last_number"
5757
58-let B = "_total_purchased_usdn_in_marketing"
58+let B = "_SWOP_amount"
5959
60-let C = "_total_purchased_usdn_in_marketing_finalized"
60+let C = "_ref_id"
6161
62-let D = "_transfer_usd"
62+let D = "_verify_hash"
6363
64-let E = "_freeze_swop_duration"
64+let E = "_duration"
6565
66-let F = "_freeze_additional_token"
66+let F = "_total_purchased_buy_asset_in_marketing"
6767
68-let G = "_freeze_token_id"
68+let G = "_total_purchased_buy_asset_in_marketing_finalized"
6969
70-let H = "_freeze_token_duration"
70+let H = "_transfer_buy_asset"
7171
72-let I = "_freeze_token_per_ticket"
72+let I = "_freeze_swop_duration"
7373
74-let J = "_bought_tickets"
74+let J = "_high_competition_sale"
7575
76-let K = "_tickets_number"
76+let K = "_freeze_additional_token"
7777
78-let L = "_available_purchase_marketing"
78+let L = "_freeze_token_id"
7979
80-let M = "_purchased_usdn_in_marketing"
80+let M = "_freeze_token_duration"
8181
82-let N = "_bought_allocations"
82+let N = "_freeze_token_per_ticket"
8383
84-let O = "_claim_status"
84+let O = "_buy_token"
8585
86-let P = "_tickets_result"
86+let P = "_claim_params"
8787
88-let Q = "_freeze_token_amount"
88+let Q = "_bought_tickets"
8989
90-let R = 10000
90+let R = "_bought_tickets_high_competition"
9191
92-let S = Address(base58'3NBBWfzZtZtszaXbitTKnrB2xXwv26Bn7H9')
92+let S = "_tickets_number"
9393
94-let T = Address(base58'3N5W8da2iiijVieA6qLGo7KzCJj8B19smWU')
94+let T = "_tickets_number_high_competition"
9595
96-let U = Address(base58'3N2hBdeDEs7wCNA9EY8qv3B6drjgKD64xQG')
96+let U = "_available_purchase_marketing"
9797
98-let V = Address(base58'3N6q7sCGSSLBUXDdjBdYGTJbZGZfhhh8cNg')
98+let V = "_purchased_buy_asset_in_marketing"
9999
100-let W = base58'8UrfDVd5GreeUwm7uPk7eYz1eMv376kzR52C6sANPkwS'
100+let W = "_bought_allocations"
101101
102-let X = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
102+let X = "_claim_status"
103103
104-let Y = 2
104+let Y = "_tickets_result"
105105
106-let Z = valueOrElse(getBoolean(this, a), true)
106+let Z = "_freeze_token_amount"
107107
108-let aa = valueOrElse(getIntegerValue(this, g), -1)
108+let aa = Address(base58'3NBBWfzZtZtszaXbitTKnrB2xXwv26Bn7H9')
109109
110-func ab (ac) = {
111- let ad = getString(S, ac)
112- if ($isInstanceOf(ad, "String"))
110+let ab = Address(base58'3N5W8da2iiijVieA6qLGo7KzCJj8B19smWU')
111+
112+let ac = Address(base58'3N2hBdeDEs7wCNA9EY8qv3B6drjgKD64xQG')
113+
114+let ad = Address(base58'3N6q7sCGSSLBUXDdjBdYGTJbZGZfhhh8cNg')
115+
116+let ae = base58'8UrfDVd5GreeUwm7uPk7eYz1eMv376kzR52C6sANPkwS'
117+
118+let af = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
119+
120+let ag = 2
121+
122+let ah = valueOrElse(getBoolean(this, a), true)
123+
124+let ai = valueOrElse(getIntegerValue(this, g), -1)
125+
126+func aj (ak) = {
127+ let al = getString(aa, ak)
128+ if ($isInstanceOf(al, "String"))
113129 then {
114- let ae = ad
115- fromBase58String(ae)
130+ let am = al
131+ fromBase58String(am)
116132 }
117133 else {
118- let af = ad
134+ let an = al
119135 throw("Admin public key is empty")
120136 }
121137 }
122138
123139
124-let ag = ab(b)
140+let ao = aj(b)
125141
126-let ah = ab(c)
142+let ap = aj(c)
127143
128-let ai = ab(d)
144+let aq = aj(d)
129145
130-func aj (ak) = {
131- let ad = ak
132- if ($isInstanceOf(ad, "ByteVector"))
146+func ar (as) = {
147+ let al = as
148+ if ($isInstanceOf(al, "ByteVector"))
133149 then {
134- let al = ad
135- let am = toBase58String(al)
136- let an = valueOrErrorMessage(assetInfo(al), (("Asset " + am) + " doesn't exist"))
137- $Tuple3(am, an.name, an.decimals)
150+ let at = al
151+ let au = toBase58String(at)
152+ let av = valueOrErrorMessage(assetInfo(at), (("Asset " + au) + " doesn't exist"))
153+ $Tuple3(au, av.name, av.decimals)
138154 }
139- else if ($isInstanceOf(ad, "Unit"))
155+ else if ($isInstanceOf(al, "Unit"))
140156 then {
141- let ao = ad
157+ let aw = al
142158 $Tuple3("WAVES", "WAVES", 8)
143159 }
144160 else throw("Match error")
145161 }
146162
147163
148-func ap () = valueOrElse(getInteger(this, f), 1)
164+func ax () = valueOrElse(getInteger(this, f), 1)
149165
150166
151-func aq () = valueOrElse(getInteger(V, ((("rpd_balance_" + toBase58String(W)) + "_") + toString(this))), 0)
167+func ay () = valueOrElse(getInteger(ad, ((("rpd_balance_" + toBase58String(ae)) + "_") + toString(this))), 0)
152168
153169
154-@Callable(ar)
155-func hashingRandom (as,at) = if (!(Z))
170+func az (aA) = if ((aA == "WAVES"))
171+ then $Tuple4(unit, "WAVES", "WAVES", 8)
172+ else {
173+ let au = aA
174+ let at = fromBase58String(aA)
175+ let av = valueOrErrorMessage(assetInfo(at), (("Asset " + au) + " doesn't exist"))
176+ $Tuple4(at, au, av.name, av.decimals)
177+ }
178+
179+
180+@Callable(aB)
181+func hashingRandom (aC,aD) = if (!(ah))
156182 then throw("DApp is inactive at this moment")
157- else if (!(containsElement([ag, ah, ai], ar.callerPublicKey)))
183+ else if (!(containsElement([ao, ap, aq], aB.callerPublicKey)))
158184 then throw("Only admin can call this function")
159- else [StringEntry((toString(as) + z), at)]
185+ else [StringEntry((toString(aC) + D), aD)]
160186
161187
162188
163-@Callable(ar)
164-func initCaller (au) = if (!(Z))
189+@Callable(aB)
190+func initCaller (aE) = if (!(ah))
165191 then throw("DApp is inactive at this moment")
166- else if (!(containsElement([ag, ah, ai], ar.callerPublicKey)))
192+ else if (!(containsElement([ao, ap, aq], aB.callerPublicKey)))
167193 then throw("Only admin can call this function")
168- else [StringEntry(h, au)]
194+ else [StringEntry(h, aE)]
169195
170196
171197
172-@Callable(ar)
173-func init (av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG) = if (!(Z))
198+@Callable(aB)
199+func init (aF,aG,aH,aI,aJ,aK,aL,aM,aN,aO,aP,aQ,aR,aS,aT,aU,aV,aW) = if (!(ah))
174200 then throw("DApp is inactive at this moment")
175- else if ((toString(ar.caller) != valueOrElse(getString(this, h), "")))
201+ else if ((toString(aB.caller) != valueOrElse(getString(this, h), "")))
176202 then throw("Only project admin can call init function")
177- else if ((size(ar.payments) != 1))
203+ else if ((size(aB.payments) != 1))
178204 then throw("One attached payment expected")
179- else if ((height > aw))
205+ else if ((height > aG))
180206 then throw("Start height must be greater than blockchain height")
181- else if (if (aF)
182- then (size(aG) != 3)
207+ else if (if (aV)
208+ then (size(aW) != 3)
183209 else false)
184210 then throw("Freeze params list must have 3 items")
185211 else {
186- let as = ap()
187- let aH = toString(as)
188- let aI = $Tuple2(ar.payments[0].amount, ar.payments[0].assetId)
189- let aJ = aI._1
190- let aK = aI._2
191- let aL = aj(aK)
192- let aM = aL._1
193- let aN = aL._2
194- let aO = aL._3
195- let aP = if (aF)
196- then [BooleanEntry((aH + F), true), StringEntry((aH + G), aG[0]), IntegerEntry((aH + H), parseIntValue(aG[1])), IntegerEntry((aH + I), parseIntValue(aG[2]))]
212+ let aC = ax()
213+ let aX = toString(aC)
214+ let aY = $Tuple2(aB.payments[0].amount, aB.payments[0].assetId)
215+ let aZ = aY._1
216+ let ba = aY._2
217+ let bb = ar(ba)
218+ let bc = bb._1
219+ let bd = bb._2
220+ let be = bb._3
221+ let bf = if (aV)
222+ then [BooleanEntry((aX + K), true), StringEntry((aX + L), aW[0]), IntegerEntry((aX + M), parseIntValue(aW[1])), IntegerEntry((aX + N), parseIntValue(aW[2]))]
197223 else nil
198- ([IntegerEntry((aM + "_launchpad"), as), IntegerEntry(f, (as + 1)), StringEntry((aH + i), av), IntegerEntry((aH + j), height), IntegerEntry((aH + k), aw), IntegerEntry((aH + A), R), IntegerEntry((aH + E), aE), IntegerEntry((aH + o), aJ), StringEntry((aH + n), aM), IntegerEntry((aH + m), ax), IntegerEntry((aH + w), 0), IntegerEntry((aH + q), ay), IntegerEntry((aH + r), az), IntegerEntry((aH + s), aD), IntegerEntry((aH + t), aA), IntegerEntry((aH + u), aB), IntegerEntry((aH + v), aC), IntegerEntry(g, as), StringEntry(h, "")] ++ aP)
224+ ([IntegerEntry((bc + "_launchpad"), aC), IntegerEntry(f, (aC + 1)), StringEntry((aX + i), aF), IntegerEntry((aX + j), height), IntegerEntry((aX + k), aG), IntegerEntry((aX + E), aH), StringEntry((aX + O), aI), IntegerEntry((aX + I), aQ), IntegerEntry((aX + p), aZ), StringEntry((aX + o), bc), IntegerEntry((aX + m), aJ), IntegerEntry((aX + n), aT), IntegerEntry((aX + z), 0), IntegerEntry((aX + s), aK), IntegerEntry((aX + t), aL), IntegerEntry((aX + u), aP), IntegerEntry((aX + v), aM), IntegerEntry((aX + x), aN), IntegerEntry((aX + w), aU), IntegerEntry((aX + y), aO), StringEntry((aX + P), makeString(aR, ",")), BooleanEntry((aX + J), aS), IntegerEntry(g, aC), StringEntry(h, "")] ++ bf)
199225 }
200226
201227
202228
203-@Callable(ar)
204-func commitSwopfiSale (as,aQ) = {
205- let aR = $Tuple2(ar.payments[0].amount, ar.payments[0].assetId)
206- let aJ = aR._1
207- let aK = aR._2
208- let aS = valueOrElse(getInteger(T, (toString(ar.caller) + x)), 0)
209- let aT = (aS / getIntegerValue(this, (toString(as) + s)))
210- let aU = valueOrElse(getInteger(this, (((toString(ar.caller) + "_") + toString(as)) + J)), 0)
211- let aV = (aT - aU)
212- let aw = value(getInteger(this, (toString(as) + k)))
213- let aW = value(getInteger(this, (toString(as) + A)))
214- let aF = valueOrElse(getBoolean(this, (toString(as) + F)), false)
215- if (!(Z))
229+@Callable(aB)
230+func commitSwopfiSale (aC,bg) = {
231+ let bh = $Tuple2(aB.payments[0].amount, aB.payments[0].assetId)
232+ let aZ = bh._1
233+ let ba = bh._2
234+ let bi = az(value(getString(this, (toString(aC) + O))))
235+ let bj = bi._1
236+ let bk = bi._2
237+ let bl = bi._3
238+ let bm = bi._4
239+ let bn = valueOrElse(getInteger(ab, (toString(aB.caller) + B)), 0)
240+ let bo = (bn / getIntegerValue(this, (toString(aC) + u)))
241+ let bp = valueOrElse(getInteger(this, (((toString(aB.caller) + "_") + toString(aC)) + Q)), 0)
242+ let bq = (bo - bp)
243+ let aG = value(getInteger(this, (toString(aC) + k)))
244+ let aH = value(getInteger(this, (toString(aC) + E)))
245+ let aV = valueOrElse(getBoolean(this, (toString(aC) + K)), false)
246+ if (!(ah))
216247 then throw("DApp is inactive at this moment")
217- else if ((aa != as))
248+ else if ((ai != aC))
218249 then throw("There is no active launchpad or this launchpad is ended")
219- else if ((aw > height))
250+ else if ((aG > height))
220251 then throw("Launchpad sale not started yet")
221- else if ((height > (aw + aW)))
252+ else if ((height > (aG + aH)))
222253 then throw("Launchpad sale ended")
223- else if (if (!(aF))
224- then if ((size(ar.payments) != 1))
254+ else if (if (!(aV))
255+ then if ((size(aB.payments) != 1))
225256 then true
226- else (aK != W)
257+ else (ba != bj)
227258 else false)
228- then throw("One attached payment in USDN expected")
229- else if (if (aF)
230- then if ((size(ar.payments) != 2))
259+ then throw((("One attached payment in " + bl) + " expected"))
260+ else if (if (aV)
261+ then if ((size(aB.payments) != 2))
231262 then true
232- else (aK != W)
263+ else (ba != bj)
233264 else false)
234265 then {
235- let aX = getStringValue(this, (toString(as) + G))
236- throw(("Two attached payments expected: First in USDN, second in " + aX))
266+ let br = getStringValue(this, (toString(aC) + L))
267+ throw(((("Two attached payments expected: First in " + bl) + ", second in ") + br))
237268 }
238- else if (if ((0 >= aT))
269+ else if (if ((0 >= bo))
239270 then true
240- else (0 >= aV))
271+ else (0 >= bq))
241272 then throw("Not enought SWOP in staking to buy tickets")
242273 else {
243- let aY = getIntegerValue(this, (toString(as) + r))
244- let ay = getIntegerValue(this, (toString(as) + q))
245- let aZ = fromBase58String(getStringValue(this, (toString(as) + n)))
246- let ba = aj(aZ)
247- let bb = ba._1
248- let bc = ba._2
249- let bd = ba._3
250- let be = fraction(ay, aY, pow(10, 0, bd, 0, 0, DOWN))
251- let bf = fraction(be, getIntegerValue(this, (toString(as) + m)), 100)
252- let bg = (aJ / (be + bf))
253- let bh = min([bg, aV])
254- let bi = (bh * (be + bf))
255- let bj = (aJ - bi)
256- if ((bg == 0))
257- then throw("Not enought USDN to buy tickets")
258- else if ((bj != 0))
259- then throw((((("Wrong payment. To buy " + toString(bh)) + "tickets you need to pay ") + toString(bi)) + "USDN"))
274+ let bs = getIntegerValue(this, (toString(aC) + t))
275+ let aK = getIntegerValue(this, (toString(aC) + s))
276+ let bt = az(getStringValue(this, (toString(aC) + o)))
277+ let bu = bt._1
278+ let bv = bt._2
279+ let bw = bt._3
280+ let bx = bt._4
281+ let by = fraction(aK, bs, pow(10, 0, bx, 0, 0, DOWN))
282+ let bz = fraction(by, getIntegerValue(this, (toString(aC) + m)), 100)
283+ let bA = (aZ / (by + bz))
284+ let bB = min([bA, bq])
285+ let bC = (bB * (by + bz))
286+ let bD = (aZ - bC)
287+ if ((bA == 0))
288+ then throw((("Not enought " + bl) + " to buy tickets"))
289+ else if ((bD != 0))
290+ then throw((((("Wrong payment. To buy " + toString(bB)) + "tickets you need to pay ") + toString(bC)) + bl))
260291 else {
261- let aP = if (aF)
292+ let bf = if (aV)
262293 then {
263- let aX = getStringValue(this, (toString(as) + G))
264- let bk = getIntegerValue(this, (toString(as) + I))
265- let bl = $Tuple2(ar.payments[1].amount, ar.payments[1].assetId)
266- let bm = bl._1
267- let bn = bl._2
268- let bo = aj(aK)
269- let bp = bo._1
270- let bq = bo._2
271- let br = bo._3
272- let bs = (bk * bg)
273- if (if ((bp != aX))
294+ let br = getStringValue(this, (toString(aC) + L))
295+ let bE = getIntegerValue(this, (toString(aC) + N))
296+ let bF = $Tuple2(aB.payments[1].amount, aB.payments[1].assetId)
297+ let bG = bF._1
298+ let bH = bF._2
299+ let bI = ar(ba)
300+ let bJ = bI._1
301+ let bK = bI._2
302+ let bL = bI._3
303+ let bM = (bE * bA)
304+ if (if ((bJ != br))
274305 then true
275- else (bs != bm))
276- then throw((((("You need to add " + toString(bs)) + " ") + bq) + " as a second payment"))
277- else [IntegerEntry((((toString(ar.caller) + "_") + toString(as)) + Q), bm)]
306+ else (bM != bG))
307+ then throw((((("You need to add " + toString(bM)) + " ") + bK) + " as a second payment"))
308+ else [IntegerEntry((((toString(aB.caller) + "_") + toString(aC)) + Z), bG)]
278309 }
279310 else nil
280- let bt = valueOrElse(getString(this, (((toString(ar.caller) + "_") + toString(as)) + K)), "")
281- let bu = getIntegerValue(this, (toString(as) + w))
282- let bv = ((toString((bu + 1)) + "-") + toString((bu + bh)))
283- let bw = (bt + (if ((bt != ""))
284- then ("," + bv)
285- else ("" + bv)))
286- let bx = invoke(V, "lockNeutrino", nil, [AttachedPayment(aK, aJ)])
287- if ((bx == bx))
311+ let bN = valueOrElse(getString(this, (((toString(aB.caller) + "_") + toString(aC)) + S)), "")
312+ let bO = getIntegerValue(this, (toString(aC) + z))
313+ let bP = ((toString((bO + 1)) + "-") + toString((bO + bB)))
314+ let bQ = (bN + (if ((bN != ""))
315+ then ("," + bP)
316+ else ("" + bP)))
317+ let bR = if ((bj == ae))
318+ then invoke(ad, "lockNeutrino", nil, [AttachedPayment(ba, aZ)])
319+ else 0
320+ if ((bR == bR))
288321 then {
289- let by = ([IntegerEntry((((toString(ar.caller) + "_") + toString(as)) + J), (aU + bh)), IntegerEntry((toString(as) + w), (bu + bh)), StringEntry((((toString(ar.caller) + "_") + toString(as)) + K), bw)] ++ aP)
290- if (!(isDefined(getString(this, (((toString(ar.caller) + "_") + toString(as)) + y)))))
291- then (by ++ [StringEntry((((toString(ar.caller) + "_") + toString(as)) + y), aQ)])
292- else by
322+ let bS = ([IntegerEntry((((toString(aB.caller) + "_") + toString(aC)) + Q), (bp + bB)), IntegerEntry((toString(aC) + z), (bO + bB)), StringEntry((((toString(aB.caller) + "_") + toString(aC)) + S), bQ)] ++ bf)
323+ if (!(isDefined(getString(this, (((toString(aB.caller) + "_") + toString(aC)) + C)))))
324+ then (bS ++ [StringEntry((((toString(aB.caller) + "_") + toString(aC)) + C), bg)])
325+ else bS
293326 }
294327 else throw("Strict value is not equal to itself.")
295328 }
298331
299332
300333
301-@Callable(ar)
302-func commitAccessListSale (as,aQ) = {
303- let bz = $Tuple2(ar.payments[0].amount, ar.payments[0].assetId)
304- let aJ = bz._1
305- let aK = bz._2
306- let bA = valueOrElse(getInteger(this, (((toString(ar.caller) + "_") + toString(as)) + M)), 0)
307- let bB = valueOrElse(getInteger(this, (toString(as) + B)), 0)
308- let bC = valueOrElse(getInteger(this, (((toString(ar.caller) + "_") + toString(as)) + N)), 0)
309- let ax = getIntegerValue(this, (toString(as) + m))
310- let aY = getIntegerValue(this, (toString(as) + r))
311- let aC = getIntegerValue(this, (toString(as) + v))
312- let aZ = fromBase58String(getStringValue(this, (toString(as) + n)))
313- let bD = aj(aZ)
314- let bb = bD._1
315- let bc = bD._2
316- let bd = bD._3
317- let bE = fraction(fraction(aY, aC, pow(10, 0, bd, 0, 0, DOWN)), (100 + ax), 100)
318- let aw = value(getInteger(this, (toString(as) + k)))
319- let aW = value(getInteger(this, (toString(as) + A)))
320- if (!(Z))
334+@Callable(aB)
335+func commitAccessListSale (aC,bg) = {
336+ let bT = $Tuple2(aB.payments[0].amount, aB.payments[0].assetId)
337+ let aZ = bT._1
338+ let ba = bT._2
339+ let bU = az(value(getString(this, (toString(aC) + O))))
340+ let bj = bU._1
341+ let bk = bU._2
342+ let bl = bU._3
343+ let bm = bU._4
344+ let bV = valueOrElse(getInteger(this, (((toString(aB.caller) + "_") + toString(aC)) + V)), 0)
345+ let bW = valueOrElse(getInteger(this, (toString(aC) + F)), 0)
346+ let bX = valueOrElse(getInteger(this, (((toString(aB.caller) + "_") + toString(aC)) + W)), 0)
347+ let aJ = getIntegerValue(this, (toString(aC) + m))
348+ let bs = getIntegerValue(this, (toString(aC) + t))
349+ let aO = getIntegerValue(this, (toString(aC) + y))
350+ let bY = az(getStringValue(this, (toString(aC) + o)))
351+ let bu = bY._1
352+ let bv = bY._2
353+ let bw = bY._3
354+ let bx = bY._4
355+ let bZ = fraction(fraction(bs, aO, pow(10, 0, bx, 0, 0, DOWN)), (100 + aJ), 100)
356+ let aG = value(getInteger(this, (toString(aC) + k)))
357+ let aH = value(getInteger(this, (toString(aC) + E)))
358+ if (!(ah))
321359 then throw("DApp is inactive at this moment")
322- else if ((aa != as))
360+ else if ((ai != aC))
323361 then throw("There is no active launchpad or this launchpad is ended")
324- else if ((aw > height))
362+ else if ((aG > height))
325363 then throw("Launchpad sale not started yet")
326- else if ((height > (aw + aW)))
364+ else if ((height > (aG + aH)))
327365 then throw("Launchpad sale ended")
328- else if (if ((size(ar.payments) != 1))
366+ else if (if ((size(aB.payments) != 1))
329367 then true
330- else (aK != W))
331- then throw("One attached payment in USDN expected")
332- else if ((bC >= Y))
333- then throw((("You can buy only " + toString(Y)) + "allocations"))
334- else if (if ((bE != aJ))
335- then ((bE * 2) != aJ)
368+ else (ba != bj))
369+ then throw((("One attached payment in " + bl) + " expected"))
370+ else if ((bX >= ag))
371+ then throw((("You can buy only " + toString(ag)) + "allocations"))
372+ else if (if ((bZ != aZ))
373+ then ((bZ * 2) != aZ)
336374 else false)
337- then throw((("Wrong payment. You can buy 1 or 2 allocations for " + toString(bE)) + " USDN per allocation"))
375+ then throw(((("Wrong payment. You can buy 1 or 2 allocations for " + toString(bZ)) + bl) + " per allocation"))
338376 else {
339- let bF = (aJ / bE)
340- let bx = invoke(V, "lockNeutrino", nil, [AttachedPayment(aK, aJ)])
341- if ((bx == bx))
377+ let ca = (aZ / bZ)
378+ let bR = if ((bj == ae))
379+ then invoke(ad, "lockNeutrino", nil, [AttachedPayment(ba, aZ)])
380+ else 0
381+ if ((bR == bR))
342382 then {
343- let by = [IntegerEntry((((toString(ar.caller) + "_") + toString(as)) + N), (bC + bF)), IntegerEntry((((toString(ar.caller) + "_") + toString(as)) + M), (bA + aJ)), IntegerEntry((toString(as) + B), (bB + aJ))]
344- if (!(isDefined(getString(this, (((toString(ar.caller) + "_") + toString(as)) + y)))))
345- then (by ++ [StringEntry((((toString(ar.caller) + "_") + toString(as)) + y), aQ)])
346- else by
383+ let bS = [IntegerEntry((((toString(aB.caller) + "_") + toString(aC)) + W), (bX + ca)), IntegerEntry((((toString(aB.caller) + "_") + toString(aC)) + V), (bV + aZ)), IntegerEntry((toString(aC) + F), (bW + aZ))]
384+ if (!(isDefined(getString(this, (((toString(aB.caller) + "_") + toString(aC)) + C)))))
385+ then (bS ++ [StringEntry((((toString(aB.caller) + "_") + toString(aC)) + C), bg)])
386+ else bS
347387 }
348388 else throw("Strict value is not equal to itself.")
349389 }
351391
352392
353393
354-@Callable(ar)
355-func finalise (as,bG,bH) = {
356- let bI = getStringValue(this, (toString(as) + z))
357- let bJ = toBase58String(sha256((toBytes(bG) + toBytes(bH))))
358- if (!(Z))
394+@Callable(aB)
395+func commitHighCompetitionSale (aC,bg) = {
396+ let cb = $Tuple2(aB.payments[0].amount, aB.payments[0].assetId)
397+ let aZ = cb._1
398+ let ba = cb._2
399+ let cc = az(value(getString(this, (toString(aC) + O))))
400+ let bj = cc._1
401+ let bk = cc._2
402+ let bl = cc._3
403+ let bm = cc._4
404+ let aG = value(getInteger(this, (toString(aC) + k)))
405+ let aH = value(getInteger(this, (toString(aC) + E)))
406+ let cd = valueOrElse(getInteger(this, (((toString(aB.caller) + "_") + toString(aC)) + R)), 0)
407+ let ce = valueOrElse(getBoolean(this, (toString(aC) + J)), false)
408+ if (!(ah))
359409 then throw("DApp is inactive at this moment")
360- else if (!(containsElement([ag, ah, ai], ar.callerPublicKey)))
410+ else if ((ai != aC))
411+ then throw("There is no active launchpad or this launchpad is ended")
412+ else if (!(ce))
413+ then throw("There is no high competition sale for this launchpad")
414+ else if ((aG > height))
415+ then throw("Launchpad sale not started yet")
416+ else if ((height > (aG + aH)))
417+ then throw("Launchpad sale ended")
418+ else if (if ((size(aB.payments) != 1))
419+ then true
420+ else (ba != bj))
421+ then throw((("One attached payment in " + bl) + " expected"))
422+ else {
423+ let bs = getIntegerValue(this, (toString(aC) + t))
424+ let aK = getIntegerValue(this, (toString(aC) + s))
425+ let cf = az(getStringValue(this, (toString(aC) + o)))
426+ let bu = cf._1
427+ let bv = cf._2
428+ let bw = cf._3
429+ let bx = cf._4
430+ let by = fraction(aK, bs, pow(10, 0, bx, 0, 0, DOWN))
431+ let bz = fraction(by, getIntegerValue(this, (toString(aC) + n)), 100)
432+ let bA = (aZ / (by + bz))
433+ let cg = (bA * (by + bz))
434+ let bD = (aZ - cg)
435+ if ((bA == 0))
436+ then throw((("Not enought " + bl) + " to buy tickets"))
437+ else if ((bD != 0))
438+ then throw((((("Wrong payment. To buy " + toString(bA)) + "tickets you need to pay ") + toString(cg)) + bl))
439+ else {
440+ let bN = valueOrElse(getString(this, (((toString(aB.caller) + "_") + toString(aC)) + T)), "")
441+ let bO = getIntegerValue(this, (toString(aC) + A))
442+ let bP = ((toString((bO + 1)) + "-") + toString((bO + bA)))
443+ let bQ = (bN + (if ((bN != ""))
444+ then ("," + bP)
445+ else ("" + bP)))
446+ let bR = if ((bj == ae))
447+ then invoke(ad, "lockNeutrino", nil, [AttachedPayment(ba, aZ)])
448+ else 0
449+ if ((bR == bR))
450+ then {
451+ let bS = [IntegerEntry((((toString(aB.caller) + "_") + toString(aC)) + R), (cd + bA)), IntegerEntry((toString(aC) + A), (bO + bA)), StringEntry((((toString(aB.caller) + "_") + toString(aC)) + T), bQ)]
452+ if (!(isDefined(getString(this, (((toString(aB.caller) + "_") + toString(aC)) + C)))))
453+ then (bS ++ [StringEntry((((toString(aB.caller) + "_") + toString(aC)) + C), bg)])
454+ else bS
455+ }
456+ else throw("Strict value is not equal to itself.")
457+ }
458+ }
459+ }
460+
461+
462+
463+@Callable(aB)
464+func finalise (aC,ch,ci) = {
465+ let cj = getStringValue(this, (toString(aC) + D))
466+ let ck = toBase58String(sha256((toBytes(ch) + toBytes(ci))))
467+ if (!(ah))
468+ then throw("DApp is inactive at this moment")
469+ else if (!(containsElement([ao, ap, aq], aB.callerPublicKey)))
361470 then throw("Only admin can call this function")
362- else if ((bJ != bI))
471+ else if ((ck != cj))
363472 then throw("vrf Height hash not matching")
364473 else {
365- let av = addressFromStringValue(getStringValue(this, (toString(as) + i)))
366- let ax = getIntegerValue(this, (toString(as) + m))
367- let bK = valueOrElse(getInteger(this, (toString(as) + D)), 0)
368- let bL = getIntegerValue(this, (toString(as) + p))
369- let bM = fraction(bL, ax, 100)
370- let bN = getIntegerValue(this, (toString(as) + C))
371- let bO = fraction(bN, ax, 100)
372- let bP = (((bL + bN) + bM) + bO)
373- if ((bK > (bL + bN)))
474+ let cl = az(value(getString(this, (toString(aC) + O))))
475+ let bj = cl._1
476+ let bk = cl._2
477+ let bl = cl._3
478+ let bm = cl._4
479+ let aF = addressFromStringValue(getStringValue(this, (toString(aC) + i)))
480+ let aJ = getIntegerValue(this, (toString(aC) + m))
481+ let cm = getIntegerValue(this, (toString(aC) + n))
482+ let cn = valueOrElse(getInteger(this, (toString(aC) + H)), 0)
483+ let co = getIntegerValue(this, (toString(aC) + q))
484+ let cp = valueOrElse(getIntegerValue(this, (toString(aC) + r)), 0)
485+ let cq = fraction(co, aJ, 100)
486+ let cr = fraction(cp, cm, 100)
487+ let cs = getIntegerValue(this, (toString(aC) + G))
488+ let ct = fraction(cs, aJ, 100)
489+ let cu = (((((co + cs) + cq) + ct) + cp) + cr)
490+ if ((cn > (co + cs)))
374491 then throw("Can't transfer negative value to project")
375492 else {
376- let bx = invoke(V, "unlockNeutrino", [bP, toBase58String(W)], nil)
377- if ((bx == bx))
378- then [IntegerEntry((toString(as) + l), height), ScriptTransfer(av, ((bL + bN) - bK), W), ScriptTransfer(U, (bM + bO), W)]
493+ let bR = if ((bj == ae))
494+ then invoke(ad, "unlockNeutrino", [cu, toBase58String(ae)], nil)
495+ else 0
496+ if ((bR == bR))
497+ then [IntegerEntry((toString(aC) + l), height), ScriptTransfer(aF, ((co + cs) - cn), bj), ScriptTransfer(ac, ((cq + ct) + cr), bj)]
379498 else throw("Strict value is not equal to itself.")
380499 }
381500 }
383502
384503
385504
386-@Callable(ar)
387-func claim (as) = {
388- let bQ = valueOrElse(getBoolean(this, (((toString(ar.caller) + "_") + toString(as)) + O)), false)
389- let bR = valueOrElse(getInteger(this, (((toString(ar.caller) + "_") + toString(as)) + J)), 0)
390- let bC = valueOrElse(getInteger(this, (((toString(ar.caller) + "_") + toString(as)) + N)), 0)
391- if (!(Z))
505+@Callable(aB)
506+func claim (aC) = {
507+ let cv = valueOrElse(getBoolean(this, (((toString(aB.caller) + "_") + toString(aC)) + X)), false)
508+ let cw = valueOrElse(getInteger(this, (((toString(aB.caller) + "_") + toString(aC)) + Q)), 0)
509+ let bX = valueOrElse(getInteger(this, (((toString(aB.caller) + "_") + toString(aC)) + W)), 0)
510+ if (!(ah))
392511 then throw("DApp is inactive at this moment")
393- else if (!(isDefined(getInteger(this, (toString(as) + l)))))
512+ else if (!(isDefined(getInteger(this, (toString(aC) + l)))))
394513 then throw("You can't claim because results are not finalized")
395- else if (bQ)
514+ else if (cv)
396515 then throw("You are already claimed")
397- else if (if ((bR == 0))
398- then (bC == 0)
516+ else if (if ((cw == 0))
517+ then (bX == 0)
399518 else false)
400519 then throw("You can't claim because you don't buy anything")
401520 else {
402- let aZ = fromBase58String(getStringValue(this, (toString(as) + n)))
403- let bS = valueOrElse(getInteger(this, (((toString(ar.caller) + "_") + toString(as)) + P)), 0)
404- let bT = valueOrElse(getInteger(this, (((toString(ar.caller) + "_") + toString(as)) + L)), 0)
405- let ax = getIntegerValue(this, (toString(as) + m))
406- let bU = min([bC, bT])
407- let aY = getIntegerValue(this, (toString(as) + r))
408- let ay = getIntegerValue(this, (toString(as) + q))
409- let bV = aj(aZ)
410- let bb = bV._1
411- let bc = bV._2
412- let bd = bV._3
413- let be = fraction(ay, aY, pow(10, 0, bd, 0, 0, DOWN))
414- let aC = getIntegerValue(this, (toString(as) + v))
415- let bW = ((bS * ay) + (bU * aC))
416- let bX = ((bC - bU) * aC)
417- let bY = fraction(fraction(bX, aY, pow(10, 0, bd, 0, 0, DOWN)), (100 + ax), 100)
418- let bZ = fraction(((bR - bS) * be), (100 + ax), 100)
419- if (if ((0 > bY))
521+ let cx = az(value(getString(this, (toString(aC) + O))))
522+ let bj = cx._1
523+ let bk = cx._2
524+ let bl = cx._3
525+ let bm = cx._4
526+ let cy = valueOrElse(getInteger(this, (((toString(aB.caller) + "_") + toString(aC)) + Y)), 0)
527+ let cz = valueOrElse(getInteger(this, (((toString(aB.caller) + "_") + toString(aC)) + U)), 0)
528+ let aJ = getIntegerValue(this, (toString(aC) + m))
529+ let cA = min([bX, cz])
530+ let bs = getIntegerValue(this, (toString(aC) + t))
531+ let aK = getIntegerValue(this, (toString(aC) + s))
532+ let cB = az(getStringValue(this, (toString(aC) + o)))
533+ let bu = cB._1
534+ let bv = cB._2
535+ let bw = cB._3
536+ let bx = cB._4
537+ let by = fraction(aK, bs, pow(10, 0, bx, 0, 0, DOWN))
538+ let aO = getIntegerValue(this, (toString(aC) + y))
539+ let cC = ((cy * aK) + (cA * aO))
540+ let cD = ((bX - cA) * aO)
541+ let cE = fraction(fraction(cD, bs, pow(10, 0, bx, 0, 0, DOWN)), (100 + aJ), 100)
542+ let cF = fraction(((cw - cy) * by), (100 + aJ), 100)
543+ if (if ((0 > cE))
420544 then true
421- else (0 > bZ))
545+ else (0 > cF))
422546 then throw("Error with allowed allocation param or wonned tickets param please contact support")
423547 else {
424- let ca = (bY + bZ)
425- let cb = if ((ca > 0))
426- then [ScriptTransfer(ar.caller, ca, W)]
548+ let cG = (cF + cF)
549+ let cH = if ((cG > 0))
550+ then [ScriptTransfer(aB.caller, cG, bj)]
427551 else nil
428- let cc = if ((bW > 0))
429- then [ScriptTransfer(ar.caller, bW, aZ)]
552+ let cI = if ((cC > 0))
553+ then [ScriptTransfer(aB.caller, cC, bu)]
430554 else nil
431- let bx = if ((ca > 0))
432- then invoke(V, "unlockNeutrino", [ca, toBase58String(W)], nil)
555+ let bR = if (if ((cG > 0))
556+ then (bj == ae)
557+ else false)
558+ then invoke(ad, "unlockNeutrino", [cG, toBase58String(ae)], nil)
433559 else 0
434- if ((bx == bx))
435- then (([BooleanEntry((((toString(ar.caller) + "_") + toString(as)) + O), true)] ++ cc) ++ cb)
560+ if ((bR == bR))
561+ then (([BooleanEntry((((toString(aB.caller) + "_") + toString(aC)) + X), true)] ++ cI) ++ cH)
436562 else throw("Strict value is not equal to itself.")
437563 }
438564 }
440566
441567
442568
443-@Callable(ar)
444-func claimFreezeToken (as) = {
445- let aF = valueOrElse(getBoolean(this, (toString(as) + F)), false)
446- if (!(Z))
569+@Callable(aB)
570+func claimFreezeToken (aC) = {
571+ let aV = valueOrElse(getBoolean(this, (toString(aC) + K)), false)
572+ if (!(ah))
447573 then throw("DApp is inactive at this moment")
448- else if (!(isDefined(getInteger(this, (toString(as) + l)))))
574+ else if (!(isDefined(getInteger(this, (toString(aC) + l)))))
449575 then throw("You can't claim because results are not finalized")
450- else if (!(aF))
576+ else if (!(aV))
451577 then throw("There are no additional token freezing for this launchpad")
452578 else {
453- let aZ = fromBase58String(getStringValue(this, (toString(as) + G)))
454- let cd = valueOrElse(getInteger(this, (((toString(ar.caller) + "_") + toString(as)) + Q)), 0)
455- let aw = valueOrElse(getInteger(this, (toString(as) + k)), 0)
456- let aW = valueOrElse(getInteger(this, (toString(as) + A)), 0)
457- let ce = getIntegerValue(this, (toString(as) + H))
458- let cf = ((aw + aW) + ce)
459- if ((cd == 0))
579+ let bu = fromBase58String(getStringValue(this, (toString(aC) + L)))
580+ let cJ = valueOrElse(getInteger(this, (((toString(aB.caller) + "_") + toString(aC)) + Z)), 0)
581+ let aG = valueOrElse(getInteger(this, (toString(aC) + k)), 0)
582+ let aH = valueOrElse(getInteger(this, (toString(aC) + E)), 0)
583+ let cK = getIntegerValue(this, (toString(aC) + M))
584+ let cL = ((aG + aH) + cK)
585+ if ((cJ == 0))
460586 then throw("You are already claimed your tokens or not paid anything")
461- else if ((cf > height))
462- then throw(("Your tokens freezed teel " + toString(cf)))
463- else [ScriptTransfer(ar.caller, cd, aZ), IntegerEntry((((toString(ar.caller) + "_") + toString(as)) + Q), 0)]
587+ else if ((cL > height))
588+ then throw(("Your tokens freezed teel " + toString(cL)))
589+ else [ScriptTransfer(aB.caller, cJ, bu), IntegerEntry((((toString(aB.caller) + "_") + toString(aC)) + Z), 0)]
464590 }
465591 }
466592
467593
468594
469-@Callable(ar)
470-func transferUsd (as,cg) = if (!(Z))
595+@Callable(aB)
596+func transferBuyAsset (aC,cM) = if (!(ah))
471597 then throw("DApp is inactive")
472- else if (!(containsElement([ag, ah, ai], ar.callerPublicKey)))
598+ else if (!(containsElement([ao, ap, aq], aB.callerPublicKey)))
473599 then throw("Only admin can call this function")
474600 else {
475- let av = addressFromStringValue(getStringValue(this, (toString(as) + i)))
476-[IntegerEntry((toString(as) + D), cg), ScriptTransfer(av, cg, W)]
601+ let aF = addressFromStringValue(getStringValue(this, (toString(aC) + i)))
602+ let cN = az(value(getString(this, (toString(aC) + O))))
603+ let bj = cN._1
604+ let bk = cN._2
605+ let bl = cN._3
606+ let bm = cN._4
607+[IntegerEntry((toString(aC) + H), cM), ScriptTransfer(aF, cM, bj)]
477608 }
478609
479610
480611
481-@Callable(ar)
482-func shutdown () = if (!(Z))
612+@Callable(aB)
613+func shutdown () = if (!(ah))
483614 then throw("DApp already inactive")
484- else if (!(containsElement([ag, ah, ai], ar.callerPublicKey)))
615+ else if (!(containsElement([ao, ap, aq], aB.callerPublicKey)))
485616 then throw("Only admin can call this function")
486617 else [BooleanEntry(a, false)]
487618
488619
489620
490-@Callable(ar)
491-func activate () = if (Z)
621+@Callable(aB)
622+func activate () = if (ah)
492623 then throw("DApp already active")
493- else if (!(containsElement([ag, ah, ai], ar.callerPublicKey)))
624+ else if (!(containsElement([ao, ap, aq], aB.callerPublicKey)))
494625 then throw("Only admin can call this function")
495626 else [BooleanEntry(a, true)]
496627
497628
498-@Verifier(ch)
499-func ci () = {
500- let cj = {
501- let ck = if (sigVerify(ch.bodyBytes, ch.proofs[0], ag))
629+@Verifier(cO)
630+func cP () = {
631+ let cQ = {
632+ let cR = if (sigVerify(cO.bodyBytes, cO.proofs[0], ao))
502633 then 1
503634 else 0
504- let cl = if (sigVerify(ch.bodyBytes, ch.proofs[1], ah))
635+ let cS = if (sigVerify(cO.bodyBytes, cO.proofs[1], ap))
505636 then 1
506637 else 0
507- let cm = if (sigVerify(ch.bodyBytes, ch.proofs[2], ai))
638+ let cT = if (sigVerify(cO.bodyBytes, cO.proofs[2], aq))
508639 then 1
509640 else 0
510- (((ck + cl) + cm) >= 2)
641+ (((cR + cS) + cT) >= 2)
511642 }
512- let cn = if (if (if (sigVerify(ch.bodyBytes, ch.proofs[0], ag))
643+ let cU = if (if (if (sigVerify(cO.bodyBytes, cO.proofs[0], ao))
513644 then true
514- else sigVerify(ch.bodyBytes, ch.proofs[0], ah))
645+ else sigVerify(cO.bodyBytes, cO.proofs[0], ap))
515646 then true
516- else sigVerify(ch.bodyBytes, ch.proofs[0], ai))
647+ else sigVerify(cO.bodyBytes, cO.proofs[0], aq))
517648 then true
518- else sigVerify(ch.bodyBytes, ch.proofs[0], X)
519- let ad = ch
520- if ($isInstanceOf(ad, "DataTransaction"))
649+ else sigVerify(cO.bodyBytes, cO.proofs[0], af)
650+ let al = cO
651+ if ($isInstanceOf(al, "DataTransaction"))
521652 then {
522- let co = ad
523- if (valueOrElse(getBoolean(S, e), false))
524- then cn
653+ let cV = al
654+ if (valueOrElse(getBoolean(aa, e), false))
655+ then cU
525656 else false
526657 }
527- else cj
658+ else cQ
528659 }
529660
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "active"
55
66 let b = "admin_pub_1"
77
88 let c = "admin_pub_2"
99
1010 let d = "admin_pub_3"
1111
1212 let e = "launchpad_data_transaction_status"
1313
1414 let f = "launchpad_next_id"
1515
1616 let g = "launchpad_active_id"
1717
1818 let h = "init_caller"
1919
2020 let i = "_address"
2121
2222 let j = "_init_height"
2323
2424 let k = "_start_height"
2525
2626 let l = "_finalise_height"
2727
2828 let m = "_comission"
2929
30-let n = "_asset_id"
30+let n = "_high_competition_comission"
3131
32-let o = "_total_token_amount"
32+let o = "_asset_id"
3333
34-let p = "_total_usdn_sold"
34+let p = "_total_token_amount"
3535
36-let q = "_tokens_per_ticket"
36+let q = "_total_buy_asset_sold"
3737
38-let r = "_price_per_token"
38+let r = "_total_buy_asset_sold_high_competition"
3939
40-let s = "_swop_per_ticket"
40+let s = "_tokens_per_ticket"
4141
42-let t = "_tickets_swopfi_members"
42+let t = "_price_per_token"
4343
44-let u = "_tokens_access_list"
44+let u = "_swop_per_ticket"
4545
46-let v = "_tokens_per_allocation"
46+let v = "_tickets_swopfi_members"
4747
48-let w = "_ticket_last_number"
48+let w = "_tickets_high_competition"
4949
50-let x = "_SWOP_amount"
50+let x = "_tokens_access_list"
5151
52-let y = "_ref_id"
52+let y = "_tokens_per_allocation"
5353
54-let z = "_verify_hash"
54+let z = "_ticket_last_number_high_competition"
5555
56-let A = "_duration"
56+let A = "_ticket_last_number"
5757
58-let B = "_total_purchased_usdn_in_marketing"
58+let B = "_SWOP_amount"
5959
60-let C = "_total_purchased_usdn_in_marketing_finalized"
60+let C = "_ref_id"
6161
62-let D = "_transfer_usd"
62+let D = "_verify_hash"
6363
64-let E = "_freeze_swop_duration"
64+let E = "_duration"
6565
66-let F = "_freeze_additional_token"
66+let F = "_total_purchased_buy_asset_in_marketing"
6767
68-let G = "_freeze_token_id"
68+let G = "_total_purchased_buy_asset_in_marketing_finalized"
6969
70-let H = "_freeze_token_duration"
70+let H = "_transfer_buy_asset"
7171
72-let I = "_freeze_token_per_ticket"
72+let I = "_freeze_swop_duration"
7373
74-let J = "_bought_tickets"
74+let J = "_high_competition_sale"
7575
76-let K = "_tickets_number"
76+let K = "_freeze_additional_token"
7777
78-let L = "_available_purchase_marketing"
78+let L = "_freeze_token_id"
7979
80-let M = "_purchased_usdn_in_marketing"
80+let M = "_freeze_token_duration"
8181
82-let N = "_bought_allocations"
82+let N = "_freeze_token_per_ticket"
8383
84-let O = "_claim_status"
84+let O = "_buy_token"
8585
86-let P = "_tickets_result"
86+let P = "_claim_params"
8787
88-let Q = "_freeze_token_amount"
88+let Q = "_bought_tickets"
8989
90-let R = 10000
90+let R = "_bought_tickets_high_competition"
9191
92-let S = Address(base58'3NBBWfzZtZtszaXbitTKnrB2xXwv26Bn7H9')
92+let S = "_tickets_number"
9393
94-let T = Address(base58'3N5W8da2iiijVieA6qLGo7KzCJj8B19smWU')
94+let T = "_tickets_number_high_competition"
9595
96-let U = Address(base58'3N2hBdeDEs7wCNA9EY8qv3B6drjgKD64xQG')
96+let U = "_available_purchase_marketing"
9797
98-let V = Address(base58'3N6q7sCGSSLBUXDdjBdYGTJbZGZfhhh8cNg')
98+let V = "_purchased_buy_asset_in_marketing"
9999
100-let W = base58'8UrfDVd5GreeUwm7uPk7eYz1eMv376kzR52C6sANPkwS'
100+let W = "_bought_allocations"
101101
102-let X = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
102+let X = "_claim_status"
103103
104-let Y = 2
104+let Y = "_tickets_result"
105105
106-let Z = valueOrElse(getBoolean(this, a), true)
106+let Z = "_freeze_token_amount"
107107
108-let aa = valueOrElse(getIntegerValue(this, g), -1)
108+let aa = Address(base58'3NBBWfzZtZtszaXbitTKnrB2xXwv26Bn7H9')
109109
110-func ab (ac) = {
111- let ad = getString(S, ac)
112- if ($isInstanceOf(ad, "String"))
110+let ab = Address(base58'3N5W8da2iiijVieA6qLGo7KzCJj8B19smWU')
111+
112+let ac = Address(base58'3N2hBdeDEs7wCNA9EY8qv3B6drjgKD64xQG')
113+
114+let ad = Address(base58'3N6q7sCGSSLBUXDdjBdYGTJbZGZfhhh8cNg')
115+
116+let ae = base58'8UrfDVd5GreeUwm7uPk7eYz1eMv376kzR52C6sANPkwS'
117+
118+let af = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
119+
120+let ag = 2
121+
122+let ah = valueOrElse(getBoolean(this, a), true)
123+
124+let ai = valueOrElse(getIntegerValue(this, g), -1)
125+
126+func aj (ak) = {
127+ let al = getString(aa, ak)
128+ if ($isInstanceOf(al, "String"))
113129 then {
114- let ae = ad
115- fromBase58String(ae)
130+ let am = al
131+ fromBase58String(am)
116132 }
117133 else {
118- let af = ad
134+ let an = al
119135 throw("Admin public key is empty")
120136 }
121137 }
122138
123139
124-let ag = ab(b)
140+let ao = aj(b)
125141
126-let ah = ab(c)
142+let ap = aj(c)
127143
128-let ai = ab(d)
144+let aq = aj(d)
129145
130-func aj (ak) = {
131- let ad = ak
132- if ($isInstanceOf(ad, "ByteVector"))
146+func ar (as) = {
147+ let al = as
148+ if ($isInstanceOf(al, "ByteVector"))
133149 then {
134- let al = ad
135- let am = toBase58String(al)
136- let an = valueOrErrorMessage(assetInfo(al), (("Asset " + am) + " doesn't exist"))
137- $Tuple3(am, an.name, an.decimals)
150+ let at = al
151+ let au = toBase58String(at)
152+ let av = valueOrErrorMessage(assetInfo(at), (("Asset " + au) + " doesn't exist"))
153+ $Tuple3(au, av.name, av.decimals)
138154 }
139- else if ($isInstanceOf(ad, "Unit"))
155+ else if ($isInstanceOf(al, "Unit"))
140156 then {
141- let ao = ad
157+ let aw = al
142158 $Tuple3("WAVES", "WAVES", 8)
143159 }
144160 else throw("Match error")
145161 }
146162
147163
148-func ap () = valueOrElse(getInteger(this, f), 1)
164+func ax () = valueOrElse(getInteger(this, f), 1)
149165
150166
151-func aq () = valueOrElse(getInteger(V, ((("rpd_balance_" + toBase58String(W)) + "_") + toString(this))), 0)
167+func ay () = valueOrElse(getInteger(ad, ((("rpd_balance_" + toBase58String(ae)) + "_") + toString(this))), 0)
152168
153169
154-@Callable(ar)
155-func hashingRandom (as,at) = if (!(Z))
170+func az (aA) = if ((aA == "WAVES"))
171+ then $Tuple4(unit, "WAVES", "WAVES", 8)
172+ else {
173+ let au = aA
174+ let at = fromBase58String(aA)
175+ let av = valueOrErrorMessage(assetInfo(at), (("Asset " + au) + " doesn't exist"))
176+ $Tuple4(at, au, av.name, av.decimals)
177+ }
178+
179+
180+@Callable(aB)
181+func hashingRandom (aC,aD) = if (!(ah))
156182 then throw("DApp is inactive at this moment")
157- else if (!(containsElement([ag, ah, ai], ar.callerPublicKey)))
183+ else if (!(containsElement([ao, ap, aq], aB.callerPublicKey)))
158184 then throw("Only admin can call this function")
159- else [StringEntry((toString(as) + z), at)]
185+ else [StringEntry((toString(aC) + D), aD)]
160186
161187
162188
163-@Callable(ar)
164-func initCaller (au) = if (!(Z))
189+@Callable(aB)
190+func initCaller (aE) = if (!(ah))
165191 then throw("DApp is inactive at this moment")
166- else if (!(containsElement([ag, ah, ai], ar.callerPublicKey)))
192+ else if (!(containsElement([ao, ap, aq], aB.callerPublicKey)))
167193 then throw("Only admin can call this function")
168- else [StringEntry(h, au)]
194+ else [StringEntry(h, aE)]
169195
170196
171197
172-@Callable(ar)
173-func init (av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG) = if (!(Z))
198+@Callable(aB)
199+func init (aF,aG,aH,aI,aJ,aK,aL,aM,aN,aO,aP,aQ,aR,aS,aT,aU,aV,aW) = if (!(ah))
174200 then throw("DApp is inactive at this moment")
175- else if ((toString(ar.caller) != valueOrElse(getString(this, h), "")))
201+ else if ((toString(aB.caller) != valueOrElse(getString(this, h), "")))
176202 then throw("Only project admin can call init function")
177- else if ((size(ar.payments) != 1))
203+ else if ((size(aB.payments) != 1))
178204 then throw("One attached payment expected")
179- else if ((height > aw))
205+ else if ((height > aG))
180206 then throw("Start height must be greater than blockchain height")
181- else if (if (aF)
182- then (size(aG) != 3)
207+ else if (if (aV)
208+ then (size(aW) != 3)
183209 else false)
184210 then throw("Freeze params list must have 3 items")
185211 else {
186- let as = ap()
187- let aH = toString(as)
188- let aI = $Tuple2(ar.payments[0].amount, ar.payments[0].assetId)
189- let aJ = aI._1
190- let aK = aI._2
191- let aL = aj(aK)
192- let aM = aL._1
193- let aN = aL._2
194- let aO = aL._3
195- let aP = if (aF)
196- then [BooleanEntry((aH + F), true), StringEntry((aH + G), aG[0]), IntegerEntry((aH + H), parseIntValue(aG[1])), IntegerEntry((aH + I), parseIntValue(aG[2]))]
212+ let aC = ax()
213+ let aX = toString(aC)
214+ let aY = $Tuple2(aB.payments[0].amount, aB.payments[0].assetId)
215+ let aZ = aY._1
216+ let ba = aY._2
217+ let bb = ar(ba)
218+ let bc = bb._1
219+ let bd = bb._2
220+ let be = bb._3
221+ let bf = if (aV)
222+ then [BooleanEntry((aX + K), true), StringEntry((aX + L), aW[0]), IntegerEntry((aX + M), parseIntValue(aW[1])), IntegerEntry((aX + N), parseIntValue(aW[2]))]
197223 else nil
198- ([IntegerEntry((aM + "_launchpad"), as), IntegerEntry(f, (as + 1)), StringEntry((aH + i), av), IntegerEntry((aH + j), height), IntegerEntry((aH + k), aw), IntegerEntry((aH + A), R), IntegerEntry((aH + E), aE), IntegerEntry((aH + o), aJ), StringEntry((aH + n), aM), IntegerEntry((aH + m), ax), IntegerEntry((aH + w), 0), IntegerEntry((aH + q), ay), IntegerEntry((aH + r), az), IntegerEntry((aH + s), aD), IntegerEntry((aH + t), aA), IntegerEntry((aH + u), aB), IntegerEntry((aH + v), aC), IntegerEntry(g, as), StringEntry(h, "")] ++ aP)
224+ ([IntegerEntry((bc + "_launchpad"), aC), IntegerEntry(f, (aC + 1)), StringEntry((aX + i), aF), IntegerEntry((aX + j), height), IntegerEntry((aX + k), aG), IntegerEntry((aX + E), aH), StringEntry((aX + O), aI), IntegerEntry((aX + I), aQ), IntegerEntry((aX + p), aZ), StringEntry((aX + o), bc), IntegerEntry((aX + m), aJ), IntegerEntry((aX + n), aT), IntegerEntry((aX + z), 0), IntegerEntry((aX + s), aK), IntegerEntry((aX + t), aL), IntegerEntry((aX + u), aP), IntegerEntry((aX + v), aM), IntegerEntry((aX + x), aN), IntegerEntry((aX + w), aU), IntegerEntry((aX + y), aO), StringEntry((aX + P), makeString(aR, ",")), BooleanEntry((aX + J), aS), IntegerEntry(g, aC), StringEntry(h, "")] ++ bf)
199225 }
200226
201227
202228
203-@Callable(ar)
204-func commitSwopfiSale (as,aQ) = {
205- let aR = $Tuple2(ar.payments[0].amount, ar.payments[0].assetId)
206- let aJ = aR._1
207- let aK = aR._2
208- let aS = valueOrElse(getInteger(T, (toString(ar.caller) + x)), 0)
209- let aT = (aS / getIntegerValue(this, (toString(as) + s)))
210- let aU = valueOrElse(getInteger(this, (((toString(ar.caller) + "_") + toString(as)) + J)), 0)
211- let aV = (aT - aU)
212- let aw = value(getInteger(this, (toString(as) + k)))
213- let aW = value(getInteger(this, (toString(as) + A)))
214- let aF = valueOrElse(getBoolean(this, (toString(as) + F)), false)
215- if (!(Z))
229+@Callable(aB)
230+func commitSwopfiSale (aC,bg) = {
231+ let bh = $Tuple2(aB.payments[0].amount, aB.payments[0].assetId)
232+ let aZ = bh._1
233+ let ba = bh._2
234+ let bi = az(value(getString(this, (toString(aC) + O))))
235+ let bj = bi._1
236+ let bk = bi._2
237+ let bl = bi._3
238+ let bm = bi._4
239+ let bn = valueOrElse(getInteger(ab, (toString(aB.caller) + B)), 0)
240+ let bo = (bn / getIntegerValue(this, (toString(aC) + u)))
241+ let bp = valueOrElse(getInteger(this, (((toString(aB.caller) + "_") + toString(aC)) + Q)), 0)
242+ let bq = (bo - bp)
243+ let aG = value(getInteger(this, (toString(aC) + k)))
244+ let aH = value(getInteger(this, (toString(aC) + E)))
245+ let aV = valueOrElse(getBoolean(this, (toString(aC) + K)), false)
246+ if (!(ah))
216247 then throw("DApp is inactive at this moment")
217- else if ((aa != as))
248+ else if ((ai != aC))
218249 then throw("There is no active launchpad or this launchpad is ended")
219- else if ((aw > height))
250+ else if ((aG > height))
220251 then throw("Launchpad sale not started yet")
221- else if ((height > (aw + aW)))
252+ else if ((height > (aG + aH)))
222253 then throw("Launchpad sale ended")
223- else if (if (!(aF))
224- then if ((size(ar.payments) != 1))
254+ else if (if (!(aV))
255+ then if ((size(aB.payments) != 1))
225256 then true
226- else (aK != W)
257+ else (ba != bj)
227258 else false)
228- then throw("One attached payment in USDN expected")
229- else if (if (aF)
230- then if ((size(ar.payments) != 2))
259+ then throw((("One attached payment in " + bl) + " expected"))
260+ else if (if (aV)
261+ then if ((size(aB.payments) != 2))
231262 then true
232- else (aK != W)
263+ else (ba != bj)
233264 else false)
234265 then {
235- let aX = getStringValue(this, (toString(as) + G))
236- throw(("Two attached payments expected: First in USDN, second in " + aX))
266+ let br = getStringValue(this, (toString(aC) + L))
267+ throw(((("Two attached payments expected: First in " + bl) + ", second in ") + br))
237268 }
238- else if (if ((0 >= aT))
269+ else if (if ((0 >= bo))
239270 then true
240- else (0 >= aV))
271+ else (0 >= bq))
241272 then throw("Not enought SWOP in staking to buy tickets")
242273 else {
243- let aY = getIntegerValue(this, (toString(as) + r))
244- let ay = getIntegerValue(this, (toString(as) + q))
245- let aZ = fromBase58String(getStringValue(this, (toString(as) + n)))
246- let ba = aj(aZ)
247- let bb = ba._1
248- let bc = ba._2
249- let bd = ba._3
250- let be = fraction(ay, aY, pow(10, 0, bd, 0, 0, DOWN))
251- let bf = fraction(be, getIntegerValue(this, (toString(as) + m)), 100)
252- let bg = (aJ / (be + bf))
253- let bh = min([bg, aV])
254- let bi = (bh * (be + bf))
255- let bj = (aJ - bi)
256- if ((bg == 0))
257- then throw("Not enought USDN to buy tickets")
258- else if ((bj != 0))
259- then throw((((("Wrong payment. To buy " + toString(bh)) + "tickets you need to pay ") + toString(bi)) + "USDN"))
274+ let bs = getIntegerValue(this, (toString(aC) + t))
275+ let aK = getIntegerValue(this, (toString(aC) + s))
276+ let bt = az(getStringValue(this, (toString(aC) + o)))
277+ let bu = bt._1
278+ let bv = bt._2
279+ let bw = bt._3
280+ let bx = bt._4
281+ let by = fraction(aK, bs, pow(10, 0, bx, 0, 0, DOWN))
282+ let bz = fraction(by, getIntegerValue(this, (toString(aC) + m)), 100)
283+ let bA = (aZ / (by + bz))
284+ let bB = min([bA, bq])
285+ let bC = (bB * (by + bz))
286+ let bD = (aZ - bC)
287+ if ((bA == 0))
288+ then throw((("Not enought " + bl) + " to buy tickets"))
289+ else if ((bD != 0))
290+ then throw((((("Wrong payment. To buy " + toString(bB)) + "tickets you need to pay ") + toString(bC)) + bl))
260291 else {
261- let aP = if (aF)
292+ let bf = if (aV)
262293 then {
263- let aX = getStringValue(this, (toString(as) + G))
264- let bk = getIntegerValue(this, (toString(as) + I))
265- let bl = $Tuple2(ar.payments[1].amount, ar.payments[1].assetId)
266- let bm = bl._1
267- let bn = bl._2
268- let bo = aj(aK)
269- let bp = bo._1
270- let bq = bo._2
271- let br = bo._3
272- let bs = (bk * bg)
273- if (if ((bp != aX))
294+ let br = getStringValue(this, (toString(aC) + L))
295+ let bE = getIntegerValue(this, (toString(aC) + N))
296+ let bF = $Tuple2(aB.payments[1].amount, aB.payments[1].assetId)
297+ let bG = bF._1
298+ let bH = bF._2
299+ let bI = ar(ba)
300+ let bJ = bI._1
301+ let bK = bI._2
302+ let bL = bI._3
303+ let bM = (bE * bA)
304+ if (if ((bJ != br))
274305 then true
275- else (bs != bm))
276- then throw((((("You need to add " + toString(bs)) + " ") + bq) + " as a second payment"))
277- else [IntegerEntry((((toString(ar.caller) + "_") + toString(as)) + Q), bm)]
306+ else (bM != bG))
307+ then throw((((("You need to add " + toString(bM)) + " ") + bK) + " as a second payment"))
308+ else [IntegerEntry((((toString(aB.caller) + "_") + toString(aC)) + Z), bG)]
278309 }
279310 else nil
280- let bt = valueOrElse(getString(this, (((toString(ar.caller) + "_") + toString(as)) + K)), "")
281- let bu = getIntegerValue(this, (toString(as) + w))
282- let bv = ((toString((bu + 1)) + "-") + toString((bu + bh)))
283- let bw = (bt + (if ((bt != ""))
284- then ("," + bv)
285- else ("" + bv)))
286- let bx = invoke(V, "lockNeutrino", nil, [AttachedPayment(aK, aJ)])
287- if ((bx == bx))
311+ let bN = valueOrElse(getString(this, (((toString(aB.caller) + "_") + toString(aC)) + S)), "")
312+ let bO = getIntegerValue(this, (toString(aC) + z))
313+ let bP = ((toString((bO + 1)) + "-") + toString((bO + bB)))
314+ let bQ = (bN + (if ((bN != ""))
315+ then ("," + bP)
316+ else ("" + bP)))
317+ let bR = if ((bj == ae))
318+ then invoke(ad, "lockNeutrino", nil, [AttachedPayment(ba, aZ)])
319+ else 0
320+ if ((bR == bR))
288321 then {
289- let by = ([IntegerEntry((((toString(ar.caller) + "_") + toString(as)) + J), (aU + bh)), IntegerEntry((toString(as) + w), (bu + bh)), StringEntry((((toString(ar.caller) + "_") + toString(as)) + K), bw)] ++ aP)
290- if (!(isDefined(getString(this, (((toString(ar.caller) + "_") + toString(as)) + y)))))
291- then (by ++ [StringEntry((((toString(ar.caller) + "_") + toString(as)) + y), aQ)])
292- else by
322+ let bS = ([IntegerEntry((((toString(aB.caller) + "_") + toString(aC)) + Q), (bp + bB)), IntegerEntry((toString(aC) + z), (bO + bB)), StringEntry((((toString(aB.caller) + "_") + toString(aC)) + S), bQ)] ++ bf)
323+ if (!(isDefined(getString(this, (((toString(aB.caller) + "_") + toString(aC)) + C)))))
324+ then (bS ++ [StringEntry((((toString(aB.caller) + "_") + toString(aC)) + C), bg)])
325+ else bS
293326 }
294327 else throw("Strict value is not equal to itself.")
295328 }
296329 }
297330 }
298331
299332
300333
301-@Callable(ar)
302-func commitAccessListSale (as,aQ) = {
303- let bz = $Tuple2(ar.payments[0].amount, ar.payments[0].assetId)
304- let aJ = bz._1
305- let aK = bz._2
306- let bA = valueOrElse(getInteger(this, (((toString(ar.caller) + "_") + toString(as)) + M)), 0)
307- let bB = valueOrElse(getInteger(this, (toString(as) + B)), 0)
308- let bC = valueOrElse(getInteger(this, (((toString(ar.caller) + "_") + toString(as)) + N)), 0)
309- let ax = getIntegerValue(this, (toString(as) + m))
310- let aY = getIntegerValue(this, (toString(as) + r))
311- let aC = getIntegerValue(this, (toString(as) + v))
312- let aZ = fromBase58String(getStringValue(this, (toString(as) + n)))
313- let bD = aj(aZ)
314- let bb = bD._1
315- let bc = bD._2
316- let bd = bD._3
317- let bE = fraction(fraction(aY, aC, pow(10, 0, bd, 0, 0, DOWN)), (100 + ax), 100)
318- let aw = value(getInteger(this, (toString(as) + k)))
319- let aW = value(getInteger(this, (toString(as) + A)))
320- if (!(Z))
334+@Callable(aB)
335+func commitAccessListSale (aC,bg) = {
336+ let bT = $Tuple2(aB.payments[0].amount, aB.payments[0].assetId)
337+ let aZ = bT._1
338+ let ba = bT._2
339+ let bU = az(value(getString(this, (toString(aC) + O))))
340+ let bj = bU._1
341+ let bk = bU._2
342+ let bl = bU._3
343+ let bm = bU._4
344+ let bV = valueOrElse(getInteger(this, (((toString(aB.caller) + "_") + toString(aC)) + V)), 0)
345+ let bW = valueOrElse(getInteger(this, (toString(aC) + F)), 0)
346+ let bX = valueOrElse(getInteger(this, (((toString(aB.caller) + "_") + toString(aC)) + W)), 0)
347+ let aJ = getIntegerValue(this, (toString(aC) + m))
348+ let bs = getIntegerValue(this, (toString(aC) + t))
349+ let aO = getIntegerValue(this, (toString(aC) + y))
350+ let bY = az(getStringValue(this, (toString(aC) + o)))
351+ let bu = bY._1
352+ let bv = bY._2
353+ let bw = bY._3
354+ let bx = bY._4
355+ let bZ = fraction(fraction(bs, aO, pow(10, 0, bx, 0, 0, DOWN)), (100 + aJ), 100)
356+ let aG = value(getInteger(this, (toString(aC) + k)))
357+ let aH = value(getInteger(this, (toString(aC) + E)))
358+ if (!(ah))
321359 then throw("DApp is inactive at this moment")
322- else if ((aa != as))
360+ else if ((ai != aC))
323361 then throw("There is no active launchpad or this launchpad is ended")
324- else if ((aw > height))
362+ else if ((aG > height))
325363 then throw("Launchpad sale not started yet")
326- else if ((height > (aw + aW)))
364+ else if ((height > (aG + aH)))
327365 then throw("Launchpad sale ended")
328- else if (if ((size(ar.payments) != 1))
366+ else if (if ((size(aB.payments) != 1))
329367 then true
330- else (aK != W))
331- then throw("One attached payment in USDN expected")
332- else if ((bC >= Y))
333- then throw((("You can buy only " + toString(Y)) + "allocations"))
334- else if (if ((bE != aJ))
335- then ((bE * 2) != aJ)
368+ else (ba != bj))
369+ then throw((("One attached payment in " + bl) + " expected"))
370+ else if ((bX >= ag))
371+ then throw((("You can buy only " + toString(ag)) + "allocations"))
372+ else if (if ((bZ != aZ))
373+ then ((bZ * 2) != aZ)
336374 else false)
337- then throw((("Wrong payment. You can buy 1 or 2 allocations for " + toString(bE)) + " USDN per allocation"))
375+ then throw(((("Wrong payment. You can buy 1 or 2 allocations for " + toString(bZ)) + bl) + " per allocation"))
338376 else {
339- let bF = (aJ / bE)
340- let bx = invoke(V, "lockNeutrino", nil, [AttachedPayment(aK, aJ)])
341- if ((bx == bx))
377+ let ca = (aZ / bZ)
378+ let bR = if ((bj == ae))
379+ then invoke(ad, "lockNeutrino", nil, [AttachedPayment(ba, aZ)])
380+ else 0
381+ if ((bR == bR))
342382 then {
343- let by = [IntegerEntry((((toString(ar.caller) + "_") + toString(as)) + N), (bC + bF)), IntegerEntry((((toString(ar.caller) + "_") + toString(as)) + M), (bA + aJ)), IntegerEntry((toString(as) + B), (bB + aJ))]
344- if (!(isDefined(getString(this, (((toString(ar.caller) + "_") + toString(as)) + y)))))
345- then (by ++ [StringEntry((((toString(ar.caller) + "_") + toString(as)) + y), aQ)])
346- else by
383+ let bS = [IntegerEntry((((toString(aB.caller) + "_") + toString(aC)) + W), (bX + ca)), IntegerEntry((((toString(aB.caller) + "_") + toString(aC)) + V), (bV + aZ)), IntegerEntry((toString(aC) + F), (bW + aZ))]
384+ if (!(isDefined(getString(this, (((toString(aB.caller) + "_") + toString(aC)) + C)))))
385+ then (bS ++ [StringEntry((((toString(aB.caller) + "_") + toString(aC)) + C), bg)])
386+ else bS
347387 }
348388 else throw("Strict value is not equal to itself.")
349389 }
350390 }
351391
352392
353393
354-@Callable(ar)
355-func finalise (as,bG,bH) = {
356- let bI = getStringValue(this, (toString(as) + z))
357- let bJ = toBase58String(sha256((toBytes(bG) + toBytes(bH))))
358- if (!(Z))
394+@Callable(aB)
395+func commitHighCompetitionSale (aC,bg) = {
396+ let cb = $Tuple2(aB.payments[0].amount, aB.payments[0].assetId)
397+ let aZ = cb._1
398+ let ba = cb._2
399+ let cc = az(value(getString(this, (toString(aC) + O))))
400+ let bj = cc._1
401+ let bk = cc._2
402+ let bl = cc._3
403+ let bm = cc._4
404+ let aG = value(getInteger(this, (toString(aC) + k)))
405+ let aH = value(getInteger(this, (toString(aC) + E)))
406+ let cd = valueOrElse(getInteger(this, (((toString(aB.caller) + "_") + toString(aC)) + R)), 0)
407+ let ce = valueOrElse(getBoolean(this, (toString(aC) + J)), false)
408+ if (!(ah))
359409 then throw("DApp is inactive at this moment")
360- else if (!(containsElement([ag, ah, ai], ar.callerPublicKey)))
410+ else if ((ai != aC))
411+ then throw("There is no active launchpad or this launchpad is ended")
412+ else if (!(ce))
413+ then throw("There is no high competition sale for this launchpad")
414+ else if ((aG > height))
415+ then throw("Launchpad sale not started yet")
416+ else if ((height > (aG + aH)))
417+ then throw("Launchpad sale ended")
418+ else if (if ((size(aB.payments) != 1))
419+ then true
420+ else (ba != bj))
421+ then throw((("One attached payment in " + bl) + " expected"))
422+ else {
423+ let bs = getIntegerValue(this, (toString(aC) + t))
424+ let aK = getIntegerValue(this, (toString(aC) + s))
425+ let cf = az(getStringValue(this, (toString(aC) + o)))
426+ let bu = cf._1
427+ let bv = cf._2
428+ let bw = cf._3
429+ let bx = cf._4
430+ let by = fraction(aK, bs, pow(10, 0, bx, 0, 0, DOWN))
431+ let bz = fraction(by, getIntegerValue(this, (toString(aC) + n)), 100)
432+ let bA = (aZ / (by + bz))
433+ let cg = (bA * (by + bz))
434+ let bD = (aZ - cg)
435+ if ((bA == 0))
436+ then throw((("Not enought " + bl) + " to buy tickets"))
437+ else if ((bD != 0))
438+ then throw((((("Wrong payment. To buy " + toString(bA)) + "tickets you need to pay ") + toString(cg)) + bl))
439+ else {
440+ let bN = valueOrElse(getString(this, (((toString(aB.caller) + "_") + toString(aC)) + T)), "")
441+ let bO = getIntegerValue(this, (toString(aC) + A))
442+ let bP = ((toString((bO + 1)) + "-") + toString((bO + bA)))
443+ let bQ = (bN + (if ((bN != ""))
444+ then ("," + bP)
445+ else ("" + bP)))
446+ let bR = if ((bj == ae))
447+ then invoke(ad, "lockNeutrino", nil, [AttachedPayment(ba, aZ)])
448+ else 0
449+ if ((bR == bR))
450+ then {
451+ let bS = [IntegerEntry((((toString(aB.caller) + "_") + toString(aC)) + R), (cd + bA)), IntegerEntry((toString(aC) + A), (bO + bA)), StringEntry((((toString(aB.caller) + "_") + toString(aC)) + T), bQ)]
452+ if (!(isDefined(getString(this, (((toString(aB.caller) + "_") + toString(aC)) + C)))))
453+ then (bS ++ [StringEntry((((toString(aB.caller) + "_") + toString(aC)) + C), bg)])
454+ else bS
455+ }
456+ else throw("Strict value is not equal to itself.")
457+ }
458+ }
459+ }
460+
461+
462+
463+@Callable(aB)
464+func finalise (aC,ch,ci) = {
465+ let cj = getStringValue(this, (toString(aC) + D))
466+ let ck = toBase58String(sha256((toBytes(ch) + toBytes(ci))))
467+ if (!(ah))
468+ then throw("DApp is inactive at this moment")
469+ else if (!(containsElement([ao, ap, aq], aB.callerPublicKey)))
361470 then throw("Only admin can call this function")
362- else if ((bJ != bI))
471+ else if ((ck != cj))
363472 then throw("vrf Height hash not matching")
364473 else {
365- let av = addressFromStringValue(getStringValue(this, (toString(as) + i)))
366- let ax = getIntegerValue(this, (toString(as) + m))
367- let bK = valueOrElse(getInteger(this, (toString(as) + D)), 0)
368- let bL = getIntegerValue(this, (toString(as) + p))
369- let bM = fraction(bL, ax, 100)
370- let bN = getIntegerValue(this, (toString(as) + C))
371- let bO = fraction(bN, ax, 100)
372- let bP = (((bL + bN) + bM) + bO)
373- if ((bK > (bL + bN)))
474+ let cl = az(value(getString(this, (toString(aC) + O))))
475+ let bj = cl._1
476+ let bk = cl._2
477+ let bl = cl._3
478+ let bm = cl._4
479+ let aF = addressFromStringValue(getStringValue(this, (toString(aC) + i)))
480+ let aJ = getIntegerValue(this, (toString(aC) + m))
481+ let cm = getIntegerValue(this, (toString(aC) + n))
482+ let cn = valueOrElse(getInteger(this, (toString(aC) + H)), 0)
483+ let co = getIntegerValue(this, (toString(aC) + q))
484+ let cp = valueOrElse(getIntegerValue(this, (toString(aC) + r)), 0)
485+ let cq = fraction(co, aJ, 100)
486+ let cr = fraction(cp, cm, 100)
487+ let cs = getIntegerValue(this, (toString(aC) + G))
488+ let ct = fraction(cs, aJ, 100)
489+ let cu = (((((co + cs) + cq) + ct) + cp) + cr)
490+ if ((cn > (co + cs)))
374491 then throw("Can't transfer negative value to project")
375492 else {
376- let bx = invoke(V, "unlockNeutrino", [bP, toBase58String(W)], nil)
377- if ((bx == bx))
378- then [IntegerEntry((toString(as) + l), height), ScriptTransfer(av, ((bL + bN) - bK), W), ScriptTransfer(U, (bM + bO), W)]
493+ let bR = if ((bj == ae))
494+ then invoke(ad, "unlockNeutrino", [cu, toBase58String(ae)], nil)
495+ else 0
496+ if ((bR == bR))
497+ then [IntegerEntry((toString(aC) + l), height), ScriptTransfer(aF, ((co + cs) - cn), bj), ScriptTransfer(ac, ((cq + ct) + cr), bj)]
379498 else throw("Strict value is not equal to itself.")
380499 }
381500 }
382501 }
383502
384503
385504
386-@Callable(ar)
387-func claim (as) = {
388- let bQ = valueOrElse(getBoolean(this, (((toString(ar.caller) + "_") + toString(as)) + O)), false)
389- let bR = valueOrElse(getInteger(this, (((toString(ar.caller) + "_") + toString(as)) + J)), 0)
390- let bC = valueOrElse(getInteger(this, (((toString(ar.caller) + "_") + toString(as)) + N)), 0)
391- if (!(Z))
505+@Callable(aB)
506+func claim (aC) = {
507+ let cv = valueOrElse(getBoolean(this, (((toString(aB.caller) + "_") + toString(aC)) + X)), false)
508+ let cw = valueOrElse(getInteger(this, (((toString(aB.caller) + "_") + toString(aC)) + Q)), 0)
509+ let bX = valueOrElse(getInteger(this, (((toString(aB.caller) + "_") + toString(aC)) + W)), 0)
510+ if (!(ah))
392511 then throw("DApp is inactive at this moment")
393- else if (!(isDefined(getInteger(this, (toString(as) + l)))))
512+ else if (!(isDefined(getInteger(this, (toString(aC) + l)))))
394513 then throw("You can't claim because results are not finalized")
395- else if (bQ)
514+ else if (cv)
396515 then throw("You are already claimed")
397- else if (if ((bR == 0))
398- then (bC == 0)
516+ else if (if ((cw == 0))
517+ then (bX == 0)
399518 else false)
400519 then throw("You can't claim because you don't buy anything")
401520 else {
402- let aZ = fromBase58String(getStringValue(this, (toString(as) + n)))
403- let bS = valueOrElse(getInteger(this, (((toString(ar.caller) + "_") + toString(as)) + P)), 0)
404- let bT = valueOrElse(getInteger(this, (((toString(ar.caller) + "_") + toString(as)) + L)), 0)
405- let ax = getIntegerValue(this, (toString(as) + m))
406- let bU = min([bC, bT])
407- let aY = getIntegerValue(this, (toString(as) + r))
408- let ay = getIntegerValue(this, (toString(as) + q))
409- let bV = aj(aZ)
410- let bb = bV._1
411- let bc = bV._2
412- let bd = bV._3
413- let be = fraction(ay, aY, pow(10, 0, bd, 0, 0, DOWN))
414- let aC = getIntegerValue(this, (toString(as) + v))
415- let bW = ((bS * ay) + (bU * aC))
416- let bX = ((bC - bU) * aC)
417- let bY = fraction(fraction(bX, aY, pow(10, 0, bd, 0, 0, DOWN)), (100 + ax), 100)
418- let bZ = fraction(((bR - bS) * be), (100 + ax), 100)
419- if (if ((0 > bY))
521+ let cx = az(value(getString(this, (toString(aC) + O))))
522+ let bj = cx._1
523+ let bk = cx._2
524+ let bl = cx._3
525+ let bm = cx._4
526+ let cy = valueOrElse(getInteger(this, (((toString(aB.caller) + "_") + toString(aC)) + Y)), 0)
527+ let cz = valueOrElse(getInteger(this, (((toString(aB.caller) + "_") + toString(aC)) + U)), 0)
528+ let aJ = getIntegerValue(this, (toString(aC) + m))
529+ let cA = min([bX, cz])
530+ let bs = getIntegerValue(this, (toString(aC) + t))
531+ let aK = getIntegerValue(this, (toString(aC) + s))
532+ let cB = az(getStringValue(this, (toString(aC) + o)))
533+ let bu = cB._1
534+ let bv = cB._2
535+ let bw = cB._3
536+ let bx = cB._4
537+ let by = fraction(aK, bs, pow(10, 0, bx, 0, 0, DOWN))
538+ let aO = getIntegerValue(this, (toString(aC) + y))
539+ let cC = ((cy * aK) + (cA * aO))
540+ let cD = ((bX - cA) * aO)
541+ let cE = fraction(fraction(cD, bs, pow(10, 0, bx, 0, 0, DOWN)), (100 + aJ), 100)
542+ let cF = fraction(((cw - cy) * by), (100 + aJ), 100)
543+ if (if ((0 > cE))
420544 then true
421- else (0 > bZ))
545+ else (0 > cF))
422546 then throw("Error with allowed allocation param or wonned tickets param please contact support")
423547 else {
424- let ca = (bY + bZ)
425- let cb = if ((ca > 0))
426- then [ScriptTransfer(ar.caller, ca, W)]
548+ let cG = (cF + cF)
549+ let cH = if ((cG > 0))
550+ then [ScriptTransfer(aB.caller, cG, bj)]
427551 else nil
428- let cc = if ((bW > 0))
429- then [ScriptTransfer(ar.caller, bW, aZ)]
552+ let cI = if ((cC > 0))
553+ then [ScriptTransfer(aB.caller, cC, bu)]
430554 else nil
431- let bx = if ((ca > 0))
432- then invoke(V, "unlockNeutrino", [ca, toBase58String(W)], nil)
555+ let bR = if (if ((cG > 0))
556+ then (bj == ae)
557+ else false)
558+ then invoke(ad, "unlockNeutrino", [cG, toBase58String(ae)], nil)
433559 else 0
434- if ((bx == bx))
435- then (([BooleanEntry((((toString(ar.caller) + "_") + toString(as)) + O), true)] ++ cc) ++ cb)
560+ if ((bR == bR))
561+ then (([BooleanEntry((((toString(aB.caller) + "_") + toString(aC)) + X), true)] ++ cI) ++ cH)
436562 else throw("Strict value is not equal to itself.")
437563 }
438564 }
439565 }
440566
441567
442568
443-@Callable(ar)
444-func claimFreezeToken (as) = {
445- let aF = valueOrElse(getBoolean(this, (toString(as) + F)), false)
446- if (!(Z))
569+@Callable(aB)
570+func claimFreezeToken (aC) = {
571+ let aV = valueOrElse(getBoolean(this, (toString(aC) + K)), false)
572+ if (!(ah))
447573 then throw("DApp is inactive at this moment")
448- else if (!(isDefined(getInteger(this, (toString(as) + l)))))
574+ else if (!(isDefined(getInteger(this, (toString(aC) + l)))))
449575 then throw("You can't claim because results are not finalized")
450- else if (!(aF))
576+ else if (!(aV))
451577 then throw("There are no additional token freezing for this launchpad")
452578 else {
453- let aZ = fromBase58String(getStringValue(this, (toString(as) + G)))
454- let cd = valueOrElse(getInteger(this, (((toString(ar.caller) + "_") + toString(as)) + Q)), 0)
455- let aw = valueOrElse(getInteger(this, (toString(as) + k)), 0)
456- let aW = valueOrElse(getInteger(this, (toString(as) + A)), 0)
457- let ce = getIntegerValue(this, (toString(as) + H))
458- let cf = ((aw + aW) + ce)
459- if ((cd == 0))
579+ let bu = fromBase58String(getStringValue(this, (toString(aC) + L)))
580+ let cJ = valueOrElse(getInteger(this, (((toString(aB.caller) + "_") + toString(aC)) + Z)), 0)
581+ let aG = valueOrElse(getInteger(this, (toString(aC) + k)), 0)
582+ let aH = valueOrElse(getInteger(this, (toString(aC) + E)), 0)
583+ let cK = getIntegerValue(this, (toString(aC) + M))
584+ let cL = ((aG + aH) + cK)
585+ if ((cJ == 0))
460586 then throw("You are already claimed your tokens or not paid anything")
461- else if ((cf > height))
462- then throw(("Your tokens freezed teel " + toString(cf)))
463- else [ScriptTransfer(ar.caller, cd, aZ), IntegerEntry((((toString(ar.caller) + "_") + toString(as)) + Q), 0)]
587+ else if ((cL > height))
588+ then throw(("Your tokens freezed teel " + toString(cL)))
589+ else [ScriptTransfer(aB.caller, cJ, bu), IntegerEntry((((toString(aB.caller) + "_") + toString(aC)) + Z), 0)]
464590 }
465591 }
466592
467593
468594
469-@Callable(ar)
470-func transferUsd (as,cg) = if (!(Z))
595+@Callable(aB)
596+func transferBuyAsset (aC,cM) = if (!(ah))
471597 then throw("DApp is inactive")
472- else if (!(containsElement([ag, ah, ai], ar.callerPublicKey)))
598+ else if (!(containsElement([ao, ap, aq], aB.callerPublicKey)))
473599 then throw("Only admin can call this function")
474600 else {
475- let av = addressFromStringValue(getStringValue(this, (toString(as) + i)))
476-[IntegerEntry((toString(as) + D), cg), ScriptTransfer(av, cg, W)]
601+ let aF = addressFromStringValue(getStringValue(this, (toString(aC) + i)))
602+ let cN = az(value(getString(this, (toString(aC) + O))))
603+ let bj = cN._1
604+ let bk = cN._2
605+ let bl = cN._3
606+ let bm = cN._4
607+[IntegerEntry((toString(aC) + H), cM), ScriptTransfer(aF, cM, bj)]
477608 }
478609
479610
480611
481-@Callable(ar)
482-func shutdown () = if (!(Z))
612+@Callable(aB)
613+func shutdown () = if (!(ah))
483614 then throw("DApp already inactive")
484- else if (!(containsElement([ag, ah, ai], ar.callerPublicKey)))
615+ else if (!(containsElement([ao, ap, aq], aB.callerPublicKey)))
485616 then throw("Only admin can call this function")
486617 else [BooleanEntry(a, false)]
487618
488619
489620
490-@Callable(ar)
491-func activate () = if (Z)
621+@Callable(aB)
622+func activate () = if (ah)
492623 then throw("DApp already active")
493- else if (!(containsElement([ag, ah, ai], ar.callerPublicKey)))
624+ else if (!(containsElement([ao, ap, aq], aB.callerPublicKey)))
494625 then throw("Only admin can call this function")
495626 else [BooleanEntry(a, true)]
496627
497628
498-@Verifier(ch)
499-func ci () = {
500- let cj = {
501- let ck = if (sigVerify(ch.bodyBytes, ch.proofs[0], ag))
629+@Verifier(cO)
630+func cP () = {
631+ let cQ = {
632+ let cR = if (sigVerify(cO.bodyBytes, cO.proofs[0], ao))
502633 then 1
503634 else 0
504- let cl = if (sigVerify(ch.bodyBytes, ch.proofs[1], ah))
635+ let cS = if (sigVerify(cO.bodyBytes, cO.proofs[1], ap))
505636 then 1
506637 else 0
507- let cm = if (sigVerify(ch.bodyBytes, ch.proofs[2], ai))
638+ let cT = if (sigVerify(cO.bodyBytes, cO.proofs[2], aq))
508639 then 1
509640 else 0
510- (((ck + cl) + cm) >= 2)
641+ (((cR + cS) + cT) >= 2)
511642 }
512- let cn = if (if (if (sigVerify(ch.bodyBytes, ch.proofs[0], ag))
643+ let cU = if (if (if (sigVerify(cO.bodyBytes, cO.proofs[0], ao))
513644 then true
514- else sigVerify(ch.bodyBytes, ch.proofs[0], ah))
645+ else sigVerify(cO.bodyBytes, cO.proofs[0], ap))
515646 then true
516- else sigVerify(ch.bodyBytes, ch.proofs[0], ai))
647+ else sigVerify(cO.bodyBytes, cO.proofs[0], aq))
517648 then true
518- else sigVerify(ch.bodyBytes, ch.proofs[0], X)
519- let ad = ch
520- if ($isInstanceOf(ad, "DataTransaction"))
649+ else sigVerify(cO.bodyBytes, cO.proofs[0], af)
650+ let al = cO
651+ if ($isInstanceOf(al, "DataTransaction"))
521652 then {
522- let co = ad
523- if (valueOrElse(getBoolean(S, e), false))
524- then cn
653+ let cV = al
654+ if (valueOrElse(getBoolean(aa, e), false))
655+ then cU
525656 else false
526657 }
527- else cj
658+ else cQ
528659 }
529660

github/deemru/w8io/873ac7e 
273.83 ms