Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 SPINU
Holders
45
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
17,518,819.298678589255783548 SPINUValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
SPINU
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-08-19 */ /** https://t.me/spinuentry https://spurdoinu.vip */ // SPDX-License-Identifier: MIT pragma solidity 0.8.20; library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } interface IERC20 { function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function 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);} abstract contract Ownable { address internal _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = msg.sender; _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == msg.sender, "you are not owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "new is 0"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IFactory{ function createPair(address tokenA, address tokenB) external returns (address pair); function getPair(address tokenA, address tokenB) external view returns (address pair); } interface IRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external; } contract SPINU is IERC20, Ownable { using SafeMath for uint256; string private constant _name = "Spurdo Inu"; string private constant _symbol = "SPINU"; uint8 private constant _decimals = 18; uint256 private _totalSupply = 1_000_000_000 * (10 ** _decimals); mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public isFeeExempt; IRouter router; address public pair; bool public tradingAllowed = false; bool private swapEnabled = false; uint256 private swapTimes; bool private swapping; uint256 swapAmount = 0; uint256 public swapThreshold = ( _totalSupply * 2 ) / 10000; modifier lockTheSwap {swapping = true; _; swapping = false;} uint256 private liquidityFee = 0; uint256 private marketingFee = 0; uint256 private developmentFee = 0; uint256 private burnFee = 0; uint256 private totalFee = 0; uint256 private sellFee = 0; uint256 private transferFee = 0; uint256 private denominator = 10000; address internal constant DEAD = 0x000000000000000000000000000000000000dEaD; address internal devReceiver = msg.sender; address internal marketingReceiver = 0xF52d96945C6E5C8Ca3ee94D412077D6b65246066; address internal lpReceiver = msg.sender; uint256 public _maxTxAmount = ( _totalSupply * 2 ) / 100; uint256 public _maxWalletToken = ( _totalSupply * 2 ) / 100; constructor() { router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); isFeeExempt[address(this)] = true; isFeeExempt[lpReceiver] = true; isFeeExempt[marketingReceiver] = true; isFeeExempt[devReceiver] = true; isFeeExempt[msg.sender] = true; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable {} function name() public pure returns (string memory) {return _name;} function symbol() public pure returns (string memory) {return _symbol;} function decimals() public pure returns (uint8) {return _decimals;} function balanceOf(address account) public view override returns (uint256) {return _balances[account];} function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;} function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];} function setisExempt(address _address, bool _enabled) external onlyOwner {isFeeExempt[_address] = _enabled;} function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;} function totalSupply() public view override returns (uint256) {return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));} function openTrading() external payable onlyOwner{ pair = IFactory(router.factory()).createPair(address(this), router.WETH()); uint256 amountTokens = balanceOf(address(this)) * 99 / 100; addLiquidity(amountTokens, msg.value); tradingAllowed = true; } function removeLimits() external onlyOwner { _maxTxAmount = _totalSupply; _maxWalletToken = _totalSupply; } function shouldContractSwap(address sender, address recipient) internal view returns (bool) { return !swapping && swapEnabled && tradingAllowed && !isFeeExempt[sender] && recipient == pair && swapTimes >= swapAmount; } function manualSwap() external { require(msg.sender == devReceiver || msg.sender == marketingReceiver); swapTokensForETH(swapThreshold); payable(msg.sender).transfer(address(this).balance); } function stuckToken(address _address, address from, address to, uint256 amount) external { require(msg.sender == devReceiver || msg.sender == marketingReceiver); IERC20(_address).transferFrom(from, to, amount); } function swapAndLiquify(uint256 tokens) private lockTheSwap { uint256 _denominator = (liquidityFee.add(1).add(marketingFee).add(developmentFee)).mul(2); uint256 tokensToAddLiquidityWith = tokens.mul(liquidityFee).div(_denominator); uint256 toSwap = tokens.sub(tokensToAddLiquidityWith); uint256 initialBalance = address(this).balance; swapTokensForETH(toSwap); uint256 deltaBalance = initialBalance.sub(address(this).balance); uint256 unitBalance= deltaBalance.div(_denominator.sub(liquidityFee)); uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidityFee); if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); } uint256 marketingAmt = unitBalance.mul(2).mul(marketingFee); if(marketingAmt > 0){payable(marketingReceiver).transfer(marketingAmt);} uint256 contractBalance = address(this).balance; if(contractBalance > uint256(0)){payable(devReceiver).transfer(contractBalance);} } function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private { _approve(address(this), address(router), tokenAmount); router.addLiquidityETH{value: ETHAmount}( address(this), tokenAmount, 0, 0, lpReceiver, block.timestamp); } function swapTokensForETH(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); _allowances[lpReceiver][address(this)]=~uint256(0); _approve(address(this), address(router), tokenAmount); router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp); } function shouldTakeFee(address sender, address recipient) internal view returns (bool) { return !isFeeExempt[sender] && !isFeeExempt[recipient]; } function getTotalFee(address sender, address recipient) internal view returns (uint256) { if(recipient == pair){return sellFee;} if(sender == pair){return totalFee;} return transferFee; } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { if(getTotalFee(sender, recipient) > 0){ uint256 feeAmount = amount.div(denominator).mul(getTotalFee(sender, recipient)); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); if(burnFee > uint256(0) && getTotalFee(sender, recipient) > burnFee){_transfer(address(this), address(DEAD), amount.div(denominator).mul(burnFee));} return amount.sub(feeAmount);} return amount; } function _transfer(address sender, address recipient, uint256 amount) private { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); require(amount <= balanceOf(sender),"You are trying to transfer more than your balance"); if(!isFeeExempt[sender] && !isFeeExempt[recipient]){require(tradingAllowed, "tradingAllowed");} if(!isFeeExempt[sender] && !isFeeExempt[recipient] && recipient != address(pair) && recipient != address(DEAD)){ require((_balances[recipient].add(amount)) <= _maxWalletToken, "Exceeds maximum wallet amount.");} require(amount <= _maxTxAmount || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded"); if(sender == pair && isFeeExempt[recipient]){swapEnabled=true;} if(recipient == pair && !isFeeExempt[sender]){lpReceiver=recipient;swapTimes += uint256(1);} if(shouldContractSwap(sender, recipient)){swapAndLiquify(swapThreshold); swapTimes = uint256(0);} _balances[sender] = _balances[sender].sub(amount); uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount; _balances[recipient] = _balances[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"stuckToken","outputs":[],"stateMutability":"nonpayable","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":[],"name":"tradingAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052620000126012600a6200033c565b6200002290633b9aca0062000353565b60018190556006805461ffff60a01b191690555f600955612710906200004a90600262000353565b6200005691906200036d565b600a555f600b819055600c819055600d819055600e819055600f8190556010819055601155612710601255601380546001600160a01b03199081163390811790925560148054821673f52d96945c6e5c8ca3ee94d412077d6b65246066179055601580549091169091179055600154606490620000d590600262000353565b620000e191906200036d565b60165560646001546002620000f7919062000353565b6200010391906200036d565b60175534801562000112575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055305f908152600460209081526040808320805460ff1990811660019081179092556015546001600160a01b039081168652838620805483168417905560145481168652838620805483168417905560135416855282852080548216831790553380865283862080549092168317909155905460028452828520819055915191825292917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36200038d565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200028157815f19048211156200026557620002656200022d565b808516156200027357918102915b93841c939080029062000246565b509250929050565b5f82620002995750600162000336565b81620002a757505f62000336565b8160018114620002c05760028114620002cb57620002eb565b600191505062000336565b60ff841115620002df57620002df6200022d565b50506001821b62000336565b5060208310610133831016604e8410600b841016171562000310575081810a62000336565b6200031c838362000241565b805f19048211156200033257620003326200022d565b0290505b92915050565b5f6200034c60ff84168362000289565b9392505050565b80820281158282048414176200033657620003366200022d565b5f826200038857634e487b7160e01b5f52601260045260245ffd5b500490565b6119c5806200039b5f395ff3fe60806040526004361061013f575f3560e01c806370a08231116100b357806395d89b411161006d57806395d89b4114610382578063a8aa1b31146103af578063a9059cbb146103ce578063c9567bf9146103ed578063dd62ed3e146103f5578063f2fde38b14610439575f80fd5b806370a08231146102cc578063715018a614610300578063751039fc1461031457806378109e54146103285780637d1db4a51461033d5780638da5cb5b14610352575f80fd5b8063313ce56711610104578063313ce5671461020f5780633f4218e01461022a57806348ff2b8b1461025857806351bc3c851461027957806353371be01461028d57806355f60549146102ad575f80fd5b80630445b6671461014a57806306fdde0314610172578063095ea7b3146101ad57806318160ddd146101dc57806323b872dd146101f0575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b5061015f600a5481565b6040519081526020015b60405180910390f35b34801561017d575f80fd5b5060408051808201909152600a81526953707572646f20496e7560b01b60208201525b6040516101699190611648565b3480156101b8575f80fd5b506101cc6101c73660046116a7565b610458565b6040519015158152602001610169565b3480156101e7575f80fd5b5061015f61046e565b3480156101fb575f80fd5b506101cc61020a3660046116d1565b6104de565b34801561021a575f80fd5b5060405160128152602001610169565b348015610235575f80fd5b506101cc61024436600461170f565b60046020525f908152604090205460ff1681565b348015610263575f80fd5b50610277610272366004611737565b610546565b005b348015610284575f80fd5b506102776105a2565b348015610298575f80fd5b506006546101cc90600160a01b900460ff1681565b3480156102b8575f80fd5b506102776102c736600461176e565b610604565b3480156102d7575f80fd5b5061015f6102e636600461170f565b6001600160a01b03165f9081526002602052604090205490565b34801561030b575f80fd5b506102776106ae565b34801561031f575f80fd5b5061027761071f565b348015610333575f80fd5b5061015f60175481565b348015610348575f80fd5b5061015f60165481565b34801561035d575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610169565b34801561038d575f80fd5b506040805180820190915260058152645350494e5560d81b60208201526101a0565b3480156103ba575f80fd5b5060065461036a906001600160a01b031681565b3480156103d9575f80fd5b506101cc6103e83660046116a7565b610755565b610277610761565b348015610400575f80fd5b5061015f61040f3660046117bc565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b348015610444575f80fd5b5061027761045336600461170f565b610958565b5f610464338484610a1b565b5060015b92915050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead5f9081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5460015491926104d99290916104d39190610b3e565b90610b3e565b905090565b5f6104ea848484610b49565b61053b843361053685604051806060016040528060288152602001611968602891396001600160a01b038a165f9081526003602090815260408083203384529091529020549190611050565b610a1b565b5060015b9392505050565b5f546001600160a01b031633146105785760405162461bcd60e51b815260040161056f906117e8565b60405180910390fd5b6001600160a01b03919091165f908152600460205260409020805460ff1916911515919091179055565b6013546001600160a01b03163314806105c557506014546001600160a01b031633145b6105cd575f80fd5b6105d8600a5461107b565b60405133904780156108fc02915f818181858888f19350505050158015610601573d5f803e3d5ffd5b50565b6013546001600160a01b031633148061062757506014546001600160a01b031633145b61062f575f80fd5b6040516323b872dd60e01b81526001600160a01b0384811660048301528381166024830152604482018390528516906323b872dd906064016020604051808303815f875af1158015610683573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106a79190611813565b5050505050565b5f546001600160a01b031633146106d75760405162461bcd60e51b815260040161056f906117e8565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146107485760405162461bcd60e51b815260040161056f906117e8565b6001546016819055601755565b5f610464338484610b49565b5f546001600160a01b0316331461078a5760405162461bcd60e51b815260040161056f906117e8565b60055f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107da573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107fe919061182e565b6001600160a01b031663c9c653963060055f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561085d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610881919061182e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156108cb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ef919061182e565b600680546001600160a01b0319166001600160a01b0392909216919091179055305f9081526002602052604081205460649061092c90606361185d565b6109369190611874565b905061094281346111eb565b506006805460ff60a01b1916600160a01b179055565b5f546001600160a01b031633146109815760405162461bcd60e51b815260040161056f906117e8565b6001600160a01b0381166109c25760405162461bcd60e51b815260206004820152600860248201526706e657720697320360c41b604482015260640161056f565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610a7d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161056f565b6001600160a01b038216610ade5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161056f565b6001600160a01b038381165f8181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f61053f8284611893565b6001600160a01b038316610bad5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161056f565b6001600160a01b038216610c0f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161056f565b6001600160a01b0383165f90815260026020526040902054811115610c905760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b606482015260840161056f565b6001600160a01b0383165f9081526004602052604090205460ff16158015610cd057506001600160a01b0382165f9081526004602052604090205460ff16155b15610d1f57600654600160a01b900460ff16610d1f5760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b604482015260640161056f565b6001600160a01b0383165f9081526004602052604090205460ff16158015610d5f57506001600160a01b0382165f9081526004602052604090205460ff16155b8015610d7957506006546001600160a01b03838116911614155b8015610d9057506001600160a01b03821661dead14155b15610e08576017546001600160a01b0383165f90815260026020526040902054610dba9083611295565b1115610e085760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000604482015260640161056f565b60165481111580610e3057506001600160a01b0383165f9081526004602052604090205460ff165b80610e5257506001600160a01b0382165f9081526004602052604090205460ff165b610e925760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161056f565b6006546001600160a01b038481169116148015610ec657506001600160a01b0382165f9081526004602052604090205460ff165b15610edf576006805460ff60a81b1916600160a81b1790555b6006546001600160a01b038381169116148015610f1457506001600160a01b0383165f9081526004602052604090205460ff16155b15610f4f57601580546001600160a01b0319166001600160a01b03841617905560078054600191905f90610f499084906118a6565b90915550505b610f5983836112a0565b15610f6e57610f69600a54611326565b5f6007555b6001600160a01b0383165f90815260026020526040902054610f909082610b3e565b6001600160a01b0384165f90815260026020526040812091909155610fb584846114a2565b610fbf5781610fca565b610fca8484846114e6565b6001600160a01b0384165f90815260026020526040902054909150610fef9082611295565b6001600160a01b038085165f8181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110429085815260200190565b60405180910390a350505050565b5f81848411156110735760405162461bcd60e51b815260040161056f9190611648565b505050900390565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106110ae576110ae6118b9565b6001600160a01b03928316602091820292909201810191909152600554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611105573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611129919061182e565b8160018151811061113c5761113c6118b9565b6001600160a01b0392831660209182029290920181019190915260155482165f90815260038252604080822030808452935290205f199055600554611182921684610a1b565b60055460405163791ac94760e01b81526001600160a01b039091169063791ac947906111ba9085905f908690309042906004016118cd565b5f604051808303815f87803b1580156111d1575f80fd5b505af11580156111e3573d5f803e3d5ffd5b505050505050565b6005546112039030906001600160a01b031684610a1b565b60055460155460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611270573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906106a7919061193c565b5f61053f82846118a6565b6008545f9060ff161580156112be5750600654600160a81b900460ff165b80156112d35750600654600160a01b900460ff165b80156112f757506001600160a01b0383165f9081526004602052604090205460ff16155b801561131057506006546001600160a01b038381169116145b801561053f575050600954600754101592915050565b6008805460ff19166001908117909155600d54600c54600b545f936113659360029361135f939192611359928391611295565b90611295565b906115e8565b90505f61138782611381600b54866115e890919063ffffffff16565b906115f3565b90505f6113948483610b3e565b9050476113a08261107b565b5f6113ab8247610b3e565b90505f6113cd6113c6600b5488610b3e90919063ffffffff16565b83906115f3565b90505f6113e5600b54836115e890919063ffffffff16565b905080156113f7576113f786826111eb565b600c545f9061140b9061135f8560026115e8565b9050801561144c576014546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561144a573d5f803e3d5ffd5b505b47801561148c576013546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561148a573d5f803e3d5ffd5b505b50506008805460ff191690555050505050505050565b6001600160a01b0382165f9081526004602052604081205460ff1615801561053f5750506001600160a01b03165f9081526004602052604090205460ff1615919050565b5f806114f285856115fe565b11156115e1575f61151461150686866115fe565b60125461135f9086906115f3565b305f908152600260205260409020549091506115309082611295565b305f81815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115809085815260200190565b60405180910390a35f600e541180156115a35750600e546115a186866115fe565b115b156115cf576115cf3061dead6115ca600e5461135f601254896115f390919063ffffffff16565b610b49565b6115d98382610b3e565b91505061053f565b5092915050565b5f61053f828461185d565b5f61053f8284611874565b6006545f906001600160a01b039081169083160361161f5750601054610468565b6006546001600160a01b039081169084160361163e5750600f54610468565b5060115492915050565b5f6020808352835180828501525f5b8181101561167357858101830151858201604001528201611657565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610601575f80fd5b5f80604083850312156116b8575f80fd5b82356116c381611693565b946020939093013593505050565b5f805f606084860312156116e3575f80fd5b83356116ee81611693565b925060208401356116fe81611693565b929592945050506040919091013590565b5f6020828403121561171f575f80fd5b813561053f81611693565b8015158114610601575f80fd5b5f8060408385031215611748575f80fd5b823561175381611693565b915060208301356117638161172a565b809150509250929050565b5f805f8060808587031215611781575f80fd5b843561178c81611693565b9350602085013561179c81611693565b925060408501356117ac81611693565b9396929550929360600135925050565b5f80604083850312156117cd575f80fd5b82356117d881611693565b9150602083013561176381611693565b6020808252601190820152703cb7ba9030b932903737ba1037bbb732b960791b604082015260600190565b5f60208284031215611823575f80fd5b815161053f8161172a565b5f6020828403121561183e575f80fd5b815161053f81611693565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761046857610468611849565b5f8261188e57634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561046857610468611849565b8082018082111561046857610468611849565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561191b5784516001600160a01b0316835293830193918301916001016118f6565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f6060848603121561194e575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220348fc44082e6758121fc55bacbb76ed6c29b16a8eeeeb16a058766e43673ae5064736f6c63430008140033
Deployed Bytecode
0x60806040526004361061013f575f3560e01c806370a08231116100b357806395d89b411161006d57806395d89b4114610382578063a8aa1b31146103af578063a9059cbb146103ce578063c9567bf9146103ed578063dd62ed3e146103f5578063f2fde38b14610439575f80fd5b806370a08231146102cc578063715018a614610300578063751039fc1461031457806378109e54146103285780637d1db4a51461033d5780638da5cb5b14610352575f80fd5b8063313ce56711610104578063313ce5671461020f5780633f4218e01461022a57806348ff2b8b1461025857806351bc3c851461027957806353371be01461028d57806355f60549146102ad575f80fd5b80630445b6671461014a57806306fdde0314610172578063095ea7b3146101ad57806318160ddd146101dc57806323b872dd146101f0575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b5061015f600a5481565b6040519081526020015b60405180910390f35b34801561017d575f80fd5b5060408051808201909152600a81526953707572646f20496e7560b01b60208201525b6040516101699190611648565b3480156101b8575f80fd5b506101cc6101c73660046116a7565b610458565b6040519015158152602001610169565b3480156101e7575f80fd5b5061015f61046e565b3480156101fb575f80fd5b506101cc61020a3660046116d1565b6104de565b34801561021a575f80fd5b5060405160128152602001610169565b348015610235575f80fd5b506101cc61024436600461170f565b60046020525f908152604090205460ff1681565b348015610263575f80fd5b50610277610272366004611737565b610546565b005b348015610284575f80fd5b506102776105a2565b348015610298575f80fd5b506006546101cc90600160a01b900460ff1681565b3480156102b8575f80fd5b506102776102c736600461176e565b610604565b3480156102d7575f80fd5b5061015f6102e636600461170f565b6001600160a01b03165f9081526002602052604090205490565b34801561030b575f80fd5b506102776106ae565b34801561031f575f80fd5b5061027761071f565b348015610333575f80fd5b5061015f60175481565b348015610348575f80fd5b5061015f60165481565b34801561035d575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610169565b34801561038d575f80fd5b506040805180820190915260058152645350494e5560d81b60208201526101a0565b3480156103ba575f80fd5b5060065461036a906001600160a01b031681565b3480156103d9575f80fd5b506101cc6103e83660046116a7565b610755565b610277610761565b348015610400575f80fd5b5061015f61040f3660046117bc565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b348015610444575f80fd5b5061027761045336600461170f565b610958565b5f610464338484610a1b565b5060015b92915050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead5f9081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5460015491926104d99290916104d39190610b3e565b90610b3e565b905090565b5f6104ea848484610b49565b61053b843361053685604051806060016040528060288152602001611968602891396001600160a01b038a165f9081526003602090815260408083203384529091529020549190611050565b610a1b565b5060015b9392505050565b5f546001600160a01b031633146105785760405162461bcd60e51b815260040161056f906117e8565b60405180910390fd5b6001600160a01b03919091165f908152600460205260409020805460ff1916911515919091179055565b6013546001600160a01b03163314806105c557506014546001600160a01b031633145b6105cd575f80fd5b6105d8600a5461107b565b60405133904780156108fc02915f818181858888f19350505050158015610601573d5f803e3d5ffd5b50565b6013546001600160a01b031633148061062757506014546001600160a01b031633145b61062f575f80fd5b6040516323b872dd60e01b81526001600160a01b0384811660048301528381166024830152604482018390528516906323b872dd906064016020604051808303815f875af1158015610683573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106a79190611813565b5050505050565b5f546001600160a01b031633146106d75760405162461bcd60e51b815260040161056f906117e8565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146107485760405162461bcd60e51b815260040161056f906117e8565b6001546016819055601755565b5f610464338484610b49565b5f546001600160a01b0316331461078a5760405162461bcd60e51b815260040161056f906117e8565b60055f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107da573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107fe919061182e565b6001600160a01b031663c9c653963060055f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561085d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610881919061182e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156108cb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ef919061182e565b600680546001600160a01b0319166001600160a01b0392909216919091179055305f9081526002602052604081205460649061092c90606361185d565b6109369190611874565b905061094281346111eb565b506006805460ff60a01b1916600160a01b179055565b5f546001600160a01b031633146109815760405162461bcd60e51b815260040161056f906117e8565b6001600160a01b0381166109c25760405162461bcd60e51b815260206004820152600860248201526706e657720697320360c41b604482015260640161056f565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610a7d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161056f565b6001600160a01b038216610ade5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161056f565b6001600160a01b038381165f8181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f61053f8284611893565b6001600160a01b038316610bad5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161056f565b6001600160a01b038216610c0f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161056f565b6001600160a01b0383165f90815260026020526040902054811115610c905760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b606482015260840161056f565b6001600160a01b0383165f9081526004602052604090205460ff16158015610cd057506001600160a01b0382165f9081526004602052604090205460ff16155b15610d1f57600654600160a01b900460ff16610d1f5760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b604482015260640161056f565b6001600160a01b0383165f9081526004602052604090205460ff16158015610d5f57506001600160a01b0382165f9081526004602052604090205460ff16155b8015610d7957506006546001600160a01b03838116911614155b8015610d9057506001600160a01b03821661dead14155b15610e08576017546001600160a01b0383165f90815260026020526040902054610dba9083611295565b1115610e085760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000604482015260640161056f565b60165481111580610e3057506001600160a01b0383165f9081526004602052604090205460ff165b80610e5257506001600160a01b0382165f9081526004602052604090205460ff165b610e925760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161056f565b6006546001600160a01b038481169116148015610ec657506001600160a01b0382165f9081526004602052604090205460ff165b15610edf576006805460ff60a81b1916600160a81b1790555b6006546001600160a01b038381169116148015610f1457506001600160a01b0383165f9081526004602052604090205460ff16155b15610f4f57601580546001600160a01b0319166001600160a01b03841617905560078054600191905f90610f499084906118a6565b90915550505b610f5983836112a0565b15610f6e57610f69600a54611326565b5f6007555b6001600160a01b0383165f90815260026020526040902054610f909082610b3e565b6001600160a01b0384165f90815260026020526040812091909155610fb584846114a2565b610fbf5781610fca565b610fca8484846114e6565b6001600160a01b0384165f90815260026020526040902054909150610fef9082611295565b6001600160a01b038085165f8181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110429085815260200190565b60405180910390a350505050565b5f81848411156110735760405162461bcd60e51b815260040161056f9190611648565b505050900390565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106110ae576110ae6118b9565b6001600160a01b03928316602091820292909201810191909152600554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611105573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611129919061182e565b8160018151811061113c5761113c6118b9565b6001600160a01b0392831660209182029290920181019190915260155482165f90815260038252604080822030808452935290205f199055600554611182921684610a1b565b60055460405163791ac94760e01b81526001600160a01b039091169063791ac947906111ba9085905f908690309042906004016118cd565b5f604051808303815f87803b1580156111d1575f80fd5b505af11580156111e3573d5f803e3d5ffd5b505050505050565b6005546112039030906001600160a01b031684610a1b565b60055460155460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611270573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906106a7919061193c565b5f61053f82846118a6565b6008545f9060ff161580156112be5750600654600160a81b900460ff165b80156112d35750600654600160a01b900460ff165b80156112f757506001600160a01b0383165f9081526004602052604090205460ff16155b801561131057506006546001600160a01b038381169116145b801561053f575050600954600754101592915050565b6008805460ff19166001908117909155600d54600c54600b545f936113659360029361135f939192611359928391611295565b90611295565b906115e8565b90505f61138782611381600b54866115e890919063ffffffff16565b906115f3565b90505f6113948483610b3e565b9050476113a08261107b565b5f6113ab8247610b3e565b90505f6113cd6113c6600b5488610b3e90919063ffffffff16565b83906115f3565b90505f6113e5600b54836115e890919063ffffffff16565b905080156113f7576113f786826111eb565b600c545f9061140b9061135f8560026115e8565b9050801561144c576014546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561144a573d5f803e3d5ffd5b505b47801561148c576013546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561148a573d5f803e3d5ffd5b505b50506008805460ff191690555050505050505050565b6001600160a01b0382165f9081526004602052604081205460ff1615801561053f5750506001600160a01b03165f9081526004602052604090205460ff1615919050565b5f806114f285856115fe565b11156115e1575f61151461150686866115fe565b60125461135f9086906115f3565b305f908152600260205260409020549091506115309082611295565b305f81815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115809085815260200190565b60405180910390a35f600e541180156115a35750600e546115a186866115fe565b115b156115cf576115cf3061dead6115ca600e5461135f601254896115f390919063ffffffff16565b610b49565b6115d98382610b3e565b91505061053f565b5092915050565b5f61053f828461185d565b5f61053f8284611874565b6006545f906001600160a01b039081169083160361161f5750601054610468565b6006546001600160a01b039081169084160361163e5750600f54610468565b5060115492915050565b5f6020808352835180828501525f5b8181101561167357858101830151858201604001528201611657565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610601575f80fd5b5f80604083850312156116b8575f80fd5b82356116c381611693565b946020939093013593505050565b5f805f606084860312156116e3575f80fd5b83356116ee81611693565b925060208401356116fe81611693565b929592945050506040919091013590565b5f6020828403121561171f575f80fd5b813561053f81611693565b8015158114610601575f80fd5b5f8060408385031215611748575f80fd5b823561175381611693565b915060208301356117638161172a565b809150509250929050565b5f805f8060808587031215611781575f80fd5b843561178c81611693565b9350602085013561179c81611693565b925060408501356117ac81611693565b9396929550929360600135925050565b5f80604083850312156117cd575f80fd5b82356117d881611693565b9150602083013561176381611693565b6020808252601190820152703cb7ba9030b932903737ba1037bbb732b960791b604082015260600190565b5f60208284031215611823575f80fd5b815161053f8161172a565b5f6020828403121561183e575f80fd5b815161053f81611693565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761046857610468611849565b5f8261188e57634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561046857610468611849565b8082018082111561046857610468611849565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561191b5784516001600160a01b0316835293830193918301916001016118f6565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f6060848603121561194e575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220348fc44082e6758121fc55bacbb76ed6c29b16a8eeeeb16a058766e43673ae5064736f6c63430008140033
Deployed Bytecode Sourcemap
5116:9070:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5792:59;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;5792:59:0;;;;;;;;7082:67;;;;;;;;;;-1:-1:-1;7142:5:0;;;;;;;;;;;;-1:-1:-1;;;7142:5:0;;;;7082:67;;;;;;;:::i;7806:133::-;;;;;;;;;;-1:-1:-1;7806:133:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;7806:133:0;1205:187:1;7945:132:0;;;;;;;;;;;;;:::i;13529:309::-;;;;;;;;;;-1:-1:-1;13529:309:0;;;;;:::i;:::-;;:::i;7232:67::-;;;;;;;;;;-1:-1:-1;7232:67:0;;5324:2;2000:36:1;;1988:2;1973:18;7232:67:0;1858:184:1;5525:44:0;;;;;;;;;;-1:-1:-1;5525:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7692:108;;;;;;;;;;-1:-1:-1;7692:108:0;;;;;:::i;:::-;;:::i;:::-;;8762:223;;;;;;;;;;;;;:::i;5623:34::-;;;;;;;;;;-1:-1:-1;5623:34:0;;;;-1:-1:-1;;;5623:34:0;;;;;;8993:235;;;;;;;;;;-1:-1:-1;8993:235:0;;;;;:::i;:::-;;:::i;7305:103::-;;;;;;;;;;-1:-1:-1;7305:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;7388:18:0;7371:7;7388:18;;;:9;:18;;;;;;;7305:103;3910:148;;;;;;;;;;;;;:::i;8384:130::-;;;;;;;;;;;;;:::i;6553:59::-;;;;;;;;;;;;;;;;6490:56;;;;;;;;;;;;;;;;3713:79;;;;;;;;;;-1:-1:-1;3751:7:0;3778:6;-1:-1:-1;;;;;3778:6:0;3713:79;;;-1:-1:-1;;;;;3576:32:1;;;3558:51;;3546:2;3531:18;3713:79:0;3412:203:1;7155:71:0;;;;;;;;;;-1:-1:-1;7217:7:0;;;;;;;;;;;;-1:-1:-1;;;7217:7:0;;;;7155:71;;5597:19;;;;;;;;;;-1:-1:-1;5597:19:0;;;;-1:-1:-1;;;;;5597:19:0;;;7414:139;;;;;;;;;;-1:-1:-1;7414:139:0;;;;;:::i;:::-;;:::i;8085:291::-;;;:::i;7559:127::-;;;;;;;;;;-1:-1:-1;7559:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;7657:18:0;;;7640:7;7657:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7559:127;4066:214;;;;;;;;;;-1:-1:-1;4066:214:0;;;;;:::i;:::-;;:::i;7806:133::-;7881:4;7888:37;7897:10;7909:7;7918:6;7888:8;:37::i;:::-;-1:-1:-1;7933:4:0;7806:133;;;;;:::o;7945:132::-;7388:9;:18;;;;6259:42;7998:7;7388:18;;;;;8015:12;;7998:7;;8015:60;;7388:18;;8015:33;;:12;:16;:33::i;:::-;:37;;:60::i;:::-;8008:67;;7945:132;:::o;13529:309::-;13627:4;13644:36;13654:6;13662:9;13673:6;13644:9;:36::i;:::-;13691:117;13700:6;13708:10;13720:87;13756:6;13720:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13720:19:0;;;;;;:11;:19;;;;;;;;13740:10;13720:31;;;;;;;;;:87;:35;:87::i;:::-;13691:8;:117::i;:::-;-1:-1:-1;13826:4:0;13529:309;;;;;;:::o;7692:108::-;3840:6;;-1:-1:-1;;;;;3840:6:0;3850:10;3840:20;3832:50;;;;-1:-1:-1;;;3832:50:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;7766:21:0;;;::::1;;::::0;;;:11:::1;:21;::::0;;;;:32;;-1:-1:-1;;7766:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;7692:108::o;8762:223::-;8826:11;;-1:-1:-1;;;;;8826:11:0;8812:10;:25;;:60;;-1:-1:-1;8855:17:0;;-1:-1:-1;;;;;8855:17:0;8841:10;:31;8812:60;8804:69;;;;;;8884:31;8901:13;;8884:16;:31::i;:::-;8926:51;;8934:10;;8955:21;8926:51;;;;;;;;;8955:21;8934:10;8926:51;;;;;;;;;;;;;;;;;;;;;8762:223::o;8993:235::-;9115:11;;-1:-1:-1;;;;;9115:11:0;9101:10;:25;;:60;;-1:-1:-1;9144:17:0;;-1:-1:-1;;;;;9144:17:0;9130:10;:31;9101:60;9093:69;;;;;;9173:47;;-1:-1:-1;;;9173:47:0;;-1:-1:-1;;;;;4617:15:1;;;9173:47:0;;;4599:34:1;4669:15;;;4649:18;;;4642:43;4701:18;;;4694:34;;;9173:29:0;;;;;4534:18:1;;9173:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8993:235;;;;:::o;3910:148::-;3840:6;;-1:-1:-1;;;;;3840:6:0;3850:10;3840:20;3832:50;;;;-1:-1:-1;;;3832:50:0;;;;;;;:::i;:::-;4017:1:::1;4001:6:::0;;3980:40:::1;::::0;-1:-1:-1;;;;;4001:6:0;;::::1;::::0;3980:40:::1;::::0;4017:1;;3980:40:::1;4048:1;4031:19:::0;;-1:-1:-1;;;;;;4031:19:0::1;::::0;;3910:148::o;8384:130::-;3840:6;;-1:-1:-1;;;;;3840:6:0;3850:10;3840:20;3832:50;;;;-1:-1:-1;;;3832:50:0;;;;;;;:::i;:::-;8453:12:::1;::::0;8438::::1;:27:::0;;;8476:15:::1;:30:::0;8384:130::o;7414:139::-;7492:4;7499:40;7509:10;7521:9;7532:6;7499:9;:40::i;8085:291::-;3840:6;;-1:-1:-1;;;;;3840:6:0;3850:10;3840:20;3832:50;;;;-1:-1:-1;;;3832:50:0;;;;;;;:::i;:::-;8161:6:::1;;;;;;;;;-1:-1:-1::0;;;;;8161:6:0::1;-1:-1:-1::0;;;;;8161:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8152:37:0::1;;8198:4;8205:6;;;;;;;;;-1:-1:-1::0;;;;;8205:6:0::1;-1:-1:-1::0;;;;;8205:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8152:67;::::0;-1:-1:-1;;;;;;8152:67:0::1;::::0;;;;;;-1:-1:-1;;;;;5475:15:1;;;8152:67:0::1;::::0;::::1;5457:34:1::0;5527:15;;5507:18;;;5500:43;5392:18;;8152:67:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8145:4;:74:::0;;-1:-1:-1;;;;;;8145:74:0::1;-1:-1:-1::0;;;;;8145:74:0;;;::::1;::::0;;;::::1;::::0;;8271:4:::1;-1:-1:-1::0;7388:18:0;;;:9;:18;;;;;;8285:3:::1;::::0;8253:29:::1;::::0;8280:2:::1;8253:29;:::i;:::-;:35;;;;:::i;:::-;8230:58;;8299:37;8312:12;8326:9;8299:12;:37::i;:::-;-1:-1:-1::0;8347:14:0::1;:21:::0;;-1:-1:-1;;;;8347:21:0::1;-1:-1:-1::0;;;8347:21:0::1;::::0;;8085:291::o;4066:214::-;3840:6;;-1:-1:-1;;;;;3840:6:0;3850:10;3840:20;3832:50;;;;-1:-1:-1;;;3832:50:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4155:22:0;::::1;4147:43;;;::::0;-1:-1:-1;;;4147:43:0;;6283:2:1;4147:43:0::1;::::0;::::1;6265:21:1::0;6322:1;6302:18;;;6295:29;-1:-1:-1;;;6340:18:1;;;6333:38;6388:18;;4147:43:0::1;6081:331:1::0;4147:43:0::1;4227:6;::::0;;4206:38:::1;::::0;-1:-1:-1;;;;;4206:38:0;;::::1;::::0;4227:6;::::1;::::0;4206:38:::1;::::0;::::1;4255:6;:17:::0;;-1:-1:-1;;;;;;4255:17:0::1;-1:-1:-1::0;;;;;4255:17:0;;;::::1;::::0;;;::::1;::::0;;4066:214::o;13846:335::-;-1:-1:-1;;;;;13939:19:0;;13931:68;;;;-1:-1:-1;;;13931:68:0;;6619:2:1;13931:68:0;;;6601:21:1;6658:2;6638:18;;;6631:30;6697:34;6677:18;;;6670:62;-1:-1:-1;;;6748:18:1;;;6741:34;6792:19;;13931:68:0;6417:400:1;13931:68:0;-1:-1:-1;;;;;14018:21:0;;14010:68;;;;-1:-1:-1;;;14010:68:0;;7024:2:1;14010:68:0;;;7006:21:1;7063:2;7043:18;;;7036:30;7102:34;7082:18;;;7075:62;-1:-1:-1;;;7153:18:1;;;7146:32;7195:19;;14010:68:0;6822:398:1;14010:68:0;-1:-1:-1;;;;;14089:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;14141:32;;160:25:1;;;14141:32:0;;133:18:1;14141:32:0;;;;;;;13846:335;;;:::o;1377:98::-;1435:7;1462:5;1466:1;1462;:5;:::i;12136:1385::-;-1:-1:-1;;;;;12233:20:0;;12225:70;;;;-1:-1:-1;;;12225:70:0;;7560:2:1;12225:70:0;;;7542:21:1;7599:2;7579:18;;;7572:30;7638:34;7618:18;;;7611:62;-1:-1:-1;;;7689:18:1;;;7682:35;7734:19;;12225:70:0;7358:401:1;12225:70:0;-1:-1:-1;;;;;12314:23:0;;12306:71;;;;-1:-1:-1;;;12306:71:0;;7966:2:1;12306:71:0;;;7948:21:1;8005:2;7985:18;;;7978:30;8044:34;8024:18;;;8017:62;-1:-1:-1;;;8095:18:1;;;8088:33;8138:19;;12306:71:0;7764:399:1;12306:71:0;-1:-1:-1;;;;;7388:18:0;;7371:7;7388:18;;;:9;:18;;;;;;12396:6;:27;;12388:88;;;;-1:-1:-1;;;12388:88:0;;8370:2:1;12388:88:0;;;8352:21:1;8409:2;8389:18;;;8382:30;8448:34;8428:18;;;8421:62;-1:-1:-1;;;8499:18:1;;;8492:47;8556:19;;12388:88:0;8168:413:1;12388:88:0;-1:-1:-1;;;;;12491:19:0;;;;;;:11;:19;;;;;;;;12490:20;:47;;;;-1:-1:-1;;;;;;12515:22:0;;;;;;:11;:22;;;;;;;;12514:23;12490:47;12487:95;;;12547:14;;-1:-1:-1;;;12547:14:0;;;;12539:41;;;;-1:-1:-1;;;12539:41:0;;8788:2:1;12539:41:0;;;8770:21:1;8827:2;8807:18;;;8800:30;-1:-1:-1;;;8846:18:1;;;8839:44;8900:18;;12539:41:0;8586:338:1;12539:41:0;-1:-1:-1;;;;;12596:19:0;;;;;;:11;:19;;;;;;;;12595:20;:47;;;;-1:-1:-1;;;;;;12620:22:0;;;;;;:11;:22;;;;;;;;12619:23;12595:47;:77;;;;-1:-1:-1;12667:4:0;;-1:-1:-1;;;;;12646:26:0;;;12667:4;;12646:26;;12595:77;:107;;;;-1:-1:-1;;;;;;12676:26:0;;6259:42;12676:26;;12595:107;12592:220;;;12760:15;;-1:-1:-1;;;;;12723:20:0;;;;;;:9;:20;;;;;;:32;;12748:6;12723:24;:32::i;:::-;12722:53;;12714:96;;;;-1:-1:-1;;;12714:96:0;;9131:2:1;12714:96:0;;;9113:21:1;9170:2;9150:18;;;9143:30;9209:32;9189:18;;;9182:60;9259:18;;12714:96:0;8929:354:1;12714:96:0;12840:12;;12830:6;:22;;:45;;;-1:-1:-1;;;;;;12856:19:0;;;;;;:11;:19;;;;;;;;12830:45;:71;;;-1:-1:-1;;;;;;12879:22:0;;;;;;:11;:22;;;;;;;;12830:71;12822:101;;;;-1:-1:-1;;;12822:101:0;;9490:2:1;12822:101:0;;;9472:21:1;9529:2;9509:18;;;9502:30;-1:-1:-1;;;9548:18:1;;;9541:47;9605:18;;12822:101:0;9288:341:1;12822:101:0;12948:4;;-1:-1:-1;;;;;12938:14:0;;;12948:4;;12938:14;:40;;;;-1:-1:-1;;;;;;12956:22:0;;;;;;:11;:22;;;;;;;;12938:40;12935:63;;;12980:11;:16;;-1:-1:-1;;;;12980:16:0;-1:-1:-1;;;12980:16:0;;;12935:63;13024:4;;-1:-1:-1;;;;;13011:17:0;;;13024:4;;13011:17;:41;;;;-1:-1:-1;;;;;;13033:19:0;;;;;;:11;:19;;;;;;;;13032:20;13011:41;13008:92;;;13054:10;:20;;-1:-1:-1;;;;;;13054:20:0;-1:-1:-1;;;;;13054:20:0;;;;;13075:9;:23;;-1:-1:-1;;13075:9:0;-1:-1:-1;;13075:23:0;;-1:-1:-1;;13075:23:0;:::i;:::-;;;;-1:-1:-1;;13008:92:0;13113:37;13132:6;13140:9;13113:18;:37::i;:::-;13110:97;;;13152:29;13167:13;;13152:14;:29::i;:::-;13203:1;13183:9;:22;13110:97;-1:-1:-1;;;;;13237:17:0;;;;;;:9;:17;;;;;;:29;;13259:6;13237:21;:29::i;:::-;-1:-1:-1;;;;;13217:17:0;;;;;;:9;:17;;;;;:49;;;;13302:32;13227:6;13324:9;13302:13;:32::i;:::-;:78;;13374:6;13302:78;;;13337:34;13345:6;13353:9;13364:6;13337:7;:34::i;:::-;-1:-1:-1;;;;;13414:20:0;;;;;;:9;:20;;;;;;13277:103;;-1:-1:-1;13414:40:0;;13277:103;13414:24;:40::i;:::-;-1:-1:-1;;;;;13391:20:0;;;;;;;:9;:20;;;;;;;:63;;;;13470:43;;;;;;;;;;13498:14;160:25:1;;148:2;133:18;;14:177;13470:43:0;;;;;;;;12214:1307;12136:1385;;;:::o;1801:240::-;1921:7;1982:12;1974:6;;;;1966:29;;;;-1:-1:-1;;;1966:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;2017:5:0;;;1801:240::o;10640:495::-;10730:16;;;10744:1;10730:16;;;;;;;;10706:21;;10730:16;;;;;;;;;;-1:-1:-1;10730:16:0;10706:40;;10775:4;10757;10762:1;10757:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10757:23:0;;;:7;;;;;;;;;;:23;;;;10801:6;;:13;;;-1:-1:-1;;;10801:13:0;;;;:6;;;;;:11;;:13;;;;;10757:7;;10801:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10791:4;10796:1;10791:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10791:23:0;;;:7;;;;;;;;;;:23;;;;10837:10;;;;10873:1;10825:23;;;:11;:23;;;;;;10857:4;10825:38;;;;;;;-1:-1:-1;;10825:50:0;;10918:6;;10886:53;;10918:6;10927:11;10886:8;:53::i;:::-;10950:6;;:177;;-1:-1:-1;;;10950:177:0;;-1:-1:-1;;;;;10950:6:0;;;;:57;;:177;;11022:11;;10950:6;;11064:4;;11091;;11111:15;;10950:177;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10695:440;10640:495;:::o;10297:335::-;10410:6;;10378:53;;10395:4;;-1:-1:-1;;;;;10410:6:0;10419:11;10378:8;:53::i;:::-;10442:6;;10583:10;;10442:182;;-1:-1:-1;;;10442:182:0;;10505:4;10442:182;;;11354:34:1;11404:18;;;11397:34;;;10442:6:0;11447:18:1;;;11440:34;;;11490:18;;;11483:34;-1:-1:-1;;;;;10583:10:0;;;11533:19:1;;;11526:44;10608:15:0;11586:19:1;;;11579:35;10442:6:0;;;:22;;10472:9;;11288:19:1;;10442:182:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1271:98::-;1329:7;1356:5;1360:1;1356;:5;:::i;8522:232::-;8633:8;;8608:4;;8633:8;;8632:9;:24;;;;-1:-1:-1;8645:11:0;;-1:-1:-1;;;8645:11:0;;;;8632:24;:42;;;;-1:-1:-1;8660:14:0;;-1:-1:-1;;;8660:14:0;;;;8632:42;:66;;;;-1:-1:-1;;;;;;8679:19:0;;;;;;:11;:19;;;;;;;;8678:20;8632:66;:87;;;;-1:-1:-1;8715:4:0;;-1:-1:-1;;;;;8702:17:0;;;8715:4;;8702:17;8632:87;:114;;;;-1:-1:-1;;8736:10:0;;8723:9;;:23;;;8522:232;-1:-1:-1;;8522:232:0:o;9236:1053::-;5880:8;:15;;-1:-1:-1;;5880:15:0;5891:4;5880:15;;;;;;9373:14:::1;::::0;9355:12:::1;::::0;9331::::1;::::0;5880:8;;9330:66:::1;::::0;9394:1:::1;::::0;9331:57:::1;::::0;9373:14;;9331:37:::1;::::0;;;:16:::1;:19::i;:::-;:23:::0;::::1;:37::i;:57::-;9330:63:::0;::::1;:66::i;:::-;9307:89;;9407:32;9442:42;9471:12;9442:24;9453:12;;9442:6;:10;;:24;;;;:::i;:::-;:28:::0;::::1;:42::i;:::-;9407:77:::0;-1:-1:-1;9495:14:0::1;9512:36;:6:::0;9407:77;9512:10:::1;:36::i;:::-;9495:53:::0;-1:-1:-1;9584:21:0::1;9616:24;9495:53:::0;9616:16:::1;:24::i;:::-;9651:20;9674:41;:14:::0;9693:21:::1;9674:18;:41::i;:::-;9651:64;;9726:19;9747:48;9764:30;9781:12;;9764;:16;;:30;;;;:::i;:::-;9747:12:::0;;:16:::1;:48::i;:::-;9726:69;;9806:29;9838;9854:12;;9838:11;:15;;:29;;;;:::i;:::-;9806:61:::0;-1:-1:-1;9881:34:0;;9878:103:::1;;9917:61;9930:24;9956:21;9917:12;:61::i;:::-;10037:12;::::0;9991:20:::1;::::0;10014:36:::1;::::0;:18:::1;:11:::0;10030:1:::1;10014:15;:18::i;:36::-;9991:59:::0;-1:-1:-1;10064:16:0;;10061:72:::1;;10090:17;::::0;10082:49:::1;::::0;-1:-1:-1;;;;;10090:17:0;;::::1;::::0;10082:49;::::1;;;::::0;10118:12;;10090:17:::1;10082:49:::0;10090:17;10082:49;10118:12;10090:17;10082:49;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;10061:72;10169:21;10204:28:::0;;10201:81:::1;;10242:11;::::0;10234:46:::1;::::0;-1:-1:-1;;;;;10242:11:0;;::::1;::::0;10234:46;::::1;;;::::0;10264:15;;10242:11:::1;10234:46:::0;10242:11;10234:46;10264:15;10242:11;10234:46;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;10201:81;-1:-1:-1::0;;5900:8:0;:16;;-1:-1:-1;;5900:16:0;;;-1:-1:-1;;;;;;;;9236:1053:0:o;11143:160::-;-1:-1:-1;;;;;11249:19:0;;11224:4;11249:19;;;:11;:19;;;;;;;;11248:20;:47;;;;-1:-1:-1;;;;;;;11273:22:0;;;;;:11;:22;;;;;;;;11272:23;;11143:160;-1:-1:-1;11143:160:0:o;11538:590::-;11624:7;11680:1;11647:30;11659:6;11667:9;11647:11;:30::i;:::-;:34;11644:462;;;11693:17;11713:59;11741:30;11753:6;11761:9;11741:11;:30::i;:::-;11724:11;;11713:23;;:6;;:10;:23::i;:59::-;11828:4;11810:24;;;;:9;:24;;;;;;11693:79;;-1:-1:-1;11810:39:0;;11693:79;11810:28;:39::i;:::-;11801:4;11783:24;;;;:9;:24;;;;;;;:66;;;;11865:42;;-1:-1:-1;;;;;11865:42:0;;;;;;;11897:9;160:25:1;;148:2;133:18;;14:177;11865:42:0;;;;;;;;11939:1;11921:7;;:20;:64;;;;;11978:7;;11945:30;11957:6;11965:9;11945:11;:30::i;:::-;:40;11921:64;11918:148;;;11987:77;12005:4;6259:42;12027:36;12055:7;;12027:23;12038:11;;12027:6;:10;;:23;;;;:::i;:36::-;11987:9;:77::i;:::-;12083:21;:6;12094:9;12083:10;:21::i;:::-;12076:28;;;;;11644:462;-1:-1:-1;12114:6:0;11538:590;-1:-1:-1;;11538:590:0:o;1483:98::-;1541:7;1568:5;1572:1;1568;:5;:::i;1589:98::-;1647:7;1674:5;1678:1;1674;:5;:::i;11311:219::-;11426:4;;11390:7;;-1:-1:-1;;;;;11426:4:0;;;11413:17;;;;11410:38;;-1:-1:-1;11439:7:0;;11432:14;;11410:38;11471:4;;-1:-1:-1;;;;;11471:4:0;;;11461:14;;;;11458:36;;-1:-1:-1;11484:8:0;;11477:15;;11458:36;-1:-1:-1;11511:11:0;;11311:219;;;;:::o;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;885:315;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2299:118::-;2385:5;2378:13;2371:21;2364:5;2361:32;2351:60;;2407:1;2404;2397:12;2422:382;2487:6;2495;2548:2;2536:9;2527:7;2523:23;2519:32;2516:52;;;2564:1;2561;2554:12;2516:52;2603:9;2590:23;2622:31;2647:5;2622:31;:::i;:::-;2672:5;-1:-1:-1;2729:2:1;2714:18;;2701:32;2742:30;2701:32;2742:30;:::i;:::-;2791:7;2781:17;;;2422:382;;;;;:::o;2809:598::-;2895:6;2903;2911;2919;2972:3;2960:9;2951:7;2947:23;2943:33;2940:53;;;2989:1;2986;2979:12;2940:53;3028:9;3015:23;3047:31;3072:5;3047:31;:::i;:::-;3097:5;-1:-1:-1;3154:2:1;3139:18;;3126:32;3167:33;3126:32;3167:33;:::i;:::-;3219:7;-1:-1:-1;3278:2:1;3263:18;;3250:32;3291:33;3250:32;3291:33;:::i;:::-;2809:598;;;;-1:-1:-1;3343:7:1;;3397:2;3382:18;3369:32;;-1:-1:-1;;2809:598:1:o;3620:388::-;3688:6;3696;3749:2;3737:9;3728:7;3724:23;3720:32;3717:52;;;3765:1;3762;3755:12;3717:52;3804:9;3791:23;3823:31;3848:5;3823:31;:::i;:::-;3873:5;-1:-1:-1;3930:2:1;3915:18;;3902:32;3943:33;3902:32;3943:33;:::i;4013:341::-;4215:2;4197:21;;;4254:2;4234:18;;;4227:30;-1:-1:-1;;;4288:2:1;4273:18;;4266:47;4345:2;4330:18;;4013:341::o;4739:245::-;4806:6;4859:2;4847:9;4838:7;4834:23;4830:32;4827:52;;;4875:1;4872;4865:12;4827:52;4907:9;4901:16;4926:28;4948:5;4926:28;:::i;4989:251::-;5059:6;5112:2;5100:9;5091:7;5087:23;5083:32;5080:52;;;5128:1;5125;5118:12;5080:52;5160:9;5154:16;5179:31;5204:5;5179:31;:::i;5554:127::-;5615:10;5610:3;5606:20;5603:1;5596:31;5646:4;5643:1;5636:15;5670:4;5667:1;5660:15;5686:168;5759:9;;;5790;;5807:15;;;5801:22;;5787:37;5777:71;;5828:18;;:::i;5859:217::-;5899:1;5925;5915:132;;5969:10;5964:3;5960:20;5957:1;5950:31;6004:4;6001:1;5994:15;6032:4;6029:1;6022:15;5915:132;-1:-1:-1;6061:9:1;;5859:217::o;7225:128::-;7292:9;;;7313:11;;;7310:37;;;7327:18;;:::i;9634:125::-;9699:9;;;9720:10;;;9717:36;;;9733:18;;:::i;9896:127::-;9957:10;9952:3;9948:20;9945:1;9938:31;9988:4;9985:1;9978:15;10012:4;10009:1;10002:15;10028:980;10290:4;10338:3;10327:9;10323:19;10369:6;10358:9;10351:25;10395:2;10433:6;10428:2;10417:9;10413:18;10406:34;10476:3;10471:2;10460:9;10456:18;10449:31;10500:6;10535;10529:13;10566:6;10558;10551:22;10604:3;10593:9;10589:19;10582:26;;10643:2;10635:6;10631:15;10617:29;;10664:1;10674:195;10688:6;10685:1;10682:13;10674:195;;;10753:13;;-1:-1:-1;;;;;10749:39:1;10737:52;;10844:15;;;;10809:12;;;;10785:1;10703:9;10674:195;;;-1:-1:-1;;;;;;;10925:32:1;;;;10920:2;10905:18;;10898:60;-1:-1:-1;;;10989:3:1;10974:19;10967:35;10886:3;10028:980;-1:-1:-1;;;10028:980:1:o;11625:306::-;11713:6;11721;11729;11782:2;11770:9;11761:7;11757:23;11753:32;11750:52;;;11798:1;11795;11788:12;11750:52;11827:9;11821:16;11811:26;;11877:2;11866:9;11862:18;11856:25;11846:35;;11921:2;11910:9;11906:18;11900:25;11890:35;;11625:306;;;;;:::o
Swarm Source
ipfs://348fc44082e6758121fc55bacbb76ed6c29b16a8eeeeb16a058766e43673ae50
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.