2024.06.26 12:43 [4233540] transfer 3PEpQ4LaeZA6DVMyrgU3PTFBprAF4tRziBD > 3PKgDvqufeSQDcbsP8VrCvZXcA4GVviLPCY claimReward() 0.06018543 Duck Egg
2024.06.26 12:43 [4233540] transfer 3PEpQ4LaeZA6DVMyrgU3PTFBprAF4tRziBD > 3P6hQHv6LWTRdxJAJNT81zvrGURDYxErTtS claimReward() 0.01000000 Waves
2024.06.26 12:43 [4233540] invoke 3PEpQ4LaeZA6DVMyrgU3PTFBprAF4tRziBD > 3PDVuU45H7Eh5dmtNbnRNRStGwULA7NY6Hb getGenFromName()
2024.06.26 12:43 [4233540] invoke 3PEpQ4LaeZA6DVMyrgU3PTFBprAF4tRziBD > 3P5E9xamcWoymiqLx8ZdmR7o4fJSRMGp1WR calculateFarmingPowerBoost()
2024.06.26 12:43 [4233540] invoke 3PEpQ4LaeZA6DVMyrgU3PTFBprAF4tRziBD > 3PEpQ4LaeZA6DVMyrgU3PTFBprAF4tRziBD calculateFarmPower()
2024.06.26 12:43 [4233540] invoke 3PKgDvqufeSQDcbsP8VrCvZXcA4GVviLPCY > 3PEpQ4LaeZA6DVMyrgU3PTFBprAF4tRziBD claimReward() 0.01000000 Waves
2024.06.26 12:43 [4233540] transfer 3PHaNgomBkrvEL2QnuJarQVJa71wjw9qiqG > 3PLk7wu8tovkaszYGLZy4g4yKMMRMuHeUwg exchange() 0.136342 XTN.
2024.06.26 12:43 [4233540] transfer 3PHaNgomBkrvEL2QnuJarQVJa71wjw9qiqG > 3P6J84oH51DzY6xk2mT5TheXRbrCwBMxonp exchange() 0.477199 XTN.
2024.06.26 12:43 [4233540] transfer 3PHaNgomBkrvEL2QnuJarQVJa71wjw9qiqG > 3P8auNWJkxxByyJtwErFXaxiXcGM45qQ1hA exchange() 348.233176 XTN.
2024.06.26 12:43 [4233540] lease 3PHaNgomBkrvEL2QnuJarQVJa71wjw9qiqG > 3PLXMk37Nn7Wtm3uAK1gbxDc87JZmTh4gnU stakeUnstake() 63452.31165114 Waves
2024.06.26 12:43 [4233540] unlease 3PHaNgomBkrvEL2QnuJarQVJa71wjw9qiqG > 3PLXMk37Nn7Wtm3uAK1gbxDc87JZmTh4gnU stakeUnstake() +63446.22728025 Waves
2024.06.26 12:43 [4233540] invoke 3PBFHAHS4PZaXpS7gT5SPLnuPh7YPoJgCfE > 3PHaNgomBkrvEL2QnuJarQVJa71wjw9qiqG stakeUnstake()
2024.06.26 12:43 [4233540] invoke 3PHaNgomBkrvEL2QnuJarQVJa71wjw9qiqG > 3PBFHAHS4PZaXpS7gT5SPLnuPh7YPoJgCfE exchange()
2024.06.26 12:43 [4233540] invoke 3P8auNWJkxxByyJtwErFXaxiXcGM45qQ1hA > 3PHaNgomBkrvEL2QnuJarQVJa71wjw9qiqG exchange() 6.08437089 Waves
2024.06.26 12:43 [4233540] transfer 3PRDdJfgUDq4fCwbNLDaGnfs5eYc6S9A1xX > 3P8auNWJkxxByyJtwErFXaxiXcGM45qQ1hA exchange() 1017.43692021 L2MP
2024.06.26 12:43 [4233540] invoke 3P8auNWJkxxByyJtwErFXaxiXcGM45qQ1hA > 3PRDdJfgUDq4fCwbNLDaGnfs5eYc6S9A1xX exchange() 200.000000 XTN.
2024.06.26 12:43 [4233540] invoke 3PLET96WmdYmHzqkEHB6Ufj1F2kREgnCzDc > 3PNASfdCWXvYfErZXoKhVbi7XrbJw1SJvfg (failed)
2024.06.26 12:43 [4233540] transfer 3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU > 3P3RVcSSGMb4poG3yMSvYxMQ2UnBa8FPpuL swap() 0.000001 USDT-ERC20-PPT
2024.06.26 12:43 [4233540] transfer 3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU > 3P3RVcSSGMb4poG3yMSvYxMQ2UnBa8FPpuL swap() 0.95487451 Waves
2024.06.26 12:43 [4233540] transfer 3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee > 3PLk7wu8tovkaszYGLZy4g4yKMMRMuHeUwg exchange() 0.00000074 Puzzle
2024.06.26 12:43 [4233540] transfer 3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee > 3P6J84oH51DzY6xk2mT5TheXRbrCwBMxonp exchange() 0.00000260 Puzzle
2024.06.26 12:43 [4233540] transfer 3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee > 3PKUxbZaSYfsR7wu2HaAgiirHYwAMupDrYW exchange() 0.00123524 Puzzle
2024.06.26 12:43 [4233540] transfer 3PFTbywqxtFfukX3HyT881g4iW5K4QL3FAS > 3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee unStake() 0.00123858 Puzzle
2024.06.26 12:43 [4233540] invoke 3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee > 3PFTbywqxtFfukX3HyT881g4iW5K4QL3FAS unStake()
2024.06.26 12:43 [4233540] invoke 3PBFHAHS4PZaXpS7gT5SPLnuPh7YPoJgCfE > 3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee stakeUnstake()
2024.06.26 12:43 [4233540] invoke 3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee > 3PBFHAHS4PZaXpS7gT5SPLnuPh7YPoJgCfE exchange()
2024.06.26 12:43 [4233540] invoke 3PKUxbZaSYfsR7wu2HaAgiirHYwAMupDrYW > 3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee exchange() 0.159221 XTN.
2024.06.26 12:43 [4233540] invoke 3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU > 3PKUxbZaSYfsR7wu2HaAgiirHYwAMupDrYW topUpReward() 0.159221 XTN.
2024.06.26 12:43 [4233540] transfer 3PE7NtJdmVq4yo47LKDqurQ8RLDCouvJCPB > 3PFWAVKmXjfHXyzJb12jCbhP4Uhi9t4uWiD swap() 0.001299 XTN.
2024.06.26 12:43 [4233540] transfer 3PE7NtJdmVq4yo47LKDqurQ8RLDCouvJCPB > 3PEtLVxDT8mxAh1SDAn8m7JTGNkdpkaFxBk swap() 0.000324 XTN.
2024.06.26 12:43 [4233540] transfer 3PE7NtJdmVq4yo47LKDqurQ8RLDCouvJCPB > 3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU swap() 0.159221 XTN.
2024.06.26 12:43 [4233540] invoke 3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU > 3PE7NtJdmVq4yo47LKDqurQ8RLDCouvJCPB swap() 0.00277718 Waves
2024.06.26 12:43 [4233540] transfer 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PL8Mr3JWNwKqSTfxpSaiwxaUVW6rmzysVs swap() 0.56670590 L2MP
2024.06.26 12:43 [4233540] transfer 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PEjHv3JGjcWNpYEEkif2w8NXV4kbhnoGgu swap() 0.56670590 L2MP
2024.06.26 12:43 [4233540] transfer 3PL8Mr3JWNwKqSTfxpSaiwxaUVW6rmzysVs > 3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU calculateAmountOutForSwapAndSendTokens() 0.95765169 Waves
2024.06.26 12:43 [4233540] transfer 3P4dXbaBwREskBrTvx3UjvSCmJWcnqpnJVn > 3PL8Mr3JWNwKqSTfxpSaiwxaUVW6rmzysVs deposit() 7.90137017 sWAVES
2024.06.26 12:43 [4233540] transfer 3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV > 3P4dXbaBwREskBrTvx3UjvSCmJWcnqpnJVn deposit() 7.90137017 sWAVES
2024.06.26 12:43 [4233540] reissue 3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV > SELF deposit() 7.90137017 sWAVES
2024.06.26 12:43 [4233540] lease 3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt > 3PDETXtiaErZncMduS8h9G6aopcjT7wheqj stake() 1651946.31825991 Waves
2024.06.26 12:43 [4233540] unlease 3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt > 3PDETXtiaErZncMduS8h9G6aopcjT7wheqj stake() +1651937.42019855 Waves
2024.06.26 12:43 [4233540] invoke 3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV > 3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt stake() 8.89806136 Waves
2024.06.26 12:43 [4233540] invoke 3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV > 3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt claimReward()
2024.06.26 12:43 [4233540] invoke 3P4dXbaBwREskBrTvx3UjvSCmJWcnqpnJVn > 3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV deposit() 8.89806136 Waves
2024.06.26 12:43 [4233540] invoke 3PL8Mr3JWNwKqSTfxpSaiwxaUVW6rmzysVs > 3P4dXbaBwREskBrTvx3UjvSCmJWcnqpnJVn deposit() 8.89806136 Waves
2024.06.26 12:43 [4233540] invoke 3PL8Mr3JWNwKqSTfxpSaiwxaUVW6rmzysVs > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolLeaseConfigREADONLY()
2024.06.26 12:43 [4233540] invoke 3PL8Mr3JWNwKqSTfxpSaiwxaUVW6rmzysVs > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolLeaseConfigREADONLY()
2024.06.26 12:43 [4233540] invoke 3PL8Mr3JWNwKqSTfxpSaiwxaUVW6rmzysVs > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getSwapContractREADONLY()
2024.06.26 12:43 [4233540] invoke 3PL8Mr3JWNwKqSTfxpSaiwxaUVW6rmzysVs > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv isPoolSwapDisabledREADONLY()
2024.06.26 12:43 [4233540] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PL8Mr3JWNwKqSTfxpSaiwxaUVW6rmzysVs calculateAmountOutForSwapAndSendTokens() 282.21954029 L2MP
2024.06.26 12:43 [4233540] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getSwapFeeREADONLY()
2024.06.26 12:43 [4233540] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolStatusREADONLY()
2024.06.26 12:43 [4233540] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolAddressFromLpAssetREADONLY()
2024.06.26 12:43 [4233540] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getLpAssetFromPoolAssetsREADONLY()
2024.06.26 12:43 [4233540] invoke 3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU > 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 swap() 283.35295209 L2MP
2024.06.26 12:43 [4233540] transfer 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3P6owaNkvqMySosXwH2fQZUc6VcRXWhab6z swap() 0.001802 USDT-ERC20-PPT
2024.06.26 12:43 [4233540] transfer 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PEjHv3JGjcWNpYEEkif2w8NXV4kbhnoGgu swap() 0.001802 USDT-ERC20-PPT
2024.06.26 12:43 [4233540] transfer 3P6owaNkvqMySosXwH2fQZUc6VcRXWhab6z > 3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU calculateAmountOutForSwapAndSendTokens() 283.35295209 L2MP
2024.06.26 12:43 [4233540] invoke 3P6owaNkvqMySosXwH2fQZUc6VcRXWhab6z > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolLeaseConfigREADONLY()
2024.06.26 12:43 [4233540] invoke 3P6owaNkvqMySosXwH2fQZUc6VcRXWhab6z > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolLeaseConfigREADONLY()
2024.06.26 12:43 [4233540] invoke 3P6owaNkvqMySosXwH2fQZUc6VcRXWhab6z > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getSwapContractREADONLY()
2024.06.26 12:43 [4233540] invoke 3P6owaNkvqMySosXwH2fQZUc6VcRXWhab6z > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv isPoolSwapDisabledREADONLY()
2024.06.26 12:43 [4233540] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3P6owaNkvqMySosXwH2fQZUc6VcRXWhab6z calculateAmountOutForSwapAndSendTokens() 0.897623 USDT-ERC20-PPT
2024.06.26 12:43 [4233540] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getSwapFeeREADONLY()
2024.06.26 12:43 [4233540] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolStatusREADONLY()
2024.06.26 12:43 [4233540] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolAddressFromLpAssetREADONLY()
2024.06.26 12:43 [4233540] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getLpAssetFromPoolAssetsREADONLY()
2024.06.26 12:43 [4233540] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getLpAssetFromPoolAssetsREADONLY()
2024.06.26 12:43 [4233540] invoke 3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU > 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 swap() 0.901227 USDT-ERC20-PPT
2024.06.26 12:43 [4233540] invoke 3P3RVcSSGMb4poG3yMSvYxMQ2UnBa8FPpuL > 3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU swap() 0.901228 USDT-ERC20-PPT
2024.06.26 12:43 [4233540] invoke 3PLET96WmdYmHzqkEHB6Ufj1F2kREgnCzDc > 3PNASfdCWXvYfErZXoKhVbi7XrbJw1SJvfg (failed)
2024.06.26 12:43 [4233540] transfer 3PF1QWiN4A3CCJoKh1kGtqYqMNaBnRZbC6t > 3PKZ8bTojaHZTh6bxRsZdoUgyofDq5EUha3 claimAll() 132.00000000 L2MP
2024.06.26 12:43 [4233540] invoke 3PKZ8bTojaHZTh6bxRsZdoUgyofDq5EUha3 > 3PF1QWiN4A3CCJoKh1kGtqYqMNaBnRZbC6t claimAll()
2024.06.26 12:43 [4233540] transfer 3PCQJzzECYdnAPRTYjPLZizraiKNBMBn7KK > 3PAL39DGbXAFmQeNbm1XYLxy4o6RpW1S5fT 5600000.00 Edirham
2024.06.26 12:43 [4233539] fees GENERATOR > 3PBLuEzWkANpFJV9QkCKKqfNCyYoDvBSx4x 0.02060000 Waves
2024.06.26 12:43 [4233539] reward 3PBLuEzWkANpFJV9QkCKKqfNCyYoDvBSx4x > 3PFjHWuH6WXNJbwnfLHqNFBpwBS5dkYjTfv 2.00000000 Waves
2024.06.26 12:43 [4233539] reward 3PBLuEzWkANpFJV9QkCKKqfNCyYoDvBSx4x > 3PEgG7eZHLFhcfsTSaYxgRhZsh4AxMvA4Ms 2.00000000 Waves
2024.06.26 12:43 [4233539] reward GENERATOR > 3PBLuEzWkANpFJV9QkCKKqfNCyYoDvBSx4x 6.00000000 Waves
2024.06.26 12:43 [4233539] invoke 3P9R2SMDphUcyfWh5Lq4hg41aqkYYFUz9UB > 3PLZPmQMF7XWXin153cxRdvpm6S2d54Ebhs submitWavesCallEvent()
2024.06.26 12:43 [4233539] transfer 3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU > 3PJkErpQSzFp4n5rDP7uo9viebx8VtezLwS swap() 7.24487820 Waves
2024.06.26 12:43 [4233539] transfer 3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee > 3PLk7wu8tovkaszYGLZy4g4yKMMRMuHeUwg exchange() 0.00000565 Puzzle
2024.06.26 12:43 [4233539] transfer 3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee > 3P6J84oH51DzY6xk2mT5TheXRbrCwBMxonp exchange() 0.00001980 Puzzle
2024.06.26 12:43 [4233539] transfer 3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee > 3PKUxbZaSYfsR7wu2HaAgiirHYwAMupDrYW exchange() 0.00937316 Puzzle
2024.06.26 12:43 [4233539] transfer 3PFTbywqxtFfukX3HyT881g4iW5K4QL3FAS > 3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee unStake() 0.00939861 Puzzle
2024.06.26 12:43 [4233539] invoke 3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee > 3PFTbywqxtFfukX3HyT881g4iW5K4QL3FAS unStake()
2024.06.26 12:43 [4233539] invoke 3PBFHAHS4PZaXpS7gT5SPLnuPh7YPoJgCfE > 3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee stakeUnstake()
2024.06.26 12:43 [4233539] invoke 3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee > 3PBFHAHS4PZaXpS7gT5SPLnuPh7YPoJgCfE exchange()
2024.06.26 12:43 [4233539] invoke 3PKUxbZaSYfsR7wu2HaAgiirHYwAMupDrYW > 3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee exchange() 1.208168 XTN.
2024.06.26 12:43 [4233539] invoke 3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU > 3PKUxbZaSYfsR7wu2HaAgiirHYwAMupDrYW topUpReward() 1.208168 XTN.
2024.06.26 12:43 [4233539] transfer 3PE7NtJdmVq4yo47LKDqurQ8RLDCouvJCPB > 3PFWAVKmXjfHXyzJb12jCbhP4Uhi9t4uWiD swap() 0.009862 XTN.
2024.06.26 12:43 [4233539] transfer 3PE7NtJdmVq4yo47LKDqurQ8RLDCouvJCPB > 3PEtLVxDT8mxAh1SDAn8m7JTGNkdpkaFxBk swap() 0.002465 XTN.
2024.06.26 12:43 [4233539] transfer 3PE7NtJdmVq4yo47LKDqurQ8RLDCouvJCPB > 3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU swap() 1.208168 XTN.
2024.06.26 12:43 [4233539] invoke 3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU > 3PE7NtJdmVq4yo47LKDqurQ8RLDCouvJCPB swap() 0.02107125 Waves
2024.06.26 12:43 [4233539] transfer 3PHaNgomBkrvEL2QnuJarQVJa71wjw9qiqG > 3PLk7wu8tovkaszYGLZy4g4yKMMRMuHeUwg exchange() 0.00438588 Waves
2024.06.26 12:43 [4233539] transfer 3PHaNgomBkrvEL2QnuJarQVJa71wjw9qiqG > 3P6J84oH51DzY6xk2mT5TheXRbrCwBMxonp exchange() 0.01535059 Waves
2024.06.26 12:43 [4233539] transfer 3PHaNgomBkrvEL2QnuJarQVJa71wjw9qiqG > 3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU exchange() 7.26594945 Waves
2024.06.26 12:43 [4233539] lease 3PHaNgomBkrvEL2QnuJarQVJa71wjw9qiqG > 3PLXMk37Nn7Wtm3uAK1gbxDc87JZmTh4gnU stakeUnstake() 63446.22728025 Waves
2024.06.26 12:43 [4233539] unlease 3PHaNgomBkrvEL2QnuJarQVJa71wjw9qiqG > 3PLXMk37Nn7Wtm3uAK1gbxDc87JZmTh4gnU stakeUnstake() +63453.51296617 Waves
2024.06.26 12:43 [4233539] invoke 3PBFHAHS4PZaXpS7gT5SPLnuPh7YPoJgCfE > 3PHaNgomBkrvEL2QnuJarQVJa71wjw9qiqG stakeUnstake()
2024.06.26 12:43 [4233539] invoke 3PHaNgomBkrvEL2QnuJarQVJa71wjw9qiqG > 3PBFHAHS4PZaXpS7gT5SPLnuPh7YPoJgCfE exchange()
2024.06.26 12:43 [4233539] invoke 3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU > 3PHaNgomBkrvEL2QnuJarQVJa71wjw9qiqG exchange() 420.000000 XTN.
...

github/deemru/w8io/0e76f2f 
8.36 ms