tx · 8frhhPAGx39dWCBpRruwEcK5sbhtB78TjXYpxrXAg35N

3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz:  -0.01000000 Waves

2021.11.30 13:32 [1813651] smart account 3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz > SELF 0.00000000 Waves

{ "type": 13, "id": "8frhhPAGx39dWCBpRruwEcK5sbhtB78TjXYpxrXAg35N", "fee": 1000000, "feeAssetId": null, "timestamp": 1638268354612, "version": 1, "sender": "3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz", "senderPublicKey": "D28XoueZWsMfm8Y5pa6C5ZFuYoWgre2Wm8tzJANJgMnq", "proofs": [ "4b8jwHwjHwXvnbkNo58whFWYikjhV4CpdcCA6EA9q6gwb9GrcfTMLjRuVS13YW7hguofUvRdxqa7PwbzW2LmJxN6" ], "script": "base64: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AAAAAQAAAAAZSWR4RmFjdG9yeUNmZ0Jvb3N0aW5nRGFwcAAAAAAAAAAAAgAAAAAUSWR4RmFjdG9yeUNmZ0lkb0RhcHAAAAAAAAAAAAMAAAAAFUlkeEZhY3RvcnlDZmdUZWFtRGFwcAAAAAAAAAAABAAAAAAZSWR4RmFjdG9yeUNmZ0VtaXNzaW9uRGFwcAAAAAAAAAAABQAAAAAVSWR4RmFjdG9yeUNmZ1Jlc3REYXBwAAAAAAAAAAAGAAAAABlJZHhGYWN0b3J5Q2ZnU2xpcHBhZ2VEYXBwAAAAAAAAAAAHAQAAAA1rZXlGYWN0b3J5Q2ZnAAAAAAIAAAARJXNfX2ZhY3RvcnlDb25maWcBAAAAGmtleUZhY3RvcnlMcDJBc3NldHNNYXBwaW5nAAAAAQAAAApscEFzc2V0U3RyCQAEuQAAAAIJAARMAAAAAgIAAAAGJXMlcyVzCQAETAAAAAIFAAAACmxwQXNzZXRTdHIJAARMAAAAAgIAAAAebWFwcGluZ3NfX2xwQXNzZXQyUG9vbENvbnRyYWN0BQAAAANuaWwFAAAAA1NFUAEAAAAQa2V5RmFjdG9yeUxwTGlzdAAAAAACAAAAECVzX19scFRva2Vuc0xpc3QBAAAAJmtleUZhY3RvcnlMcEFzc2V0VG9Qb29sQ29udHJhY3RBZGRyZXNzAAAAAQAAAApscEFzc2V0U3RyCQAEuQAAAAIJAARMAAAAAgIAAAAGJXMlcyVzCQAETAAAAAIFAAAACmxwQXNzZXRTdHIJAARMAAAAAgIAAAAebWFwcGluZ3NfX2xwQXNzZXQyUG9vbENvbnRyYWN0BQAAAANuaWwFAAAAA1NFUAEAAAAUa2V5RmFjdG9yeVBvb2xXZWlnaHQAAAABAAAAD2NvbnRyYWN0QWRkcmVzcwkABLkAAAACCQAETAAAAAICAAAABCVzJXMJAARMAAAAAgIAAAAKcG9vbFdlaWdodAkABEwAAAACBQAAAA9jb250cmFjdEFkZHJlc3MFAAAAA25pbAUAAAADU0VQAQAAABhyZWFkRmFjdG9yeUFkZHJlc3NPckZhaWwAAAAACQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQEAAAAPZ2V0U3RyaW5nT3JGYWlsAAAAAQkBAAAAEWtleUZhY3RvcnlBZGRyZXNzAAAAAAEAAAAKcmVhZExwTGlzdAAAAAAJAAS1AAAAAgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB0AAAACCQEAAAAYcmVhZEZhY3RvcnlBZGRyZXNzT3JGYWlsAAAAAAkBAAAAEGtleUZhY3RvcnlMcExpc3QAAAAAAgAAAAAFAAAAA1NFUAEAAAAUcmVhZEZhY3RvcnlDZmdPckZhaWwAAAABAAAAB2ZhY3RvcnkJAAS1AAAAAgkBAAAAGGdldFN0cmluZ0J5QWRkcmVzc09yRmFpbAAAAAIFAAAAB2ZhY3RvcnkJAQAAAA1rZXlGYWN0b3J5Q2ZnAAAAAAUAAAADU0VQAQAAABhnZXRCb29zdGluZ0FkZHJlc3NPckZhaWwAAAABAAAACmZhY3RvcnlDZmcJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEJAAGRAAAAAgUAAAAKZmFjdG9yeUNmZwUAAAAZSWR4RmFjdG9yeUNmZ0Jvb3N0aW5nRGFwcAEAAAAYZ2V0RW1pc3Npb25BZGRyZXNzT3JGYWlsAAAAAQAAAApmYWN0b3J5Q2ZnCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQABkQAAAAIFAAAACmZhY3RvcnlDZmcFAAAAGUlkeEZhY3RvcnlDZmdFbWlzc2lvbkRhcHABAAAAF2dldFN0YWtpbmdBZGRyZXNzT3JGYWlsAAAAAQAAAApmYWN0b3J5Q2ZnCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQABkQAAAAIFAAAACmZhY3RvcnlDZmcFAAAAGElkeEZhY3RvcnlDZmdTdGFraW5nRGFwcAEAAAAea2V5RW1pc3Npb25SYXRlUGVyQmxvY2tDdXJyZW50AAAAAAIAAAAbJXMlc19fcmF0ZVBlckJsb2NrX19jdXJyZW50AQAAACFrZXlFbWlzc2lvblJhdGVQZXJCbG9ja01heEN1cnJlbnQAAAAAAgAAAB4lcyVzX19yYXRlUGVyQmxvY2tNYXhfX2N1cnJlbnQBAAAAFWtleUVtaXNzaW9uU3RhcnRCbG9jawAAAAACAAAAGiVzJXNfX2VtaXNzaW9uX19zdGFydEJsb2NrAQAAABtrZXlFbWlzc2lvbkR1cmF0aW9uSW5CbG9ja3MAAAAAAgAAABglcyVzX19lbWlzc2lvbl9fZHVyYXRpb24BAAAAE2tleUVtaXNzaW9uRW5kQmxvY2sAAAAAAgAAABglcyVzX19lbWlzc2lvbl9fZW5kQmxvY2sBAAAAD2tleVN0YWtlZEJ5VXNlcgAAAAIAAAAOdXNlckFkZHJlc3NTdHIAAAAMbHBBc3NldElkU3RyCQAEuQAAAAIJAARMAAAAAgIAAAAOJXMlcyVzX19zdGFrZWQJAARMAAAAAgUAAAAOdXNlckFkZHJlc3NTdHIJAARMAAAAAgUAAAAMbHBBc3NldElkU3RyBQAAAANuaWwFAAAAA1NFUAEAAAAOa2V5U3Rha2VkVG90YWwAAAABAAAADGxwQXNzZXRJZFN0cgkAASwAAAACAgAAABclcyVzJXNfX3N0YWtlZF9fdG90YWxfXwUAAAAMbHBBc3NldElkU3RyAQAAABBrZXlDbGFpbWVkQnlVc2VyAAAAAgAAAAxscEFzc2V0SWRTdHIAAAAOdXNlckFkZHJlc3NTdHIJAAS5AAAAAgkABEwAAAACAgAAAA8lcyVzJXNfX2NsYWltZWQJAARMAAAAAgUAAAAOdXNlckFkZHJlc3NTdHIJAARMAAAAAgUAAAAMbHBBc3NldElkU3RyBQAAAANuaWwFAAAAA1NFUAEAAAAZa2V5Q2xhaW1lZEJ5VXNlck1pblJld2FyZAAAAAIAAAAMbHBBc3NldElkU3RyAAAADnVzZXJBZGRyZXNzU3RyCQAEuQAAAAIJAARMAAAAAgIAAAAYJXMlcyVzX19jbGFpbWVkTWluUmV3YXJkCQAETAAAAAIFAAAADnVzZXJBZGRyZXNzU3RyCQAETAAAAAIFAAAADGxwQXNzZXRJZFN0cgUAAAADbmlsBQAAAANTRVABAAAAG2tleUNsYWltZWRCeVVzZXJCb29zdFJld2FyZAAAAAIAAAAMbHBBc3NldElkU3RyAAAADnVzZXJBZGRyZXNzU3RyCQAEuQAAAAIJAARMAAAAAgIAAAAaJXMlcyVzX19jbGFpbWVkQm9vc3RSZXdhcmQJAARMAAAAAgUAAAAOdXNlckFkZHJlc3NTdHIJAARMAAAAAgUAAAAMbHBBc3NldElkU3RyBQAAAANuaWwFAAAAA1NFUAEAAAAPa2V5Q2xhaW1lZFRvdGFsAAAAAQAAAAxscEFzc2V0SWRTdHIJAAS5AAAAAgkABEwAAAACAgAA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c3NldElkAAAABmFtb3VudAAAAAR0eElkCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAZa2V5T3BlcmF0aW9uSGlzdG9yeVJlY29yZAAAAAMFAAAABHR5cGUFAAAAC3VzZXJBZGRyZXNzCQACWAAAAAEFAAAABHR4SWQJAQAAABNmb3JtYXRIaXN0b3J5UmVjb3JkAAAABAUAAAALdXNlckFkZHJlc3MFAAAACWxwQXNzZXRJZAUAAAAEdHlwZQUAAAAGYW1vdW50AAAAAA9mYWN0b3J5Q29udHJhY3QJAQAAABhyZWFkRmFjdG9yeUFkZHJlc3NPckZhaWwAAAAAAAAAAApmYWN0b3J5Q2ZnCQEAAAAUcmVhZEZhY3RvcnlDZmdPckZhaWwAAAABBQAAAA9mYWN0b3J5Q29udHJhY3QAAAAAEGVtaXNzaW9uQ29udHJhY3QJAQAAABhnZXRFbWlzc2lvbkFkZHJlc3NPckZhaWwAAAABBQAAAApmYWN0b3J5Q2ZnAAAAABBib29zdGluZ0NvbnRyYWN0CQEAAAAYZ2V0Qm9vc3RpbmdBZGRyZXNzT3JGYWlsAAAAAQUAAAAKZmFjdG9yeUNmZwEAAAAbY2FsY1d4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0AAAABQAAAAxzdGFrZWRCeVVzZXIAAAAmd3hQZXJMcEludGVncmFsVXNlckxhc3RVcGRIZWlnaHRPclplcm8AAAASd3hQZXJMcEludGVncmFsTmV3AAAAGnd4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0S0VZAAAAAk0zAwMJAAAAAAAAAgUAAAAmd3hQZXJMcEludGVncmFsVXNlckxhc3RVcGRIZWlnaHRPclplcm8AAAAAAAAAAAAJAABmAAAAAgUAAAAMc3Rha2VkQnlVc2VyAAAAAAAAAAAABwAAAAAAAAAAAAMJAAAAAAAAAgUAAAAMc3Rha2VkQnlVc2VyAAAAAAAAAAAABQAAABJ3eFBlckxwSW50ZWdyYWxOZXcDAwkAAGYAAAACBQAAACZ3eFBlckxwSW50ZWdyYWxVc2VyTGFzdFVwZEhlaWdodE9yWmVybwAAAAAAAAAAAAkAAGYAAAACBQAAAAxzdGFrZWRCeVVzZXIAAAAAAAAAAAAHCQAAaAAAAAIJAQAAAAxnZXRJbnRPckZhaWwAAAACBQAAAAR0aGlzBQAAABp3eFBlckxwSW50ZWdyYWxVc2VyTGFzdEtFWQUAAAACTTMJAAACAAAAAQIAAAAtY2FsY1d4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0OiB1bmV4cGVjdGVkIHN0YXRlAQAAABByZWZyZXNoSU5URUdSQUxTAAAABAAAAAxscEFzc2V0SWRTdHIAAAAOdXNlckFkZHJlc3NTdHIAAAAOcG9vbEFkZHJlc3NTdHIAAAANbHBEZWx0YUFtb3VudAQAAAAPc3Rha2VkQnlVc2VyS0VZCQEAAAAPa2V5U3Rha2VkQnlVc2VyAAAAAgUAAAAOdXNlckFkZHJlc3NTdHIFAAAADGxwQXNzZXRJZFN0cgQAAAAOc3Rha2VkVG90YWxLRVkJAQAAAA5rZXlTdGFrZWRUb3RhbAAAAAEFAAAADGxwQXNzZXRJZFN0cgQAAAAMc3Rha2VkQnlVc2VyCQEAAAAKcmVhZFN0YWtlZAAAAAEFAAAAD3N0YWtlZEJ5VXNlcktFWQQAAAALc3Rha2VkVG90YWwJAQAAAApyZWFkU3Rha2VkAAAAAQUAAAAOc3Rha2VkVG90YWxLRVkEAAAACnBvb2xXZWlnaHQJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAAD2ZhY3RvcnlDb250cmFjdAkBAAAAFGtleUZhY3RvcnlQb29sV2VpZ2h0AAAAAQUAAAAOcG9vbEFkZHJlc3NTdHIEAAAAEmVtaXNzaW9uU3RhcnRCbG9jawkBAAAADGdldEludE9yRmFpbAAAAAIFAAAAEGVtaXNzaW9uQ29udHJhY3QJAQAAABVrZXlFbWlzc2lvblN0YXJ0QmxvY2sAAAAABAAAAAVNVUxUMwAAAAAAAAAD6AQAAAASd3hFbWlzc2lvblBlckJsb2NrCQAAaAAAAAIJAQAAAAxnZXRJbnRPckZhaWwAAAACBQAAABBlbWlzc2lvbkNvbnRyYWN0CQEAAAAea2V5RW1pc3Npb25SYXRlUGVyQmxvY2tDdXJyZW50AAAAAAUAAAAFTVVMVDMEAAAAFnBvb2xXeEVtaXNzaW9uUGVyQmxvY2sJAABrAAAAAwUAAAASd3hFbWlzc2lvblBlckJsb2NrBQAAAApwb29sV2VpZ2h0CQAAaAAAAAIFAAAADlBPT0xXRUlHSFRNVUxUAAAAAAAAAAADBAAAAAxtaWdyYXRpb25LRVkCAAAAEGlzTWlncmF0ZWRfdG9fWDMEAAAAAk0zAwkAAAAAAAACCQEAAAAMZ2V0SW50T3JaZXJvAAAAAgUAAAAEdGhpcwUAAAAMbWlncmF0aW9uS0VZAAAAAAAAAAAABQAAAAVNVUxUMwAAAAAAAAAAAQQAAAASd3hQZXJMcEludGVncmFsS0VZCQEAAAASa2V5V3hQZXJMcEludGVncmFsAAAAAQUAAAAMbHBBc3NldElkU3RyBAAAAB93eFBlckxwSW50ZWdyYWxMYXN0VXBkSGVpZ2h0S0VZCQEAAAAfa2V5V3hQZXJMcEludGVncmFsTGFzdFVwZEhlaWdodAAAAAEFAAAADGxwQXNzZXRJZFN0cgQAAAAQd3hUb0NsYWltVXNlcktFWQkBAAAAEGtleVd4VG9DbGFpbVVzZXIAAAACBQAAAAxscEFzc2V0SWRTdHIFAAAADnVzZXJBZGRyZXNzU3RyBAAAACN3eFBlckxwSW50ZWdyYWxVc2VyTGFzdFVwZEhlaWdodEtFWQkBAAAAI2tleVd4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0VXBkSGVpZ2h0AAAAAgUAAAAMbHBBc3NldElkU3RyBQAAAA51c2VyQWRkcmVzc1N0cgQAAAAKd3hQZXJMcEtFWQkBAAAACmtleVd4UGVyTHAAAAABBQAAAAxscEFzc2V0SWRTdHIEAAAAGnd4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0S0VZCQEAAAAaa2V5V3hQZXJMcEludGVncmFsVXNlckxhc3QAAAACBQAAAAxscEFzc2V0SWRTdHIFAAAADnVzZXJBZGRyZXNzU3RyBAAAABx3eFBlckxwSW50ZWdyYWxMYXN0VXBkSGVpZ2h0CQEAAAAPZ2V0SW50T3JEZWZhdWx0AAAAAwUAAAAEdGhpcwUAAAAfd3hQZXJMcEludGVncmFsTGFzdFVwZEhlaWdodEtFWQUAAAASZW1pc3Npb25TdGFydEJsb2NrBAAAAA93eFBlckxwSW50ZWdyYWwJAABoAAAAAgkBAAAADGdldEludE9yWmVybwAAAAIFAAAABHRoaXMFAAAAEnd4UGVyTHBJbnRlZ3JhbEtFWQUAAAACTTMEAAAADXd4VG9DbGFpbVVzZXIJAQAAAAxnZXRJbnRPclplcm8AAAACBQAAAAR0aGlzBQAAABB3eFRvQ2xhaW1Vc2VyS0VZBAAAACZ3eFBlckxwSW50ZWdyYWxVc2VyTGFzdFVwZEhlaWdodE9yWmVybwkBAAAADGdldEludE9yWmVybwAAAAIFAAAABHRoaXMFAAAAI3d4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0VXBkSGVpZ2h0S0VZBAAAAA93eFBlckxwT3JaZXJvWDgJAABoAAAAAgkBAAAADGdldEludE9yWmVybwAAAAIFAAAABHRoaXMFAAAACnd4UGVyTHBLRVkFAAAAAk0zBAAAAAJkaAkAAZYAAAABCQAETAAAAAIJAABlAAAAAgUAAAAGaGVpZ2h0BQAAABx3eFBlckxwSW50ZWdyYWxMYXN0VXBkSGVpZ2h0CQAETAAAAAIAAAAAAAAAAAAFAAAAA25pbAQAAAAJd3hQZXJMcFg4AwkBAAAAAiE9AAAAAgUAAAAPd3hQZXJMcE9yWmVyb1g4AAAAAAAAAAAABQAAAA93eFBlckxwT3JaZXJvWDgJAABrAAAAAwUAAAAWcG9vbFd4RW1pc3Npb25QZXJCbG9jawUAAAAFTVVMVDgFAAAAC3N0YWtlZFRvdGFsBAAAAA5zdGFrZWRUb3RhbE5ldwkAAGQAAAACBQAAAAtzdGFrZWRUb3RhbAUAAAANbHBEZWx0YUFtb3VudAQAAAASd3hQZXJMcEludGVncmFsTmV3CQAAZAAAAAIFAAAAD3d4UGVyTHBJbnRlZ3JhbAkAAGgAAAACBQAAAAl3eFBlckxwWDgFAAAAAmRoBAAAABd3eFBlckxwSW50ZWdyYWxVc2VyTGFzdAkBAAAAG2NhbGNXeFBlckxwSW50ZWdyYWxVc2VyTGFzdAAAAAUFAAAADHN0YWtlZEJ5VXNlcgUAAAAmd3hQZXJMcEludGVncmFsVXNlckxhc3RVcGRIZWlnaHRPclplcm8FAAAAEnd4UGVyTHBJbnRlZ3JhbE5ldwUAAAAad3hQZXJMcEludGVncmFsVXNlckxhc3RLRVkFAAAAAk0zBAAAABB3eFRvQ2xhaW1Vc2VyTmV3CQAAZAAAAAIFAAAADXd4VG9DbGFpbVVzZXIJAABrAAAAAwkAAGUAAAACBQAAABJ3eFBlckxwSW50ZWdyYWxOZXcFAAAAF3d4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0BQAAAAxzdGFrZWRCeVVzZXIJAABoAAAAAgUAAAAFTVVMVDgFAAAABU1VTFQzBAAAABp3eFBlckxwSW50ZWdyYWxVc2VyTGFzdE5ldwUAAAASd3hQZXJMcEludGVncmFsTmV3BAAAAAx3eFBlckxwTmV3WDgJAABpAAAAAgUAAAAWcG9vbFd4RW1pc3Npb25QZXJCbG9jawUAAAAOc3Rha2VkVG90YWxOZXcEAAAAH3d4UGVyTHBJbnRlZ3JhbExhc3RVcGRIZWlnaHROZXcFAAAABmhlaWdodAQAAAAjd3hQZXJMcEludGVncmFsVXNlckxhc3RVcGRIZWlnaHROZXcFAAAABmhlaWdodAQAAAAFZGVidWcJAAS5AAAAAgkABEwAAAACCQABpAAAAAEFAAAAEHd4VG9DbGFpbVVzZXJOZXcJAARMAAAAAgkAAaQAAAABBQAAABJ3eFBlckxwSW50ZWdyYWxOZXcJAARMAAAAAgkAAaQAAAABBQAAABd3eFBlckxwSW50ZWdyYWxVc2VyTGFzdAkABEwAAAACCQABpAAAAAEFAAAADHN0YWtlZEJ5VXNlcgkABEwAAAACCQABpAAAAAEFAAAAAmRoCQAETAAAAAIJAAGkAAAAAQUAAAAJd3hQZXJMcFg4CQAETAAAAAIJAAGkAAAAAQUAAAALc3Rha2VkVG90YWwJAARMAAAAAgkAAaQAAAABBQAAABZwb29sV3hFbWlzc2lvblBlckJsb2NrCQAETAAAAAIJAAGkAAAAAQUAAAASd3hFbWlzc2lvblBlckJsb2NrCQAETAAAAAIJAAGkAAAAAQUAAAAKcG9vbFdlaWdodAkABEwAAAACCQABpAAAAAEFAAAABmhlaWdodAUAAAADbmlsAgAAAAI6OgkABRUAAAADBQAAABB3eFRvQ2xhaW1Vc2VyTmV3CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABJ3eFBlckxwSW50ZWdyYWxLRVkFAAAAEnd4UGVyTHBJbnRlZ3JhbE5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAfd3hQZXJMcEludGVncmFsTGFzdFVwZEhlaWdodEtFWQUAAAAfd3hQZXJMcEludGVncmFsTGFzdFVwZEhlaWdodE5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAQd3hUb0NsYWltVXNlcktFWQUAAAAQd3hUb0NsYWltVXNlck5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAjd3hQZXJMcEludGVncmFsVXNlckxhc3RVcGRIZWlnaHRLRVkFAAAAI3d4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0VXBkSGVpZ2h0TmV3CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAp3eFBlckxwS0VZBQAAAAx3eFBlckxwTmV3WDgJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAGnd4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0S0VZBQAAABp3eFBlckxwSW50ZWdyYWxVc2VyTGFzdE5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAMbWlncmF0aW9uS0VZAAAAAAAAAAABBQAAAANuaWwFAAAABWRlYnVnAAAABQAAAAFpAQAAAAtjb25zdHJ1Y3RvcgAAAAEAAAARZmFjdG9yeUFkZHJlc3NTdHIDCQEAAAACIT0AAAACCAUAAAABaQAAAAZjYWxsZXIFAAAABHRoaXMJAAACAAAAAQIAAAAObm90IGF1dGhvcml6ZWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEWtleUZhY3RvcnlBZGRyZXNzAAAAAAUAAAARZmFjdG9yeUFkZHJlc3NTdHIFAAAAA25pbAAAAAFpAQAAAAVzdGFrZQAAAAADCQEAAAACIT0AAAACCQABkAAAAAEIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAABCQAAAgAAAAECAAAANGludmFsaWQgcGF5bWVudCAtIGV4YWN0IG9uZSBwYXltZW50IG11c3QgYmUgYXR0YWNoZWQEAAAAA3BtdAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAQAAAAJbHBBc3NldElkCQEAAAAFdmFsdWUAAAABCAUAAAADcG10AAAAB2Fzc2V0SWQEAAAADGxwQXNzZXRJZFN0cgkAAlgAAAABBQAAAAlscEFzc2V0SWQEAAAABmFtb3VudAgFAAAAA3BtdAAAAAZhbW91bnQEAAAADnBvb2xBZGRyZXNzU3RyCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAAPZmFjdG9yeUNvbnRyYWN0CQEAAAAaa2V5RmFjdG9yeUxwMkFzc2V0c01hcHBpbmcAAAABBQAAAAxscEFzc2V0SWRTdHIJAAEsAAAAAgIAAAAVdW5zdXBwb3J0ZWQgbHAgYXNzZXQgBQAAAAxscEFzc2V0SWRTdHIEAAAACWNhbGxlclN0cgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAADnVzZXJBZGRyZXNzU3RyAwkAAAAAAAACBQAAAAljYWxsZXJTdHIFAAAADnBvb2xBZGRyZXNzU3RyCQAEJQAAAAEIBQAAAAFpAAAADG9yaWdpbkNhbGxlcgUAAAAJY2FsbGVyU3RyBAAAAA9zdGFrZWRCeVVzZXJLRVkJAQAAAA9rZXlTdGFrZWRCeVVzZXIAAAACBQAAAA51c2VyQWRkcmVzc1N0cgUAAAAMbHBBc3NldElkU3RyBAAAAA5zdGFrZWRUb3RhbEtFWQkBAAAADmtleVN0YWtlZFRvdGFsAAAAAQUAAAAMbHBBc3NldElkU3RyBAAAAAxzdGFrZWRCeVVzZXIJAQAAAApyZWFkU3Rha2VkAAAAAQUAAAAPc3Rha2VkQnlVc2VyS0VZBAAAAAtzdGFrZWRUb3RhbAkBAAAACnJlYWRTdGFrZWQAAAABBQAAAA5zdGFrZWRUb3RhbEtFWQQAAAANJHQwMTI3NjIxMjg3OQkBAAAAEHJlZnJlc2hJTlRFR1JBTFMAAAAEBQAAAAxscEFzc2V0SWRTdHIFAAAADnVzZXJBZGRyZXNzU3RyBQAAAA5wb29sQWRkcmVzc1N0cgUAAAAGYW1vdW50BAAAABB3eFRvQ2xhaW1Vc2VyTmV3CAUAAAANJHQwMTI3NjIxMjg3OQAAAAJfMQQAAAANaW50ZWdyYWxTVEFURQgFAAAADSR0MDEyNzYyMTI4NzkAAAACXzIEAAAABWRlYnVnCAUAAAANJHQwMTI3NjIxMjg3OQAAAAJfMwkABE4AAAACCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAA9zdGFrZWRCeVVzZXJLRVkJAABkAAAAAgUAAAAMc3Rha2VkQnlVc2VyBQAAAAZhbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAADnN0YWtlZFRvdGFsS0VZCQAAZAAAAAIFAAAAC3N0YWtlZFRvdGFsBQAAAAZhbW91bnQJAARMAAAAAgkBAAAAFU9wZXJhdGlvbkhpc3RvcnlFbnRyeQAAAAUCAAAABXN0YWtlBQAAAA51c2VyQWRkcmVzc1N0cgUAAAAMbHBBc3NldElkU3RyBQAAAAZhbW91bnQIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQFAAAAA25pbAUAAAANaW50ZWdyYWxTVEFURQAAAAFpAQAAAAd1bnN0YWtlAAAAAgAAAAxscEFzc2V0SWRTdHIAAAAGYW1vdW50BAAAAA51c2VyQWRkcmVzc1N0cgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAACWxwQXNzZXRJZAkAAlkAAAABBQAAAAxscEFzc2V0SWRTdHIEAAAADnBvb2xBZGRyZXNzU3RyCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAAPZmFjdG9yeUNvbnRyYWN0CQEAAAAaa2V5RmFjdG9yeUxwMkFzc2V0c01hcHBpbmcAAAABBQAAAAxscEFzc2V0SWRTdHIJAAEsAAAAAgIAAAAVdW5zdXBwb3J0ZWQgbHAgYXNzZXQgBQAAAAxscEFzc2V0SWRTdHIEAAAAD3N0YWtlZEJ5VXNlcktFWQkBAAAAD2tleVN0YWtlZEJ5VXNlcgAAAAIFAAAADnVzZXJBZGRyZXNzU3RyBQAAAAxscEFzc2V0SWRTdHIEAAAADnN0YWtlZFRvdGFsS0VZCQEAAAAOa2V5U3Rha2VkVG90YWwAAAABBQAAAAxscEFzc2V0SWRTdHIEAAAADHN0YWtlZEJ5VXNlcgkBAAAACnJlYWRTdGFrZWQAAAABBQAAAA9zdGFrZWRCeVVzZXJLRVkEAAAAC3N0YWtlZFRvdGFsCQEAAAAKcmVhZFN0YWtlZAAAAAEFAAAADnN0YWtlZFRvdGFsS0VZBAAAAA0kdDAxMzY5NjEzODE0CQEAAAAQcmVmcmVzaElOVEVHUkFMUwAAAAQFAAAADGxwQXNzZXRJZFN0cgUAAAAOdXNlckFkZHJlc3NTdHIFAAAADnBvb2xBZGRyZXNzU3RyCQEAAAABLQAAAAEFAAAABmFtb3VudAQAAAAQd3hUb0NsYWltVXNlck5ldwgFAAAADSR0MDEzNjk2MTM4MTQAAAACXzEEAAAADWludGVncmFsU1RBVEUIBQAAAA0kdDAxMzY5NjEzODE0AAAAAl8yBAAAAAVkZWJ1ZwgFAAAADSR0MDEzNjk2MTM4MTQAAAACXzMDCQAAZgAAAAIFAAAABmFtb3VudAUAAAAMc3Rha2VkQnlVc2VyCQAAAgAAAAECAAAAJHBhc3NlZCBhbW91bnQgaXMgbGVzcyB0aGVuIGF2YWlsYWJsZQkABE4AAAACCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAA9zdGFrZWRCeVVzZXJLRVkJAABlAAAAAgUAAAAMc3Rha2VkQnlVc2VyBQAAAAZhbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAADnN0YWtlZFRvdGFsS0VZCQAAZQAAAAIFAAAAC3N0YWtlZFRvdGFsBQAAAAZhbW91bnQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAAZhbW91bnQFAAAACWxwQXNzZXRJZAkABEwAAAACCQEAAAAVT3BlcmF0aW9uSGlzdG9yeUVudHJ5AAAABQIAAAAHdW5zdGFrZQUAAAAOdXNlckFkZHJlc3NTdHIFAAAADGxwQXNzZXRJZFN0cgUAAAAGYW1vdW50CAUAAAABaQAAAA10cmFuc2FjdGlvbklkBQAAAANuaWwFAAAADWludGVncmFsU1RBVEUAAAABaQEAAAAHY2xhaW1XeAAAAAEAAAAMbHBBc3NldElkU3RyBAAAAAt1c2VyQWRkcmVzcwgFAAAAAWkAAAAGY2FsbGVyBAAAAA51c2VyQWRkcmVzc1N0cgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAADnBvb2xBZGRyZXNzU3RyCQEAAAAYZ2V0U3RyaW5nQnlBZGRyZXNzT3JGYWlsAAAAAgUAAAAPZmFjdG9yeUNvbnRyYWN0CQEAAAAma2V5RmFjdG9yeUxwQXNzZXRUb1Bvb2xDb250cmFjdEFkZHJlc3MAAAABBQAAAAxscEFzc2V0SWRTdHIEAAAAEGNsYWltZWRCeVVzZXJLRVkJAQAAABBrZXlDbGFpbWVkQnlVc2VyAAAAAgUAAAAMbHBBc3NldElkU3RyBQAAAA51c2VyQWRkcmVzc1N0cgQAAAAPY2xhaW1lZFRvdGFsS0VZCQEAAAAPa2V5Q2xhaW1lZFRvdGFsAAAAAQUAAAAMbHBBc3NldElkU3RyBAAAABljbGFpbWVkQnlVc2VyTWluUmV3YXJkS0VZCQEAAAAZa2V5Q2xhaW1lZEJ5VXNlck1pblJld2FyZAAAAAIFAAAADGxwQXNzZXRJZFN0cgUAAAAOdXNlckFkZHJlc3NTdHIEAAAAG2NsYWltZWRCeVVzZXJCb29zdFJld2FyZEtFWQkBAAAAG2tleUNsYWltZWRCeVVzZXJCb29zdFJld2FyZAAAAAIFAAAADGxwQXNzZXRJZFN0cgUAAAAOdXNlckFkZHJlc3NTdHIEAAAADWNsYWltZWRCeVVzZXIJAQAAAAxnZXRJbnRPclplcm8AAAACBQAAAAR0aGlzBQAAABBjbGFpbWVkQnlVc2VyS0VZBAAAABZjbGFpbWVkQnlVc2VyTWluUmV3YXJkCQEAAAAMZ2V0SW50T3JaZXJvAAAAAgUAAAAEdGhpcwUAAAAZY2xhaW1lZEJ5VXNlck1pblJld2FyZEtFWQQAAAAYY2xhaW1lZEJ5VXNlckJvb3N0UmV3YXJkCQEAAAAMZ2V0SW50T3JaZXJvAAAAAgUAAAAEdGhpcwUAAAAbY2xhaW1lZEJ5VXNlckJvb3N0UmV3YXJkS0VZBAAAAAxjbGFpbWVkVG90YWwJAQAAAAxnZXRJbnRPclplcm8AAAACBQAAAAR0aGlzBQAAAA9jbGFpbWVkVG90YWxLRVkEAAAADSR0MDE1MDA2MTUxMTgJAQAAABByZWZyZXNoSU5URUdSQUxTAAAABAUAAAAMbHBBc3NldElkU3RyBQAAAA51c2VyQWRkcmVzc1N0cgUAAAAOcG9vbEFkZHJlc3NTdHIAAAAAAAAAAAAEAAAAEHd4VG9DbGFpbVVzZXJOZXcIBQAAAA0kdDAxNTAwNjE1MTE4AAAAAl8xBAAAAA1pbnRlZ3JhbFNUQVRFCAUAAAANJHQwMTUwMDYxNTExOAAAAAJfMgQAAAAFZGVidWcIBQAAAA0kdDAxNTAwNjE1MTE4AAAAAl8zBAAAABBhdmFpbGFibGVUb0NsYWltCQAAZQAAAAIFAAAAEHd4VG9DbGFpbVVzZXJOZXcFAAAADWNsYWltZWRCeVVzZXIDCQAAZwAAAAIAAAAAAAAAAAAFAAAAEGF2YWlsYWJsZVRvQ2xhaW0JAAACAAAAAQIAAAAQbm90aGluZyB0byBjbGFpbQQAAAASd3hBbW91bnRCb29zdFRvdGFsCQEAAAAFYXNJbnQAAAABCQABkQAAAAIJAQAAAAlhc0FueUxpc3QAAAABCQAD/AAAAAQFAAAAEGJvb3N0aW5nQ29udHJhY3QCAAAADGNsYWltV3hCb29zdAkABEwAAAACBQAAAA51c2VyQWRkcmVzc1N0cgUAAAADbmlsBQAAAANuaWwAAAAAAAAAAAAEAAAACnBvb2xXZWlnaHQJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAAD2ZhY3RvcnlDb250cmFjdAkBAAAAFGtleUZhY3RvcnlQb29sV2VpZ2h0AAAAAQUAAAAOcG9vbEFkZHJlc3NTdHIEAAAAEmJvb3N0UmV3YXJkUGFydFRNUAkAAGsAAAADBQAAABJ3eEFtb3VudEJvb3N0VG90YWwFAAAACnBvb2xXZWlnaHQFAAAADlBPT0xXRUlHSFRNVUxUBAAAAA1taW5SZXdhcmRQYXJ0BQAAABBhdmFpbGFibGVUb0NsYWltBAAAAA9ib29zdFJld2FyZFBhcnQJAAGXAAAAAQkABEwAAAACCQAAaAAAAAIFAAAADW1pblJld2FyZFBhcnQAAAAAAAAAAAIJAARMAAAAAgUAAAASYm9vc3RSZXdhcmRQYXJ0VE1QBQAAAANuaWwEAAAACXd4QXNzZXRJZAkBAAAADGFzQnl0ZVZlY3RvcgAAAAEJAAGRAAAAAgkBAAAACWFzQW55TGlzdAAAAAEJAAP8AAAABAUAAAAQZW1pc3Npb25Db250cmFjdAIAAAAEZW1pdAkABEwAAAACBQAAAA1taW5SZXdhcmRQYXJ0BQAAAANuaWwFAAAAA25pbAAAAAAAAAAAAAQAAAAJZW1pdEJvb3N0CQEAAAAJYXNBbnlMaXN0AAAAAQkAA/wAAAAEBQAAABBlbWlzc2lvbkNvbnRyYWN0AgAAAARlbWl0CQAETAAAAAIFAAAAD2Jvb3N0UmV3YXJkUGFydAUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAACWVtaXRCb29zdAUAAAAJZW1pdEJvb3N0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABBjbGFpbWVkQnlVc2VyS0VZCQAAZAAAAAIFAAAADWNsYWltZWRCeVVzZXIFAAAAEGF2YWlsYWJsZVRvQ2xhaW0JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAGWNsYWltZWRCeVVzZXJNaW5SZXdhcmRLRVkJAABkAAAAAgUAAAAWY2xhaW1lZEJ5VXNlck1pblJld2FyZAUAAAANbWluUmV3YXJkUGFydAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAbY2xhaW1lZEJ5VXNlckJvb3N0UmV3YXJkS0VZCQAAZAAAAAIFAAAAGGNsYWltZWRCeVVzZXJCb29zdFJld2FyZAUAAAAPYm9vc3RSZXdhcmRQYXJ0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAA9jbGFpbWVkVG90YWxLRVkJAABkAAAAAgUAAAAMY2xhaW1lZFRvdGFsBQAAABBhdmFpbGFibGVUb0NsYWltCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAC3VzZXJBZGRyZXNzBQAAAA1taW5SZXdhcmRQYXJ0BQAAAAl3eEFzc2V0SWQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAALdXNlckFkZHJlc3MFAAAAD2Jvb3N0UmV3YXJkUGFydAUAAAAJd3hBc3NldElkCQAETAAAAAIJAQAAABVPcGVyYXRpb25IaXN0b3J5RW50cnkAAAAFAgAAAAVjbGFpbQUAAAAOdXNlckFkZHJlc3NTdHIFAAAADGxwQXNzZXRJZFN0cgUAAAAQYXZhaWxhYmxlVG9DbGFpbQgFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAAA9jbGFpbVd4UkVBRE9OTFkAAAACAAAADGxwQXNzZXRJZFN0cgAAAA51c2VyQWRkcmVzc1N0cgQAAAAPc3Rha2VkQnlVc2VyS0VZCQEAAAAPa2V5U3Rha2VkQnlVc2VyAAAAAgUAAAAOdXNlckFkZHJlc3NTdHIFAAAADGxwQXNzZXRJZFN0cgQAAAAOc3Rha2VkVG90YWxLRVkJAQAAAA5rZXlTdGFrZWRUb3RhbAAAAAEFAAAADGxwQXNzZXRJZFN0cgQAAAAQY2xhaW1lZEJ5VXNlcktFWQkBAAAAEGtleUNsYWltZWRCeVVzZXIAAAACBQAAAAxscEFzc2V0SWRTdHIFAAAADnVzZXJBZGRyZXNzU3RyBAAAAAxzdGFrZWRCeVVzZXIJAQAAAApyZWFkU3Rha2VkAAAAAQUAAAAPc3Rha2VkQnlVc2VyS0VZBAAAAAtzdGFrZWRUb3RhbAkBAAAACnJlYWRTdGFrZWQAAAABBQAAAA5zdGFrZWRUb3RhbEtFWQQAAAANY2xhaW1lZEJ5VXNlcgkBAAAADGdldEludE9yWmVybwAAAAIFAAAABHRoaXMFAAAAEGNsYWltZWRCeVVzZXJLRVkEAAAADnBvb2xBZGRyZXNzU3RyCQEAAAAYZ2V0U3RyaW5nQnlBZGRyZXNzT3JGYWlsAAAAAgUAAAAPZmFjdG9yeUNvbnRyYWN0CQEAAAAma2V5RmFjdG9yeUxwQXNzZXRUb1Bvb2xDb250cmFjdEFkZHJlc3MAAAABBQAAAAxscEFzc2V0SWRTdHIEAAAADnBvb2xXZWlnaHRNdWx0BQAAAAVNVUxUOAQAAAAKcG9vbFdlaWdodAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAPZmFjdG9yeUNvbnRyYWN0CQEAAAAUa2V5RmFjdG9yeVBvb2xXZWlnaHQAAAABBQAAAA5wb29sQWRkcmVzc1N0cgQAAAASd3hFbWlzc2lvblBlckJsb2NrCQEAAAAMZ2V0SW50T3JGYWlsAAAAAgUAAAAQZW1pc3Npb25Db250cmFjdAkBAAAAHmtleUVtaXNzaW9uUmF0ZVBlckJsb2NrQ3VycmVudAAAAAAEAAAAEmVtaXNzaW9uU3RhcnRCbG9jawkBAAAADGdldEludE9yRmFpbAAAAAIFAAAAEGVtaXNzaW9uQ29udHJhY3QJAQAAABVrZXlFbWlzc2lvblN0YXJ0QmxvY2sAAAAABAAAAAxwYXNzZWRCbG9ja3MDCQAAZgAAAAIFAAAAEmVtaXNzaW9uU3RhcnRCbG9jawUAAAAGaGVpZ2h0AAAAAAAAAAAACQAAZQAAAAIFAAAABmhlaWdodAUAAAASZW1pc3Npb25TdGFydEJsb2NrBAAAAA5wb29sV3hFbWlzc2lvbgkAAGsAAAADCQAAaAAAAAIFAAAAEnd4RW1pc3Npb25QZXJCbG9jawUAAAAMcGFzc2VkQmxvY2tzBQAAAApwb29sV2VpZ2h0BQAAAA5wb29sV2VpZ2h0TXVsdAQAAAAMdXNlcld4UmV3YXJkCQAAawAAAAMFAAAADnBvb2xXeEVtaXNzaW9uBQAAAAxzdGFrZWRCeVVzZXIFAAAAC3N0YWtlZFRvdGFsBAAAAA0kdDAxNzU0MDE3NjUyCQEAAAAQcmVmcmVzaElOVEVHUkFMUwAAAAQFAAAADGxwQXNzZXRJZFN0cgUAAAAOdXNlckFkZHJlc3NTdHIFAAAADnBvb2xBZGRyZXNzU3RyAAAAAAAAAAAABAAAABB3eFRvQ2xhaW1Vc2VyTmV3CAUAAAANJHQwMTc1NDAxNzY1MgAAAAJfMQQAAAANaW50ZWdyYWxTVEFURQgFAAAADSR0MDE3NTQwMTc2NTIAAAACXzIEAAAABWRlYnVnCAUAAAANJHQwMTc1NDAxNzY1MgAAAAJfMwQAAAAQYXZhaWxhYmxlVG9DbGFpbQkAAGUAAAACBQAAABB3eFRvQ2xhaW1Vc2VyTmV3BQAAAA1jbGFpbWVkQnlVc2VyBAAAAA5ib29zdEludlJlc3VsdAkBAAAACWFzQW55TGlzdAAAAAEJAAP8AAAABAUAAAAQYm9vc3RpbmdDb250cmFjdAIAAAAUY2xhaW1XeEJvb3N0UkVBRE9OTFkJAARMAAAAAgUAAAAOdXNlckFkZHJlc3NTdHIFAAAAA25pbAUAAAADbmlsBAAAABJ3eEFtb3VudEJvb3N0VG90YWwJAQAAAAVhc0ludAAAAAEJAAGRAAAAAgUAAAAOYm9vc3RJbnZSZXN1bHQAAAAAAAAAAAAEAAAACmJvb3N0RGVidWcJAQAAAAhhc1N0cmluZwAAAAEJAAGRAAAAAgUAAAAOYm9vc3RJbnZSZXN1bHQAAAAAAAAAAAIEAAAAEmJvb3N0UmV3YXJkUGFydFRNUAkAAGsAAAADBQAAABJ3eEFtb3VudEJvb3N0VG90YWwFAAAACnBvb2xXZWlnaHQFAAAADlBPT0xXRUlHSFRNVUxUBAAAAA1taW5SZXdhcmRQYXJ0BQAAABBhdmFpbGFibGVUb0NsYWltBAAAAA9ib29zdFJld2FyZFBhcnQJAAGXAAAAAQkABEwAAAACCQAAaAAAAAIFAAAADW1pblJld2FyZFBhcnQAAAAAAAAAAAIJAARMAAAAAgUAAAASYm9vc3RSZXdhcmRQYXJ0VE1QBQAAAANuaWwEAAAAC3RvdGFsUmV3YXJkCQAAZAAAAAIFAAAADW1pblJld2FyZFBhcnQFAAAAD2Jvb3N0UmV3YXJkUGFydAkABRQAAAACBQAAAANuaWwJAAS5AAAAAgkABEwAAAACAgAAAA4lcyVzJWQlZCVkJWQlcwkABEwAAAACBQAAAAxscEFzc2V0SWRTdHIJAARMAAAAAgUAAAAOdXNlckFkZHJlc3NTdHIJAARMAAAAAgkAAaQAAAABBQAAAAt0b3RhbFJld2FyZAkABEwAAAACCQABpAAAAAEFAAAADWNsYWltZWRCeVVzZXIJAARMAAAAAgkAAaQAAAABBQAAAA1taW5SZXdhcmRQYXJ0CQAETAAAAAIJAAGkAAAAAQUAAAAPYm9vc3RSZXdhcmRQYXJ0CQAETAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAFZGVidWcCAAAAAjo6CQABpAAAAAEFAAAADHVzZXJXeFJld2FyZAIAAAAOOjpCT09TVERFQlVHOjoFAAAACmJvb3N0RGVidWcFAAAAA25pbAUAAAADU0VQAAAAAB965KU=", "chainId": 84, "height": 1813651, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 2R8iYW7dnAQPf2yyzq3ETHniyEARzALo9mVAhNxvaDer Next: 85rBEYTPrXVcxTusPkbMoxgh5TkXzXXQNM5Rxhwt6ABE Diff:
OldNewDifferences
3737
3838 func m (h) = {
3939 let i = h
40- if ($isInstanceOf(i, "ByteVector"))
40+ if ($isInstanceOf(i, "String"))
4141 then {
4242 let n = i
4343 n
4646 }
4747
4848
49-func o (p) = valueOrErrorMessage(getString(p), (("mandatory this." + p) + " is not defined"))
49+func o (h) = {
50+ let i = h
51+ if ($isInstanceOf(i, "ByteVector"))
52+ then {
53+ let p = i
54+ p
55+ }
56+ else throw("fail to cast into Int")
57+ }
5058
5159
52-func q (r,p) = valueOrErrorMessage(getString(r, p), (((("mandatory " + toString(r)) + ".") + p) + " is not defined"))
60+func q (r) = valueOrErrorMessage(getString(r), (("mandatory this." + r) + " is not defined"))
5361
5462
55-func s (r,p) = valueOrElse(getInteger(r, p), 0)
63+func s (t,r) = valueOrErrorMessage(getString(t, r), (((("mandatory " + toString(t)) + ".") + r) + " is not defined"))
5664
5765
58-func t (r,p,u) = valueOrElse(getInteger(r, p), u)
66+func u (t,r) = valueOrElse(getInteger(t, r), 0)
5967
6068
61-func v (r,p) = valueOrErrorMessage(getInteger(r, p), (("mandatory this." + p) + " is not defined"))
69+func v (t,r,w) = valueOrElse(getInteger(t, r), w)
6270
6371
64-func w (x,y) = fraction(toBigInt(x), d, toBigInt(y))
72+func x (t,r) = valueOrErrorMessage(getInteger(t, r), (("mandatory this." + r) + " is not defined"))
6573
6674
67-func z (h,A) = toInt(fraction(h, toBigInt(A), d))
75+func y (z,A) = fraction(toBigInt(z), d, toBigInt(A))
6876
6977
70-func B () = "%s%s__config__factoryAddress"
78+func B (h,C) = toInt(fraction(h, toBigInt(C), d))
7179
7280
73-let C = 1
74-
75-let D = 2
76-
77-let E = 3
78-
79-let F = 4
80-
81-let G = 5
82-
83-let H = 6
84-
85-let I = 7
86-
87-func J () = "%s__factoryConfig"
81+func D () = "%s%s__config__factoryAddress"
8882
8983
90-func K (L) = makeString(["%s%s%s", L, "mappings__lpAsset2PoolContract"], e)
84+let E = 1
85+
86+let F = 2
87+
88+let G = 3
89+
90+let H = 4
91+
92+let I = 5
93+
94+let J = 6
95+
96+let K = 7
97+
98+func L () = "%s__factoryConfig"
9199
92100
93-func M () = "%s__lpTokensList"
101+func M (N) = makeString(["%s%s%s", N, "mappings__lpAsset2PoolContract"], e)
94102
95103
96-func N (L) = makeString(["%s%s%s", L, "mappings__lpAsset2PoolContract"], e)
104+func O () = "%s__lpTokensList"
97105
98106
99-func O (P) = makeString(["%s%s", "poolWeight", P], e)
107+func P (N) = makeString(["%s%s%s", N, "mappings__lpAsset2PoolContract"], e)
100108
101109
102-func Q () = addressFromStringValue(o(B()))
110+func Q (R) = makeString(["%s%s", "poolWeight", R], e)
103111
104112
105-func R () = split(valueOrElse(getString(Q(), M()), ""), e)
113+func S () = addressFromStringValue(q(D()))
106114
107115
108-func S (T) = split(q(T, J()), e)
116+func T () = split(valueOrElse(getString(S(), O()), ""), e)
109117
110118
111-func U (V) = addressFromStringValue(V[D])
119+func U (V) = split(s(V, L()), e)
112120
113121
114-func W (V) = addressFromStringValue(V[G])
122+func W (X) = addressFromStringValue(X[F])
115123
116124
117-func X (V) = addressFromStringValue(V[C])
125+func Y (X) = addressFromStringValue(X[I])
118126
119127
120-func Y () = "%s%s__ratePerBlock__current"
128+func Z (X) = addressFromStringValue(X[E])
121129
122130
123-func Z () = "%s%s__ratePerBlockMax__current"
131+func aa () = "%s%s__ratePerBlock__current"
124132
125133
126-func aa () = "%s%s__emission__startBlock"
134+func ab () = "%s%s__ratePerBlockMax__current"
127135
128136
129-func ab () = "%s%s__emission__duration"
137+func ac () = "%s%s__emission__startBlock"
130138
131139
132-func ac () = "%s%s__emission__endBlock"
140+func ad () = "%s%s__emission__duration"
133141
134142
135-func ad (ae,af) = makeString(["%s%s%s__staked", ae, af], e)
143+func ae () = "%s%s__emission__endBlock"
136144
137145
138-func ag (af) = ("%s%s%s__staked__total__" + af)
146+func af (ag,ah) = makeString(["%s%s%s__staked", ag, ah], e)
139147
140148
141-func ah (af,ae) = makeString(["%s%s%s__claimed", ae, af], e)
149+func ai (ah) = ("%s%s%s__staked__total__" + ah)
142150
143151
144-func ai (af,ae) = makeString(["%s%s%s__claimedMinReward", ae, af], e)
152+func aj (ah,ag) = makeString(["%s%s%s__claimed", ag, ah], e)
145153
146154
147-func aj (af,ae) = makeString(["%s%s%s__claimedBoostReward", ae, af], e)
155+func ak (ah,ag) = makeString(["%s%s%s__claimedMinReward", ag, ah], e)
148156
149157
150-func ak (af) = makeString(["%s%s%s__claimed", "total", af], e)
158+func al (ah,ag) = makeString(["%s%s%s__claimedBoostReward", ag, ah], e)
151159
152160
153-func al (p) = valueOrElse(getInteger(this, p), 0)
161+func am (ah) = makeString(["%s%s%s__claimed", "total", ah], e)
154162
155163
156-func am (an) = makeString(["%s%s%s", an, "total", "bal"], e)
164+func an (r) = valueOrElse(getInteger(this, r), 0)
157165
158166
159-func ao (an,ap) = makeString(["%s%s%s", an, ap, "bal"], e)
167+func ao (ap) = makeString(["%s%s%s", ap, "total", "bal"], e)
160168
161169
162-func aq (an) = makeString(["%s%s%s", an, "total", "balINT"], e)
170+func aq (ap,ar) = makeString(["%s%s%s", ap, ar, "bal"], e)
163171
164172
165-func ar (an,ap) = makeString(["%s%s%s", an, ap, "balINT"], e)
173+func as (ap) = makeString(["%s%s%s", ap, "total", "balINT"], e)
166174
167175
168-func as (an) = makeString(["%s%s%s", an, "total", "lastUpd"], e)
176+func at (ap,ar) = makeString(["%s%s%s", ap, ar, "balINT"], e)
169177
170178
171-func at (an,ap) = makeString(["%s%s%s", an, ap, "lastUpd"], e)
179+func au (ap) = makeString(["%s%s%s", ap, "total", "lastUpd"], e)
172180
173181
174-func au (an) = makeString(["%s%s%s%s", an, "common", "lpInt"], e)
182+func av (ap,ar) = makeString(["%s%s%s", ap, ar, "lastUpd"], e)
175183
176184
177-func av (an) = makeString(["%s%s%s%s", an, "common", "lpIntH"], e)
185+func aw (ap) = makeString(["%s%s%s%s", ap, "common", "lpInt"], e)
178186
179187
180-func aw (an,ap) = makeString(["%s%s%s%s", an, ap, "lpInt"], e)
188+func ax (ap) = makeString(["%s%s%s%s", ap, "common", "lpIntH"], e)
181189
182190
183-func ax (an,ap) = makeString(["%s%s%s%s", an, ap, "lpIntH"], e)
191+func ay (ap,ar) = makeString(["%s%s%s%s", ap, ar, "lpInt"], e)
184192
185193
186-func ay (an) = makeString(["%s", an, "wxPerLp"], e)
194+func az (ap,ar) = makeString(["%s%s%s%s", ap, ar, "lpIntH"], e)
187195
188196
189-func az (an) = makeString(["%s", an, "wxPerLpX18"], e)
197+func aA (ap) = makeString(["%s", ap, "wxPerLp"], e)
190198
191199
192-func aA (an,ap) = makeString(["%s%s%s%s", an, ap, "uIntL"], e)
200+func aB (ap) = makeString(["%s", ap, "wxPerLpX18"], e)
193201
194202
195-func aB (aC,ap,aD) = makeString(["%s%s%s%s__history", aC, ap, aD], e)
203+func aC (ap,ar) = makeString(["%s%s%s%s", ap, ar, "uIntL"], e)
196204
197205
198-func aE (ap,an,aC,aF) = makeString(["%s%s%s%d%d%d", ap, an, aC, toString(height), toString(lastBlock.timestamp), toString(aF)], e)
206+func aD (aE,ar,aF) = makeString(["%s%s%s%s__history", aE, ar, aF], e)
199207
200208
201-func aG (aC,ap,an,aF,aH) = StringEntry(aB(aC, ap, toBase58String(aH)), aE(ap, an, aC, aF))
209+func aG (ar,ap,aE,aH) = makeString(["%s%s%s%d%d%d", ar, ap, aE, toString(height), toString(lastBlock.timestamp), toString(aH)], e)
202210
203211
204-let aI = Q()
212+func aI (aE,ar,ap,aH,aJ) = StringEntry(aD(aE, ar, toBase58String(aJ)), aG(ar, ap, aE, aH))
205213
206-let V = S(aI)
207214
208-let aJ = W(V)
215+let aK = S()
209216
210-let aK = U(V)
217+let X = U(aK)
211218
212-func aL (aM,aN,aO,aP,aQ) = if (if ((aN == 0))
213- then (aM > 0)
219+let aL = Y(X)
220+
221+let aM = W(X)
222+
223+func aN (aO,aP,aQ,aR,aS) = if (if ((aP == 0))
224+ then (aO > 0)
214225 else false)
215226 then 0
216- else if ((aM == 0))
217- then aO
218- else if (if ((aN > 0))
219- then (aM > 0)
227+ else if ((aO == 0))
228+ then aQ
229+ else if (if ((aP > 0))
230+ then (aO > 0)
220231 else false)
221- then (v(this, aP) * aQ)
232+ then (x(this, aR) * aS)
222233 else throw("calcWxPerLpIntegralUserLast: unexpected state")
223234
224235
225-func aR (af,ae,aS,aT) = {
226- let aU = ad(ae, af)
227- let aV = ag(af)
228- let aM = al(aU)
229- let aW = al(aV)
230- let aX = getIntegerValue(aI, O(aS))
231- let aY = v(aJ, aa())
232- let aZ = 1000
233- let ba = (v(aJ, Y()) * aZ)
234- let bb = fraction(ba, aX, (f * 3))
235- let bc = "isMigrated_to_X3"
236- let aQ = if ((s(this, bc) == 0))
237- then aZ
236+func aT (ah,ag,aU,aV) = {
237+ let aW = af(ag, ah)
238+ let aX = ai(ah)
239+ let aO = an(aW)
240+ let aY = an(aX)
241+ let aZ = getIntegerValue(aK, Q(aU))
242+ let ba = x(aL, ac())
243+ let bb = 1000
244+ let bc = (x(aL, aa()) * bb)
245+ let bd = fraction(bc, aZ, (f * 3))
246+ let be = "isMigrated_to_X3"
247+ let aS = if ((u(this, be) == 0))
248+ then bb
238249 else 1
239- let bd = au(af)
240- let be = av(af)
241- let bf = aw(af, ae)
242- let bg = ax(af, ae)
243- let bh = ay(af)
244- let aP = aA(af, ae)
245- let bi = t(this, be, aY)
246- let bj = (s(this, bd) * aQ)
247- let bk = s(this, bf)
248- let aN = s(this, bg)
249- let bl = (s(this, bh) * aQ)
250- let bm = max([(height - bi), 0])
251- let bn = if ((bl != 0))
252- then bl
253- else fraction(bb, b, aW)
254- let bo = (aW + aT)
255- let aO = (bj + (bn * bm))
256- let bp = aL(aM, aN, aO, aP, aQ)
257- let bq = (bk + fraction((aO - bp), aM, (b * aZ)))
258- let br = aO
259- let bs = (bb / bo)
260- let bt = height
261- let bu = height
262- let bv = makeString([toString(bq), toString(aO), toString(bp), toString(aM), toString(bm), toString(bn), toString(aW), toString(bb), toString(ba), toString(aX), toString(height)], "::")
263- $Tuple3(bq, [IntegerEntry(bd, aO), IntegerEntry(be, bt), IntegerEntry(bf, bq), IntegerEntry(bg, bu), IntegerEntry(bh, bs), IntegerEntry(aP, br), IntegerEntry(bc, 1)], bv)
250+ let bf = aw(ah)
251+ let bg = ax(ah)
252+ let bh = ay(ah, ag)
253+ let bi = az(ah, ag)
254+ let bj = aA(ah)
255+ let aR = aC(ah, ag)
256+ let bk = v(this, bg, ba)
257+ let bl = (u(this, bf) * aS)
258+ let bm = u(this, bh)
259+ let aP = u(this, bi)
260+ let bn = (u(this, bj) * aS)
261+ let bo = max([(height - bk), 0])
262+ let bp = if ((bn != 0))
263+ then bn
264+ else fraction(bd, b, aY)
265+ let bq = (aY + aV)
266+ let aQ = (bl + (bp * bo))
267+ let br = aN(aO, aP, aQ, aR, aS)
268+ let bs = (bm + fraction((aQ - br), aO, (b * bb)))
269+ let bt = aQ
270+ let bu = (bd / bq)
271+ let bv = height
272+ let bw = height
273+ let bx = makeString([toString(bs), toString(aQ), toString(br), toString(aO), toString(bo), toString(bp), toString(aY), toString(bd), toString(bc), toString(aZ), toString(height)], "::")
274+ $Tuple3(bs, [IntegerEntry(bf, aQ), IntegerEntry(bg, bv), IntegerEntry(bh, bs), IntegerEntry(bi, bw), IntegerEntry(bj, bu), IntegerEntry(aR, bt), IntegerEntry(be, 1)], bx)
264275 }
265276
266277
267-@Callable(bw)
268-func constructor (bx) = if ((bw.caller != this))
278+@Callable(by)
279+func constructor (bz) = if ((by.caller != this))
269280 then throw("not authorized")
270- else [StringEntry(B(), bx)]
281+ else [StringEntry(D(), bz)]
271282
272283
273284
274-@Callable(bw)
275-func stake () = if ((size(bw.payments) != 1))
285+@Callable(by)
286+func stake () = if ((size(by.payments) != 1))
276287 then throw("invalid payment - exact one payment must be attached")
277288 else {
278- let by = bw.payments[0]
279- let an = value(by.assetId)
280- let af = toBase58String(an)
281- let aF = by.amount
282- let aS = valueOrErrorMessage(getString(aI, K(af)), ("unsupported lp asset " + af))
283- let bz = toString(bw.caller)
284- let ae = if ((bz == aS))
285- then toString(bw.originCaller)
286- else bz
287- let aU = ad(ae, af)
288- let aV = ag(af)
289- let aM = al(aU)
290- let aW = al(aV)
291- let bA = aR(af, ae, aS, aF)
292- let bq = bA._1
293- let bB = bA._2
294- let bv = bA._3
295- ([IntegerEntry(aU, (aM + aF)), IntegerEntry(aV, (aW + aF)), aG("stake", ae, af, aF, bw.transactionId)] ++ bB)
289+ let bA = by.payments[0]
290+ let ap = value(bA.assetId)
291+ let ah = toBase58String(ap)
292+ let aH = bA.amount
293+ let aU = valueOrErrorMessage(getString(aK, M(ah)), ("unsupported lp asset " + ah))
294+ let bB = toString(by.caller)
295+ let ag = if ((bB == aU))
296+ then toString(by.originCaller)
297+ else bB
298+ let aW = af(ag, ah)
299+ let aX = ai(ah)
300+ let aO = an(aW)
301+ let aY = an(aX)
302+ let bC = aT(ah, ag, aU, aH)
303+ let bs = bC._1
304+ let bD = bC._2
305+ let bx = bC._3
306+ ([IntegerEntry(aW, (aO + aH)), IntegerEntry(aX, (aY + aH)), aI("stake", ag, ah, aH, by.transactionId)] ++ bD)
296307 }
297308
298309
299310
300-@Callable(bw)
301-func unstake (af,aF) = {
302- let ae = toString(bw.caller)
303- let an = fromBase58String(af)
304- let aS = valueOrErrorMessage(getString(aI, K(af)), ("unsupported lp asset " + af))
305- let aU = ad(ae, af)
306- let aV = ag(af)
307- let aM = al(aU)
308- let aW = al(aV)
309- let bC = aR(af, ae, aS, -(aF))
310- let bq = bC._1
311- let bB = bC._2
312- let bv = bC._3
313- if ((aF > aM))
311+@Callable(by)
312+func unstake (ah,aH) = {
313+ let ag = toString(by.caller)
314+ let ap = fromBase58String(ah)
315+ let aU = valueOrErrorMessage(getString(aK, M(ah)), ("unsupported lp asset " + ah))
316+ let aW = af(ag, ah)
317+ let aX = ai(ah)
318+ let aO = an(aW)
319+ let aY = an(aX)
320+ let bE = aT(ah, ag, aU, -(aH))
321+ let bs = bE._1
322+ let bD = bE._2
323+ let bx = bE._3
324+ if ((aH > aO))
314325 then throw("passed amount is less then available")
315- else ([IntegerEntry(aU, (aM - aF)), IntegerEntry(aV, (aW - aF)), ScriptTransfer(bw.caller, aF, an), aG("unstake", ae, af, aF, bw.transactionId)] ++ bB)
326+ else ([IntegerEntry(aW, (aO - aH)), IntegerEntry(aX, (aY - aH)), ScriptTransfer(by.caller, aH, ap), aI("unstake", ag, ah, aH, by.transactionId)] ++ bD)
316327 }
317328
318329
319330
320-@Callable(bw)
321-func claimWx (af) = {
322- let ap = bw.caller
323- let ae = toString(bw.caller)
324- let aS = q(aI, N(af))
325- let bD = ah(af, ae)
326- let bE = ak(af)
327- let bF = ai(af, ae)
328- let bG = aj(af, ae)
329- let bH = s(this, bD)
330- let bI = s(this, bF)
331- let bJ = s(this, bG)
332- let bK = s(this, bE)
333- let bL = aR(af, ae, aS, 0)
334- let bq = bL._1
335- let bB = bL._2
336- let bv = bL._3
337- let bM = (bq - bH)
338- if ((0 >= bM))
331+@Callable(by)
332+func claimWx (ah) = {
333+ let ar = by.caller
334+ let ag = toString(by.caller)
335+ let aU = s(aK, P(ah))
336+ let bF = aj(ah, ag)
337+ let bG = am(ah)
338+ let bH = ak(ah, ag)
339+ let bI = al(ah, ag)
340+ let bJ = u(this, bF)
341+ let bK = u(this, bH)
342+ let bL = u(this, bI)
343+ let bM = u(this, bG)
344+ let bN = aT(ah, ag, aU, 0)
345+ let bs = bN._1
346+ let bD = bN._2
347+ let bx = bN._3
348+ let bO = (bs - bJ)
349+ if ((0 >= bO))
339350 then throw("nothing to claim")
340351 else {
341- let bN = k(g(invoke(aK, "claimWxBoost", [ae], nil))[0])
342- let aX = getIntegerValue(aI, O(aS))
343- let bO = fraction(bN, aX, f)
344- let bP = bM
345- let bQ = min([(bP * 2), bO])
346- let bR = m(g(invoke(aJ, "emit", [bP], nil))[0])
347- let bS = g(invoke(aJ, "emit", [bQ], nil))
348- if ((bS == bS))
349- then [IntegerEntry(bD, (bH + bM)), IntegerEntry(bF, (bI + bP)), IntegerEntry(bG, (bJ + bQ)), IntegerEntry(bE, (bK + bM)), ScriptTransfer(ap, bP, bR), ScriptTransfer(ap, bQ, bR), aG("claim", ae, af, bM, bw.transactionId)]
352+ let bP = k(g(invoke(aM, "claimWxBoost", [ag], nil))[0])
353+ let aZ = getIntegerValue(aK, Q(aU))
354+ let bQ = fraction(bP, aZ, f)
355+ let bR = bO
356+ let bS = min([(bR * 2), bQ])
357+ let bT = o(g(invoke(aL, "emit", [bR], nil))[0])
358+ let bU = g(invoke(aL, "emit", [bS], nil))
359+ if ((bU == bU))
360+ then [IntegerEntry(bF, (bJ + bO)), IntegerEntry(bH, (bK + bR)), IntegerEntry(bI, (bL + bS)), IntegerEntry(bG, (bM + bO)), ScriptTransfer(ar, bR, bT), ScriptTransfer(ar, bS, bT), aI("claim", ag, ah, bO, by.transactionId)]
350361 else throw("Strict value is not equal to itself.")
351362 }
352363 }
353364
354365
355366
356-@Callable(bw)
357-func claimWxREADONLY (af,ae) = {
358- let aU = ad(ae, af)
359- let aV = ag(af)
360- let bD = ah(af, ae)
361- let aM = al(aU)
362- let aW = al(aV)
363- let bH = s(this, bD)
364- let aS = q(aI, N(af))
365- let bT = b
366- let aX = getIntegerValue(aI, O(aS))
367- let ba = v(aJ, Y())
368- let aY = v(aJ, aa())
369- let bU = if ((aY > height))
367+@Callable(by)
368+func claimWxREADONLY (ah,ag) = {
369+ let aW = af(ag, ah)
370+ let aX = ai(ah)
371+ let bF = aj(ah, ag)
372+ let aO = an(aW)
373+ let aY = an(aX)
374+ let bJ = u(this, bF)
375+ let aU = s(aK, P(ah))
376+ let bV = b
377+ let aZ = getIntegerValue(aK, Q(aU))
378+ let bc = x(aL, aa())
379+ let ba = x(aL, ac())
380+ let bW = if ((ba > height))
370381 then 0
371- else (height - aY)
372- let bV = fraction((ba * bU), aX, bT)
373- let bW = fraction(bV, aM, aW)
374- let bX = aR(af, ae, aS, 0)
375- let bq = bX._1
376- let bB = bX._2
377- let bv = bX._3
378- let bM = (bq - bH)
379- let bN = k(g(invoke(aK, "claimWxBoostREADONLY", [ae], nil))[0])
380- let bO = fraction(bN, aX, f)
381- let bP = bM
382- let bQ = min([(bP * 2), bO])
383- let bY = (bP + bQ)
384- $Tuple2(nil, makeString(["%s%s%d%d%d%d%s", af, ae, toString(bY), toString(bH), toString(bP), toString(bQ), ((bv + "::") + toString(bW))], e))
382+ else (height - ba)
383+ let bX = fraction((bc * bW), aZ, bV)
384+ let bY = fraction(bX, aO, aY)
385+ let bZ = aT(ah, ag, aU, 0)
386+ let bs = bZ._1
387+ let bD = bZ._2
388+ let bx = bZ._3
389+ let bO = (bs - bJ)
390+ let ca = g(invoke(aM, "claimWxBoostREADONLY", [ag], nil))
391+ let bP = k(ca[0])
392+ let cb = m(ca[2])
393+ let bQ = fraction(bP, aZ, f)
394+ let bR = bO
395+ let bS = min([(bR * 2), bQ])
396+ let cc = (bR + bS)
397+ $Tuple2(nil, makeString(["%s%s%d%d%d%d%s", ah, ag, toString(cc), toString(bJ), toString(bR), toString(bS), ((((bx + "::") + toString(bY)) + "::BOOSTDEBUG::") + cb)], e))
385398 }
386399
387400
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 8
55
66 let b = 100000000
77
88 let c = 18
99
1010 let d = toBigInt(1000000000000000000)
1111
1212 let e = "__"
1313
1414 let f = b
1515
1616 func g (h) = {
1717 let i = h
1818 if ($isInstanceOf(i, "List[Any]"))
1919 then {
2020 let j = i
2121 j
2222 }
2323 else throw("fail to cast into List[Any]")
2424 }
2525
2626
2727 func k (h) = {
2828 let i = h
2929 if ($isInstanceOf(i, "Int"))
3030 then {
3131 let l = i
3232 l
3333 }
3434 else throw("fail to cast into Int")
3535 }
3636
3737
3838 func m (h) = {
3939 let i = h
40- if ($isInstanceOf(i, "ByteVector"))
40+ if ($isInstanceOf(i, "String"))
4141 then {
4242 let n = i
4343 n
4444 }
4545 else throw("fail to cast into Int")
4646 }
4747
4848
49-func o (p) = valueOrErrorMessage(getString(p), (("mandatory this." + p) + " is not defined"))
49+func o (h) = {
50+ let i = h
51+ if ($isInstanceOf(i, "ByteVector"))
52+ then {
53+ let p = i
54+ p
55+ }
56+ else throw("fail to cast into Int")
57+ }
5058
5159
52-func q (r,p) = valueOrErrorMessage(getString(r, p), (((("mandatory " + toString(r)) + ".") + p) + " is not defined"))
60+func q (r) = valueOrErrorMessage(getString(r), (("mandatory this." + r) + " is not defined"))
5361
5462
55-func s (r,p) = valueOrElse(getInteger(r, p), 0)
63+func s (t,r) = valueOrErrorMessage(getString(t, r), (((("mandatory " + toString(t)) + ".") + r) + " is not defined"))
5664
5765
58-func t (r,p,u) = valueOrElse(getInteger(r, p), u)
66+func u (t,r) = valueOrElse(getInteger(t, r), 0)
5967
6068
61-func v (r,p) = valueOrErrorMessage(getInteger(r, p), (("mandatory this." + p) + " is not defined"))
69+func v (t,r,w) = valueOrElse(getInteger(t, r), w)
6270
6371
64-func w (x,y) = fraction(toBigInt(x), d, toBigInt(y))
72+func x (t,r) = valueOrErrorMessage(getInteger(t, r), (("mandatory this." + r) + " is not defined"))
6573
6674
67-func z (h,A) = toInt(fraction(h, toBigInt(A), d))
75+func y (z,A) = fraction(toBigInt(z), d, toBigInt(A))
6876
6977
70-func B () = "%s%s__config__factoryAddress"
78+func B (h,C) = toInt(fraction(h, toBigInt(C), d))
7179
7280
73-let C = 1
74-
75-let D = 2
76-
77-let E = 3
78-
79-let F = 4
80-
81-let G = 5
82-
83-let H = 6
84-
85-let I = 7
86-
87-func J () = "%s__factoryConfig"
81+func D () = "%s%s__config__factoryAddress"
8882
8983
90-func K (L) = makeString(["%s%s%s", L, "mappings__lpAsset2PoolContract"], e)
84+let E = 1
85+
86+let F = 2
87+
88+let G = 3
89+
90+let H = 4
91+
92+let I = 5
93+
94+let J = 6
95+
96+let K = 7
97+
98+func L () = "%s__factoryConfig"
9199
92100
93-func M () = "%s__lpTokensList"
101+func M (N) = makeString(["%s%s%s", N, "mappings__lpAsset2PoolContract"], e)
94102
95103
96-func N (L) = makeString(["%s%s%s", L, "mappings__lpAsset2PoolContract"], e)
104+func O () = "%s__lpTokensList"
97105
98106
99-func O (P) = makeString(["%s%s", "poolWeight", P], e)
107+func P (N) = makeString(["%s%s%s", N, "mappings__lpAsset2PoolContract"], e)
100108
101109
102-func Q () = addressFromStringValue(o(B()))
110+func Q (R) = makeString(["%s%s", "poolWeight", R], e)
103111
104112
105-func R () = split(valueOrElse(getString(Q(), M()), ""), e)
113+func S () = addressFromStringValue(q(D()))
106114
107115
108-func S (T) = split(q(T, J()), e)
116+func T () = split(valueOrElse(getString(S(), O()), ""), e)
109117
110118
111-func U (V) = addressFromStringValue(V[D])
119+func U (V) = split(s(V, L()), e)
112120
113121
114-func W (V) = addressFromStringValue(V[G])
122+func W (X) = addressFromStringValue(X[F])
115123
116124
117-func X (V) = addressFromStringValue(V[C])
125+func Y (X) = addressFromStringValue(X[I])
118126
119127
120-func Y () = "%s%s__ratePerBlock__current"
128+func Z (X) = addressFromStringValue(X[E])
121129
122130
123-func Z () = "%s%s__ratePerBlockMax__current"
131+func aa () = "%s%s__ratePerBlock__current"
124132
125133
126-func aa () = "%s%s__emission__startBlock"
134+func ab () = "%s%s__ratePerBlockMax__current"
127135
128136
129-func ab () = "%s%s__emission__duration"
137+func ac () = "%s%s__emission__startBlock"
130138
131139
132-func ac () = "%s%s__emission__endBlock"
140+func ad () = "%s%s__emission__duration"
133141
134142
135-func ad (ae,af) = makeString(["%s%s%s__staked", ae, af], e)
143+func ae () = "%s%s__emission__endBlock"
136144
137145
138-func ag (af) = ("%s%s%s__staked__total__" + af)
146+func af (ag,ah) = makeString(["%s%s%s__staked", ag, ah], e)
139147
140148
141-func ah (af,ae) = makeString(["%s%s%s__claimed", ae, af], e)
149+func ai (ah) = ("%s%s%s__staked__total__" + ah)
142150
143151
144-func ai (af,ae) = makeString(["%s%s%s__claimedMinReward", ae, af], e)
152+func aj (ah,ag) = makeString(["%s%s%s__claimed", ag, ah], e)
145153
146154
147-func aj (af,ae) = makeString(["%s%s%s__claimedBoostReward", ae, af], e)
155+func ak (ah,ag) = makeString(["%s%s%s__claimedMinReward", ag, ah], e)
148156
149157
150-func ak (af) = makeString(["%s%s%s__claimed", "total", af], e)
158+func al (ah,ag) = makeString(["%s%s%s__claimedBoostReward", ag, ah], e)
151159
152160
153-func al (p) = valueOrElse(getInteger(this, p), 0)
161+func am (ah) = makeString(["%s%s%s__claimed", "total", ah], e)
154162
155163
156-func am (an) = makeString(["%s%s%s", an, "total", "bal"], e)
164+func an (r) = valueOrElse(getInteger(this, r), 0)
157165
158166
159-func ao (an,ap) = makeString(["%s%s%s", an, ap, "bal"], e)
167+func ao (ap) = makeString(["%s%s%s", ap, "total", "bal"], e)
160168
161169
162-func aq (an) = makeString(["%s%s%s", an, "total", "balINT"], e)
170+func aq (ap,ar) = makeString(["%s%s%s", ap, ar, "bal"], e)
163171
164172
165-func ar (an,ap) = makeString(["%s%s%s", an, ap, "balINT"], e)
173+func as (ap) = makeString(["%s%s%s", ap, "total", "balINT"], e)
166174
167175
168-func as (an) = makeString(["%s%s%s", an, "total", "lastUpd"], e)
176+func at (ap,ar) = makeString(["%s%s%s", ap, ar, "balINT"], e)
169177
170178
171-func at (an,ap) = makeString(["%s%s%s", an, ap, "lastUpd"], e)
179+func au (ap) = makeString(["%s%s%s", ap, "total", "lastUpd"], e)
172180
173181
174-func au (an) = makeString(["%s%s%s%s", an, "common", "lpInt"], e)
182+func av (ap,ar) = makeString(["%s%s%s", ap, ar, "lastUpd"], e)
175183
176184
177-func av (an) = makeString(["%s%s%s%s", an, "common", "lpIntH"], e)
185+func aw (ap) = makeString(["%s%s%s%s", ap, "common", "lpInt"], e)
178186
179187
180-func aw (an,ap) = makeString(["%s%s%s%s", an, ap, "lpInt"], e)
188+func ax (ap) = makeString(["%s%s%s%s", ap, "common", "lpIntH"], e)
181189
182190
183-func ax (an,ap) = makeString(["%s%s%s%s", an, ap, "lpIntH"], e)
191+func ay (ap,ar) = makeString(["%s%s%s%s", ap, ar, "lpInt"], e)
184192
185193
186-func ay (an) = makeString(["%s", an, "wxPerLp"], e)
194+func az (ap,ar) = makeString(["%s%s%s%s", ap, ar, "lpIntH"], e)
187195
188196
189-func az (an) = makeString(["%s", an, "wxPerLpX18"], e)
197+func aA (ap) = makeString(["%s", ap, "wxPerLp"], e)
190198
191199
192-func aA (an,ap) = makeString(["%s%s%s%s", an, ap, "uIntL"], e)
200+func aB (ap) = makeString(["%s", ap, "wxPerLpX18"], e)
193201
194202
195-func aB (aC,ap,aD) = makeString(["%s%s%s%s__history", aC, ap, aD], e)
203+func aC (ap,ar) = makeString(["%s%s%s%s", ap, ar, "uIntL"], e)
196204
197205
198-func aE (ap,an,aC,aF) = makeString(["%s%s%s%d%d%d", ap, an, aC, toString(height), toString(lastBlock.timestamp), toString(aF)], e)
206+func aD (aE,ar,aF) = makeString(["%s%s%s%s__history", aE, ar, aF], e)
199207
200208
201-func aG (aC,ap,an,aF,aH) = StringEntry(aB(aC, ap, toBase58String(aH)), aE(ap, an, aC, aF))
209+func aG (ar,ap,aE,aH) = makeString(["%s%s%s%d%d%d", ar, ap, aE, toString(height), toString(lastBlock.timestamp), toString(aH)], e)
202210
203211
204-let aI = Q()
212+func aI (aE,ar,ap,aH,aJ) = StringEntry(aD(aE, ar, toBase58String(aJ)), aG(ar, ap, aE, aH))
205213
206-let V = S(aI)
207214
208-let aJ = W(V)
215+let aK = S()
209216
210-let aK = U(V)
217+let X = U(aK)
211218
212-func aL (aM,aN,aO,aP,aQ) = if (if ((aN == 0))
213- then (aM > 0)
219+let aL = Y(X)
220+
221+let aM = W(X)
222+
223+func aN (aO,aP,aQ,aR,aS) = if (if ((aP == 0))
224+ then (aO > 0)
214225 else false)
215226 then 0
216- else if ((aM == 0))
217- then aO
218- else if (if ((aN > 0))
219- then (aM > 0)
227+ else if ((aO == 0))
228+ then aQ
229+ else if (if ((aP > 0))
230+ then (aO > 0)
220231 else false)
221- then (v(this, aP) * aQ)
232+ then (x(this, aR) * aS)
222233 else throw("calcWxPerLpIntegralUserLast: unexpected state")
223234
224235
225-func aR (af,ae,aS,aT) = {
226- let aU = ad(ae, af)
227- let aV = ag(af)
228- let aM = al(aU)
229- let aW = al(aV)
230- let aX = getIntegerValue(aI, O(aS))
231- let aY = v(aJ, aa())
232- let aZ = 1000
233- let ba = (v(aJ, Y()) * aZ)
234- let bb = fraction(ba, aX, (f * 3))
235- let bc = "isMigrated_to_X3"
236- let aQ = if ((s(this, bc) == 0))
237- then aZ
236+func aT (ah,ag,aU,aV) = {
237+ let aW = af(ag, ah)
238+ let aX = ai(ah)
239+ let aO = an(aW)
240+ let aY = an(aX)
241+ let aZ = getIntegerValue(aK, Q(aU))
242+ let ba = x(aL, ac())
243+ let bb = 1000
244+ let bc = (x(aL, aa()) * bb)
245+ let bd = fraction(bc, aZ, (f * 3))
246+ let be = "isMigrated_to_X3"
247+ let aS = if ((u(this, be) == 0))
248+ then bb
238249 else 1
239- let bd = au(af)
240- let be = av(af)
241- let bf = aw(af, ae)
242- let bg = ax(af, ae)
243- let bh = ay(af)
244- let aP = aA(af, ae)
245- let bi = t(this, be, aY)
246- let bj = (s(this, bd) * aQ)
247- let bk = s(this, bf)
248- let aN = s(this, bg)
249- let bl = (s(this, bh) * aQ)
250- let bm = max([(height - bi), 0])
251- let bn = if ((bl != 0))
252- then bl
253- else fraction(bb, b, aW)
254- let bo = (aW + aT)
255- let aO = (bj + (bn * bm))
256- let bp = aL(aM, aN, aO, aP, aQ)
257- let bq = (bk + fraction((aO - bp), aM, (b * aZ)))
258- let br = aO
259- let bs = (bb / bo)
260- let bt = height
261- let bu = height
262- let bv = makeString([toString(bq), toString(aO), toString(bp), toString(aM), toString(bm), toString(bn), toString(aW), toString(bb), toString(ba), toString(aX), toString(height)], "::")
263- $Tuple3(bq, [IntegerEntry(bd, aO), IntegerEntry(be, bt), IntegerEntry(bf, bq), IntegerEntry(bg, bu), IntegerEntry(bh, bs), IntegerEntry(aP, br), IntegerEntry(bc, 1)], bv)
250+ let bf = aw(ah)
251+ let bg = ax(ah)
252+ let bh = ay(ah, ag)
253+ let bi = az(ah, ag)
254+ let bj = aA(ah)
255+ let aR = aC(ah, ag)
256+ let bk = v(this, bg, ba)
257+ let bl = (u(this, bf) * aS)
258+ let bm = u(this, bh)
259+ let aP = u(this, bi)
260+ let bn = (u(this, bj) * aS)
261+ let bo = max([(height - bk), 0])
262+ let bp = if ((bn != 0))
263+ then bn
264+ else fraction(bd, b, aY)
265+ let bq = (aY + aV)
266+ let aQ = (bl + (bp * bo))
267+ let br = aN(aO, aP, aQ, aR, aS)
268+ let bs = (bm + fraction((aQ - br), aO, (b * bb)))
269+ let bt = aQ
270+ let bu = (bd / bq)
271+ let bv = height
272+ let bw = height
273+ let bx = makeString([toString(bs), toString(aQ), toString(br), toString(aO), toString(bo), toString(bp), toString(aY), toString(bd), toString(bc), toString(aZ), toString(height)], "::")
274+ $Tuple3(bs, [IntegerEntry(bf, aQ), IntegerEntry(bg, bv), IntegerEntry(bh, bs), IntegerEntry(bi, bw), IntegerEntry(bj, bu), IntegerEntry(aR, bt), IntegerEntry(be, 1)], bx)
264275 }
265276
266277
267-@Callable(bw)
268-func constructor (bx) = if ((bw.caller != this))
278+@Callable(by)
279+func constructor (bz) = if ((by.caller != this))
269280 then throw("not authorized")
270- else [StringEntry(B(), bx)]
281+ else [StringEntry(D(), bz)]
271282
272283
273284
274-@Callable(bw)
275-func stake () = if ((size(bw.payments) != 1))
285+@Callable(by)
286+func stake () = if ((size(by.payments) != 1))
276287 then throw("invalid payment - exact one payment must be attached")
277288 else {
278- let by = bw.payments[0]
279- let an = value(by.assetId)
280- let af = toBase58String(an)
281- let aF = by.amount
282- let aS = valueOrErrorMessage(getString(aI, K(af)), ("unsupported lp asset " + af))
283- let bz = toString(bw.caller)
284- let ae = if ((bz == aS))
285- then toString(bw.originCaller)
286- else bz
287- let aU = ad(ae, af)
288- let aV = ag(af)
289- let aM = al(aU)
290- let aW = al(aV)
291- let bA = aR(af, ae, aS, aF)
292- let bq = bA._1
293- let bB = bA._2
294- let bv = bA._3
295- ([IntegerEntry(aU, (aM + aF)), IntegerEntry(aV, (aW + aF)), aG("stake", ae, af, aF, bw.transactionId)] ++ bB)
289+ let bA = by.payments[0]
290+ let ap = value(bA.assetId)
291+ let ah = toBase58String(ap)
292+ let aH = bA.amount
293+ let aU = valueOrErrorMessage(getString(aK, M(ah)), ("unsupported lp asset " + ah))
294+ let bB = toString(by.caller)
295+ let ag = if ((bB == aU))
296+ then toString(by.originCaller)
297+ else bB
298+ let aW = af(ag, ah)
299+ let aX = ai(ah)
300+ let aO = an(aW)
301+ let aY = an(aX)
302+ let bC = aT(ah, ag, aU, aH)
303+ let bs = bC._1
304+ let bD = bC._2
305+ let bx = bC._3
306+ ([IntegerEntry(aW, (aO + aH)), IntegerEntry(aX, (aY + aH)), aI("stake", ag, ah, aH, by.transactionId)] ++ bD)
296307 }
297308
298309
299310
300-@Callable(bw)
301-func unstake (af,aF) = {
302- let ae = toString(bw.caller)
303- let an = fromBase58String(af)
304- let aS = valueOrErrorMessage(getString(aI, K(af)), ("unsupported lp asset " + af))
305- let aU = ad(ae, af)
306- let aV = ag(af)
307- let aM = al(aU)
308- let aW = al(aV)
309- let bC = aR(af, ae, aS, -(aF))
310- let bq = bC._1
311- let bB = bC._2
312- let bv = bC._3
313- if ((aF > aM))
311+@Callable(by)
312+func unstake (ah,aH) = {
313+ let ag = toString(by.caller)
314+ let ap = fromBase58String(ah)
315+ let aU = valueOrErrorMessage(getString(aK, M(ah)), ("unsupported lp asset " + ah))
316+ let aW = af(ag, ah)
317+ let aX = ai(ah)
318+ let aO = an(aW)
319+ let aY = an(aX)
320+ let bE = aT(ah, ag, aU, -(aH))
321+ let bs = bE._1
322+ let bD = bE._2
323+ let bx = bE._3
324+ if ((aH > aO))
314325 then throw("passed amount is less then available")
315- else ([IntegerEntry(aU, (aM - aF)), IntegerEntry(aV, (aW - aF)), ScriptTransfer(bw.caller, aF, an), aG("unstake", ae, af, aF, bw.transactionId)] ++ bB)
326+ else ([IntegerEntry(aW, (aO - aH)), IntegerEntry(aX, (aY - aH)), ScriptTransfer(by.caller, aH, ap), aI("unstake", ag, ah, aH, by.transactionId)] ++ bD)
316327 }
317328
318329
319330
320-@Callable(bw)
321-func claimWx (af) = {
322- let ap = bw.caller
323- let ae = toString(bw.caller)
324- let aS = q(aI, N(af))
325- let bD = ah(af, ae)
326- let bE = ak(af)
327- let bF = ai(af, ae)
328- let bG = aj(af, ae)
329- let bH = s(this, bD)
330- let bI = s(this, bF)
331- let bJ = s(this, bG)
332- let bK = s(this, bE)
333- let bL = aR(af, ae, aS, 0)
334- let bq = bL._1
335- let bB = bL._2
336- let bv = bL._3
337- let bM = (bq - bH)
338- if ((0 >= bM))
331+@Callable(by)
332+func claimWx (ah) = {
333+ let ar = by.caller
334+ let ag = toString(by.caller)
335+ let aU = s(aK, P(ah))
336+ let bF = aj(ah, ag)
337+ let bG = am(ah)
338+ let bH = ak(ah, ag)
339+ let bI = al(ah, ag)
340+ let bJ = u(this, bF)
341+ let bK = u(this, bH)
342+ let bL = u(this, bI)
343+ let bM = u(this, bG)
344+ let bN = aT(ah, ag, aU, 0)
345+ let bs = bN._1
346+ let bD = bN._2
347+ let bx = bN._3
348+ let bO = (bs - bJ)
349+ if ((0 >= bO))
339350 then throw("nothing to claim")
340351 else {
341- let bN = k(g(invoke(aK, "claimWxBoost", [ae], nil))[0])
342- let aX = getIntegerValue(aI, O(aS))
343- let bO = fraction(bN, aX, f)
344- let bP = bM
345- let bQ = min([(bP * 2), bO])
346- let bR = m(g(invoke(aJ, "emit", [bP], nil))[0])
347- let bS = g(invoke(aJ, "emit", [bQ], nil))
348- if ((bS == bS))
349- then [IntegerEntry(bD, (bH + bM)), IntegerEntry(bF, (bI + bP)), IntegerEntry(bG, (bJ + bQ)), IntegerEntry(bE, (bK + bM)), ScriptTransfer(ap, bP, bR), ScriptTransfer(ap, bQ, bR), aG("claim", ae, af, bM, bw.transactionId)]
352+ let bP = k(g(invoke(aM, "claimWxBoost", [ag], nil))[0])
353+ let aZ = getIntegerValue(aK, Q(aU))
354+ let bQ = fraction(bP, aZ, f)
355+ let bR = bO
356+ let bS = min([(bR * 2), bQ])
357+ let bT = o(g(invoke(aL, "emit", [bR], nil))[0])
358+ let bU = g(invoke(aL, "emit", [bS], nil))
359+ if ((bU == bU))
360+ then [IntegerEntry(bF, (bJ + bO)), IntegerEntry(bH, (bK + bR)), IntegerEntry(bI, (bL + bS)), IntegerEntry(bG, (bM + bO)), ScriptTransfer(ar, bR, bT), ScriptTransfer(ar, bS, bT), aI("claim", ag, ah, bO, by.transactionId)]
350361 else throw("Strict value is not equal to itself.")
351362 }
352363 }
353364
354365
355366
356-@Callable(bw)
357-func claimWxREADONLY (af,ae) = {
358- let aU = ad(ae, af)
359- let aV = ag(af)
360- let bD = ah(af, ae)
361- let aM = al(aU)
362- let aW = al(aV)
363- let bH = s(this, bD)
364- let aS = q(aI, N(af))
365- let bT = b
366- let aX = getIntegerValue(aI, O(aS))
367- let ba = v(aJ, Y())
368- let aY = v(aJ, aa())
369- let bU = if ((aY > height))
367+@Callable(by)
368+func claimWxREADONLY (ah,ag) = {
369+ let aW = af(ag, ah)
370+ let aX = ai(ah)
371+ let bF = aj(ah, ag)
372+ let aO = an(aW)
373+ let aY = an(aX)
374+ let bJ = u(this, bF)
375+ let aU = s(aK, P(ah))
376+ let bV = b
377+ let aZ = getIntegerValue(aK, Q(aU))
378+ let bc = x(aL, aa())
379+ let ba = x(aL, ac())
380+ let bW = if ((ba > height))
370381 then 0
371- else (height - aY)
372- let bV = fraction((ba * bU), aX, bT)
373- let bW = fraction(bV, aM, aW)
374- let bX = aR(af, ae, aS, 0)
375- let bq = bX._1
376- let bB = bX._2
377- let bv = bX._3
378- let bM = (bq - bH)
379- let bN = k(g(invoke(aK, "claimWxBoostREADONLY", [ae], nil))[0])
380- let bO = fraction(bN, aX, f)
381- let bP = bM
382- let bQ = min([(bP * 2), bO])
383- let bY = (bP + bQ)
384- $Tuple2(nil, makeString(["%s%s%d%d%d%d%s", af, ae, toString(bY), toString(bH), toString(bP), toString(bQ), ((bv + "::") + toString(bW))], e))
382+ else (height - ba)
383+ let bX = fraction((bc * bW), aZ, bV)
384+ let bY = fraction(bX, aO, aY)
385+ let bZ = aT(ah, ag, aU, 0)
386+ let bs = bZ._1
387+ let bD = bZ._2
388+ let bx = bZ._3
389+ let bO = (bs - bJ)
390+ let ca = g(invoke(aM, "claimWxBoostREADONLY", [ag], nil))
391+ let bP = k(ca[0])
392+ let cb = m(ca[2])
393+ let bQ = fraction(bP, aZ, f)
394+ let bR = bO
395+ let bS = min([(bR * 2), bQ])
396+ let cc = (bR + bS)
397+ $Tuple2(nil, makeString(["%s%s%d%d%d%d%s", ah, ag, toString(cc), toString(bJ), toString(bR), toString(bS), ((((bx + "::") + toString(bY)) + "::BOOSTDEBUG::") + cb)], e))
385398 }
386399
387400

github/deemru/w8io/169f3d6 
204.55 ms