More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 2,374 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw Lock Bo... | 17807130 | 404 days ago | IN | 0 ETH | 0.00119975 | ||||
Invest | 17807106 | 404 days ago | IN | 0.025 ETH | 0.00206093 | ||||
Invest | 17807103 | 404 days ago | IN | 0 ETH | 0.00060947 | ||||
Transfer | 17807089 | 404 days ago | IN | 0.025 ETH | 0.0011613 | ||||
Invest | 17050619 | 511 days ago | IN | 1.25 ETH | 0.0034338 | ||||
Invest | 12119956 | 1260 days ago | IN | 0.025 ETH | 0.01042457 | ||||
Invest | 10703295 | 1477 days ago | IN | 0.025 ETH | 0.014042 | ||||
Withdraw Lock Bo... | 10702425 | 1478 days ago | IN | 0 ETH | 0.00450573 | ||||
Invest | 10702398 | 1478 days ago | IN | 0.025 ETH | 0.01475722 | ||||
Withdraw Dev Com... | 10178922 | 1559 days ago | IN | 0 ETH | 0.00053985 | ||||
Invest | 10178897 | 1559 days ago | IN | 0.5 ETH | 0.00181066 | ||||
Invest | 10178858 | 1559 days ago | IN | 5.5 ETH | 0.00291261 | ||||
Invest | 10178828 | 1559 days ago | IN | 5.5 ETH | 0.00259587 | ||||
Invest | 10178828 | 1559 days ago | IN | 5.5 ETH | 0.00158438 | ||||
Invest | 10178532 | 1559 days ago | IN | 1.5 ETH | 0.00311705 | ||||
Withdraw Profit | 9879359 | 1605 days ago | IN | 0 ETH | 0.00005082 | ||||
Withdraw Profit | 9879357 | 1605 days ago | IN | 0 ETH | 0.00005082 | ||||
Withdraw Lock Bo... | 8926052 | 1759 days ago | IN | 0 ETH | 0.00015473 | ||||
Withdraw Lock Bo... | 8779816 | 1783 days ago | IN | 0 ETH | 0.00003094 | ||||
Reinvest Profit | 8652708 | 1803 days ago | IN | 0 ETH | 0.00005248 | ||||
Withdraw Lock Bo... | 8590310 | 1813 days ago | IN | 0 ETH | 0.00051359 | ||||
Withdraw Lock Bo... | 8590308 | 1813 days ago | IN | 0 ETH | 0.00071178 | ||||
Reinvest Profit | 8590096 | 1813 days ago | IN | 0 ETH | 0.00007873 | ||||
Withdraw Lock Bo... | 8578324 | 1815 days ago | IN | 0 ETH | 0.00095316 | ||||
Reinvest Profit | 8417003 | 1840 days ago | IN | 0 ETH | 0.00005248 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
17807130 | 404 days ago | 1.071 ETH | ||||
17807106 | 404 days ago | 1.07268 ETH | ||||
10702425 | 1478 days ago | 6.321 ETH | ||||
10702398 | 1478 days ago | 4.89636 ETH | ||||
10178922 | 1559 days ago | 18.17282882 ETH | ||||
10178858 | 1559 days ago | 0.000504 ETH | ||||
10178828 | 1559 days ago | 0.000504 ETH | ||||
10178828 | 1559 days ago | 0.000504 ETH | ||||
8926052 | 1759 days ago | 0.36900768 ETH | ||||
8779816 | 1783 days ago | 2.15792341 ETH | ||||
8590308 | 1813 days ago | 1.092 ETH | ||||
8578324 | 1815 days ago | 1.29991218 ETH | ||||
8404640 | 1842 days ago | 1.092 ETH | ||||
8372702 | 1847 days ago | 1.12785018 ETH | ||||
8359531 | 1849 days ago | 0.0378 ETH | ||||
8357175 | 1849 days ago | 2.52 ETH | ||||
8330524 | 1853 days ago | 1.29460175 ETH | ||||
8316551 | 1855 days ago | 0.22744086 ETH | ||||
8278461 | 1861 days ago | 2.18742079 ETH | ||||
8262084 | 1864 days ago | 7.94547292 ETH | ||||
8228836 | 1869 days ago | 1.258026 ETH | ||||
8203430 | 1873 days ago | 0.0252 ETH | ||||
8195906 | 1874 days ago | 2.65681119 ETH | ||||
8191127 | 1875 days ago | 1.0374 ETH | ||||
8183135 | 1876 days ago | 0.02751778 ETH |
Loading...
Loading
Contract Name:
Onigiri
Compiler Version
v0.5.1+commit.c8a2cb62
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2019-05-06 */ // File: openzeppelin-solidity/contracts/math/SafeMath.sol pragma solidity ^0.5.0; /** * @title SafeMath * @dev Unsigned math operations with safety checks that revert on error */ library SafeMath { /** * @dev Multiplies two unsigned integers, reverts on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b); return c; } /** * @dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a); uint256 c = a - b; return c; } /** * @dev Adds two unsigned integers, reverts on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a); return c; } /** * @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo), * reverts when dividing by zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b != 0); return a % b; } } // File: contracts/Onigiri.sol pragma solidity ^0.5.0; contract Onigiri { using SafeMath for uint256; struct InvestorInfo { uint256 invested; uint256 lockbox; uint256 withdrawn; uint256 lastInvestmentTime; } mapping (address => InvestorInfo) public investors; mapping (address => uint256) public affiliateCommission; mapping (address => uint256) public devCommission; uint256 public investorsCount; uint256 public lockboxTotal; uint256 public withdrawnProfitTotal; uint256 public affiliateCommissionWithdrawnTotal; uint256 public donatedTotal; uint256 public gamesIncomeTotal; address private constant dev_0_master = 0x6a5D9648381b90AF0e6881c26739efA4379c19B2; address private constant dev_1_master = 0xDBd32Ef31Fcd7fc1EF028A7471a7A9BFC39ab609; address private dev_0_escrow = 0xF57924672D6dBF0336c618fDa50E284E02715000; address private dev_1_escrow = 0xE4Cf94e5D30FB4406A2B139CD0e872a1C8012dEf; uint256 public constant minInvest = 0.025 ether; event Invested(address investor, uint256 amount); event Renvested(address investor, uint256 amount); event WithdrawnAffiliateCommission(address affiliate, uint256 amount); event WithdrawnProfit(address investor, uint256 amount); event WithdrawnLockbox(address investor, uint256 amount); /** * PUBLIC */ /** * @dev Donation for Onigiry ecosystem. * TESTED */ function() external payable { // 2% - to developers uint256 devFee = msg.value.div(100); devCommission[dev_0_escrow] = devCommission[dev_0_escrow].add(devFee); devCommission[dev_1_escrow] = devCommission[dev_1_escrow].add(devFee); donatedTotal = donatedTotal.add(msg.value); } /** * @dev Accepts income from games for Onigiry ecosystem. * TESTED */ function fromGame() external payable { // 4% - to developers uint256 devFee = msg.value.div(100).mul(2); devCommission[dev_0_escrow] = devCommission[dev_0_escrow].add(devFee); devCommission[dev_1_escrow] = devCommission[dev_1_escrow].add(devFee); gamesIncomeTotal = gamesIncomeTotal.add(msg.value); } /** * @dev Returns invested amount for investor. * @param _address Investor address. * @return invested amount. * TESTED */ function getInvested(address _address) public view returns(uint256) { return investors[_address].invested; } /** * @dev Returns lockbox amount for investor. * @param _address Investor address. * @return lockbox amount. * TESTED */ function getLockBox(address _address) public view returns(uint256) { return investors[_address].lockbox; } /** * @dev Returns withdrawn amount for investor. * @param _address Investor address. * @return withdrawn amount. * TESTED */ function getWithdrawn(address _address) public view returns(uint256) { return investors[_address].withdrawn; } /** * @dev Returns last investment time amount for investor. * @param _address Investor address. * @return last investment time. * TESTED */ function getLastInvestmentTime(address _address) public view returns(uint256) { return investors[_address].lastInvestmentTime; } /** * @dev Gets balance for current contract. * @return balance for current contract. * TESTED */ function getBalance() public view returns(uint256){ return address(this).balance; } /** * @dev Calculates sum for lockboxes and dev fees. * @return Amount of guaranteed balance by constract. * TESTED */ function guaranteedBalance() public view returns(uint256) { return lockboxTotal.add(devCommission[dev_0_escrow]).add(devCommission[dev_1_escrow]); } /** * @dev User invests funds. * @param _affiliate affiliate address. * TESTED */ function invest(address _affiliate) public payable { require(msg.value >= minInvest, "min 0.025 eth"); uint256 profit = calculateProfit(msg.sender); if(profit > 0){ msg.sender.transfer(profit); } // 1% - to affiliateCommission if(_affiliate != msg.sender && _affiliate != address(0)) { uint256 commission = msg.value.div(100); affiliateCommission[_affiliate] = affiliateCommission[_affiliate].add(commission); } if(getLastInvestmentTime(msg.sender) == 0) { investorsCount = investorsCount.add(1); } uint256 lockboxAmount = msg.value.div(100).mul(84); investors[msg.sender].lockbox = investors[msg.sender].lockbox.add(lockboxAmount); investors[msg.sender].invested = investors[msg.sender].invested.add(msg.value); investors[msg.sender].lastInvestmentTime = now; delete investors[msg.sender].withdrawn; lockboxTotal = lockboxTotal.add(lockboxAmount); // 4% - to developers uint256 devFee = msg.value.div(100).mul(2); devCommission[dev_0_escrow] = devCommission[dev_0_escrow].add(devFee); devCommission[dev_1_escrow] = devCommission[dev_1_escrow].add(devFee); emit Invested(msg.sender, msg.value); } /** * @dev Updates escrow address for developer. * @param _address Address of escrow to be used. * TESTED */ function updateDevEscrow(address _address) public { require(msg.sender == dev_0_master || msg.sender == dev_1_master, "not dev"); (msg.sender == dev_0_master) ? dev_0_escrow = _address : dev_1_escrow = _address; } /** * @dev Allows developer to withdraw commission. * TESTED */ function withdrawDevCommission() public { uint256 commission = devCommission[msg.sender]; require(commission > 0, "no dev commission"); require(address(this).balance.sub(commission) >= lockboxTotal, "not enough funds"); delete devCommission[msg.sender]; msg.sender.transfer(commission); } /** * @dev Withdraws affiliate commission for current address. * TESTED */ function withdrawAffiliateCommission() public { uint256 commission = affiliateCommission[msg.sender]; require(commission > 0, "no commission"); require(address(this).balance.sub(commission) >= guaranteedBalance(), "not enough funds"); delete affiliateCommission[msg.sender]; affiliateCommissionWithdrawnTotal = affiliateCommissionWithdrawnTotal.add(commission); msg.sender.transfer(commission); emit WithdrawnAffiliateCommission(msg.sender, commission); } /** * @dev Allows investor to withdraw profit. * TESTED */ function withdrawProfit() public { uint256 profit = calculateProfit(msg.sender); require(profit > 0, "no profit"); require(address(this).balance.sub(profit) >= guaranteedBalance(), "not enough funds"); investors[msg.sender].lastInvestmentTime = now; investors[msg.sender].withdrawn = investors[msg.sender].withdrawn.add(profit); withdrawnProfitTotal = withdrawnProfitTotal.add(profit); // 2% - to developers uint256 devFee = profit.div(100); devCommission[dev_0_escrow] = devCommission[dev_0_escrow].add(devFee); devCommission[dev_1_escrow] = devCommission[dev_1_escrow].add(devFee); // 3% - stay in contract msg.sender.transfer(profit.div(100).mul(95)); emit WithdrawnProfit(msg.sender, profit); } /** * @dev Allows investor to withdraw lockbox funds, close deposit and clear all data. * @notice Pending profit stays in contract. * TESTED */ function withdrawLockBoxAndClose() public { uint256 lockboxAmount = getLockBox(msg.sender); require(lockboxAmount > 0, "no investments"); delete investors[msg.sender]; investorsCount = investorsCount.sub(1); lockboxTotal = lockboxTotal.sub(lockboxAmount); msg.sender.transfer(lockboxAmount); emit WithdrawnLockbox(msg.sender, lockboxAmount); } /** * @dev Reinvests pending profit. * TESTED */ function reinvestProfit() public { uint256 profit = calculateProfit(msg.sender); require(profit > 0, "no profit"); require(address(this).balance.sub(profit) >= guaranteedBalance(), "not enough funds"); uint256 lockboxFromProfit = profit.div(100).mul(84); investors[msg.sender].lockbox = investors[msg.sender].lockbox.add(lockboxFromProfit); investors[msg.sender].lastInvestmentTime = now; investors[msg.sender].invested = investors[msg.sender].invested.add(profit); lockboxTotal = lockboxTotal.add(lockboxFromProfit); emit Renvested(msg.sender, profit); } /** * @dev Calculates pending profit for provided customer. * @param _investor Address of investor. * @return pending profit. * TESTED */ function calculateProfit(address _investor) public view returns(uint256){ uint256 hourDifference = now.sub(investors[_investor].lastInvestmentTime).div(3600); uint256 rate = percentRateInternal(investors[_investor].lockbox); uint256 calculatedPercent = hourDifference.mul(rate); return investors[_investor].lockbox.div(100000).mul(calculatedPercent); } /** * @dev Calculates rate for lockbox balance for msg.sender. * @param _balance Balance to calculate percentage. * @return rate for lockbox balance. * TESTED */ function percentRateInternal(uint256 _balance) public pure returns(uint256) { /** ~ .99 - - 0.6% 1 ~ 50 - 0.96% 51 ~ 100 - 1.2% 100 ~ 250 - 1.44% 250 ~ - 1.8% */ uint256 step_1 = .99 ether; uint256 step_2 = 50 ether; uint256 step_3 = 100 ether; uint256 step_4 = 250 ether; uint256 dailyPercent_0 = 25; // 0.6% uint256 dailyPercent_1 = 40; // 0.96% uint256 dailyPercent_2 = 50; // 1.2% uint256 dailyPercent_3 = 60; // 1.44% uint256 dailyPercent_4 = 75; // 1.8% if (_balance >= step_4) { return dailyPercent_4; } else if (_balance >= step_3 && _balance < step_4) { return dailyPercent_3; } else if (_balance >= step_2 && _balance < step_3) { return dailyPercent_2; } else if (_balance >= step_1 && _balance < step_2) { return dailyPercent_1; } return dailyPercent_0; } /** * @dev Calculates rate for lockbox balance for msg.sender. User for public * @param _balance Balance to calculate percentage. * @return rate for lockbox balance. * TESTED */ function percentRatePublic(uint256 _balance) public pure returns(uint256) { /** ~ .99 - - 0.6% 1 ~ 50 - 0.96% 51 ~ 100 - 1.2% 100 ~ 250 - 1.44% 250 ~ - 1.8% */ uint256 step_1 = .99 ether; uint256 step_2 = 50 ether; uint256 step_3 = 100 ether; uint256 step_4 = 250 ether; uint256 dailyPercent_0 = 60; // 0.6% uint256 dailyPercent_1 = 96; // 0.96% uint256 dailyPercent_2 = 120; // 1.2% uint256 dailyPercent_3 = 144; // 1.44% uint256 dailyPercent_4 = 180; // 1.8% if (_balance >= step_4) { return dailyPercent_4; } else if (_balance >= step_3 && _balance < step_4) { return dailyPercent_3; } else if (_balance >= step_2 && _balance < step_3) { return dailyPercent_2; } else if (_balance >= step_1 && _balance < step_2) { return dailyPercent_1; } return dailyPercent_0; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[{"name":"_affiliate","type":"address"}],"name":"invest","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"getBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"}],"name":"updateDevEscrow","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"lockboxTotal","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"getInvested","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"investorsCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"guaranteedBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_balance","type":"uint256"}],"name":"percentRateInternal","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"getLockBox","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minInvest","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawDevCommission","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"getLastInvestmentTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"investors","outputs":[{"name":"invested","type":"uint256"},{"name":"lockbox","type":"uint256"},{"name":"withdrawn","type":"uint256"},{"name":"lastInvestmentTime","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"withdrawnProfitTotal","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawProfit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"devCommission","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"fromGame","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"getWithdrawn","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_investor","type":"address"}],"name":"calculateProfit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawAffiliateCommission","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdrawLockBoxAndClose","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"donatedTotal","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"affiliateCommission","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"affiliateCommissionWithdrawnTotal","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"gamesIncomeTotal","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_balance","type":"uint256"}],"name":"percentRatePublic","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[],"name":"reinvestProfit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investor","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Invested","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investor","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Renvested","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"affiliate","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"WithdrawnAffiliateCommission","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investor","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"WithdrawnProfit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investor","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"WithdrawnLockbox","type":"event"}]
Contract Creation Code
608060405273f57924672d6dbf0336c618fda50e284e02715000600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073e4cf94e5d30fb4406a2b139cd0e872a1c8012def600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156100ba57600080fd5b5061291b806100ca6000396000f3fe608060405260043610610159576000357c01000000000000000000000000000000000000000000000000000000009004806303f9c7931461034157806312065fe01461038557806315682cc9146103b0578063197748e0146104015780632ae2b6431461042c5780632b71105114610491578063550dd212146104bc578063567541a9146104e75780635e70dec51461053657806363fd9e381461059b578063699333aa146105c65780636c116a2e146105dd5780636f7bc9be146106425780637cc7310f146106bc578063959499b6146106e757806398f3f8e6146106fe578063a360fea714610763578063ae66d9481461076d578063b1c17506146107d2578063b77fc54914610837578063c1a635171461084e578063c831ae0314610865578063c858257214610890578063cc38c8ee146108f5578063d6b9bf2614610920578063e1f4e68d1461094b578063e3b611351461099a575b600061016f6064346109b190919063ffffffff16565b90506101e58160026000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109db90919063ffffffff16565b60026000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506102be8160026000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109db90919063ffffffff16565b60026000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610338346007546109db90919063ffffffff16565b60078190555050005b6103836004803603602081101561035757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109fc565b005b34801561039157600080fd5b5061039a611075565b6040518082815260200191505060405180910390f35b3480156103bc57600080fd5b506103ff600480360360208110156103d357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611094565b005b34801561040d57600080fd5b50610416611266565b6040518082815260200191505060405180910390f35b34801561043857600080fd5b5061047b6004803603602081101561044f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061126c565b6040518082815260200191505060405180910390f35b34801561049d57600080fd5b506104a66112b7565b6040518082815260200191505060405180910390f35b3480156104c857600080fd5b506104d16112bd565b6040518082815260200191505060405180910390f35b3480156104f357600080fd5b506105206004803603602081101561050a57600080fd5b81019080803590602001909291905050506113ad565b6040518082815260200191505060405180910390f35b34801561054257600080fd5b506105856004803603602081101561055957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061149e565b6040518082815260200191505060405180910390f35b3480156105a757600080fd5b506105b06114e9565b6040518082815260200191505060405180910390f35b3480156105d257600080fd5b506105db6114f4565b005b3480156105e957600080fd5b5061062c6004803603602081101561060057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116e0565b6040518082815260200191505060405180910390f35b34801561064e57600080fd5b506106916004803603602081101561066557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061172b565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b3480156106c857600080fd5b506106d161175b565b6040518082815260200191505060405180910390f35b3480156106f357600080fd5b506106fc611761565b005b34801561070a57600080fd5b5061074d6004803603602081101561072157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c2e565b6040518082815260200191505060405180910390f35b61076b611c46565b005b34801561077957600080fd5b506107bc6004803603602081101561079057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e41565b6040518082815260200191505060405180910390f35b3480156107de57600080fd5b50610821600480360360208110156107f557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e8c565b6040518082815260200191505060405180910390f35b34801561084357600080fd5b5061084c611fd1565b005b34801561085a57600080fd5b50610863612248565b005b34801561087157600080fd5b5061087a61241a565b6040518082815260200191505060405180910390f35b34801561089c57600080fd5b506108df600480360360208110156108b357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612420565b6040518082815260200191505060405180910390f35b34801561090157600080fd5b5061090a612438565b6040518082815260200191505060405180910390f35b34801561092c57600080fd5b5061093561243e565b6040518082815260200191505060405180910390f35b34801561095757600080fd5b506109846004803603602081101561096e57600080fd5b8101908080359060200190929190505050612444565b6040518082815260200191505060405180910390f35b3480156109a657600080fd5b506109af612535565b005b600080821115156109c157600080fd5b600082848115156109ce57fe5b0490508091505092915050565b60008082840190508381101515156109f257600080fd5b8091505092915050565b6658d15e176280003410151515610a7b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f6d696e20302e303235206574680000000000000000000000000000000000000081525060200191505060405180910390fd5b6000610a8633611e8c565b90506000811115610ad9573373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610ad7573d6000803e3d6000fd5b505b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015610b425750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15610bf6576000610b5d6064346109b190919063ffffffff16565b9050610bb181600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109db90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b6000610c01336116e0565b1415610c2457610c1d60016003546109db90919063ffffffff16565b6003819055505b6000610c4d6054610c3f6064346109b190919063ffffffff16565b61288f90919063ffffffff16565b9050610ca3816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546109db90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550610d3c346000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546109db90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550426000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301819055506000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009055610e21816004546109db90919063ffffffff16565b6004819055506000610e506002610e426064346109b190919063ffffffff16565b61288f90919063ffffffff16565b9050610ec68160026000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109db90919063ffffffff16565b60026000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f9f8160026000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109db90919063ffffffff16565b60026000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fc3f75dfc78f6efac88ad5abb5e606276b903647d97b2a62a1ef89840a658bbc33334604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a150505050565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b736a5d9648381b90af0e6881c26739efa4379c19b273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611121575073dbd32ef31fcd7fc1ef028a7471a7a9bfc39ab60973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515611195576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260078152602001807f6e6f74206465760000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b736a5d9648381b90af0e6881c26739efa4379c19b273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112215780600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055611262565b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555b5050565b60045481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b60035481565b60006113a860026000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461139a60026000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546004546109db90919063ffffffff16565b6109db90919063ffffffff16565b905090565b600080670dbd2fc137a30000905060006802b5e3af16b18800009050600068056bc75e2d6310000090506000680d8d726b7177a8000090506000601990506000602890506000603290506000603c90506000604b9050858b10151561141d57809950505050505050505050611499565b868b1015801561142c5750858b105b1561144257819950505050505050505050611499565b878b101580156114515750868b105b1561146757829950505050505050505050611499565b888b101580156114765750878b105b1561148c57839950505050505050505050611499565b8499505050505050505050505b919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050919050565b6658d15e1762800081565b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811115156115b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f6e6f2064657620636f6d6d697373696f6e00000000000000000000000000000081525060200191505060405180910390fd5b6004546115dd823073ffffffffffffffffffffffffffffffffffffffff16316128cd90919063ffffffff16565b10151515611653576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f6e6f7420656e6f7567682066756e64730000000000000000000000000000000081525060200191505060405180910390fd5b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600090553373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156116dc573d6000803e3d6000fd5b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301549050919050565b60006020528060005260406000206000915090508060000154908060010154908060020154908060030154905084565b60055481565b600061176c33611e8c565b90506000811115156117e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f6e6f2070726f666974000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6117ee6112bd565b611818823073ffffffffffffffffffffffffffffffffffffffff16316128cd90919063ffffffff16565b1015151561188e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f6e6f7420656e6f7567682066756e64730000000000000000000000000000000081525060200191505060405180910390fd5b426000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030181905550611928816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201546109db90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550611982816005546109db90919063ffffffff16565b600581905550600061199e6064836109b190919063ffffffff16565b9050611a148160026000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109db90919063ffffffff16565b60026000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611aed8160026000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109db90919063ffffffff16565b60026000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff166108fc611b93605f611b856064876109b190919063ffffffff16565b61288f90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611bbe573d6000803e3d6000fd5b507f9acd446c7c5d67289e9ab24bf8d274c3e60b36709aad13c9ccefec55a25c00bb3383604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b60026020528060005260406000206000915090505481565b6000611c6f6002611c616064346109b190919063ffffffff16565b61288f90919063ffffffff16565b9050611ce58160026000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109db90919063ffffffff16565b60026000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611dbe8160026000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109db90919063ffffffff16565b60026000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e38346008546109db90919063ffffffff16565b60088190555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549050919050565b600080611ef7610e10611ee96000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154426128cd90919063ffffffff16565b6109b190919063ffffffff16565b90506000611f456000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546113ad565b90506000611f5c828461288f90919063ffffffff16565b9050611fc781611fb9620186a06000808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546109b190919063ffffffff16565b61288f90919063ffffffff16565b9350505050919050565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008111151561208d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f6e6f20636f6d6d697373696f6e0000000000000000000000000000000000000081525060200191505060405180910390fd5b6120956112bd565b6120bf823073ffffffffffffffffffffffffffffffffffffffff16316128cd90919063ffffffff16565b10151515612135576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f6e6f7420656e6f7567682066756e64730000000000000000000000000000000081525060200191505060405180910390fd5b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000905561218d816006546109db90919063ffffffff16565b6006819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156121d9573d6000803e3d6000fd5b507ff00b94e6d3eae70f13396fc1316a95fffe65e4e4268f517278311cd9618e75e33382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a150565b60006122533361149e565b90506000811115156122cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f6e6f20696e766573746d656e747300000000000000000000000000000000000081525060200191505060405180910390fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160009055600182016000905560028201600090556003820160009055505061234460016003546128cd90919063ffffffff16565b60038190555061235f816004546128cd90919063ffffffff16565b6004819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156123ab573d6000803e3d6000fd5b507f2a14c6c4baf70f0f57eb7d8bed4856b2a7f80a238a2dce681b404e0cae9dce7b3382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a150565b60075481565b60016020528060005260406000206000915090505481565b60065481565b60085481565b600080670dbd2fc137a30000905060006802b5e3af16b18800009050600068056bc75e2d6310000090506000680d8d726b7177a8000090506000603c9050600060609050600060789050600060909050600060b49050858b1015156124b457809950505050505050505050612530565b868b101580156124c35750858b105b156124d957819950505050505050505050612530565b878b101580156124e85750868b105b156124fe57829950505050505050505050612530565b888b1015801561250d5750878b105b1561252357839950505050505050505050612530565b8499505050505050505050505b919050565b600061254033611e8c565b90506000811115156125ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f6e6f2070726f666974000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6125c26112bd565b6125ec823073ffffffffffffffffffffffffffffffffffffffff16316128cd90919063ffffffff16565b10151515612662576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f6e6f7420656e6f7567682066756e64730000000000000000000000000000000081525060200191505060405180910390fd5b600061268b605461267d6064856109b190919063ffffffff16565b61288f90919063ffffffff16565b90506126e1816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546109db90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550426000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301819055506127c0826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546109db90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555061281a816004546109db90919063ffffffff16565b6004819055507f31b79d553a711214890a10f851808f023529bb2f0ce14b7954818f3746c8f1743383604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b6000808314156128a257600090506128c7565b600082840290508284828115156128b557fe5b041415156128c257600080fd5b809150505b92915050565b60008282111515156128de57600080fd5b60008284039050809150509291505056fea165627a7a72305820fce0e4a0d2e1cc0d7524e649161a68f02e28500df8011c38ff63e501e6374e850029
Deployed Bytecode
0x608060405260043610610159576000357c01000000000000000000000000000000000000000000000000000000009004806303f9c7931461034157806312065fe01461038557806315682cc9146103b0578063197748e0146104015780632ae2b6431461042c5780632b71105114610491578063550dd212146104bc578063567541a9146104e75780635e70dec51461053657806363fd9e381461059b578063699333aa146105c65780636c116a2e146105dd5780636f7bc9be146106425780637cc7310f146106bc578063959499b6146106e757806398f3f8e6146106fe578063a360fea714610763578063ae66d9481461076d578063b1c17506146107d2578063b77fc54914610837578063c1a635171461084e578063c831ae0314610865578063c858257214610890578063cc38c8ee146108f5578063d6b9bf2614610920578063e1f4e68d1461094b578063e3b611351461099a575b600061016f6064346109b190919063ffffffff16565b90506101e58160026000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109db90919063ffffffff16565b60026000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506102be8160026000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109db90919063ffffffff16565b60026000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610338346007546109db90919063ffffffff16565b60078190555050005b6103836004803603602081101561035757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109fc565b005b34801561039157600080fd5b5061039a611075565b6040518082815260200191505060405180910390f35b3480156103bc57600080fd5b506103ff600480360360208110156103d357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611094565b005b34801561040d57600080fd5b50610416611266565b6040518082815260200191505060405180910390f35b34801561043857600080fd5b5061047b6004803603602081101561044f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061126c565b6040518082815260200191505060405180910390f35b34801561049d57600080fd5b506104a66112b7565b6040518082815260200191505060405180910390f35b3480156104c857600080fd5b506104d16112bd565b6040518082815260200191505060405180910390f35b3480156104f357600080fd5b506105206004803603602081101561050a57600080fd5b81019080803590602001909291905050506113ad565b6040518082815260200191505060405180910390f35b34801561054257600080fd5b506105856004803603602081101561055957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061149e565b6040518082815260200191505060405180910390f35b3480156105a757600080fd5b506105b06114e9565b6040518082815260200191505060405180910390f35b3480156105d257600080fd5b506105db6114f4565b005b3480156105e957600080fd5b5061062c6004803603602081101561060057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116e0565b6040518082815260200191505060405180910390f35b34801561064e57600080fd5b506106916004803603602081101561066557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061172b565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b3480156106c857600080fd5b506106d161175b565b6040518082815260200191505060405180910390f35b3480156106f357600080fd5b506106fc611761565b005b34801561070a57600080fd5b5061074d6004803603602081101561072157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c2e565b6040518082815260200191505060405180910390f35b61076b611c46565b005b34801561077957600080fd5b506107bc6004803603602081101561079057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e41565b6040518082815260200191505060405180910390f35b3480156107de57600080fd5b50610821600480360360208110156107f557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e8c565b6040518082815260200191505060405180910390f35b34801561084357600080fd5b5061084c611fd1565b005b34801561085a57600080fd5b50610863612248565b005b34801561087157600080fd5b5061087a61241a565b6040518082815260200191505060405180910390f35b34801561089c57600080fd5b506108df600480360360208110156108b357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612420565b6040518082815260200191505060405180910390f35b34801561090157600080fd5b5061090a612438565b6040518082815260200191505060405180910390f35b34801561092c57600080fd5b5061093561243e565b6040518082815260200191505060405180910390f35b34801561095757600080fd5b506109846004803603602081101561096e57600080fd5b8101908080359060200190929190505050612444565b6040518082815260200191505060405180910390f35b3480156109a657600080fd5b506109af612535565b005b600080821115156109c157600080fd5b600082848115156109ce57fe5b0490508091505092915050565b60008082840190508381101515156109f257600080fd5b8091505092915050565b6658d15e176280003410151515610a7b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f6d696e20302e303235206574680000000000000000000000000000000000000081525060200191505060405180910390fd5b6000610a8633611e8c565b90506000811115610ad9573373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610ad7573d6000803e3d6000fd5b505b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015610b425750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15610bf6576000610b5d6064346109b190919063ffffffff16565b9050610bb181600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109db90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b6000610c01336116e0565b1415610c2457610c1d60016003546109db90919063ffffffff16565b6003819055505b6000610c4d6054610c3f6064346109b190919063ffffffff16565b61288f90919063ffffffff16565b9050610ca3816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546109db90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550610d3c346000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546109db90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550426000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301819055506000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009055610e21816004546109db90919063ffffffff16565b6004819055506000610e506002610e426064346109b190919063ffffffff16565b61288f90919063ffffffff16565b9050610ec68160026000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109db90919063ffffffff16565b60026000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f9f8160026000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109db90919063ffffffff16565b60026000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fc3f75dfc78f6efac88ad5abb5e606276b903647d97b2a62a1ef89840a658bbc33334604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a150505050565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b736a5d9648381b90af0e6881c26739efa4379c19b273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611121575073dbd32ef31fcd7fc1ef028a7471a7a9bfc39ab60973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515611195576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260078152602001807f6e6f74206465760000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b736a5d9648381b90af0e6881c26739efa4379c19b273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112215780600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055611262565b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555b5050565b60045481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b60035481565b60006113a860026000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461139a60026000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546004546109db90919063ffffffff16565b6109db90919063ffffffff16565b905090565b600080670dbd2fc137a30000905060006802b5e3af16b18800009050600068056bc75e2d6310000090506000680d8d726b7177a8000090506000601990506000602890506000603290506000603c90506000604b9050858b10151561141d57809950505050505050505050611499565b868b1015801561142c5750858b105b1561144257819950505050505050505050611499565b878b101580156114515750868b105b1561146757829950505050505050505050611499565b888b101580156114765750878b105b1561148c57839950505050505050505050611499565b8499505050505050505050505b919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050919050565b6658d15e1762800081565b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811115156115b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f6e6f2064657620636f6d6d697373696f6e00000000000000000000000000000081525060200191505060405180910390fd5b6004546115dd823073ffffffffffffffffffffffffffffffffffffffff16316128cd90919063ffffffff16565b10151515611653576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f6e6f7420656e6f7567682066756e64730000000000000000000000000000000081525060200191505060405180910390fd5b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600090553373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156116dc573d6000803e3d6000fd5b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301549050919050565b60006020528060005260406000206000915090508060000154908060010154908060020154908060030154905084565b60055481565b600061176c33611e8c565b90506000811115156117e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f6e6f2070726f666974000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6117ee6112bd565b611818823073ffffffffffffffffffffffffffffffffffffffff16316128cd90919063ffffffff16565b1015151561188e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f6e6f7420656e6f7567682066756e64730000000000000000000000000000000081525060200191505060405180910390fd5b426000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030181905550611928816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201546109db90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550611982816005546109db90919063ffffffff16565b600581905550600061199e6064836109b190919063ffffffff16565b9050611a148160026000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109db90919063ffffffff16565b60026000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611aed8160026000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109db90919063ffffffff16565b60026000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff166108fc611b93605f611b856064876109b190919063ffffffff16565b61288f90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611bbe573d6000803e3d6000fd5b507f9acd446c7c5d67289e9ab24bf8d274c3e60b36709aad13c9ccefec55a25c00bb3383604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b60026020528060005260406000206000915090505481565b6000611c6f6002611c616064346109b190919063ffffffff16565b61288f90919063ffffffff16565b9050611ce58160026000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109db90919063ffffffff16565b60026000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611dbe8160026000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109db90919063ffffffff16565b60026000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e38346008546109db90919063ffffffff16565b60088190555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549050919050565b600080611ef7610e10611ee96000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154426128cd90919063ffffffff16565b6109b190919063ffffffff16565b90506000611f456000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546113ad565b90506000611f5c828461288f90919063ffffffff16565b9050611fc781611fb9620186a06000808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546109b190919063ffffffff16565b61288f90919063ffffffff16565b9350505050919050565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008111151561208d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f6e6f20636f6d6d697373696f6e0000000000000000000000000000000000000081525060200191505060405180910390fd5b6120956112bd565b6120bf823073ffffffffffffffffffffffffffffffffffffffff16316128cd90919063ffffffff16565b10151515612135576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f6e6f7420656e6f7567682066756e64730000000000000000000000000000000081525060200191505060405180910390fd5b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000905561218d816006546109db90919063ffffffff16565b6006819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156121d9573d6000803e3d6000fd5b507ff00b94e6d3eae70f13396fc1316a95fffe65e4e4268f517278311cd9618e75e33382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a150565b60006122533361149e565b90506000811115156122cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f6e6f20696e766573746d656e747300000000000000000000000000000000000081525060200191505060405180910390fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160009055600182016000905560028201600090556003820160009055505061234460016003546128cd90919063ffffffff16565b60038190555061235f816004546128cd90919063ffffffff16565b6004819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156123ab573d6000803e3d6000fd5b507f2a14c6c4baf70f0f57eb7d8bed4856b2a7f80a238a2dce681b404e0cae9dce7b3382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a150565b60075481565b60016020528060005260406000206000915090505481565b60065481565b60085481565b600080670dbd2fc137a30000905060006802b5e3af16b18800009050600068056bc75e2d6310000090506000680d8d726b7177a8000090506000603c9050600060609050600060789050600060909050600060b49050858b1015156124b457809950505050505050505050612530565b868b101580156124c35750858b105b156124d957819950505050505050505050612530565b878b101580156124e85750868b105b156124fe57829950505050505050505050612530565b888b1015801561250d5750878b105b1561252357839950505050505050505050612530565b8499505050505050505050505b919050565b600061254033611e8c565b90506000811115156125ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f6e6f2070726f666974000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6125c26112bd565b6125ec823073ffffffffffffffffffffffffffffffffffffffff16316128cd90919063ffffffff16565b10151515612662576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f6e6f7420656e6f7567682066756e64730000000000000000000000000000000081525060200191505060405180910390fd5b600061268b605461267d6064856109b190919063ffffffff16565b61288f90919063ffffffff16565b90506126e1816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546109db90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550426000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301819055506127c0826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546109db90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555061281a816004546109db90919063ffffffff16565b6004819055507f31b79d553a711214890a10f851808f023529bb2f0ce14b7954818f3746c8f1743383604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b6000808314156128a257600090506128c7565b600082840290508284828115156128b557fe5b041415156128c257600080fd5b809150505b92915050565b60008282111515156128de57600080fd5b60008284039050809150509291505056fea165627a7a72305820fce0e4a0d2e1cc0d7524e649161a68f02e28500df8011c38ff63e501e6374e850029
Deployed Bytecode Sourcemap
2044:12396:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3584:14;3601:18;3615:3;3601:9;:13;;:18;;;;:::i;:::-;3584:35;;3660:39;3692:6;3660:13;:27;3674:12;;;;;;;;;;;3660:27;;;;;;;;;;;;;;;;:31;;:39;;;;:::i;:::-;3630:13;:27;3644:12;;;;;;;;;;;3630:27;;;;;;;;;;;;;;;:69;;;;3740:39;3772:6;3740:13;:27;3754:12;;;;;;;;;;;3740:27;;;;;;;;;;;;;;;;:31;;:39;;;;:::i;:::-;3710:13;:27;3724:12;;;;;;;;;;;3710:27;;;;;;;;;;;;;;;:69;;;;3815:27;3832:9;3815:12;;:16;;:27;;;;:::i;:::-;3800:12;:42;;;;3513:337;2044:12396;6176:1365;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6176:1365:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;5642:97;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5642:97:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7687:236;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7687:236:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7687:236:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;2474:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2474:27:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4481:122;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4481:122:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4481:122:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2438:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2438:29:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5895:162;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5895:162:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12051:1082;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12051:1082:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12051:1082:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4768:120;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4768:120:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4768:120:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3029:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3029:47:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8018:340;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8018:340:0;;;:::i;:::-;;5365:142;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5365:142:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5365:142:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2261:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2261:50:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2261:50:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2508:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2508:35:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9087:848;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9087:848:0;;;:::i;:::-;;2380:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2380:49:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2380:49:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3953:361;;;:::i;:::-;;5057:124;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5057:124:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5057:124:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11453:393;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11453:393:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11453:393:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8468:529;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8468:529:0;;;:::i;:::-;;10116:417;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10116:417:0;;;:::i;:::-;;2611:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2611:27:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2318:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2318:55:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2318:55:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2550:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2550:48:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2645:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2645:31:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13354:1083;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13354:1083:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13354:1083:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10617:655;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10617:655:0;;;:::i;:::-;;867:303;925:7;1024:1;1020;:5;1012:14;;;;;;;;1037:9;1053:1;1049;:5;;;;;;;;1037:17;;1161:1;1154:8;;;867:303;;;;:::o;1542:150::-;1600:7;1620:9;1636:1;1632;:5;1620:17;;1661:1;1656;:6;;1648:15;;;;;;;;1683:1;1676:8;;;1542:150;;;;:::o;6176:1365::-;3065:11;6246:9;:22;;6238:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6299:14;6316:27;6332:10;6316:15;:27::i;:::-;6299:44;;6366:1;6357:6;:10;6354:68;;;6383:10;:19;;:27;6403:6;6383:27;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6383:27:0;6354:68;6492:10;6478:24;;:10;:24;;;;:52;;;;;6528:1;6506:24;;:10;:24;;;;6478:52;6475:219;;;6547:18;6568;6582:3;6568:9;:13;;:18;;;;:::i;:::-;6547:39;;6635:47;6671:10;6635:19;:31;6655:10;6635:31;;;;;;;;;;;;;;;;:35;;:47;;;;:::i;:::-;6601:19;:31;6621:10;6601:31;;;;;;;;;;;;;;;:81;;;;6475:219;;6746:1;6709:33;6731:10;6709:21;:33::i;:::-;:38;6706:108;;;6781:21;6800:1;6781:14;;:18;;:21;;;;:::i;:::-;6764:14;:38;;;;6706:108;6826:21;6850:26;6873:2;6850:18;6864:3;6850:9;:13;;:18;;;;:::i;:::-;:22;;:26;;;;:::i;:::-;6826:50;;6919:48;6953:13;6919:9;:21;6929:10;6919:21;;;;;;;;;;;;;;;:29;;;:33;;:48;;;;:::i;:::-;6887:9;:21;6897:10;6887:21;;;;;;;;;;;;;;;:29;;:80;;;;7011:45;7046:9;7011;:21;7021:10;7011:21;;;;;;;;;;;;;;;:30;;;:34;;:45;;;;:::i;:::-;6978:9;:21;6988:10;6978:21;;;;;;;;;;;;;;;:30;;:78;;;;7110:3;7067:9;:21;7077:10;7067:21;;;;;;;;;;;;;;;:40;;:46;;;;7131:9;:21;7141:10;7131:21;;;;;;;;;;;;;;;:31;;7124:38;;;7198:31;7215:13;7198:12;;:16;;:31;;;;:::i;:::-;7183:12;:46;;;;7282:14;7299:25;7322:1;7299:18;7313:3;7299:9;:13;;:18;;;;:::i;:::-;:22;;:25;;;;:::i;:::-;7282:42;;7365:39;7397:6;7365:13;:27;7379:12;;;;;;;;;;;7365:27;;;;;;;;;;;;;;;;:31;;:39;;;;:::i;:::-;7335:13;:27;7349:12;;;;;;;;;;;7335:27;;;;;;;;;;;;;;;:69;;;;7445:39;7477:6;7445:13;:27;7459:12;;;;;;;;;;;7445:27;;;;;;;;;;;;;;;;:31;;:39;;;;:::i;:::-;7415:13;:27;7429:12;;;;;;;;;;;7415:27;;;;;;;;;;;;;;;:69;;;;7502:31;7511:10;7523:9;7502:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;6176:1365;;;;:::o;5642:97::-;5684:7;5718:4;5710:21;;;5703:28;;5642:97;:::o;7687:236::-;2729:42;7756:26;;:10;:26;;;:56;;;;2818:42;7786:26;;:10;:26;;;7756:56;7748:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2729:42;7836:26;;:10;:26;;;7835:80;;7907:8;7892:12;;:23;;;;;;;;;;;;;;;;;7835:80;;;7881:8;7866:12;;:23;;;;;;;;;;;;;;;;;7835:80;;7687:236;:::o;2474:27::-;;;;:::o;4481:122::-;4540:7;4567:9;:19;4577:8;4567:19;;;;;;;;;;;;;;;:28;;;4560:35;;4481:122;;;:::o;2438:29::-;;;;:::o;5895:162::-;5944:7;5971:78;6021:13;:27;6035:12;;;;;;;;;;;6021:27;;;;;;;;;;;;;;;;5971:45;5988:13;:27;6002:12;;;;;;;;;;;5988:27;;;;;;;;;;;;;;;;5971:12;;:16;;:45;;;;:::i;:::-;:49;;:78;;;;:::i;:::-;5964:85;;5895:162;:::o;12051:1082::-;12118:7;12325:14;12342:9;12325:26;;12362:14;12379:8;12362:25;;12398:14;12415:9;12398:26;;12435:14;12452:9;12435:26;;12474:22;12499:2;12474:27;;12523:22;12548:2;12523:27;;12573:22;12598:2;12573:27;;12622:22;12647:2;12622:27;;12672:22;12697:2;12672:27;;12739:6;12727:8;:18;;12723:369;;;12769:14;12762:21;;;;;;;;;;;;;12723:369;12817:6;12805:8;:18;;:39;;;;;12838:6;12827:8;:17;12805:39;12801:291;;;12868:14;12861:21;;;;;;;;;;;;;12801:291;12916:6;12904:8;:18;;:39;;;;;12937:6;12926:8;:17;12904:39;12900:192;;;12967:14;12960:21;;;;;;;;;;;;;12900:192;13015:6;13003:8;:18;;:39;;;;;13036:6;13025:8;:17;13003:39;12999:93;;;13066:14;13059:21;;;;;;;;;;;;;12999:93;13111:14;13104:21;;;;;;;;;;;12051:1082;;;;:::o;4768:120::-;4826:7;4853:9;:19;4863:8;4853:19;;;;;;;;;;;;;;;:27;;;4846:34;;4768:120;;;:::o;3029:47::-;3065:11;3029:47;:::o;8018:340::-;8069:18;8090:13;:25;8104:10;8090:25;;;;;;;;;;;;;;;;8069:46;;8147:1;8134:10;:14;8126:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8230:12;;8189:37;8215:10;8197:4;8189:21;;;:25;;:37;;;;:::i;:::-;:53;;8181:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8283:13;:25;8297:10;8283:25;;;;;;;;;;;;;;;8276:32;;;8319:10;:19;;:31;8339:10;8319:31;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8319:31:0;8018:340;:::o;5365:142::-;5434:7;5461:9;:19;5471:8;5461:19;;;;;;;;;;;;;;;:38;;;5454:45;;5365:142;;;:::o;2261:50::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2508:35::-;;;;:::o;9087:848::-;9131:14;9148:27;9164:10;9148:15;:27::i;:::-;9131:44;;9203:1;9194:6;:10;9186:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9274:19;:17;:19::i;:::-;9237:33;9263:6;9245:4;9237:21;;;:25;;:33;;;;:::i;:::-;:56;;9229:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9370:3;9327:9;:21;9337:10;9327:21;;;;;;;;;;;;;;;:40;;:46;;;;9418:43;9454:6;9418:9;:21;9428:10;9418:21;;;;;;;;;;;;;;;:31;;;:35;;:43;;;;:::i;:::-;9384:9;:21;9394:10;9384:21;;;;;;;;;;;;;;;:31;;:77;;;;9497:32;9522:6;9497:20;;:24;;:32;;;;:::i;:::-;9474:20;:55;;;;9582:14;9599:15;9610:3;9599:6;:10;;:15;;;;:::i;:::-;9582:32;;9655:39;9687:6;9655:13;:27;9669:12;;;;;;;;;;;9655:27;;;;;;;;;;;;;;;;:31;;:39;;;;:::i;:::-;9625:13;:27;9639:12;;;;;;;;;;;9625:27;;;;;;;;;;;;;;;:69;;;;9735:39;9767:6;9735:13;:27;9749:12;;;;;;;;;;;9735:27;;;;;;;;;;;;;;;;:31;;:39;;;;:::i;:::-;9705:13;:27;9719:12;;;;;;;;;;;9705:27;;;;;;;;;;;;;;;:69;;;;9830:10;:19;;:44;9850:23;9870:2;9850:15;9861:3;9850:6;:10;;:15;;;;:::i;:::-;:19;;:23;;;;:::i;:::-;9830:44;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9830:44:0;9892:35;9908:10;9920:6;9892:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;9087:848;;:::o;2380:49::-;;;;;;;;;;;;;;;;;:::o;3953:361::-;4033:14;4050:25;4073:1;4050:18;4064:3;4050:9;:13;;:18;;;;:::i;:::-;:22;;:25;;;;:::i;:::-;4033:42;;4116:39;4148:6;4116:13;:27;4130:12;;;;;;;;;;;4116:27;;;;;;;;;;;;;;;;:31;;:39;;;;:::i;:::-;4086:13;:27;4100:12;;;;;;;;;;;4086:27;;;;;;;;;;;;;;;:69;;;;4196:39;4228:6;4196:13;:27;4210:12;;;;;;;;;;;4196:27;;;;;;;;;;;;;;;;:31;;:39;;;;:::i;:::-;4166:13;:27;4180:12;;;;;;;;;;;4166:27;;;;;;;;;;;;;;;:69;;;;4275:31;4296:9;4275:16;;:20;;:31;;;;:::i;:::-;4256:16;:50;;;;3953:361;:::o;5057:124::-;5117:7;5144:9;:19;5154:8;5144:19;;;;;;;;;;;;;;;:29;;;5137:36;;5057:124;;;:::o;11453:393::-;11517:7;11536:22;11561:58;11614:4;11561:48;11569:9;:20;11579:9;11569:20;;;;;;;;;;;;;;;:39;;;11561:3;:7;;:48;;;;:::i;:::-;:52;;:58;;;;:::i;:::-;11536:83;;11630:12;11645:49;11665:9;:20;11675:9;11665:20;;;;;;;;;;;;;;;:28;;;11645:19;:49::i;:::-;11630:64;;11705:25;11733:24;11752:4;11733:14;:18;;:24;;;;:::i;:::-;11705:52;;11775:63;11820:17;11775:40;11808:6;11775:9;:20;11785:9;11775:20;;;;;;;;;;;;;;;:28;;;:32;;:40;;;;:::i;:::-;:44;;:63;;;;:::i;:::-;11768:70;;;;;11453:393;;;:::o;8468:529::-;8525:18;8546:19;:31;8566:10;8546:31;;;;;;;;;;;;;;;;8525:52;;8609:1;8596:10;:14;8588:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8688:19;:17;:19::i;:::-;8647:37;8673:10;8655:4;8647:21;;;:25;;:37;;;;:::i;:::-;:60;;8639:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8748:19;:31;8768:10;8748:31;;;;;;;;;;;;;;;8741:38;;;8826:49;8864:10;8826:33;;:37;;:49;;;;:::i;:::-;8790:33;:85;;;;8888:10;:19;;:31;8908:10;8888:31;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8888:31:0;8937:52;8966:10;8978;8937:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;8468:529;:::o;10116:417::-;10169:21;10193:22;10204:10;10193;:22::i;:::-;10169:46;;10250:1;10234:13;:17;10226:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10290:9;:21;10300:10;10290:21;;;;;;;;;;;;;;;;10283:28;;;;;;;;;;;;;;;;;;;;;;;;;;10339:21;10358:1;10339:14;;:18;;:21;;;;:::i;:::-;10322:14;:38;;;;10386:31;10403:13;10386:12;;:16;;:31;;;;:::i;:::-;10371:12;:46;;;;10430:10;:19;;:34;10450:13;10430:34;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10430:34:0;10482:43;10499:10;10511:13;10482:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;10116:417;:::o;2611:27::-;;;;:::o;2318:55::-;;;;;;;;;;;;;;;;;:::o;2550:48::-;;;;:::o;2645:31::-;;;;:::o;13354:1083::-;13419:7;13626:14;13643:9;13626:26;;13663:14;13680:8;13663:25;;13699:14;13716:9;13699:26;;13736:14;13753:9;13736:26;;13775:22;13800:2;13775:27;;13824:22;13849:2;13824:27;;13874:22;13899:3;13874:28;;13924:22;13949:3;13924:28;;13975:22;14000:3;13975:28;;14043:6;14031:8;:18;;14027:369;;;14073:14;14066:21;;;;;;;;;;;;;14027:369;14121:6;14109:8;:18;;:39;;;;;14142:6;14131:8;:17;14109:39;14105:291;;;14172:14;14165:21;;;;;;;;;;;;;14105:291;14220:6;14208:8;:18;;:39;;;;;14241:6;14230:8;:17;14208:39;14204:192;;;14271:14;14264:21;;;;;;;;;;;;;14204:192;14319:6;14307:8;:18;;:39;;;;;14340:6;14329:8;:17;14307:39;14303:93;;;14370:14;14363:21;;;;;;;;;;;;;14303:93;14415:14;14408:21;;;;;;;;;;;13354:1083;;;;:::o;10617:655::-;10661:14;10678:27;10694:10;10678:15;:27::i;:::-;10661:44;;10733:1;10724:6;:10;10716:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10804:19;:17;:19::i;:::-;10767:33;10793:6;10775:4;10767:21;;;:25;;:33;;;;:::i;:::-;:56;;10759:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10865:25;10893:23;10913:2;10893:15;10904:3;10893:6;:10;;:15;;;;:::i;:::-;:19;;:23;;;;:::i;:::-;10865:51;;10959:52;10993:17;10959:9;:21;10969:10;10959:21;;;;;;;;;;;;;;;:29;;;:33;;:52;;;;:::i;:::-;10927:9;:21;10937:10;10927:21;;;;;;;;;;;;;;;:29;;:84;;;;11065:3;11022:9;:21;11032:10;11022:21;;;;;;;;;;;;;;;:40;;:46;;;;11112:42;11147:6;11112:9;:21;11122:10;11112:21;;;;;;;;;;;;;;;:30;;;:34;;:42;;;;:::i;:::-;11079:9;:21;11089:10;11079:21;;;;;;;;;;;;;;;:30;;:75;;;;11182:35;11199:17;11182:12;;:16;;:35;;;;:::i;:::-;11167:12;:50;;;;11235:29;11245:10;11257:6;11235:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;10617:655;;:::o;301:433::-;359:7;608:1;603;:6;599:47;;;633:1;626:8;;;;599:47;658:9;674:1;670;:5;658:17;;703:1;698;694;:5;;;;;;;;:10;686:19;;;;;;;;725:1;718:8;;;301:433;;;;;:::o;1306:150::-;1364:7;1397:1;1392;:6;;1384:15;;;;;;;;1410:9;1426:1;1422;:5;1410:17;;1447:1;1440:8;;;1306:150;;;;:::o
Swarm Source
bzzr://fce0e4a0d2e1cc0d7524e649161a68f02e28500df8011c38ff63e501e6374e85
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $2,284.57 | 0.0149 | $34.05 |
Loading...
Loading
[ Download: CSV Export ]
[ 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.