tx · EbsRBQWZa8sJRpSdEuAtvhhzAdcEMshah6YSyeDUYVwo

3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz:  -0.02400000 Waves

2023.03.27 18:11 [2508531] smart account 3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz > SELF 0.00000000 Waves

{ "type": 13, "id": "EbsRBQWZa8sJRpSdEuAtvhhzAdcEMshah6YSyeDUYVwo", "fee": 2400000, "feeAssetId": null, "timestamp": 1679929986663, "version": 2, "chainId": 84, "sender": "3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz", "senderPublicKey": "D28XoueZWsMfm8Y5pa6C5ZFuYoWgre2Wm8tzJANJgMnq", "proofs": [ "2j2xzJQvowKs6LZ7DhKsT4H5ri3oR5TjGS4r4Dj8bv54hrEoEqHGdzxw8V2JpiTErPtzLb7Vms9QkurpV6putD36" ], "script": "base64:BgK+IAgCEgMKAQgSAwoBCBIDCgEIEgASABIDCgEIEgQKAggBEgYKBAIBAgISAwoBCBIDCgEIEgUKAwgIBBIGCgQBGAgYEgQKAhgIEgQKAggIEgQKAggIEgMKAQgSBAoCCAgiBlNDQUxFOCIFTVVMVDMiBU1VTFQ4IgdTQ0FMRTE4IgZNVUxUMTgiA1NFUCIOUE9PTFdFSUdIVE1VTFQiCnplcm9CaWdJbnQiCW9uZUJpZ0ludCIHd3JhcEVyciIDbXNnIgh0aHJvd0VyciIJYXNBbnlMaXN0IgN2YWwiByRtYXRjaDAiCnZhbEFueUx5c3QiBWFzSW50IgZ2YWxJbnQiCGFzU3RyaW5nIgZ2YWxTdHIiDGFzQnl0ZVZlY3RvciIGdmFsQmluIg9nZXRTdHJpbmdPckZhaWwiB2FkZHJlc3MiA2tleSIYZ2V0U3RyaW5nQnlBZGRyZXNzT3JGYWlsIgxnZXRJbnRPclplcm8iD2dldEludE9yRGVmYXVsdCIKZGVmYXVsdFZhbCIMZ2V0SW50T3JGYWlsIhlnZXRCaWdJbnRGcm9tU3RyaW5nT3JaZXJvIhxnZXRCaWdJbnRGcm9tU3RyaW5nT3JEZWZhdWx0IgFzIgV0b1gxOCIHb3JpZ1ZhbCINb3JpZ1NjYWxlTXVsdCIHZnJvbVgxOCIPcmVzdWx0U2NhbGVNdWx0IhFrZXlGYWN0b3J5QWRkcmVzcyIZa2V5Vm90aW5nRW1pc3Npb25Db250cmFjdCIYSWR4RmFjdG9yeUNmZ1N0YWtpbmdEYXBwIhlJZHhGYWN0b3J5Q2ZnQm9vc3RpbmdEYXBwIhRJZHhGYWN0b3J5Q2ZnSWRvRGFwcCIVSWR4RmFjdG9yeUNmZ1RlYW1EYXBwIhlJZHhGYWN0b3J5Q2ZnRW1pc3Npb25EYXBwIhVJZHhGYWN0b3J5Q2ZnUmVzdERhcHAiGUlkeEZhY3RvcnlDZmdTbGlwcGFnZURhcHAiDWtleUZhY3RvcnlDZmciE2tleU1hbmFnZXJQdWJsaWNLZXkiGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5IhZrZXlTdGFibGVQb29sQWRkb25BZGRyIgxrZXlBZGRvbkFkZHIiGmtleUZhY3RvcnlMcDJBc3NldHNNYXBwaW5nIgpscEFzc2V0U3RyIhBrZXlGYWN0b3J5THBMaXN0IiZrZXlGYWN0b3J5THBBc3NldFRvUG9vbENvbnRyYWN0QWRkcmVzcyIUa2V5RmFjdG9yeVBvb2xXZWlnaHQiD2NvbnRyYWN0QWRkcmVzcyIKcmVhZExwTGlzdCIHZmFjdG9yeSIUcmVhZEZhY3RvcnlDZmdPckZhaWwiGGdldEJvb3N0aW5nQWRkcmVzc09yRmFpbCIKZmFjdG9yeUNmZyIYZ2V0RW1pc3Npb25BZGRyZXNzT3JGYWlsIhdnZXRTdGFraW5nQWRkcmVzc09yRmFpbCIea2V5RW1pc3Npb25SYXRlUGVyQmxvY2tDdXJyZW50IiFrZXlFbWlzc2lvblJhdGVQZXJCbG9ja01heEN1cnJlbnQiFWtleUVtaXNzaW9uU3RhcnRCbG9jayIba2V5RW1pc3Npb25EdXJhdGlvbkluQmxvY2tzIhNrZXlFbWlzc2lvbkVuZEJsb2NrIg9rZXlTdGFrZWRCeVVzZXIiDnVzZXJBZGRyZXNzU3RyIgxscEFzc2V0SWRTdHIiDmtleVN0YWtlZFRvdGFsIhBrZXlDbGFpbWVkQnlVc2VyIhlrZXlDbGFpbWVkQnlVc2VyTWluUmV3YXJkIhtrZXlDbGFpbWVkQnlVc2VyQm9vc3RSZXdhcmQiD2tleUNsYWltZWRUb3RhbCIKcmVhZFN0YWtlZCIVa2V5TGFzdFRvdGFsTHBCYWxhbmNlIglscEFzc2V0SWQiFGtleUxhc3RVc2VyTHBCYWxhbmNlIgt1c2VyQWRkcmVzcyIZa2V5VG90YWxMcEJhbGFuY2VJbnRlZ3JhbCIYa2V5VXNlckxwQmFsYW5jZUludGVncmFsIiZrZXlUb3RhbExwQmFsYW5jZUludGVncmFsTGFzdFVwZEhlaWdodCIla2V5VXNlckxwQmFsYW5jZUludGVncmFsTGFzdFVwZEhlaWdodCISa2V5V3hQZXJMcEludGVncmFsIh9rZXlXeFBlckxwSW50ZWdyYWxMYXN0VXBkSGVpZ2h0IhBrZXlXeFRvQ2xhaW1Vc2VyIiNrZXlXeFBlckxwSW50ZWdyYWxVc2VyTGFzdFVwZEhlaWdodCIKa2V5V3hQZXJMcCINa2V5V3hQZXJMcFgxOCIaa2V5V3hQZXJMcEludGVncmFsVXNlckxhc3QiGWtleU9wZXJhdGlvbkhpc3RvcnlSZWNvcmQiBHR5cGUiBnR4SWQ1OCITZm9ybWF0SGlzdG9yeVJlY29yZCIGYW1vdW50IhVPcGVyYXRpb25IaXN0b3J5RW50cnkiBHR4SWQiDmZhY3RvcnlBZGRyZXNzIg9mYWN0b3J5Q29udHJhY3QiEGVtaXNzaW9uQ29udHJhY3QiEGJvb3N0aW5nQ29udHJhY3QiCmJvb3N0Q29lZmYiAUAiFmxwU3Rha2luZ1Bvb2xzQ29udHJhY3QiC2tleU5leHRVc2VyIhBnZXRVc2Vyc0xpc3ROYW1lIgtrZXlMaXN0SGVhZCIIbGlzdE5hbWUiC2tleUxpc3RTaXplIgtrZXlMaXN0UHJldiICaWQiC2tleUxpc3ROZXh0Igxjb250YWluc05vZGUiCmhlYWRPclVuaXQiCnByZXZPclVuaXQiCm5leHRPclVuaXQiEWluc2VydE5vZGVBY3Rpb25zIghsaXN0U2l6ZSIJY2hlY2tOb2RlIhFkZWxldGVOb2RlQWN0aW9ucyIbY2FsY1d4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0IgxzdGFrZWRCeVVzZXIiJnd4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0VXBkSGVpZ2h0T3JaZXJvIhJ3eFBlckxwSW50ZWdyYWxOZXciGnd4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0S0VZIhRyZWZyZXNoUG9vbElOVEVHUkFMUyIOcG9vbEFkZHJlc3NTdHIiDWxwRGVsdGFBbW91bnQiDnN0YWtlZFRvdGFsS0VZIgtzdGFrZWRUb3RhbCISbm9uWmVyb1N0YWtlZFRvdGFsIgpwb29sV2VpZ2h0IhJlbWlzc2lvblN0YXJ0QmxvY2siFHd4RW1pc3Npb25QZXJCbG9ja1gzIhhwb29sV3hFbWlzc2lvblBlckJsb2NrWDMiEnd4UGVyTHBJbnRlZ3JhbEtFWSIfd3hQZXJMcEludGVncmFsTGFzdFVwZEhlaWdodEtFWSIKd3hQZXJMcEtFWSIcd3hQZXJMcEludGVncmFsTGFzdFVwZEhlaWdodCIPd3hQZXJMcEludGVncmFsIg93eFBlckxwT3JaZXJvWDMiAmRoIgl3eFBlckxwWDMiDnN0YWtlZFRvdGFsTmV3IhVub25aZXJvU3Rha2VkVG90YWxOZXciDHd4UGVyTHBYM05ldyIfd3hQZXJMcEludGVncmFsTGFzdFVwZEhlaWdodE5ldyIFZGVidWciEHJlZnJlc2hJTlRFR1JBTFMiDSR0MDE0ODE5MTQ5NDEiEXBvb2xJbnRlZ3JhbFNUQVRFIglwb29sREVCVUciD3N0YWtlZEJ5VXNlcktFWSIQd3hUb0NsYWltVXNlcktFWSIjd3hQZXJMcEludGVncmFsVXNlckxhc3RVcGRIZWlnaHRLRVkiDXd4VG9DbGFpbVVzZXIiF3d4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0IgZNVUxUMTEiEHd4VG9DbGFpbVVzZXJOZXciGnd4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0TmV3IiN3eFBlckxwSW50ZWdyYWxVc2VyTGFzdFVwZEhlaWdodE5ldyIWbWFuYWdlclB1YmxpY0tleU9yVW5pdCIdcGVuZGluZ01hbmFnZXJQdWJsaWNLZXlPclVuaXQiFXBlcm1pc3Npb25EZW5pZWRFcnJvciIIbXVzdFRoaXMiAWkiC211c3RNYW5hZ2VyIgJwayIMc3Rha2VBY3Rpb25zIgtwb29sQWRkcmVzcyIRcmVmcmVzaFN0YWtlZFZvdGUiDSR0MDE4MTYwMTgyNzciDWludGVncmFsU1RBVEUiC2xpc3RBY3Rpb25zIg51bnN0YWtlQWN0aW9ucyIXbHBBc3NldFJlY2lwaWVudEFkZHJlc3MiFmNsYWltZWRCeVVzZXJNaW5SZXdhcmQiEGF2YWlsYWJsZVRvQ2xhaW0iFXRocm93SWZOb3RoaW5nVG9DbGFpbSIBciIRZmFjdG9yeUFkZHJlc3NTdHIiC2NoZWNrQ2FsbGVyIhZ2b3RpbmdFbWlzc2lvbkNvbnRyYWN0IgVjaGVrcyIXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkiFWNoZWNrTWFuYWdlclB1YmxpY0tleSICcG0iBWhhc1BNIgdjaGVja1BNIgNwbXQiCXBvb2xBZGRvbiIJY2FsbGVyU3RyIgZyZXN1bHQiEGNsYWltZWRCeVVzZXJLRVkiD2NsYWltZWRUb3RhbEtFWSIZY2xhaW1lZEJ5VXNlck1pblJld2FyZEtFWSIbY2xhaW1lZEJ5VXNlckJvb3N0UmV3YXJkS0VZIg1jbGFpbWVkQnlVc2VyIhhjbGFpbWVkQnlVc2VyQm9vc3RSZXdhcmQiDGNsYWltZWRUb3RhbCINJHQwMjYzMTQyNjQyNiISd3hBbW91bnRCb29zdFRvdGFsIg1taW5SZXdhcmRQYXJ0Ig9ib29zdFJld2FyZFBhcnQiC3RvdGFsUmV3YXJkIgl3eEFzc2V0SWQiCWVtaXRCb29zdCISY2xhaW1lZEJ5VXNlclZhbHVlIh5jbGFpbWVkQnlVc2VyTWluUmV3YXJkUGx1c1BhcnQiK2NsYWltZWRCeVVzZXJCb29zdFJld2FyZFBsdXNCb29zdFJld2FyZFBhcnQiIGNsYWltZWRUb3RhbFBsdXNBdmFpbGFibGVUb0NsYWltIgtjdXJyZW50SXRlciIKbHBBc3NldElkcyIGcmVzQWNjIgRpbmZvIgl1bmNsYWltZWQiB2NsYWltZWQiEXVzZXJWb3RlRmluYWxpemVkIgNyZXMiA2ludiISd3hFbWlzc2lvblBlckJsb2NrIgxwYXNzZWRCbG9ja3MiDnBvb2xXeEVtaXNzaW9uIgx1c2VyV3hSZXdhcmQiDSR0MDMwNDc3MzA1ODkiDmJvb3N0SW52UmVzdWx0Igpib29zdERlYnVnIgp1c2VyT3JVbml0IgckbWF0Y2gxIgRoZWFkIg5uZXh0VXNlck9yVW5pdCIIbmV4dFVzZXIiDSR0MDMzMjEzMzMzMjMiAnR4IgZ2ZXJpZnkiD3RhcmdldFB1YmxpY0tleWUAAWEACAABYgDoBwABYwCAwtcvAAFkABIAAWUJALYCAQCAgJC7utat8A0AAWYCAl9fAAFnBQFjAAFoCQC2AgEAAAABaQkAtgIBAAEBAWoBAWsJALkJAgkAzAgCAg1zdGFraW5nLnJpZGU6CQDMCAIJAKUIAQUEdGhpcwkAzAgCBQFrBQNuaWwCASABAWwBAWsJAAIBCQEBagEFAWsBAW0BAW4EAW8FAW4DCQABAgUBbwIJTGlzdFtBbnldBAFwBQFvBQFwCQEBbAECG2ZhaWwgdG8gY2FzdCBpbnRvIExpc3RbQW55XQEBcQEBbgQBbwUBbgMJAAECBQFvAgNJbnQEAXIFAW8FAXIJAQFsAQIVZmFpbCB0byBjYXN0IGludG8gSW50AQFzAQFuBAFvBQFuAwkAAQIFAW8CBlN0cmluZwQBdAUBbwUBdAkBAWwBAhVmYWlsIHRvIGNhc3QgaW50byBJbnQBAXUBAW4EAW8FAW4DCQABAgUBbwIKQnl0ZVZlY3RvcgQBdgUBbwUBdgkBAWwBAhVmYWlsIHRvIGNhc3QgaW50byBJbnQBAXcCAXgBeQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFAXgFAXkJAQFqAQkArAICCQCsAgICD21hbmRhdG9yeSB0aGlzLgUBeQIPIGlzIG5vdCBkZWZpbmVkAQF6AgF4AXkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQF4BQF5CQEBagEJAKwCAgkArAICCQCsAgIJAKwCAgIKbWFuZGF0b3J5IAkApQgBBQF4AgEuBQF5Ag8gaXMgbm90IGRlZmluZWQBAUECAXgBeQkBC3ZhbHVlT3JFbHNlAgkAmggCBQF4BQF5AAABAUIDAXgBeQFDCQELdmFsdWVPckVsc2UCCQCaCAIFAXgFAXkFAUMBAUQCAXgBeQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFAXgFAXkJAQFqAQkArAICCQCsAgICD21hbmRhdG9yeSB0aGlzLgUBeQIPIGlzIG5vdCBkZWZpbmVkAQFFAgF4AXkJAQV2YWx1ZQEJAKgDAQkBC3ZhbHVlT3JFbHNlAgkAnQgCBQF4BQF5AgEwAQFGAwF4AXkBQwQBbwkAnQgCBQF4BQF5AwkAAQIFAW8CBlN0cmluZwQBRwUBbwkBBXZhbHVlAQkAqAMBBQFHAwkAAQIFAW8CBFVuaXQFAUMJAAIBAgtNYXRjaCBlcnJvcgEBSAIBSQFKCQC8AgMJALYCAQUBSQUBZQkAtgIBBQFKAQFLAgFuAUwJAKADAQkAvAIDBQFuCQC2AgEFAUwFAWUBAU0AAhwlcyVzX19jb25maWdfX2ZhY3RvcnlBZGRyZXNzAQFOAAIaJXNfX3ZvdGluZ0VtaXNzaW9uQ29udHJhY3QAAU8AAQABUAACAAFRAAMAAVIABAABUwAFAAFUAAYAAVUABwEBVgACESVzX19mYWN0b3J5Q29uZmlnAQFXAAIUJXNfX21hbmFnZXJQdWJsaWNLZXkBAVgAAhslc19fcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkBAVkAAhclc19fc3RhYmxlUG9vbEFkZG9uQWRkcgEBWgACDSVzX19hZGRvbkFkZHIBAmFhAQJhYgkAuQkCCQDMCAICBiVzJXMlcwkAzAgCBQJhYgkAzAgCAh5tYXBwaW5nc19fbHBBc3NldDJQb29sQ29udHJhY3QFA25pbAUBZgECYWMAAhAlc19fbHBUb2tlbnNMaXN0AQJhZAECYWIJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgUCYWIJAMwIAgIebWFwcGluZ3NfX2xwQXNzZXQyUG9vbENvbnRyYWN0BQNuaWwFAWYBAmFlAQJhZgkAuQkCCQDMCAICBCVzJXMJAMwIAgIKcG9vbFdlaWdodAkAzAgCBQJhZgUDbmlsBQFmAQJhZwECYWgJALUJAgkBC3ZhbHVlT3JFbHNlAgkAnQgCBQJhaAkBAmFjAAIABQFmAQJhaQECYWgJALUJAgkBAXoCBQJhaAkBAVYABQFmAQJhagECYWsJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUCYWsFAVABAmFsAQJhawkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJhawUBUwECYW0BAmFrCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFAmFrBQFPAQJhbgACGyVzJXNfX3JhdGVQZXJCbG9ja19fY3VycmVudAECYW8AAh4lcyVzX19yYXRlUGVyQmxvY2tNYXhfX2N1cnJlbnQBAmFwAAIaJXMlc19fZW1pc3Npb25fX3N0YXJ0QmxvY2sBAmFxAAIYJXMlc19fZW1pc3Npb25fX2R1cmF0aW9uAQJhcgACGCVzJXNfX2VtaXNzaW9uX19lbmRCbG9jawECYXMCAmF0AmF1CQC5CQIJAMwIAgIOJXMlcyVzX19zdGFrZWQJAMwIAgUCYXQJAMwIAgUCYXUFA25pbAUBZgECYXYBAmF1CQCsAgICFyVzJXMlc19fc3Rha2VkX190b3RhbF9fBQJhdQECYXcCAmF1AmF0CQC5CQIJAMwIAgIPJXMlcyVzX19jbGFpbWVkCQDMCAIFAmF0CQDMCAIFAmF1BQNuaWwFAWYBAmF4AgJhdQJhdAkAuQkCCQDMCAICGCVzJXMlc19fY2xhaW1lZE1pblJld2FyZAkAzAgCBQJhdAkAzAgCBQJhdQUDbmlsBQFmAQJheQICYXUCYXQJALkJAgkAzAgCAholcyVzJXNfX2NsYWltZWRCb29zdFJl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AQJiZwECYmgJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgUCYmgJAMwIAgIEaGVhZAUDbmlsBQFmAQJiaQECYmgJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgUCYmgJAMwIAgIEc2l6ZQUDbmlsBQFmAQJiagICYmgCYmsJALkJAgkAzAgCAgglcyVzJXMlcwkAzAgCBQJiaAkAzAgCBQJiawkAzAgCAgRwcmV2BQNuaWwFAWYBAmJsAgJiaAJiawkAuQkCCQDMCAICCCVzJXMlcyVzCQDMCAIFAmJoCQDMCAIFAmJrCQDMCAICBG5leHQFA25pbAUBZgECYm0CAmJoAmJrBAJibgkAnQgCBQR0aGlzCQECYmcBBQJiaAQCYm8JAJ0IAgUEdGhpcwkBAmJqAgUCYmgFAmJrBAJicAkAnQgCBQR0aGlzCQECYmwCBQJiaAUCYmsDAwkAAAIFAmJrCQELdmFsdWVPckVsc2UCBQJibgIABgkBAiE9AgUCYm8FBHVuaXQGCQECIT0CBQJicAUEdW5pdAECYnECAmJoAmJrBAJibgkAnQgCBQR0aGlzCQECYmcBBQJiaAQCYnIJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAmJpAQUCYmgAAAQCYnMDCQEBIQEJAQJibQIFAmJoBQJiawYJAQFsAQILTm9kZSBleGlzdHMDCQAAAgUCYnMFAmJzCQDOCAIJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmJpAQUCYmgJAGQCBQJicgABBQNuaWwDCQECIT0CBQJibgUEdW5pdAkAzAgCCQELU3RyaW5nRW50cnkCCQECYmwCBQJiaAUCYmsJAQV2YWx1ZQEFAmJuCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJiagIFAmJoCQEFdmFsdWUBBQJibgUCYmsFA25pbAUDbmlsCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJiZwEFAmJoBQJiawUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJidAICYmgCYmsEAmJuCQCdCAIFBHRoaXMJAQJiZwEFAmJoBAJicgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQECYmkBBQJiaAAABAJibwkAnQgCBQR0aGlzCQECYmoCBQJiaAUCYmsEAmJwCQCdCAIFBHRoaXMJAQJibAIFAmJoBQJiawkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYmkBBQJiaAkAZQIFAmJyAAEFA25pbAMDCQECIT0CBQJibwUEdW5pdAkBAiE9AgUCYnAFBHVuaXQHCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJibAIFAmJoCQEFdmFsdWUBBQJibwkBBXZhbHVlAQUCYnAJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmJqAgUCYmgJAQV2YWx1ZQEFAmJwCQEFdmFsdWUBBQJibwkAzAgCCQELRGVsZXRlRW50cnkBCQECYmoCBQJiaAUCYmsJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmJsAgUCYmgFAmJrBQNuaWwDCQECIT0CBQJicAUEdW5pdAkAzAgCCQELU3RyaW5nRW50cnkCCQECYmcBBQJiaAkBBXZhbHVlAQUCYnAJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmJsAgUCYmgFAmJrCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJiagIFAmJoCQEFdmFsdWUBBQJicAUDbmlsAwkBAiE9AgUCYm8FBHVuaXQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmJqAgUCYmgFAmJrCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJibAIFAmJoCQEFdmFsdWUBBQJibwUDbmlsAwkAAAIFAmJrCQELdmFsdWVPckVsc2UCBQJibgIACQDMCAIJAQtEZWxldGVFbnRyeQEJAQJiZwEFAmJoBQNuaWwJAQFsAQkArAICCQCsAgIJAKwCAgIOaW52YWxpZCBub2RlOiAFAmJoAgEuBQJiawECYnUEAmJ2AmJ3AmJ4AmJ5AwMJAAACBQJidwUBaAkAvwICBQJidgUBaAcFAWgDCQAAAgUCYnYFAWgFAmJ4AwMJAL8CAgUCYncFAWgJAL8CAgUCYnYFAWgHCQEFdmFsdWUBCQCoAwEJAQF3AgUEdGhpcwUCYnkJAQFsAQItY2FsY1d4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0OiB1bmV4cGVjdGVkIHN0YXRlAQJiegMCYXUCYkECYkIEAmJDCQECYXYBBQJhdQQCYkQJALYCAQkBAmFBAQUCYkMEAmJFAwkAAAIFAmJEBQFoBQFpBQJiRAQCYkYJARFAZXh0ck5hdGl2ZSgxMDUwKQIFAmFZCQECYWUBBQJiQQQCYkcJAQFEAgUCYVoJAQJhcAAEAmJICQBoAgkBAUQCBQJhWgkBAmFuAAUBYgQCYkkJAGsDBQJiSAUCYkYJAGgCBQFnBQJiYgQCYkoJAQJhSgEFAmF1BAJiSwkBAmFLAQUCYXUEAmJMCQECYU4BBQJhdQQCYk0JAQFCAwUEdGhpcwUCYksFAmJHBAJiTgkBAUUCBQR0aGlzBQJiSgQCYk8AAAQCYlAJAJYDAQkAzAgCCQBlAgUGaGVpZ2h0BQJiTQkAzAgCAAAFA25pbAQCYlEDCQECIT0CBQJiTwAACQC2AgEFAmJPCQC8AgMJALYCAQUCYkkJALYCAQUBYwUCYkUEAmJSCQC3AgIFAmJECQC2AgEFAmJCBAJiUwMJAAACBQJiUgUBaAUBaQUCYlIEAmJ4CQC3AgIFAmJOCQC5AgIFAmJRCQC2AgEFAmJQBAJiVAkAugICCQC2AgEFAmJJBQJiUwQCYlUFBmhlaWdodAQCYlYJALkJAgkAzAgCCQCmAwEFAmJ4CQDMCAIJAKQDAQUCYlAJAMwIAgkApgMBBQJiUQkAzAgCCQCmAwEFAmJECQDMCAIJAKQDAQUCYkkJAMwIAgkApAMBBQJiSAkAzAgCCQCkAwEFAmJGBQNuaWwCAjo6CQCVCgMFAmJ4CQDMCAIJAQtTdHJpbmdFbnRyeQIFAmJKCQCmAwEFAmJ4CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJiSwUCYlUJAMwIAgkBC1N0cmluZ0VudHJ5AgUCYkwJAKYDAQUCYlQFA25pbAUCYlYBAmJXBAJhdQJhdAJiQQJiQgQCYlgJAQJiegMFAmF1BQJiQQUCYkIEAmJ4CAUCYlgCXzEEAmJZCAUCYlgCXzIEAmJaCAUCYlgCXzMEAmNhCQECYXMCBQJhdAUCYXUEAmJ2CQECYUEBBQJjYQQCY2IJAQJhTAIFAmF1BQJhdAQCY2MJAQJhTQIFAmF1BQJhdAQCYnkJAQJhUAIFAmF1BQJhdAQCY2QJAQFFAgUEdGhpcwUCY2IEAmJ3CQEBQQIFBHRoaXMFAmNjBAJjZQkBAmJ1BAkAtgIBBQJidgkAtgIBBQJidwUCYngFAmJ5BAJjZgkAaAIFAWMFAWIEAmNnCQCYAwEJAMwIAgkAtwICBQJjZAkAvAIDCQC4AgIFAmJ4BQJjZQkAtgIBBQJidgkAtgIBBQJjZgkAzAgCBQFoBQNuaWwEAmNoBQJieAQCY2kFBmhlaWdodAQCYlYJALkJAgkAzAgCCQCmAwEFAmNkCQDMCAIJAKYDAQUCY2UJAMwIAgkApAMBBQJidgkAzAgCBQJiWgkAzAgCCQCkAwEFBmhlaWdodAUDbmlsAgI6OgkAlQoDBQJjZwkAzggCBQJiWQkAzAgCCQELU3RyaW5nRW50cnkCBQJjYgkApgMBBQJjZwkAzAgCCQEMSW50ZWdlckVudHJ5AgUCY2MFAmNpCQDMCAIJAQtTdHJpbmdFbnRyeQIFAmJ5CQCmAwEFAmNoBQNuaWwFAmJWAQJjagAEAW8JAKIIAQkBAVcAAwkAAQIFAW8CBlN0cmluZwQBRwUBbwkA2QQBBQFHAwkAAQIFAW8CBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgECY2sABAFvCQCiCAEJAQFYAAMJAAECBQFvAgZTdHJpbmcEAUcFAW8JANkEAQUBRwMJAAECBQFvAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IAAmNsCQEBbAECEVBlcm1pc3Npb24gZGVuaWVkAQJjbQECY24DCQAAAggFAmNuBmNhbGxlcgUEdGhpcwYFAmNsAQJjbwECY24EAW8JAQJjagADCQABAgUBbwIKQnl0ZVZlY3RvcgQCY3AFAW8DCQAAAggFAmNuD2NhbGxlclB1YmxpY0tleQUCY3AGBQJjbAMJAAECBQFvAgRVbml0AwkAAAIIBQJjbgZjYWxsZXIFBHRoaXMGBQJjbAkAAgECC01hdGNoIGVycm9yAQJjcQUCY24CYUMCY3ICYUUCYVUEAmF0CQClCAEFAmFFBAJhdQkA2AQBBQJhQwQCYkEJAKUIAQUCY3IEAmNhCQECYXMCBQJhdAUCYXUEAmJDCQECYXYBBQJhdQQCYnYJAQJhQQEFAmNhBAJjcwMJAAACBQJidgAACQD8BwQFAmJhAhJvblN0YWtlZFZvdGVVcGRhdGUJAMwIAgUCYXUJAMwIAgUCYXQJAMwIAgYFA25pbAUDbmlsBQR1bml0AwkAAAIFAmNzBQJjcwQCYkQJAQJhQQEFAmJDBAJjdAkBAmJXBAUCYXUFAmF0BQJiQQUCYVUEAmNnCAUCY3QCXzEEAmN1CAUCY3QCXzIEAmJWCAUCY3QCXzMEAmJoCQECYmYBBQJhdQQCY3YDCQECYm0CBQJiaAUCYXQFA25pbAkBAmJxAgUCYmgFAmF0CQDOCAIJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUCY2EJAGQCBQJidgUCYVUJAMwIAgkBDEludGVnZXJFbnRyeQIFAmJDCQBkAgUCYkQFAmFVCQDMCAIJAQJhVgUCBXN0YWtlBQJhdAUCYXUFAmFVCAUCY24NdHJhbnNhY3Rpb25JZAUDbmlsBQJjdQUCY3YJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmN3BgJjbgJhQwJjcgJhRQJjeAJhVQQCYXQJAKUIAQUCYUUEAmF1CQDYBAEFAmFDBAJiQQkApQgBBQJjcgQCY2EJAQJhcwIFAmF0BQJhdQQCYkMJAQJhdgEFAmF1BAJidgkBAmFBAQUCY2EEAmJECQECYUEBBQJiQwQCY3UICQECYlcEBQJhdQUCYXQFAmJBCQEBLQEFAmFVAl8yBAJiaAkBAmJmAQUCYXUEAmN2AwMJAQJibQIFAmJoBQJhdAkAAAIFAmFVBQJidgcJAQJidAIFAmJoBQJhdAUDbmlsBAJjcwMJAAACBQJhVQUCYnYJAPwHBAUCYmECEm9uU3Rha2VkVm90ZVVwZGF0ZQkAzAgCBQJhdQkAzAgCBQJhdAkAzAgCBwUDbmlsBQNuaWwFBHVuaXQDCQAAAgUCY3MFAmNzBAJjeQkBAUUCBQR0aGlzCQECYXgCBQJhdQUCYXQEAmNnCAkBAmJXBAUCYXUFAmF0BQJiQQAAAl8xBAJjegkAuAICBQJjZwUCY3kEAmNBBgQCY0IDCQC/AgIFAmN6BQFoCQD8BwQFBHRoaXMCD2NsYWltV3hJTlRFUk5BTAkAzAgCBQJhdQkAzAgCBQJhdAkAzAgCBQJjQQUDbmlsBQNuaWwFBHVuaXQDCQAAAgUCY0IFAmNCAwkAZgIFAmFVBQJidgkBAWwBCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICDnBhc3NlZCBhbW91bnQ9CQCkAwEFAmFVAhsgaXMgZ3JlYXRlciB0aGFuIGF2YWlsYWJsZT0JAKQDAQUCYnYCDC4gbHBBc3NldElkPQUCYXUCEi4gc3Rha2VkQnlVc2VyS0VZPQUCY2EJAM4IAgkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJjYQkAZQIFAmJ2BQJhVQkAzAgCCQEMSW50ZWdlckVudHJ5AgUCYkMJAGUCBQJiRAUCYVUJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCY3gFAmFVBQJhQwkAzAgCCQECYVYFAgd1bnN0YWtlBQJhdAUCYXUFAmFVCAUCY24NdHJhbnNhY3Rpb25JZAUDbmlsBQJjdQUCY3YJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4RAmNuAQtjb25zdHJ1Y3RvcgECY0MEAmNECQECY28BBQJjbgMJAAACBQJjRAUCY0QJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAU0ABQJjQwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNuAQ1jb25zdHJ1Y3RvclYyAQJjRQQCY0YJAMwIAgkBAmNvAQUCY24JAMwIAgMJAQIhPQIJAKYIAQUCY0UFBHVuaXQGAihpbnZhbGlkIHZvdGluZyBlbWlzc2lvbiBjb250cmFjdCBhZGRyZXNzBQNuaWwDCQAAAgUCY0YFAmNGCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFOAAUCY0UFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJjbgEKc2V0TWFuYWdlcgECY0cEAmNECQECY28BBQJjbgMJAAACBQJjRAUCY0QEAmNICQDZBAEFAmNHAwkAAAIFAmNIBQJjSAkAzAgCCQELU3RyaW5nRW50cnkCCQEBWAAFAmNHBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CY24BDmNvbmZpcm1NYW5hZ2VyAAQCY0kJAQJjawAEAmNKAwkBCWlzRGVmaW5lZAEFAmNJBgkBAWwBAhJObyBwZW5kaW5nIG1hbmFnZXIDCQAAAgUCY0oFAmNKBAJjSwMJAAACCAUCY24PY2FsbGVyUHVibGljS2V5CQEFdmFsdWUBBQJjSQYJAQFsAQIbWW91IGFyZSBub3QgcGVuZGluZyBtYW5hZ2VyAwkAAAIFAmNLBQJjSwkAzAgCCQELU3RyaW5nRW50cnkCCQEBVwAJANgEAQkBBXZhbHVlAQUCY0kJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAVgABQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CY24BBXN0YWtlAAMJAQIhPQIJAJADAQgFAmNuCHBheW1lbnRzAAEJAQFsAQI0aW52YWxpZCBwYXltZW50IC0gZXhhY3Qgb25lIHBheW1lbnQgbXVzdCBiZSBhdHRhY2hlZAQCY0wJAJEDAggFAmNuCHBheW1lbnRzAAAEAmFDCQEFdmFsdWUBCAUCY0wHYXNzZXRJZAQCYXUJANgEAQUCYUMEAmFVCAUCY0wGYW1vdW50BAJiQQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFAmFZCQECYWEBBQJhdQkBAWoBCQCsAgICFXVuc3VwcG9ydGVkIGxwIGFzc2V0IAUCYXUEAmNyCQERQGV4dHJOYXRpdmUoMTA2MikBBQJiQQQCYUUDCQAAAggFAmNuBmNhbGxlcgUCY3IIBQJjbgxvcmlnaW5DYWxsZXIIBQJjbgZjYWxsZXIJAQJjcQUFAmNuBQJhQwUCY3IFAmFFBQJhVQJjbgEIc3Rha2VGb3IBAmF0AwkBAiE9AgkAkAMBCAUCY24IcGF5bWVudHMAAQkBAWwBAjRpbnZhbGlkIHBheW1lbnQgLSBleGFjdCBvbmUgcGF5bWVudCBtdXN0IGJlIGF0dGFjaGVkBAJjTAkAkQMCCAUCY24IcGF5bWVudHMAAAQCYUMJAQV2YWx1ZQEIBQJjTAdhc3NldElkBAJhdQkA2AQBBQJhQwQCYVUIBQJjTAZhbW91bnQEAmJBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUCYVkJAQJhYQEFAmF1CQEBagEJAKwCAgIVdW5zdXBwb3J0ZWQgbHAgYXNzZXQgBQJhdQQCY3IJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmJBBAJhRQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEFAmF0CQEBagECFGludmFsaWQgdXNlciBhZGRyZXNzCQECY3EFBQJjbgUCYUMFAmNyBQJhRQUCYVUCY24BB3Vuc3Rha2UCAmF1AmFVBAJhQwkA2QQBBQJhdQQCYkEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQJhWQkBAmFhAQUCYXUJAQFqAQkArAICAhV1bnN1cHBvcnRlZCBscCBhc3NldCAFAmF1BAJjcgkBEUBleHRyTmF0aXZlKDEwNjIpAQUCYkEEAmNNCQELdmFsdWVPckVsc2UCCQCdCAIFAmNyCQEBWgAFAmJBBAJjTgkApQgBCAUCY24GY2FsbGVyBAJhRQMDCQAAAgUCY04FAmJBBgkAAAIFAmNOBQJjTQgFAmNuDG9yaWdpbkNhbGxlcggFAmNuBmNhbGxlcgQCY3gIBQJjbgZjYWxsZXIJAQJjdwYFAmNuBQJhQwUCY3IFAmFFBQJjeAUCYVUCY24BD3Vuc3Rha2VJTlRFUk5BTAQCYUMCYVUCYUUCY3gEAmF1CQDYBAEFAmFDBAJjcgkBEUBleHRyTmF0aXZlKDEwNjIpAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFAmFZCQECYWEBBQJhdQkBAWoBCQCsAgICFXVuc3VwcG9ydGVkIGxwIGFzc2V0IAUCYXUEAmNEAwkAAAIIBQJjbgZjYWxsZXIFAmNyBgUCY2wDCQAAAgUCY0QFAmNECQECY3cGBQJjbgUCYUMFAmNyCQEHQWRkcmVzcwEFAmFFCQEHQWRkcmVzcwEFAmN4BQJhVQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJjbgEHY2xhaW1XeAECYXUEAmF0CQClCAEIBQJjbgZjYWxsZXIEAmNBBgQCY08JAPwHBAUEdGhpcwIPY2xhaW1XeElOVEVSTkFMCQDMCAIFAmF1CQDMCAIFAmF0CQDMCAIFAmNBBQNuaWwFA25pbAkAlAoCBQNuaWwFAmNPAmNuARFjbGFpbVd4RG9Ob3RUaHJvdwECYXUEAmF0CQClCAEIBQJjbgZjYWxsZXIEAmNBBwQCY08JAPwHBAUEdGhpcwIPY2xhaW1XeElOVEVSTkFMCQDMCAIFAmF1CQDMCAIFAmF0CQDMCAIFAmNBBQNuaWwFA25pbAkAlAoCBQNuaWwFAmNPAmNuAQ9jbGFpbVd4SU5URVJOQUwDAmF1AmF0AmNBBAJjRAkBAmNtAQUCY24DCQAAAgUCY0QFAmNEBAJhRQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEFAmF0CQEBagECJWNsYWltV3hJTlRFUk5BTDogaW52YWxpZCB1c2VyIGFkZHJlc3MEAmJBCQEBegIFAmFZCQECYWQBBQJhdQQCY1AJAQJhdwIFAmF1BQJhdAQCY1EJAQJhegEFAmF1BAJjUgkBAmF4AgUCYXUFAmF0BAJjUwkBAmF5AgUCYXUFAmF0BAJjVAkBAUUCBQR0aGlzBQJjUAQCY3kJAQFFAgUEdGhpcwUCY1IEAmNVCQEBRQIFBHRoaXMFAmNTBAJjVgkBAUUCBQR0aGlzBQJjUQQCY1cJAQJiVwQFAmF1BQJhdAUCYkEAAAQCY2cIBQJjVwJfMQQCY3UIBQJjVwJfMgQCYlYIBQJjVwJfMwQCY3oJAJgDAQkAzAgCCQC4AgIFAmNnBQJjeQkAzAgCBQFoBQNuaWwDCQDAAgIFAWgFAmN6AwUCY0EJAQFsAQIQbm90aGluZyB0byBjbGFpbQkAlAoCBQNuaWwAAAQCY1gJAJYDAQkAzAgCCQEBcQEJAJEDAgkBAW0BCQD8BwQFAmJhAgxjbGFpbVd4Qm9vc3QJAMwIAgUCYXUJAMwIAgUCYXQFA25pbAUDbmlsAAAJAMwIAgAABQNuaWwEAmNZBQJjegQCY1oJAJkDAQkAzAgCCQC5AgIFAmNZCQC2AgEJAGUCBQJiYgABCQDMCAIJALYCAQUCY1gFA25pbAQCZGEJALcCAgUCY1kFAmNaBAJkYgkBAXUBCQCRAwIJAQFtAQkA/AcEBQJhWgIEZW1pdAkAzAgCCQCgAwEFAmNZBQNuaWwFA25pbAAABAJkYwkBAW0BCQD8BwQFAmFaAgRlbWl0CQDMCAIJAKADAQUCY1oFA25pbAUDbmlsAwkAAAIFAmRjBQJkYwQCZGQJALcCAgkAtwICBQJjVAUCY1kFAmNaBAJkZQkAtwICBQJjeQUCY1kEAmRmCQC3AgIFAmNVBQJjWgQCZGcJALcCAgUCY1YFAmN6CQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgUCY1AJAKYDAQUCZGQJAMwIAgkBC1N0cmluZ0VudHJ5AgUCY1IJAKYDAQUCZGUJAMwIAgkBC1N0cmluZ0VudHJ5AgUCY1MJAKYDAQUCZGYJAMwIAgkBC1N0cmluZ0VudHJ5AgUCY1EJAKYDAQUCZGcJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYUUJAKADAQUCY1kFAmRiCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmFFCQCgAwEFAmNaBQJkYgkAzAgCCQECYVYFAgVjbGFpbQUCYXQFAmF1CQCgAwEFAmN6CAUCY24NdHJhbnNhY3Rpb25JZAUDbmlsCQCgAwEFAmRhCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNuARtjbGFpbVd4QnVsa0ludGVybmFsUkVBRE9OTFkEAmRoAmRpAmF0AmRqAwkAAAIFAmRoCQCQAwEFAmRpCQCUCgIFA25pbAUCZGoEAmFDCQCRAwIFAmRpBQJkaAQCZGsJALUJAgoAAmJjCQD8BwQFBHRoaXMCD2NsYWltV3hSRUFET05MWQkAzAgCBQJhQwkAzAgCBQJhdAUDbmlsBQNuaWwDCQABAgUCYmMCBlN0cmluZwUCYmMJAAIBCQCsAgIJAAMBBQJiYwIbIGNvdWxkbid0IGJlIGNhc3QgdG8gU3RyaW5nBQFmBAJkbAkAkQMCBQJkawADBAJkbQkAkQMCBQJkawAEBAJkbgoAAmJjCQD8BwQFAmJhAhxnZXRVc2VyVm90ZUZpbmFsaXplZFJFQURPTkxZCQDMCAIFAmFDCQDMCAIFAmF0BQNuaWwFA25pbAMJAAECBQJiYwIDSW50BQJiYwkAAgEJAKwCAgkAAwEFAmJjAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQEAmRvCQDNCAIFAmRqCQC5CQIJAMwIAgIGJWQlZCVkCQDMCAIFAmRsCQDMCAIFAmRtCQDMCAIJAKQDAQUCZG4FA25pbAUBZgQCZHAKAAJiYwkA/AcEBQR0aGlzAhtjbGFpbVd4QnVsa0ludGVybmFsUkVBRE9OTFkJAMwIAgkAZAIFAmRoAAEJAMwIAgUCZGkJAMwIAgUCYXQJAMwIAgUCZG8FA25pbAUDbmlsAwkAAQIFAmJjAglMaXN0W0FueV0FAmJjCQACAQkArAICCQADAQUCYmMCHiBjb3VsZG4ndCBiZSBjYXN0IHRvIExpc3RbQW55XQMJAAACBQJkcAUCZHAJAJQKAgUDbmlsBQJkcAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJjbgETY2xhaW1XeEJ1bGtSRUFET05MWQICZGkCYXQEAmRvCQD8BwQFBHRoaXMCG2NsYWltV3hCdWxrSW50ZXJuYWxSRUFET05MWQkAzAgCAAAJAMwIAgUCZGkJAMwIAgUCYXQJAMwIAgUDbmlsBQNuaWwFA25pbAkAlAoCBQNuaWwFAmRvAmNuAQ9jbGFpbVd4UkVBRE9OTFkCAmF1AmF0BAJjYQkBAmFzAgUCYXQFAmF1BAJiQwkBAmF2AQUCYXUEAmNQCQECYXcCBQJhdQUCYXQEAmNSCQECYXgCBQJhdQUCYXQEAmJ2CQECYUEBBQJjYQQCYkQJAQJhQQEFAmJDBAJjVAkBAUUCBQR0aGlzBQJjUAQCY3kJAQFFAgUEdGhpcwUCY1IEAmJBCQEBegIFAmFZCQECYWQBBQJhdQQCYkYJARFAZXh0ck5hdGl2ZSgxMDUwKQIFAmFZCQECYWUBBQJiQQQCZHEJAQFEAgUCYVoJAQJhbgAEAmJHCQEBRAIFAmFaCQECYXAABAJkcgMJAGYCBQJiRwUGaGVpZ2h0AAAJAGUCBQZoZWlnaHQFAmJHBAJkcwkAawMJAGgCBQJkcQUCZHIFAmJGBQFnBAJkdAkAawMFAmRzBQJidgUCYkQEAmR1CQECYlcEBQJhdQUCYXQFAmJBAAAEAmNnCAUCZHUCXzEEAmN1CAUCZHUCXzIEAmJWCAUCZHUCXzMEAmN6CQCYAwEJAMwIAgkAuAICBQJjZwUCY3kJAMwIAgUBaAUDbmlsBAJkdgkBAW0BCQD8BwQFAmJhAhRjbGFpbVd4Qm9vc3RSRUFET05MWQkAzAgCBQJhdQkAzAgCBQJhdAUDbmlsBQNuaWwEAmNYCQCWAwEJAMwIAgkBAXEBCQCRAwIFAmR2AAAJAMwIAgAABQNuaWwEAmR3CQEBcwEJAJEDAgUCZHYAAQQCY1kFAmN6BAJjWgkAmQMBCQDMCAIJALkCAgUCY1kJALYCAQkAZQIFAmJiAAEJAMwIAgkAtgIBBQJjWAUDbmlsBAJkYQkAtwICBQJjWQUCY1oJAJQKAgUDbmlsCQC5CQIJAMwIAgIOJXMlcyVkJWQlZCVkJXMJAMwIAgUCYXUJAMwIAgUCYXQJAMwIAgkApgMBBQJkYQkAzAgCCQCmAwEFAmNUCQDMCAIJAKYDAQUCY1kJAMwIAgkApgMBBQJjWgkAzAgCAgRzb29uBQNuaWwFAWYCY24BFHN0YWtlZEJ5VXNlclJFQURPTkxZAgJhdQJhdAQCYnYJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBAmFzAgUCYXQFAmF1AAAJAJQKAgUDbmlsBQJidgJjbgESdXNlcnNMaXN0VHJhdmVyc2FsAQJhQwQCY0QDCQAAAgkA2AQBCAgFAmNuBmNhbGxlcgVieXRlcwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQEBTgACAAYJAQJjbwEFAmNuAwkAAAIFAmNEBQJjRAQCYmgJAQJiZgEFAmFDBAJkeAkAoggBCQECYmUBBQJhQwQCYm4JAKIIAQkBAmJnAQUCYmgEAW8FAmR4AwkAAQIFAW8CBFVuaXQEAmR5BQJibgMJAAECBQJkeQIEVW5pdAkAlAoCBQNuaWwHAwkAAQIFAmR5AgZTdHJpbmcEAmR6BQJkeQkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJiZQEFAmFDBQJkegUDbmlsBgkAAgECC01hdGNoIGVycm9yAwkAAQIFAW8CBlN0cmluZwQCYUUFAW8EAmN5CQEBRQIFBHRoaXMJAQJheAIFAmFDBQJhRQQCY3IJAQF6AgUCYVkJAQJhZAEFAmFDBAJjZwgJAQJiVwQFAmFDBQJhRQUCY3IAAAJfMQQCY3oJALgCAgUCY2cFAmN5BAJjQQYEAmNCAwkAvwICBQJjegUBaAkA/AcEBQR0aGlzAg9jbGFpbVd4SU5URVJOQUwJAMwIAgUCYUMJAMwIAgUCYUUJAMwIAgUCY0EFA25pbAUDbmlsBQR1bml0AwkAAAIFAmNCBQJjQgQCZEEJAKIIAQkBAmJsAgUCYmgFAmFFBAJkeQUCZEEDCQABAgUCZHkCBFVuaXQJAJQKAgkAzAgCCQELRGVsZXRlRW50cnkBCQECYmUBBQJhQwUDbmlsBwMJAAECBQJkeQIGU3RyaW5nBAJkQgUCZHkJAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCCQECYmUBBQJhQwUCZEIFA25pbAYJAAIBAgtNYXRjaCBlcnJvcgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECC01hdGNoIGVycm9yCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNuAQ5vbk1vZGlmeVdlaWdodAICYXUCYkEDCQECIT0CCAUCY24GY2FsbGVyBQJhWQkBAWwBAhJwZXJtaXNzaW9ucyBkZW5pZWQEAmRDCQECYnoDBQJhdQUCYkEAAAQCYngIBQJkQwJfMQQCYlkIBQJkQwJfMgQCYloIBQJkQwJfMwUCYlkBAmREAQJkRQAEAmRGBAFvCQECY2oAAwkAAQIFAW8CCkJ5dGVWZWN0b3IEAmNwBQFvBQJjcAMJAAECBQFvAgRVbml0CAUCZEQPc2VuZGVyUHVibGljS2V5CQACAQILTWF0Y2ggZXJyb3IJAPQDAwgFAmRECWJvZHlCeXRlcwkAkQMCCAUCZEQGcHJvb2ZzAAAFAmRGXXHy5A==", "height": 2508531, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6ST3R7oAds1sqwyPD7hgcnwuz3VwoQXYE2fdK8tegr8p Next: Fxy6e2QGkatqZU7QT6sx8HAKTopY12XGXkVVoVtvm2Lm Diff:
OldNewDifferences
3232 let p = o
3333 p
3434 }
35- else throw("fail to cast into List[Any]")
35+ else l("fail to cast into List[Any]")
3636 }
3737
3838
4343 let r = o
4444 r
4545 }
46- else throw("fail to cast into Int")
46+ else l("fail to cast into Int")
4747 }
4848
4949
5454 let t = o
5555 t
5656 }
57- else throw("fail to cast into Int")
57+ else l("fail to cast into Int")
5858 }
5959
6060
6565 let v = o
6666 v
6767 }
68- else throw("fail to cast into Int")
68+ else l("fail to cast into Int")
6969 }
7070
7171
72-func w (x,y) = valueOrErrorMessage(getString(x, y), (("mandatory this." + y) + " is not defined"))
72+func w (x,y) = valueOrErrorMessage(getString(x, y), j((("mandatory this." + y) + " is not defined")))
7373
7474
75-func z (x,y) = valueOrErrorMessage(getString(x, y), (((("mandatory " + toString(x)) + ".") + y) + " is not defined"))
75+func z (x,y) = valueOrErrorMessage(getString(x, y), j((((("mandatory " + toString(x)) + ".") + y) + " is not defined")))
7676
7777
7878 func A (x,y) = valueOrElse(getInteger(x, y), 0)
8181 func B (x,y,C) = valueOrElse(getInteger(x, y), C)
8282
8383
84-func D (x,y) = valueOrErrorMessage(getInteger(x, y), (("mandatory this." + y) + " is not defined"))
84+func D (x,y) = valueOrErrorMessage(getInteger(x, y), j((("mandatory this." + y) + " is not defined")))
8585
8686
8787 func E (x,y) = value(parseBigInt(valueOrElse(getString(x, y), "0")))
306306 let br = valueOrElse(getInteger(this, bi(bh)), 0)
307307 let bs = if (!(bm(bh, bk)))
308308 then true
309- else throw("Node exists")
309+ else l("Node exists")
310310 if ((bs == bs))
311311 then (([IntegerEntry(bi(bh), (br + 1))] ++ (if ((bn != unit))
312312 then [StringEntry(bl(bh, bk), value(bn)), StringEntry(bj(bh, value(bn)), bk)]
330330 then [DeleteEntry(bj(bh, bk)), DeleteEntry(bl(bh, value(bo)))]
331331 else if ((bk == valueOrElse(bn, "")))
332332 then [DeleteEntry(bg(bh))]
333- else throw(((("invalid node: " + bh) + ".") + bk))))
333+ else l(((("invalid node: " + bh) + ".") + bk))))
334334 }
335335
336336
344344 then (bv > h)
345345 else false)
346346 then value(parseBigInt(w(this, by)))
347- else throw("calcWxPerLpIntegralUserLast: unexpected state")
347+ else l("calcWxPerLpIntegralUserLast: unexpected state")
348348
349349
350350 func bz (au,bA,bB) = {
427427 }
428428
429429
430-let cl = throw("Permission denied")
430+let cl = l("Permission denied")
431431
432432 func cm (cn) = if ((cn.caller == this))
433433 then true
507507 else unit
508508 if ((cB == cB))
509509 then if ((aU > bv))
510- then throw(((((((("passed amount=" + toString(aU)) + " is greater than available=") + toString(bv)) + ". lpAssetId=") + au) + ". stakedByUserKEY=") + ca))
510+ then l(((((((("passed amount=" + toString(aU)) + " is greater than available=") + toString(bv)) + ". lpAssetId=") + au) + ". stakedByUserKEY=") + ca))
511511 else (([IntegerEntry(ca, (bv - aU)), IntegerEntry(bC, (bD - aU)), ScriptTransfer(cx, aU, aC), aV("unstake", at, au, aU, cn.transactionId)] ++ cu) ++ cv)
512512 else throw("Strict value is not equal to itself.")
513513 }
557557 let cI = ck()
558558 let cJ = if (isDefined(cI))
559559 then true
560- else throw("No pending manager")
560+ else l("No pending manager")
561561 if ((cJ == cJ))
562562 then {
563563 let cK = if ((cn.callerPublicKey == value(cI)))
564564 then true
565- else throw("You are not pending manager")
565+ else l("You are not pending manager")
566566 if ((cK == cK))
567567 then [StringEntry(W(), toBase58String(value(cI))), DeleteEntry(X())]
568568 else throw("Strict value is not equal to itself.")
574574
575575 @Callable(cn)
576576 func stake () = if ((size(cn.payments) != 1))
577- then throw("invalid payment - exact one payment must be attached")
577+ then l("invalid payment - exact one payment must be attached")
578578 else {
579579 let cL = cn.payments[0]
580580 let aC = value(cL.assetId)
581581 let au = toBase58String(aC)
582582 let aU = cL.amount
583- let bA = valueOrErrorMessage(getString(aY, aa(au)), ("unsupported lp asset " + au))
583+ let bA = valueOrErrorMessage(getString(aY, aa(au)), j(("unsupported lp asset " + au)))
584584 let cr = addressFromStringValue(bA)
585585 let aE = if ((cn.caller == cr))
586586 then cn.originCaller
592592
593593 @Callable(cn)
594594 func stakeFor (at) = if ((size(cn.payments) != 1))
595- then throw("invalid payment - exact one payment must be attached")
595+ then l("invalid payment - exact one payment must be attached")
596596 else {
597597 let cL = cn.payments[0]
598598 let aC = value(cL.assetId)
599599 let au = toBase58String(aC)
600600 let aU = cL.amount
601- let bA = valueOrErrorMessage(getString(aY, aa(au)), ("unsupported lp asset " + au))
601+ let bA = valueOrErrorMessage(getString(aY, aa(au)), j(("unsupported lp asset " + au)))
602602 let cr = addressFromStringValue(bA)
603603 let aE = valueOrErrorMessage(addressFromString(at), j("invalid user address"))
604604 cq(cn, aC, cr, aE, aU)
609609 @Callable(cn)
610610 func unstake (au,aU) = {
611611 let aC = fromBase58String(au)
612- let bA = valueOrErrorMessage(getString(aY, aa(au)), ("unsupported lp asset " + au))
612+ let bA = valueOrErrorMessage(getString(aY, aa(au)), j(("unsupported lp asset " + au)))
613613 let cr = addressFromStringValue(bA)
614614 let cM = valueOrElse(getString(cr, Z()), bA)
615615 let cN = toString(cn.caller)
627627 @Callable(cn)
628628 func unstakeINTERNAL (aC,aU,aE,cx) = {
629629 let au = toBase58String(aC)
630- let cr = addressFromStringValue(valueOrErrorMessage(getString(aY, aa(au)), ("unsupported lp asset " + au)))
630+ let cr = addressFromStringValue(valueOrErrorMessage(getString(aY, aa(au)), j(("unsupported lp asset " + au))))
631631 let cD = if ((cn.caller == cr))
632632 then true
633633 else cl
663663 let cD = cm(cn)
664664 if ((cD == cD))
665665 then {
666- let aE = valueOrErrorMessage(addressFromString(at), "claimWxINTERNAL: invalid user address")
666+ let aE = valueOrErrorMessage(addressFromString(at), j("claimWxINTERNAL: invalid user address"))
667667 let bA = z(aY, ad(au))
668668 let cP = aw(au, at)
669669 let cQ = az(au)
680680 let cz = max([(cg - cy), h])
681681 if ((h >= cz))
682682 then if (cA)
683- then throw("nothing to claim")
683+ then l("nothing to claim")
684684 else $Tuple2(nil, 0)
685685 else {
686686 let cX = max([q(m(invoke(ba, "claimWxBoost", [au, at], nil))[0]), 0])
847847
848848 @Callable(cn)
849849 func onModifyWeight (au,bA) = if ((cn.caller != aY))
850- then throw("permissions denied")
850+ then l("permissions denied")
851851 else {
852852 let dC = bz(au, bA, 0)
853853 let bx = dC._1
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 8
55
66 let b = 1000
77
88 let c = 100000000
99
1010 let d = 18
1111
1212 let e = toBigInt(1000000000000000000)
1313
1414 let f = "__"
1515
1616 let g = c
1717
1818 let h = toBigInt(0)
1919
2020 let i = toBigInt(1)
2121
2222 func j (k) = makeString(["staking.ride:", toString(this), k], " ")
2323
2424
2525 func l (k) = throw(j(k))
2626
2727
2828 func m (n) = {
2929 let o = n
3030 if ($isInstanceOf(o, "List[Any]"))
3131 then {
3232 let p = o
3333 p
3434 }
35- else throw("fail to cast into List[Any]")
35+ else l("fail to cast into List[Any]")
3636 }
3737
3838
3939 func q (n) = {
4040 let o = n
4141 if ($isInstanceOf(o, "Int"))
4242 then {
4343 let r = o
4444 r
4545 }
46- else throw("fail to cast into Int")
46+ else l("fail to cast into Int")
4747 }
4848
4949
5050 func s (n) = {
5151 let o = n
5252 if ($isInstanceOf(o, "String"))
5353 then {
5454 let t = o
5555 t
5656 }
57- else throw("fail to cast into Int")
57+ else l("fail to cast into Int")
5858 }
5959
6060
6161 func u (n) = {
6262 let o = n
6363 if ($isInstanceOf(o, "ByteVector"))
6464 then {
6565 let v = o
6666 v
6767 }
68- else throw("fail to cast into Int")
68+ else l("fail to cast into Int")
6969 }
7070
7171
72-func w (x,y) = valueOrErrorMessage(getString(x, y), (("mandatory this." + y) + " is not defined"))
72+func w (x,y) = valueOrErrorMessage(getString(x, y), j((("mandatory this." + y) + " is not defined")))
7373
7474
75-func z (x,y) = valueOrErrorMessage(getString(x, y), (((("mandatory " + toString(x)) + ".") + y) + " is not defined"))
75+func z (x,y) = valueOrErrorMessage(getString(x, y), j((((("mandatory " + toString(x)) + ".") + y) + " is not defined")))
7676
7777
7878 func A (x,y) = valueOrElse(getInteger(x, y), 0)
7979
8080
8181 func B (x,y,C) = valueOrElse(getInteger(x, y), C)
8282
8383
84-func D (x,y) = valueOrErrorMessage(getInteger(x, y), (("mandatory this." + y) + " is not defined"))
84+func D (x,y) = valueOrErrorMessage(getInteger(x, y), j((("mandatory this." + y) + " is not defined")))
8585
8686
8787 func E (x,y) = value(parseBigInt(valueOrElse(getString(x, y), "0")))
8888
8989
9090 func F (x,y,C) = {
9191 let o = getString(x, y)
9292 if ($isInstanceOf(o, "String"))
9393 then {
9494 let G = o
9595 value(parseBigInt(G))
9696 }
9797 else if ($isInstanceOf(o, "Unit"))
9898 then C
9999 else throw("Match error")
100100 }
101101
102102
103103 func H (I,J) = fraction(toBigInt(I), e, toBigInt(J))
104104
105105
106106 func K (n,L) = toInt(fraction(n, toBigInt(L), e))
107107
108108
109109 func M () = "%s%s__config__factoryAddress"
110110
111111
112112 func N () = "%s__votingEmissionContract"
113113
114114
115115 let O = 1
116116
117117 let P = 2
118118
119119 let Q = 3
120120
121121 let R = 4
122122
123123 let S = 5
124124
125125 let T = 6
126126
127127 let U = 7
128128
129129 func V () = "%s__factoryConfig"
130130
131131
132132 func W () = "%s__managerPublicKey"
133133
134134
135135 func X () = "%s__pendingManagerPublicKey"
136136
137137
138138 func Y () = "%s__stablePoolAddonAddr"
139139
140140
141141 func Z () = "%s__addonAddr"
142142
143143
144144 func aa (ab) = makeString(["%s%s%s", ab, "mappings__lpAsset2PoolContract"], f)
145145
146146
147147 func ac () = "%s__lpTokensList"
148148
149149
150150 func ad (ab) = makeString(["%s%s%s", ab, "mappings__lpAsset2PoolContract"], f)
151151
152152
153153 func ae (af) = makeString(["%s%s", "poolWeight", af], f)
154154
155155
156156 func ag (ah) = split(valueOrElse(getString(ah, ac()), ""), f)
157157
158158
159159 func ai (ah) = split(z(ah, V()), f)
160160
161161
162162 func aj (ak) = addressFromStringValue(ak[P])
163163
164164
165165 func al (ak) = addressFromStringValue(ak[S])
166166
167167
168168 func am (ak) = addressFromStringValue(ak[O])
169169
170170
171171 func an () = "%s%s__ratePerBlock__current"
172172
173173
174174 func ao () = "%s%s__ratePerBlockMax__current"
175175
176176
177177 func ap () = "%s%s__emission__startBlock"
178178
179179
180180 func aq () = "%s%s__emission__duration"
181181
182182
183183 func ar () = "%s%s__emission__endBlock"
184184
185185
186186 func as (at,au) = makeString(["%s%s%s__staked", at, au], f)
187187
188188
189189 func av (au) = ("%s%s%s__staked__total__" + au)
190190
191191
192192 func aw (au,at) = makeString(["%s%s%s__claimed", at, au], f)
193193
194194
195195 func ax (au,at) = makeString(["%s%s%s__claimedMinReward", at, au], f)
196196
197197
198198 func ay (au,at) = makeString(["%s%s%s__claimedBoostReward", at, au], f)
199199
200200
201201 func az (au) = makeString(["%s%s%s__claimed__total", au], f)
202202
203203
204204 func aA (y) = valueOrElse(getInteger(this, y), 0)
205205
206206
207207 func aB (aC) = makeString(["%s%s%s", aC, "total", "bal"], f)
208208
209209
210210 func aD (aC,aE) = makeString(["%s%s%s", aC, aE, "bal"], f)
211211
212212
213213 func aF (aC) = makeString(["%s%s%s", aC, "total", "balINT"], f)
214214
215215
216216 func aG (aC,aE) = makeString(["%s%s%s", aC, aE, "balINT"], f)
217217
218218
219219 func aH (aC) = makeString(["%s%s%s", aC, "total", "lastUpd"], f)
220220
221221
222222 func aI (aC,aE) = makeString(["%s%s%s", aC, aE, "lastUpd"], f)
223223
224224
225225 func aJ (aC) = makeString(["%s%s%s%s", aC, "common", "lpInt"], f)
226226
227227
228228 func aK (aC) = makeString(["%s%s%s%s", aC, "common", "lpIntH"], f)
229229
230230
231231 func aL (aC,aE) = makeString(["%s%s%s%s", aC, aE, "lpInt"], f)
232232
233233
234234 func aM (aC,aE) = makeString(["%s%s%s%s", aC, aE, "lpIntH"], f)
235235
236236
237237 func aN (aC) = makeString(["%s", aC, "wxPerLp"], f)
238238
239239
240240 func aO (aC) = makeString(["%s", aC, "wxPerLpX18"], f)
241241
242242
243243 func aP (aC,aE) = makeString(["%s%s%s%s", aC, aE, "uIntL"], f)
244244
245245
246246 func aQ (aR,aE,aS) = makeString(["%s%s%s%s__history", aR, aE, aS], f)
247247
248248
249249 func aT (aE,aC,aR,aU) = makeString(["%s%s%s%d%d%d", aE, aC, aR, toString(height), toString(lastBlock.timestamp), toString(aU)], f)
250250
251251
252252 func aV (aR,aE,aC,aU,aW) = StringEntry(aQ(aR, aE, toBase58String(aW)), aT(aE, aC, aR, aU))
253253
254254
255255 let aX = w(this, M())
256256
257257 let aY = addressFromStringValue(aX)
258258
259259 let ak = ai(aY)
260260
261261 let aZ = al(ak)
262262
263263 let ba = aj(ak)
264264
265265 let bb = {
266266 let bc = invoke(aZ, "getBoostCoeffREADONLY", nil, nil)
267267 if ($isInstanceOf(bc, "Int"))
268268 then bc
269269 else throw(($getType(bc) + " couldn't be cast to Int"))
270270 }
271271
272272 let bd = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(makeString(["%s", "lpStakingPoolsContract"], f)), j("lp_staking_pools contract address is undefined"))), j("invalid lp_staking_pools contract address"))
273273
274274 func be (aC) = makeString(["%s%s", aC, "nextUser"], f)
275275
276276
277277 func bf (aC) = makeString(["users", aC], f)
278278
279279
280280 func bg (bh) = makeString(["%s%s%s", bh, "head"], f)
281281
282282
283283 func bi (bh) = makeString(["%s%s%s", bh, "size"], f)
284284
285285
286286 func bj (bh,bk) = makeString(["%s%s%s%s", bh, bk, "prev"], f)
287287
288288
289289 func bl (bh,bk) = makeString(["%s%s%s%s", bh, bk, "next"], f)
290290
291291
292292 func bm (bh,bk) = {
293293 let bn = getString(this, bg(bh))
294294 let bo = getString(this, bj(bh, bk))
295295 let bp = getString(this, bl(bh, bk))
296296 if (if ((bk == valueOrElse(bn, "")))
297297 then true
298298 else (bo != unit))
299299 then true
300300 else (bp != unit)
301301 }
302302
303303
304304 func bq (bh,bk) = {
305305 let bn = getString(this, bg(bh))
306306 let br = valueOrElse(getInteger(this, bi(bh)), 0)
307307 let bs = if (!(bm(bh, bk)))
308308 then true
309- else throw("Node exists")
309+ else l("Node exists")
310310 if ((bs == bs))
311311 then (([IntegerEntry(bi(bh), (br + 1))] ++ (if ((bn != unit))
312312 then [StringEntry(bl(bh, bk), value(bn)), StringEntry(bj(bh, value(bn)), bk)]
313313 else nil)) ++ [StringEntry(bg(bh), bk)])
314314 else throw("Strict value is not equal to itself.")
315315 }
316316
317317
318318 func bt (bh,bk) = {
319319 let bn = getString(this, bg(bh))
320320 let br = valueOrElse(getInteger(this, bi(bh)), 0)
321321 let bo = getString(this, bj(bh, bk))
322322 let bp = getString(this, bl(bh, bk))
323323 ([IntegerEntry(bi(bh), (br - 1))] ++ (if (if ((bo != unit))
324324 then (bp != unit)
325325 else false)
326326 then [StringEntry(bl(bh, value(bo)), value(bp)), StringEntry(bj(bh, value(bp)), value(bo)), DeleteEntry(bj(bh, bk)), DeleteEntry(bl(bh, bk))]
327327 else if ((bp != unit))
328328 then [StringEntry(bg(bh), value(bp)), DeleteEntry(bl(bh, bk)), DeleteEntry(bj(bh, value(bp)))]
329329 else if ((bo != unit))
330330 then [DeleteEntry(bj(bh, bk)), DeleteEntry(bl(bh, value(bo)))]
331331 else if ((bk == valueOrElse(bn, "")))
332332 then [DeleteEntry(bg(bh))]
333- else throw(((("invalid node: " + bh) + ".") + bk))))
333+ else l(((("invalid node: " + bh) + ".") + bk))))
334334 }
335335
336336
337337 func bu (bv,bw,bx,by) = if (if ((bw == h))
338338 then (bv > h)
339339 else false)
340340 then h
341341 else if ((bv == h))
342342 then bx
343343 else if (if ((bw > h))
344344 then (bv > h)
345345 else false)
346346 then value(parseBigInt(w(this, by)))
347- else throw("calcWxPerLpIntegralUserLast: unexpected state")
347+ else l("calcWxPerLpIntegralUserLast: unexpected state")
348348
349349
350350 func bz (au,bA,bB) = {
351351 let bC = av(au)
352352 let bD = toBigInt(aA(bC))
353353 let bE = if ((bD == h))
354354 then i
355355 else bD
356356 let bF = getIntegerValue(aY, ae(bA))
357357 let bG = D(aZ, ap())
358358 let bH = (D(aZ, an()) * b)
359359 let bI = fraction(bH, bF, (g * bb))
360360 let bJ = aJ(au)
361361 let bK = aK(au)
362362 let bL = aN(au)
363363 let bM = B(this, bK, bG)
364364 let bN = E(this, bJ)
365365 let bO = 0
366366 let bP = max([(height - bM), 0])
367367 let bQ = if ((bO != 0))
368368 then toBigInt(bO)
369369 else fraction(toBigInt(bI), toBigInt(c), bE)
370370 let bR = (bD + toBigInt(bB))
371371 let bS = if ((bR == h))
372372 then i
373373 else bR
374374 let bx = (bN + (bQ * toBigInt(bP)))
375375 let bT = (toBigInt(bI) / bS)
376376 let bU = height
377377 let bV = makeString([toString(bx), toString(bP), toString(bQ), toString(bD), toString(bI), toString(bH), toString(bF)], "::")
378378 $Tuple3(bx, [StringEntry(bJ, toString(bx)), IntegerEntry(bK, bU), StringEntry(bL, toString(bT))], bV)
379379 }
380380
381381
382382 func bW (au,at,bA,bB) = {
383383 let bX = bz(au, bA, bB)
384384 let bx = bX._1
385385 let bY = bX._2
386386 let bZ = bX._3
387387 let ca = as(at, au)
388388 let bv = aA(ca)
389389 let cb = aL(au, at)
390390 let cc = aM(au, at)
391391 let by = aP(au, at)
392392 let cd = E(this, cb)
393393 let bw = A(this, cc)
394394 let ce = bu(toBigInt(bv), toBigInt(bw), bx, by)
395395 let cf = (c * b)
396396 let cg = max([(cd + fraction((bx - ce), toBigInt(bv), toBigInt(cf))), h])
397397 let ch = bx
398398 let ci = height
399399 let bV = makeString([toString(cd), toString(ce), toString(bv), bZ, toString(height)], "::")
400400 $Tuple3(cg, (bY ++ [StringEntry(cb, toString(cg)), IntegerEntry(cc, ci), StringEntry(by, toString(ch))]), bV)
401401 }
402402
403403
404404 func cj () = {
405405 let o = getString(W())
406406 if ($isInstanceOf(o, "String"))
407407 then {
408408 let G = o
409409 fromBase58String(G)
410410 }
411411 else if ($isInstanceOf(o, "Unit"))
412412 then unit
413413 else throw("Match error")
414414 }
415415
416416
417417 func ck () = {
418418 let o = getString(X())
419419 if ($isInstanceOf(o, "String"))
420420 then {
421421 let G = o
422422 fromBase58String(G)
423423 }
424424 else if ($isInstanceOf(o, "Unit"))
425425 then unit
426426 else throw("Match error")
427427 }
428428
429429
430-let cl = throw("Permission denied")
430+let cl = l("Permission denied")
431431
432432 func cm (cn) = if ((cn.caller == this))
433433 then true
434434 else cl
435435
436436
437437 func co (cn) = {
438438 let o = cj()
439439 if ($isInstanceOf(o, "ByteVector"))
440440 then {
441441 let cp = o
442442 if ((cn.callerPublicKey == cp))
443443 then true
444444 else cl
445445 }
446446 else if ($isInstanceOf(o, "Unit"))
447447 then if ((cn.caller == this))
448448 then true
449449 else cl
450450 else throw("Match error")
451451 }
452452
453453
454454 func cq (cn,aC,cr,aE,aU) = {
455455 let at = toString(aE)
456456 let au = toBase58String(aC)
457457 let bA = toString(cr)
458458 let ca = as(at, au)
459459 let bC = av(au)
460460 let bv = aA(ca)
461461 let cs = if ((bv == 0))
462462 then invoke(ba, "onStakedVoteUpdate", [au, at, true], nil)
463463 else unit
464464 if ((cs == cs))
465465 then {
466466 let bD = aA(bC)
467467 let ct = bW(au, at, bA, aU)
468468 let cg = ct._1
469469 let cu = ct._2
470470 let bV = ct._3
471471 let bh = bf(au)
472472 let cv = if (bm(bh, at))
473473 then nil
474474 else bq(bh, at)
475475 (([IntegerEntry(ca, (bv + aU)), IntegerEntry(bC, (bD + aU)), aV("stake", at, au, aU, cn.transactionId)] ++ cu) ++ cv)
476476 }
477477 else throw("Strict value is not equal to itself.")
478478 }
479479
480480
481481 func cw (cn,aC,cr,aE,cx,aU) = {
482482 let at = toString(aE)
483483 let au = toBase58String(aC)
484484 let bA = toString(cr)
485485 let ca = as(at, au)
486486 let bC = av(au)
487487 let bv = aA(ca)
488488 let bD = aA(bC)
489489 let cu = bW(au, at, bA, -(aU))._2
490490 let bh = bf(au)
491491 let cv = if (if (bm(bh, at))
492492 then (aU == bv)
493493 else false)
494494 then bt(bh, at)
495495 else nil
496496 let cs = if ((aU == bv))
497497 then invoke(ba, "onStakedVoteUpdate", [au, at, false], nil)
498498 else unit
499499 if ((cs == cs))
500500 then {
501501 let cy = E(this, ax(au, at))
502502 let cg = bW(au, at, bA, 0)._1
503503 let cz = (cg - cy)
504504 let cA = true
505505 let cB = if ((cz > h))
506506 then invoke(this, "claimWxINTERNAL", [au, at, cA], nil)
507507 else unit
508508 if ((cB == cB))
509509 then if ((aU > bv))
510- then throw(((((((("passed amount=" + toString(aU)) + " is greater than available=") + toString(bv)) + ". lpAssetId=") + au) + ". stakedByUserKEY=") + ca))
510+ then l(((((((("passed amount=" + toString(aU)) + " is greater than available=") + toString(bv)) + ". lpAssetId=") + au) + ". stakedByUserKEY=") + ca))
511511 else (([IntegerEntry(ca, (bv - aU)), IntegerEntry(bC, (bD - aU)), ScriptTransfer(cx, aU, aC), aV("unstake", at, au, aU, cn.transactionId)] ++ cu) ++ cv)
512512 else throw("Strict value is not equal to itself.")
513513 }
514514 else throw("Strict value is not equal to itself.")
515515 }
516516
517517
518518 @Callable(cn)
519519 func constructor (cC) = {
520520 let cD = co(cn)
521521 if ((cD == cD))
522522 then [StringEntry(M(), cC)]
523523 else throw("Strict value is not equal to itself.")
524524 }
525525
526526
527527
528528 @Callable(cn)
529529 func constructorV2 (cE) = {
530530 let cF = [co(cn), if ((addressFromString(cE) != unit))
531531 then true
532532 else "invalid voting emission contract address"]
533533 if ((cF == cF))
534534 then [StringEntry(N(), cE)]
535535 else throw("Strict value is not equal to itself.")
536536 }
537537
538538
539539
540540 @Callable(cn)
541541 func setManager (cG) = {
542542 let cD = co(cn)
543543 if ((cD == cD))
544544 then {
545545 let cH = fromBase58String(cG)
546546 if ((cH == cH))
547547 then [StringEntry(X(), cG)]
548548 else throw("Strict value is not equal to itself.")
549549 }
550550 else throw("Strict value is not equal to itself.")
551551 }
552552
553553
554554
555555 @Callable(cn)
556556 func confirmManager () = {
557557 let cI = ck()
558558 let cJ = if (isDefined(cI))
559559 then true
560- else throw("No pending manager")
560+ else l("No pending manager")
561561 if ((cJ == cJ))
562562 then {
563563 let cK = if ((cn.callerPublicKey == value(cI)))
564564 then true
565- else throw("You are not pending manager")
565+ else l("You are not pending manager")
566566 if ((cK == cK))
567567 then [StringEntry(W(), toBase58String(value(cI))), DeleteEntry(X())]
568568 else throw("Strict value is not equal to itself.")
569569 }
570570 else throw("Strict value is not equal to itself.")
571571 }
572572
573573
574574
575575 @Callable(cn)
576576 func stake () = if ((size(cn.payments) != 1))
577- then throw("invalid payment - exact one payment must be attached")
577+ then l("invalid payment - exact one payment must be attached")
578578 else {
579579 let cL = cn.payments[0]
580580 let aC = value(cL.assetId)
581581 let au = toBase58String(aC)
582582 let aU = cL.amount
583- let bA = valueOrErrorMessage(getString(aY, aa(au)), ("unsupported lp asset " + au))
583+ let bA = valueOrErrorMessage(getString(aY, aa(au)), j(("unsupported lp asset " + au)))
584584 let cr = addressFromStringValue(bA)
585585 let aE = if ((cn.caller == cr))
586586 then cn.originCaller
587587 else cn.caller
588588 cq(cn, aC, cr, aE, aU)
589589 }
590590
591591
592592
593593 @Callable(cn)
594594 func stakeFor (at) = if ((size(cn.payments) != 1))
595- then throw("invalid payment - exact one payment must be attached")
595+ then l("invalid payment - exact one payment must be attached")
596596 else {
597597 let cL = cn.payments[0]
598598 let aC = value(cL.assetId)
599599 let au = toBase58String(aC)
600600 let aU = cL.amount
601- let bA = valueOrErrorMessage(getString(aY, aa(au)), ("unsupported lp asset " + au))
601+ let bA = valueOrErrorMessage(getString(aY, aa(au)), j(("unsupported lp asset " + au)))
602602 let cr = addressFromStringValue(bA)
603603 let aE = valueOrErrorMessage(addressFromString(at), j("invalid user address"))
604604 cq(cn, aC, cr, aE, aU)
605605 }
606606
607607
608608
609609 @Callable(cn)
610610 func unstake (au,aU) = {
611611 let aC = fromBase58String(au)
612- let bA = valueOrErrorMessage(getString(aY, aa(au)), ("unsupported lp asset " + au))
612+ let bA = valueOrErrorMessage(getString(aY, aa(au)), j(("unsupported lp asset " + au)))
613613 let cr = addressFromStringValue(bA)
614614 let cM = valueOrElse(getString(cr, Z()), bA)
615615 let cN = toString(cn.caller)
616616 let aE = if (if ((cN == bA))
617617 then true
618618 else (cN == cM))
619619 then cn.originCaller
620620 else cn.caller
621621 let cx = cn.caller
622622 cw(cn, aC, cr, aE, cx, aU)
623623 }
624624
625625
626626
627627 @Callable(cn)
628628 func unstakeINTERNAL (aC,aU,aE,cx) = {
629629 let au = toBase58String(aC)
630- let cr = addressFromStringValue(valueOrErrorMessage(getString(aY, aa(au)), ("unsupported lp asset " + au)))
630+ let cr = addressFromStringValue(valueOrErrorMessage(getString(aY, aa(au)), j(("unsupported lp asset " + au))))
631631 let cD = if ((cn.caller == cr))
632632 then true
633633 else cl
634634 if ((cD == cD))
635635 then cw(cn, aC, cr, Address(aE), Address(cx), aU)
636636 else throw("Strict value is not equal to itself.")
637637 }
638638
639639
640640
641641 @Callable(cn)
642642 func claimWx (au) = {
643643 let at = toString(cn.caller)
644644 let cA = true
645645 let cO = invoke(this, "claimWxINTERNAL", [au, at, cA], nil)
646646 $Tuple2(nil, cO)
647647 }
648648
649649
650650
651651 @Callable(cn)
652652 func claimWxDoNotThrow (au) = {
653653 let at = toString(cn.caller)
654654 let cA = false
655655 let cO = invoke(this, "claimWxINTERNAL", [au, at, cA], nil)
656656 $Tuple2(nil, cO)
657657 }
658658
659659
660660
661661 @Callable(cn)
662662 func claimWxINTERNAL (au,at,cA) = {
663663 let cD = cm(cn)
664664 if ((cD == cD))
665665 then {
666- let aE = valueOrErrorMessage(addressFromString(at), "claimWxINTERNAL: invalid user address")
666+ let aE = valueOrErrorMessage(addressFromString(at), j("claimWxINTERNAL: invalid user address"))
667667 let bA = z(aY, ad(au))
668668 let cP = aw(au, at)
669669 let cQ = az(au)
670670 let cR = ax(au, at)
671671 let cS = ay(au, at)
672672 let cT = E(this, cP)
673673 let cy = E(this, cR)
674674 let cU = E(this, cS)
675675 let cV = E(this, cQ)
676676 let cW = bW(au, at, bA, 0)
677677 let cg = cW._1
678678 let cu = cW._2
679679 let bV = cW._3
680680 let cz = max([(cg - cy), h])
681681 if ((h >= cz))
682682 then if (cA)
683- then throw("nothing to claim")
683+ then l("nothing to claim")
684684 else $Tuple2(nil, 0)
685685 else {
686686 let cX = max([q(m(invoke(ba, "claimWxBoost", [au, at], nil))[0]), 0])
687687 let cY = cz
688688 let cZ = min([(cY * toBigInt((bb - 1))), toBigInt(cX)])
689689 let da = (cY + cZ)
690690 let db = u(m(invoke(aZ, "emit", [toInt(cY)], nil))[0])
691691 let dc = m(invoke(aZ, "emit", [toInt(cZ)], nil))
692692 if ((dc == dc))
693693 then {
694694 let dd = ((cT + cY) + cZ)
695695 let de = (cy + cY)
696696 let df = (cU + cZ)
697697 let dg = (cV + cz)
698698 $Tuple2([StringEntry(cP, toString(dd)), StringEntry(cR, toString(de)), StringEntry(cS, toString(df)), StringEntry(cQ, toString(dg)), ScriptTransfer(aE, toInt(cY), db), ScriptTransfer(aE, toInt(cZ), db), aV("claim", at, au, toInt(cz), cn.transactionId)], toInt(da))
699699 }
700700 else throw("Strict value is not equal to itself.")
701701 }
702702 }
703703 else throw("Strict value is not equal to itself.")
704704 }
705705
706706
707707
708708 @Callable(cn)
709709 func claimWxBulkInternalREADONLY (dh,di,at,dj) = if ((dh == size(di)))
710710 then $Tuple2(nil, dj)
711711 else {
712712 let aC = di[dh]
713713 let dk = split({
714714 let bc = invoke(this, "claimWxREADONLY", [aC, at], nil)
715715 if ($isInstanceOf(bc, "String"))
716716 then bc
717717 else throw(($getType(bc) + " couldn't be cast to String"))
718718 }, f)
719719 let dl = dk[3]
720720 let dm = dk[4]
721721 let dn = {
722722 let bc = invoke(ba, "getUserVoteFinalizedREADONLY", [aC, at], nil)
723723 if ($isInstanceOf(bc, "Int"))
724724 then bc
725725 else throw(($getType(bc) + " couldn't be cast to Int"))
726726 }
727727 let do = (dj :+ makeString(["%d%d%d", dl, dm, toString(dn)], f))
728728 let dp = {
729729 let bc = invoke(this, "claimWxBulkInternalREADONLY", [(dh + 1), di, at, do], nil)
730730 if ($isInstanceOf(bc, "List[Any]"))
731731 then bc
732732 else throw(($getType(bc) + " couldn't be cast to List[Any]"))
733733 }
734734 if ((dp == dp))
735735 then $Tuple2(nil, dp)
736736 else throw("Strict value is not equal to itself.")
737737 }
738738
739739
740740
741741 @Callable(cn)
742742 func claimWxBulkREADONLY (di,at) = {
743743 let do = invoke(this, "claimWxBulkInternalREADONLY", [0, di, at, nil], nil)
744744 $Tuple2(nil, do)
745745 }
746746
747747
748748
749749 @Callable(cn)
750750 func claimWxREADONLY (au,at) = {
751751 let ca = as(at, au)
752752 let bC = av(au)
753753 let cP = aw(au, at)
754754 let cR = ax(au, at)
755755 let bv = aA(ca)
756756 let bD = aA(bC)
757757 let cT = E(this, cP)
758758 let cy = E(this, cR)
759759 let bA = z(aY, ad(au))
760760 let bF = getIntegerValue(aY, ae(bA))
761761 let dq = D(aZ, an())
762762 let bG = D(aZ, ap())
763763 let dr = if ((bG > height))
764764 then 0
765765 else (height - bG)
766766 let ds = fraction((dq * dr), bF, g)
767767 let dt = fraction(ds, bv, bD)
768768 let du = bW(au, at, bA, 0)
769769 let cg = du._1
770770 let cu = du._2
771771 let bV = du._3
772772 let cz = max([(cg - cy), h])
773773 let dv = m(invoke(ba, "claimWxBoostREADONLY", [au, at], nil))
774774 let cX = max([q(dv[0]), 0])
775775 let dw = s(dv[1])
776776 let cY = cz
777777 let cZ = min([(cY * toBigInt((bb - 1))), toBigInt(cX)])
778778 let da = (cY + cZ)
779779 $Tuple2(nil, makeString(["%s%s%d%d%d%d%s", au, at, toString(da), toString(cT), toString(cY), toString(cZ), "soon"], f))
780780 }
781781
782782
783783
784784 @Callable(cn)
785785 func stakedByUserREADONLY (au,at) = {
786786 let bv = valueOrElse(getInteger(as(at, au)), 0)
787787 $Tuple2(nil, bv)
788788 }
789789
790790
791791
792792 @Callable(cn)
793793 func usersListTraversal (aC) = {
794794 let cD = if ((toBase58String(cn.caller.bytes) == valueOrElse(getString(this, N()), "")))
795795 then true
796796 else co(cn)
797797 if ((cD == cD))
798798 then {
799799 let bh = bf(aC)
800800 let dx = getString(be(aC))
801801 let bn = getString(bg(bh))
802802 let o = dx
803803 if ($isInstanceOf(o, "Unit"))
804804 then {
805805 let dy = bn
806806 if ($isInstanceOf(dy, "Unit"))
807807 then $Tuple2(nil, false)
808808 else if ($isInstanceOf(dy, "String"))
809809 then {
810810 let dz = dy
811811 $Tuple2([StringEntry(be(aC), dz)], true)
812812 }
813813 else throw("Match error")
814814 }
815815 else if ($isInstanceOf(o, "String"))
816816 then {
817817 let aE = o
818818 let cy = E(this, ax(aC, aE))
819819 let cr = z(aY, ad(aC))
820820 let cg = bW(aC, aE, cr, 0)._1
821821 let cz = (cg - cy)
822822 let cA = true
823823 let cB = if ((cz > h))
824824 then invoke(this, "claimWxINTERNAL", [aC, aE, cA], nil)
825825 else unit
826826 if ((cB == cB))
827827 then {
828828 let dA = getString(bl(bh, aE))
829829 let dy = dA
830830 if ($isInstanceOf(dy, "Unit"))
831831 then $Tuple2([DeleteEntry(be(aC))], false)
832832 else if ($isInstanceOf(dy, "String"))
833833 then {
834834 let dB = dy
835835 $Tuple2([StringEntry(be(aC), dB)], true)
836836 }
837837 else throw("Match error")
838838 }
839839 else throw("Strict value is not equal to itself.")
840840 }
841841 else throw("Match error")
842842 }
843843 else throw("Strict value is not equal to itself.")
844844 }
845845
846846
847847
848848 @Callable(cn)
849849 func onModifyWeight (au,bA) = if ((cn.caller != aY))
850- then throw("permissions denied")
850+ then l("permissions denied")
851851 else {
852852 let dC = bz(au, bA, 0)
853853 let bx = dC._1
854854 let bY = dC._2
855855 let bZ = dC._3
856856 bY
857857 }
858858
859859
860860 @Verifier(dD)
861861 func dE () = {
862862 let dF = {
863863 let o = cj()
864864 if ($isInstanceOf(o, "ByteVector"))
865865 then {
866866 let cp = o
867867 cp
868868 }
869869 else if ($isInstanceOf(o, "Unit"))
870870 then dD.senderPublicKey
871871 else throw("Match error")
872872 }
873873 sigVerify(dD.bodyBytes, dD.proofs[0], dF)
874874 }
875875

github/deemru/w8io/873ac7e 
120.98 ms