Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 26 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Set Hex Staking | 18158306 | 455 days ago | IN | 0 ETH | 0.0002239 | ||||
Stake End | 15976929 | 761 days ago | IN | 0 ETH | 0.00534994 | ||||
Stake End | 15489688 | 830 days ago | IN | 0 ETH | 0.00261053 | ||||
Stake End | 15450082 | 837 days ago | IN | 0 ETH | 0.00393322 | ||||
Stake Start | 15416978 | 842 days ago | IN | 0 ETH | 0.004451 | ||||
Approve Address1 | 15292080 | 862 days ago | IN | 0 ETH | 0.00018945 | ||||
Stake End | 15291995 | 862 days ago | IN | 0 ETH | 0.00123033 | ||||
Stake Start | 15270088 | 865 days ago | IN | 0 ETH | 0.00521256 | ||||
Stake Start | 15258782 | 867 days ago | IN | 0 ETH | 0.00386731 | ||||
Stake Start | 15258200 | 867 days ago | IN | 0 ETH | 0.00318756 | ||||
Stake Start | 15251157 | 868 days ago | IN | 0 ETH | 0.00305173 | ||||
Stake Start | 15241501 | 870 days ago | IN | 0 ETH | 0.00136676 | ||||
Stake Start | 15241490 | 870 days ago | IN | 0 ETH | 0.00018681 | ||||
Stake Start | 15240641 | 870 days ago | IN | 0 ETH | 0.00249624 | ||||
Stake End | 15240565 | 870 days ago | IN | 0 ETH | 0.00098233 | ||||
Allow Hedron | 15240558 | 870 days ago | IN | 0 ETH | 0.00023222 | ||||
Stake Start | 15240501 | 870 days ago | IN | 0 ETH | 0.00180637 | ||||
Set Hex Staking | 15240482 | 870 days ago | IN | 0 ETH | 0.00020505 | ||||
Set Hex Staking | 15234302 | 871 days ago | IN | 0 ETH | 0.00031823 | ||||
Transfer Custodi... | 15234074 | 871 days ago | IN | 0 ETH | 0.00087219 | ||||
Set Octa Swap Ad... | 15212690 | 874 days ago | IN | 0 ETH | 0.00459296 | ||||
Approve Address2 | 15211442 | 874 days ago | IN | 0 ETH | 0.00028963 | ||||
Finalize Octa To... | 15041425 | 901 days ago | IN | 0 ETH | 0.00114374 | ||||
Set Octa Address | 15041418 | 901 days ago | IN | 0 ETH | 0.00207191 | ||||
Approve Address1 | 15041416 | 901 days ago | IN | 0 ETH | 0.00222648 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
OctaStaking
Compiler Version
v0.8.15+commit.e14f2714
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-07-20 */ //SPDX-License-Identifier: UNLICENSED /* THE CONTRACT, SUPPORTING WEBSITES, AND ALL OTHER INTERFACES (THE SOFTWARE) IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. BY INTERACTING WITH THE SOFTWARE YOU ARE ASSERTING THAT YOU BEAR ALL THE RISKS ASSOCIATED WITH DOING SO. AN INFINITE NUMBER OF UNPREDICTABLE THINGS MAY GO WRONG WHICH COULD POTENTIALLY RESULT IN CRITICAL FAILURE AND FINANCIAL LOSS. BY INTERACTING WITH THE SOFTWARE YOU ARE ASSERTING THAT YOU AGREE THERE IS NO RECOURSE AVAILABLE AND YOU WILL NOT SEEK IT. INTERACTING WITH THE SOFTWARE SHALL NOT BE CONSIDERED AN INVESTMENT OR A COMMON ENTERPRISE. INSTEAD, INTERACTING WITH THE SOFTWARE IS EQUIVALENT TO CARPOOLING WITH FRIENDS TO SAVE ON GAS AND EXPERIENCE THE BENEFITS OF THE H.O.V. LANE. YOU SHALL HAVE NO EXPECTATION OF PROFIT OR ANY TYPE OF GAIN FROM THE WORK OF OTHER PEOPLE. */ pragma solidity ^0.8.2; abstract contract ReentrancyGuard { uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor() { _status = _NOT_ENTERED; } modifier nonReentrant() { require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); _status = _ENTERED; _; _status = _NOT_ENTERED; } } contract OctaAA { function swapAndReceive(address, uint256) public returns (uint256) {} } contract TOKEN1 { function balanceOf(address account) external view returns (uint256) {} function transfer(address recipient, uint256 amount) external returns (bool) {} } contract TOKEN2 { function balanceOf(address account) external view returns (uint256) {} function transfer(address recipient, uint256 amount) external returns (bool) {} function approve(address spender, uint256 amount) external returns (bool) {} function transferFrom(address sender, address recipient, uint256 amount) external returns (bool) {} function stakeStart(uint256 newStakedHearts, uint256 newStakedDays) external {} function stakeEnd(uint256 stakeIndex, uint40 stakeIdParam) external {} function stakeGoodAccounting(address stakerAddr, uint256 stakeIndex, uint40 stakeIdParam) external {} function stakeCount(address stakerAddr) external view returns (uint256) {} function stakeLists(address owner, uint256 stakeIndex) external view returns (uint40, uint72, uint72, uint16, uint16, uint16, bool) {} function currentDay() external view returns (uint256) {} } contract TOKEN3 { function balanceOf(address account) external view returns (uint256) {} function transfer(address recipient, uint256 amount) external returns (bool) {} function mintNative(uint256 stakeIndex, uint40 stakeId) external returns (uint256) {} } contract OctaStaking is ReentrancyGuard { modifier onlyCustodian1() { require(msg.sender == custodian1); _; } modifier onlyCustodian2() { require(msg.sender == custodian2); _; } modifier isStakeActivated { require(stakeActivated == true); _; } event onStakeStart( address indexed customerAddress, uint256 uniqueID, uint256 timestamp ); event onStakeEnd( address indexed customerAddress, uint256 uniqueID, uint256 returnAmount, uint256 octaAmount, uint256 timestamp ); struct Stats { uint256 staked; uint256 activeStakes; } mapping(address => Stats) public playerStats; uint256 public totalStakeBalance = 0; uint256 public totalPlayer = 0; address public custodian1; address public custodian2; address public approvedAddress1; address public approvedAddress2; TOKEN1 octaToken; TOKEN2 hexToken; TOKEN3 hedronToken; OctaAA octaSwap; address public octaSwapAddress; bool public finalizeOctaAddress = false; bool public hasTransferred = false; struct StakeStore { uint40 stakeID; uint256 hexAmount; uint72 stakeShares; uint16 lockedDay; uint16 stakedDays; uint16 unlockedDay; bool started; bool ended; uint256 bonusMultiplier; bool swapAll; } uint256 public currentBonusMultiplier = 10; uint256 public minimumHex = 100000000000; bool public stakeActivated = false; bool public hedronAllowed = true; mapping(address => mapping(uint256 => StakeStore)) public stakeLists; constructor() ReentrancyGuard() { custodian1 = address(0xf989A6939f5fC6d85118E912aB28a699EBdEa9Ce); custodian2 = address(0xfE8D614431E5fea2329B05839f29B553b1Cb99A2); octaToken = TOKEN1(address(0x0)); hexToken = TOKEN2(address(0x2b591e99afE9f32eAA6214f7B7629768c40Eeb39)); hedronToken = TOKEN3(address(0x3819f64f282bf135d62168C1e513280dAF905e06)); octaSwapAddress = address(0x2b591e99afE9f32eAA6214f7B7629768c40Eeb39); octaSwap = OctaAA(octaSwapAddress); } function transferCustodianTokens() onlyCustodian1 external { require(hasTransferred == false); uint256 _amount = octaToken.balanceOf(address(this)) / 20; octaToken.transfer(address(0xcAAB2DCA6fC1af9D43972095aA148738a854abe2), _amount); octaToken.transfer(custodian2, _amount); hasTransferred = true; stakeActivated = true; } function checkAndTransferHEX(uint256 _amount) private { require(hexToken.transferFrom(msg.sender, address(this), _amount) == true, "transfer must succeed"); } function stakeStart(uint256 _amount, uint256 _days, bool _swapAll) nonReentrant isStakeActivated external { require(_amount >= minimumHex && _amount <= 4722366482869645213695); require(hexToken.stakeCount(address(this)) < type(uint256).max); checkAndTransferHEX(_amount); hexToken.stakeStart(_amount, _days); uint256 _stakeIndex; uint40 _stakeID; uint72 _stakeShares; uint16 _lockedDay; uint16 _stakedDays; _stakeIndex = hexToken.stakeCount(address(this)); _stakeIndex -= 1; (_stakeID,,_stakeShares,_lockedDay,_stakedDays,,) = hexToken.stakeLists(address(this), _stakeIndex); uint256 _uniqueID = uint256(keccak256(abi.encodePacked(_stakeID, _stakeShares))); require(stakeLists[msg.sender][_uniqueID].started == false); stakeLists[msg.sender][_uniqueID].started = true; stakeLists[msg.sender][_uniqueID] = StakeStore(_stakeID, _amount, _stakeShares, _lockedDay, _stakedDays, uint16(0), true, false, currentBonusMultiplier, _swapAll); totalStakeBalance = totalStakeBalance + _amount; playerStats[msg.sender].activeStakes += 1; if (playerStats[msg.sender].staked == 0) { totalPlayer++; } playerStats[msg.sender].staked += _amount; emit onStakeStart(msg.sender, _uniqueID, block.timestamp); } function _stakeSecurityCheck(address _stakerAddress, uint256 _stakeIndex, uint40 _stakeIdParam, uint256 _uniqueID) private view returns (uint16) { uint40 _stakeID; uint72 _stakedHearts; uint72 _stakeShares; uint16 _lockedDay; uint16 _stakedDays; uint16 _unlockedDay; (_stakeID,_stakedHearts,_stakeShares,_lockedDay,_stakedDays,_unlockedDay,) = hexToken.stakeLists(address(this), _stakeIndex); require(stakeLists[_stakerAddress][_uniqueID].started == true && stakeLists[_stakerAddress][_uniqueID].ended == false); require(stakeLists[_stakerAddress][_uniqueID].stakeID == _stakeIdParam && _stakeIdParam == _stakeID); require(stakeLists[_stakerAddress][_uniqueID].hexAmount == uint256(_stakedHearts)); require(stakeLists[_stakerAddress][_uniqueID].stakeShares == _stakeShares); require(stakeLists[_stakerAddress][_uniqueID].lockedDay == _lockedDay); require(stakeLists[_stakerAddress][_uniqueID].stakedDays == _stakedDays); return _unlockedDay; } function _stakeEnd(address _stakerAddress, uint256 _stakeIndex, uint40 _stakeIdParam, uint256 _uniqueID) private { uint16 _unlockedDay = _stakeSecurityCheck(_stakerAddress, _stakeIndex, _stakeIdParam, _uniqueID); if (_unlockedDay == 0) { stakeLists[_stakerAddress][_uniqueID].unlockedDay = uint16(hexToken.currentDay()); } else { stakeLists[_stakerAddress][_uniqueID].unlockedDay = _unlockedDay; } uint256 _balance = hexToken.balanceOf(address(this)); if (hedronAllowed == true) { hedronToken.mintNative(_stakeIndex, _stakeIdParam); hedronToken.transfer(_stakerAddress, hedronToken.balanceOf(address(this))); } hexToken.stakeEnd(_stakeIndex, _stakeIdParam); // revert or 0 or less or equal or more hex returned. stakeLists[_stakerAddress][_uniqueID].ended = true; uint256 _amount = hexToken.balanceOf(address(this)) - _balance; uint256 _stakedAmount = stakeLists[_stakerAddress][_uniqueID].hexAmount; uint256 _bonusDividend; if (_amount <= _stakedAmount) { hexToken.transfer(_stakerAddress, _amount); } else if (_amount > _stakedAmount) { uint256 _bonusAmount; uint256 _difference = _amount - _stakedAmount; if (stakeLists[_stakerAddress][_uniqueID].swapAll) { _bonusDividend = octaSwap.swapAndReceive(_stakerAddress, _amount); _bonusDividend = _difference * _bonusDividend / _amount; } else { hexToken.transfer(_stakerAddress, _stakedAmount); _bonusDividend = octaSwap.swapAndReceive(_stakerAddress, _difference); } _bonusAmount = _bonusDividend * stakeLists[_stakerAddress][_uniqueID].bonusMultiplier / 100; if (_bonusAmount > 0) { if (octaToken.balanceOf(address(this)) >= _bonusAmount) { octaToken.transfer(_stakerAddress, _bonusAmount); } else { octaToken.transfer(_stakerAddress, octaToken.balanceOf(address(this))); } } } totalStakeBalance = totalStakeBalance - _stakedAmount; playerStats[_stakerAddress].activeStakes -= 1; emit onStakeEnd(_stakerAddress, _uniqueID, _amount, _bonusDividend, block.timestamp); } function stakeEnd(uint256 _stakeIndex, uint40 _stakeIdParam, uint256 _uniqueID) nonReentrant external { _stakeEnd(msg.sender, _stakeIndex, _stakeIdParam, _uniqueID); } function stakeGoodAccounting(address _stakerAddress, uint256 _stakeIndex, uint40 _stakeIdParam, uint256 _uniqueID) nonReentrant external { hexToken.stakeGoodAccounting(address(this), _stakeIndex, _stakeIdParam); _stakeEnd(_stakerAddress, _stakeIndex, _stakeIdParam, _uniqueID); } function setHexStaking(bool _stakeActivated) onlyCustodian1 external { stakeActivated = _stakeActivated; } function allowHedron(bool _state) onlyCustodian1 external { hedronAllowed = _state; } function setMinimumStakingAmount(uint256 _minimumHex) onlyCustodian1 external { minimumHex = _minimumHex; } function setBonusMultiplier(uint256 _newBonusMultiplier) onlyCustodian1 external { require(_newBonusMultiplier >= 0 || _newBonusMultiplier <= 100); currentBonusMultiplier = _newBonusMultiplier; } function approveAddress1(address _proposedAddress) onlyCustodian1 external { approvedAddress1 = _proposedAddress; } function approveAddress2(address _proposedAddress) onlyCustodian2 external { approvedAddress2 = _proposedAddress; } function setOctaSwapAddress() onlyCustodian1 external { require(approvedAddress1 == approvedAddress2); hexToken.approve(octaSwapAddress, 0); hexToken.approve(approvedAddress1, type(uint256).max); octaSwapAddress = approvedAddress1; octaSwap = OctaAA(octaSwapAddress); } function setOctaAddress(address _proposedAddress) onlyCustodian1 external { require(finalizeOctaAddress == false); octaToken = TOKEN1(_proposedAddress); } function finalizeOctaTokenAddress() onlyCustodian1 external { finalizeOctaAddress = true; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"customerAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"uniqueID","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"returnAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"octaAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"onStakeEnd","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"customerAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"uniqueID","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"onStakeStart","type":"event"},{"inputs":[{"internalType":"bool","name":"_state","type":"bool"}],"name":"allowHedron","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_proposedAddress","type":"address"}],"name":"approveAddress1","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_proposedAddress","type":"address"}],"name":"approveAddress2","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"approvedAddress1","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"approvedAddress2","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentBonusMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"custodian1","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"custodian2","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"finalizeOctaAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"finalizeOctaTokenAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"hasTransferred","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hedronAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumHex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"octaSwapAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"playerStats","outputs":[{"internalType":"uint256","name":"staked","type":"uint256"},{"internalType":"uint256","name":"activeStakes","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newBonusMultiplier","type":"uint256"}],"name":"setBonusMultiplier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_stakeActivated","type":"bool"}],"name":"setHexStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minimumHex","type":"uint256"}],"name":"setMinimumStakingAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_proposedAddress","type":"address"}],"name":"setOctaAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setOctaSwapAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stakeActivated","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_stakeIndex","type":"uint256"},{"internalType":"uint40","name":"_stakeIdParam","type":"uint40"},{"internalType":"uint256","name":"_uniqueID","type":"uint256"}],"name":"stakeEnd","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_stakerAddress","type":"address"},{"internalType":"uint256","name":"_stakeIndex","type":"uint256"},{"internalType":"uint40","name":"_stakeIdParam","type":"uint40"},{"internalType":"uint256","name":"_uniqueID","type":"uint256"}],"name":"stakeGoodAccounting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"stakeLists","outputs":[{"internalType":"uint40","name":"stakeID","type":"uint40"},{"internalType":"uint256","name":"hexAmount","type":"uint256"},{"internalType":"uint72","name":"stakeShares","type":"uint72"},{"internalType":"uint16","name":"lockedDay","type":"uint16"},{"internalType":"uint16","name":"stakedDays","type":"uint16"},{"internalType":"uint16","name":"unlockedDay","type":"uint16"},{"internalType":"bool","name":"started","type":"bool"},{"internalType":"bool","name":"ended","type":"bool"},{"internalType":"uint256","name":"bonusMultiplier","type":"uint256"},{"internalType":"bool","name":"swapAll","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_days","type":"uint256"},{"internalType":"bool","name":"_swapAll","type":"bool"}],"name":"stakeStart","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalPlayer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStakeBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"transferCustodianTokens","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405260006002819055600355600c805461ffff60a01b19169055600a600d5564174876e800600e55600f805461ffff191661010017905534801561004557600080fd5b506001600055600480546001600160a01b031990811673f989a6939f5fc6d85118e912ab28a699ebdea9ce1790915560058054821673fe8d614431e5fea2329b05839f29b553b1cb99a21790556008805482169055600980548216732b591e99afe9f32eaa6214f7b7629768c40eeb39908117909155600a80548316733819f64f282bf135d62168c1e513280daf905e06179055600c8054831682179055600b8054909216179055612039806100fc6000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c8063a10c3839116100f9578063d74f954a11610097578063edd9614711610071578063edd9614714610494578063f0f4606e146104a7578063fd58e63a146104ba578063feed18ff146104cd57600080fd5b8063d74f954a14610470578063dbc9ae0314610483578063ea26e7961461048c57600080fd5b8063c2452abd116100d3578063c2452abd14610406578063c494a08014610418578063cdafbbb614610421578063d36a4ac91461045d57600080fd5b8063a10c3839146103cd578063a371f3ab146103e0578063b8f82c85146103f357600080fd5b80635af78833116101665780636f2f6b39116101405780636f2f6b391461038a5780637c180a681461039e5780639abc186a146103b15780639e2131c6146103ba57600080fd5b80635af788331461033f5780636185e0dc1461036a5780636603f1661461037757600080fd5b80632fc6bd87116101a25780632fc6bd87146102fa578063322608401461030d57806334949cc1146103155780634b82cab71461032c57600080fd5b8063079d9075146101c95780632607443b146101d35780632e70ecdd146102d6575b600080fd5b6101d16104e0565b005b6102656101e1366004611ccf565b60106020908152600092835260408084209091529082529020805460018201546002830154600384015460049094015464ffffffffff9093169391926001600160481b0382169261ffff600160481b8404811693600160581b8104821693600160681b82049092169260ff600160781b8304811693600160801b909304811692168a565b6040805164ffffffffff909b168b5260208b01999099526001600160481b039097169789019790975261ffff94851660608901529284166080880152921660a086015290151560c0850152151560e08401526101008301919091521515610120820152610140015b60405180910390f35b600c546102ea90600160a01b900460ff1681565b60405190151581526020016102cd565b6101d1610308366004611cf9565b6106b2565b6101d16106ce565b61031e60025481565b6040519081526020016102cd565b6101d161033a366004611d20565b610828565b600754610352906001600160a01b031681565b6040516001600160a01b0390911681526020016102cd565b600f546102ea9060ff1681565b6101d1610385366004611d44565b610852565b600c546102ea90600160a81b900460ff1681565b6101d16103ac366004611d7d565b610e1c565b61031e600d5481565b6101d16103c8366004611d7d565b610e55565b600554610352906001600160a01b031681565b600c54610352906001600160a01b031681565b600654610352906001600160a01b031681565b600f546102ea90610100900460ff1681565b61031e60035481565b61044861042f366004611d7d565b6001602081905260009182526040909120805491015482565b604080519283526020830191909152016102cd565b6101d161046b366004611d20565b610e8e565b600454610352906001600160a01b031681565b61031e600e5481565b6101d1610ebf565b6101d16104a2366004611dab565b610eeb565b6101d16104b5366004611d7d565b610f9a565b6101d16104c8366004611cf9565b610fea565b6101d16104db366004611df1565b611006565b6004546001600160a01b031633146104f757600080fd5b600c54600160a81b900460ff161561050e57600080fd5b6008546040516370a0823160e01b81523060048201526000916014916001600160a01b03909116906370a0823190602401602060405180830381865afa15801561055c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105809190611e29565b61058a9190611e58565b60085460405163a9059cbb60e01b81529192506001600160a01b03169063a9059cbb906105d19073caab2dca6fc1af9d43972095aa148738a854abe2908590600401611e7a565b6020604051808303816000875af11580156105f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106149190611e93565b5060085460055460405163a9059cbb60e01b81526001600160a01b039283169263a9059cbb9261064b929116908590600401611e7a565b6020604051808303816000875af115801561066a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068e9190611e93565b5050600c805460ff60a81b1916600160a81b179055600f805460ff19166001179055565b6004546001600160a01b031633146106c957600080fd5b600e55565b6004546001600160a01b031633146106e557600080fd5b6007546006546001600160a01b0390811691161461070257600080fd5b600954600c5460405163095ea7b360e01b81526001600160a01b039283169263095ea7b39261073992911690600090600401611e7a565b6020604051808303816000875af1158015610758573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077c9190611e93565b5060095460065460405163095ea7b360e01b81526001600160a01b039283169263095ea7b3926107b59291169060001990600401611e7a565b6020604051808303816000875af11580156107d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f89190611e93565b50600654600c80546001600160a01b039092166001600160a01b03199283168117909155600b8054909216179055565b6004546001600160a01b0316331461083f57600080fd5b600f805460ff1916911515919091179055565b60026000540361087d5760405162461bcd60e51b815260040161087490611eb0565b60405180910390fd5b6002600055600f5460ff16151560011461089657600080fd5b600e5483101580156108af57506001600160481b038311155b6108b857600080fd5b60095460405163033060d960e41b8152306004820152600019916001600160a01b0316906333060d9090602401602060405180830381865afa158015610902573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109269190611e29565b1061093057600080fd5b61093983611043565b600954604051630a54871760e31b815260048101859052602481018490526001600160a01b03909116906352a438b890604401600060405180830381600087803b15801561098657600080fd5b505af115801561099a573d6000803e3d6000fd5b505060095460405163033060d960e41b8152306004820152600093508392508291829182916001600160a01b0316906333060d9090602401602060405180830381865afa1580156109ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a139190611e29565b9450610a20600186611ee7565b600954604051632607443b60e01b81529196506001600160a01b031690632607443b90610a539030908990600401611e7a565b60e060405180830381865afa158015610a70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a949190611f27565b50506040516001600160d81b031960d887901b1660208201526001600160b81b031960b885901b16602582015294985091965094509250600091602e01905060408051808303601f19018152918152815160209283012033600090815260108452828120828252909352912060020154909150600160781b900460ff1615610b1b57600080fd5b600160106000336001600160a01b03166001600160a01b031681526020019081526020016000206000838152602001908152602001600020600201600f6101000a81548160ff0219169083151502179055506040518061014001604052808664ffffffffff1681526020018a8152602001856001600160481b031681526020018461ffff1681526020018361ffff168152602001600061ffff168152602001600115158152602001600015158152602001600d54815260200188151581525060106000336001600160a01b03166001600160a01b03168152602001908152602001600020600083815260200190815260200160002060008201518160000160006101000a81548164ffffffffff021916908364ffffffffff1602179055506020820151816001015560408201518160020160006101000a8154816001600160481b0302191690836001600160481b0316021790555060608201518160020160096101000a81548161ffff021916908361ffff160217905550608082015181600201600b6101000a81548161ffff021916908361ffff16021790555060a082015181600201600d6101000a81548161ffff021916908361ffff16021790555060c082015181600201600f6101000a81548160ff02191690831515021790555060e08201518160020160106101000a81548160ff02191690831515021790555061010082015181600301556101208201518160040160006101000a81548160ff02191690831515021790555090505088600254610d569190611fb3565b60025533600090815260016020819052604082208101805491929091610d7d908490611fb3565b9091555050336000908152600160205260408120549003610dae5760038054906000610da883611fcb565b91905055505b33600090815260016020526040812080548b9290610dcd908490611fb3565b90915550506040805182815242602082015233917ffcb8123dad95f24c74ef07cb7e9635f8bfabd8882383ff341ce8999eb7aa3860910160405180910390a25050600160005550505050505050565b6004546001600160a01b03163314610e3357600080fd5b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610e6c57600080fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6004546001600160a01b03163314610ea557600080fd5b600f80549115156101000261ff0019909216919091179055565b6004546001600160a01b03163314610ed657600080fd5b600c805460ff60a01b1916600160a01b179055565b600260005403610f0d5760405162461bcd60e51b815260040161087490611eb0565b60026000556009546040516332e7b8d960e11b81523060048201526024810185905264ffffffffff841660448201526001600160a01b03909116906365cf71b290606401600060405180830381600087803b158015610f6b57600080fd5b505af1158015610f7f573d6000803e3d6000fd5b50505050610f8f8484848461110a565b505060016000555050565b6004546001600160a01b03163314610fb157600080fd5b600c54600160a01b900460ff1615610fc857600080fd5b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6004546001600160a01b0316331461100157600080fd5b600d55565b6002600054036110285760405162461bcd60e51b815260040161087490611eb0565b60026000556110393384848461110a565b5050600160005550565b6009546040516323b872dd60e01b8152336004820152306024820152604481018390526001600160a01b03909116906323b872dd906064016020604051808303816000875af115801561109a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110be9190611e93565b15156001146111075760405162461bcd60e51b81526020600482015260156024820152741d1c985b9cd9995c881b5d5cdd081cdd58d8d95959605a1b6044820152606401610874565b50565b600061111885858585611a30565b90508061ffff166000036111e757600960009054906101000a90046001600160a01b03166001600160a01b0316635c9302c96040518163ffffffff1660e01b8152600401602060405180830381865afa158015611179573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119d9190611e29565b6001600160a01b03861660009081526010602090815260408083208684529091529020600201805461ffff92909216600160681b0261ffff60681b19909216919091179055611226565b6001600160a01b03851660009081526010602090815260408083208584529091529020600201805461ffff60681b1916600160681b61ffff8416021790555b6009546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801561126f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112939190611e29565b600f54909150610100900460ff1615156001036113ff57600a54604051633e04ae6960e21b81526004810187905264ffffffffff861660248201526001600160a01b039091169063f812b9a4906044016020604051808303816000875af1158015611302573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113269190611e29565b50600a546040516370a0823160e01b81523060048201526001600160a01b039091169063a9059cbb90889083906370a0823190602401602060405180830381865afa158015611379573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139d9190611e29565b6040518363ffffffff1660e01b81526004016113ba929190611e7a565b6020604051808303816000875af11580156113d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113fd9190611e93565b505b600954604051631a1804d160e11b81526004810187905264ffffffffff861660248201526001600160a01b039091169063343009a290604401600060405180830381600087803b15801561145257600080fd5b505af1158015611466573d6000803e3d6000fd5b505050506001600160a01b038681166000908152601060209081526040808320878452909152808220600201805460ff60801b1916600160801b17905560095490516370a0823160e01b8152306004820152919284929116906370a0823190602401602060405180830381865afa1580156114e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115099190611e29565b6115139190611ee7565b6001600160a01b03881660009081526010602090815260408083208884529091528120600101549192508183116115bf5760095460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb90611576908c908790600401611e7a565b6020604051808303816000875af1158015611595573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b99190611e93565b50611990565b81831115611990576000806115d48486611ee7565b6001600160a01b038c1660009081526010602090815260408083208c845290915290206004015490915060ff161561169757600b54604051625525a160e01b81526001600160a01b0390911690625525a190611636908e908990600401611e7a565b6020604051808303816000875af1158015611655573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116799190611e29565b9250846116868483611fe4565b6116909190611e58565b9250611783565b60095460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb906116c9908e908890600401611e7a565b6020604051808303816000875af11580156116e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170c9190611e93565b50600b54604051625525a160e01b81526001600160a01b0390911690625525a19061173d908e908590600401611e7a565b6020604051808303816000875af115801561175c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117809190611e29565b92505b6001600160a01b038b1660009081526010602090815260408083208b84529091529020600301546064906117b79085611fe4565b6117c19190611e58565b9150811561198d576008546040516370a0823160e01b815230600482015283916001600160a01b0316906370a0823190602401602060405180830381865afa158015611811573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118359190611e29565b106118b55760085460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb9061186c908e908690600401611e7a565b6020604051808303816000875af115801561188b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118af9190611e93565b5061198d565b6008546040516370a0823160e01b81523060048201526001600160a01b039091169063a9059cbb908d9083906370a0823190602401602060405180830381865afa158015611907573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061192b9190611e29565b6040518363ffffffff1660e01b8152600401611948929190611e7a565b6020604051808303816000875af1158015611967573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198b9190611e93565b505b50505b8160025461199e9190611ee7565b6002556001600160a01b0389166000908152600160208190526040822081018054919290916119ce908490611ee7565b909155505060408051878152602081018590529081018290524260608201526001600160a01b038a16907f3cfedd205f4a938d3e671ceda6c16675f20d3c7aa1bf7190f572afd767dba2489060800160405180910390a2505050505050505050565b600954604051632607443b60e01b81526000918291829182918291829182916001600160a01b031690632607443b90611a6f9030908e90600401611e7a565b60e060405180830381865afa158015611a8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab09190611f27565b50809650819750829850839950849a50859b50505050505050601060008c6001600160a01b03166001600160a01b031681526020019081526020016000206000898152602001908152602001600020600201600f9054906101000a900460ff16151560011515148015611b5157506001600160a01b038b1660009081526010602090815260408083208b8452909152902060020154600160801b900460ff16155b611b5a57600080fd5b6001600160a01b038b1660009081526010602090815260408083208b845290915290205464ffffffffff8a81169116148015611ba357508564ffffffffff168964ffffffffff16145b611bac57600080fd5b6001600160a01b038b1660009081526010602090815260408083208b84529091529020600101546001600160481b03861614611be757600080fd5b6001600160a01b038b1660009081526010602090815260408083208b84529091529020600201546001600160481b03858116911614611c2557600080fd5b6001600160a01b038b1660009081526010602090815260408083208b845290915290206002015461ffff848116600160481b9092041614611c6557600080fd5b6001600160a01b038b1660009081526010602090815260408083208b845290915290206002015461ffff838116600160581b9092041614611ca557600080fd5b9a9950505050505050505050565b80356001600160a01b0381168114611cca57600080fd5b919050565b60008060408385031215611ce257600080fd5b611ceb83611cb3565b946020939093013593505050565b600060208284031215611d0b57600080fd5b5035919050565b801515811461110757600080fd5b600060208284031215611d3257600080fd5b8135611d3d81611d12565b9392505050565b600080600060608486031215611d5957600080fd5b83359250602084013591506040840135611d7281611d12565b809150509250925092565b600060208284031215611d8f57600080fd5b611d3d82611cb3565b64ffffffffff8116811461110757600080fd5b60008060008060808587031215611dc157600080fd5b611dca85611cb3565b9350602085013592506040850135611de181611d98565b9396929550929360600135925050565b600080600060608486031215611e0657600080fd5b833592506020840135611e1881611d98565b929592945050506040919091013590565b600060208284031215611e3b57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600082611e7557634e487b7160e01b600052601260045260246000fd5b500490565b6001600160a01b03929092168252602082015260400190565b600060208284031215611ea557600080fd5b8151611d3d81611d12565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b600082821015611ef957611ef9611e42565b500390565b80516001600160481b0381168114611cca57600080fd5b805161ffff81168114611cca57600080fd5b600080600080600080600060e0888a031215611f4257600080fd5b8751611f4d81611d98565b9650611f5b60208901611efe565b9550611f6960408901611efe565b9450611f7760608901611f15565b9350611f8560808901611f15565b9250611f9360a08901611f15565b915060c0880151611fa381611d12565b8091505092959891949750929550565b60008219821115611fc657611fc6611e42565b500190565b600060018201611fdd57611fdd611e42565b5060010190565b6000816000190483118215151615611ffe57611ffe611e42565b50029056fea264697066735822122076db3e68708af05786b66831063657c9681c9beb40f36d388fddf0676810fb0064736f6c634300080f0033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101c45760003560e01c8063a10c3839116100f9578063d74f954a11610097578063edd9614711610071578063edd9614714610494578063f0f4606e146104a7578063fd58e63a146104ba578063feed18ff146104cd57600080fd5b8063d74f954a14610470578063dbc9ae0314610483578063ea26e7961461048c57600080fd5b8063c2452abd116100d3578063c2452abd14610406578063c494a08014610418578063cdafbbb614610421578063d36a4ac91461045d57600080fd5b8063a10c3839146103cd578063a371f3ab146103e0578063b8f82c85146103f357600080fd5b80635af78833116101665780636f2f6b39116101405780636f2f6b391461038a5780637c180a681461039e5780639abc186a146103b15780639e2131c6146103ba57600080fd5b80635af788331461033f5780636185e0dc1461036a5780636603f1661461037757600080fd5b80632fc6bd87116101a25780632fc6bd87146102fa578063322608401461030d57806334949cc1146103155780634b82cab71461032c57600080fd5b8063079d9075146101c95780632607443b146101d35780632e70ecdd146102d6575b600080fd5b6101d16104e0565b005b6102656101e1366004611ccf565b60106020908152600092835260408084209091529082529020805460018201546002830154600384015460049094015464ffffffffff9093169391926001600160481b0382169261ffff600160481b8404811693600160581b8104821693600160681b82049092169260ff600160781b8304811693600160801b909304811692168a565b6040805164ffffffffff909b168b5260208b01999099526001600160481b039097169789019790975261ffff94851660608901529284166080880152921660a086015290151560c0850152151560e08401526101008301919091521515610120820152610140015b60405180910390f35b600c546102ea90600160a01b900460ff1681565b60405190151581526020016102cd565b6101d1610308366004611cf9565b6106b2565b6101d16106ce565b61031e60025481565b6040519081526020016102cd565b6101d161033a366004611d20565b610828565b600754610352906001600160a01b031681565b6040516001600160a01b0390911681526020016102cd565b600f546102ea9060ff1681565b6101d1610385366004611d44565b610852565b600c546102ea90600160a81b900460ff1681565b6101d16103ac366004611d7d565b610e1c565b61031e600d5481565b6101d16103c8366004611d7d565b610e55565b600554610352906001600160a01b031681565b600c54610352906001600160a01b031681565b600654610352906001600160a01b031681565b600f546102ea90610100900460ff1681565b61031e60035481565b61044861042f366004611d7d565b6001602081905260009182526040909120805491015482565b604080519283526020830191909152016102cd565b6101d161046b366004611d20565b610e8e565b600454610352906001600160a01b031681565b61031e600e5481565b6101d1610ebf565b6101d16104a2366004611dab565b610eeb565b6101d16104b5366004611d7d565b610f9a565b6101d16104c8366004611cf9565b610fea565b6101d16104db366004611df1565b611006565b6004546001600160a01b031633146104f757600080fd5b600c54600160a81b900460ff161561050e57600080fd5b6008546040516370a0823160e01b81523060048201526000916014916001600160a01b03909116906370a0823190602401602060405180830381865afa15801561055c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105809190611e29565b61058a9190611e58565b60085460405163a9059cbb60e01b81529192506001600160a01b03169063a9059cbb906105d19073caab2dca6fc1af9d43972095aa148738a854abe2908590600401611e7a565b6020604051808303816000875af11580156105f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106149190611e93565b5060085460055460405163a9059cbb60e01b81526001600160a01b039283169263a9059cbb9261064b929116908590600401611e7a565b6020604051808303816000875af115801561066a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068e9190611e93565b5050600c805460ff60a81b1916600160a81b179055600f805460ff19166001179055565b6004546001600160a01b031633146106c957600080fd5b600e55565b6004546001600160a01b031633146106e557600080fd5b6007546006546001600160a01b0390811691161461070257600080fd5b600954600c5460405163095ea7b360e01b81526001600160a01b039283169263095ea7b39261073992911690600090600401611e7a565b6020604051808303816000875af1158015610758573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077c9190611e93565b5060095460065460405163095ea7b360e01b81526001600160a01b039283169263095ea7b3926107b59291169060001990600401611e7a565b6020604051808303816000875af11580156107d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f89190611e93565b50600654600c80546001600160a01b039092166001600160a01b03199283168117909155600b8054909216179055565b6004546001600160a01b0316331461083f57600080fd5b600f805460ff1916911515919091179055565b60026000540361087d5760405162461bcd60e51b815260040161087490611eb0565b60405180910390fd5b6002600055600f5460ff16151560011461089657600080fd5b600e5483101580156108af57506001600160481b038311155b6108b857600080fd5b60095460405163033060d960e41b8152306004820152600019916001600160a01b0316906333060d9090602401602060405180830381865afa158015610902573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109269190611e29565b1061093057600080fd5b61093983611043565b600954604051630a54871760e31b815260048101859052602481018490526001600160a01b03909116906352a438b890604401600060405180830381600087803b15801561098657600080fd5b505af115801561099a573d6000803e3d6000fd5b505060095460405163033060d960e41b8152306004820152600093508392508291829182916001600160a01b0316906333060d9090602401602060405180830381865afa1580156109ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a139190611e29565b9450610a20600186611ee7565b600954604051632607443b60e01b81529196506001600160a01b031690632607443b90610a539030908990600401611e7a565b60e060405180830381865afa158015610a70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a949190611f27565b50506040516001600160d81b031960d887901b1660208201526001600160b81b031960b885901b16602582015294985091965094509250600091602e01905060408051808303601f19018152918152815160209283012033600090815260108452828120828252909352912060020154909150600160781b900460ff1615610b1b57600080fd5b600160106000336001600160a01b03166001600160a01b031681526020019081526020016000206000838152602001908152602001600020600201600f6101000a81548160ff0219169083151502179055506040518061014001604052808664ffffffffff1681526020018a8152602001856001600160481b031681526020018461ffff1681526020018361ffff168152602001600061ffff168152602001600115158152602001600015158152602001600d54815260200188151581525060106000336001600160a01b03166001600160a01b03168152602001908152602001600020600083815260200190815260200160002060008201518160000160006101000a81548164ffffffffff021916908364ffffffffff1602179055506020820151816001015560408201518160020160006101000a8154816001600160481b0302191690836001600160481b0316021790555060608201518160020160096101000a81548161ffff021916908361ffff160217905550608082015181600201600b6101000a81548161ffff021916908361ffff16021790555060a082015181600201600d6101000a81548161ffff021916908361ffff16021790555060c082015181600201600f6101000a81548160ff02191690831515021790555060e08201518160020160106101000a81548160ff02191690831515021790555061010082015181600301556101208201518160040160006101000a81548160ff02191690831515021790555090505088600254610d569190611fb3565b60025533600090815260016020819052604082208101805491929091610d7d908490611fb3565b9091555050336000908152600160205260408120549003610dae5760038054906000610da883611fcb565b91905055505b33600090815260016020526040812080548b9290610dcd908490611fb3565b90915550506040805182815242602082015233917ffcb8123dad95f24c74ef07cb7e9635f8bfabd8882383ff341ce8999eb7aa3860910160405180910390a25050600160005550505050505050565b6004546001600160a01b03163314610e3357600080fd5b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610e6c57600080fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6004546001600160a01b03163314610ea557600080fd5b600f80549115156101000261ff0019909216919091179055565b6004546001600160a01b03163314610ed657600080fd5b600c805460ff60a01b1916600160a01b179055565b600260005403610f0d5760405162461bcd60e51b815260040161087490611eb0565b60026000556009546040516332e7b8d960e11b81523060048201526024810185905264ffffffffff841660448201526001600160a01b03909116906365cf71b290606401600060405180830381600087803b158015610f6b57600080fd5b505af1158015610f7f573d6000803e3d6000fd5b50505050610f8f8484848461110a565b505060016000555050565b6004546001600160a01b03163314610fb157600080fd5b600c54600160a01b900460ff1615610fc857600080fd5b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6004546001600160a01b0316331461100157600080fd5b600d55565b6002600054036110285760405162461bcd60e51b815260040161087490611eb0565b60026000556110393384848461110a565b5050600160005550565b6009546040516323b872dd60e01b8152336004820152306024820152604481018390526001600160a01b03909116906323b872dd906064016020604051808303816000875af115801561109a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110be9190611e93565b15156001146111075760405162461bcd60e51b81526020600482015260156024820152741d1c985b9cd9995c881b5d5cdd081cdd58d8d95959605a1b6044820152606401610874565b50565b600061111885858585611a30565b90508061ffff166000036111e757600960009054906101000a90046001600160a01b03166001600160a01b0316635c9302c96040518163ffffffff1660e01b8152600401602060405180830381865afa158015611179573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119d9190611e29565b6001600160a01b03861660009081526010602090815260408083208684529091529020600201805461ffff92909216600160681b0261ffff60681b19909216919091179055611226565b6001600160a01b03851660009081526010602090815260408083208584529091529020600201805461ffff60681b1916600160681b61ffff8416021790555b6009546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801561126f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112939190611e29565b600f54909150610100900460ff1615156001036113ff57600a54604051633e04ae6960e21b81526004810187905264ffffffffff861660248201526001600160a01b039091169063f812b9a4906044016020604051808303816000875af1158015611302573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113269190611e29565b50600a546040516370a0823160e01b81523060048201526001600160a01b039091169063a9059cbb90889083906370a0823190602401602060405180830381865afa158015611379573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139d9190611e29565b6040518363ffffffff1660e01b81526004016113ba929190611e7a565b6020604051808303816000875af11580156113d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113fd9190611e93565b505b600954604051631a1804d160e11b81526004810187905264ffffffffff861660248201526001600160a01b039091169063343009a290604401600060405180830381600087803b15801561145257600080fd5b505af1158015611466573d6000803e3d6000fd5b505050506001600160a01b038681166000908152601060209081526040808320878452909152808220600201805460ff60801b1916600160801b17905560095490516370a0823160e01b8152306004820152919284929116906370a0823190602401602060405180830381865afa1580156114e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115099190611e29565b6115139190611ee7565b6001600160a01b03881660009081526010602090815260408083208884529091528120600101549192508183116115bf5760095460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb90611576908c908790600401611e7a565b6020604051808303816000875af1158015611595573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b99190611e93565b50611990565b81831115611990576000806115d48486611ee7565b6001600160a01b038c1660009081526010602090815260408083208c845290915290206004015490915060ff161561169757600b54604051625525a160e01b81526001600160a01b0390911690625525a190611636908e908990600401611e7a565b6020604051808303816000875af1158015611655573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116799190611e29565b9250846116868483611fe4565b6116909190611e58565b9250611783565b60095460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb906116c9908e908890600401611e7a565b6020604051808303816000875af11580156116e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170c9190611e93565b50600b54604051625525a160e01b81526001600160a01b0390911690625525a19061173d908e908590600401611e7a565b6020604051808303816000875af115801561175c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117809190611e29565b92505b6001600160a01b038b1660009081526010602090815260408083208b84529091529020600301546064906117b79085611fe4565b6117c19190611e58565b9150811561198d576008546040516370a0823160e01b815230600482015283916001600160a01b0316906370a0823190602401602060405180830381865afa158015611811573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118359190611e29565b106118b55760085460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb9061186c908e908690600401611e7a565b6020604051808303816000875af115801561188b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118af9190611e93565b5061198d565b6008546040516370a0823160e01b81523060048201526001600160a01b039091169063a9059cbb908d9083906370a0823190602401602060405180830381865afa158015611907573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061192b9190611e29565b6040518363ffffffff1660e01b8152600401611948929190611e7a565b6020604051808303816000875af1158015611967573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198b9190611e93565b505b50505b8160025461199e9190611ee7565b6002556001600160a01b0389166000908152600160208190526040822081018054919290916119ce908490611ee7565b909155505060408051878152602081018590529081018290524260608201526001600160a01b038a16907f3cfedd205f4a938d3e671ceda6c16675f20d3c7aa1bf7190f572afd767dba2489060800160405180910390a2505050505050505050565b600954604051632607443b60e01b81526000918291829182918291829182916001600160a01b031690632607443b90611a6f9030908e90600401611e7a565b60e060405180830381865afa158015611a8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab09190611f27565b50809650819750829850839950849a50859b50505050505050601060008c6001600160a01b03166001600160a01b031681526020019081526020016000206000898152602001908152602001600020600201600f9054906101000a900460ff16151560011515148015611b5157506001600160a01b038b1660009081526010602090815260408083208b8452909152902060020154600160801b900460ff16155b611b5a57600080fd5b6001600160a01b038b1660009081526010602090815260408083208b845290915290205464ffffffffff8a81169116148015611ba357508564ffffffffff168964ffffffffff16145b611bac57600080fd5b6001600160a01b038b1660009081526010602090815260408083208b84529091529020600101546001600160481b03861614611be757600080fd5b6001600160a01b038b1660009081526010602090815260408083208b84529091529020600201546001600160481b03858116911614611c2557600080fd5b6001600160a01b038b1660009081526010602090815260408083208b845290915290206002015461ffff848116600160481b9092041614611c6557600080fd5b6001600160a01b038b1660009081526010602090815260408083208b845290915290206002015461ffff838116600160581b9092041614611ca557600080fd5b9a9950505050505050505050565b80356001600160a01b0381168114611cca57600080fd5b919050565b60008060408385031215611ce257600080fd5b611ceb83611cb3565b946020939093013593505050565b600060208284031215611d0b57600080fd5b5035919050565b801515811461110757600080fd5b600060208284031215611d3257600080fd5b8135611d3d81611d12565b9392505050565b600080600060608486031215611d5957600080fd5b83359250602084013591506040840135611d7281611d12565b809150509250925092565b600060208284031215611d8f57600080fd5b611d3d82611cb3565b64ffffffffff8116811461110757600080fd5b60008060008060808587031215611dc157600080fd5b611dca85611cb3565b9350602085013592506040850135611de181611d98565b9396929550929360600135925050565b600080600060608486031215611e0657600080fd5b833592506020840135611e1881611d98565b929592945050506040919091013590565b600060208284031215611e3b57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600082611e7557634e487b7160e01b600052601260045260246000fd5b500490565b6001600160a01b03929092168252602082015260400190565b600060208284031215611ea557600080fd5b8151611d3d81611d12565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b600082821015611ef957611ef9611e42565b500390565b80516001600160481b0381168114611cca57600080fd5b805161ffff81168114611cca57600080fd5b600080600080600080600060e0888a031215611f4257600080fd5b8751611f4d81611d98565b9650611f5b60208901611efe565b9550611f6960408901611efe565b9450611f7760608901611f15565b9350611f8560808901611f15565b9250611f9360a08901611f15565b915060c0880151611fa381611d12565b8091505092959891949750929550565b60008219821115611fc657611fc6611e42565b500190565b600060018201611fdd57611fdd611e42565b5060010190565b6000816000190483118215151615611ffe57611ffe611e42565b50029056fea264697066735822122076db3e68708af05786b66831063657c9681c9beb40f36d388fddf0676810fb0064736f6c634300080f0033
Deployed Bytecode Sourcemap
3219:9762:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5517:383;;;:::i;:::-;;4909:68;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4909:68:0;;;;-1:-1:-1;;;4909:68:0;;;;;-1:-1:-1;;;4909:68:0;;;;;-1:-1:-1;;;4909:68:0;;;;;;;-1:-1:-1;;;4909:68:0;;;;;-1:-1:-1;;;4909:68:0;;;;;;;;;;;;;852:12:1;840:25;;;822:44;;897:2;882:18;;875:34;;;;-1:-1:-1;;;;;945:33:1;;;925:18;;;918:61;;;;998:6;1040:15;;;1035:2;1020:18;;1013:43;1093:15;;;1087:3;1072:19;;1065:44;1146:15;;1140:3;1125:19;;1118:44;1206:14;;1199:22;1193:3;1178:19;;1171:51;1266:14;1259:22;1253:3;1238:19;;1231:51;1313:3;1298:19;;1291:35;;;;1370:14;1363:22;1357:3;1342:19;;1335:51;809:3;794:19;4909:68:0;;;;;;;;4363:39;;;;;-1:-1:-1;;;4363:39:0;;;;;;;;;1562:14:1;;1555:22;1537:41;;1525:2;1510:18;4363:39:0;1397:187:1;11732:121:0;;;;;;:::i;:::-;;:::i;12361:319::-;;;:::i;4012:36::-;;;;;;;;;1920:25:1;;;1908:2;1893:18;4012:36:0;1774:177:1;11497:120:0;;;;;;:::i;:::-;;:::i;4194:31::-;;;;;-1:-1:-1;;;;;4194:31:0;;;;;;-1:-1:-1;;;;;2489:32:1;;;2471:51;;2459:2;2444:18;4194:31:0;2325:203:1;4829:34:0;;;;;;;;;6088:1425;;;;;;:::i;:::-;;:::i;4409:34::-;;;;;-1:-1:-1;;;4409:34:0;;;;;;12087:129;;;;;;:::i;:::-;;:::i;4733:42::-;;;;;;12224:129;;;;;;:::i;:::-;;:::i;4124:25::-;;;;;-1:-1:-1;;;;;4124:25:0;;;4326:30;;;;;-1:-1:-1;;;;;4326:30:0;;;4156:31;;;;;-1:-1:-1;;;;;4156:31:0;;;4870:32;;;;;;;;;;;;4055:30;;;;;;3959:44;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;3280:25:1;;;3336:2;3321:18;;3314:34;;;;3253:18;3959:44:0;3106:248:1;11625:99:0;;;;;;:::i;:::-;;:::i;4092:25::-;;;;;-1:-1:-1;;;;;4092:25:0;;;4782:40;;;;;;12873:105;;;:::i;11187:302::-;;;;;;:::i;:::-;;:::i;12688:177::-;;;;;;:::i;:::-;;:::i;11861:218::-;;;;;;:::i;:::-;;:::i;10998:181::-;;;;;;:::i;:::-;;:::i;5517:383::-;3325:10;;-1:-1:-1;;;;;3325:10:0;3311;:24;3303:33;;;;;;5595:14:::1;::::0;-1:-1:-1;;;5595:14:0;::::1;;;:23;5587:32;;;::::0;::::1;;5648:9;::::0;:34:::1;::::0;-1:-1:-1;;;5648:34:0;;5676:4:::1;5648:34;::::0;::::1;2471:51:1::0;5630:15:0::1;::::0;5685:2:::1;::::0;-1:-1:-1;;;;;5648:9:0;;::::1;::::0;:19:::1;::::0;2444:18:1;;5648:34:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:39;;;;:::i;:::-;5698:9;::::0;:80:::1;::::0;-1:-1:-1;;;5698:80:0;;5630:57;;-1:-1:-1;;;;;;5698:9:0::1;::::0;:18:::1;::::0;:80:::1;::::0;5725:42:::1;::::0;5630:57;;5698:80:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;5789:9:0::1;::::0;5808:10:::1;::::0;5789:39:::1;::::0;-1:-1:-1;;;5789:39:0;;-1:-1:-1;;;;;5789:9:0;;::::1;::::0;:18:::1;::::0;:39:::1;::::0;5808:10;::::1;::::0;5820:7;;5789:39:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;5839:14:0::1;:21:::0;;-1:-1:-1;;;;5839:21:0::1;-1:-1:-1::0;;;5839:21:0::1;::::0;;5871:14:::1;:21:::0;;-1:-1:-1;;5871:21:0::1;5856:4;5871:21;::::0;;5517:383::o;11732:121::-;3325:10;;-1:-1:-1;;;;;3325:10:0;3311;:24;3303:33;;;;;;11821:10:::1;:24:::0;11732:121::o;12361:319::-;3325:10;;-1:-1:-1;;;;;3325:10:0;3311;:24;3303:33;;;;;;12454:16:::1;::::0;12434::::1;::::0;-1:-1:-1;;;;;12434:16:0;;::::1;12454::::0;::::1;12434:36;12426:45;;;::::0;::::1;;12482:8;::::0;12499:15:::1;::::0;12482:36:::1;::::0;-1:-1:-1;;;12482:36:0;;-1:-1:-1;;;;;12482:8:0;;::::1;::::0;:16:::1;::::0;:36:::1;::::0;12499:15;::::1;::::0;12482:8:::1;::::0;:36:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;12529:8:0::1;::::0;12546:16:::1;::::0;12529:53:::1;::::0;-1:-1:-1;;;12529:53:0;;-1:-1:-1;;;;;12529:8:0;;::::1;::::0;:16:::1;::::0;:53:::1;::::0;12546:16;::::1;::::0;-1:-1:-1;;12564:17:0;12529:53:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;12611:16:0::1;::::0;12593:15:::1;:34:::0;;-1:-1:-1;;;;;12611:16:0;;::::1;-1:-1:-1::0;;;;;;12593:34:0;;::::1;::::0;::::1;::::0;;;12638:8:::1;:34:::0;;;;::::1;;::::0;;12361:319::o;11497:120::-;3325:10;;-1:-1:-1;;;;;3325:10:0;3311;:24;3303:33;;;;;;11577:14:::1;:32:::0;;-1:-1:-1;;11577:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11497:120::o;6088:1425::-;1445:1;1593:7;;:19;1585:63;;;;-1:-1:-1;;;1585:63:0;;;;;;;:::i;:::-;;;;;;;;;1445:1;1659:7;:18;3503:14:::1;::::0;::::1;;:22;;:14:::0;:22:::1;3495:31;;;::::0;::::1;;6224:10:::2;;6213:7;:21;;:58;;;;;-1:-1:-1::0;;;;;6238:7:0::2;:33;;6213:58;6205:67;;;::::0;::::2;;6291:8;::::0;:34:::2;::::0;-1:-1:-1;;;6291:34:0;;6319:4:::2;6291:34;::::0;::::2;2471:51:1::0;-1:-1:-1;;6328:17:0;-1:-1:-1;;;;;6291:8:0::2;::::0;:19:::2;::::0;2444:18:1;;6291:34:0::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:54;6283:63;;;::::0;::::2;;6359:28;6379:7;6359:19;:28::i;:::-;6398:8;::::0;:35:::2;::::0;-1:-1:-1;;;6398:35:0;;::::2;::::0;::::2;3280:25:1::0;;;3321:18;;;3314:34;;;-1:-1:-1;;;;;6398:8:0;;::::2;::::0;:19:::2;::::0;3253:18:1;;6398:35:0::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;6605:8:0::2;::::0;:34:::2;::::0;-1:-1:-1;;;6605:34:0;;6633:4:::2;6605:34;::::0;::::2;2471:51:1::0;6446:19:0::2;::::0;-1:-1:-1;6446:19:0;;-1:-1:-1;6446:19:0;;;;;;-1:-1:-1;;;;;6605:8:0::2;::::0;:19:::2;::::0;2444:18:1;;6605:34:0::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6591:48:::0;-1:-1:-1;6650:16:0::2;6665:1;6591:48:::0;6650:16:::2;:::i;:::-;6731:8;::::0;:47:::2;::::0;-1:-1:-1;;;6731:47:0;;6650:16;;-1:-1:-1;;;;;;6731:8:0::2;::::0;:19:::2;::::0;:47:::2;::::0;6759:4:::2;::::0;6650:16;;6731:47:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;6830:40:0::2;::::0;-1:-1:-1;;;;;;7525:3:1;7503:16;;;7499:45;6830:40:0::2;::::0;::::2;7487:58:1::0;-1:-1:-1;;;;;;7600:3:1;7578:16;;;7574:53;7561:11;;;7554:74;6679:99:0;;-1:-1:-1;6679:99:0;;-1:-1:-1;6679:99:0;-1:-1:-1;6679:99:0;-1:-1:-1;6791:17:0::2;::::0;7644:12:1;;;-1:-1:-1;6830:40:0::2;::::0;;;;::::2;-1:-1:-1::0;;6830:40:0;;;;;;6820:51;;6830:40:::2;6820:51:::0;;::::2;::::0;6902:10:::2;6812:60;6891:22:::0;;;:10:::2;:22:::0;;;;;:33;;;;;;;;:41:::2;;::::0;6820:51;;-1:-1:-1;;;;6891:41:0;::::2;;;:50;6883:59;;;::::0;::::2;;6997:4;6953:10;:22;6964:10;-1:-1:-1::0;;;;;6953:22:0::2;-1:-1:-1::0;;;;;6953:22:0::2;;;;;;;;;;;;:33;6976:9;6953:33;;;;;;;;;;;:41;;;:48;;;;;;;;;;;;;;;;;;7050:126;;;;;;;;7061:8;7050:126;;;;;;7071:7;7050:126;;;;7080:12;-1:-1:-1::0;;;;;7050:126:0::2;;;;;7094:10;7050:126;;;;;;7106:11;7050:126;;;;;;7126:1;7050:126;;;;;;7130:4;7050:126;;;;;;7136:5;7050:126;;;;;;7143:22;;7050:126;;;;7167:8;7050:126;;;;::::0;7014:10:::2;:22;7025:10;-1:-1:-1::0;;;;;7014:22:0::2;-1:-1:-1::0;;;;;7014:22:0::2;;;;;;;;;;;;:33;7037:9;7014:33;;;;;;;;;;;:162;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;7014:162:0::2;;;;;-1:-1:-1::0;;;;;7014:162:0::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7229:7;7209:17;;:27;;;;:::i;:::-;7189:17;:47:::0;7259:10:::2;7247:23;::::0;;;7287:1:::2;7247:23;::::0;;;;;;:36;::::2;:41:::0;;7287:1;;7247:36;;:41:::2;::::0;7287:1;;7247:41:::2;:::i;:::-;::::0;;;-1:-1:-1;;7317:10:0::2;7305:23;::::0;;;:11:::2;:23;::::0;;;;:30;:35;;7301:81:::2;;7357:11;:13:::0;;;:11:::2;:13;::::0;::::2;:::i;:::-;;;;;;7301:81;7406:10;7394:23;::::0;;;:11:::2;:23;::::0;;;;:41;;7428:7;;7394:23;:41:::2;::::0;7428:7;;7394:41:::2;:::i;:::-;::::0;;;-1:-1:-1;;7453:52:0::2;::::0;;3280:25:1;;;7489:15:0::2;3336:2:1::0;3321:18;;3314:34;7466:10:0::2;::::0;7453:52:::2;::::0;3253:18:1;7453:52:0::2;;;;;;;-1:-1:-1::0;;1401:1:0;1700:7;:22;-1:-1:-1;;;;;;;6088:1425:0:o;12087:129::-;3325:10;;-1:-1:-1;;;;;3325:10:0;3311;:24;3303:33;;;;;;12173:16:::1;:35:::0;;-1:-1:-1;;;;;;12173:35:0::1;-1:-1:-1::0;;;;;12173:35:0;;;::::1;::::0;;;::::1;::::0;;12087:129::o;12224:::-;3421:10;;-1:-1:-1;;;;;3421:10:0;3407;:24;3399:33;;;;;;12310:16:::1;:35:::0;;-1:-1:-1;;;;;;12310:35:0::1;-1:-1:-1::0;;;;;12310:35:0;;;::::1;::::0;;;::::1;::::0;;12224:129::o;11625:99::-;3325:10;;-1:-1:-1;;;;;3325:10:0;3311;:24;3303:33;;;;;;11694:13:::1;:22:::0;;;::::1;;;;-1:-1:-1::0;;11694:22:0;;::::1;::::0;;;::::1;::::0;;11625:99::o;12873:105::-;3325:10;;-1:-1:-1;;;;;3325:10:0;3311;:24;3303:33;;;;;;12944:19:::1;:26:::0;;-1:-1:-1;;;;12944:26:0::1;-1:-1:-1::0;;;12944:26:0::1;::::0;;12873:105::o;11187:302::-;1445:1;1593:7;;:19;1585:63;;;;-1:-1:-1;;;1585:63:0;;;;;;;:::i;:::-;1445:1;1659:7;:18;11335:8:::1;::::0;:71:::1;::::0;-1:-1:-1;;;11335:71:0;;11372:4:::1;11335:71;::::0;::::1;8140:51:1::0;8207:18;;;8200:34;;;8282:12;8270:25;;8250:18;;;8243:53;-1:-1:-1;;;;;11335:8:0;;::::1;::::0;:28:::1;::::0;8113:18:1;;11335:71:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11417:64;11427:14;11443:11;11456:13;11471:9;11417;:64::i;:::-;-1:-1:-1::0;;1401:1:0;1700:7;:22;-1:-1:-1;;11187:302:0:o;12688:177::-;3325:10;;-1:-1:-1;;;;;3325:10:0;3311;:24;3303:33;;;;;;12781:19:::1;::::0;-1:-1:-1;;;12781:19:0;::::1;;;:28;12773:37;;;::::0;::::1;;12821:9;:36:::0;;-1:-1:-1;;;;;;12821:36:0::1;-1:-1:-1::0;;;;;12821:36:0;;;::::1;::::0;;;::::1;::::0;;12688:177::o;11861:218::-;3325:10;;-1:-1:-1;;;;;3325:10:0;3311;:24;3303:33;;;;;;12027:22:::1;:44:::0;11861:218::o;10998:181::-;1445:1;1593:7;;:19;1585:63;;;;-1:-1:-1;;;1585:63:0;;;;;;;:::i;:::-;1445:1;1659:7;:18;11111:60:::1;11121:10;11133:11:::0;11146:13;11161:9;11111::::1;:60::i;:::-;-1:-1:-1::0;;1401:1:0;1700:7;:22;-1:-1:-1;10998:181:0:o;5908:172::-;5981:8;;:57;;-1:-1:-1;;;5981:57:0;;6003:10;5981:57;;;8547:34:1;6023:4:0;8597:18:1;;;8590:43;8649:18;;;8642:34;;;-1:-1:-1;;;;;5981:8:0;;;;:21;;8482:18:1;;5981:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:65;;6042:4;5981:65;5973:99;;;;-1:-1:-1;;;5973:99:0;;8889:2:1;5973:99:0;;;8871:21:1;8928:2;8908:18;;;8901:30;-1:-1:-1;;;8947:18:1;;;8940:51;9008:18;;5973:99:0;8687:345:1;5973:99:0;5908:172;:::o;8607:2383::-;8731:19;8753:74;8773:14;8789:11;8802:13;8817:9;8753:19;:74::i;:::-;8731:96;;8844:12;:17;;8860:1;8844:17;8840:224;;8935:8;;;;;;;;;-1:-1:-1;;;;;8935:8:0;-1:-1:-1;;;;;8935:19:0;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8876:26:0;;;;;;:10;:26;;;;;;;;:37;;;;;;;;:49;;:81;;;;;;;-1:-1:-1;;;8876:81:0;-1:-1:-1;;;;8876:81:0;;;;;;;;;8840:224;;;-1:-1:-1;;;;;8988:26:0;;;;;;:10;:26;;;;;;;;:37;;;;;;;;:49;;:64;;-1:-1:-1;;;;8988:64:0;-1:-1:-1;;;8988:64:0;;;;;;;8840:224;9095:8;;:33;;-1:-1:-1;;;9095:33:0;;9122:4;9095:33;;;2471:51:1;9076:16:0;;-1:-1:-1;;;;;9095:8:0;;:18;;2444::1;;9095:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9145:13;;9076:52;;-1:-1:-1;9145:13:0;;;;;:21;;:13;:21;9141:193;;9183:11;;:50;;-1:-1:-1;;;9183:50:0;;;;;9209:25:1;;;9282:12;9270:25;;9250:18;;;9243:53;-1:-1:-1;;;;;9183:11:0;;;;:22;;9182:18:1;;9183:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;9248:11:0;;9285:36;;-1:-1:-1;;;9285:36:0;;9315:4;9285:36;;;2471:51:1;-1:-1:-1;;;;;9248:11:0;;;;:20;;9269:14;;9248:11;;9285:21;;2444:18:1;;9285:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9248:74;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9141:193;9346:8;;:45;;-1:-1:-1;;;9346:45:0;;;;;9209:25:1;;;9282:12;9270:25;;9250:18;;;9243:53;-1:-1:-1;;;;;9346:8:0;;;;:17;;9182:18:1;;9346:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;9456:26:0;;;;;;;:10;:26;;;;;;;;:37;;;;;;;;;:43;;:50;;-1:-1:-1;;;;9456:50:0;-1:-1:-1;;;9456:50:0;;;9537:8;;:33;;-1:-1:-1;;;9537:33:0;;9564:4;9537:33;;;2471:51:1;9456:26:0;;9573:8;;9537;;;:18;;2444::1;;9537:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:44;;;;:::i;:::-;-1:-1:-1;;;;;9616:26:0;;9592:21;9616:26;;;:10;:26;;;;;;;;:37;;;;;;;;:47;;;9519:62;;-1:-1:-1;9713:24:0;;;9709:1055;;9752:8;;:42;;-1:-1:-1;;;9752:42:0;;-1:-1:-1;;;;;9752:8:0;;;;:17;;:42;;9770:14;;9786:7;;9752:42;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9709:1055;;;9826:13;9816:7;:23;9812:952;;;9854:20;;9909:23;9919:13;9909:7;:23;:::i;:::-;-1:-1:-1;;;;;9951:26:0;;;;;;:10;:26;;;;;;;;:37;;;;;;;;:45;;;9887;;-1:-1:-1;9951:45:0;;9947:390;;;10032:8;;:48;;-1:-1:-1;;;10032:48:0;;-1:-1:-1;;;;;10032:8:0;;;;:23;;:48;;10056:14;;10072:7;;10032:48;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10015:65;-1:-1:-1;10145:7:0;10114:28;10015:65;10114:11;:28;:::i;:::-;:38;;;;:::i;:::-;10097:55;;9947:390;;;10189:8;;:48;;-1:-1:-1;;;10189:48:0;;-1:-1:-1;;;;;10189:8:0;;;;:17;;:48;;10207:14;;10223:13;;10189:48;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;10271:8:0;;:52;;-1:-1:-1;;;10271:52:0;;-1:-1:-1;;;;;10271:8:0;;;;:23;;:52;;10295:14;;10311:11;;10271:52;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10254:69;;9947:390;-1:-1:-1;;;;;10383:26:0;;;;;;:10;:26;;;;;;;;:37;;;;;;;;:53;;;10439:3;;10366:70;;:14;:70;:::i;:::-;:76;;;;:::i;:::-;10351:91;-1:-1:-1;10461:16:0;;10457:296;;10498:9;;:34;;-1:-1:-1;;;10498:34:0;;10526:4;10498:34;;;2471:51:1;10536:12:0;;-1:-1:-1;;;;;10498:9:0;;:19;;2444:18:1;;10498:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:50;10494:246;;10567:9;;:48;;-1:-1:-1;;;10567:48:0;;-1:-1:-1;;;;;10567:9:0;;;;:18;;:48;;10586:14;;10602:12;;10567:48;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10494:246;;;10654:9;;10689:34;;-1:-1:-1;;;10689:34:0;;10717:4;10689:34;;;2471:51:1;-1:-1:-1;;;;;10654:9:0;;;;:18;;10673:14;;10654:9;;10689:19;;2444:18:1;;10689:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10654:70;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10494:246;9841:923;;9812:952;10816:13;10796:17;;:33;;;;:::i;:::-;10776:17;:53;-1:-1:-1;;;;;10840:27:0;;;;;;10884:1;10840:27;;;;;;;:40;;:45;;10884:1;;10840:40;;:45;;10884:1;;10840:45;:::i;:::-;;;;-1:-1:-1;;10903:79:0;;;9711:25:1;;;9767:2;9752:18;;9745:34;;;9795:18;;;9788:34;;;10966:15:0;9853:2:1;9838:18;;9831:34;-1:-1:-1;;;;;10903:79:0;;;;;9698:3:1;9683:19;10903:79:0;;;;;;;8720:2270;;;;;8607:2383;;;;:::o;7521:1078::-;7930:8;;:47;;-1:-1:-1;;;7930:47:0;;7658:6;;;;;;;;;;;;;;-1:-1:-1;;;;;7930:8:0;;:19;;:47;;7958:4;;7965:11;;7930:47;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7853:124;;;;;;;;;;;;;;;;;;;;;;;;;7996:10;:26;8007:14;-1:-1:-1;;;;;7996:26:0;-1:-1:-1;;;;;7996:26:0;;;;;;;;;;;;:37;8023:9;7996:37;;;;;;;;;;;:45;;;;;;;;;;;;:53;;8045:4;7996:53;;;:109;;;;-1:-1:-1;;;;;;8053:26:0;;;;;;:10;:26;;;;;;;;:37;;;;;;;;:43;;;-1:-1:-1;;;8053:43:0;;;;:52;7996:109;7988:118;;;;;;-1:-1:-1;;;;;8125:26:0;;;;;;:10;:26;;;;;;;;:37;;;;;;;;:45;:62;;;;:45;;:62;:91;;;;;8208:8;8191:25;;:13;:25;;;8125:91;8117:100;;;;;;-1:-1:-1;;;;;8236:26:0;;;;;;:10;:26;;;;;;;;:37;;;;;;;;:47;;;-1:-1:-1;;;;;8287:22:0;;8236:73;8228:82;;;;;;-1:-1:-1;;;;;8329:26:0;;;;;;:10;:26;;;;;;;;:37;;;;;;;;:49;;;-1:-1:-1;;;;;8329:65:0;;;:49;;:65;8321:74;;;;;;-1:-1:-1;;;;;8414:26:0;;;;;;:10;:26;;;;;;;;:37;;;;;;;;:47;;;:61;;;;-1:-1:-1;;;8414:47:0;;;;:61;8406:70;;;;;;-1:-1:-1;;;;;8495:26:0;;;;;;:10;:26;;;;;;;;:37;;;;;;;;:48;;;:63;;;;-1:-1:-1;;;8495:48:0;;;;:63;8487:72;;;;;;8579:12;7521:1078;-1:-1:-1;;;;;;;;;;7521:1078:0:o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:254::-;260:6;268;321:2;309:9;300:7;296:23;292:32;289:52;;;337:1;334;327:12;289:52;360:29;379:9;360:29;:::i;:::-;350:39;436:2;421:18;;;;408:32;;-1:-1:-1;;;192:254:1:o;1589:180::-;1648:6;1701:2;1689:9;1680:7;1676:23;1672:32;1669:52;;;1717:1;1714;1707:12;1669:52;-1:-1:-1;1740:23:1;;1589:180;-1:-1:-1;1589:180:1:o;1956:118::-;2042:5;2035:13;2028:21;2021:5;2018:32;2008:60;;2064:1;2061;2054:12;2079:241;2135:6;2188:2;2176:9;2167:7;2163:23;2159:32;2156:52;;;2204:1;2201;2194:12;2156:52;2243:9;2230:23;2262:28;2284:5;2262:28;:::i;:::-;2309:5;2079:241;-1:-1:-1;;;2079:241:1:o;2533:377::-;2607:6;2615;2623;2676:2;2664:9;2655:7;2651:23;2647:32;2644:52;;;2692:1;2689;2682:12;2644:52;2728:9;2715:23;2705:33;;2785:2;2774:9;2770:18;2757:32;2747:42;;2839:2;2828:9;2824:18;2811:32;2852:28;2874:5;2852:28;:::i;:::-;2899:5;2889:15;;;2533:377;;;;;:::o;2915:186::-;2974:6;3027:2;3015:9;3006:7;3002:23;2998:32;2995:52;;;3043:1;3040;3033:12;2995:52;3066:29;3085:9;3066:29;:::i;3359:123::-;3444:12;3437:5;3433:24;3426:5;3423:35;3413:63;;3472:1;3469;3462:12;3487:456;3572:6;3580;3588;3596;3649:3;3637:9;3628:7;3624:23;3620:33;3617:53;;;3666:1;3663;3656:12;3617:53;3689:29;3708:9;3689:29;:::i;:::-;3679:39;;3765:2;3754:9;3750:18;3737:32;3727:42;;3819:2;3808:9;3804:18;3791:32;3832:30;3856:5;3832:30;:::i;:::-;3487:456;;;;-1:-1:-1;3881:5:1;;3933:2;3918:18;3905:32;;-1:-1:-1;;3487:456:1:o;3948:381::-;4024:6;4032;4040;4093:2;4081:9;4072:7;4068:23;4064:32;4061:52;;;4109:1;4106;4099:12;4061:52;4145:9;4132:23;4122:33;;4205:2;4194:9;4190:18;4177:32;4218:30;4242:5;4218:30;:::i;:::-;3948:381;;4267:5;;-1:-1:-1;;;4319:2:1;4304:18;;;;4291:32;;3948:381::o;4334:184::-;4404:6;4457:2;4445:9;4436:7;4432:23;4428:32;4425:52;;;4473:1;4470;4463:12;4425:52;-1:-1:-1;4496:16:1;;4334:184;-1:-1:-1;4334:184:1:o;4523:127::-;4584:10;4579:3;4575:20;4572:1;4565:31;4615:4;4612:1;4605:15;4639:4;4636:1;4629:15;4655:217;4695:1;4721;4711:132;;4765:10;4760:3;4756:20;4753:1;4746:31;4800:4;4797:1;4790:15;4828:4;4825:1;4818:15;4711:132;-1:-1:-1;4857:9:1;;4655:217::o;4877:274::-;-1:-1:-1;;;;;5069:32:1;;;;5051:51;;5133:2;5118:18;;5111:34;5039:2;5024:18;;4877:274::o;5156:245::-;5223:6;5276:2;5264:9;5255:7;5251:23;5247:32;5244:52;;;5292:1;5289;5282:12;5244:52;5324:9;5318:16;5343:28;5365:5;5343:28;:::i;5693:355::-;5895:2;5877:21;;;5934:2;5914:18;;;5907:30;5973:33;5968:2;5953:18;;5946:61;6039:2;6024:18;;5693:355::o;6053:125::-;6093:4;6121:1;6118;6115:8;6112:34;;;6126:18;;:::i;:::-;-1:-1:-1;6163:9:1;;6053:125::o;6183:177::-;6261:13;;-1:-1:-1;;;;;6303:32:1;;6293:43;;6283:71;;6350:1;6347;6340:12;6365:163;6443:13;;6496:6;6485:18;;6475:29;;6465:57;;6518:1;6515;6508:12;6533:796;6648:6;6656;6664;6672;6680;6688;6696;6749:3;6737:9;6728:7;6724:23;6720:33;6717:53;;;6766:1;6763;6756:12;6717:53;6798:9;6792:16;6817:30;6841:5;6817:30;:::i;:::-;6866:5;-1:-1:-1;6890:48:1;6934:2;6919:18;;6890:48;:::i;:::-;6880:58;;6957:48;7001:2;6990:9;6986:18;6957:48;:::i;:::-;6947:58;;7024:48;7068:2;7057:9;7053:18;7024:48;:::i;:::-;7014:58;;7091:49;7135:3;7124:9;7120:19;7091:49;:::i;:::-;7081:59;;7159:49;7203:3;7192:9;7188:19;7159:49;:::i;:::-;7149:59;;7253:3;7242:9;7238:19;7232:26;7267:30;7289:7;7267:30;:::i;:::-;7316:7;7306:17;;;6533:796;;;;;;;;;;:::o;7667:128::-;7707:3;7738:1;7734:6;7731:1;7728:13;7725:39;;;7744:18;;:::i;:::-;-1:-1:-1;7780:9:1;;7667:128::o;7800:135::-;7839:3;7860:17;;;7857:43;;7880:18;;:::i;:::-;-1:-1:-1;7927:1:1;7916:13;;7800:135::o;9307:168::-;9347:7;9413:1;9409;9405:6;9401:14;9398:1;9395:21;9390:1;9383:9;9376:17;9372:45;9369:71;;;9420:18;;:::i;:::-;-1:-1:-1;9460:9:1;;9307:168::o
Swarm Source
ipfs://76db3e68708af05786b66831063657c9681c9beb40f36d388fddf0676810fb00
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.