ERC-20
Overview
Max Total Supply
690,000,000 PT
Holders
220
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
196,034.299867719 PTValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
PrintTheTurbo
Compiler Version
v0.8.13+commit.abaa5c0e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-05-03 */ /** *Submitted for verification at Etherscan.io on 2023-05-03 */ /** *Submitted for verification at Etherscan.io on 2023-04-28 */ // Twitter: https://twitter.com/printtheturbo // Telegram: https://t.me/PrintTheTurbo // SPDX-License-Identifier: Unlicensed pragma solidity 0.8.13; /** * 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; } } /** * ERC20 standard interface. */ interface IERC20 { 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(uint256 amount) external; function claimDividend(address shareholder) external; function getDividendsClaimedOf (address shareholder) external returns (uint256); } contract DividendDistributor is IDividendDistributor { using SafeMath for uint256; address public _token; address public _owner; address public immutable TURBO = address(0xA35923162C49cF95e6BF26623385eb431ad920D3); //TURBO struct Share { uint256 amount; uint256 totalExcluded; uint256 totalClaimed; } address[] private shareholders; mapping (address => uint256) private shareholderIndexes; mapping (address => Share) public shares; uint256 public totalShares; uint256 public totalDividends; uint256 public totalClaimed; 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; } receive() external payable { } 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(uint256 amount) external override onlyToken { if (amount > 0) { 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 = getClaimableDividendOf(shareholder); if(amount > 0){ totalClaimed = totalClaimed.add(amount); shares[shareholder].totalClaimed = shares[shareholder].totalClaimed.add(amount); shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); IERC20(TURBO).transfer(shareholder, amount); } } function claimDividend(address shareholder) external override onlyToken { distributeDividend(shareholder); } function getClaimableDividendOf(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); } function getDividendsClaimedOf (address shareholder) external view returns (uint256) { require (shares[shareholder].amount > 0, "You're not a PRINTER shareholder!"); return shares[shareholder].totalClaimed; } } contract PrintTheTurbo is IERC20, Auth { using SafeMath for uint256; address private WETH; address private DEAD = 0x000000000000000000000000000000000000dEaD; address private ZERO = 0x0000000000000000000000000000000000000000; address public immutable TURBO = address(0xA35923162C49cF95e6BF26623385eb431ad920D3); //TURBO string private constant _name = "Print The Turbo"; string private constant _symbol = "PT"; uint8 private constant _decimals = 9; uint256 private _totalSupply = 690000000 * (10 ** _decimals); uint256 private _maxTxAmountBuy = _totalSupply; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => uint256) private cooldown; mapping (address => bool) private isFeeExempt; mapping (address => bool) private isDividendExempt; mapping (address => bool) private isBot; uint256 private totalFee = 9; uint256 private feeDenominator = 100; address payable public marketingWallet = payable(0x5932406aAEcE7A2715390ce5DB50e2C67Cf072aA); IDEXRouter public router; address public pair; uint256 public launchedAt; bool private tradingOpen; bool private buyLimit = true; uint256 private maxBuy = 13800000 * (10 ** _decimals); uint256 public numTokensSellToAddToLiquidity = 1380000 * 10**9; DividendDistributor private distributor; bool public blacklistEnabled = false; bool private inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor ( address _owner ) 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[marketingWallet] = true; isDividendExempt[pair] = true; isDividendExempt[address(this)] = true; isDividendExempt[DEAD] = true; _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 (sender!= owner && recipient!= owner) require(tradingOpen, "Trading not yet enabled."); //transfers disabled before openTrading if (blacklistEnabled) { require (!isBot[sender] && !isBot[recipient], "Bot!"); } if (buyLimit) { if (sender!=owner && recipient!= owner) require (amount<=maxBuy, "Too much sir"); } if (sender == pair && recipient != address(router) && !isFeeExempt[recipient]) { require (cooldown[recipient] < block.timestamp); cooldown[recipient] = block.timestamp + 60 seconds; } if(inSwap){ return _basicTransfer(sender, recipient, amount); } uint256 contractTokenBalance = balanceOf(address(this)); bool overMinTokenBalance = contractTokenBalance >= numTokensSellToAddToLiquidity; bool shouldSwapBack = (overMinTokenBalance && recipient==pair && balanceOf(address(this)) > 0); if(shouldSwapBack){ swapBack(); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, 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 shouldTakeFee(address sender, address recipient) internal view returns (bool) { return ( !(isFeeExempt[sender] || isFeeExempt[recipient]) && (sender == pair || recipient == pair) ); } function takeFee(address sender, uint256 amount) internal returns (uint256) { uint256 feeAmount; 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 swapBack() internal swapping { uint256 amountToSwap = balanceOf(address(this)); swapTokensForEth(amountToSwap.div(2)); swapTokensForTURBO(amountToSwap.div(2)); uint256 dividends = IERC20(TURBO).balanceOf(address(this)); bool success = IERC20(TURBO).transfer(address(distributor), dividends); if (success) { distributor.deposit(dividends); } payable(marketingWallet).transfer(address(this).balance); } function swapTokensForTURBO(uint256 tokenAmount) private { address[] memory path = new address[](3); path[0] = address(this); path[1] = WETH; path[2] = TURBO; // make the swap router.swapExactTokensForTokensSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = WETH; // make the swap router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // add the liquidity router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable owner, block.timestamp ); } function openTrading() external onlyOwner { launchedAt = block.number; tradingOpen = true; } function setBot(address _address, bool toggle) external onlyOwner { isBot[_address] = toggle; _setIsDividendExempt(_address, toggle); } 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 setFee (uint256 _fee) external onlyOwner { require (_fee <= 9, "Fee can't exceed 14%"); totalFee = _fee; } function manualSend() external onlyOwner { uint256 contractETHBalance = address(this).balance; payable(marketingWallet).transfer(contractETHBalance); } function claimDividend() external { distributor.claimDividend(msg.sender); } function claimDividend(address holder) external onlyOwner { distributor.claimDividend(holder); } function getClaimableDividendOf(address shareholder) public view returns (uint256) { return distributor.getClaimableDividendOf(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)); } function setMarketingWallet(address _marketingWallet) external onlyOwner { marketingWallet = payable(_marketingWallet); } function getTotalDividends() external view returns (uint256) { return distributor.totalDividends(); } function getTotalClaimed() external view returns (uint256) { return distributor.totalClaimed(); } function getDividendsClaimedOf (address shareholder) external view returns (uint256) { return distributor.getDividendsClaimedOf(shareholder); } function removeBuyLimit() external onlyOwner { buyLimit = false; } function checkBot(address account) public view returns (bool) { return isBot[account]; } function setBlacklistEnabled() external onlyOwner { require (blacklistEnabled == false, "can only be called once"); blacklistEnabled = true; } function setSwapThresholdAmount (uint256 amount) external onlyOwner { require (amount <= _totalSupply.div(100), "can't exceed 1%"); numTokensSellToAddToLiquidity = amount * 10 ** 9; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_owner","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":[],"name":"TURBO","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"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":[],"name":"blacklistEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"checkBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getClaimableDividendOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getDividendsClaimedOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalClaimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalDividends","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"numTokensSellToAddToLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeBuyLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"setBlacklistEnabled","outputs":[],"stateMutability":"nonpayable","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":"_fee","type":"uint256"}],"name":"setFee","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":"_marketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSwapThresholdAmount","outputs":[],"stateMutability":"nonpayable","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
60a0604052600280546001600160a01b031990811661dead1790915560038054909116905573a35923162c49cf95e6bf26623385eb431ad920d36080526200004a6009600a6200051b565b6200005a90632920908062000533565b60048190556005556009600c8190556064600d55600e80546001600160a01b031916735932406aaece7a2715390ce5db50e2c67cf072aa1790556012805461ff001916610100179055620000b090600a6200051b565b620000bf9062d2924062000533565b6013556604e71a49ca40006014556015805460ff60a01b19169055348015620000e757600080fd5b5060405162003429380380620034298339810160408190526200010a9162000555565b600080546001600160a01b03199081166001600160a01b03841617909155600f8054737a250d5630b4cf539739df2c5dacb4c659f2488d921682179055604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000183573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001a9919062000555565b600180546001600160a01b0319166001600160a01b03928316179055600f546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa15801562000208573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022e919062000555565b6001546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000280573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a6919062000555565b601080546001600160a01b0319166001600160a01b03928316179055306000908152600760209081526040808320600f5490941683529290528190206000199055518190620002f590620003f8565b6001600160a01b039091168152602001604051809103906000f08015801562000322573d6000803e3d6000fd5b50601580546001600160a01b0319166001600160a01b039283161790558181166000818152600960209081526040808320805460ff199081166001908117909255600e5487168552828520805482168317905560105487168552600a8452828520805482168317905530855282852080548216831790556002549096168452818420805490961617909455600454838352600682528483208190559351938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35062000580565b610da0806200268983390190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200045d57816000190482111562000441576200044162000406565b808516156200044f57918102915b93841c939080029062000421565b509250929050565b600082620004765750600162000515565b81620004855750600062000515565b81600181146200049e5760028114620004a957620004c9565b600191505062000515565b60ff841115620004bd57620004bd62000406565b50506001821b62000515565b5060208310610133831016604e8410600b8410161715620004ee575081810a62000515565b620004fa83836200041c565b806000190482111562000511576200051162000406565b0290505b92915050565b60006200052c60ff84168362000465565b9392505050565b600081600019048311821515161562000550576200055062000406565b500290565b6000602082840312156200056857600080fd5b81516001600160a01b03811681146200052c57600080fd5b6080516120d8620005b1600039600081816102cc015281816118790152818161191b0152611cc001526120d86000f3fe6080604052600436106102345760003560e01c806370a082311161012e578063bf56b371116100ab578063f0fc6bca1161006f578063f0fc6bca146106fb578063f2fde38b14610710578063f429389014610730578063f708a64f14610745578063f887ea401461076557600080fd5b8063bf56b37114610653578063bffb691d14610669578063c9567bf91461068a578063d12a76881461069f578063dd62ed3e146106b557600080fd5b80638ecc37fb116100f25780638ecc37fb1461058f57806395d89b41146105af578063a8aa1b31146105da578063a9059cbb146105fa578063b1a4e0dc1461061a57600080fd5b806370a08231146104f1578063736a83a11461052757806375f0a8741461053c578063764ca5121461055c578063893d20e81461057157600080fd5b80632f54bf6e116101bc5780635cc33f74116101805780635cc33f741461045c5780635d098b381461047c578063658d4b7f1461049c57806367ee5f09146104bc57806369fe0e2d146104d157600080fd5b80632f54bf6e146103bc578063313ce567146103eb578063342aa8b5146104075780633e07ce5b14610427578063571ac8b01461043c57600080fd5b806318160ddd1161020357806318160ddd1461032857806323b635851461034757806323b872dd1461036757806329e04b4a146103875780632b112e49146103a757600080fd5b806306fdde0314610240578063095ea7b31461028a57806312851701146102ba57806315f7e05e1461030657600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b5060408051808201909152600f81526e5072696e742054686520547572626f60881b60208201525b6040516102819190611dba565b60405180910390f35b34801561029657600080fd5b506102aa6102a5366004611e27565b610785565b6040519015158152602001610281565b3480156102c657600080fd5b506102ee7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610281565b34801561031257600080fd5b50610326610321366004611e53565b6107f2565b005b34801561033457600080fd5b506004545b604051908152602001610281565b34801561035357600080fd5b506102aa610362366004611e70565b610887565b34801561037357600080fd5b506102aa610382366004611e89565b6108ca565b34801561039357600080fd5b506103266103a2366004611e70565b61098c565b3480156103b357600080fd5b50610339610a19565b3480156103c857600080fd5b506102aa6103d7366004611e53565b6000546001600160a01b0391821691161490565b3480156103f757600080fd5b5060405160098152602001610281565b34801561041357600080fd5b50610326610422366004611ed8565b610a6b565b34801561043357600080fd5b50610326610ac7565b34801561044857600080fd5b506102aa610457366004611e53565b610afe565b34801561046857600080fd5b50610339610477366004611e53565b610b0c565b34801561048857600080fd5b50610326610497366004611e53565b610b7c565b3480156104a857600080fd5b506103266104b7366004611ed8565b610bc8565b3480156104c857600080fd5b50610339610c1d565b3480156104dd57600080fd5b506103266104ec366004611e70565b610c8b565b3480156104fd57600080fd5b5061033961050c366004611e53565b6001600160a01b031660009081526006602052604090205490565b34801561053357600080fd5b50610339610d02565b34801561054857600080fd5b50600e546102ee906001600160a01b031681565b34801561056857600080fd5b50610326610d4c565b34801561057d57600080fd5b506000546001600160a01b03166102ee565b34801561059b57600080fd5b506103396105aa366004611e53565b610de5565b3480156105bb57600080fd5b50604080518082019091526002815261141560f21b6020820152610274565b3480156105e657600080fd5b506010546102ee906001600160a01b031681565b34801561060657600080fd5b506102aa610615366004611e27565b610e18565b34801561062657600080fd5b506102aa610635366004611e53565b6001600160a01b03166000908152600b602052604090205460ff1690565b34801561065f57600080fd5b5061033960115481565b34801561067557600080fd5b506015546102aa90600160a01b900460ff1681565b34801561069657600080fd5b50610326610e25565b3480156106ab57600080fd5b5061033960145481565b3480156106c157600080fd5b506103396106d0366004611f11565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561070757600080fd5b50610326610e62565b34801561071c57600080fd5b5061032661072b366004611e53565b610ec1565b34801561073c57600080fd5b50610326610f3f565b34801561075157600080fd5b50610326610760366004611ed8565b610fa3565b34801561077157600080fd5b50600f546102ee906001600160a01b031681565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107e09086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146108255760405162461bcd60e51b815260040161081c90611f3f565b60405180910390fd5b601554604051630afbf02f60e11b81526001600160a01b038381166004830152909116906315f7e05e90602401600060405180830381600087803b15801561086c57600080fd5b505af1158015610880573d6000803e3d6000fd5b5050505050565b600080546001600160a01b031633146108b25760405162461bcd60e51b815260040161081c90611f3f565b6002546107ec9030906001600160a01b031684610fd7565b6001600160a01b038316600090815260076020908152604080832033845290915281205460001914610977576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526007825283812033825290915291909120546109529184906110bd565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b6109828484846110f7565b90505b9392505050565b6000546001600160a01b031633146109b65760405162461bcd60e51b815260040161081c90611f3f565b6004546109c4906064611622565b811115610a055760405162461bcd60e51b815260206004820152600f60248201526e63616e27742065786365656420312560881b604482015260640161081c565b610a1381633b9aca00611f75565b60145550565b6003546001600160a01b0316600090815260066020526040812054610a66906002546001600160a01b0316600090815260066020526040902054610a609060045490611664565b90611664565b905090565b6000546001600160a01b03163314610a955760405162461bcd60e51b815260040161081c90611f3f565b6001600160a01b0382166000908152600b60205260409020805460ff1916821515179055610ac382826116a6565b5050565b6000546001600160a01b03163314610af15760405162461bcd60e51b815260040161081c90611f3f565b6012805461ff0019169055565b60006107ec82600019610785565b601554604051631730cfdd60e21b81526001600160a01b0383811660048301526000921690635cc33f74906024015b602060405180830381865afa158015610b58573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ec9190611f94565b6000546001600160a01b03163314610ba65760405162461bcd60e51b815260040161081c90611f3f565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610bf25760405162461bcd60e51b815260040161081c90611f3f565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6015546040805163997664d760e01b815290516000926001600160a01b03169163997664d79160048083019260209291908290030181865afa158015610c67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a669190611f94565b6000546001600160a01b03163314610cb55760405162461bcd60e51b815260040161081c90611f3f565b6009811115610cfd5760405162461bcd60e51b81526020600482015260146024820152734665652063616e2774206578636565642031342560601b604482015260640161081c565b600c55565b6015546040805163d54ad2a160e01b815290516000926001600160a01b03169163d54ad2a19160048083019260209291908290030181865afa158015610c67573d6000803e3d6000fd5b6000546001600160a01b03163314610d765760405162461bcd60e51b815260040161081c90611f3f565b601554600160a01b900460ff1615610dd05760405162461bcd60e51b815260206004820152601760248201527f63616e206f6e6c792062652063616c6c6564206f6e6365000000000000000000604482015260640161081c565b6015805460ff60a01b1916600160a01b179055565b601554604051638ecc37fb60e01b81526001600160a01b0383811660048301526000921690638ecc37fb90602401610b3b565b60006109853384846110f7565b6000546001600160a01b03163314610e4f5760405162461bcd60e51b815260040161081c90611f3f565b436011556012805460ff19166001179055565b601554604051630afbf02f60e11b81523360048201526001600160a01b03909116906315f7e05e90602401600060405180830381600087803b158015610ea757600080fd5b505af1158015610ebb573d6000803e3d6000fd5b50505050565b6000546001600160a01b03163314610eeb5760405162461bcd60e51b815260040161081c90611f3f565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b03163314610f695760405162461bcd60e51b815260040161081c90611f3f565b600e5460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610ac3573d6000803e3d6000fd5b6000546001600160a01b03163314610fcd5760405162461bcd60e51b815260040161081c90611f3f565b610ac382826116a6565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526006909152918220546110289184906110bd565b6001600160a01b03808616600090815260066020526040808220939093559085168152205461105790836117b7565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110ab9086815260200190565b60405180910390a35060019392505050565b600081848411156110e15760405162461bcd60e51b815260040161081c9190611dba565b5060006110ee8486611fad565b95945050505050565b600080546001600160a01b0385811691161480159061112457506000546001600160a01b03848116911614155b1561117b5760125460ff1661117b5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642e0000000000000000604482015260640161081c565b601554600160a01b900460ff1615611204576001600160a01b0384166000908152600b602052604090205460ff161580156111cf57506001600160a01b0383166000908152600b602052604090205460ff16155b6112045760405162461bcd60e51b815260040161081c90602080825260049082015263426f742160e01b604082015260600190565b601254610100900460ff1615611286576000546001600160a01b0385811691161480159061124057506000546001600160a01b03848116911614155b15611286576013548211156112865760405162461bcd60e51b815260206004820152600c60248201526b2a37b79036bab1b41039b4b960a11b604482015260640161081c565b6010546001600160a01b0385811691161480156112b15750600f546001600160a01b03848116911614155b80156112d657506001600160a01b03831660009081526009602052604090205460ff16155b15611324576001600160a01b03831660009081526008602052604090205442116112ff57600080fd5b61130a42603c611fc4565b6001600160a01b0384166000908152600860205260409020555b601554600160a81b900460ff161561134857611341848484610fd7565b9050610985565b30600090815260066020526040812054601454909190821080159190829061137d57506010546001600160a01b038781169116145b8015611396575030600090815260066020526040812054115b905080156113a6576113a6611816565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038a166000908152600690915291909120546113f89187906110bd565b6001600160a01b03881660009081526006602052604081209190915561141e8888611a3d565b6114285785611432565b6114328887611ab2565b6001600160a01b03881660009081526006602052604090205490915061145890826117b7565b6001600160a01b038089166000908152600660205260409020919091556010548982169116148015906114a457506001600160a01b0388166000908152600a602052604090205460ff16155b1561151a576015546001600160a01b0389811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561150757600080fd5b505af1925050508015611518575060015b505b6010546001600160a01b0388811691161480159061155157506001600160a01b0387166000908152600a602052604090205460ff16155b156115c7576015546001600160a01b0388811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b1580156115b457600080fd5b505af19250505080156115c5575060015b505b866001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161160c91815260200190565b60405180910390a3506001979650505050505050565b600061098583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b5e565b600061098583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110bd565b6001600160a01b03821630148015906116cd57506010546001600160a01b03838116911614155b6116d657600080fd5b6001600160a01b0382166000908152600a60205260409020805460ff1916821580159190911790915561176e57601554604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca96906044015b600060405180830381600087803b15801561175257600080fd5b505af1158015611766573d6000803e3d6000fd5b505050505050565b6015546001600160a01b0383811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401611738565b6000806117c48385611fc4565b9050838110156109855760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161081c565b6015805460ff60a81b1916600160a81b17905530600090815260066020526040812054905061184e611849826002611622565b611b8c565b61186161185c826002611622565b611c37565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156118c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ec9190611f94565b60155460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529192506000917f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303816000875af1158015611966573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198a9190611fdc565b905080156119f15760155460405163b6b55f2560e01b8152600481018490526001600160a01b039091169063b6b55f2590602401600060405180830381600087803b1580156119d857600080fd5b505af11580156119ec573d6000803e3d6000fd5b505050505b600e546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611a2a573d6000803e3d6000fd5b50506015805460ff60a81b191690555050565b6001600160a01b03821660009081526009602052604081205460ff1680611a7c57506001600160a01b03821660009081526009602052604090205460ff165b15801561098557506010546001600160a01b03848116911614806109855750506010546001600160a01b03908116911614919050565b600080611ad6600d54611ad0600c5486611d3890919063ffffffff16565b90611622565b30600090815260066020526040902054909150611af390826117b7565b30600081815260066020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b449085815260200190565b60405180910390a3611b568382611664565b949350505050565b60008183611b7f5760405162461bcd60e51b815260040161081c9190611dba565b5060006110ee8486611ff9565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611bc157611bc161201b565b6001600160a01b0392831660209182029290920101526001805483519216918391908110611bf157611bf161201b565b6001600160a01b039283166020918202929092010152600f5460405163791ac94760e01b815291169063791ac94790611738908590600090869030904290600401612031565b60408051600380825260808201909252600091602082016060803683370190505090503081600081518110611c6e57611c6e61201b565b6001600160a01b0392831660209182029290920101526001805483519216918391908110611c9e57611c9e61201b565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600281518110611cf257611cf261201b565b6001600160a01b039283166020918202929092010152600f54604051635c11d79560e01b8152911690635c11d79590611738908590600090869030904290600401612031565b600082600003611d4a575060006107ec565b6000611d568385611f75565b905082611d638583611ff9565b146109855760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161081c565b600060208083528351808285015260005b81811015611de757858101830151858201604001528201611dcb565b81811115611df9576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114611e2457600080fd5b50565b60008060408385031215611e3a57600080fd5b8235611e4581611e0f565b946020939093013593505050565b600060208284031215611e6557600080fd5b813561098581611e0f565b600060208284031215611e8257600080fd5b5035919050565b600080600060608486031215611e9e57600080fd5b8335611ea981611e0f565b92506020840135611eb981611e0f565b929592945050506040919091013590565b8015158114611e2457600080fd5b60008060408385031215611eeb57600080fd5b8235611ef681611e0f565b91506020830135611f0681611eca565b809150509250929050565b60008060408385031215611f2457600080fd5b8235611f2f81611e0f565b91506020830135611f0681611e0f565b60208082526006908201526510a7bbb732b960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615611f8f57611f8f611f5f565b500290565b600060208284031215611fa657600080fd5b5051919050565b600082821015611fbf57611fbf611f5f565b500390565b60008219821115611fd757611fd7611f5f565b500190565b600060208284031215611fee57600080fd5b815161098581611eca565b60008261201657634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120815784516001600160a01b03168352938301939183019160010161205c565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212204c369d31953bb2ea497d9dfc1bfdc43059290c7cdcf8662d7a936a1f949a77c664736f6c634300080d003360a060405273a35923162c49cf95e6bf26623385eb431ad920d36080526ec097ce7bc90715b34b9f100000000060095534801561003b57600080fd5b50604051610da0380380610da083398101604081905261005a9161008d565b60008054336001600160a01b031991821617909155600180549091166001600160a01b03929092169190911790556100bd565b60006020828403121561009f57600080fd5b81516001600160a01b03811681146100b657600080fd5b9392505050565b608051610cc16100df6000396000818161012101526107410152610cc16000f3fe6080604052600436106100e15760003560e01c8063997664d71161007f578063ce7c2ac211610059578063ce7c2ac21461025a578063d54ad2a1146102b1578063e2d2e219146102c7578063ecd0c0c3146102dd57600080fd5b8063997664d714610204578063b2bdfa7b1461021a578063b6b55f251461023a57600080fd5b806315f7e05e116100bb57806315f7e05e146101805780633a98ef39146101a05780635cc33f74146101c45780638ecc37fb146101e457600080fd5b80631014edf5146100ed578063128517011461010f57806314b6ca961461016057600080fd5b366100e857005b600080fd5b3480156100f957600080fd5b5061010d610108366004610ad8565b6102fd565b005b34801561011b57600080fd5b506101437f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561016c57600080fd5b5061010d61017b366004610b04565b61035d565b34801561018c57600080fd5b5061010d61019b366004610b2e565b6104d5565b3480156101ac57600080fd5b506101b660055481565b604051908152602001610157565b3480156101d057600080fd5b506101b66101df366004610b2e565b6104f8565b3480156101f057600080fd5b506101b66101ff366004610b2e565b61058b565b34801561021057600080fd5b506101b660065481565b34801561022657600080fd5b50600154610143906001600160a01b031681565b34801561024657600080fd5b5061010d610255366004610b49565b610616565b34801561026657600080fd5b50610296610275366004610b2e565b60046020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610157565b3480156102bd57600080fd5b506101b660075481565b3480156102d357600080fd5b506101b660085481565b3480156102e957600080fd5b50600054610143906001600160a01b031681565b6001546001600160a01b0316331461031457600080fd5b476001600160a01b0382166108fc8461032d578261032f565b845b6040518115909202916000818181858888f19350505050158015610357573d6000803e3d6000fd5b50505050565b6000546001600160a01b0316331461037457600080fd5b6001600160a01b0382166000908152600460205260409020541561039b5761039b82610670565b6000811180156103c157506001600160a01b038216600090815260046020526040902054155b1561042757600280546001600160a01b0384166000818152600360205260408120839055600183018455929092527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b031916909117905561045a565b8015801561044c57506001600160a01b03821660009081526004602052604090205415155b1561045a5761045a826107b4565b6001600160a01b03821660009081526004602052604090205460055461048b918391610485916108c9565b90610914565b6005556001600160a01b03821660009081526004602052604090208190556104b281610973565b6001600160a01b0390921660009081526004602052604090206001019190915550565b6000546001600160a01b031633146104ec57600080fd5b6104f581610670565b50565b6001600160a01b03811660009081526004602052604081205461056c5760405162461bcd60e51b815260206004820152602160248201527f596f75277265206e6f742061205052494e544552207368617265686f6c6465726044820152602160f81b60648201526084015b60405180910390fd5b506001600160a01b031660009081526004602052604090206002015490565b6001600160a01b03811660009081526004602052604081205481036105b257506000919050565b6001600160a01b0382166000908152600460205260408120546105d490610973565b6001600160a01b038416600090815260046020526040902060010154909150808211610604575060009392505050565b61060e82826108c9565b949350505050565b6000546001600160a01b0316331461062d57600080fd5b80156104f5576006546106409082610914565b60065560055460095461066a916106619161065b9085610990565b90610a12565b60085490610914565b60085550565b6001600160a01b03811660009081526004602052604081205490036106925750565b600061069d8261058b565b905080156107b0576007546106b29082610914565b6007556001600160a01b0382166000908152600460205260409020600201546106db9082610914565b6001600160a01b038316600090815260046020526040902060028101919091555461070590610973565b6001600160a01b03838116600081815260046020819052604091829020600101949094555163a9059cbb60e01b815292830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303816000875af115801561078a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ae9190610b62565b505b5050565b600280546107c490600190610b9a565b815481106107d4576107d4610bb1565b60009182526020808320909101546001600160a01b038481168452600390925260409092205460028054929093169291811061081257610812610bb1565b600091825260208083209190910180546001600160a01b0319166001600160a01b0394851617905591831681526003918290526040812054600280549193929161085e90600190610b9a565b8154811061086e5761086e610bb1565b60009182526020808320909101546001600160a01b0316835282019290925260400190205560028054806108a4576108a4610bc7565b600082815260209020810160001990810180546001600160a01b031916905501905550565b600061090b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610a54565b90505b92915050565b6000806109218385610bdd565b90508381101561090b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610563565b600061090e60095461065b6008548561099090919063ffffffff16565b6000826000036109a25750600061090e565b60006109ae8385610bf5565b9050826109bb8583610c14565b1461090b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610563565b600061090b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610a8e565b60008184841115610a785760405162461bcd60e51b81526004016105639190610c36565b506000610a858486610b9a565b95945050505050565b60008183610aaf5760405162461bcd60e51b81526004016105639190610c36565b506000610a858486610c14565b80356001600160a01b0381168114610ad357600080fd5b919050565b60008060408385031215610aeb57600080fd5b82359150610afb60208401610abc565b90509250929050565b60008060408385031215610b1757600080fd5b610b2083610abc565b946020939093013593505050565b600060208284031215610b4057600080fd5b61090b82610abc565b600060208284031215610b5b57600080fd5b5035919050565b600060208284031215610b7457600080fd5b8151801515811461090b57600080fd5b634e487b7160e01b600052601160045260246000fd5b600082821015610bac57610bac610b84565b500390565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b60008219821115610bf057610bf0610b84565b500190565b6000816000190483118215151615610c0f57610c0f610b84565b500290565b600082610c3157634e487b7160e01b600052601260045260246000fd5b500490565b600060208083528351808285015260005b81811015610c6357858101830151858201604001528201610c47565b81811115610c75576000604083870101525b50601f01601f191692909201604001939250505056fea2646970667358221220d144dcdd54a0edf69ff873c12a2f9788a339223fd9340e0bb85bf7ab9ff676ba64736f6c634300080d00330000000000000000000000000a797eee9a2b0e3313193607d6ed81264388e39f
Deployed Bytecode
0x6080604052600436106102345760003560e01c806370a082311161012e578063bf56b371116100ab578063f0fc6bca1161006f578063f0fc6bca146106fb578063f2fde38b14610710578063f429389014610730578063f708a64f14610745578063f887ea401461076557600080fd5b8063bf56b37114610653578063bffb691d14610669578063c9567bf91461068a578063d12a76881461069f578063dd62ed3e146106b557600080fd5b80638ecc37fb116100f25780638ecc37fb1461058f57806395d89b41146105af578063a8aa1b31146105da578063a9059cbb146105fa578063b1a4e0dc1461061a57600080fd5b806370a08231146104f1578063736a83a11461052757806375f0a8741461053c578063764ca5121461055c578063893d20e81461057157600080fd5b80632f54bf6e116101bc5780635cc33f74116101805780635cc33f741461045c5780635d098b381461047c578063658d4b7f1461049c57806367ee5f09146104bc57806369fe0e2d146104d157600080fd5b80632f54bf6e146103bc578063313ce567146103eb578063342aa8b5146104075780633e07ce5b14610427578063571ac8b01461043c57600080fd5b806318160ddd1161020357806318160ddd1461032857806323b635851461034757806323b872dd1461036757806329e04b4a146103875780632b112e49146103a757600080fd5b806306fdde0314610240578063095ea7b31461028a57806312851701146102ba57806315f7e05e1461030657600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b5060408051808201909152600f81526e5072696e742054686520547572626f60881b60208201525b6040516102819190611dba565b60405180910390f35b34801561029657600080fd5b506102aa6102a5366004611e27565b610785565b6040519015158152602001610281565b3480156102c657600080fd5b506102ee7f000000000000000000000000a35923162c49cf95e6bf26623385eb431ad920d381565b6040516001600160a01b039091168152602001610281565b34801561031257600080fd5b50610326610321366004611e53565b6107f2565b005b34801561033457600080fd5b506004545b604051908152602001610281565b34801561035357600080fd5b506102aa610362366004611e70565b610887565b34801561037357600080fd5b506102aa610382366004611e89565b6108ca565b34801561039357600080fd5b506103266103a2366004611e70565b61098c565b3480156103b357600080fd5b50610339610a19565b3480156103c857600080fd5b506102aa6103d7366004611e53565b6000546001600160a01b0391821691161490565b3480156103f757600080fd5b5060405160098152602001610281565b34801561041357600080fd5b50610326610422366004611ed8565b610a6b565b34801561043357600080fd5b50610326610ac7565b34801561044857600080fd5b506102aa610457366004611e53565b610afe565b34801561046857600080fd5b50610339610477366004611e53565b610b0c565b34801561048857600080fd5b50610326610497366004611e53565b610b7c565b3480156104a857600080fd5b506103266104b7366004611ed8565b610bc8565b3480156104c857600080fd5b50610339610c1d565b3480156104dd57600080fd5b506103266104ec366004611e70565b610c8b565b3480156104fd57600080fd5b5061033961050c366004611e53565b6001600160a01b031660009081526006602052604090205490565b34801561053357600080fd5b50610339610d02565b34801561054857600080fd5b50600e546102ee906001600160a01b031681565b34801561056857600080fd5b50610326610d4c565b34801561057d57600080fd5b506000546001600160a01b03166102ee565b34801561059b57600080fd5b506103396105aa366004611e53565b610de5565b3480156105bb57600080fd5b50604080518082019091526002815261141560f21b6020820152610274565b3480156105e657600080fd5b506010546102ee906001600160a01b031681565b34801561060657600080fd5b506102aa610615366004611e27565b610e18565b34801561062657600080fd5b506102aa610635366004611e53565b6001600160a01b03166000908152600b602052604090205460ff1690565b34801561065f57600080fd5b5061033960115481565b34801561067557600080fd5b506015546102aa90600160a01b900460ff1681565b34801561069657600080fd5b50610326610e25565b3480156106ab57600080fd5b5061033960145481565b3480156106c157600080fd5b506103396106d0366004611f11565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561070757600080fd5b50610326610e62565b34801561071c57600080fd5b5061032661072b366004611e53565b610ec1565b34801561073c57600080fd5b50610326610f3f565b34801561075157600080fd5b50610326610760366004611ed8565b610fa3565b34801561077157600080fd5b50600f546102ee906001600160a01b031681565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107e09086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146108255760405162461bcd60e51b815260040161081c90611f3f565b60405180910390fd5b601554604051630afbf02f60e11b81526001600160a01b038381166004830152909116906315f7e05e90602401600060405180830381600087803b15801561086c57600080fd5b505af1158015610880573d6000803e3d6000fd5b5050505050565b600080546001600160a01b031633146108b25760405162461bcd60e51b815260040161081c90611f3f565b6002546107ec9030906001600160a01b031684610fd7565b6001600160a01b038316600090815260076020908152604080832033845290915281205460001914610977576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526007825283812033825290915291909120546109529184906110bd565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b6109828484846110f7565b90505b9392505050565b6000546001600160a01b031633146109b65760405162461bcd60e51b815260040161081c90611f3f565b6004546109c4906064611622565b811115610a055760405162461bcd60e51b815260206004820152600f60248201526e63616e27742065786365656420312560881b604482015260640161081c565b610a1381633b9aca00611f75565b60145550565b6003546001600160a01b0316600090815260066020526040812054610a66906002546001600160a01b0316600090815260066020526040902054610a609060045490611664565b90611664565b905090565b6000546001600160a01b03163314610a955760405162461bcd60e51b815260040161081c90611f3f565b6001600160a01b0382166000908152600b60205260409020805460ff1916821515179055610ac382826116a6565b5050565b6000546001600160a01b03163314610af15760405162461bcd60e51b815260040161081c90611f3f565b6012805461ff0019169055565b60006107ec82600019610785565b601554604051631730cfdd60e21b81526001600160a01b0383811660048301526000921690635cc33f74906024015b602060405180830381865afa158015610b58573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ec9190611f94565b6000546001600160a01b03163314610ba65760405162461bcd60e51b815260040161081c90611f3f565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610bf25760405162461bcd60e51b815260040161081c90611f3f565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6015546040805163997664d760e01b815290516000926001600160a01b03169163997664d79160048083019260209291908290030181865afa158015610c67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a669190611f94565b6000546001600160a01b03163314610cb55760405162461bcd60e51b815260040161081c90611f3f565b6009811115610cfd5760405162461bcd60e51b81526020600482015260146024820152734665652063616e2774206578636565642031342560601b604482015260640161081c565b600c55565b6015546040805163d54ad2a160e01b815290516000926001600160a01b03169163d54ad2a19160048083019260209291908290030181865afa158015610c67573d6000803e3d6000fd5b6000546001600160a01b03163314610d765760405162461bcd60e51b815260040161081c90611f3f565b601554600160a01b900460ff1615610dd05760405162461bcd60e51b815260206004820152601760248201527f63616e206f6e6c792062652063616c6c6564206f6e6365000000000000000000604482015260640161081c565b6015805460ff60a01b1916600160a01b179055565b601554604051638ecc37fb60e01b81526001600160a01b0383811660048301526000921690638ecc37fb90602401610b3b565b60006109853384846110f7565b6000546001600160a01b03163314610e4f5760405162461bcd60e51b815260040161081c90611f3f565b436011556012805460ff19166001179055565b601554604051630afbf02f60e11b81523360048201526001600160a01b03909116906315f7e05e90602401600060405180830381600087803b158015610ea757600080fd5b505af1158015610ebb573d6000803e3d6000fd5b50505050565b6000546001600160a01b03163314610eeb5760405162461bcd60e51b815260040161081c90611f3f565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b03163314610f695760405162461bcd60e51b815260040161081c90611f3f565b600e5460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610ac3573d6000803e3d6000fd5b6000546001600160a01b03163314610fcd5760405162461bcd60e51b815260040161081c90611f3f565b610ac382826116a6565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526006909152918220546110289184906110bd565b6001600160a01b03808616600090815260066020526040808220939093559085168152205461105790836117b7565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110ab9086815260200190565b60405180910390a35060019392505050565b600081848411156110e15760405162461bcd60e51b815260040161081c9190611dba565b5060006110ee8486611fad565b95945050505050565b600080546001600160a01b0385811691161480159061112457506000546001600160a01b03848116911614155b1561117b5760125460ff1661117b5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642e0000000000000000604482015260640161081c565b601554600160a01b900460ff1615611204576001600160a01b0384166000908152600b602052604090205460ff161580156111cf57506001600160a01b0383166000908152600b602052604090205460ff16155b6112045760405162461bcd60e51b815260040161081c90602080825260049082015263426f742160e01b604082015260600190565b601254610100900460ff1615611286576000546001600160a01b0385811691161480159061124057506000546001600160a01b03848116911614155b15611286576013548211156112865760405162461bcd60e51b815260206004820152600c60248201526b2a37b79036bab1b41039b4b960a11b604482015260640161081c565b6010546001600160a01b0385811691161480156112b15750600f546001600160a01b03848116911614155b80156112d657506001600160a01b03831660009081526009602052604090205460ff16155b15611324576001600160a01b03831660009081526008602052604090205442116112ff57600080fd5b61130a42603c611fc4565b6001600160a01b0384166000908152600860205260409020555b601554600160a81b900460ff161561134857611341848484610fd7565b9050610985565b30600090815260066020526040812054601454909190821080159190829061137d57506010546001600160a01b038781169116145b8015611396575030600090815260066020526040812054115b905080156113a6576113a6611816565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038a166000908152600690915291909120546113f89187906110bd565b6001600160a01b03881660009081526006602052604081209190915561141e8888611a3d565b6114285785611432565b6114328887611ab2565b6001600160a01b03881660009081526006602052604090205490915061145890826117b7565b6001600160a01b038089166000908152600660205260409020919091556010548982169116148015906114a457506001600160a01b0388166000908152600a602052604090205460ff16155b1561151a576015546001600160a01b0389811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561150757600080fd5b505af1925050508015611518575060015b505b6010546001600160a01b0388811691161480159061155157506001600160a01b0387166000908152600a602052604090205460ff16155b156115c7576015546001600160a01b0388811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b1580156115b457600080fd5b505af19250505080156115c5575060015b505b866001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161160c91815260200190565b60405180910390a3506001979650505050505050565b600061098583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b5e565b600061098583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110bd565b6001600160a01b03821630148015906116cd57506010546001600160a01b03838116911614155b6116d657600080fd5b6001600160a01b0382166000908152600a60205260409020805460ff1916821580159190911790915561176e57601554604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca96906044015b600060405180830381600087803b15801561175257600080fd5b505af1158015611766573d6000803e3d6000fd5b505050505050565b6015546001600160a01b0383811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401611738565b6000806117c48385611fc4565b9050838110156109855760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161081c565b6015805460ff60a81b1916600160a81b17905530600090815260066020526040812054905061184e611849826002611622565b611b8c565b61186161185c826002611622565b611c37565b6040516370a0823160e01b81523060048201526000907f000000000000000000000000a35923162c49cf95e6bf26623385eb431ad920d36001600160a01b0316906370a0823190602401602060405180830381865afa1580156118c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ec9190611f94565b60155460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529192506000917f000000000000000000000000a35923162c49cf95e6bf26623385eb431ad920d39091169063a9059cbb906044016020604051808303816000875af1158015611966573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198a9190611fdc565b905080156119f15760155460405163b6b55f2560e01b8152600481018490526001600160a01b039091169063b6b55f2590602401600060405180830381600087803b1580156119d857600080fd5b505af11580156119ec573d6000803e3d6000fd5b505050505b600e546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611a2a573d6000803e3d6000fd5b50506015805460ff60a81b191690555050565b6001600160a01b03821660009081526009602052604081205460ff1680611a7c57506001600160a01b03821660009081526009602052604090205460ff165b15801561098557506010546001600160a01b03848116911614806109855750506010546001600160a01b03908116911614919050565b600080611ad6600d54611ad0600c5486611d3890919063ffffffff16565b90611622565b30600090815260066020526040902054909150611af390826117b7565b30600081815260066020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b449085815260200190565b60405180910390a3611b568382611664565b949350505050565b60008183611b7f5760405162461bcd60e51b815260040161081c9190611dba565b5060006110ee8486611ff9565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611bc157611bc161201b565b6001600160a01b0392831660209182029290920101526001805483519216918391908110611bf157611bf161201b565b6001600160a01b039283166020918202929092010152600f5460405163791ac94760e01b815291169063791ac94790611738908590600090869030904290600401612031565b60408051600380825260808201909252600091602082016060803683370190505090503081600081518110611c6e57611c6e61201b565b6001600160a01b0392831660209182029290920101526001805483519216918391908110611c9e57611c9e61201b565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000a35923162c49cf95e6bf26623385eb431ad920d381600281518110611cf257611cf261201b565b6001600160a01b039283166020918202929092010152600f54604051635c11d79560e01b8152911690635c11d79590611738908590600090869030904290600401612031565b600082600003611d4a575060006107ec565b6000611d568385611f75565b905082611d638583611ff9565b146109855760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161081c565b600060208083528351808285015260005b81811015611de757858101830151858201604001528201611dcb565b81811115611df9576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114611e2457600080fd5b50565b60008060408385031215611e3a57600080fd5b8235611e4581611e0f565b946020939093013593505050565b600060208284031215611e6557600080fd5b813561098581611e0f565b600060208284031215611e8257600080fd5b5035919050565b600080600060608486031215611e9e57600080fd5b8335611ea981611e0f565b92506020840135611eb981611e0f565b929592945050506040919091013590565b8015158114611e2457600080fd5b60008060408385031215611eeb57600080fd5b8235611ef681611e0f565b91506020830135611f0681611eca565b809150509250929050565b60008060408385031215611f2457600080fd5b8235611f2f81611e0f565b91506020830135611f0681611e0f565b60208082526006908201526510a7bbb732b960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615611f8f57611f8f611f5f565b500290565b600060208284031215611fa657600080fd5b5051919050565b600082821015611fbf57611fbf611f5f565b500390565b60008219821115611fd757611fd7611f5f565b500190565b600060208284031215611fee57600080fd5b815161098581611eca565b60008261201657634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120815784516001600160a01b03168352938301939183019160010161205c565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212204c369d31953bb2ea497d9dfc1bfdc43059290c7cdcf8662d7a936a1f949a77c664736f6c634300080d0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000a797eee9a2b0e3313193607d6ed81264388e39f
-----Decoded View---------------
Arg [0] : _owner (address): 0x0A797eeE9a2b0E3313193607d6ed81264388E39F
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000a797eee9a2b0e3313193607d6ed81264388e39f
Deployed Bytecode Sourcemap
9539:11722:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12280:80;;;;;;;;;;-1:-1:-1;12352:5:0;;;;;;;;;;;;-1:-1:-1;;;12352:5:0;;;;12280:80;;;;;;;:::i;:::-;;;;;;;;12702:216;;;;;;;;;;-1:-1:-1;12702:216:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;12702:216:0;1072:187:1;9793:84:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1428:32:1;;;1410:51;;1398:2;1383:18;9793:84:0;1264:203:1;19528:110:0;;;;;;;;;;-1:-1:-1;19528:110:0;;;;;:::i;:::-;;:::i;:::-;;12010:88;;;;;;;;;;-1:-1:-1;12083:12:0;;12010:88;;;1870:25:1;;;1858:2;1843:18;12010:88:0;1724:177:1;19818:139:0;;;;;;;;;;-1:-1:-1;19818:139:0;;;;;:::i;:::-;;:::i;13220:370::-;;;;;;;;;;-1:-1:-1;13220:370:0;;;;;:::i;:::-;;:::i;21046:206::-;;;;;;;;;;-1:-1:-1;21046:206:0;;;;;:::i;:::-;;:::i;19969:142::-;;;;;;;;;;;;;:::i;3063:103::-;;;;;;;;;;-1:-1:-1;3063:103:0;;;;;:::i;:::-;3118:4;3153:5;-1:-1:-1;;;;;3142:16:0;;;3153:5;;3142:16;;3063:103;12104:80;;;;;;;;;;-1:-1:-1;12104:80:0;;10031:1;2694:36:1;;2682:2;2667:18;12104:80:0;2552:184:1;18308:158:0;;;;;;;;;;-1:-1:-1;18308:158:0;;;;;:::i;:::-;;:::i;20675:80::-;;;;;;;;;;;;;:::i;12926:122::-;;;;;;;;;;-1:-1:-1;12926:122:0;;;;;:::i;:::-;;:::i;20510:157::-;;;;;;;;;;-1:-1:-1;20510:157:0;;;;;:::i;:::-;;:::i;20119:135::-;;;;;;;;;;-1:-1:-1;20119:135:0;;;;;:::i;:::-;;:::i;18969:119::-;;;;;;;;;;-1:-1:-1;18969:119:0;;;;;:::i;:::-;;:::i;20263:115::-;;;;;;;;;;;;;:::i;19096:138::-;;;;;;;;;;-1:-1:-1;19096:138:0;;;;;:::i;:::-;;:::i;12450:105::-;;;;;;;;;;-1:-1:-1;12450:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;12534:18:0;12516:7;12534:18;;;:9;:18;;;;;;;12450:105;20390:111;;;;;;;;;;;;;:::i;10601:92::-;;;;;;;;;;-1:-1:-1;10601:92:0;;;;-1:-1:-1;;;;;10601:92:0;;;20873:165;;;;;;;;;;;;;:::i;12366:78::-;;;;;;;;;;-1:-1:-1;12418:7:0;12436:5;-1:-1:-1;;;;;12436:5:0;12366:78;;19650:156;;;;;;;;;;-1:-1:-1;19650:156:0;;;;;:::i;:::-;;:::i;12190:84::-;;;;;;;;;;-1:-1:-1;12264:7:0;;;;;;;;;;;;-1:-1:-1;;;12264:7:0;;;;12190:84;;10733:19;;;;;;;;;;-1:-1:-1;10733:19:0;;;;-1:-1:-1;;;;;10733:19:0;;;13056:156;;;;;;;;;;-1:-1:-1;13056:156:0;;;;;:::i;:::-;;:::i;20763:102::-;;;;;;;;;;-1:-1:-1;20763:102:0;;;;;:::i;:::-;-1:-1:-1;;;;;20843:14:0;20819:4;20843:14;;;:5;:14;;;;;;;;;20763:102;10761:25;;;;;;;;;;;;;;;;11046:36;;;;;;;;;;-1:-1:-1;11046:36:0;;;;-1:-1:-1;;;11046:36:0;;;;;;18173:115;;;;;;;;;;;;;:::i;10919:62::-;;;;;;;;;;;;;;;;12561:133;;;;;;;;;;-1:-1:-1;12561:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;12663:19:0;;;12645:7;12663:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;12561:133;19426:90;;;;;;;;;;;;;:::i;3291:136::-;;;;;;;;;;-1:-1:-1;3291:136:0;;;;;:::i;:::-;;:::i;19244:174::-;;;;;;;;;;;;;:::i;18829:132::-;;;;;;;;;;-1:-1:-1;18829:132:0;;;;;:::i;:::-;;:::i;10702:24::-;;;;;;;;;;-1:-1:-1;10702:24:0;;;;-1:-1:-1;;;;;10702:24:0;;;12702:216;12806:10;12777:4;12794:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;12794:32:0;;;;;;;;;;:41;;;12851:37;12777:4;;12794:32;;12851:37;;;;12829:6;1870:25:1;;1858:2;1843:18;;1724:177;12851:37:0;;;;;;;;-1:-1:-1;12906:4:0;12702:216;;;;;:::o;19528:110::-;3118:4;3153:5;-1:-1:-1;;;;;3153:5:0;2970:10;3142:16;2954:38;;;;-1:-1:-1;;;2954:38:0;;;;;;;:::i;:::-;;;;;;;;;19597:11:::1;::::0;:33:::1;::::0;-1:-1:-1;;;19597:33:0;;-1:-1:-1;;;;;1428:32:1;;;19597:33:0::1;::::0;::::1;1410:51:1::0;19597:11:0;;::::1;::::0;:25:::1;::::0;1383:18:1;;19597:33:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19528:110:::0;:::o;19818:139::-;19882:4;3153:5;;-1:-1:-1;;;;;3153:5:0;2970:10;3142:16;2954:38;;;;-1:-1:-1;;;2954:38:0;;;;;;;:::i;:::-;19936:4:::1;::::0;19906:43:::1;::::0;19929:4:::1;::::0;-1:-1:-1;;;;;19936:4:0::1;19942:6:::0;19906:14:::1;:43::i;13220:370::-:0;-1:-1:-1;;;;;13340:19:0;;13320:4;13340:19;;;:11;:19;;;;;;;;13360:10;13340:31;;;;;;;;-1:-1:-1;;13340:52:0;13337:186;;13442:69;;;;;;;;;;;-1:-1:-1;;;13442:69:0;;;;;;;;-1:-1:-1;;;;;13442:19:0;;-1:-1:-1;13442:19:0;;;:11;:19;;;;;13462:10;13442:31;;;;;;;;;;:69;;13478:6;;13442:35;:69::i;:::-;-1:-1:-1;;;;;13408:19:0;;;;;;:11;:19;;;;;;;;13428:10;13408:31;;;;;;;:103;13337:186;13542:40;13556:6;13564:9;13575:6;13542:13;:40::i;:::-;13535:47;;13220:370;;;;;;:::o;21046:206::-;3118:4;3153:5;-1:-1:-1;;;;;3153:5:0;2970:10;3142:16;2954:38;;;;-1:-1:-1;;;2954:38:0;;;;;;;:::i;:::-;21144:12:::1;::::0;:21:::1;::::0;21161:3:::1;21144:16;:21::i;:::-;21134:6;:31;;21125:60;;;::::0;-1:-1:-1;;;21125:60:0;;4890:2:1;21125:60:0::1;::::0;::::1;4872:21:1::0;4929:2;4909:18;;;4902:30;-1:-1:-1;;;4948:18:1;;;4941:45;5003:18;;21125:60:0::1;4688:339:1::0;21125:60:0::1;21228:16;:6:::0;21237:7:::1;21228:16;:::i;:::-;21196:29;:48:::0;-1:-1:-1;21046:206:0:o;19969:142::-;20097:4;;-1:-1:-1;;;;;20097:4:0;20022:7;12534:18;;;:9;:18;;;;;;20049:54;;20076:4;;-1:-1:-1;;;;;20076:4:0;12516:7;12534:18;;;:9;:18;;;;;;20049:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;20042:61;;19969:142;:::o;18308:158::-;3118:4;3153:5;-1:-1:-1;;;;;3153:5:0;2970:10;3142:16;2954:38;;;;-1:-1:-1;;;2954:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18385:15:0;::::1;;::::0;;;:5:::1;:15;::::0;;;;:24;;-1:-1:-1;;18385:24:0::1;::::0;::::1;;;::::0;;18420:38:::1;18385:15:::0;:24;18420:20:::1;:38::i;:::-;18308:158:::0;;:::o;20675:80::-;3118:4;3153:5;-1:-1:-1;;;;;3153:5:0;2970:10;3142:16;2954:38;;;;-1:-1:-1;;;2954:38:0;;;;;;;:::i;:::-;20731:8:::1;:16:::0;;-1:-1:-1;;20731:16:0::1;::::0;;20675:80::o;12926:122::-;12981:4;13005:35;13013:7;-1:-1:-1;;13005:7:0;:35::i;20510:157::-;20613:11;;:46;;-1:-1:-1;;;20613:46:0;;-1:-1:-1;;;;;1428:32:1;;;20613:46:0;;;1410:51:1;20586:7:0;;20613:11;;:33;;1383:18:1;;20613:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;20119:135::-;3118:4;3153:5;-1:-1:-1;;;;;3153:5:0;2970:10;3142:16;2954:38;;;;-1:-1:-1;;;2954:38:0;;;;;;;:::i;:::-;20203:15:::1;:43:::0;;-1:-1:-1;;;;;;20203:43:0::1;-1:-1:-1::0;;;;;20203:43:0;;;::::1;::::0;;;::::1;::::0;;20119:135::o;18969:119::-;3118:4;3153:5;-1:-1:-1;;;;;3153:5:0;2970:10;3142:16;2954:38;;;;-1:-1:-1;;;2954:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19052:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;19052:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18969:119::o;20263:115::-;20342:11;;:28;;;-1:-1:-1;;;20342:28:0;;;;20315:7;;-1:-1:-1;;;;;20342:11:0;;:26;;:28;;;;;;;;;;;;;;:11;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;19096:138::-;3118:4;3153:5;-1:-1:-1;;;;;3153:5:0;2970:10;3142:16;2954:38;;;;-1:-1:-1;;;2954:38:0;;;;;;;:::i;:::-;19174:1:::1;19166:4;:9;;19157:43;;;::::0;-1:-1:-1;;;19157:43:0;;5728:2:1;19157:43:0::1;::::0;::::1;5710:21:1::0;5767:2;5747:18;;;5740:30;-1:-1:-1;;;5786:18:1;;;5779:50;5846:18;;19157:43:0::1;5526:344:1::0;19157:43:0::1;19211:8;:15:::0;19096:138::o;20390:111::-;20467:11;;:26;;;-1:-1:-1;;;20467:26:0;;;;20440:7;;-1:-1:-1;;;;;20467:11:0;;:24;;:26;;;;;;;;;;;;;;:11;:26;;;;;;;;;;;;;;20873:165;3118:4;3153:5;-1:-1:-1;;;;;3153:5:0;2970:10;3142:16;2954:38;;;;-1:-1:-1;;;2954:38:0;;;;;;;:::i;:::-;20943:16:::1;::::0;-1:-1:-1;;;20943:16:0;::::1;;;:25;20934:62;;;::::0;-1:-1:-1;;;20934:62:0;;6077:2:1;20934:62:0::1;::::0;::::1;6059:21:1::0;6116:2;6096:18;;;6089:30;6155:25;6135:18;;;6128:53;6198:18;;20934:62:0::1;5875:347:1::0;20934:62:0::1;21007:16;:23:::0;;-1:-1:-1;;;;21007:23:0::1;-1:-1:-1::0;;;21007:23:0::1;::::0;;20873:165::o;19650:156::-;19751:11;;:47;;-1:-1:-1;;;19751:47:0;;-1:-1:-1;;;;;1428:32:1;;;19751:47:0;;;1410:51:1;19724:7:0;;19751:11;;:34;;1383:18:1;;19751:47:0;1264:203:1;13056:156:0;13136:4;13160:44;13174:10;13186:9;13197:6;13160:13;:44::i;18173:115::-;3118:4;3153:5;-1:-1:-1;;;;;3153:5:0;2970:10;3142:16;2954:38;;;;-1:-1:-1;;;2954:38:0;;;;;;;:::i;:::-;18239:12:::1;18226:10;:25:::0;18262:11:::1;:18:::0;;-1:-1:-1;;18262:18:0::1;18276:4;18262:18;::::0;;18173:115::o;19426:90::-;19471:11;;:37;;-1:-1:-1;;;19471:37:0;;19497:10;19471:37;;;1410:51:1;-1:-1:-1;;;;;19471:11:0;;;;:25;;1383:18:1;;19471:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19426:90::o;3291:136::-;3118:4;3153:5;-1:-1:-1;;;;;3153:5:0;2970:10;3142:16;2954:38;;;;-1:-1:-1;;;2954:38:0;;;;;;;:::i;:::-;3367:5:::1;:11:::0;;-1:-1:-1;;;;;;3367:11:0::1;-1:-1:-1::0;;;;;3367:11:0;::::1;::::0;;::::1;::::0;;;3394:25:::1;::::0;1410:51:1;;;3394:25:0::1;::::0;1398:2:1;1383:18;3394:25:0::1;;;;;;;3291:136:::0;:::o;19244:174::-;3118:4;3153:5;-1:-1:-1;;;;;3153:5:0;2970:10;3142:16;2954:38;;;;-1:-1:-1;;;2954:38:0;;;;;;;:::i;:::-;19365:15:::1;::::0;19357:53:::1;::::0;19325:21:::1;::::0;-1:-1:-1;;;;;19365:15:0::1;::::0;19357:53;::::1;;;::::0;19325:21;;19296:26:::1;19357:53:::0;19296:26;19357:53;19325:21;19365:15;19357:53;::::1;;;;;;;;;;;;;::::0;::::1;;;;18829:132:::0;3118:4;3153:5;-1:-1:-1;;;;;3153:5:0;2970:10;3142:16;2954:38;;;;-1:-1:-1;;;2954:38:0;;;;;;;:::i;:::-;18917:36:::1;18938:6;18946;18917:20;:36::i;15362:330::-:0;15492:53;;;;;;;;;;;-1:-1:-1;;;15492:53:0;;;;;;;;-1:-1:-1;;;;;15492:17:0;;15455:4;15492:17;;;:9;:17;;;;;;;:53;;15514:6;;15492:21;:53::i;:::-;-1:-1:-1;;;;;15472:17:0;;;;;;;:9;:17;;;;;;:73;;;;15579:20;;;;;;;:32;;15604:6;15579:24;:32::i;:::-;-1:-1:-1;;;;;15556:20:0;;;;;;;:9;:20;;;;;;;:55;;;;15627:35;;;;;;;;;;15655:6;1870:25:1;;1858:2;1843:18;;1724:177;15627:35:0;;;;;;;;-1:-1:-1;15680:4:0;15362:330;;;;;:::o;725:192::-;811:7;847:12;839:6;;;;831:29;;;;-1:-1:-1;;;831:29:0;;;;;;;;:::i;:::-;-1:-1:-1;871:9:0;883:5;887:1;883;:5;:::i;:::-;871:17;725:192;-1:-1:-1;;;;;725:192:0:o;13598:1752::-;13690:4;13720:5;;-1:-1:-1;;;;;13711:14:0;;;13720:5;;13711:14;;;;:35;;-1:-1:-1;13741:5:0;;-1:-1:-1;;;;;13729:17:0;;;13741:5;;13729:17;;13711:35;13707:89;;;13756:11;;;;13748:48;;;;-1:-1:-1;;;13748:48:0;;6775:2:1;13748:48:0;;;6757:21:1;6814:2;6794:18;;;6787:30;6853:26;6833:18;;;6826:54;6897:18;;13748:48:0;6573:348:1;13748:48:0;13851:16;;-1:-1:-1;;;13851:16:0;;;;13847:102;;;-1:-1:-1;;;;;13894:13:0;;;;;;:5;:13;;;;;;;;13893:14;:35;;;;-1:-1:-1;;;;;;13912:16:0;;;;;;:5;:16;;;;;;;;13911:17;13893:35;13884:53;;;;-1:-1:-1;;;13884:53:0;;;;;;7128:2:1;7110:21;;;7167:1;7147:18;;;7140:29;-1:-1:-1;;;7200:2:1;7185:18;;7178:34;7244:2;7229:18;;6926:327;13884:53:0;13963:8;;;;;;;13959:130;;;14001:5;;-1:-1:-1;;;;;13993:13:0;;;14001:5;;13993:13;;;;:34;;-1:-1:-1;14022:5:0;;-1:-1:-1;;;;;14010:17:0;;;14022:5;;14010:17;;13993:34;13989:80;;;14046:6;;14038;:14;;14029:40;;;;-1:-1:-1;;;14029:40:0;;7460:2:1;14029:40:0;;;7442:21:1;7499:2;7479:18;;;7472:30;-1:-1:-1;;;7518:18:1;;;7511:42;7570:18;;14029:40:0;7258:336:1;14029:40:0;14115:4;;-1:-1:-1;;;;;14105:14:0;;;14115:4;;14105:14;:46;;;;-1:-1:-1;14144:6:0;;-1:-1:-1;;;;;14123:28:0;;;14144:6;;14123:28;;14105:46;:73;;;;-1:-1:-1;;;;;;14156:22:0;;;;;;:11;:22;;;;;;;;14155:23;14105:73;14101:219;;;-1:-1:-1;;;;;14204:19:0;;;;;;:8;:19;;;;;;14226:15;-1:-1:-1;14195:47:0;;;;;;14279:28;:15;14297:10;14279:28;:::i;:::-;-1:-1:-1;;;;;14257:19:0;;;;;;:8;:19;;;;;:50;14101:219;14342:6;;-1:-1:-1;;;14342:6:0;;;;14339:63;;;14358:41;14373:6;14381:9;14392:6;14358:14;:41::i;:::-;14351:48;;;;14339:63;14469:4;14420:28;12534:18;;;:9;:18;;;;;;14539:29;;12534:18;;14515:53;;;;;;14420:28;14515:53;;14608:38;;-1:-1:-1;14642:4:0;;-1:-1:-1;;;;;14631:15:0;;;14642:4;;14631:15;14608:38;:70;;;;-1:-1:-1;14668:4:0;14677:1;12534:18;;;:9;:18;;;;;;14650:28;14608:70;14585:94;;14693:14;14690:33;;;14710:10;:8;:10::i;:::-;14755:53;;;;;;;;;;;-1:-1:-1;;;14755:53:0;;;;;;;;-1:-1:-1;;;;;14755:17:0;;-1:-1:-1;14755:17:0;;;:9;:17;;;;;;;;:53;;14777:6;;14755:21;:53::i;:::-;-1:-1:-1;;;;;14735:17:0;;;;;;:9;:17;;;;;:73;;;;14846:32;14745:6;14868:9;14846:13;:32::i;:::-;:67;;14907:6;14846:67;;;14881:23;14889:6;14897;14881:7;:23::i;:::-;-1:-1:-1;;;;;14957:20:0;;;;;;:9;:20;;;;;;14821:92;;-1:-1:-1;14957:40:0;;14821:92;14957:24;:40::i;:::-;-1:-1:-1;;;;;14934:20:0;;;;;;;:9;:20;;;;;:63;;;;15023:4;;15013:14;;;15023:4;;15013:14;;;;:43;;-1:-1:-1;;;;;;15032:24:0;;;;;;:16;:24;;;;;;;;15031:25;15013:43;15010:114;;;15063:11;;-1:-1:-1;;;;;15092:17:0;;;15063:11;15092:17;;;:9;:17;;;;;;;;15063:47;;-1:-1:-1;;;15063:47:0;;;;;7906:51:1;;;;7973:18;;;7966:34;15063:11:0;;;:20;;7879:18:1;;15063:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15059:63;;15150:4;;-1:-1:-1;;;;;15137:17:0;;;15150:4;;15137:17;;;;:49;;-1:-1:-1;;;;;;15159:27:0;;;;;;:16;:27;;;;;;;;15158:28;15137:49;15134:126;;;15193:11;;-1:-1:-1;;;;;15225:20:0;;;15193:11;15225:20;;;:9;:20;;;;;;;;15193:53;;-1:-1:-1;;;15193:53:0;;;;;7906:51:1;;;;7973:18;;;7966:34;15193:11:0;;;:20;;7879:18:1;;15193:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15189:69;;15294:9;-1:-1:-1;;;;;15277:43:0;15286:6;-1:-1:-1;;;;;15277:43:0;;15305:14;15277:43;;;;1870:25:1;;1858:2;1843:18;;1724:177;15277:43:0;;;;;;;;-1:-1:-1;15338:4:0;;13598:1752;-1:-1:-1;;;;;;;13598:1752:0:o;1179:132::-;1237:7;1264:39;1268:1;1271;1264:39;;;;;;;;;;;;;;;;;:3;:39::i;583:136::-;641:7;668:43;672:1;675;668:43;;;;;;;;;;;;;;;;;:3;:43::i;18484:337::-;-1:-1:-1;;;;;18571:23:0;;18589:4;18571:23;;;;:41;;-1:-1:-1;18608:4:0;;-1:-1:-1;;;;;18598:14:0;;;18608:4;;18598:14;;18571:41;18563:50;;;;;;-1:-1:-1;;;;;18624:24:0;;;;;;:16;:24;;;;;:33;;-1:-1:-1;;18624:33:0;;;;;;;;;;;;18668:146;;18693:11;;:31;;-1:-1:-1;;;18693:31:0;;-1:-1:-1;;;;;7924:32:1;;;18693:31:0;;;7906:51:1;18693:11:0;7973:18:1;;;7966:34;18693:11:0;;;;:20;;7879:18:1;;18693:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18308:158;;:::o;18668:146::-;18755:11;;-1:-1:-1;;;;;18784:17:0;;;18755:11;18784:17;;;:9;:17;;;;;;;;18755:47;;-1:-1:-1;;;18755:47:0;;;;;7906:51:1;;;;7973:18;;;7966:34;18755:11:0;;;:20;;7879:18:1;;18755:47:0;7732:274:1;396:181:0;454:7;;486:5;490:1;486;:5;:::i;:::-;474:17;;515:1;510;:6;;502:46;;;;-1:-1:-1;;;502:46:0;;8500:2:1;502:46:0;;;8482:21:1;8539:2;8519:18;;;8512:30;8578:29;8558:18;;;8551:57;8625:18;;502:46:0;8298:351:1;16284:552:0;11137:6;:13;;-1:-1:-1;;;;11137:13:0;-1:-1:-1;;;11137:13:0;;;16376:4:::1;-1:-1:-1::0;12534:18:0;;;:9;:18;;;;;;16335:47;-1:-1:-1;16403:37:0::1;16420:19;16335:47:::0;16437:1:::1;16420:16;:19::i;:::-;16403:16;:37::i;:::-;16451:39;16470:19;:12:::0;16487:1:::1;16470:16;:19::i;:::-;16451:18;:39::i;:::-;16523:38;::::0;-1:-1:-1;;;16523:38:0;;16555:4:::1;16523:38;::::0;::::1;1410:51:1::0;16503:17:0::1;::::0;16530:5:::1;-1:-1:-1::0;;;;;16523:23:0::1;::::0;::::1;::::0;1383:18:1;;16523:38:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16620:11;::::0;16589:55:::1;::::0;-1:-1:-1;;;16589:55:0;;-1:-1:-1;;;;;16620:11:0;;::::1;16589:55;::::0;::::1;7906:51:1::0;7973:18;;;7966:34;;;16503:58:0;;-1:-1:-1;16574:12:0::1;::::0;16596:5:::1;16589:22:::0;;::::1;::::0;::::1;::::0;7879:18:1;;16589:55:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16574:70;;16661:7;16657:82;;;16685:11;::::0;:30:::1;::::0;-1:-1:-1;;;16685:30:0;;::::1;::::0;::::1;1870:25:1::0;;;-1:-1:-1;;;;;16685:11:0;;::::1;::::0;:19:::1;::::0;1843:18:1;;16685:30:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16657:82;16772:15;::::0;16764:56:::1;::::0;-1:-1:-1;;;;;16772:15:0;;::::1;::::0;16798:21:::1;16764:56:::0;::::1;;;::::0;16772:15:::1;16764:56:::0;16772:15;16764:56;16798:21;16772:15;16764:56;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;11155:6:0;:14;;-1:-1:-1;;;;11155:14:0;;;-1:-1:-1;;16284:552:0:o;15703:206::-;-1:-1:-1;;;;;15812:19:0;;15784:4;15812:19;;;:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;15835:22:0;;;;;;:11;:22;;;;;;;;15812:45;15810:48;:90;;;;-1:-1:-1;15874:4:0;;-1:-1:-1;;;;;15864:14:0;;;15874:4;;15864:14;;:35;;-1:-1:-1;;15895:4:0;;-1:-1:-1;;;;;15895:4:0;;;15882:17;;;;15703:206;-1:-1:-1;15703:206:0:o;15917:354::-;15984:7;16004:17;16044:40;16069:14;;16044:20;16055:8;;16044:6;:10;;:20;;;;:::i;:::-;:24;;:40::i;:::-;16140:4;16122:24;;;;:9;:24;;;;;;16032:52;;-1:-1:-1;16122:39:0;;16032:52;16122:28;:39::i;:::-;16113:4;16095:24;;;;:9;:24;;;;;;;:66;;;;16177:42;;-1:-1:-1;;;;;16177:42:0;;;;;;;16209:9;1870:25:1;;1858:2;1843:18;;1724:177;16177:42:0;;;;;;;;16242:21;:6;16253:9;16242:10;:21::i;:::-;16235:28;15917:354;-1:-1:-1;;;;15917:354:0:o;1317:345::-;1403:7;1505:12;1498:5;1490:28;;;;-1:-1:-1;;;1490:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1529:9:0;1541:5;1545:1;1541;:5;:::i;17292:489::-;17444:16;;;17458:1;17444:16;;;;;;;;17420:21;;17444:16;;;;;;;;;;-1:-1:-1;17444:16:0;17420:40;;17489:4;17471;17476:1;17471:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17471:23:0;;;:7;;;;;;;;;:23;17515:4;;;17505:7;;17515:4;;;17505;;17515;17505:7;;;;;;:::i;:::-;-1:-1:-1;;;;;17505:14:0;;;:7;;;;;;;;;:14;17558:6;;:215;;-1:-1:-1;;;17558:215:0;;:6;;;:57;;:215;;17630:11;;17558:6;;17700:4;;17727;;17747:15;;17558:215;;;:::i;16852:432::-;16946:16;;;16960:1;16946:16;;;;;;;;;16922:21;;16946:16;;;;;;;;;;-1:-1:-1;16946:16:0;16922:40;;16991:4;16973;16978:1;16973:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16973:23:0;;;:7;;;;;;;;;:23;17017:4;;;17007:7;;17017:4;;;17007;;17017;17007:7;;;;;;:::i;:::-;;;;;;:14;-1:-1:-1;;;;;17007:14:0;;;-1:-1:-1;;;;;17007:14:0;;;;;17042:5;17032:4;17037:1;17032:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17032:15:0;;;:7;;;;;;;;;:15;17086:6;;:190;;-1:-1:-1;;;17086:190:0;;:6;;;:60;;:190;;17161:11;;17086:6;;17203:4;;17230;;17250:15;;17086:190;;;:::i;923:250::-;981:7;1005:1;1010;1005:6;1001:47;;-1:-1:-1;1035:1:0;1028:8;;1001:47;1060:9;1072:5;1076:1;1072;:5;:::i;:::-;1060:17;-1:-1:-1;1105:1:0;1096:5;1100:1;1060:17;1096:5;:::i;:::-;:10;1088:56;;;;-1:-1:-1;;;1088:56:0;;10577:2:1;1088:56:0;;;10559:21:1;10616:2;10596:18;;;10589:30;10655:34;10635:18;;;10628:62;-1:-1:-1;;;10706:18:1;;;10699:31;10747:19;;1088:56:0;10375:397:1;14:597;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;671:70;616:131;:::o;752:315::-;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1472:247::-;1531:6;1584:2;1572:9;1563:7;1559:23;1555:32;1552:52;;;1600:1;1597;1590:12;1552:52;1639:9;1626:23;1658:31;1683:5;1658:31;:::i;1906:180::-;1965:6;2018:2;2006:9;1997:7;1993:23;1989:32;1986:52;;;2034:1;2031;2024:12;1986:52;-1:-1:-1;2057:23:1;;1906:180;-1:-1:-1;1906:180:1:o;2091:456::-;2168:6;2176;2184;2237:2;2225:9;2216:7;2212:23;2208:32;2205:52;;;2253:1;2250;2243:12;2205:52;2292:9;2279:23;2311:31;2336:5;2311:31;:::i;:::-;2361:5;-1:-1:-1;2418:2:1;2403:18;;2390:32;2431:33;2390:32;2431:33;:::i;:::-;2091:456;;2483:7;;-1:-1:-1;;;2537:2:1;2522:18;;;;2509:32;;2091:456::o;2741:118::-;2827:5;2820:13;2813:21;2806:5;2803:32;2793:60;;2849:1;2846;2839:12;2864:382;2929:6;2937;2990:2;2978:9;2969:7;2965:23;2961:32;2958:52;;;3006:1;3003;2996:12;2958:52;3045:9;3032:23;3064:31;3089:5;3064:31;:::i;:::-;3114:5;-1:-1:-1;3171:2:1;3156:18;;3143:32;3184:30;3143:32;3184:30;:::i;:::-;3233:7;3223:17;;;2864:382;;;;;:::o;3475:388::-;3543:6;3551;3604:2;3592:9;3583:7;3579:23;3575:32;3572:52;;;3620:1;3617;3610:12;3572:52;3659:9;3646:23;3678:31;3703:5;3678:31;:::i;:::-;3728:5;-1:-1:-1;3785:2:1;3770:18;;3757:32;3798:33;3757:32;3798:33;:::i;4354:329::-;4556:2;4538:21;;;4595:1;4575:18;;;4568:29;-1:-1:-1;;;4628:2:1;4613:18;;4606:36;4674:2;4659:18;;4354:329::o;5032:127::-;5093:10;5088:3;5084:20;5081:1;5074:31;5124:4;5121:1;5114:15;5148:4;5145:1;5138:15;5164:168;5204:7;5270:1;5266;5262:6;5258:14;5255:1;5252:21;5247:1;5240:9;5233:17;5229:45;5226:71;;;5277:18;;:::i;:::-;-1:-1:-1;5317:9:1;;5164:168::o;5337:184::-;5407:6;5460:2;5448:9;5439:7;5435:23;5431:32;5428:52;;;5476:1;5473;5466:12;5428:52;-1:-1:-1;5499:16:1;;5337:184;-1:-1:-1;5337:184:1:o;6443:125::-;6483:4;6511:1;6508;6505:8;6502:34;;;6516:18;;:::i;:::-;-1:-1:-1;6553:9:1;;6443:125::o;7599:128::-;7639:3;7670:1;7666:6;7663:1;7660:13;7657:39;;;7676:18;;:::i;:::-;-1:-1:-1;7712:9:1;;7599:128::o;8654:245::-;8721:6;8774:2;8762:9;8753:7;8749:23;8745:32;8742:52;;;8790:1;8787;8780:12;8742:52;8822:9;8816:16;8841:28;8863:5;8841:28;:::i;8904:217::-;8944:1;8970;8960:132;;9014:10;9009:3;9005:20;9002:1;8995:31;9049:4;9046:1;9039:15;9077:4;9074:1;9067:15;8960:132;-1:-1:-1;9106:9:1;;8904:217::o;9258:127::-;9319:10;9314:3;9310:20;9307:1;9300:31;9350:4;9347:1;9340:15;9374:4;9371:1;9364:15;9390:980;9652:4;9700:3;9689:9;9685:19;9731:6;9720:9;9713:25;9757:2;9795:6;9790:2;9779:9;9775:18;9768:34;9838:3;9833:2;9822:9;9818:18;9811:31;9862:6;9897;9891:13;9928:6;9920;9913:22;9966:3;9955:9;9951:19;9944:26;;10005:2;9997:6;9993:15;9979:29;;10026:1;10036:195;10050:6;10047:1;10044:13;10036:195;;;10115:13;;-1:-1:-1;;;;;10111:39:1;10099:52;;10206:15;;;;10171:12;;;;10147:1;10065:9;10036:195;;;-1:-1:-1;;;;;;;10287:32:1;;;;10282:2;10267:18;;10260:60;-1:-1:-1;;;10351:3:1;10336:19;10329:35;10248:3;9390:980;-1:-1:-1;;;9390:980:1:o
Swarm Source
ipfs://d144dcdd54a0edf69ff873c12a2f9788a339223fd9340e0bb85bf7ab9ff676ba
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.