ERC-20
DeFi
Overview
Max Total Supply
5,000,000,000 CMERGE
Holders
1,990 (0.00%)
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
CoinMerge
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-10-15 */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.7; /** * Standard SafeMath, stripped down to just add/sub/mul/div */ 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; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } } /** * BEP20 standard interface. */ interface IBEP20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); 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 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); } /** * Allows for contract ownership along with multi-address authorization */ abstract contract Auth { address internal owner; constructor(address _owner) { owner = _owner; } /** * Function modifier to require caller to be contract deployer */ modifier onlyOwner() { require(isOwner(msg.sender), "!Owner"); _; } /** * Check if address is owner */ function isOwner(address account) public view returns (bool) { return account == owner; } /** * Transfer ownership to new address. Caller must be deployer. Leaves old deployer authorized */ function transferOwnership(address payable adr) public onlyOwner { owner = adr; emit OwnershipTransferred(adr); } event OwnershipTransferred(address owner); } interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDEXRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } interface IDividendDistributor { function setShare(address shareholder, uint256 amount) external; function deposit() external payable; function claimDividend(address shareholder) external; } contract DividendDistributor is IDividendDistributor { using SafeMath for uint256; address private _token; address private _owner; struct Share { uint256 amount; uint256 totalExcluded; uint256 totalRealised; } address[] private shareholders; mapping (address => uint256) private shareholderIndexes; mapping (address => Share) public shares; uint256 public totalShares; uint256 public totalDividends; uint256 public totalDistributed; uint256 public dividendsPerShare; uint256 private dividendsPerShareAccuracyFactor = 10 ** 36; modifier onlyToken() { require(msg.sender == _token); _; } modifier onlyOwner() { require(msg.sender == _owner); _; } constructor (address owner) { _token = msg.sender; _owner = owner; } function setShare(address shareholder, uint256 amount) external override onlyToken { if(shares[shareholder].amount > 0){ distributeDividend(shareholder); } if(amount > 0 && shares[shareholder].amount == 0){ addShareholder(shareholder); }else if(amount == 0 && shares[shareholder].amount > 0){ removeShareholder(shareholder); } totalShares = totalShares.sub(shares[shareholder].amount).add(amount); shares[shareholder].amount = amount; shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); } function deposit() external payable override onlyToken { uint256 amount = msg.value; totalDividends = totalDividends.add(amount); dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares)); } function distributeDividend(address shareholder) internal { if(shares[shareholder].amount == 0){ return; } uint256 amount = getUnpaidEarnings(shareholder); if(amount > 0){ totalDistributed = totalDistributed.add(amount); shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount); shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); payable(shareholder).transfer(amount); } } function claimDividend(address shareholder) external override onlyToken { distributeDividend(shareholder); } function getUnpaidEarnings(address shareholder) public view returns (uint256) { if(shares[shareholder].amount == 0){ return 0; } uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount); uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded; if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; } return shareholderTotalDividends.sub(shareholderTotalExcluded); } function getCumulativeDividends(uint256 share) internal view returns (uint256) { return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor); } function addShareholder(address shareholder) internal { shareholderIndexes[shareholder] = shareholders.length; shareholders.push(shareholder); } function removeShareholder(address shareholder) internal { shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1]; shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder]; shareholders.pop(); } function manualSend(uint256 amount, address holder) external onlyOwner { uint256 contractETHBalance = address(this).balance; payable(holder).transfer(amount > 0 ? amount : contractETHBalance); } } contract CoinMerge is IBEP20, Auth { using SafeMath for uint256; address private WETH; address private DEAD = 0x000000000000000000000000000000000000dEaD; address private ZERO = 0x0000000000000000000000000000000000000000; string private constant _name = "Coin Merge"; string private constant _symbol = "CMERGE"; uint8 private constant _decimals = 9; uint256 private _totalSupply = 5000000000 * (10 ** _decimals); uint256 private _maxTxAmountBuy = _totalSupply; uint256 private _maxTxAmountSell = _totalSupply; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private isFeeExempt; mapping (address => bool) private isTxLimitExempt; mapping (address => bool) private isDividendExempt; mapping (address => bool) private isBot; uint256 private initialBlockLimit = 1; uint256 private reflectionFee = 4; uint256 private teamFee = 4; uint256 private totalFee = 8; uint256 private feeDenominator = 100; address private teamReceiver; IDEXRouter public router; address public pair; uint256 public launchedAt; DividendDistributor private distributor; bool public swapEnabled = true; uint256 public swapThreshold = _totalSupply / 1000; // 5M bool private inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor ( address _owner, address _teamWallet ) Auth(_owner) { router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); WETH = router.WETH(); pair = IDEXFactory(router.factory()).createPair(WETH, address(this)); _allowances[address(this)][address(router)] = type(uint256).max; distributor = new DividendDistributor(_owner); isFeeExempt[_owner] = true; isFeeExempt[_teamWallet] = true; isTxLimitExempt[_owner] = true; isTxLimitExempt[DEAD] = true; isTxLimitExempt[_teamWallet] = true; isDividendExempt[pair] = true; isDividendExempt[address(this)] = true; isDividendExempt[DEAD] = true; teamReceiver = _teamWallet; _balances[_owner] = _totalSupply; emit Transfer(address(0), _owner, _totalSupply); } receive() external payable { } function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function getOwner() external view override returns (address) { return owner; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, type(uint256).max); } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if(_allowances[sender][msg.sender] != type(uint256).max){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { if(inSwap){ return _basicTransfer(sender, recipient, amount); } checkTxLimit(sender, recipient, amount); if(shouldSwapBack()){ swapBack(); } if(!launched() && recipient == pair){ require(_balances[sender] > 0); launch(); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount; _balances[recipient] = _balances[recipient].add(amountReceived); if(sender != pair && !isDividendExempt[sender]){ try distributor.setShare(sender, _balances[sender]) {} catch {} } if(recipient != pair && !isDividendExempt[recipient]){ try distributor.setShare(recipient, _balances[recipient]) {} catch {} } emit Transfer(sender, recipient, amountReceived); return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function checkTxLimit(address sender, address recipient, uint256 amount) internal view { sender == pair ? require(amount <= _maxTxAmountBuy || isTxLimitExempt[recipient], "Buy TX Limit Exceeded") : require(amount <= _maxTxAmountSell || isTxLimitExempt[sender], "Sell TX Limit Exceeded"); } function shouldTakeFee(address sender, address recipient) internal view returns (bool) { return !(isFeeExempt[sender] || isFeeExempt[recipient]); } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { uint256 feeAmount; bool bot; // Add all the fees to the contract. In case of Sell, it will be multiplied fees. if (sender != pair) { bot = isBot[sender]; } else { bot = isBot[recipient]; } if (bot || launchedAt + initialBlockLimit >= block.number) { feeAmount = amount.mul(feeDenominator.sub(1)).div(feeDenominator); _balances[DEAD] = _balances[DEAD].add(feeAmount); emit Transfer(sender, DEAD, feeAmount); } else { feeAmount = amount.mul(totalFee).div(feeDenominator); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); } return amount.sub(feeAmount); } function shouldSwapBack() internal view returns (bool) { return msg.sender != pair && !inSwap && swapEnabled && _balances[address(this)] >= swapThreshold; } function swapBack() internal swapping { uint256 amountToSwap = swapThreshold; address[] memory path = new address[](2); path[0] = address(this); path[1] = WETH; uint256 balanceBefore = address(this).balance; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance.sub(balanceBefore); uint256 amountReflection = amountETH.mul(reflectionFee).div(totalFee); uint256 amountTeam = amountETH.sub(amountReflection); try distributor.deposit{value: amountReflection}() {} catch {} payable(teamReceiver).transfer(amountTeam); } function launched() internal view returns (bool) { return launchedAt != 0; } function launch() internal { //To know when it was launched launchedAt = block.number; } function setInitialBlockLimit(uint256 blocks) external onlyOwner { require(blocks > 0, "Blocks should be greater than 0"); initialBlockLimit = blocks; } function setBuyTxLimit(uint256 amount) external onlyOwner { _maxTxAmountBuy = amount; } function setSellTxLimit(uint256 amount) external onlyOwner { _maxTxAmountSell = amount; } function setBot(address _address, bool toggle) external onlyOwner { isBot[_address] = toggle; _setIsDividendExempt(_address, toggle); } function isInBot(address _address) external view onlyOwner returns (bool) { return isBot[_address]; } function _setIsDividendExempt(address holder, bool exempt) internal { require(holder != address(this) && holder != pair); isDividendExempt[holder] = exempt; if(exempt){ distributor.setShare(holder, 0); }else{ distributor.setShare(holder, _balances[holder]); } } function setIsDividendExempt(address holder, bool exempt) external onlyOwner { _setIsDividendExempt(holder, exempt); } function setIsFeeExempt(address holder, bool exempt) external onlyOwner { isFeeExempt[holder] = exempt; } function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner { isTxLimitExempt[holder] = exempt; } function setFees( uint256 _reflectionFee, uint256 _teamFee, uint256 _feeDenominator) external onlyOwner { reflectionFee = _reflectionFee; teamFee = _teamFee; totalFee = _reflectionFee.add(_teamFee); feeDenominator = _feeDenominator; //Total fees has to be less than 50% require(totalFee < feeDenominator/2); } function setFeeReceiver(address _teamReceiver) external onlyOwner { teamReceiver = _teamReceiver; } function manualSend() external onlyOwner { uint256 contractETHBalance = address(this).balance; payable(teamReceiver).transfer(contractETHBalance); } function setSwapBackSettings(bool enabled, uint256 amount) external onlyOwner { swapEnabled = enabled; swapThreshold = amount; } function claimDividend() external { distributor.claimDividend(msg.sender); } function claimDividend(address holder) external onlyOwner { distributor.claimDividend(holder); } function getUnpaidEarnings(address shareholder) public view returns (uint256) { return distributor.getUnpaidEarnings(shareholder); } function manualBurn(uint256 amount) external onlyOwner returns (bool) { return _basicTransfer(address(this), DEAD, amount); } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_teamWallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getUnpaidEarnings","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isInBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualBurn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"toggle","type":"bool"}],"name":"setBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setBuyTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_teamReceiver","type":"address"}],"name":"setFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_reflectionFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"blocks","type":"uint256"}],"name":"setInitialBlockLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSellTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600280546001600160a01b031990811661dead17909155600380549091169055620000326009600a62000512565b620000439064012a05f200620005d3565b6004818155600582905560068290556001600d55600e819055600f55600860105560646011556016805460ff60a01b1916600160a01b1790556200008b906103e890620004a6565b6017553480156200009b57600080fd5b50604051620035dd380380620035dd833981016040819052620000be916200046e565b600080546001600160a01b03199081166001600160a01b0385161790915560138054737a250d5630b4cf539739df2c5dacb4c659f2488d921682179055604080516315ab88c960e31b8152905163ad5c464891600480820192602092909190829003018186803b1580156200013257600080fd5b505afa15801562000147573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016d919062000449565b600180546001600160a01b0319166001600160a01b039283161790556013546040805163c45a015560e01b81529051919092169163c45a0155916004808301926020929190829003018186803b158015620001c757600080fd5b505afa158015620001dc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000202919062000449565b6001546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c6539690604401602060405180830381600087803b1580156200024f57600080fd5b505af115801562000264573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028a919062000449565b601480546001600160a01b0319166001600160a01b0392831617905530600090815260086020908152604080832060135490941683529290528190206000199055518290620002d9906200041e565b6001600160a01b039091168152602001604051809103906000f08015801562000306573d6000803e3d6000fd5b50601680546001600160a01b03199081166001600160a01b03938416179091558382166000818152600960209081526040808320805460ff1990811660019081179092558888168086528386208054831684179055868652600a85528386208054831684179055600280548a168752848720805484168517905581875284872080548416851790556014548a168752600b8652848720805484168517905530875284872080548416851790555490981685528285208054909116909117905560128054909516909517909355600454828252600784528482208190559351938452909290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350506200060b565b610dfc80620027e183390190565b80516001600160a01b03811681146200044457600080fd5b919050565b6000602082840312156200045c57600080fd5b62000467826200042c565b9392505050565b600080604083850312156200048257600080fd5b6200048d836200042c565b91506200049d602084016200042c565b90509250929050565b600082620004c457634e487b7160e01b600052601260045260246000fd5b500490565b600181815b808511156200050a578160001904821115620004ee57620004ee620005f5565b80851615620004fc57918102915b93841c9390800290620004ce565b509250929050565b60006200046760ff8416836000826200052e57506001620005cd565b816200053d57506000620005cd565b8160018114620005565760028114620005615762000581565b6001915050620005cd565b60ff841115620005755762000575620005f5565b50506001821b620005cd565b5060208310610133831016604e8410600b8410161715620005a6575081810a620005cd565b620005b28383620004c9565b8060001904821115620005c957620005c9620005f5565b0290505b92915050565b6000816000190483118215151615620005f057620005f0620005f5565b500290565b634e487b7160e01b600052601160045260246000fd5b6121c6806200061b6000396000f3fe6080604052600436106102385760003560e01c806370a0823111610138578063dd62ed3e116100b0578063f2fde38b1161007f578063f708a64f11610064578063f708a64f146106e9578063f84ba65d14610709578063f887ea401461072957600080fd5b8063f2fde38b146106b4578063f4293890146106d457600080fd5b8063dd62ed3e14610619578063df20fd491461065f578063efdcd9741461067f578063f0fc6bca1461069f57600080fd5b8063a8aa1b3111610107578063bf56b371116100ec578063bf56b371146105c3578063c3647c8c146105d9578063cec10c11146105f957600080fd5b8063a8aa1b3114610583578063a9059cbb146105a357600080fd5b806370a08231146104b5578063736ad050146104eb578063893d20e81461050b57806395d89b411461053d57600080fd5b806328fd3198116101cb578063342aa8b51161019a578063571ac8b01161017f578063571ac8b014610443578063658d4b7f146104635780636ddd17131461048357600080fd5b8063342aa8b514610403578063416501c81461042357600080fd5b806328fd3198146103835780632b112e49146103a35780632f54bf6e146103b8578063313ce567146103e757600080fd5b806315f7e05e1161020757806315f7e05e1461030e57806318160ddd1461032e57806323b635851461034357806323b872dd1461036357600080fd5b80630445b6671461024457806306fdde031461026d57806308cad4e5146102bc578063095ea7b3146102de57600080fd5b3661023f57005b600080fd5b34801561025057600080fd5b5061025a60175481565b6040519081526020015b60405180910390f35b34801561027957600080fd5b5060408051808201909152600a81527f436f696e204d657267650000000000000000000000000000000000000000000060208201525b6040516102649190611f8f565b3480156102c857600080fd5b506102dc6102d7366004611f31565b610749565b005b3480156102ea57600080fd5b506102fe6102f9366004611ee9565b610796565b6040519015158152602001610264565b34801561031a57600080fd5b506102dc610329366004611e1d565b610803565b34801561033a57600080fd5b5060045461025a565b34801561034f57600080fd5b506102fe61035e366004611f31565b6108c1565b34801561036f57600080fd5b506102fe61037e366004611e73565b610925565b34801561038f57600080fd5b5061025a61039e366004611e1d565b610a0c565b3480156103af57600080fd5b5061025a610aa3565b3480156103c457600080fd5b506102fe6103d3366004611e1d565b6000546001600160a01b0391821691161490565b3480156103f357600080fd5b5060405160098152602001610264565b34801561040f57600080fd5b506102dc61041e366004611eb4565b610af5565b34801561042f57600080fd5b506102fe61043e366004611e1d565b610b6a565b34801561044f57600080fd5b506102fe61045e366004611e1d565b610bcd565b34801561046f57600080fd5b506102dc61047e366004611eb4565b610bf9565b34801561048f57600080fd5b506016546102fe9074010000000000000000000000000000000000000000900460ff1681565b3480156104c157600080fd5b5061025a6104d0366004611e1d565b6001600160a01b031660009081526007602052604090205490565b3480156104f757600080fd5b506102dc610506366004611f31565b610c67565b34801561051757600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610264565b34801561054957600080fd5b5060408051808201909152600681527f434d45524745000000000000000000000000000000000000000000000000000060208201526102af565b34801561058f57600080fd5b50601454610525906001600160a01b031681565b3480156105af57600080fd5b506102fe6105be366004611ee9565b610caf565b3480156105cf57600080fd5b5061025a60155481565b3480156105e557600080fd5b506102dc6105f4366004611f31565b610cbc565b34801561060557600080fd5b506102dc610614366004611f63565b610d54565b34801561062557600080fd5b5061025a610634366004611e3a565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561066b57600080fd5b506102dc61067a366004611f15565b610dd0565b34801561068b57600080fd5b506102dc61069a366004611e1d565b610e61565b3480156106ab57600080fd5b506102dc610ede565b3480156106c057600080fd5b506102dc6106cf366004611e1d565b610f56565b3480156106e057600080fd5b506102dc611005565b3480156106f557600080fd5b506102dc610704366004611eb4565b611082565b34801561071557600080fd5b506102dc610724366004611eb4565b6110cf565b34801561073557600080fd5b50601354610525906001600160a01b031681565b6000546001600160a01b031633146107915760405162461bcd60e51b815260206004820152600660248201526510a7bbb732b960d11b60448201526064015b60405180910390fd5b600655565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107f19086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146108465760405162461bcd60e51b815260206004820152600660248201526510a7bbb732b960d11b6044820152606401610788565b6016546040517f15f7e05e0000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152909116906315f7e05e90602401600060405180830381600087803b1580156108a657600080fd5b505af11580156108ba573d6000803e3d6000fd5b5050505050565b600080546001600160a01b031633146109055760405162461bcd60e51b815260206004820152600660248201526510a7bbb732b960d11b6044820152606401610788565b60025461091d9030906001600160a01b03168461113d565b90505b919050565b6001600160a01b03831660009081526008602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff146109f757604080518082018252601681527f496e73756666696369656e7420416c6c6f77616e6365000000000000000000006020808301919091526001600160a01b03871660009081526008825283812033825290915291909120546109d291849061122c565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b610a02848484611266565b90505b9392505050565b6016546040517f28fd31980000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015260009216906328fd31989060240160206040518083038186803b158015610a6b57600080fd5b505afa158015610a7f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091d9190611f4a565b6003546001600160a01b0316600090815260076020526040812054610af0906002546001600160a01b0316600090815260076020526040902054610aea90600454906115a8565b906115a8565b905090565b6000546001600160a01b03163314610b385760405162461bcd60e51b815260206004820152600660248201526510a7bbb732b960d11b6044820152606401610788565b6001600160a01b0382166000908152600c60205260409020805460ff1916821515179055610b6682826115ea565b5050565b600080546001600160a01b03163314610bae5760405162461bcd60e51b815260206004820152600660248201526510a7bbb732b960d11b6044820152606401610788565b506001600160a01b03166000908152600c602052604090205460ff1690565b600061091d827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610796565b6000546001600160a01b03163314610c3c5760405162461bcd60e51b815260206004820152600660248201526510a7bbb732b960d11b6044820152606401610788565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610caa5760405162461bcd60e51b815260206004820152600660248201526510a7bbb732b960d11b6044820152606401610788565b600555565b6000610a05338484611266565b6000546001600160a01b03163314610cff5760405162461bcd60e51b815260206004820152600660248201526510a7bbb732b960d11b6044820152606401610788565b60008111610d4f5760405162461bcd60e51b815260206004820152601f60248201527f426c6f636b732073686f756c642062652067726561746572207468616e2030006044820152606401610788565b600d55565b6000546001600160a01b03163314610d975760405162461bcd60e51b815260206004820152600660248201526510a7bbb732b960d11b6044820152606401610788565b600e839055600f829055610dab838361172d565b6010556011819055610dbe60028261208b565b60105410610dcb57600080fd5b505050565b6000546001600160a01b03163314610e135760405162461bcd60e51b815260206004820152600660248201526510a7bbb732b960d11b6044820152606401610788565b6016805492151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff90931692909217909155601755565b6000546001600160a01b03163314610ea45760405162461bcd60e51b815260206004820152600660248201526510a7bbb732b960d11b6044820152606401610788565b601280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6016546040517f15f7e05e0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b03909116906315f7e05e90602401600060405180830381600087803b158015610f3c57600080fd5b505af1158015610f50573d6000803e3d6000fd5b50505050565b6000546001600160a01b03163314610f995760405162461bcd60e51b815260206004820152600660248201526510a7bbb732b960d11b6044820152606401610788565b600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b031633146110485760405162461bcd60e51b815260206004820152600660248201526510a7bbb732b960d11b6044820152606401610788565b60125460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610b66573d6000803e3d6000fd5b6000546001600160a01b031633146110c55760405162461bcd60e51b815260206004820152600660248201526510a7bbb732b960d11b6044820152606401610788565b610b6682826115ea565b6000546001600160a01b031633146111125760405162461bcd60e51b815260206004820152600660248201526510a7bbb732b960d11b6044820152606401610788565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b604080518082018252601481527f496e73756666696369656e742042616c616e63650000000000000000000000006020808301919091526001600160a01b038616600090815260079091529182205461119791849061122c565b6001600160a01b0380861660009081526007602052604080822093909355908516815220546111c6908361172d565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061121a9086815260200190565b60405180910390a35060019392505050565b600081848411156112505760405162461bcd60e51b81526004016107889190611f8f565b50600061125d8486612103565b95945050505050565b60185460009060ff16156112865761127f84848461113d565b9050610a05565b61129184848461178c565b61129961188b565b156112a6576112a66118f2565b6015541580156112c357506014546001600160a01b038481169116145b156112f3576001600160a01b0384166000908152600760205260409020546112ea57600080fd5b6112f343601555565b604080518082018252601481527f496e73756666696369656e742042616c616e63650000000000000000000000006020808301919091526001600160a01b03871660009081526007909152919091205461134e91849061122c565b6001600160a01b0385166000908152600760205260408120919091556113748585611af6565b61137e5782611389565b611389858585611b3d565b6001600160a01b0385166000908152600760205260409020549091506113af908261172d565b6001600160a01b038086166000908152600760205260409020919091556014548682169116148015906113fb57506001600160a01b0385166000908152600b602052604090205460ff16155b1561148a576016546001600160a01b03868116600081815260076020526040908190205490517f14b6ca96000000000000000000000000000000000000000000000000000000008152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561147757600080fd5b505af1925050508015611488575060015b505b6014546001600160a01b038581169116148015906114c157506001600160a01b0384166000908152600b602052604090205460ff16155b15611550576016546001600160a01b03858116600081815260076020526040908190205490517f14b6ca96000000000000000000000000000000000000000000000000000000008152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561153d57600080fd5b505af192505050801561154e575060015b505b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161159591815260200190565b60405180910390a3506001949350505050565b6000610a0583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061122c565b6001600160a01b038216301480159061161157506014546001600160a01b03838116911614155b61161a57600080fd5b6001600160a01b0382166000908152600b60205260409020805460ff191682158015919091179091556116cb576016546040517f14b6ca960000000000000000000000000000000000000000000000000000000081526001600160a01b03848116600483015260006024830152909116906314b6ca96906044015b600060405180830381600087803b1580156116af57600080fd5b505af11580156116c3573d6000803e3d6000fd5b505050505050565b6016546001600160a01b03838116600081815260076020526040908190205490517f14b6ca96000000000000000000000000000000000000000000000000000000008152600481019290925260248201529116906314b6ca9690604401611695565b60008061173a8385612073565b905083811015610a055760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610788565b6014546001600160a01b0384811691161461181657600654811115806117ca57506001600160a01b0383166000908152600a602052604090205460ff165b610dcb5760405162461bcd60e51b815260206004820152601660248201527f53656c6c205458204c696d6974204578636565646564000000000000000000006044820152606401610788565b6005548111158061183f57506001600160a01b0382166000908152600a602052604090205460ff165b610dcb5760405162461bcd60e51b815260206004820152601560248201527f427579205458204c696d697420457863656564656400000000000000000000006044820152606401610788565b6014546000906001600160a01b031633148015906118ac575060185460ff16155b80156118d2575060165474010000000000000000000000000000000000000000900460ff165b8015610af057505060175430600090815260076020526040902054101590565b6018805460ff19166001179055601754604080516002808252606082018352600092602083019080368337019050509050308160008151811061193757611937612149565b6001600160a01b039283166020918202929092010152600180548351921691839190811061196757611967612149565b6001600160a01b0392831660209182029290920101526013546040517f791ac9470000000000000000000000000000000000000000000000000000000081524792919091169063791ac947906119ca908690600090879030904290600401612002565b600060405180830381600087803b1580156119e457600080fd5b505af11580156119f8573d6000803e3d6000fd5b505050506000611a1182476115a890919063ffffffff16565b90506000611a36601054611a30600e5485611d0790919063ffffffff16565b90611da2565b90506000611a4483836115a8565b9050601660009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b158015611a9657600080fd5b505af193505050508015611aa8575060015b506012546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611ae3573d6000803e3d6000fd5b50506018805460ff191690555050505050565b6001600160a01b03821660009081526009602052604081205460ff1680611b3557506001600160a01b03821660009081526009602052604090205460ff165b159392505050565b601454600090819081906001600160a01b03878116911614611b7b57506001600160a01b0385166000908152600c602052604090205460ff16611b99565b506001600160a01b0384166000908152600c602052604090205460ff165b8080611bb4575043600d54601554611bb19190612073565b10155b15611c6157601154611bd590611a30611bce8260016115a8565b8790611d07565b6002546001600160a01b0316600090815260076020526040902054909250611bfd908361172d565b600280546001600160a01b03908116600090815260076020908152604091829020949094559154915185815291811692908916917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3611cf3565b611c7c601154611a3060105487611d0790919063ffffffff16565b30600090815260076020526040902054909250611c99908361172d565b30600081815260076020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611cea9086815260200190565b60405180910390a35b611cfd84836115a8565b9695505050505050565b600082611d16575060006107fd565b6000611d2283856120c6565b905082611d2f858361208b565b14610a055760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f77000000000000000000000000000000000000000000000000000000000000006064820152608401610788565b6000610a0583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060008183611e005760405162461bcd60e51b81526004016107889190611f8f565b50600061125d848661208b565b8035801515811461092057600080fd5b600060208284031215611e2f57600080fd5b8135610a0581612178565b60008060408385031215611e4d57600080fd5b8235611e5881612178565b91506020830135611e6881612178565b809150509250929050565b600080600060608486031215611e8857600080fd5b8335611e9381612178565b92506020840135611ea381612178565b929592945050506040919091013590565b60008060408385031215611ec757600080fd5b8235611ed281612178565b9150611ee060208401611e0d565b90509250929050565b60008060408385031215611efc57600080fd5b8235611f0781612178565b946020939093013593505050565b60008060408385031215611f2857600080fd5b611f0783611e0d565b600060208284031215611f4357600080fd5b5035919050565b600060208284031215611f5c57600080fd5b5051919050565b600080600060608486031215611f7857600080fd5b505081359360208301359350604090920135919050565b600060208083528351808285015260005b81811015611fbc57858101830151858201604001528201611fa0565b81811115611fce576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120525784516001600160a01b03168352938301939183019160010161202d565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156120865761208661211a565b500190565b6000826120c1577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156120fe576120fe61211a565b500290565b6000828210156121155761211561211a565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6001600160a01b038116811461218d57600080fd5b5056fea2646970667358221220ce6881b65aedf068c241af9a12eee4f5464550699c2076cbcefd02985e161f8364736f6c6343000807003360806040526ec097ce7bc90715b34b9f100000000060095534801561002357600080fd5b50604051610dfc380380610dfc83398101604081905261004291610075565b60008054336001600160a01b031991821617909155600180549091166001600160a01b03929092169190911790556100a5565b60006020828403121561008757600080fd5b81516001600160a01b038116811461009e57600080fd5b9392505050565b610d48806100b46000396000f3fe6080604052600436106100b15760003560e01c8063997664d711610069578063d0e30db01161004e578063d0e30db0146101ce578063e2d2e219146101d6578063efca2eed146101ec57600080fd5b8063997664d714610161578063ce7c2ac21461017757600080fd5b806315f7e05e1161009a57806315f7e05e146100f857806328fd3198146101185780633a98ef391461014b57600080fd5b80631014edf5146100b657806314b6ca96146100d8575b600080fd5b3480156100c257600080fd5b506100d66100d1366004610b3f565b610202565b005b3480156100e457600080fd5b506100d66100f3366004610b15565b61027c565b34801561010457600080fd5b506100d6610113366004610afa565b610474565b34801561012457600080fd5b50610138610133366004610afa565b6104a4565b6040519081526020015b60405180910390f35b34801561015757600080fd5b5061013860055481565b34801561016d57600080fd5b5061013860065481565b34801561018357600080fd5b506101b3610192366004610afa565b60046020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610142565b6100d6610554565b3480156101e257600080fd5b5061013860085481565b3480156101f857600080fd5b5061013860075481565b60015473ffffffffffffffffffffffffffffffffffffffff16331461022657600080fd5b4773ffffffffffffffffffffffffffffffffffffffff82166108fc8461024c578261024e565b845b6040518115909202916000818181858888f19350505050158015610276573d6000803e3d6000fd5b50505050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146102a057600080fd5b73ffffffffffffffffffffffffffffffffffffffff8216600090815260046020526040902054156102d4576102d4826105b7565b600081118015610307575073ffffffffffffffffffffffffffffffffffffffff8216600090815260046020526040902054155b15610392576002805473ffffffffffffffffffffffffffffffffffffffff84166000818152600360205260408120839055600183018455929092527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690911790556103d2565b801580156103c4575073ffffffffffffffffffffffffffffffffffffffff821660009081526004602052604090205415155b156103d2576103d2826106ce565b73ffffffffffffffffffffffffffffffffffffffff821660009081526004602052604090205460055461041091839161040a91610858565b906108a3565b60055573ffffffffffffffffffffffffffffffffffffffff8216600090815260046020526040902081905561044481610921565b73ffffffffffffffffffffffffffffffffffffffff90921660009081526004602052604090206001019190915550565b60005473ffffffffffffffffffffffffffffffffffffffff16331461049857600080fd5b6104a1816105b7565b50565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600460205260408120546104d657506000919050565b73ffffffffffffffffffffffffffffffffffffffff821660009081526004602052604081205461050590610921565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260046020526040902060010154909150808211610542575060009392505050565b61054c8282610858565b949350505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461057857600080fd5b600654349061058790826108a3565b6006556005546009546105b1916105a8916105a2908561093e565b906109f3565b600854906108a3565b60085550565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600460205260409020546105e45750565b60006105ef826104a4565b905080156106ca5760075461060490826108a3565b60075573ffffffffffffffffffffffffffffffffffffffff821660009081526004602052604090206002015461063a90826108a3565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260046020526040902060028101919091555461067190610921565b73ffffffffffffffffffffffffffffffffffffffff8316600081815260046020526040808220600101939093559151909183156108fc02918491818181858888f193505050501580156106c8573d6000803e3d6000fd5b505b5050565b600280546106de90600190610c6e565b815481106106ee576106ee610ce3565b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff8481168452600390925260409092205460028054929093169291811061073957610739610ce3565b600091825260208083209190910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9485161790559183168152600391829052604081205460028054919392916107aa90600190610c6e565b815481106107ba576107ba610ce3565b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400190205560028054806107fd576107fd610cb4565b60008281526020902081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905501905550565b600061089a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610a35565b90505b92915050565b6000806108b08385610bde565b90508381101561089a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064015b60405180910390fd5b600061089d6009546105a26008548561093e90919063ffffffff16565b60008261094d5750600061089d565b60006109598385610c31565b9050826109668583610bf6565b1461089a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f77000000000000000000000000000000000000000000000000000000000000006064820152608401610918565b600061089a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610a89565b60008184841115610a73576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109189190610b6b565b506000610a808486610c6e565b95945050505050565b60008183610ac4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109189190610b6b565b506000610a808486610bf6565b803573ffffffffffffffffffffffffffffffffffffffff81168114610af557600080fd5b919050565b600060208284031215610b0c57600080fd5b61089a82610ad1565b60008060408385031215610b2857600080fd5b610b3183610ad1565b946020939093013593505050565b60008060408385031215610b5257600080fd5b82359150610b6260208401610ad1565b90509250929050565b600060208083528351808285015260005b81811015610b9857858101830151858201604001528201610b7c565b81811115610baa576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60008219821115610bf157610bf1610c85565b500190565b600082610c2c577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610c6957610c69610c85565b500290565b600082821015610c8057610c80610c85565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea264697066735822122026d3cc4621f7d33ebd5076fa8f1dfcacb7575ca54f07dbea663f3a8196269bb564736f6c63430008070033000000000000000000000000e990d297a8c249bc92cbe4ca2c72a8960676ab0d0000000000000000000000008e8a6edd836d6856d146e97f530086c452b1ed19
Deployed Bytecode
0x6080604052600436106102385760003560e01c806370a0823111610138578063dd62ed3e116100b0578063f2fde38b1161007f578063f708a64f11610064578063f708a64f146106e9578063f84ba65d14610709578063f887ea401461072957600080fd5b8063f2fde38b146106b4578063f4293890146106d457600080fd5b8063dd62ed3e14610619578063df20fd491461065f578063efdcd9741461067f578063f0fc6bca1461069f57600080fd5b8063a8aa1b3111610107578063bf56b371116100ec578063bf56b371146105c3578063c3647c8c146105d9578063cec10c11146105f957600080fd5b8063a8aa1b3114610583578063a9059cbb146105a357600080fd5b806370a08231146104b5578063736ad050146104eb578063893d20e81461050b57806395d89b411461053d57600080fd5b806328fd3198116101cb578063342aa8b51161019a578063571ac8b01161017f578063571ac8b014610443578063658d4b7f146104635780636ddd17131461048357600080fd5b8063342aa8b514610403578063416501c81461042357600080fd5b806328fd3198146103835780632b112e49146103a35780632f54bf6e146103b8578063313ce567146103e757600080fd5b806315f7e05e1161020757806315f7e05e1461030e57806318160ddd1461032e57806323b635851461034357806323b872dd1461036357600080fd5b80630445b6671461024457806306fdde031461026d57806308cad4e5146102bc578063095ea7b3146102de57600080fd5b3661023f57005b600080fd5b34801561025057600080fd5b5061025a60175481565b6040519081526020015b60405180910390f35b34801561027957600080fd5b5060408051808201909152600a81527f436f696e204d657267650000000000000000000000000000000000000000000060208201525b6040516102649190611f8f565b3480156102c857600080fd5b506102dc6102d7366004611f31565b610749565b005b3480156102ea57600080fd5b506102fe6102f9366004611ee9565b610796565b6040519015158152602001610264565b34801561031a57600080fd5b506102dc610329366004611e1d565b610803565b34801561033a57600080fd5b5060045461025a565b34801561034f57600080fd5b506102fe61035e366004611f31565b6108c1565b34801561036f57600080fd5b506102fe61037e366004611e73565b610925565b34801561038f57600080fd5b5061025a61039e366004611e1d565b610a0c565b3480156103af57600080fd5b5061025a610aa3565b3480156103c457600080fd5b506102fe6103d3366004611e1d565b6000546001600160a01b0391821691161490565b3480156103f357600080fd5b5060405160098152602001610264565b34801561040f57600080fd5b506102dc61041e366004611eb4565b610af5565b34801561042f57600080fd5b506102fe61043e366004611e1d565b610b6a565b34801561044f57600080fd5b506102fe61045e366004611e1d565b610bcd565b34801561046f57600080fd5b506102dc61047e366004611eb4565b610bf9565b34801561048f57600080fd5b506016546102fe9074010000000000000000000000000000000000000000900460ff1681565b3480156104c157600080fd5b5061025a6104d0366004611e1d565b6001600160a01b031660009081526007602052604090205490565b3480156104f757600080fd5b506102dc610506366004611f31565b610c67565b34801561051757600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610264565b34801561054957600080fd5b5060408051808201909152600681527f434d45524745000000000000000000000000000000000000000000000000000060208201526102af565b34801561058f57600080fd5b50601454610525906001600160a01b031681565b3480156105af57600080fd5b506102fe6105be366004611ee9565b610caf565b3480156105cf57600080fd5b5061025a60155481565b3480156105e557600080fd5b506102dc6105f4366004611f31565b610cbc565b34801561060557600080fd5b506102dc610614366004611f63565b610d54565b34801561062557600080fd5b5061025a610634366004611e3a565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561066b57600080fd5b506102dc61067a366004611f15565b610dd0565b34801561068b57600080fd5b506102dc61069a366004611e1d565b610e61565b3480156106ab57600080fd5b506102dc610ede565b3480156106c057600080fd5b506102dc6106cf366004611e1d565b610f56565b3480156106e057600080fd5b506102dc611005565b3480156106f557600080fd5b506102dc610704366004611eb4565b611082565b34801561071557600080fd5b506102dc610724366004611eb4565b6110cf565b34801561073557600080fd5b50601354610525906001600160a01b031681565b6000546001600160a01b031633146107915760405162461bcd60e51b815260206004820152600660248201526510a7bbb732b960d11b60448201526064015b60405180910390fd5b600655565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107f19086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146108465760405162461bcd60e51b815260206004820152600660248201526510a7bbb732b960d11b6044820152606401610788565b6016546040517f15f7e05e0000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152909116906315f7e05e90602401600060405180830381600087803b1580156108a657600080fd5b505af11580156108ba573d6000803e3d6000fd5b5050505050565b600080546001600160a01b031633146109055760405162461bcd60e51b815260206004820152600660248201526510a7bbb732b960d11b6044820152606401610788565b60025461091d9030906001600160a01b03168461113d565b90505b919050565b6001600160a01b03831660009081526008602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff146109f757604080518082018252601681527f496e73756666696369656e7420416c6c6f77616e6365000000000000000000006020808301919091526001600160a01b03871660009081526008825283812033825290915291909120546109d291849061122c565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b610a02848484611266565b90505b9392505050565b6016546040517f28fd31980000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015260009216906328fd31989060240160206040518083038186803b158015610a6b57600080fd5b505afa158015610a7f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091d9190611f4a565b6003546001600160a01b0316600090815260076020526040812054610af0906002546001600160a01b0316600090815260076020526040902054610aea90600454906115a8565b906115a8565b905090565b6000546001600160a01b03163314610b385760405162461bcd60e51b815260206004820152600660248201526510a7bbb732b960d11b6044820152606401610788565b6001600160a01b0382166000908152600c60205260409020805460ff1916821515179055610b6682826115ea565b5050565b600080546001600160a01b03163314610bae5760405162461bcd60e51b815260206004820152600660248201526510a7bbb732b960d11b6044820152606401610788565b506001600160a01b03166000908152600c602052604090205460ff1690565b600061091d827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610796565b6000546001600160a01b03163314610c3c5760405162461bcd60e51b815260206004820152600660248201526510a7bbb732b960d11b6044820152606401610788565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610caa5760405162461bcd60e51b815260206004820152600660248201526510a7bbb732b960d11b6044820152606401610788565b600555565b6000610a05338484611266565b6000546001600160a01b03163314610cff5760405162461bcd60e51b815260206004820152600660248201526510a7bbb732b960d11b6044820152606401610788565b60008111610d4f5760405162461bcd60e51b815260206004820152601f60248201527f426c6f636b732073686f756c642062652067726561746572207468616e2030006044820152606401610788565b600d55565b6000546001600160a01b03163314610d975760405162461bcd60e51b815260206004820152600660248201526510a7bbb732b960d11b6044820152606401610788565b600e839055600f829055610dab838361172d565b6010556011819055610dbe60028261208b565b60105410610dcb57600080fd5b505050565b6000546001600160a01b03163314610e135760405162461bcd60e51b815260206004820152600660248201526510a7bbb732b960d11b6044820152606401610788565b6016805492151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff90931692909217909155601755565b6000546001600160a01b03163314610ea45760405162461bcd60e51b815260206004820152600660248201526510a7bbb732b960d11b6044820152606401610788565b601280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6016546040517f15f7e05e0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b03909116906315f7e05e90602401600060405180830381600087803b158015610f3c57600080fd5b505af1158015610f50573d6000803e3d6000fd5b50505050565b6000546001600160a01b03163314610f995760405162461bcd60e51b815260206004820152600660248201526510a7bbb732b960d11b6044820152606401610788565b600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b031633146110485760405162461bcd60e51b815260206004820152600660248201526510a7bbb732b960d11b6044820152606401610788565b60125460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610b66573d6000803e3d6000fd5b6000546001600160a01b031633146110c55760405162461bcd60e51b815260206004820152600660248201526510a7bbb732b960d11b6044820152606401610788565b610b6682826115ea565b6000546001600160a01b031633146111125760405162461bcd60e51b815260206004820152600660248201526510a7bbb732b960d11b6044820152606401610788565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b604080518082018252601481527f496e73756666696369656e742042616c616e63650000000000000000000000006020808301919091526001600160a01b038616600090815260079091529182205461119791849061122c565b6001600160a01b0380861660009081526007602052604080822093909355908516815220546111c6908361172d565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061121a9086815260200190565b60405180910390a35060019392505050565b600081848411156112505760405162461bcd60e51b81526004016107889190611f8f565b50600061125d8486612103565b95945050505050565b60185460009060ff16156112865761127f84848461113d565b9050610a05565b61129184848461178c565b61129961188b565b156112a6576112a66118f2565b6015541580156112c357506014546001600160a01b038481169116145b156112f3576001600160a01b0384166000908152600760205260409020546112ea57600080fd5b6112f343601555565b604080518082018252601481527f496e73756666696369656e742042616c616e63650000000000000000000000006020808301919091526001600160a01b03871660009081526007909152919091205461134e91849061122c565b6001600160a01b0385166000908152600760205260408120919091556113748585611af6565b61137e5782611389565b611389858585611b3d565b6001600160a01b0385166000908152600760205260409020549091506113af908261172d565b6001600160a01b038086166000908152600760205260409020919091556014548682169116148015906113fb57506001600160a01b0385166000908152600b602052604090205460ff16155b1561148a576016546001600160a01b03868116600081815260076020526040908190205490517f14b6ca96000000000000000000000000000000000000000000000000000000008152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561147757600080fd5b505af1925050508015611488575060015b505b6014546001600160a01b038581169116148015906114c157506001600160a01b0384166000908152600b602052604090205460ff16155b15611550576016546001600160a01b03858116600081815260076020526040908190205490517f14b6ca96000000000000000000000000000000000000000000000000000000008152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561153d57600080fd5b505af192505050801561154e575060015b505b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161159591815260200190565b60405180910390a3506001949350505050565b6000610a0583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061122c565b6001600160a01b038216301480159061161157506014546001600160a01b03838116911614155b61161a57600080fd5b6001600160a01b0382166000908152600b60205260409020805460ff191682158015919091179091556116cb576016546040517f14b6ca960000000000000000000000000000000000000000000000000000000081526001600160a01b03848116600483015260006024830152909116906314b6ca96906044015b600060405180830381600087803b1580156116af57600080fd5b505af11580156116c3573d6000803e3d6000fd5b505050505050565b6016546001600160a01b03838116600081815260076020526040908190205490517f14b6ca96000000000000000000000000000000000000000000000000000000008152600481019290925260248201529116906314b6ca9690604401611695565b60008061173a8385612073565b905083811015610a055760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610788565b6014546001600160a01b0384811691161461181657600654811115806117ca57506001600160a01b0383166000908152600a602052604090205460ff165b610dcb5760405162461bcd60e51b815260206004820152601660248201527f53656c6c205458204c696d6974204578636565646564000000000000000000006044820152606401610788565b6005548111158061183f57506001600160a01b0382166000908152600a602052604090205460ff165b610dcb5760405162461bcd60e51b815260206004820152601560248201527f427579205458204c696d697420457863656564656400000000000000000000006044820152606401610788565b6014546000906001600160a01b031633148015906118ac575060185460ff16155b80156118d2575060165474010000000000000000000000000000000000000000900460ff165b8015610af057505060175430600090815260076020526040902054101590565b6018805460ff19166001179055601754604080516002808252606082018352600092602083019080368337019050509050308160008151811061193757611937612149565b6001600160a01b039283166020918202929092010152600180548351921691839190811061196757611967612149565b6001600160a01b0392831660209182029290920101526013546040517f791ac9470000000000000000000000000000000000000000000000000000000081524792919091169063791ac947906119ca908690600090879030904290600401612002565b600060405180830381600087803b1580156119e457600080fd5b505af11580156119f8573d6000803e3d6000fd5b505050506000611a1182476115a890919063ffffffff16565b90506000611a36601054611a30600e5485611d0790919063ffffffff16565b90611da2565b90506000611a4483836115a8565b9050601660009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b158015611a9657600080fd5b505af193505050508015611aa8575060015b506012546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611ae3573d6000803e3d6000fd5b50506018805460ff191690555050505050565b6001600160a01b03821660009081526009602052604081205460ff1680611b3557506001600160a01b03821660009081526009602052604090205460ff165b159392505050565b601454600090819081906001600160a01b03878116911614611b7b57506001600160a01b0385166000908152600c602052604090205460ff16611b99565b506001600160a01b0384166000908152600c602052604090205460ff165b8080611bb4575043600d54601554611bb19190612073565b10155b15611c6157601154611bd590611a30611bce8260016115a8565b8790611d07565b6002546001600160a01b0316600090815260076020526040902054909250611bfd908361172d565b600280546001600160a01b03908116600090815260076020908152604091829020949094559154915185815291811692908916917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3611cf3565b611c7c601154611a3060105487611d0790919063ffffffff16565b30600090815260076020526040902054909250611c99908361172d565b30600081815260076020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611cea9086815260200190565b60405180910390a35b611cfd84836115a8565b9695505050505050565b600082611d16575060006107fd565b6000611d2283856120c6565b905082611d2f858361208b565b14610a055760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f77000000000000000000000000000000000000000000000000000000000000006064820152608401610788565b6000610a0583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060008183611e005760405162461bcd60e51b81526004016107889190611f8f565b50600061125d848661208b565b8035801515811461092057600080fd5b600060208284031215611e2f57600080fd5b8135610a0581612178565b60008060408385031215611e4d57600080fd5b8235611e5881612178565b91506020830135611e6881612178565b809150509250929050565b600080600060608486031215611e8857600080fd5b8335611e9381612178565b92506020840135611ea381612178565b929592945050506040919091013590565b60008060408385031215611ec757600080fd5b8235611ed281612178565b9150611ee060208401611e0d565b90509250929050565b60008060408385031215611efc57600080fd5b8235611f0781612178565b946020939093013593505050565b60008060408385031215611f2857600080fd5b611f0783611e0d565b600060208284031215611f4357600080fd5b5035919050565b600060208284031215611f5c57600080fd5b5051919050565b600080600060608486031215611f7857600080fd5b505081359360208301359350604090920135919050565b600060208083528351808285015260005b81811015611fbc57858101830151858201604001528201611fa0565b81811115611fce576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120525784516001600160a01b03168352938301939183019160010161202d565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156120865761208661211a565b500190565b6000826120c1577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156120fe576120fe61211a565b500290565b6000828210156121155761211561211a565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6001600160a01b038116811461218d57600080fd5b5056fea2646970667358221220ce6881b65aedf068c241af9a12eee4f5464550699c2076cbcefd02985e161f8364736f6c63430008070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000e990d297a8c249bc92cbe4ca2c72a8960676ab0d0000000000000000000000008e8a6edd836d6856d146e97f530086c452b1ed19
-----Decoded View---------------
Arg [0] : _owner (address): 0xE990d297a8c249bC92CbE4ca2c72A8960676AB0d
Arg [1] : _teamWallet (address): 0x8e8A6EDd836D6856D146E97F530086C452b1Ed19
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000e990d297a8c249bc92cbe4ca2c72a8960676ab0d
Arg [1] : 0000000000000000000000008e8a6edd836d6856d146e97f530086c452b1ed19
Deployed Bytecode Sourcemap
8805:11113:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10141:50;;;;;;;;;;;;;;;;;;;7616:25:1;;;7604:2;7589:18;10141:50:0;;;;;;;;11567:80;;;;;;;;;;-1:-1:-1;11639:5:0;;;;;;;;;;;;;;;;;11567:80;;;;;;;:::i;17242:103::-;;;;;;;;;;-1:-1:-1;17242:103:0;;;;;:::i;:::-;;:::i;:::-;;11989:216;;;;;;;;;;-1:-1:-1;11989:216:0;;;;;:::i;:::-;;:::i;:::-;;;4380:14:1;;4373:22;4355:41;;4343:2;4328:18;11989:216:0;4215:187:1;19346:110:0;;;;;;;;;;-1:-1:-1;19346:110:0;;;;;:::i;:::-;;:::i;11297:88::-;;;;;;;;;;-1:-1:-1;11370:12:0;;11297:88;;19622:139;;;;;;;;;;-1:-1:-1;19622:139:0;;;;;:::i;:::-;;:::i;12507:370::-;;;;;;;;;;-1:-1:-1;12507:370:0;;;;;:::i;:::-;;:::i;19468:146::-;;;;;;;;;;-1:-1:-1;19468:146:0;;;;;:::i;:::-;;:::i;19773:142::-;;;;;;;;;;;;;:::i;2831:103::-;;;;;;;;;;-1:-1:-1;2831:103:0;;;;;:::i;:::-;2886:4;2921:5;-1:-1:-1;;;;;2910:16:0;;;2921:5;;2910:16;;2831:103;11391:80;;;;;;;;;;-1:-1:-1;11391:80:0;;9191:1;8825:36:1;;8813:2;8798:18;11391:80:0;8683:184:1;17357:158:0;;;;;;;;;;-1:-1:-1;17357:158:0;;;;;:::i;:::-;;:::i;17527:115::-;;;;;;;;;;-1:-1:-1;17527:115:0;;;;;:::i;:::-;;:::i;12213:122::-;;;;;;;;;;-1:-1:-1;12213:122:0;;;;;:::i;:::-;;:::i;18139:119::-;;;;;;;;;;-1:-1:-1;18139:119:0;;;;;:::i;:::-;;:::i;10104:30::-;;;;;;;;;;-1:-1:-1;10104:30:0;;;;;;;;;;;11737:105;;;;;;;;;;-1:-1:-1;11737:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;11821:18:0;11803:7;11821:18;;;:9;:18;;;;;;;11737:105;17129:101;;;;;;;;;;-1:-1:-1;17129:101:0;;;;;:::i;:::-;;:::i;11653:78::-;;;;;;;;;;-1:-1:-1;11705:7:0;11723:5;-1:-1:-1;;;;;11723:5:0;11653:78;;;-1:-1:-1;;;;;3297:55:1;;;3279:74;;3267:2;3252:18;11653:78:0;3133:226:1;11477:84:0;;;;;;;;;;-1:-1:-1;11551:7:0;;;;;;;;;;;;;;;;;11477:84;;9994:19;;;;;;;;;;-1:-1:-1;9994:19:0;;;;-1:-1:-1;;;;;9994:19:0;;;12343:156;;;;;;;;;;-1:-1:-1;12343:156:0;;;;;:::i;:::-;;:::i;10022:25::-;;;;;;;;;;;;;;;;16946:175;;;;;;;;;;-1:-1:-1;16946:175:0;;;;;:::i;:::-;;:::i;18401:368::-;;;;;;;;;;-1:-1:-1;18401:368:0;;;;;:::i;:::-;;:::i;11848:133::-;;;;;;;;;;-1:-1:-1;11848:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;11950:19:0;;;11932:7;11950:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;11848:133;19081:151;;;;;;;;;;-1:-1:-1;19081:151:0;;;;;:::i;:::-;;:::i;18777:113::-;;;;;;;;;;-1:-1:-1;18777:113:0;;;;;:::i;:::-;;:::i;19244:90::-;;;;;;;;;;;;;:::i;3059:136::-;;;;;;;;;;-1:-1:-1;3059:136:0;;;;;:::i;:::-;;:::i;18902:171::-;;;;;;;;;;;;;:::i;17999:132::-;;;;;;;;;;-1:-1:-1;17999:132:0;;;;;:::i;:::-;;:::i;18266:127::-;;;;;;;;;;-1:-1:-1;18266:127:0;;;;;:::i;:::-;;:::i;9963:24::-;;;;;;;;;;-1:-1:-1;9963:24:0;;;;-1:-1:-1;;;;;9963:24:0;;;17242:103;2886:4;2921:5;-1:-1:-1;;;;;2921:5:0;2738:10;2910:16;2722:38;;;;-1:-1:-1;;;2722:38:0;;5519:2:1;2722:38:0;;;5501:21:1;5558:1;5538:18;;;5531:29;-1:-1:-1;;;5576:18:1;;;5569:36;5622:18;;2722:38:0;;;;;;;;;17312:16:::1;:25:::0;17242:103::o;11989:216::-;12093:10;12064:4;12081:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;12081:32:0;;;;;;;;;;:41;;;12138:37;12064:4;;12081:32;;12138:37;;;;12116:6;7616:25:1;;7604:2;7589:18;;7470:177;12138:37:0;;;;;;;;-1:-1:-1;12193:4:0;11989:216;;;;;:::o;19346:110::-;2886:4;2921:5;-1:-1:-1;;;;;2921:5:0;2738:10;2910:16;2722:38;;;;-1:-1:-1;;;2722:38:0;;5519:2:1;2722:38:0;;;5501:21:1;5558:1;5538:18;;;5531:29;-1:-1:-1;;;5576:18:1;;;5569:36;5622:18;;2722:38:0;5317:329:1;2722:38:0;19415:11:::1;::::0;:33:::1;::::0;;;;-1:-1:-1;;;;;3297:55:1;;;19415:33:0::1;::::0;::::1;3279:74:1::0;19415:11:0;;::::1;::::0;:25:::1;::::0;3252:18:1;;19415:33:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19346:110:::0;:::o;19622:139::-;19686:4;2921:5;;-1:-1:-1;;;;;2921:5:0;2738:10;2910:16;2722:38;;;;-1:-1:-1;;;2722:38:0;;5519:2:1;2722:38:0;;;5501:21:1;5558:1;5538:18;;;5531:29;-1:-1:-1;;;5576:18:1;;;5569:36;5622:18;;2722:38:0;5317:329:1;2722:38:0;19740:4:::1;::::0;19710:43:::1;::::0;19733:4:::1;::::0;-1:-1:-1;;;;;19740:4:0::1;19746:6:::0;19710:14:::1;:43::i;:::-;19703:50;;2762:1;19622:139:::0;;;:::o;12507:370::-;-1:-1:-1;;;;;12627:19:0;;12607:4;12627:19;;;:11;:19;;;;;;;;12647:10;12627:31;;;;;;;;12662:17;12627:52;12624:186;;12729:69;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12729:19:0;;-1:-1:-1;12729:19:0;;;:11;:19;;;;;12749:10;12729:31;;;;;;;;;;:69;;12765:6;;12729:35;:69::i;:::-;-1:-1:-1;;;;;12695:19:0;;;;;;:11;:19;;;;;;;;12715:10;12695:31;;;;;;;:103;12624:186;12829:40;12843:6;12851:9;12862:6;12829:13;:40::i;:::-;12822:47;;12507:370;;;;;;:::o;19468:146::-;19564:11;;:42;;;;;-1:-1:-1;;;;;3297:55:1;;;19564:42:0;;;3279:74:1;19537:7:0;;19564:11;;:29;;3252:18:1;;19564:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;19773:142::-;19901:4;;-1:-1:-1;;;;;19901:4:0;19826:7;11821:18;;;:9;:18;;;;;;19853:54;;19880:4;;-1:-1:-1;;;;;19880:4:0;11803:7;11821:18;;;:9;:18;;;;;;19853:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;19846:61;;19773:142;:::o;17357:158::-;2886:4;2921:5;-1:-1:-1;;;;;2921:5:0;2738:10;2910:16;2722:38;;;;-1:-1:-1;;;2722:38:0;;5519:2:1;2722:38:0;;;5501:21:1;5558:1;5538:18;;;5531:29;-1:-1:-1;;;5576:18:1;;;5569:36;5622:18;;2722:38:0;5317:329:1;2722:38:0;-1:-1:-1;;;;;17434:15:0;::::1;;::::0;;;:5:::1;:15;::::0;;;;:24;;-1:-1:-1;;17434:24:0::1;::::0;::::1;;;::::0;;17469:38:::1;17434:15:::0;:24;17469:20:::1;:38::i;:::-;17357:158:::0;;:::o;17527:115::-;17595:4;2921:5;;-1:-1:-1;;;;;2921:5:0;2738:10;2910:16;2722:38;;;;-1:-1:-1;;;2722:38:0;;5519:2:1;2722:38:0;;;5501:21:1;5558:1;5538:18;;;5531:29;-1:-1:-1;;;5576:18:1;;;5569:36;5622:18;;2722:38:0;5317:329:1;2722:38:0;-1:-1:-1;;;;;;17619:15:0::1;;::::0;;;:5:::1;:15;::::0;;;;;::::1;;::::0;17527:115::o;12213:122::-;12268:4;12292:35;12300:7;12309:17;12292:7;:35::i;18139:119::-;2886:4;2921:5;-1:-1:-1;;;;;2921:5:0;2738:10;2910:16;2722:38;;;;-1:-1:-1;;;2722:38:0;;5519:2:1;2722:38:0;;;5501:21:1;5558:1;5538:18;;;5531:29;-1:-1:-1;;;5576:18:1;;;5569:36;5622:18;;2722:38:0;5317:329:1;2722:38:0;-1:-1:-1;;;;;18222:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;18222:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18139:119::o;17129:101::-;2886:4;2921:5;-1:-1:-1;;;;;2921:5:0;2738:10;2910:16;2722:38;;;;-1:-1:-1;;;2722:38:0;;5519:2:1;2722:38:0;;;5501:21:1;5558:1;5538:18;;;5531:29;-1:-1:-1;;;5576:18:1;;;5569:36;5622:18;;2722:38:0;5317:329:1;2722:38:0;17198:15:::1;:24:::0;17129:101::o;12343:156::-;12423:4;12447:44;12461:10;12473:9;12484:6;12447:13;:44::i;16946:175::-;2886:4;2921:5;-1:-1:-1;;;;;2921:5:0;2738:10;2910:16;2722:38;;;;-1:-1:-1;;;2722:38:0;;5519:2:1;2722:38:0;;;5501:21:1;5558:1;5538:18;;;5531:29;-1:-1:-1;;;5576:18:1;;;5569:36;5622:18;;2722:38:0;5317:329:1;2722:38:0;17039:1:::1;17030:6;:10;17022:54;;;::::0;-1:-1:-1;;;17022:54:0;;6559:2:1;17022:54:0::1;::::0;::::1;6541:21:1::0;6598:2;6578:18;;;6571:30;6637:33;6617:18;;;6610:61;6688:18;;17022:54:0::1;6357:355:1::0;17022:54:0::1;17087:17;:26:::0;16946:175::o;18401:368::-;2886:4;2921:5;-1:-1:-1;;;;;2921:5:0;2738:10;2910:16;2722:38;;;;-1:-1:-1;;;2722:38:0;;5519:2:1;2722:38:0;;;5501:21:1;5558:1;5538:18;;;5531:29;-1:-1:-1;;;5576:18:1;;;5569:36;5622:18;;2722:38:0;5317:329:1;2722:38:0;18516:13:::1;:30:::0;;;18557:7:::1;:18:::0;;;18597:28:::1;18532:14:::0;18567:8;18597:18:::1;:28::i;:::-;18586:8;:39:::0;18636:14:::1;:32:::0;;;18744:16:::1;18759:1;18653:15:::0;18744:16:::1;:::i;:::-;18733:8;;:27;18725:36;;;::::0;::::1;;18401:368:::0;;;:::o;19081:151::-;2886:4;2921:5;-1:-1:-1;;;;;2921:5:0;2738:10;2910:16;2722:38;;;;-1:-1:-1;;;2722:38:0;;5519:2:1;2722:38:0;;;5501:21:1;5558:1;5538:18;;;5531:29;-1:-1:-1;;;5576:18:1;;;5569:36;5622:18;;2722:38:0;5317:329:1;2722:38:0;19170:11:::1;:21:::0;;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;;19202:13:::1;:22:::0;19081:151::o;18777:113::-;2886:4;2921:5;-1:-1:-1;;;;;2921:5:0;2738:10;2910:16;2722:38;;;;-1:-1:-1;;;2722:38:0;;5519:2:1;2722:38:0;;;5501:21:1;5558:1;5538:18;;;5531:29;-1:-1:-1;;;5576:18:1;;;5569:36;5622:18;;2722:38:0;5317:329:1;2722:38:0;18854:12:::1;:28:::0;;;::::1;-1:-1:-1::0;;;;;18854:28:0;;;::::1;::::0;;;::::1;::::0;;18777:113::o;19244:90::-;19289:11;;:37;;;;;19315:10;19289:37;;;3279:74:1;-1:-1:-1;;;;;19289:11:0;;;;:25;;3252:18:1;;19289:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19244:90::o;3059:136::-;2886:4;2921:5;-1:-1:-1;;;;;2921:5:0;2738:10;2910:16;2722:38;;;;-1:-1:-1;;;2722:38:0;;5519:2:1;2722:38:0;;;5501:21:1;5558:1;5538:18;;;5531:29;-1:-1:-1;;;5576:18:1;;;5569:36;5622:18;;2722:38:0;5317:329:1;2722:38:0;3135:5:::1;:11:::0;;;::::1;-1:-1:-1::0;;;;;3135:11:0;::::1;::::0;;::::1;::::0;;;3162:25:::1;::::0;3279:74:1;;;3162:25:0::1;::::0;3267:2:1;3252:18;3162:25:0::1;;;;;;;3059:136:::0;:::o;18902:171::-;2886:4;2921:5;-1:-1:-1;;;;;2921:5:0;2738:10;2910:16;2722:38;;;;-1:-1:-1;;;2722:38:0;;5519:2:1;2722:38:0;;;5501:21:1;5558:1;5538:18;;;5531:29;-1:-1:-1;;;5576:18:1;;;5569:36;5622:18;;2722:38:0;5317:329:1;2722:38:0;19023:12:::1;::::0;19015:50:::1;::::0;18983:21:::1;::::0;-1:-1:-1;;;;;19023:12:0::1;::::0;19015:50;::::1;;;::::0;18983:21;;18954:26:::1;19015:50:::0;18954:26;19015:50;18983:21;19023:12;19015:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;17999:132:::0;2886:4;2921:5;-1:-1:-1;;;;;2921:5:0;2738:10;2910:16;2722:38;;;;-1:-1:-1;;;2722:38:0;;5519:2:1;2722:38:0;;;5501:21:1;5558:1;5538:18;;;5531:29;-1:-1:-1;;;5576:18:1;;;5569:36;5622:18;;2722:38:0;5317:329:1;2722:38:0;18087:36:::1;18108:6;18116;18087:20;:36::i;18266:127::-:0;2886:4;2921:5;-1:-1:-1;;;;;2921:5:0;2738:10;2910:16;2722:38;;;;-1:-1:-1;;;2722:38:0;;5519:2:1;2722:38:0;;;5501:21:1;5558:1;5538:18;;;5531:29;-1:-1:-1;;;5576:18:1;;;5569:36;5622:18;;2722:38:0;5317:329:1;2722:38:0;-1:-1:-1;;;;;18353:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;18353:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18266:127::o;13907:330::-;14037:53;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14037:17:0;;14000:4;14037:17;;;:9;:17;;;;;;;:53;;14059:6;;14037:21;:53::i;:::-;-1:-1:-1;;;;;14017:17:0;;;;;;;:9;:17;;;;;;:73;;;;14124:20;;;;;;;:32;;14149:6;14124:24;:32::i;:::-;-1:-1:-1;;;;;14101:20:0;;;;;;;:9;:20;;;;;;;:55;;;;14172:35;;;;;;;;;;14200:6;7616:25:1;;7604:2;7589:18;;7470:177;14172:35:0;;;;;;;;-1:-1:-1;14225:4:0;13907:330;;;;;:::o;493:192::-;579:7;615:12;607:6;;;;599:29;;;;-1:-1:-1;;;599:29:0;;;;;;;;:::i;:::-;-1:-1:-1;639:9:0;651:5;655:1;651;:5;:::i;:::-;639:17;493:192;-1:-1:-1;;;;;493:192:0:o;12885:1010::-;12997:6;;12977:4;;12997:6;;12994:63;;;13013:41;13028:6;13036:9;13047:6;13013:14;:41::i;:::-;13006:48;;;;12994:63;13077:39;13090:6;13098:9;13109:6;13077:12;:39::i;:::-;13132:16;:14;:16::i;:::-;13129:35;;;13151:10;:8;:10::i;:::-;16792;;:15;;;13179:32;;-1:-1:-1;13207:4:0;;-1:-1:-1;;;;;13194:17:0;;;13207:4;;13194:17;13179:32;13176:81;;;-1:-1:-1;;;;;13222:17:0;;13242:1;13222:17;;;:9;:17;;;;;;13214:30;;;;;;13246:8;16914:12;16901:10;:25;16823:111;13246:8;13289:53;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13289:17:0;;-1:-1:-1;13289:17:0;;;:9;:17;;;;;;;;:53;;13311:6;;13289:21;:53::i;:::-;-1:-1:-1;;;;;13269:17:0;;;;;;:9;:17;;;;;:73;;;;13380:32;13279:6;13402:9;13380:13;:32::i;:::-;:78;;13452:6;13380:78;;;13415:34;13423:6;13431:9;13442:6;13415:7;:34::i;:::-;-1:-1:-1;;;;;13502:20:0;;;;;;:9;:20;;;;;;13355:103;;-1:-1:-1;13502:40:0;;13355:103;13502:24;:40::i;:::-;-1:-1:-1;;;;;13479:20:0;;;;;;;:9;:20;;;;;:63;;;;13568:4;;13558:14;;;13568:4;;13558:14;;;;:43;;-1:-1:-1;;;;;;13577:24:0;;;;;;:16;:24;;;;;;;;13576:25;13558:43;13555:114;;;13608:11;;-1:-1:-1;;;;;13637:17:0;;;13608:11;13637:17;;;:9;:17;;;;;;;;13608:47;;;;;;;;3785:74:1;;;;3875:18;;;3868:34;13608:11:0;;;:20;;3758:18:1;;13608:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13604:63;;13695:4;;-1:-1:-1;;;;;13682:17:0;;;13695:4;;13682:17;;;;:49;;-1:-1:-1;;;;;;13704:27:0;;;;;;:16;:27;;;;;;;;13703:28;13682:49;13679:126;;;13738:11;;-1:-1:-1;;;;;13770:20:0;;;13738:11;13770:20;;;:9;:20;;;;;;;;13738:53;;;;;;;;3785:74:1;;;;3875:18;;;3868:34;13738:11:0;;;:20;;3758:18:1;;13738:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13734:69;;13839:9;-1:-1:-1;;;;;13822:43:0;13831:6;-1:-1:-1;;;;;13822:43:0;;13850:14;13822:43;;;;7616:25:1;;7604:2;7589:18;;7470:177;13822:43:0;;;;;;;;-1:-1:-1;13883:4:0;;12885:1010;-1:-1:-1;;;;12885:1010:0:o;351:136::-;409:7;436:43;440:1;443;436:43;;;;;;;;;;;;;;;;;:3;:43::i;17654:337::-;-1:-1:-1;;;;;17741:23:0;;17759:4;17741:23;;;;:41;;-1:-1:-1;17778:4:0;;-1:-1:-1;;;;;17768:14:0;;;17778:4;;17768:14;;17741:41;17733:50;;;;;;-1:-1:-1;;;;;17794:24:0;;;;;;:16;:24;;;;;:33;;-1:-1:-1;;17794:33:0;;;;;;;;;;;;17838:146;;17863:11;;:31;;;;;-1:-1:-1;;;;;3803:55:1;;;17863:31:0;;;3785:74:1;17863:11:0;3875:18:1;;;3868:34;17863:11:0;;;;:20;;3758:18:1;;17863:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17357:158;;:::o;17838:146::-;17925:11;;-1:-1:-1;;;;;17954:17:0;;;17925:11;17954:17;;;:9;:17;;;;;;;;17925:47;;;;;;;;3785:74:1;;;;3875:18;;;3868:34;17925:11:0;;;:20;;3758:18:1;;17925:47:0;3603:305:1;164:181:0;222:7;;254:5;258:1;254;:5;:::i;:::-;242:17;;283:1;278;:6;;270:46;;;;-1:-1:-1;;;270:46:0;;5853:2:1;270:46:0;;;5835:21:1;5892:2;5872:18;;;5865:30;5931:29;5911:18;;;5904:57;5978:18;;270:46:0;5651:351:1;14245:329:0;14353:4;;-1:-1:-1;;;;;14343:14:0;;;14353:4;;14343:14;:223;;14496:16;;14486:6;:26;;:53;;;-1:-1:-1;;;;;;14516:23:0;;;;;;:15;:23;;;;;;;;14486:53;14478:88;;;;-1:-1:-1;;;14478:88:0;;7321:2:1;14478:88:0;;;7303:21:1;7360:2;7340:18;;;7333:30;7399:24;7379:18;;;7372:52;7441:18;;14478:88:0;7119:346:1;14343:223:0;14391:15;;14381:6;:25;;:55;;;-1:-1:-1;;;;;;14410:26:0;;;;;;:15;:26;;;;;;;;14381:55;14373:89;;;;-1:-1:-1;;;14373:89:0;;6209:2:1;14373:89:0;;;6191:21:1;6248:2;6228:18;;;6221:30;6287:23;6267:18;;;6260:51;6328:18;;14373:89:0;6007:345:1;15697:197:0;15784:4;;15746;;-1:-1:-1;;;;;15784:4:0;15770:10;:18;;;;:38;;-1:-1:-1;15802:6:0;;;;15801:7;15770:38;:62;;;;-1:-1:-1;15821:11:0;;;;;;;15770:62;:116;;;;-1:-1:-1;;15873:13:0;;15863:4;15845:24;;;;:9;:24;;;;;;:41;;;15697:197::o;15902:815::-;10258:6;:13;;-1:-1:-1;;10258:13:0;10267:4;10258:13;;;15974::::1;::::0;16024:16:::1;::::0;;16038:1:::1;16024:16:::0;;;;;::::1;::::0;;-1:-1:-1;;16024:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;16024:16:0::1;16000:40;;16069:4;16051;16056:1;16051:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16051:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;16095:4:::1;::::0;;16085:7;;16095:4;::::1;::::0;16085;;16095;16085:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;16085:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;16170:6:::1;::::0;:188:::1;::::0;;;;16136:21:::1;::::0;16170:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;16242:12;;16112:21:::1;::::0;16285:4;;16312::::1;::::0;16332:15:::1;::::0;16170:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16369:17;16389:40;16415:13;16389:21;:25;;:40;;;;:::i;:::-;16369:60;;16440:24;16467:42;16500:8;;16467:28;16481:13;;16467:9;:13;;:28;;;;:::i;:::-;:32:::0;::::1;:42::i;:::-;16440:69:::0;-1:-1:-1;16520:18:0::1;16541:31;:9:::0;16440:69;16541:13:::1;:31::i;:::-;16520:52;;16589:11;;;;;;;;;-1:-1:-1::0;;;;;16589:11:0::1;-1:-1:-1::0;;;;;16589:19:0::1;;16616:16;16589:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;16585:62:::0;16675:12:::1;::::0;16667:42:::1;::::0;-1:-1:-1;;;;;16675:12:0;;::::1;::::0;16667:42;::::1;;;::::0;16698:10;;16675:12:::1;16667:42:::0;16675:12;16667:42;16698:10;16675:12;16667:42;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;10276:6:0;:14;;-1:-1:-1;;10276:14:0;;;-1:-1:-1;;;;;15902:815:0:o;14582:161::-;-1:-1:-1;;;;;14689:19:0;;14663:4;14689:19;;;:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;14712:22:0;;;;;;:11;:22;;;;;;;;14689:45;14687:48;;14582:161;-1:-1:-1;;;14582:161:0:o;14751:938::-;15019:4;;14837:7;;;;;;-1:-1:-1;;;;;15009:14:0;;;15019:4;;15009:14;15005:121;;-1:-1:-1;;;;;;15046:13:0;;;;;;:5;:13;;;;;;;;15005:121;;;-1:-1:-1;;;;;;15098:16:0;;;;;;:5;:16;;;;;;;;15005:121;15150:3;:53;;;;15191:12;15170:17;;15157:10;;:30;;;;:::i;:::-;:46;;15150:53;15146:495;;;15270:14;;15232:53;;:33;15243:21;15270:14;15262:1;15243:18;:21::i;:::-;15232:6;;:10;:33::i;:53::-;15328:4;;-1:-1:-1;;;;;15328:4:0;15318:15;;;;:9;:15;;;;;;15220:65;;-1:-1:-1;15318:30:0;;15220:65;15318:19;:30::i;:::-;15310:4;;;-1:-1:-1;;;;;15310:4:0;;;15300:15;;;;:9;:15;;;;;;;;;:48;;;;15385:4;;15368:33;;7616:25:1;;;15385:4:0;;;;15368:33;;;;;;7589:18:1;15368:33:0;;;;;;;15146:495;;;15446:40;15471:14;;15446:20;15457:8;;15446:6;:10;;:20;;;;:::i;:40::-;15546:4;15528:24;;;;:9;:24;;;;;;15434:52;;-1:-1:-1;15528:39:0;;15434:52;15528:28;:39::i;:::-;15519:4;15501:24;;;;:9;:24;;;;;;;:66;;;;15587:42;;-1:-1:-1;;;;;15587:42:0;;;;;;;15619:9;7616:25:1;;7604:2;7589:18;;7470:177;15587:42:0;;;;;;;;15146:495;15660:21;:6;15671:9;15660:10;:21::i;:::-;15653:28;14751:938;-1:-1:-1;;;;;;14751:938:0:o;691:250::-;749:7;773:6;769:47;;-1:-1:-1;803:1:0;796:8;;769:47;828:9;840:5;844:1;840;:5;:::i;:::-;828:17;-1:-1:-1;873:1:0;864:5;868:1;828:17;864:5;:::i;:::-;:10;856:56;;;;-1:-1:-1;;;856:56:0;;6919:2:1;856:56:0;;;6901:21:1;6958:2;6938:18;;;6931:30;6997:34;6977:18;;;6970:62;7068:3;7048:18;;;7041:31;7089:19;;856:56:0;6717:397:1;947:132:0;1005:7;1032:39;1036:1;1039;1032:39;;;;;;;;;;;;;;;;;1171:7;1273:12;1266:5;1258:28;;;;-1:-1:-1;;;1258:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1297:9:0;1309:5;1313:1;1309;:5;:::i;14:160:1:-;79:20;;135:13;;128:21;118:32;;108:60;;164:1;161;154:12;179:247;238:6;291:2;279:9;270:7;266:23;262:32;259:52;;;307:1;304;297:12;259:52;346:9;333:23;365:31;390:5;365:31;:::i;691:388::-;759:6;767;820:2;808:9;799:7;795:23;791:32;788:52;;;836:1;833;826:12;788:52;875:9;862:23;894:31;919:5;894:31;:::i;:::-;944:5;-1:-1:-1;1001:2:1;986:18;;973:32;1014:33;973:32;1014:33;:::i;:::-;1066:7;1056:17;;;691:388;;;;;:::o;1084:456::-;1161:6;1169;1177;1230:2;1218:9;1209:7;1205:23;1201:32;1198:52;;;1246:1;1243;1236:12;1198:52;1285:9;1272:23;1304:31;1329:5;1304:31;:::i;:::-;1354:5;-1:-1:-1;1411:2:1;1396:18;;1383:32;1424:33;1383:32;1424:33;:::i;:::-;1084:456;;1476:7;;-1:-1:-1;;;1530:2:1;1515:18;;;;1502:32;;1084:456::o;1545:315::-;1610:6;1618;1671:2;1659:9;1650:7;1646:23;1642:32;1639:52;;;1687:1;1684;1677:12;1639:52;1726:9;1713:23;1745:31;1770:5;1745:31;:::i;:::-;1795:5;-1:-1:-1;1819:35:1;1850:2;1835:18;;1819:35;:::i;:::-;1809:45;;1545:315;;;;;:::o;1865:::-;1933:6;1941;1994:2;1982:9;1973:7;1969:23;1965:32;1962:52;;;2010:1;2007;2000:12;1962:52;2049:9;2036:23;2068:31;2093:5;2068:31;:::i;:::-;2118:5;2170:2;2155:18;;;;2142:32;;-1:-1:-1;;;1865:315:1:o;2185:248::-;2250:6;2258;2311:2;2299:9;2290:7;2286:23;2282:32;2279:52;;;2327:1;2324;2317:12;2279:52;2350:26;2366:9;2350:26;:::i;2438:180::-;2497:6;2550:2;2538:9;2529:7;2525:23;2521:32;2518:52;;;2566:1;2563;2556:12;2518:52;-1:-1:-1;2589:23:1;;2438:180;-1:-1:-1;2438:180:1:o;2623:184::-;2693:6;2746:2;2734:9;2725:7;2721:23;2717:32;2714:52;;;2762:1;2759;2752:12;2714:52;-1:-1:-1;2785:16:1;;2623:184;-1:-1:-1;2623:184:1:o;2812:316::-;2889:6;2897;2905;2958:2;2946:9;2937:7;2933:23;2929:32;2926:52;;;2974:1;2971;2964:12;2926:52;-1:-1:-1;;2997:23:1;;;3067:2;3052:18;;3039:32;;-1:-1:-1;3118:2:1;3103:18;;;3090:32;;2812:316;-1:-1:-1;2812:316:1:o;4656:656::-;4768:4;4797:2;4826;4815:9;4808:21;4858:6;4852:13;4901:6;4896:2;4885:9;4881:18;4874:34;4926:1;4936:140;4950:6;4947:1;4944:13;4936:140;;;5045:14;;;5041:23;;5035:30;5011:17;;;5030:2;5007:26;5000:66;4965:10;;4936:140;;;5094:6;5091:1;5088:13;5085:91;;;5164:1;5159:2;5150:6;5139:9;5135:22;5131:31;5124:42;5085:91;-1:-1:-1;5228:2:1;5216:15;5233:66;5212:88;5197:104;;;;5303:2;5193:113;;4656:656;-1:-1:-1;;;4656:656:1:o;7652:1026::-;7914:4;7962:3;7951:9;7947:19;7993:6;7982:9;7975:25;8019:2;8057:6;8052:2;8041:9;8037:18;8030:34;8100:3;8095:2;8084:9;8080:18;8073:31;8124:6;8159;8153:13;8190:6;8182;8175:22;8228:3;8217:9;8213:19;8206:26;;8267:2;8259:6;8255:15;8241:29;;8288:1;8298:218;8312:6;8309:1;8306:13;8298:218;;;8377:13;;-1:-1:-1;;;;;8373:62:1;8361:75;;8491:15;;;;8456:12;;;;8334:1;8327:9;8298:218;;;-1:-1:-1;;;;;;;8572:55:1;;;;8567:2;8552:18;;8545:83;-1:-1:-1;;;8659:3:1;8644:19;8637:35;8533:3;7652:1026;-1:-1:-1;;;7652:1026:1:o;8872:128::-;8912:3;8943:1;8939:6;8936:1;8933:13;8930:39;;;8949:18;;:::i;:::-;-1:-1:-1;8985:9:1;;8872:128::o;9005:274::-;9045:1;9071;9061:189;;9106:77;9103:1;9096:88;9207:4;9204:1;9197:15;9235:4;9232:1;9225:15;9061:189;-1:-1:-1;9264:9:1;;9005:274::o;9284:228::-;9324:7;9450:1;9382:66;9378:74;9375:1;9372:81;9367:1;9360:9;9353:17;9349:105;9346:131;;;9457:18;;:::i;:::-;-1:-1:-1;9497:9:1;;9284:228::o;9517:125::-;9557:4;9585:1;9582;9579:8;9576:34;;;9590:18;;:::i;:::-;-1:-1:-1;9627:9:1;;9517:125::o;9647:184::-;9699:77;9696:1;9689:88;9796:4;9793:1;9786:15;9820:4;9817:1;9810:15;9836:184;9888:77;9885:1;9878:88;9985:4;9982:1;9975:15;10009:4;10006:1;9999:15;10214:154;-1:-1:-1;;;;;10293:5:1;10289:54;10282:5;10279:65;10269:93;;10358:1;10355;10348:12;10269:93;10214:154;:::o
Swarm Source
ipfs://26d3cc4621f7d33ebd5076fa8f1dfcacb7575ca54f07dbea663f3a8196269bb5
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.