0 txs
7 calls
constructor
No constructor.
functions
bmiToken
viewfunction bmiToken() view returns (address)
BRONZE_NFT_ID
viewfunction BRONZE_NFT_ID() view returns (uint256)
checkAvailableBMIReward
viewfunction checkAvailableBMIReward(address _userAddr) view returns (uint256)
checkMainNFTReward
viewfunction checkMainNFTReward(address _userAddr) view returns (uint256)
checkPlatinumNFTReward
viewfunction checkPlatinumNFTReward(address _userAddr) view returns (uint256)
existingNames
viewfunction existingNames(string) view returns (bool)
FIRST_MAX_SLASHING_FEE
viewfunction FIRST_MAX_SLASHING_FEE() view returns (uint256)
getAllTeamsDetails
viewfunction getAllTeamsDetails(uint256 _offset, uint256 _limit) view returns (tuple[] _teamDetailsArr)
getAllTeamsLength
viewfunction getAllTeamsLength() view returns (uint256)
getAllUsersInfo
viewfunction getAllUsersInfo(uint256 _offset, uint256 _limit) view returns (tuple[] _userInfos)
getAllUsersLength
viewfunction getAllUsersLength() view returns (uint256)
getEndLMTime
viewfunction getEndLMTime() view returns (uint256)
getMyTeamInfo
viewfunction getMyTeamInfo() view returns (tuple _myTeamInfo)
getMyTeamMembers
viewfunction getMyTeamMembers(uint256 _offset, uint256 _limit) view returns (address[] _teamMembers, uint256[] _memberStakedAmount)
getMyTeamsLength
viewfunction getMyTeamsLength() view returns (uint256)
getRewardsInfo
viewfunction getRewardsInfo(address user) view returns (tuple userRewardInfo)
getSlashingPercentage
viewfunction getSlashingPercentage() view returns (uint256)
getTopTeams
viewfunction getTopTeams() view returns (tuple[] teams)
getTopUsers
viewfunction getTopUsers() view returns (tuple[] users)
getTotalUserBMIReward
viewfunction getTotalUserBMIReward(address _userAddr) view returns (uint256)
GOLD_NFT_ID
viewfunction GOLD_NFT_ID() view returns (uint256)
injector
viewfunction injector() view returns (address _injector)
isLMEnded
viewfunction isLMEnded() view returns (bool)
isLMLasting
viewfunction isLMLasting() view returns (bool)
leaderboard
viewfunction leaderboard(uint256) view returns (address)
liquidityMiningNFT
viewfunction liquidityMiningNFT() view returns (address)
LM_DURATION
viewfunction LM_DURATION() view returns (uint256)
MAX_GROUP_LEADERS_SIZE
viewfunction MAX_GROUP_LEADERS_SIZE() view returns (uint256)
MAX_LEADERBOARD_SIZE
viewfunction MAX_LEADERBOARD_SIZE() view returns (uint256)
MAX_MONTH_TO_GET_REWARD
viewfunction MAX_MONTH_TO_GET_REWARD() view returns (uint256)
MAX_TOP_USERS_SIZE
viewfunction MAX_TOP_USERS_SIZE() view returns (uint256)
ONE_MONTH
viewfunction ONE_MONTH() view returns (uint256)
onERC1155BatchReceived
purefunction onERC1155BatchReceived(address operator, address from, uint256[] ids, uint256[] values, bytes data) pure returns (bytes4)
onERC1155Received
purefunction onERC1155Received(address operator, address from, uint256 id, uint256 value, bytes data) pure returns (bytes4)
owner
viewfunction owner() view returns (address)
PLATINUM_NFT_ID
viewfunction PLATINUM_NFT_ID() view returns (uint256)
policyBookRegistry
viewfunction policyBookRegistry() view returns (address)
SECOND_MAX_SLASHING_FEE
viewfunction SECOND_MAX_SLASHING_FEE() view returns (uint256)
SECOND_SLASHING_DURATION
viewfunction SECOND_SLASHING_DURATION() view returns (uint256)
SILVER_NFT_ID
viewfunction SILVER_NFT_ID() view returns (uint256)
startLiquidityMiningTime
viewfunction startLiquidityMiningTime() view returns (uint256)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
teamInfos
viewfunction teamInfos(address) view returns (string name, uint256 totalAmount)
TOP_1_REWARD
viewfunction TOP_1_REWARD() view returns (uint256)
TOP_2_5_REWARD
viewfunction TOP_2_5_REWARD() view returns (uint256)
TOP_6_10_REWARD
viewfunction TOP_6_10_REWARD() view returns (uint256)
topUsers
viewfunction topUsers(uint256) view returns (address)
usersTeamInfo
viewfunction usersTeamInfo(address) view returns (address teamAddr, uint256 stakedAmount, uint256 countOfRewardedMonth, bool isNFTDistributed)
__LiquidityMining_init
nonpayablefunction __LiquidityMining_init()
createTeam
nonpayablefunction createTeam(string _teamName)
deleteTeam
nonpayablefunction deleteTeam()
distributeBMIReward
nonpayablefunction distributeBMIReward()
distributeNFT
nonpayablefunction distributeNFT()
investSTBL
nonpayablefunction investSTBL(uint256 _tokensAmount, address _policyBookAddr)
joinTheTeam
nonpayablefunction joinTheTeam(address _referralLink)
renounceOwnership
nonpayablefunction renounceOwnership()
setDependencies
nonpayablefunction setDependencies(address _contractsRegistry)
setInjector
nonpayablefunction setInjector(address _injector)
startLiquidityMining
nonpayablefunction startLiquidityMining(uint256 startTimestamp)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
LeaderboardUpdated
event LeaderboardUpdated(uint256 _index, address _prevLink, address _newReferralLink)
MemberAdded
event MemberAdded(address _referralLink, address _newMember, uint256 _membersNumber)
NFTSent
event NFTSent(address _address, uint256 _nftIndex)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
RewardSent
event RewardSent(address _referralLink, address _address, uint256 _reward)
TeamCreated
event TeamCreated(address _referralLink, string _name)
TeamDeleted
event TeamDeleted(address _referralLink, string _name)
TeamInvested
event TeamInvested(address _referralLink, address _stblInvestor, uint256 _tokensAmount)
TopUsersUpdated
event TopUsersUpdated(uint256 _index, address _prevAddr, address _newAddr)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b50620000246301ffc9a760e01b6200003c565b62000036630271189760e51b6200003c565b620000c1565b6001600160e01b031980821614156200009c576040805162461bcd60e51b815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015290519081900360640190fd5b6001600160e01b0319166000908152606560205260409020805460ff19166001179055565b61477e80620000d16000396000f3fe608060405234801561001057600080fd5b50600436106103a45760003560e01c806395b968d1116101e9578063db8771421161010f578063f23a6e61116100ad578063f5b006171161007c578063f5b00617146106ea578063f796c2d9146106fd578063fd00a9cb14610705578063fe2290a91461070d576103a4565b8063f23a6e61146106a9578063f2fde38b146106bc578063f39dfb17146106cf578063f5453c46146106d7576103a4565b8063e796933e116100e9578063e796933e14610689578063e7ce0c4114610691578063f0710aae14610699578063f215ea2f146106a1576103a4565b8063db87714214610681578063e1fb3f08146104c5578063e5fb49a614610681576103a4565b8063bc197c8111610187578063cab32da511610156578063cab32da514610649578063d243d74114610651578063d77379f114610671578063db57ef7214610679576103a4565b8063bc197c8114610606578063bf36839914610626578063c4fecd2f14610639578063c500f2bf14610641576103a4565b8063aea6a5b8116101c3578063aea6a5b8146105ce578063b00b968b146105e3578063b48ec469146105eb578063b4b92fda146105f3576103a4565b806395b968d1146105ab578063972fa53f146105b357806399dac8c2146105c6576103a4565b80633e76b6fe116102ce578063715018a61161026c57806381b1006c1161023b57806381b1006c146105685780638389cb181461057d5780638cb941cc146105905780638da5cb5b146105a3576103a4565b8063715018a61461052457806372d92ebd1461052c5780637f1795a0146105345780637f2453bb14610555576103a4565b806348ea1ea5116102a857806348ea1ea5146104d55780634c5d5828146104f657806367c15faa14610509578063689dbf4e14610511576103a4565b80633e76b6fe146104b257806344f5ad92146104c557806346171610146104cd576103a4565b80631a6a4fd5116103465780632bf58a3a116103155780632bf58a3a1461046157806331192b1d146104745780633411c9df146104875780633d84e3f9146104aa576103a4565b80631a6a4fd5146104295780631ff1ce0c1461043157806320988cef146104515780632abe13ea14610459576103a4565b806307e2ad2f1161038257806307e2ad2f146103fa578063083bb96f1461040f57806309a8ae9b146104175780630cbd7e8414610421576103a4565b806301ffc9a7146103a9578063056e4ceb146103d2578063079f0b68146103f2575b600080fd5b6103bc6103b7366004613d32565b610715565b6040516103c991906141e3565b60405180910390f35b6103e56103e0366004613ba5565b610738565b6040516103c99190614663565b6103e56107fb565b610402610800565b6040516103c99190613f46565b6103e561080f565b61041f610814565b005b6103e56108be565b6103e56108d7565b61044461043f366004613e76565b6108e7565b6040516103c99190614146565b6103e5610ab0565b6103e5610ab7565b61041f61046f366004613e47565b610ac5565b6103e5610482366004613ba5565b610d59565b61049a610495366004613ba5565b610d8f565b6040516103c9949392919061403b565b610402610dc3565b61041f6104c0366004613ba5565b610dd2565b6103e5610f0e565b610402610f13565b6104e86104e3366004613e76565b610f38565b6040516103c9929190614063565b6103bc610504366004613d9a565b6110a7565b6103e56110c7565b61040261051f366004613e2f565b6110d5565b61041f6110ff565b6103e56111bd565b610547610542366004613ba5565b6111c2565b6040516103c9929190614222565b6103e5610563366004613ba5565b611269565b6105706112dc565b6040516103c991906140e6565b61041f61058b366004613ba5565b61138f565b61041f61059e366004613ba5565b6115cd565b61040261166d565b6103e561167c565b61041f6105c1366004613d5a565b61168c565b6103e5611833565b6105d6611841565b6040516103c991906145a0565b6103e5611891565b6103e561189d565b6103e5610601366004613ba5565b6118a9565b610619610614366004613bdd565b6118dd565b6040516103c991906141ee565b610402610634366004613e2f565b6118f1565b6103e5611901565b6103e5611908565b61041f6119f6565b61066461065f366004613ba5565b611b42565b6040516103c991906145dc565b610402611d10565b6103e5611d1f565b6103e5611d4d565b6103e5611d52565b61041f611d57565b6103bc611f3e565b6103e5611f5d565b6106196106b7366004613c98565b611f63565b61041f6106ca366004613ba5565b611f75565b61044461208a565b6105706106e5366004613e76565b61222c565b61041f6106f8366004613e2f565b6122d7565b61041f612350565b6103bc612406565b6103e5612426565b6001600160e01b0319811660009081526065602052604090205460ff165b919050565b6000610742611f3e565b61074e57506000610733565b6001600160a01b03808316600090815260716020526040812080546001909101549216919061077c8361242c565b9050600a81148061078b575081155b1561079c5760009350505050610733565b6001600160a01b0383166000908152607060205260408120600101546107c3908490612483565b905060006107f06b033b2e3c9fd0803ce80000006107ea846107e4876124b5565b90612525565b9061257e565b979650505050505050565b600281565b606f546001600160a01b031681565b600481565b600054610100900460ff168061082d575061082d6125e5565b8061083b575060005460ff16155b6108765760405162461bcd60e51b815260040180806020018281038252602e8152602001806146fa602e913960400191505060405180910390fd5b600054610100900460ff161580156108a1576000805460ff1961ff0019909116610100171660011790555b6108a96125f6565b80156108bb576000805461ff00191690555b50565b606c546000906108d19062127500612693565b90505b90565b6b019d971e4fe8401e7400000081565b606060006109128461090c6108fc60686126ed565b6109068888612693565b906126f8565b9061270e565b905083810367ffffffffffffffff8111801561092d57600080fd5b5060405190808252806020026020018201604052801561096757816020015b6109546138e3565b81526020019060019003908161094c5790505b509150835b81811015610aa857600061098160688361271e565b6040805160a0810182526001600160a01b038084168083526000908152607160209081528482205490921681526070825283902080548451601f600260001960018516156101000201909316929092049182018490048402810184019095528085529495509193818501939291830182828015610a3f5780601f10610a1457610100808354040283529160200191610a3f565b820191906000526020600020905b815481529060010190602001808311610a2257829003601f168201915b50505091835250506001600160a01b038316600090815260716020908152604091829020600101549083015201610a7583611269565b8152602001610a83836118a9565b8152508487840381518110610a9457fe5b60209081029190910101525060010161096c565b505092915050565b62278d0081565b691fc3842bd1f071c0000081565b60008211610aee5760405162461bcd60e51b8152600401610ae59061427b565b60405180910390fd5b610af6612406565b610b125760405162461bcd60e51b8152600401610ae590614415565b606f54604051634c3b9f1960e01b81526001600160a01b0390911690634c3b9f1990610b42908490600401613f46565b60206040518083038186803b158015610b5a57600080fd5b505afa158015610b6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b929190613d12565b610bae5760405162461bcd60e51b8152600401610ae5906143d1565b33600090815260716020526040902080546001909101546001600160a01b039091169081610bee5760405162461bcd60e51b8152600401610ae59061444a565b6000610c1c610c156b033b2e3c9fd0803ce80000006107ea610c0e611908565b8990612525565b869061272a565b905060008111610c3e5760405162461bcd60e51b8152600401610ae5906142b2565b6001600160a01b038316600090815260706020526040902060010154610c649082612693565b6001600160a01b038416600090815260706020526040902060010155610c8a8282612693565b33600090815260716020526040902060010155610ca5612787565b610cae83612aae565b610cb783612dea565b7f2234cef8618e7bf2f6d1e81a856aaa19a56fcc894655e65ae8156f0e445b5fa7833383604051610cea93929190613fdf565b60405180910390a16040516377d0fcc560e11b81526001600160a01b0385169063efa1f98a90610d209033908990600401613fc6565b600060405180830381600087803b158015610d3a57600080fd5b505af1158015610d4e573d6000803e3d6000fd5b505050505050505050565b600080610d65836130af565b905080610d76576000915050610733565b610d8860056107ea836107e487610738565b9392505050565b60716020526000908152604090208054600182015460028301546003909301546001600160a01b0390921692909160ff1684565b606e546001600160a01b031681565b6001600160a01b038116610df85760405162461bcd60e51b8152600401610ae5906144fb565b610e03606a826130f6565b610e1f5760405162461bcd60e51b8152600401610ae590614244565b336000908152607160205260409020546001600160a01b031615610e555760405162461bcd60e51b8152600401610ae5906144b8565b6001600160a01b0381166000908152607360205260409020610e77903361310b565b5033600081815260716020526040902080546001600160a01b0319166001600160a01b038416179055610eac9060689061310b565b506001600160a01b03811660009081526073602052604090207f3fc9e3f2d1444e4075d88bda1858759d978d0e115018a47c50da381c6b8501609082903390610ef4906126ed565b604051610f0393929190613fdf565b60405180910390a150565b600581565b7fd6b8f2e074594ceb05d47c27386969754b6ad0c15e5eb8f691399cd0be980e765490565b336000908152607160209081526040808320546001600160a01b0316835260739091528120606091829190610f7d8661090c610f73856126ed565b6109068a8a612693565b90508581038067ffffffffffffffff81118015610f9957600080fd5b50604051908082528060200260200182016040528015610fc3578160200160208202803683370190505b5094508067ffffffffffffffff81118015610fdd57600080fd5b50604051908082528060200260200182016040528015611007578160200160208202803683370190505b509350865b8281101561109c576000611020858361271e565b905080878a84038151811061103157fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060716000826001600160a01b03166001600160a01b0316815260200190815260200160002060010154868a84038151811061108857fe5b60209081029190910101525060010161100c565b505050509250929050565b805160208183018101805160728252928201919093012091525460ff1681565b69043c33c193756480000081565b606781815481106110e557600080fd5b6000918252602090912001546001600160a01b0316905081565b611107613120565b6001600160a01b031661111861166d565b6001600160a01b031614611173576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6033546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603380546001600160a01b0319169055565b600181565b60706020908152600091825260409182902080548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084529092918391908301828280156112595780601f1061122e57610100808354040283529160200191611259565b820191906000526020600020905b81548152906001019060200180831161123c57829003601f168201915b5050505050908060010154905082565b60008061127583613124565b905061127f611f3e565b801561128c5750600a8114155b80156112bd57506001600160a01b03808416600090815260716020526040902054600a916112ba911661242c565b14155b156112d3576112cb816131c3565b915050610733565b50600092915050565b6066546060908067ffffffffffffffff811180156112f957600080fd5b5060405190808252806020026020018201604052801561133357816020015b61132061391b565b8152602001906001900390816113185790505b50915060005b8181101561138a5761136b6066828154811061135157fe5b6000918252602090912001546001600160a01b031661320c565b83828151811061137757fe5b6020908102919091010152600101611339565b505090565b6000611399610f13565b90506001600160a01b03811615806113b957506001600160a01b03811633145b61140a576040805162461bcd60e51b815260206004820152601a60248201527f446570656e64616e743a204e6f7420616e20696e6a6563746f72000000000000604482015290519081900360640190fd5b816001600160a01b0316632fe83b026040518163ffffffff1660e01b815260040160206040518083038186803b15801561144357600080fd5b505afa158015611457573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061147b9190613bc1565b606d60006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816001600160a01b0316637506b8656040518163ffffffff1660e01b815260040160206040518083038186803b1580156114da57600080fd5b505afa1580156114ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115129190613bc1565b606e60006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816001600160a01b031663dc9c563f6040518163ffffffff1660e01b815260040160206040518083038186803b15801561157157600080fd5b505afa158015611585573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a99190613bc1565b606f80546001600160a01b0319166001600160a01b03929092169190911790555050565b60006115d7610f13565b90506001600160a01b03811615806115f757506001600160a01b03811633145b611648576040805162461bcd60e51b815260206004820152601a60248201527f446570656e64616e743a204e6f7420616e20696e6a6563746f72000000000000604482015290519081900360640190fd5b507fd6b8f2e074594ceb05d47c27386969754b6ad0c15e5eb8f691399cd0be980e7655565b6033546001600160a01b031690565b6b0332e8a789bc7ef49e00000081565b611694612406565b6116b05760405162461bcd60e51b8152600401610ae590614415565b80158015906116c0575060328111155b6116dc5760405162461bcd60e51b8152600401610ae590614569565b336000908152607160205260409020546001600160a01b0316156117125760405162461bcd60e51b8152600401610ae5906144b8565b60728282604051611724929190613f1a565b9081526040519081900360200190205460ff16156117545760405162461bcd60e51b8152600401610ae5906142e9565b33600090815260706020526040902061176e908383613953565b5033600081815260716020526040902080546001600160a01b0319168217905561179a90606a9061310b565b503360008181526073602052604090206117b39161310b565b506001607283836040516117c8929190613f1a565b908152604051908190036020019020805491151560ff199092169190911790556117f360683361310b565b507f3613f8ac0cc52c4428042fe442f289fc083df030de5859192dce0bfb7bc3879533838360405161182793929190613f5a565b60405180910390a15050565b690a968163f0a57b40000081565b6118496139db565b336000908152607160205260409020805461186c906001600160a01b031661320c565b808352600182015460208085019190915201516118889061242c565b60408301525090565b60006108d160686126ed565b60006108d1606a6126ed565b60006118b3611f3e565b80156118c8575060056118c58361333f565b14155b156118d557506001610733565b506000919050565b63bc197c8160e01b98975050505050505050565b606681815481106110e557600080fd5b6212750081565b6000806119136108be565b90508061025842011015611977576000611938606c544261272a90919063ffffffff16565b9050600061196161194e6212750061025861272a565b6b019d971e4fe8401e740000009061257e565b905061196d8282612525565b93505050506108d4565b600061198f6119888361025861272a565b429061272a565b905060006119bb6102586107ea6b0332e8a789bc7ef49e0000006b019d971e4fe8401e7400000061272a565b905061196d6119e06b019d971e4fe8401e740000006119da8585612525565b90612693565b6b0332e8a789bc7ef49e0000006126f8565b5090565b6119fe611f3e565b611a1a5760405162461bcd60e51b8152600401610ae590614357565b336000818152607160205260408120546001600160a01b031691611a3d90610d59565b905080611a5c5760405162461bcd60e51b8152600401610ae590614320565b606d5460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb90611a8e9033908590600401613fc6565b602060405180830381600087803b158015611aa857600080fd5b505af1158015611abc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ae09190613d12565b507f8432952c9ff89738f893e867fa3c19fde7223207c2f40ba8131f18d6ba1f3f6e823383604051611b1493929190613fdf565b60405180910390a1611b25336130af565b336000908152607160205260409020600201805490910190555050565b611b4a613a02565b611b52611f3e565b611b5b57610733565b6001600160a01b038083166000908152607160209081526040808320549093168252607081529082902080548351601f600260001960018516156101000201909316929092049182018490048402810184019094528084529091830182828015611c065780601f10611bdb57610100808354040283529160200191611c06565b820191906000526020600020905b815481529060010190602001808311611be957829003601f168201915b50505091835250611c18905082610738565b6020820152611c2682610d59565b60408201526000611c386119886108be565b90506000611c4e60016119da8462278d0061257e565b905080600511611c5f576000611c64565b806005035b60608401819052611c76576000611c89565b611c838262278d00613396565b62278d00035b60808401526020808401516001600160a01b03861660009081526071909252604090912060020154611cc1916005916107ea91612525565b60a0840152611ccf84611269565b60c0840152611cdd846118a9565b60e084015250506001600160a01b03821660009081526071602052604090206003015460ff161515610100820152919050565b606d546001600160a01b031681565b336000908152607160209081526040808320546001600160a01b03168352607390915281206108d1906126ed565b600a81565b600381565b336000908152607360205260409020611d6f906126ed565b600114611d8e5760405162461bcd60e51b8152600401610ae590614532565b3360009081526071602052604090206001015415611dbe5760405162461bcd60e51b8152600401610ae590614481565b3360009081526070602090815260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845260609392830182828015611e545780601f10611e2957610100808354040283529160200191611e54565b820191906000526020600020905b815481529060010190602001808311611e3757829003601f168201915b50505050509050611e6f33606a6133fd90919063ffffffff16565b5033600090815260716020908152604080832080546001600160a01b03191681556001810184905560028101849055600301805460ff1916905560739091528120908181611ebd8282613a50565b5050336000908152607060205260408120611eda93509150613a6e565b607281604051611eea9190613f2a565b908152604051908190036020019020805460ff19169055611f0c6068336133fd565b507f90b18aa6801e3d2e1854fab651173e34ec59f8e139f6b4831487598b0e18a8df3382604051610f03929190613f9a565b6000606c546000141580156108d1575042611f576108be565b10905090565b61025881565b63f23a6e6160e01b9695505050505050565b611f7d613120565b6001600160a01b0316611f8e61166d565b6001600160a01b031614611fe9576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b03811661202e5760405162461bcd60e51b81526004018080602001828103825260268152602001806146d46026913960400191505060405180910390fd5b6033546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603380546001600160a01b0319166001600160a01b0392909216919091179055565b6067546060908067ffffffffffffffff811180156120a757600080fd5b506040519080825280602002602001820160405280156120e157816020015b6120ce6138e3565b8152602001906001900390816120c65790505b50915060005b8181101561138a576000606782815481106120fe57fe5b6000918252602080832091909101546040805160a0810182526001600160a01b039283168082528086526071855282862054909316855260708452938190208054825160026101006001841615026000190190921691909104601f8101869004860282018601909352828152929550848401939091908301828280156121c55780601f1061219a576101008083540402835291602001916121c5565b820191906000526020600020905b8154815290600101906020018083116121a857829003601f168201915b50505091835250506001600160a01b0383166000908152607160209081526040918290206001015490830152016121fb83611269565b8152602001612209836118a9565b81525084838151811061221857fe5b6020908102919091010152506001016120e7565b606060006122418461090c6108fc606a6126ed565b905083810367ffffffffffffffff8111801561225c57600080fd5b5060405190808252806020026020018201604052801561229657816020015b61228361391b565b81526020019060019003908161227b5790505b509150835b81811015610aa8576122b66122b1606a8361271e565b61320c565b83868303815181106122c457fe5b602090810291909101015260010161229b565b6122df613120565b6001600160a01b03166122f061166d565b6001600160a01b03161461234b576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b606c55565b612358611f3e565b6123745760405162461bcd60e51b8152600401610ae590614357565b336000908152607160205260409020600381015460ff16156123a85760405162461bcd60e51b8152600401610ae59061439a565b60038101805460ff1916600117905560006123c233613124565b9050600a81141580156123ea57508154600a906123e7906001600160a01b031661242c565b14155b156123f9576123f98133613412565b612402336134c5565b5050565b6000606c546000141580156108d157504261241f6108be565b1015905090565b606c5481565b606654600090815b81811015612479576066818154811061244957fe5b6000918252602090912001546001600160a01b03858116911614156124715791506107339050565b600101612434565b50600a9392505050565b600081612492575060006124af565b6124ac826107ea856b033b2e3c9fd0803ce8000000612525565b90505b92915050565b60006124bf611f3e565b15806124cb5750600a82145b156124d857506000610733565b816124ee5750691fc3842bd1f071c00000610733565b6000821180156124fe5750600582105b156125145750690a968163f0a57b400000610733565b5069043c33c1937564800000610733565b600082612534575060006124af565b8282028284828161254157fe5b04146124ac5760405162461bcd60e51b81526004018080602001828103825260218152602001806147286021913960400191505060405180910390fd5b60008082116125d4576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b8183816125dd57fe5b049392505050565b60006125f0306135b4565b15905090565b600054610100900460ff168061260f575061260f6125e5565b8061261d575060005460ff16155b6126585760405162461bcd60e51b815260040180806020018281038252602e8152602001806146fa602e913960400191505060405180910390fd5b600054610100900460ff16158015612683576000805460ff1961ff0019909116610100171660011790555b61268b6135ba565b6108a961365a565b6000828201838110156124ac576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006124af82613753565b600081831061270757816124ac565b5090919050565b60008183101561270757816124ac565b60006124ac8383613757565b600082821115612781576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60675480612814576067805460018101825560009182527f9787eeb91fe3101235e4a76063c7023ecb40f923f97916639c598592fa30d6ae0180546001600160a01b031916339081179091556040517f3d6e0550d41b42962d1790085da00397746346795c9916fcf0abfde70e7fd50392612806929091829190614203565b60405180910390a150612aac565b600061281f3361333f565b90506005811415612872575060678054600181810183556000929092527f9787eeb91fe3101235e4a76063c7023ecb40f923f97916639c598592fa30d6ae0180546001600160a01b031916331790558101905b8061287e575050612aac565b606060678054806020026020016040519081016040528092919081815260200182805480156128d657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116128b8575b5050336000908152607160208190526040822060010154865196975060001989019690955090935090915085908590811061290d57fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060010154811115612a6f575b6071600084848151811061295157fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060010154811115612a0957600083838151811061299257fe5b60200260200101519050338484815181106129a957fe5b60200260200101906001600160a01b031690816001600160a01b031681525050808484600101815181106129d957fe5b6001600160a01b0390921660209283029190910190910152826129fc5750612a09565b5060001990910190612941565b8251612a1c906067906020860190613ab2565b507f3d6e0550d41b42962d1790085da00397746346795c9916fcf0abfde70e7fd50382848460010181518110612a4e57fe5b602002602001015133604051612a6693929190614203565b60405180910390a15b6005851115612aa6576067805480612a8357fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b50505050505b565b60665480612b40576066805460018101825560009182527f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e943540180546001600160a01b0319166001600160a01b0385161790556040517fe4bf70b9a6e74e444a1f494985f7098012acacb41969d316e7c2f1bd70c01b1c91612b329181908690614203565b60405180910390a1506108bb565b6000612b4b8361242c565b9050600a811415612ba7575060668054600180820183556000929092527f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e943540180546001600160a01b0319166001600160a01b0385161790558101905b80612bb35750506108bb565b60606066805480602002602001604051908101604052809291908181526020018280548015612c0b57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612bed575b5050506001600160a01b03871660009081526070602081905260408220600101548551959650600019880195909450909250859085908110612c4957fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060010154811115612dab575b60706000848481518110612c8d57fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060010154811115612d45576000838381518110612cce57fe5b6020026020010151905086848481518110612ce557fe5b60200260200101906001600160a01b031690816001600160a01b03168152505080848460010181518110612d1557fe5b6001600160a01b039092166020928302919091019091015282612d385750612d45565b5060001990910190612c7d565b8251612d58906066906020860190613ab2565b507fe4bf70b9a6e74e444a1f494985f7098012acacb41969d316e7c2f1bd70c01b1c82848460010181518110612d8a57fe5b602002602001015188604051612da293929190614203565b60405180910390a15b600a851115612de2576066805480612dbf57fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b505050505050565b6001600160a01b03811660009081526070602052604090206002015480612e4c57506001600160a01b03811660009081526070602090815260408220600201805460018101825590835291200180546001600160a01b031916331790556108bb565b6000612e5733613124565b9050600a811415612ea557506001600160a01b03821660009081526070602090815260408220600201805460018181018355918452919092200180546001600160a01b031916331790558101905b80612eb15750506108bb565b6001600160a01b038316600090815260706020908152604091829020600201805483518184028101840190945280845260609392830182828015612f1e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612f00575b50503360009081526071602081905260408220600101548651969750600019890196909550909350909150859085908110612f5557fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060010154811115613082575b60716000848481518110612f9957fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060010154811115613051576000838381518110612fda57fe5b6020026020010151905033848481518110612ff157fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508084846001018151811061302157fe5b6001600160a01b0390921660209283029190910190910152826130445750613051565b5060001990910190612f89565b6001600160a01b0386166000908152607060209081526040909120845161308092600290920191860190613ab2565b505b600a851115612de2576001600160a01b0386166000908152607060205260409020600201805480612dbf57fe5b6001600160a01b0381166000908152607160205260408120600201546124af906130f06130e960016119da62278d006107ea6119886108be565b60056126f8565b9061272a565b60006124ac836001600160a01b0384166137bb565b60006124ac836001600160a01b0384166137d3565b3390565b6001600160a01b03808216600090815260716020908152604080832054909316808352607090915291812060020154909190825b818110156131b8576001600160a01b038316600090815260706020526040902060020180548290811061318757fe5b6000918252602090912001546001600160a01b03868116911614156131b0579250610733915050565b600101613158565b50600a949350505050565b60006131cd611f3e565b15806131d95750600a82145b156131e657506000610733565b816131f357506002610733565b600482101561320457506003610733565b506004610733565b61321461391b565b604080516001600160a01b03841660009081526070602090815290839020805460026001821615610100026000190190911604601f8101839004909202830160c090810190945260a083018281529293849392908401828280156132b95780601f1061328e576101008083540402835291602001916132b9565b820191906000526020600020905b81548152906001019060200180831161329c57829003601f168201915b50505050508152602001836001600160a01b031681526020016132ff60736000866001600160a01b03166001600160a01b031681526020019081526020016000206126ed565b81526001600160a01b0384166000908152607060209081526040918290206001015490830152016133376133328561242c565b6124b5565b905292915050565b606754600090815b8181101561338c576067818154811061335c57fe5b6000918252602090912001546001600160a01b03858116911614156133845791506107339050565b600101613347565b5060059392505050565b60008082116133ec576040805162461bcd60e51b815260206004820152601860248201527f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000604482015290519081900360640190fd5b8183816133f557fe5b069392505050565b60006124ac836001600160a01b03841661381d565b600061341d836131c3565b606e54604051637921219560e11b81529192506001600160a01b03169063f242432a9061345590309086908690600190600401614003565b600060405180830381600087803b15801561346f57600080fd5b505af1158015613483573d6000803e3d6000fd5b505050507f607dc088d776f10d22a60794926bd9ea1d9fc36a5603e266f90cc6424233500882826040516134b8929190613fc6565b60405180910390a1505050565b60675460005b818110156135af57606781815481106134e057fe5b6000918252602090912001546001600160a01b03848116911614156135a757606e54604051637921219560e11b81526001600160a01b039091169063f242432a9061353690309087906001908190600401614003565b600060405180830381600087803b15801561355057600080fd5b505af1158015613564573d6000803e3d6000fd5b505050507f607dc088d776f10d22a60794926bd9ea1d9fc36a5603e266f90cc6424233500883600160405161359a929190613fc6565b60405180910390a16135af565b6001016134cb565b505050565b3b151590565b600054610100900460ff16806135d357506135d36125e5565b806135e1575060005460ff16155b61361c5760405162461bcd60e51b815260040180806020018281038252602e8152602001806146fa602e913960400191505060405180910390fd5b600054610100900460ff161580156108a9576000805460ff1961ff00199091166101001716600117905580156108bb576000805461ff001916905550565b600054610100900460ff168061367357506136736125e5565b80613681575060005460ff16155b6136bc5760405162461bcd60e51b815260040180806020018281038252602e8152602001806146fa602e913960400191505060405180910390fd5b600054610100900460ff161580156136e7576000805460ff1961ff0019909116610100171660011790555b60006136f1613120565b603380546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35080156108bb576000805461ff001916905550565b5490565b815460009082106137995760405162461bcd60e51b81526004018080602001828103825260228152602001806146b26022913960400191505060405180910390fd5b8260000182815481106137a857fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b60006137df83836137bb565b613815575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556124af565b5060006124af565b600081815260018301602052604081205480156138d9578354600019808301919081019060009087908390811061385057fe5b906000526020600020015490508087600001848154811061386d57fe5b60009182526020808320909101929092558281526001898101909252604090209084019055865487908061389d57fe5b600190038181906000526020600020016000905590558660010160008781526020019081526020016000206000905560019450505050506124af565b60009150506124af565b6040518060a0016040528060006001600160a01b03168152602001606081526020016000815260200160008152602001600081525090565b6040518060a001604052806060815260200160006001600160a01b031681526020016000815260200160008152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f01602090048101928261398957600085556139cf565b82601f106139a25782800160ff198235161785556139cf565b828001600101855582156139cf579182015b828111156139cf5782358255916020019190600101906139b4565b506119f2929150613b07565b60405180606001604052806139ee61391b565b815260200160008152602001600081525090565b60405180610120016040528060608152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000151581525090565b50805460008255906000526020600020908101906108bb9190613b07565b50805460018160011615610100020316600290046000825580601f10613a9457506108bb565b601f0160209004906000526020600020908101906108bb9190613b07565b8280548282559060005260206000209081019282156139cf579160200282015b828111156139cf57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613ad2565b5b808211156119f25760008155600101613b08565b60008083601f840112613b2d578182fd5b50813567ffffffffffffffff811115613b44578182fd5b6020830191508360208083028501011115613b5e57600080fd5b9250929050565b60008083601f840112613b76578182fd5b50813567ffffffffffffffff811115613b8d578182fd5b602083019150836020828501011115613b5e57600080fd5b600060208284031215613bb6578081fd5b81356124ac8161469c565b600060208284031215613bd2578081fd5b81516124ac8161469c565b60008060008060008060008060a0898b031215613bf8578384fd5b8835613c038161469c565b97506020890135613c138161469c565b9650604089013567ffffffffffffffff80821115613c2f578586fd5b613c3b8c838d01613b1c565b909850965060608b0135915080821115613c53578586fd5b613c5f8c838d01613b1c565b909650945060808b0135915080821115613c77578384fd5b50613c848b828c01613b65565b999c989b5096995094979396929594505050565b60008060008060008060a08789031215613cb0578182fd5b8635613cbb8161469c565b95506020870135613ccb8161469c565b94506040870135935060608701359250608087013567ffffffffffffffff811115613cf4578283fd5b613d0089828a01613b65565b979a9699509497509295939492505050565b600060208284031215613d23578081fd5b815180151581146124ac578182fd5b600060208284031215613d43578081fd5b81356001600160e01b0319811681146124ac578182fd5b60008060208385031215613d6c578182fd5b823567ffffffffffffffff811115613d82578283fd5b613d8e85828601613b65565b90969095509350505050565b60006020808385031215613dac578182fd5b823567ffffffffffffffff80821115613dc3578384fd5b818501915085601f830112613dd6578384fd5b813581811115613de257fe5b604051601f8201601f1916810185018381118282101715613dff57fe5b6040528181528382018501881015613e15578586fd5b818585018683013790810190930193909352509392505050565b600060208284031215613e40578081fd5b5035919050565b60008060408385031215613e59578182fd5b823591506020830135613e6b8161469c565b809150509250929050565b60008060408385031215613e88578182fd5b50508035926020909101359150565b15159052565b60008151808452613eb581602086016020860161466c565b601f01601f19169290920160200192915050565b6000815160a08452613ede60a0850182613e9d565b6020848101516001600160a01b031690860152604080850151908601526060808501519086015260809384015193909401929092525090919050565b6000828483379101908152919050565b60008251613f3c81846020870161466c565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03841681526040602082018190528101829052600082846060840137818301606090810191909152601f909201601f1916010192915050565b6001600160a01b0383168152604060208201819052600090613fbe90830184613e9d565b949350505050565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b0394851681529290931660208301526040820152606081019190915260a06080820181905260009082015260c00190565b6001600160a01b03949094168452602084019290925260408301521515606082015260800190565b604080825283519082018190526000906020906060840190828701845b828110156140a55781516001600160a01b031684529284019290840190600101614080565b50505083810382850152845180825285830191830190845b818110156140d9578351835292840192918401916001016140bd565b5090979650505050505050565b6000602080830181845280855180835260408601915060408482028701019250838701855b8281101561413957603f19888603018452614127858351613ec9565b9450928501929085019060010161410b565b5092979650505050505050565b60208082528251828201819052600091906040908185019080840286018301878501865b838110156141d557888303603f19018552815180516001600160a01b031684528781015160a0898601819052906141a382870182613e9d565b838a0151878b01526060808501519088015260809384015193909601929092525050938601939086019060010161416a565b509098975050505050505050565b901515815260200190565b6001600160e01b031991909116815260200190565b9283526001600160a01b03918216602084015216604082015260600190565b6000604082526142356040830185613e9d565b90508260208301529392505050565b60208082526019908201527f4c4d3a205468657265206973206e6f2073756368207465616d00000000000000604082015260600190565b60208082526019908201527f4c4d3a20546f6b656e7320616d6f756e74206973207a65726f00000000000000604082015260600190565b6020808252601f908201527f4c4d3a2046696e616c20746f6b656e7320616d6f756e74206973207a65726f00604082015260600190565b6020808252601c908201527f4c4d3a205465616d206e616d6520616c72656164792065786973747300000000604082015260600190565b6020808252601b908201527f4c4d3a204e6f20424d492072657761726420617661696c61626c650000000000604082015260600190565b60208082526023908201527f4c4d3a204c4d45206469646e2774207374617274206f72207374696c6c20676f604082015262696e6760e81b606082015260800190565b6020808252601e908201527f4c4d3a204e465420697320616c72656164792064697374726962757465640000604082015260600190565b60208082526024908201527f4c4d3a2043616e277420696e7665737420746f206e6f74206120506f6c696379604082015263426f6f6b60e01b606082015260800190565b6020808252818101527f4c4d3a204c4d45206469646e2774207374617274206f722066696e6973686564604082015260600190565b6020808252601a908201527f4c4d3a205573657220697320776974686f75742061207465616d000000000000604082015260600190565b6020808252601b908201527f4c4d3a20556e61626c6520746f2072656d6f76652061207465616d0000000000604082015260600190565b60208082526023908201527f4c4d3a20546865207573657220697320616c726561647920696e20746865207460408201526265616d60e81b606082015260800190565b60208082526019908201527f4c4d3a20496e76616c696420726566657272616c206c696e6b00000000000000604082015260600190565b6020808252601b908201527f4c4d3a20556e61626c6520746f2064656c6574652061207465616d0000000000604082015260600190565b6020808252601f908201527f4c4d3a205465616d206e616d6520697320746f6f206c6f6e672f73686f727400604082015260600190565b6000602082528251606060208401526145bc6080840182613ec9565b905060208401516040840152604084015160608401528091505092915050565b60006020825282516101208060208501526145fb610140850183613e9d565b9150602085015160408501526040850151606085015260608501516080850152608085015160a085015260a085015160c085015260c085015160e085015260e085015161010081818701528087015191505061465982860182613e97565b5090949350505050565b90815260200190565b60005b8381101561468757818101518382015260200161466f565b83811115614696576000848401525b50505050565b6001600160a01b03811681146108bb57600080fdfe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e64734f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220d02a38ad3f3270dbc669035fe30f571d2835810d6b6dd9ace96f97e02fba093264736f6c63430007040033