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 59 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Harvest | 11444108 | 1516 days ago | IN | 0 ETH | 0.01337344 | ||||
Harvest | 11347099 | 1531 days ago | IN | 0 ETH | 0.01136215 | ||||
Set Burn Address | 11273707 | 1542 days ago | IN | 0 ETH | 0.00085305 | ||||
Harvest | 11271286 | 1543 days ago | IN | 0 ETH | 0.01136215 | ||||
Harvest | 11268693 | 1543 days ago | IN | 0 ETH | 0.01303056 | ||||
Harvest | 11256603 | 1545 days ago | IN | 0 ETH | 0.01192571 | ||||
Harvest | 11247787 | 1546 days ago | IN | 0 ETH | 0.01148797 | ||||
Harvest | 11234207 | 1548 days ago | IN | 0 ETH | 0.01523285 | ||||
Harvest | 11214093 | 1551 days ago | IN | 0 ETH | 0.01516845 | ||||
Harvest | 11187942 | 1555 days ago | IN | 0 ETH | 0.01523302 | ||||
Harvest | 11168215 | 1558 days ago | IN | 0 ETH | 0.01490893 | ||||
Harvest | 11157880 | 1560 days ago | IN | 0 ETH | 0.015073 | ||||
Harvest | 11142721 | 1562 days ago | IN | 0 ETH | 0.01525651 | ||||
Harvest | 11129019 | 1564 days ago | IN | 0 ETH | 0.01498033 | ||||
Harvest | 11116210 | 1566 days ago | IN | 0 ETH | 0.0149671 | ||||
Harvest | 11103648 | 1568 days ago | IN | 0 ETH | 0.02619387 | ||||
Harvest | 11089663 | 1570 days ago | IN | 0 ETH | 0.01930691 | ||||
Harvest | 11082920 | 1571 days ago | IN | 0 ETH | 0.01748058 | ||||
Harvest | 11070742 | 1573 days ago | IN | 0 ETH | 0.01652269 | ||||
Harvest | 11063744 | 1574 days ago | IN | 0 ETH | 0.02734038 | ||||
Harvest | 11050592 | 1576 days ago | IN | 0 ETH | 0.02894768 | ||||
Harvest | 11044312 | 1577 days ago | IN | 0 ETH | 0.02877454 | ||||
Harvest | 11038257 | 1578 days ago | IN | 0 ETH | 0.03343006 | ||||
Harvest | 11031116 | 1579 days ago | IN | 0 ETH | 0.03016963 | ||||
Harvest | 11024195 | 1580 days ago | IN | 0 ETH | 0.02964049 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
StrategyDForceDAI
Compiler Version
v0.5.17+commit.d19bba13
Contract Source Code (Solidity)Audit Report
/** *Submitted for verification at Etherscan.io on 2020-09-06 */ /** *Submitted for verification at Etherscan.io on 2020-08-13 */ // SPDX-License-Identifier: MIT pragma solidity ^0.5.17; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function decimals() external view returns (uint); function name() external view returns (string memory); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint256 c = a / b; return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } library Address { function isContract(address account) internal view returns (bool) { bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != 0x0 && codehash != accountHash); } function toPayable(address account) internal pure returns (address payable) { return address(uint160(account)); } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-call-value (bool success, ) = recipient.call.value(amount)(""); require(success, "Address: unable to send value, recipient may have reverted"); } } library SafeERC20 { using SafeMath for uint256; using Address for address; function safeTransfer(IERC20 token, address to, uint256 value) internal { callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value)); } function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal { callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value)); } function safeApprove(IERC20 token, address spender, uint256 value) internal { require((value == 0) || (token.allowance(address(this), spender) == 0), "SafeERC20: approve from non-zero to non-zero allowance" ); callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value)); } function callOptionalReturn(IERC20 token, bytes memory data) private { require(address(token).isContract(), "SafeERC20: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = address(token).call(data); require(success, "SafeERC20: low-level call failed"); if (returndata.length > 0) { // Return data is optional // solhint-disable-next-line max-line-length require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed"); } } } interface Controller { function vaults(address) external view returns (address); function rewards() external view returns (address); } /* A strategy must implement the following calls; - deposit() - withdraw(address) must exclude any tokens used in the yield - Controller role - withdraw should return to Controller - withdraw(uint) - Controller | Vault role - withdraw should always return to vault - withdrawAll() - Controller | Vault role - withdraw should always return to vault - balanceOf() Where possible, strategies must remain as immutable as possible, instead of updating variables, we update the contract by linking it in the controller */ interface dRewards { function withdraw(uint) external; function getReward() external; function stake(uint) external; function balanceOf(address) external view returns (uint); function exit() external; } interface dERC20 { function mint(address, uint256) external; function redeem(address, uint) external; function getTokenBalance(address) external view returns (uint); function getExchangeRate() external view returns (uint); } interface UniswapRouter { function swapExactTokensForTokens(uint, uint, address[] calldata, address, uint) external; } contract StrategyDForceDAI { using SafeERC20 for IERC20; using Address for address; using SafeMath for uint256; address constant public want = address(0x6B175474E89094C44Da98b954EedeAC495271d0F); address constant public d = address(0x02285AcaafEB533e03A7306C55EC031297df9224); address constant public pool = address(0xD2fA07cD6Cd4A5A96aa86BacfA6E50bB3aaDBA8B); address constant public df = address(0x431ad2ff6a9C365805eBaD47Ee021148d6f7DBe0); address constant public output = address(0x431ad2ff6a9C365805eBaD47Ee021148d6f7DBe0); address constant public unirouter = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address constant public weth = address(0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2); // used for df <> weth <> usdc route address constant public yfii = address(0xa1d0E215a23d7030842FC67cE582a6aFa3CCaB83); uint public strategyfee = 0; uint public fee = 400; uint public burnfee = 500; uint public callfee = 100; uint constant public max = 1000; uint public withdrawalFee = 0; uint constant public withdrawalMax = 10000; address public governance; address public strategyDev; address public controller; address public burnAddress = 0xB6af2DabCEBC7d30E440714A33E5BD45CEEd103a; string public getName; address[] public swap2YFIIRouting; address[] public swap2TokenRouting; constructor() public { governance = msg.sender; controller = 0x8C2a19108d8F6aEC72867E9cfb1bF517601b515f; getName = string( abi.encodePacked("yfii:Strategy:", abi.encodePacked(IERC20(want).name(),"DF Token" ) )); swap2YFIIRouting = [output,weth,yfii]; swap2TokenRouting = [output,weth,want]; doApprove(); strategyDev = tx.origin; } function doApprove () public{ IERC20(output).safeApprove(unirouter, 0); IERC20(output).safeApprove(unirouter, uint(-1)); } function deposit() public { uint _want = IERC20(want).balanceOf(address(this)); if (_want > 0) { IERC20(want).safeApprove(d, 0); IERC20(want).safeApprove(d, _want); dERC20(d).mint(address(this), _want); } uint _d = IERC20(d).balanceOf(address(this)); if (_d > 0) { IERC20(d).safeApprove(pool, 0); IERC20(d).safeApprove(pool, _d); dRewards(pool).stake(_d); } } // Controller only function for creating additional rewards from dust function withdraw(IERC20 _asset) external returns (uint balance) { require(msg.sender == controller, "!controller"); require(want != address(_asset), "want"); require(d != address(_asset), "d"); balance = _asset.balanceOf(address(this)); _asset.safeTransfer(controller, balance); } // Withdraw partial funds, normally used with a vault withdrawal function withdraw(uint _amount) external { require(msg.sender == controller, "!controller"); uint _balance = IERC20(want).balanceOf(address(this)); if (_balance < _amount) { _amount = _withdrawSome(_amount.sub(_balance)); _amount = _amount.add(_balance); } uint _fee = 0; if (withdrawalFee>0){ _fee = _amount.mul(withdrawalFee).div(withdrawalMax); IERC20(want).safeTransfer(Controller(controller).rewards(), _fee); } address _vault = Controller(controller).vaults(address(want)); require(_vault != address(0), "!vault"); // additional protection so we don't burn the funds IERC20(want).safeTransfer(_vault, _amount.sub(_fee)); } // Withdraw all funds, normally used when migrating strategies function withdrawAll() external returns (uint balance) { require(msg.sender == controller, "!controller"); _withdrawAll(); balance = IERC20(want).balanceOf(address(this)); address _vault = Controller(controller).vaults(address(want)); require(_vault != address(0), "!vault"); // additional protection so we don't burn the funds IERC20(want).safeTransfer(_vault, balance); } function _withdrawAll() internal { dRewards(pool).exit(); uint _d = IERC20(d).balanceOf(address(this)); if (_d > 0) { dERC20(d).redeem(address(this),_d); } } function harvest() public { require(!Address.isContract(msg.sender),"!contract"); dRewards(pool).getReward(); doswap(); dosplit();//分yfii deposit(); } function doswap() internal { uint256 _2token = IERC20(output).balanceOf(address(this)).mul(90).div(100); //90% uint256 _2yfii = IERC20(output).balanceOf(address(this)).mul(10).div(100); //10% UniswapRouter(unirouter).swapExactTokensForTokens(_2token, 0, swap2TokenRouting, address(this), now.add(1800)); UniswapRouter(unirouter).swapExactTokensForTokens(_2yfii, 0, swap2YFIIRouting, address(this), now.add(1800)); } function dosplit() internal{ uint b = IERC20(yfii).balanceOf(address(this)); uint _fee = b.mul(fee).div(max); uint _callfee = b.mul(callfee).div(max); uint _burnfee = b.mul(burnfee).div(max); IERC20(yfii).safeTransfer(Controller(controller).rewards(), _fee); //4% 3% team +1% insurance IERC20(yfii).safeTransfer(msg.sender, _callfee); //call fee 1% IERC20(yfii).safeTransfer(burnAddress, _burnfee); //burn fee 5% if (strategyfee >0){ uint _strategyfee = b.mul(strategyfee).div(max); IERC20(yfii).safeTransfer(strategyDev, _strategyfee); } } function _withdrawSome(uint256 _amount) internal returns (uint) { uint _d = _amount.mul(1e18).div(dERC20(d).getExchangeRate()); uint _before = IERC20(d).balanceOf(address(this)); dRewards(pool).withdraw(_d); uint _after = IERC20(d).balanceOf(address(this)); uint _withdrew = _after.sub(_before); _before = IERC20(want).balanceOf(address(this)); dERC20(d).redeem(address(this), _withdrew); _after = IERC20(want).balanceOf(address(this)); _withdrew = _after.sub(_before); return _withdrew; } function balanceOfWant() public view returns (uint) { return IERC20(want).balanceOf(address(this)); } function balanceOfPool() public view returns (uint) { return (dRewards(pool).balanceOf(address(this))).mul(dERC20(d).getExchangeRate()).div(1e18); } function getExchangeRate() public view returns (uint) { return dERC20(d).getExchangeRate(); } function balanceOfD() public view returns (uint) { return dERC20(d).getTokenBalance(address(this)); } function balanceOf() public view returns (uint) { return balanceOfWant() .add(balanceOfD()) .add(balanceOfPool()); } function setGovernance(address _governance) external { require(msg.sender == governance, "!governance"); governance = _governance; } function setController(address _controller) external { require(msg.sender == governance, "!governance"); controller = _controller; } function setFee(uint256 _fee) external{ require(msg.sender == governance, "!governance"); fee = _fee; } function setStrategyFee(uint256 _fee) external{ require(msg.sender == governance, "!governance"); strategyfee = _fee; } function setCallFee(uint256 _fee) external{ require(msg.sender == governance, "!governance"); callfee = _fee; } function setBurnFee(uint256 _fee) external{ require(msg.sender == governance, "!governance"); burnfee = _fee; } function setBurnAddress(address _burnAddress) public{ require(msg.sender == governance, "!governance"); burnAddress = _burnAddress; } function setWithdrawalFee(uint _withdrawalFee) external { require(msg.sender == governance, "!governance"); require(_withdrawalFee <=100,"fee >= 1%"); //max:1% withdrawalFee = _withdrawalFee; } }
Contract Security Audit
- Knownsec - September 24th, 2020 - Security Audit Report
[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"constant":true,"inputs":[],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"balanceOfD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"balanceOfPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"balanceOfWant","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"burnAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"burnfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"callfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"controller","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"d","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"deposit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"df","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"doApprove","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"fee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getExchangeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getName","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"governance","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"harvest","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"max","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"output","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pool","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_burnAddress","type":"address"}],"name":"setBurnAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setBurnFee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setCallFee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_controller","type":"address"}],"name":"setController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setFee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_governance","type":"address"}],"name":"setGovernance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setStrategyFee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_withdrawalFee","type":"uint256"}],"name":"setWithdrawalFee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"strategyDev","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"strategyfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"swap2TokenRouting","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"swap2YFIIRouting","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"unirouter","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"want","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"weth","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract IERC20","name":"_asset","type":"address"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdrawAll","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"withdrawalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"withdrawalMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"yfii","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405260008080556101906001556101f46002556064600355600455600880546001600160a01b03191673b6af2dabcebc7d30e440714a33e5bd45ceed103a1790553480156200005057600080fd5b50600580546001600160a01b0319908116331790915560078054909116738c2a19108d8f6aec72867e9cfb1bf517601b515f179055604080516306fdde0360e01b81529051736b175474e89094c44da98b954eedeac495271d0f916306fdde03916004808301926000929190829003018186803b158015620000d157600080fd5b505afa158015620000e6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156200011057600080fd5b81019080805160405193929190846401000000008211156200013157600080fd5b9083019060208201858111156200014757600080fd5b82516401000000008111828201881017156200016257600080fd5b82525081516020918201929091019080838360005b838110156200019157818101518382015260200162000177565b50505050905090810190601f168015620001bf5780820380516001836020036101000a031916815260200191505b506040525050506040516020018082805190602001908083835b60208310620001fa5780518252601f199092019160209182019101620001d9565b6001836020036101000a03801982511681845116808217855250505050505090500180672223102a37b5b2b760c11b81525060080191505060405160208183030381529060405260405160200180806d3cb334b49d29ba3930ba32b3bc9d60911b815250600e0182805190602001908083835b602083106200028e5780518252601f1990920191602091820191016200026d565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405260099080519060200190620002d992919062000792565b506040805160608101825273431ad2ff6a9c365805ebad47ee021148d6f7dbe0815273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2602082015273a1d0e215a23d7030842fc67ce582a6afa3ccab83918101919091526200034190600a90600362000817565b506040805160608101825273431ad2ff6a9c365805ebad47ee021148d6f7dbe0815273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26020820152736b175474e89094c44da98b954eedeac495271d0f91810191909152620003a990600b90600362000817565b50620003bd6001600160e01b03620003d516565b600680546001600160a01b03191632179055620008c4565b6200041773431ad2ff6a9c365805ebad47ee021148d6f7dbe0737a250d5630b4cf539739df2c5dacb4c659f2488d60006200045c602090811b6200210417901c565b6200045a73431ad2ff6a9c365805ebad47ee021148d6f7dbe0737a250d5630b4cf539739df2c5dacb4c659f2488d6000196200045c602090811b6200210417901c565b565b801580620004e6575060408051636eb1769f60e11b81523060048201526001600160a01b03848116602483015291519185169163dd62ed3e91604480820192602092909190829003018186803b158015620004b657600080fd5b505afa158015620004cb573d6000803e3d6000fd5b505050506040513d6020811015620004e257600080fd5b5051155b620005235760405162461bcd60e51b8152600401808060200182810382526036815260200180620030136036913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b0390811663095ea7b360e01b179091526200057b9185916200058016565b505050565b6200059f826001600160a01b03166200075560201b62001bc71760201c565b620005f1576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b60208310620006315780518252601f19909201916020918201910162000610565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811462000695576040519150601f19603f3d011682016040523d82523d6000602084013e6200069a565b606091505b509150915081620006f2576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b8051156200074f578080602001905160208110156200071057600080fd5b50516200074f5760405162461bcd60e51b815260040180806020018281038252602a81526020018062002fe9602a913960400191505060405180910390fd5b50505050565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081158015906200078a5750808214155b949350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620007d557805160ff191683800117855562000805565b8280016001018555821562000805579182015b8281111562000805578251825591602001919060010190620007e8565b50620008139291506200087d565b5090565b8280548282559060005260206000209081019282156200086f579160200282015b828111156200086f57825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019062000838565b50620008139291506200089d565b6200089a91905b8082111562000813576000815560010162000884565b90565b6200089a91905b80821115620008135780546001600160a01b0319168155600101620008a4565b61271580620008d46000396000f3fe608060405234801561001057600080fd5b50600436106102535760003560e01c806370d5ae0511610146578063becacda6116100c3578063d5c1ff7311610087578063d5c1ff7314610535578063dba11a6d1461053d578063ddca3f4314610545578063e6aa216c1461054d578063f20eaeb8146104ba578063f77c47911461055557610253565b8063becacda61461050d578063c1a3d44c14610515578063c43697431461051d578063d0e30db014610525578063d2a9d8621461052d57610253565b806392eefe9b1161010a57806392eefe9b146104945780639d35f594146104ba578063ab033ea9146104c2578063ac1e5025146104e8578063b97907a81461050557610253565b806370d5ae051461046c578063722713f714610474578063853828b61461047c5780638a054ac2146104845780638bc7e8c41461048c57610253565b80633fc8cef3116101d45780635aa6e675116101985780635aa6e6751461041a5780635bb5ebbe1461042257806369fe0e2d1461042a5780636ac5db19146104475780636ec889761461044f57610253565b80633fc8cef3146103a15780634641257d146103a95780634b0e7216146103b15780634bf2c7c9146103d757806351cff8d9146103f457610253565b806317d7de7c1161021b57806317d7de7c146102d85780631f1fcd5114610355578063257ae0de1461035d57806326465826146103655780632e1a7d4d1461038457610253565b80630372635714610258578063115880861461027257806312ed71531461027a57806316f0115b146102b357806317bb7272146102bb575b600080fd5b61026061055d565b60408051918252519081900360200190f35b610260610563565b6102976004803603602081101561029057600080fd5b5035610681565b604080516001600160a01b039092168252519081900360200190f35b6102976106a8565b610297600480360360208110156102d157600080fd5b50356106c0565b6102e06106cd565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561031a578181015183820152602001610302565b50505050905090810190601f1680156103475780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61029761075b565b61029761076d565b6103826004803603602081101561037b57600080fd5b5035610785565b005b6103826004803603602081101561039a57600080fd5b50356107d7565b610297610a98565b610382610ab0565b610382600480360360208110156103c757600080fd5b50356001600160a01b0316610b78565b610382600480360360208110156103ed57600080fd5b5035610be7565b6102606004803603602081101561040a57600080fd5b50356001600160a01b0316610c39565b610297610dc8565b610382610dd7565b6103826004803603602081101561044057600080fd5b5035610e4c565b610260610e9e565b6103826004803603602081101561046557600080fd5b5035610ea4565b610297610ef6565b610260610f05565b610260610f31565b6102976110f4565b610260611106565b610382600480360360208110156104aa57600080fd5b50356001600160a01b031661110c565b61029761117b565b610382600480360360208110156104d857600080fd5b50356001600160a01b0316611193565b610382600480360360208110156104fe57600080fd5b5035611202565b610260611296565b61029761129c565b6102606112ab565b61026061132b565b61038261137a565b610297611625565b61026061163d565b610260611643565b610260611649565b61026061164f565b610297611698565b60025481565b600061067c670de0b6b3a76400006106706000805160206126408339815191526001600160a01b031663e6aa216c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156105bb57600080fd5b505afa1580156105cf573d6000803e3d6000fd5b505050506040513d60208110156105e557600080fd5b5051604080516370a0823160e01b8152306004820152905173d2fa07cd6cd4a5a96aa86bacfa6e50bb3aadba8b916370a08231916024808301926020929190829003018186803b15801561063857600080fd5b505afa15801561064c573d6000803e3d6000fd5b505050506040513d602081101561066257600080fd5b50519063ffffffff6116a716565b9063ffffffff61170916565b905090565b600b818154811061068e57fe5b6000918252602090912001546001600160a01b0316905081565b73d2fa07cd6cd4a5a96aa86bacfa6e50bb3aadba8b81565b600a818154811061068e57fe5b6009805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107535780601f1061072857610100808354040283529160200191610753565b820191906000526020600020905b81548152906001019060200180831161073657829003601f168201915b505050505081565b60008051602061262083398151915281565b737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6005546001600160a01b031633146107d2576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b600355565b6007546001600160a01b03163314610824576040805162461bcd60e51b815260206004820152600b60248201526a10b1b7b73a3937b63632b960a91b604482015290519081900360640190fd5b604080516370a0823160e01b81523060048201529051600091600080516020612620833981519152916370a0823191602480820192602092909190829003018186803b15801561087357600080fd5b505afa158015610887573d6000803e3d6000fd5b505050506040513d602081101561089d57600080fd5b50519050818110156108d6576108c16108bc838363ffffffff61174b16565b61178d565b91506108d3828263ffffffff611b1616565b91505b60045460009015610997576108fc612710610670600454866116a790919063ffffffff16565b9050610997600760009054906101000a90046001600160a01b03166001600160a01b0316639ec5a8946040518163ffffffff1660e01b815260040160206040518083038186803b15801561094f57600080fd5b505afa158015610963573d6000803e3d6000fd5b505050506040513d602081101561097957600080fd5b5051600080516020612620833981519152908363ffffffff611b7016565b60075460408051632988bb9f60e21b8152600080516020612620833981519152600482015290516000926001600160a01b03169163a622ee7c916024808301926020929190829003018186803b1580156109f057600080fd5b505afa158015610a04573d6000803e3d6000fd5b505050506040513d6020811015610a1a57600080fd5b505190506001600160a01b038116610a62576040805162461bcd60e51b8152602060048201526006602482015265085d985d5b1d60d21b604482015290519081900360640190fd5b610a9281610a76868563ffffffff61174b16565b600080516020612620833981519152919063ffffffff611b7016565b50505050565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b610ab933611bc7565b15610af7576040805162461bcd60e51b81526020600482015260096024820152680858dbdb9d1c9858dd60ba1b604482015290519081900360640190fd5b73d2fa07cd6cd4a5a96aa86bacfa6e50bb3aadba8b6001600160a01b0316633d18b9126040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610b4657600080fd5b505af1158015610b5a573d6000803e3d6000fd5b50505050610b66611c03565b610b6e611eca565b610b7661137a565b565b6005546001600160a01b03163314610bc5576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610c34576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b600255565b6007546000906001600160a01b03163314610c89576040805162461bcd60e51b815260206004820152600b60248201526a10b1b7b73a3937b63632b960a91b604482015290519081900360640190fd5b6000805160206126208339815191526001600160a01b0383161415610cde576040805162461bcd60e51b815260206004808301919091526024820152631dd85b9d60e21b604482015290519081900360640190fd5b6000805160206126408339815191526001600160a01b0383161415610d2e576040805162461bcd60e51b81526020600482015260016024820152601960fa1b604482015290519081900360640190fd5b604080516370a0823160e01b815230600482015290516001600160a01b038416916370a08231916024808301926020929190829003018186803b158015610d7457600080fd5b505afa158015610d88573d6000803e3d6000fd5b505050506040513d6020811015610d9e57600080fd5b5051600754909150610dc3906001600160a01b0384811691168363ffffffff611b7016565b919050565b6005546001600160a01b031681565b610e1173431ad2ff6a9c365805ebad47ee021148d6f7dbe0737a250d5630b4cf539739df2c5dacb4c659f2488d600063ffffffff61210416565b610b7673431ad2ff6a9c365805ebad47ee021148d6f7dbe0737a250d5630b4cf539739df2c5dacb4c659f2488d60001963ffffffff61210416565b6005546001600160a01b03163314610e99576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b600155565b6103e881565b6005546001600160a01b03163314610ef1576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b600055565b6008546001600160a01b031681565b600061067c610f12610563565b610f25610f1d61132b565b610f256112ab565b9063ffffffff611b1616565b6007546000906001600160a01b03163314610f81576040805162461bcd60e51b815260206004820152600b60248201526a10b1b7b73a3937b63632b960a91b604482015290519081900360640190fd5b610f89612217565b604080516370a0823160e01b81523060048201529051600080516020612620833981519152916370a08231916024808301926020929190829003018186803b158015610fd457600080fd5b505afa158015610fe8573d6000803e3d6000fd5b505050506040513d6020811015610ffe57600080fd5b505160075460408051632988bb9f60e21b8152600080516020612620833981519152600482015290519293506000926001600160a01b039092169163a622ee7c91602480820192602092909190829003018186803b15801561105f57600080fd5b505afa158015611073573d6000803e3d6000fd5b505050506040513d602081101561108957600080fd5b505190506001600160a01b0381166110d1576040805162461bcd60e51b8152602060048201526006602482015265085d985d5b1d60d21b604482015290519081900360640190fd5b6110f0600080516020612620833981519152828463ffffffff611b7016565b5090565b60008051602061264083398151915281565b60045481565b6005546001600160a01b03163314611159576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b73431ad2ff6a9c365805ebad47ee021148d6f7dbe081565b6005546001600160a01b031633146111e0576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0316331461124f576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b6064811115611291576040805162461bcd60e51b8152602060048201526009602482015268666565203e3d20312560b81b604482015290519081900360640190fd5b600455565b60005481565b6006546001600160a01b031681565b604080516370a0823160e01b81523060048201529051600091600080516020612620833981519152916370a0823191602480820192602092909190829003018186803b1580156112fa57600080fd5b505afa15801561130e573d6000803e3d6000fd5b505050506040513d602081101561132457600080fd5b5051905090565b60408051633aecd0e360e01b8152306004820152905160009160008051602061264083398151915291633aecd0e391602480820192602092909190829003018186803b1580156112fa57600080fd5b604080516370a0823160e01b81523060048201529051600091600080516020612620833981519152916370a0823191602480820192602092909190829003018186803b1580156113c957600080fd5b505afa1580156113dd573d6000803e3d6000fd5b505050506040513d60208110156113f357600080fd5b5051905080156114c45761142b600080516020612620833981519152600080516020612640833981519152600063ffffffff61210416565b6114586000805160206126208339815191526000805160206126408339815191528363ffffffff61210416565b604080516340c10f1960e01b8152306004820152602481018390529051600080516020612640833981519152916340c10f1991604480830192600092919082900301818387803b1580156114ab57600080fd5b505af11580156114bf573d6000803e3d6000fd5b505050505b604080516370a0823160e01b81523060048201529051600091600080516020612640833981519152916370a0823191602480820192602092909190829003018186803b15801561151357600080fd5b505afa158015611527573d6000803e3d6000fd5b505050506040513d602081101561153d57600080fd5b5051905080156116215761157b60008051602061264083398151915273d2fa07cd6cd4a5a96aa86bacfa6e50bb3aadba8b600063ffffffff61210416565b6115ae60008051602061264083398151915273d2fa07cd6cd4a5a96aa86bacfa6e50bb3aadba8b8363ffffffff61210416565b73d2fa07cd6cd4a5a96aa86bacfa6e50bb3aadba8b6001600160a01b031663a694fc3a826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561160857600080fd5b505af115801561161c573d6000803e3d6000fd5b505050505b5050565b73a1d0e215a23d7030842fc67ce582a6afa3ccab8381565b61271081565b60035481565b60015481565b60006000805160206126408339815191526001600160a01b031663e6aa216c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156112fa57600080fd5b6007546001600160a01b031681565b6000826116b657506000611703565b828202828482816116c357fe5b04146117005760405162461bcd60e51b81526004018080602001828103825260218152602001806126606021913960400191505060405180910390fd5b90505b92915050565b600061170083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061236b565b600061170083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061240d565b60008061181e6000805160206126408339815191526001600160a01b031663e6aa216c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156117da57600080fd5b505afa1580156117ee573d6000803e3d6000fd5b505050506040513d602081101561180457600080fd5b505161067085670de0b6b3a764000063ffffffff6116a716565b604080516370a0823160e01b81523060048201529051919250600091600080516020612640833981519152916370a08231916024808301926020929190829003018186803b15801561186f57600080fd5b505afa158015611883573d6000803e3d6000fd5b505050506040513d602081101561189957600080fd5b505160408051632e1a7d4d60e01b815260048101859052905191925073d2fa07cd6cd4a5a96aa86bacfa6e50bb3aadba8b91632e1a7d4d9160248082019260009290919082900301818387803b1580156118f257600080fd5b505af1158015611906573d6000803e3d6000fd5b5050604080516370a0823160e01b815230600482015290516000935060008051602061264083398151915292506370a0823191602480820192602092909190829003018186803b15801561195957600080fd5b505afa15801561196d573d6000803e3d6000fd5b505050506040513d602081101561198357600080fd5b505190506000611999828463ffffffff61174b16565b604080516370a0823160e01b81523060048201529051919250600080516020612620833981519152916370a0823191602480820192602092909190829003018186803b1580156119e857600080fd5b505afa1580156119fc573d6000803e3d6000fd5b505050506040513d6020811015611a1257600080fd5b5051604080516301e9a69560e41b815230600482015260248101849052905191945060008051602061264083398151915291631e9a69509160448082019260009290919082900301818387803b158015611a6b57600080fd5b505af1158015611a7f573d6000803e3d6000fd5b5050604080516370a0823160e01b8152306004820152905160008051602061262083398151915293506370a0823192506024808301926020929190829003018186803b158015611ace57600080fd5b505afa158015611ae2573d6000803e3d6000fd5b505050506040513d6020811015611af857600080fd5b50519150611b0c828463ffffffff61174b16565b9695505050505050565b600082820183811015611700576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052611bc2908490612467565b505050565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708115801590611bfb5750808214155b949350505050565b6000611c796064610670605a73431ad2ff6a9c365805ebad47ee021148d6f7dbe06001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561063857600080fd5b90506000611cf16064610670600a73431ad2ff6a9c365805ebad47ee021148d6f7dbe06001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561063857600080fd5b9050737a250d5630b4cf539739df2c5dacb4c659f2488d6338ed1739836000600b30611d254261070863ffffffff611b1616565b6040518663ffffffff1660e01b81526004018086815260200185815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252858181548152602001915080548015611dad57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611d8f575b50509650505050505050600060405180830381600087803b158015611dd157600080fd5b505af1158015611de5573d6000803e3d6000fd5b50737a250d5630b4cf539739df2c5dacb4c659f2488d92506338ed173991508390506000600a30611e1e4261070863ffffffff611b1616565b6040518663ffffffff1660e01b81526004018086815260200185815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252858181548152602001915080548015611ea657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611e88575b50509650505050505050600060405180830381600087803b15801561160857600080fd5b604080516370a0823160e01b8152306004820152905160009173a1d0e215a23d7030842fc67ce582a6afa3ccab83916370a0823191602480820192602092909190829003018186803b158015611f1f57600080fd5b505afa158015611f33573d6000803e3d6000fd5b505050506040513d6020811015611f4957600080fd5b5051600154909150600090611f6d906103e89061067090859063ffffffff6116a716565b90506000611f8c6103e8610670600354866116a790919063ffffffff16565b90506000611fab6103e8610670600254876116a790919063ffffffff16565b905061204c600760009054906101000a90046001600160a01b03166001600160a01b0316639ec5a8946040518163ffffffff1660e01b815260040160206040518083038186803b158015611ffe57600080fd5b505afa158015612012573d6000803e3d6000fd5b505050506040513d602081101561202857600080fd5b505173a1d0e215a23d7030842fc67ce582a6afa3ccab83908563ffffffff611b7016565b61207173a1d0e215a23d7030842fc67ce582a6afa3ccab83338463ffffffff611b7016565b6008546120a39073a1d0e215a23d7030842fc67ce582a6afa3ccab83906001600160a01b03168363ffffffff611b7016565b60005415610a925760006120c86103e8610670600054886116a790919063ffffffff16565b6006549091506120fd9073a1d0e215a23d7030842fc67ce582a6afa3ccab83906001600160a01b03168363ffffffff611b7016565b5050505050565b80158061218a575060408051636eb1769f60e11b81523060048201526001600160a01b03848116602483015291519185169163dd62ed3e91604480820192602092909190829003018186803b15801561215c57600080fd5b505afa158015612170573d6000803e3d6000fd5b505050506040513d602081101561218657600080fd5b5051155b6121c55760405162461bcd60e51b81526004018080602001828103825260368152602001806126ab6036913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b179052611bc2908490612467565b73d2fa07cd6cd4a5a96aa86bacfa6e50bb3aadba8b6001600160a01b031663e9fad8ee6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561226657600080fd5b505af115801561227a573d6000803e3d6000fd5b5050604080516370a0823160e01b815230600482015290516000935060008051602061264083398151915292506370a0823191602480820192602092909190829003018186803b1580156122cd57600080fd5b505afa1580156122e1573d6000803e3d6000fd5b505050506040513d60208110156122f757600080fd5b50519050801561236857604080516301e9a69560e41b815230600482015260248101839052905160008051602061264083398151915291631e9a695091604480830192600092919082900301818387803b15801561235457600080fd5b505af11580156120fd573d6000803e3d6000fd5b50565b600081836123f75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156123bc5781810151838201526020016123a4565b50505050905090810190601f1680156123e95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161240357fe5b0495945050505050565b6000818484111561245f5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156123bc5781810151838201526020016123a4565b505050900390565b612479826001600160a01b0316611bc7565b6124ca576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106125085780518252601f1990920191602091820191016124e9565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461256a576040519150601f19603f3d011682016040523d82523d6000602084013e61256f565b606091505b5091509150816125c6576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b805115610a92578080602001905160208110156125e257600080fd5b5051610a925760405162461bcd60e51b815260040180806020018281038252602a815260200180612681602a913960400191505060405180910390fdfe0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f00000000000000000000000002285acaafeb533e03a7306c55ec031297df9224536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565645361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365a265627a7a7231582060c56aa74c6b93ffaf9b4fae647c5feeab7228fcee22c17f5822691895e1e85164736f6c634300051100325361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565645361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106102535760003560e01c806370d5ae0511610146578063becacda6116100c3578063d5c1ff7311610087578063d5c1ff7314610535578063dba11a6d1461053d578063ddca3f4314610545578063e6aa216c1461054d578063f20eaeb8146104ba578063f77c47911461055557610253565b8063becacda61461050d578063c1a3d44c14610515578063c43697431461051d578063d0e30db014610525578063d2a9d8621461052d57610253565b806392eefe9b1161010a57806392eefe9b146104945780639d35f594146104ba578063ab033ea9146104c2578063ac1e5025146104e8578063b97907a81461050557610253565b806370d5ae051461046c578063722713f714610474578063853828b61461047c5780638a054ac2146104845780638bc7e8c41461048c57610253565b80633fc8cef3116101d45780635aa6e675116101985780635aa6e6751461041a5780635bb5ebbe1461042257806369fe0e2d1461042a5780636ac5db19146104475780636ec889761461044f57610253565b80633fc8cef3146103a15780634641257d146103a95780634b0e7216146103b15780634bf2c7c9146103d757806351cff8d9146103f457610253565b806317d7de7c1161021b57806317d7de7c146102d85780631f1fcd5114610355578063257ae0de1461035d57806326465826146103655780632e1a7d4d1461038457610253565b80630372635714610258578063115880861461027257806312ed71531461027a57806316f0115b146102b357806317bb7272146102bb575b600080fd5b61026061055d565b60408051918252519081900360200190f35b610260610563565b6102976004803603602081101561029057600080fd5b5035610681565b604080516001600160a01b039092168252519081900360200190f35b6102976106a8565b610297600480360360208110156102d157600080fd5b50356106c0565b6102e06106cd565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561031a578181015183820152602001610302565b50505050905090810190601f1680156103475780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61029761075b565b61029761076d565b6103826004803603602081101561037b57600080fd5b5035610785565b005b6103826004803603602081101561039a57600080fd5b50356107d7565b610297610a98565b610382610ab0565b610382600480360360208110156103c757600080fd5b50356001600160a01b0316610b78565b610382600480360360208110156103ed57600080fd5b5035610be7565b6102606004803603602081101561040a57600080fd5b50356001600160a01b0316610c39565b610297610dc8565b610382610dd7565b6103826004803603602081101561044057600080fd5b5035610e4c565b610260610e9e565b6103826004803603602081101561046557600080fd5b5035610ea4565b610297610ef6565b610260610f05565b610260610f31565b6102976110f4565b610260611106565b610382600480360360208110156104aa57600080fd5b50356001600160a01b031661110c565b61029761117b565b610382600480360360208110156104d857600080fd5b50356001600160a01b0316611193565b610382600480360360208110156104fe57600080fd5b5035611202565b610260611296565b61029761129c565b6102606112ab565b61026061132b565b61038261137a565b610297611625565b61026061163d565b610260611643565b610260611649565b61026061164f565b610297611698565b60025481565b600061067c670de0b6b3a76400006106706000805160206126408339815191526001600160a01b031663e6aa216c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156105bb57600080fd5b505afa1580156105cf573d6000803e3d6000fd5b505050506040513d60208110156105e557600080fd5b5051604080516370a0823160e01b8152306004820152905173d2fa07cd6cd4a5a96aa86bacfa6e50bb3aadba8b916370a08231916024808301926020929190829003018186803b15801561063857600080fd5b505afa15801561064c573d6000803e3d6000fd5b505050506040513d602081101561066257600080fd5b50519063ffffffff6116a716565b9063ffffffff61170916565b905090565b600b818154811061068e57fe5b6000918252602090912001546001600160a01b0316905081565b73d2fa07cd6cd4a5a96aa86bacfa6e50bb3aadba8b81565b600a818154811061068e57fe5b6009805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107535780601f1061072857610100808354040283529160200191610753565b820191906000526020600020905b81548152906001019060200180831161073657829003601f168201915b505050505081565b60008051602061262083398151915281565b737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6005546001600160a01b031633146107d2576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b600355565b6007546001600160a01b03163314610824576040805162461bcd60e51b815260206004820152600b60248201526a10b1b7b73a3937b63632b960a91b604482015290519081900360640190fd5b604080516370a0823160e01b81523060048201529051600091600080516020612620833981519152916370a0823191602480820192602092909190829003018186803b15801561087357600080fd5b505afa158015610887573d6000803e3d6000fd5b505050506040513d602081101561089d57600080fd5b50519050818110156108d6576108c16108bc838363ffffffff61174b16565b61178d565b91506108d3828263ffffffff611b1616565b91505b60045460009015610997576108fc612710610670600454866116a790919063ffffffff16565b9050610997600760009054906101000a90046001600160a01b03166001600160a01b0316639ec5a8946040518163ffffffff1660e01b815260040160206040518083038186803b15801561094f57600080fd5b505afa158015610963573d6000803e3d6000fd5b505050506040513d602081101561097957600080fd5b5051600080516020612620833981519152908363ffffffff611b7016565b60075460408051632988bb9f60e21b8152600080516020612620833981519152600482015290516000926001600160a01b03169163a622ee7c916024808301926020929190829003018186803b1580156109f057600080fd5b505afa158015610a04573d6000803e3d6000fd5b505050506040513d6020811015610a1a57600080fd5b505190506001600160a01b038116610a62576040805162461bcd60e51b8152602060048201526006602482015265085d985d5b1d60d21b604482015290519081900360640190fd5b610a9281610a76868563ffffffff61174b16565b600080516020612620833981519152919063ffffffff611b7016565b50505050565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b610ab933611bc7565b15610af7576040805162461bcd60e51b81526020600482015260096024820152680858dbdb9d1c9858dd60ba1b604482015290519081900360640190fd5b73d2fa07cd6cd4a5a96aa86bacfa6e50bb3aadba8b6001600160a01b0316633d18b9126040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610b4657600080fd5b505af1158015610b5a573d6000803e3d6000fd5b50505050610b66611c03565b610b6e611eca565b610b7661137a565b565b6005546001600160a01b03163314610bc5576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610c34576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b600255565b6007546000906001600160a01b03163314610c89576040805162461bcd60e51b815260206004820152600b60248201526a10b1b7b73a3937b63632b960a91b604482015290519081900360640190fd5b6000805160206126208339815191526001600160a01b0383161415610cde576040805162461bcd60e51b815260206004808301919091526024820152631dd85b9d60e21b604482015290519081900360640190fd5b6000805160206126408339815191526001600160a01b0383161415610d2e576040805162461bcd60e51b81526020600482015260016024820152601960fa1b604482015290519081900360640190fd5b604080516370a0823160e01b815230600482015290516001600160a01b038416916370a08231916024808301926020929190829003018186803b158015610d7457600080fd5b505afa158015610d88573d6000803e3d6000fd5b505050506040513d6020811015610d9e57600080fd5b5051600754909150610dc3906001600160a01b0384811691168363ffffffff611b7016565b919050565b6005546001600160a01b031681565b610e1173431ad2ff6a9c365805ebad47ee021148d6f7dbe0737a250d5630b4cf539739df2c5dacb4c659f2488d600063ffffffff61210416565b610b7673431ad2ff6a9c365805ebad47ee021148d6f7dbe0737a250d5630b4cf539739df2c5dacb4c659f2488d60001963ffffffff61210416565b6005546001600160a01b03163314610e99576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b600155565b6103e881565b6005546001600160a01b03163314610ef1576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b600055565b6008546001600160a01b031681565b600061067c610f12610563565b610f25610f1d61132b565b610f256112ab565b9063ffffffff611b1616565b6007546000906001600160a01b03163314610f81576040805162461bcd60e51b815260206004820152600b60248201526a10b1b7b73a3937b63632b960a91b604482015290519081900360640190fd5b610f89612217565b604080516370a0823160e01b81523060048201529051600080516020612620833981519152916370a08231916024808301926020929190829003018186803b158015610fd457600080fd5b505afa158015610fe8573d6000803e3d6000fd5b505050506040513d6020811015610ffe57600080fd5b505160075460408051632988bb9f60e21b8152600080516020612620833981519152600482015290519293506000926001600160a01b039092169163a622ee7c91602480820192602092909190829003018186803b15801561105f57600080fd5b505afa158015611073573d6000803e3d6000fd5b505050506040513d602081101561108957600080fd5b505190506001600160a01b0381166110d1576040805162461bcd60e51b8152602060048201526006602482015265085d985d5b1d60d21b604482015290519081900360640190fd5b6110f0600080516020612620833981519152828463ffffffff611b7016565b5090565b60008051602061264083398151915281565b60045481565b6005546001600160a01b03163314611159576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b73431ad2ff6a9c365805ebad47ee021148d6f7dbe081565b6005546001600160a01b031633146111e0576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0316331461124f576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b6064811115611291576040805162461bcd60e51b8152602060048201526009602482015268666565203e3d20312560b81b604482015290519081900360640190fd5b600455565b60005481565b6006546001600160a01b031681565b604080516370a0823160e01b81523060048201529051600091600080516020612620833981519152916370a0823191602480820192602092909190829003018186803b1580156112fa57600080fd5b505afa15801561130e573d6000803e3d6000fd5b505050506040513d602081101561132457600080fd5b5051905090565b60408051633aecd0e360e01b8152306004820152905160009160008051602061264083398151915291633aecd0e391602480820192602092909190829003018186803b1580156112fa57600080fd5b604080516370a0823160e01b81523060048201529051600091600080516020612620833981519152916370a0823191602480820192602092909190829003018186803b1580156113c957600080fd5b505afa1580156113dd573d6000803e3d6000fd5b505050506040513d60208110156113f357600080fd5b5051905080156114c45761142b600080516020612620833981519152600080516020612640833981519152600063ffffffff61210416565b6114586000805160206126208339815191526000805160206126408339815191528363ffffffff61210416565b604080516340c10f1960e01b8152306004820152602481018390529051600080516020612640833981519152916340c10f1991604480830192600092919082900301818387803b1580156114ab57600080fd5b505af11580156114bf573d6000803e3d6000fd5b505050505b604080516370a0823160e01b81523060048201529051600091600080516020612640833981519152916370a0823191602480820192602092909190829003018186803b15801561151357600080fd5b505afa158015611527573d6000803e3d6000fd5b505050506040513d602081101561153d57600080fd5b5051905080156116215761157b60008051602061264083398151915273d2fa07cd6cd4a5a96aa86bacfa6e50bb3aadba8b600063ffffffff61210416565b6115ae60008051602061264083398151915273d2fa07cd6cd4a5a96aa86bacfa6e50bb3aadba8b8363ffffffff61210416565b73d2fa07cd6cd4a5a96aa86bacfa6e50bb3aadba8b6001600160a01b031663a694fc3a826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561160857600080fd5b505af115801561161c573d6000803e3d6000fd5b505050505b5050565b73a1d0e215a23d7030842fc67ce582a6afa3ccab8381565b61271081565b60035481565b60015481565b60006000805160206126408339815191526001600160a01b031663e6aa216c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156112fa57600080fd5b6007546001600160a01b031681565b6000826116b657506000611703565b828202828482816116c357fe5b04146117005760405162461bcd60e51b81526004018080602001828103825260218152602001806126606021913960400191505060405180910390fd5b90505b92915050565b600061170083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061236b565b600061170083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061240d565b60008061181e6000805160206126408339815191526001600160a01b031663e6aa216c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156117da57600080fd5b505afa1580156117ee573d6000803e3d6000fd5b505050506040513d602081101561180457600080fd5b505161067085670de0b6b3a764000063ffffffff6116a716565b604080516370a0823160e01b81523060048201529051919250600091600080516020612640833981519152916370a08231916024808301926020929190829003018186803b15801561186f57600080fd5b505afa158015611883573d6000803e3d6000fd5b505050506040513d602081101561189957600080fd5b505160408051632e1a7d4d60e01b815260048101859052905191925073d2fa07cd6cd4a5a96aa86bacfa6e50bb3aadba8b91632e1a7d4d9160248082019260009290919082900301818387803b1580156118f257600080fd5b505af1158015611906573d6000803e3d6000fd5b5050604080516370a0823160e01b815230600482015290516000935060008051602061264083398151915292506370a0823191602480820192602092909190829003018186803b15801561195957600080fd5b505afa15801561196d573d6000803e3d6000fd5b505050506040513d602081101561198357600080fd5b505190506000611999828463ffffffff61174b16565b604080516370a0823160e01b81523060048201529051919250600080516020612620833981519152916370a0823191602480820192602092909190829003018186803b1580156119e857600080fd5b505afa1580156119fc573d6000803e3d6000fd5b505050506040513d6020811015611a1257600080fd5b5051604080516301e9a69560e41b815230600482015260248101849052905191945060008051602061264083398151915291631e9a69509160448082019260009290919082900301818387803b158015611a6b57600080fd5b505af1158015611a7f573d6000803e3d6000fd5b5050604080516370a0823160e01b8152306004820152905160008051602061262083398151915293506370a0823192506024808301926020929190829003018186803b158015611ace57600080fd5b505afa158015611ae2573d6000803e3d6000fd5b505050506040513d6020811015611af857600080fd5b50519150611b0c828463ffffffff61174b16565b9695505050505050565b600082820183811015611700576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052611bc2908490612467565b505050565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708115801590611bfb5750808214155b949350505050565b6000611c796064610670605a73431ad2ff6a9c365805ebad47ee021148d6f7dbe06001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561063857600080fd5b90506000611cf16064610670600a73431ad2ff6a9c365805ebad47ee021148d6f7dbe06001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561063857600080fd5b9050737a250d5630b4cf539739df2c5dacb4c659f2488d6338ed1739836000600b30611d254261070863ffffffff611b1616565b6040518663ffffffff1660e01b81526004018086815260200185815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252858181548152602001915080548015611dad57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611d8f575b50509650505050505050600060405180830381600087803b158015611dd157600080fd5b505af1158015611de5573d6000803e3d6000fd5b50737a250d5630b4cf539739df2c5dacb4c659f2488d92506338ed173991508390506000600a30611e1e4261070863ffffffff611b1616565b6040518663ffffffff1660e01b81526004018086815260200185815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252858181548152602001915080548015611ea657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611e88575b50509650505050505050600060405180830381600087803b15801561160857600080fd5b604080516370a0823160e01b8152306004820152905160009173a1d0e215a23d7030842fc67ce582a6afa3ccab83916370a0823191602480820192602092909190829003018186803b158015611f1f57600080fd5b505afa158015611f33573d6000803e3d6000fd5b505050506040513d6020811015611f4957600080fd5b5051600154909150600090611f6d906103e89061067090859063ffffffff6116a716565b90506000611f8c6103e8610670600354866116a790919063ffffffff16565b90506000611fab6103e8610670600254876116a790919063ffffffff16565b905061204c600760009054906101000a90046001600160a01b03166001600160a01b0316639ec5a8946040518163ffffffff1660e01b815260040160206040518083038186803b158015611ffe57600080fd5b505afa158015612012573d6000803e3d6000fd5b505050506040513d602081101561202857600080fd5b505173a1d0e215a23d7030842fc67ce582a6afa3ccab83908563ffffffff611b7016565b61207173a1d0e215a23d7030842fc67ce582a6afa3ccab83338463ffffffff611b7016565b6008546120a39073a1d0e215a23d7030842fc67ce582a6afa3ccab83906001600160a01b03168363ffffffff611b7016565b60005415610a925760006120c86103e8610670600054886116a790919063ffffffff16565b6006549091506120fd9073a1d0e215a23d7030842fc67ce582a6afa3ccab83906001600160a01b03168363ffffffff611b7016565b5050505050565b80158061218a575060408051636eb1769f60e11b81523060048201526001600160a01b03848116602483015291519185169163dd62ed3e91604480820192602092909190829003018186803b15801561215c57600080fd5b505afa158015612170573d6000803e3d6000fd5b505050506040513d602081101561218657600080fd5b5051155b6121c55760405162461bcd60e51b81526004018080602001828103825260368152602001806126ab6036913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b179052611bc2908490612467565b73d2fa07cd6cd4a5a96aa86bacfa6e50bb3aadba8b6001600160a01b031663e9fad8ee6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561226657600080fd5b505af115801561227a573d6000803e3d6000fd5b5050604080516370a0823160e01b815230600482015290516000935060008051602061264083398151915292506370a0823191602480820192602092909190829003018186803b1580156122cd57600080fd5b505afa1580156122e1573d6000803e3d6000fd5b505050506040513d60208110156122f757600080fd5b50519050801561236857604080516301e9a69560e41b815230600482015260248101839052905160008051602061264083398151915291631e9a695091604480830192600092919082900301818387803b15801561235457600080fd5b505af11580156120fd573d6000803e3d6000fd5b50565b600081836123f75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156123bc5781810151838201526020016123a4565b50505050905090810190601f1680156123e95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161240357fe5b0495945050505050565b6000818484111561245f5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156123bc5781810151838201526020016123a4565b505050900390565b612479826001600160a01b0316611bc7565b6124ca576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106125085780518252601f1990920191602091820191016124e9565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461256a576040519150601f19603f3d011682016040523d82523d6000602084013e61256f565b606091505b5091509150816125c6576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b805115610a92578080602001905160208110156125e257600080fd5b5051610a925760405162461bcd60e51b815260040180806020018281038252602a815260200180612681602a913960400191505060405180910390fdfe0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f00000000000000000000000002285acaafeb533e03a7306c55ec031297df9224536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565645361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365a265627a7a7231582060c56aa74c6b93ffaf9b4fae647c5feeab7228fcee22c17f5822691895e1e85164736f6c63430005110032
Deployed Bytecode Sourcemap
6099:8639:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6099:8639:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7060:25;;;:::i;:::-;;;;;;;;;;;;;;;;12864:162;;;:::i;7502:34::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7502:34:0;;:::i;:::-;;;;-1:-1:-1;;;;;7502:34:0;;;;;;;;;;;;;;6412:82;;;:::i;7462:33::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7462:33:0;;:::i;7432:21::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;7432:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6237:82;;;:::i;6679:87::-;;;:::i;14066:134::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14066:134:0;;:::i;:::-;;9201:813;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9201:813:0;;:::i;6773:82::-;;;:::i;10791:212::-;;;:::i;14346:156::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14346:156:0;-1:-1:-1;;;;;14346:156:0;;:::i;14206:134::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14206:134:0;;:::i;8788:331::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8788:331:0;-1:-1:-1;;;;;8788:331:0;;:::i;7255:25::-;;;:::i;8022:145::-;;;:::i;13786:126::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13786:126:0;;:::i;7124:31::-;;;:::i;13918:142::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13918:142:0;;:::i;7352:71::-;;;:::i;13284:162::-;;;:::i;10094:462::-;;;:::i;6326:79::-;;;:::i;7164:29::-;;;:::i;13625:155::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13625:155:0;-1:-1:-1;;;;;13625:155:0;;:::i;6501:80::-;;;:::i;13458:155::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13458:155:0;-1:-1:-1;;;;;13458:155:0;;:::i;14510:225::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14510:225:0;;:::i;6998:27::-;;;:::i;7287:26::-;;;:::i;12737:115::-;;;:::i;13157:::-;;;:::i;8185:516::-;;;:::i;6901:82::-;;;:::i;7200:42::-;;;:::i;7092:25::-;;;:::i;7032:21::-;;;:::i;13038:107::-;;;:::i;7320:25::-;;;:::i;7060:::-;;;;:::o;12864:162::-;12910:4;12934:84;13013:4;12934:74;-1:-1:-1;;;;;;;;;;;;;;;;12980:25:0;;:27;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12980:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12980:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12980:27:0;12935:39;;;-1:-1:-1;;;12935:39:0;;12968:4;12935:39;;;;;;6451:42;;12935:24;;:39;;;;;12980:27;;12935:39;;;;;;;6451:42;12935:39;;;5:2:-1;;;;30:1;27;20:12;5:2;12935:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12935:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12935:39:0;;12934:74;:45;:74;:::i;:::-;:78;:84;:78;:84;:::i;:::-;12927:91;;12864:162;:::o;7502:34::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7502:34:0;;-1:-1:-1;7502:34:0;:::o;6412:82::-;6451:42;6412:82;:::o;7462:33::-;;;;;;;;;;7432:21;;;;;;;;;;;;;;;-1:-1:-1;;7432:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6237:82::-;-1:-1:-1;;;;;;;;;;;6237:82:0;:::o;6679:87::-;6723:42;6679:87;:::o;14066:134::-;14141:10;;-1:-1:-1;;;;;14141:10:0;14127;:24;14119:48;;;;;-1:-1:-1;;;14119:48:0;;;;;;;;;;;;-1:-1:-1;;;14119:48:0;;;;;;;;;;;;;;;14178:7;:14;14066:134::o;9201:813::-;9275:10;;-1:-1:-1;;;;;9275:10:0;9261;:24;9253:48;;;;;-1:-1:-1;;;9253:48:0;;;;;;;;;;;;-1:-1:-1;;;9253:48:0;;;;;;;;;;;;;;;9328:37;;;-1:-1:-1;;;9328:37:0;;9359:4;9328:37;;;;;;9312:13;;-1:-1:-1;;;;;;;;;;;6276:42:0;9328:22;;:37;;;;;;;;;;;;;;;6276:42;9328:37;;;5:2:-1;;;;30:1;27;20:12;5:2;9328:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9328:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9328:37:0;;-1:-1:-1;9380:18:0;;;9376:143;;;9425:36;9439:21;:7;9451:8;9439:21;:11;:21;:::i;:::-;9425:13;:36::i;:::-;9415:46;-1:-1:-1;9486:21:0;9415:46;9498:8;9486:21;:11;:21;:::i;:::-;9476:31;;9376:143;9567:13;;9539:9;;9567:15;9563:187;;9605:45;7237:5;9605:26;9617:13;;9605:7;:11;;:26;;;;:::i;:45::-;9598:52;;9673:65;9710:10;;;;;;;;;-1:-1:-1;;;;;9710:10:0;-1:-1:-1;;;;;9699:30:0;;:32;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9699:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9699:32:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9699:32:0;-1:-1:-1;;;;;;;;;;;6276:42:0;9733:4;9673:65;:25;:65;:::i;:::-;9808:10;;9797:44;;;-1:-1:-1;;;9797:44:0;;-1:-1:-1;;;;;;;;;;;9797:44:0;;;;;;9780:14;;-1:-1:-1;;;;;9808:10:0;;9797:29;;:44;;;;;;;;;;;;;;9808:10;9797:44;;;5:2:-1;;;;30:1;27;20:12;5:2;9797:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9797:44:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9797:44:0;;-1:-1:-1;;;;;;9860:20:0;;9852:39;;;;;-1:-1:-1;;;9852:39:0;;;;;;;;;;;;-1:-1:-1;;;9852:39:0;;;;;;;;;;;;;;;9954:52;9980:6;9988:17;:7;10000:4;9988:17;:11;:17;:::i;:::-;-1:-1:-1;;;;;;;;;;;6276:42:0;9954:52;;:25;:52;:::i;:::-;9201:813;;;;:::o;6773:82::-;6812:42;6773:82;:::o;10791:212::-;10837:30;10856:10;10837:18;:30::i;:::-;10836:31;10828:52;;;;;-1:-1:-1;;;10828:52:0;;;;;;;;;;;;-1:-1:-1;;;10828:52:0;;;;;;;;;;;;;;;6451:42;-1:-1:-1;;;;;10891:24:0;;:26;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10891:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10891:26:0;;;;10938:8;:6;:8::i;:::-;10957:9;:7;:9::i;:::-;10986;:7;:9::i;:::-;10791:212::o;14346:156::-;14431:10;;-1:-1:-1;;;;;14431:10:0;14417;:24;14409:48;;;;;-1:-1:-1;;;14409:48:0;;;;;;;;;;;;-1:-1:-1;;;14409:48:0;;;;;;;;;;;;;;;14468:11;:26;;-1:-1:-1;;;;;;14468:26:0;-1:-1:-1;;;;;14468:26:0;;;;;;;;;;14346:156::o;14206:134::-;14281:10;;-1:-1:-1;;;;;14281:10:0;14267;:24;14259:48;;;;;-1:-1:-1;;;14259:48:0;;;;;;;;;;;;-1:-1:-1;;;14259:48:0;;;;;;;;;;;;;;;14318:7;:14;14206:134::o;8788:331::-;8886:10;;8839:12;;-1:-1:-1;;;;;8886:10:0;8872;:24;8864:48;;;;;-1:-1:-1;;;8864:48:0;;;;;;;;;;;;-1:-1:-1;;;8864:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;8931:23:0;;;;8923:40;;;;;-1:-1:-1;;;8923:40:0;;;;;;;;;;;;;;;-1:-1:-1;;;8923:40:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;8982:20:0;;;;8974:34;;;;;-1:-1:-1;;;8974:34:0;;;;;;;;;;;;-1:-1:-1;;;8974:34:0;;;;;;;;;;;;;;;9029:31;;;-1:-1:-1;;;9029:31:0;;9054:4;9029:31;;;;;;-1:-1:-1;;;;;9029:16:0;;;;;:31;;;;;;;;;;;;;;:16;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;9029:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9029:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9029:31:0;9091:10;;9029:31;;-1:-1:-1;9071:40:0;;-1:-1:-1;;;;;9071:19:0;;;;9091:10;9029:31;9071:40;:19;:40;:::i;:::-;8788:331;;;:::o;7255:25::-;;;-1:-1:-1;;;;;7255:25:0;;:::o;8022:145::-;8061:40;6629:42;6723;8099:1;8061:40;:26;:40;:::i;:::-;8112:47;6629:42;6723;-1:-1:-1;;8112:47:0;:26;:47;:::i;13786:126::-;13857:10;;-1:-1:-1;;;;;13857:10:0;13843;:24;13835:48;;;;;-1:-1:-1;;;13835:48:0;;;;;;;;;;;;-1:-1:-1;;;13835:48:0;;;;;;;;;;;;;;;13894:3;:10;13786:126::o;7124:31::-;7151:4;7124:31;:::o;13918:142::-;13997:10;;-1:-1:-1;;;;;13997:10:0;13983;:24;13975:48;;;;;-1:-1:-1;;;13975:48:0;;;;;;;;;;;;-1:-1:-1;;;13975:48:0;;;;;;;;;;;;;;;14034:11;:18;13918:142::o;7352:71::-;;;-1:-1:-1;;;;;7352:71:0;;:::o;13284:162::-;13326:4;13350:88;13422:15;:13;:15::i;:::-;13350:50;13387:12;:10;:12::i;:::-;13350:15;:13;:15::i;:::-;:36;:50;:36;:50;:::i;10094:462::-;10182:10;;10135:12;;-1:-1:-1;;;;;10182:10:0;10168;:24;10160:48;;;;;-1:-1:-1;;;10160:48:0;;;;;;;;;;;;-1:-1:-1;;;10160:48:0;;;;;;;;;;;;;;;10219:14;:12;:14::i;:::-;10274:37;;;-1:-1:-1;;;10274:37:0;;10305:4;10274:37;;;;;;-1:-1:-1;;;;;;;;;;;6276:42:0;10274:22;;:37;;;;;;;;;;;;;;6276:42;10274:37;;;5:2:-1;;;;30:1;27;20:12;5:2;10274:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10274:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10274:37:0;10360:10;;10349:44;;;-1:-1:-1;;;10349:44:0;;-1:-1:-1;;;;;;;;;;;10349:44:0;;;;;;10274:37;;-1:-1:-1;10332:14:0;;-1:-1:-1;;;;;10360:10:0;;;;10349:29;;:44;;;;;10274:37;;10349:44;;;;;;;;10360:10;10349:44;;;5:2:-1;;;;30:1;27;20:12;5:2;10349:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10349:44:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10349:44:0;;-1:-1:-1;;;;;;10412:20:0;;10404:39;;;;;-1:-1:-1;;;10404:39:0;;;;;;;;;;;;-1:-1:-1;;;10404:39:0;;;;;;;;;;;;;;;10506:42;-1:-1:-1;;;;;;;;;;;10532:6:0;10540:7;10506:42;:25;:42;:::i;:::-;10094:462;;:::o;6326:79::-;-1:-1:-1;;;;;;;;;;;6326:79:0;:::o;7164:29::-;;;;:::o;13625:155::-;13711:10;;-1:-1:-1;;;;;13711:10:0;13697;:24;13689:48;;;;;-1:-1:-1;;;13689:48:0;;;;;;;;;;;;-1:-1:-1;;;13689:48:0;;;;;;;;;;;;;;;13748:10;:24;;-1:-1:-1;;;;;;13748:24:0;-1:-1:-1;;;;;13748:24:0;;;;;;;;;;13625:155::o;6501:80::-;6538:42;6501:80;:::o;13458:155::-;13544:10;;-1:-1:-1;;;;;13544:10:0;13530;:24;13522:48;;;;;-1:-1:-1;;;13522:48:0;;;;;;;;;;;;-1:-1:-1;;;13522:48:0;;;;;;;;;;;;;;;13581:10;:24;;-1:-1:-1;;;;;;13581:24:0;-1:-1:-1;;;;;13581:24:0;;;;;;;;;;13458:155::o;14510:225::-;14599:10;;-1:-1:-1;;;;;14599:10:0;14585;:24;14577:48;;;;;-1:-1:-1;;;14577:48:0;;;;;;;;;;;;-1:-1:-1;;;14577:48:0;;;;;;;;;;;;;;;14661:3;14644:14;:20;;14636:41;;;;;-1:-1:-1;;;14636:41:0;;;;;;;;;;;;-1:-1:-1;;;14636:41:0;;;;;;;;;;;;;;;14697:13;:30;14510:225::o;6998:27::-;;;;:::o;7287:26::-;;;-1:-1:-1;;;;;7287:26:0;;:::o;12737:115::-;12807:37;;;-1:-1:-1;;;12807:37:0;;12838:4;12807:37;;;;;;12783:4;;-1:-1:-1;;;;;;;;;;;6276:42:0;12807:22;;:37;;;;;;;;;;;;;;;6276:42;12807:37;;;5:2:-1;;;;30:1;27;20:12;5:2;12807:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12807:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12807:37:0;;-1:-1:-1;12737:115:0;:::o;13157:::-;13224:40;;;-1:-1:-1;;;13224:40:0;;13258:4;13224:40;;;;;;13200:4;;-1:-1:-1;;;;;;;;;;;6362:42:0;13224:25;;:40;;;;;;;;;;;;;;;6362:42;13224:40;;;5:2:-1;;;;30:1;27;20:12;8185:516:0;8235:37;;;-1:-1:-1;;;8235:37:0;;8266:4;8235:37;;;;;;8222:10;;-1:-1:-1;;;;;;;;;;;6276:42:0;8235:22;;:37;;;;;;;;;;;;;;;6276:42;8235:37;;;5:2:-1;;;;30:1;27;20:12;5:2;8235:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8235:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8235:37:0;;-1:-1:-1;8287:9:0;;8283:172;;8313:30;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;8341:1:0;8313:30;:24;:30;:::i;:::-;8358:34;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;8386:5:0;8358:34;:24;:34;:::i;:::-;8407:36;;;-1:-1:-1;;;8407:36:0;;8430:4;8407:36;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6362:42:0;8407:14;;:36;;;;;-1:-1:-1;;8407:36:0;;;;;;;-1:-1:-1;6362:42:0;8407:36;;;5:2:-1;;;;30:1;27;20:12;5:2;8407:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8407:36:0;;;;8283:172;8485:34;;;-1:-1:-1;;;8485:34:0;;8513:4;8485:34;;;;;;8475:7;;-1:-1:-1;;;;;;;;;;;6362:42:0;8485:19;;:34;;;;;;;;;;;;;;;6362:42;8485:34;;;5:2:-1;;;;30:1;27;20:12;5:2;8485:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8485:34:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8485:34:0;;-1:-1:-1;8534:6:0;;8530:154;;8557:30;-1:-1:-1;;;;;;;;;;;6451:42:0;8585:1;8557:30;:21;:30;:::i;:::-;8602:31;-1:-1:-1;;;;;;;;;;;6451:42:0;8630:2;8602:31;:21;:31;:::i;:::-;6451:42;-1:-1:-1;;;;;8648:20:0;;8669:2;8648:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8648:24:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8648:24:0;;;;8530:154;8185:516;;:::o;6901:82::-;6940:42;6901:82;:::o;7200:42::-;7237:5;7200:42;:::o;7092:25::-;;;;:::o;7032:21::-;;;;:::o;13038:107::-;13086:4;-1:-1:-1;;;;;;;;;;;;;;;;13110:25:0;;:27;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;7320:25:0;;;-1:-1:-1;;;;;7320:25:0;;:::o;1477:250::-;1535:7;1559:6;1555:47;;-1:-1:-1;1589:1:0;1582:8;;1555:47;1626:5;;;1630:1;1626;:5;:1;1650:5;;;;;:10;1642:56;;;;-1:-1:-1;;;1642:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1718:1;-1:-1:-1;1477:250:0;;;;;:::o;1733:132::-;1791:7;1818:39;1822:1;1825;1818:39;;;;;;;;;;;;;;;;;:3;:39::i;1137:136::-;1195:7;1222:43;1226:1;1229;1222:43;;;;;;;;;;;;;;;;;:3;:43::i;12141:584::-;12199:4;12216:7;12226:50;-1:-1:-1;;;;;;;;;;;;;;;;12248:25:0;;:27;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12248:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12248:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12248:27:0;12226:17;:7;12238:4;12226:17;:11;:17;:::i;:50::-;12302:34;;;-1:-1:-1;;;12302:34:0;;12330:4;12302:34;;;;;;12216:60;;-1:-1:-1;12287:12:0;;-1:-1:-1;;;;;;;;;;;6362:42:0;12302:19;;:34;;;;;;;;;;;;;;6362:42;12302:34;;;5:2:-1;;;;30:1;27;20:12;5:2;12302:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12302:34:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12302:34:0;12347:27;;;-1:-1:-1;;;12347:27:0;;;;;;;;;;12302:34;;-1:-1:-1;6451:42:0;;12347:23;;:27;;;;;-1:-1:-1;;12347:27:0;;;;;;;;-1:-1:-1;6451:42:0;12347:27;;;5:2:-1;;;;30:1;27;20:12;5:2;12347:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;12399:34:0;;;-1:-1:-1;;;12399:34:0;;12427:4;12399:34;;;;;;12385:11;;-1:-1:-1;;;;;;;;;;;;6362:42:0;-1:-1:-1;12399:19:0;;:34;;;;;;;;;;;;;;;6362:42;12399:34;;;5:2:-1;;;;30:1;27;20:12;5:2;12399:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12399:34:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12399:34:0;;-1:-1:-1;12444:14:0;12461:19;12399:34;12472:7;12461:19;:10;:19;:::i;:::-;12501:37;;;-1:-1:-1;;;12501:37:0;;12532:4;12501:37;;;;;;12444:36;;-1:-1:-1;;;;;;;;;;;;6276:42:0;12501:22;;:37;;;;;;;;;;;;;;;6276:42;12501:37;;;5:2:-1;;;;30:1;27;20:12;5:2;12501:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12501:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12501:37:0;12549:42;;;-1:-1:-1;;;12549:42:0;;12574:4;12549:42;;;;;;;;;;;;12501:37;;-1:-1:-1;;;;;;;;;;;;6362:42:0;12549:16;;:42;;;;;-1:-1:-1;;12549:42:0;;;;;;;;-1:-1:-1;6362:42:0;12549;;;5:2:-1;;;;30:1;27;20:12;5:2;12549:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;12611:37:0;;;-1:-1:-1;;;12611:37:0;;12642:4;12611:37;;;;;;-1:-1:-1;;;;;;;;;;;6276:42:0;-1:-1:-1;12611:22:0;;-1:-1:-1;12611:37:0;;;;;;;;;;;;;;6276:42;12611:37;;;5:2:-1;;;;30:1;27;20:12;5:2;12611:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12611:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12611:37:0;;-1:-1:-1;12671:19:0;12611:37;12682:7;12671:19;:10;:19;:::i;:::-;12659:31;12141:584;-1:-1:-1;;;;;;12141:584:0:o;950:181::-;1008:7;1040:5;;;1064:6;;;;1056:46;;;;;-1:-1:-1;;;1056:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;3450:176;3559:58;;;-1:-1:-1;;;;;3559:58:0;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;3559:58:0;;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;3533:85:0;;3552:5;;3533:18;:85::i;:::-;3450:176;;;:::o;2467:374::-;2527:4;2750:20;;2593:66;2790:15;;;;;:42;;;2821:11;2809:8;:23;;2790:42;2782:51;2467:374;-1:-1:-1;;;;2467:374:0:o;11011:457::-;11049:15;11067:56;11119:3;11067:47;11111:2;6629:42;-1:-1:-1;;;;;11067:24:0;;11100:4;11067:39;;;;;;;;;;;;;-1:-1:-1;;;;;11067:39:0;-1:-1:-1;;;;;11067:39:0;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;11067:56:0;11049:74;;11140:14;11157:56;11209:3;11157:47;11201:2;6629:42;-1:-1:-1;;;;;11157:24:0;;11190:4;11157:39;;;;;;;;;;;;;-1:-1:-1;;;;;11157:39:0;-1:-1:-1;;;;;11157:39:0;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;11157:56:0;11140:73;-1:-1:-1;6723:42:0;11231:49;11281:7;11290:1;11293:17;11320:4;11327:13;:3;11335:4;11327:13;:7;:13;:::i;:::-;11231:110;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11231:110:0;-1:-1:-1;;;;;11231:110:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11231:110:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11231:110:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;6723:42:0;;-1:-1:-1;11352:49:0;;-1:-1:-1;11402:6:0;;-1:-1:-1;11410:1:0;11413:16;11439:4;11446:13;:3;11454:4;11446:13;:7;:13;:::i;:::-;11352:108;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11352:108:0;-1:-1:-1;;;;;11352:108:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11352:108:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;11474:655:0;11521:37;;;-1:-1:-1;;;11521:37:0;;11552:4;11521:37;;;;;;11512:6;;6940:42;;11521:22;;:37;;;;;;;;;;;;;;;6940:42;11521:37;;;5:2:-1;;;;30:1;27;20:12;5:2;11521:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11521:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11521:37:0;11587:3;;11521:37;;-1:-1:-1;11569:9:0;;11581:19;;7151:4;;11581:10;;11521:37;;11581:10;:5;:10;:::i;:19::-;11569:31;;11611:13;11627:23;7151:4;11627:14;11633:7;;11627:1;:5;;:14;;;;:::i;:23::-;11611:39;;11661:13;11677:23;7151:4;11677:14;11683:7;;11677:1;:5;;:14;;;;:::i;:23::-;11661:39;;11711:65;11748:10;;;;;;;;;-1:-1:-1;;;;;11748:10:0;-1:-1:-1;;;;;11737:30:0;;:32;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11737:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11737:32:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11737:32:0;6940:42;;11771:4;11711:65;:25;:65;:::i;:::-;11815:47;6940:42;11841:10;11853:8;11815:47;:25;:47;:::i;:::-;11913:11;;11887:48;;6940:42;;-1:-1:-1;;;;;11913:11:0;11926:8;11887:48;:25;:48;:::i;:::-;11979:1;11966:11;:14;11962:160;;11996:17;12016:27;7151:4;12016:18;12022:11;;12016:1;:5;;:18;;;;:::i;:27::-;12084:11;;11996:47;;-1:-1:-1;12058:52:0;;6940:42;;-1:-1:-1;;;;;12084:11:0;11996:47;12058:52;:25;:52;:::i;:::-;11962:160;11474:655;;;;:::o;3846:347::-;3942:10;;;3941:62;;-1:-1:-1;3958:39:0;;;-1:-1:-1;;;3958:39:0;;3982:4;3958:39;;;;-1:-1:-1;;;;;3958:39:0;;;;;;;;;:15;;;;;;:39;;;;;;;;;;;;;;;:15;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;3958:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3958:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3958:39:0;:44;3941:62;3933:152;;;;-1:-1:-1;;;3933:152:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4122:62;;;-1:-1:-1;;;;;4122:62:0;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;4122:62:0;;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;4096:89:0;;4115:5;;4096:18;:89::i;10568:211::-;6451:42;-1:-1:-1;;;;;10612:19:0;;:21;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10612:21:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;10654:34:0;;;-1:-1:-1;;;10654:34:0;;10682:4;10654:34;;;;;;10644:7;;-1:-1:-1;;;;;;;;;;;;6362:42:0;-1:-1:-1;10654:19:0;;:34;;;;;;;;;;;;;;;6362:42;10654:34;;;5:2:-1;;;;30:1;27;20:12;5:2;10654:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10654:34:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10654:34:0;;-1:-1:-1;10703:6:0;;10699:73;;10726:34;;;-1:-1:-1;;;10726:34:0;;10751:4;10726:34;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6362:42:0;10726:16;;:34;;;;;-1:-1:-1;;10726:34:0;;;;;;;-1:-1:-1;6362:42:0;10726:34;;;5:2:-1;;;;30:1;27;20:12;5:2;10726:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;10699:73:0;10568:211;:::o;1871:258::-;1957:7;2059:12;2052:5;2044:28;;;;-1:-1:-1;;;2044:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2044:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2083:9;2099:1;2095;:5;;;;;;;1871:258;-1:-1:-1;;;;;1871:258:0:o;1279:192::-;1365:7;1401:12;1393:6;;;;1385:29;;;;-1:-1:-1;;;1385:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;1385:29:0;-1:-1:-1;;;1437:5:0;;;1279:192::o;4199:598::-;4287:27;4295:5;-1:-1:-1;;;;;4287:25:0;;:27::i;:::-;4279:71;;;;;-1:-1:-1;;;4279:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4424:12;4438:23;4473:5;-1:-1:-1;;;;;4465:19:0;4485:4;4465:25;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;4465:25:0;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;4423:67:0;;;;4509:7;4501:52;;;;;-1:-1:-1;;;4501:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4570:17;;:21;4566:224;;4712:10;4701:30;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4701:30:0;4693:85;;;;-1:-1:-1;;;4693:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Swarm Source
bzzr://60c56aa74c6b93ffaf9b4fae647c5feeab7228fcee22c17f5822691895e1e851
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.