Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000 TSUKANOMICS
Holders
56
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
TSUKANOMICS
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-10-03 */ // SPDX-License-Identifier: UNLICENSED //Join TG: https://t.me/tsukanomics_entry pragma solidity 0.8.7; 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) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface ERC20 { 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); } abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(address(msg.sender)); } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } 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 InterfaceLP { function sync() external; } contract TSUKANOMICS is ERC20, Ownable { using SafeMath for uint256; uint256 private protection = 4; uint256 public launchBlock; uint256 private protectionBlock; address private WETH; address private DEAD = 0x000000000000000000000000000000000000dEaD; address private ZERO = 0x0000000000000000000000000000000000000000; string constant private _name = "TSUKANOMICS"; string constant private _symbol = "TSUKANOMICS"; uint8 constant private _decimals = 18; uint256 private _totalSupply = 1000000* 10**_decimals; uint256 public _maxTxAmount = _totalSupply / 50; uint256 public _maxWalletAmount = _totalSupply / 50; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; address[] public _markerPairs; mapping (address => bool) public automatedMarketMakerPairs; mapping (address => bool) public isFeeExempt; mapping (address => bool) public isTxLimitExempt; mapping (address => bool) public isMaxWalletExempt; //Fees uint256 private constant liquidityFee = 1; uint256 private constant marketingFee = 3; uint256 private constant devFee = 1; uint256 private constant sellFeeLiquidity = 1; uint256 private constant sellFeeMarketing = 3; uint256 private constant sellFeeDev = 1; uint256 private constant transferFee = 0; uint256 private constant totalBuyFee = 5; uint256 private constant totalSellFee = 5; uint256 private feeDenominator = 100; address private autoLiquidityReceiver = 0x70cA697478982a8b9A27fb86434d1372cD83947D; address private marketingFeeReceiver = 0x9449A008b96D578BabE2B765e1A32f7509A26dD8; address private devFeeReceiver = 0xB8A2F3E3Aadf17e2D63334271E4B7ACA827CCd6e ; IDEXRouter public router; address public pair; bool public tradingEnabled = false; bool public swapEnabled = true; uint256 public swapThreshold = _totalSupply * 1 / 5000; bool private inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor () { router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); WETH = router.WETH(); pair = IDEXFactory(router.factory()).createPair(WETH, address(this)); setAutomatedMarketMakerPair(pair, true); _allowances[address(this)][address(router)] = type(uint256).max; isFeeExempt[msg.sender] = true; isTxLimitExempt[msg.sender] = true; isMaxWalletExempt[msg.sender] = true; isFeeExempt[address(this)] = true; isTxLimitExempt[address(this)] = true; isMaxWalletExempt[address(this)] = true; isMaxWalletExempt[pair] = true; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable { } function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function getOwner() external view override returns (address) { return owner(); } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, type(uint256).max); } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if(_allowances[sender][msg.sender] != type(uint256).max){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { if(inSwap){ return _basicTransfer(sender, recipient, amount); } if(!isFeeExempt[sender] && !isFeeExempt[recipient]){ require(tradingEnabled,"Trading not open yet"); } if(shouldSwapBack()){ swapBack(); } uint256 amountReceived = amount; if(automatedMarketMakerPairs[sender]) { //buy if(!isFeeExempt[recipient]) { require(_balances[recipient].add(amount) <= _maxWalletAmount || isMaxWalletExempt[recipient], "Max Wallet Limit Limit Exceeded"); require(amount <= _maxTxAmount || isTxLimitExempt[recipient], "TX Limit Exceeded"); amountReceived = takeBuyFee(sender, amount); } } else if(automatedMarketMakerPairs[recipient]) { //sell if(!isFeeExempt[sender]) { require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded"); amountReceived = takeSellFee(sender, amount); } } else { if (!isFeeExempt[sender]) { require(_balances[recipient].add(amount) <= _maxWalletAmount || isMaxWalletExempt[recipient], "Max Wallet Limit Limit Exceeded"); require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded"); amountReceived = takeTransferFee(sender, amount); } } _balances[sender] = _balances[sender].sub(amount); _balances[recipient] = _balances[recipient].add(amountReceived); 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; } // Fees function takeBuyFee(address sender, uint256 amount) internal returns (uint256){ uint256 _realFee = totalBuyFee; if (block.number < protectionBlock) { _realFee = 99; } uint256 feeAmount = amount.mul(_realFee).div(feeDenominator); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } function takeSellFee(address sender, uint256 amount) internal returns (uint256){ uint256 feeAmount = amount.mul(totalSellFee).div(feeDenominator); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } function takeTransferFee(address sender, uint256 amount) internal returns (uint256){ uint256 feeAmount = amount.mul(transferFee).div(feeDenominator); if (feeAmount > 0) { _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); } return amount.sub(feeAmount); } function shouldSwapBack() internal view returns (bool) { return !automatedMarketMakerPairs[msg.sender] && !inSwap && swapEnabled && _balances[address(this)] >= swapThreshold; } // switch Trading function enableTrading() external onlyOwner { tradingEnabled = true; launchBlock = block.number; protectionBlock = block.number.add(protection); } function swapBack() internal swapping { uint256 swapLiquidityFee = liquidityFee.add(sellFeeLiquidity); uint256 realTotalFee =totalBuyFee.add(totalSellFee); uint256 contractTokenBalance = _balances[address(this)]; uint256 amountToLiquify = contractTokenBalance.mul(swapLiquidityFee).div(realTotalFee).div(2); uint256 amountToSwap = contractTokenBalance.sub(amountToLiquify); uint256 balanceBefore = address(this).balance; address[] memory path = new address[](2); path[0] = address(this); path[1] = WETH; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance.sub(balanceBefore); uint256 totalETHFee = realTotalFee.sub(swapLiquidityFee.div(2)); uint256 amountETHLiquidity = amountETH.mul(liquidityFee.add(sellFeeLiquidity)).div(totalETHFee).div(2); uint256 amountETHMarketing = amountETH.mul(marketingFee.add(sellFeeMarketing)).div(totalETHFee); uint256 amountETHDev = amountETH.sub(amountETHLiquidity).sub(amountETHMarketing); (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}(""); (tmpSuccess,) = payable(devFeeReceiver).call{value: amountETHDev}(""); tmpSuccess = false; if(amountToLiquify > 0){ router.addLiquidityETH{value: amountETHLiquidity}( address(this), amountToLiquify, 0, 0, autoLiquidityReceiver, block.timestamp ); } } // Admin Functions function setAutomatedMarketMakerPair(address _pair, bool _value) internal { require(automatedMarketMakerPairs[_pair] != _value, "Value already set"); automatedMarketMakerPairs[_pair] = _value; if(_value){ _markerPairs.push(_pair); }else{ require(_markerPairs.length > 1, "Required 1 pair"); for (uint256 i = 0; i < _markerPairs.length; i++) { if (_markerPairs[i] == _pair) { _markerPairs[i] = _markerPairs[_markerPairs.length - 1]; _markerPairs.pop(); break; } } } } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } function letsChangeIt (uint256 _number) external onlyOwner { require(_number < 15, "Can't go that high"); protection = _number; } }
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":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_markerPairs","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMaxWalletExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_number","type":"uint256"}],"name":"letsChangeIt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526004600255600680546001600160a01b031990811661dead17909155600780549091169055620000376012600a62000723565b6200004690620f4240620007e4565b60085560326008546200005a9190620006b7565b60095560326008546200006e9190620006b7565b600a556064601255601380546001600160a01b03199081167370ca697478982a8b9a27fb86434d1372cd83947d17909155601480548216739449a008b96d578babe2b765e1a32f7509a26dd81790556015805490911673b8a2f3e3aadf17e2d63334271e4b7aca827ccd6e1790556017805461ffff60a01b1916600160a81b1790556008546113889062000104906001620007e4565b620001109190620006b7565b6018553480156200012057600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c464891600480820192602092909190829003018186803b158015620001c257600080fd5b505afa158015620001d7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001fd919062000685565b600580546001600160a01b0319166001600160a01b039283161790556016546040805163c45a015560e01b81529051919092169163c45a0155916004808301926020929190829003018186803b1580156200025757600080fd5b505afa1580156200026c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000292919062000685565b6005546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c6539690604401602060405180830381600087803b158015620002df57600080fd5b505af1158015620002f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031a919062000685565b601780546001600160a01b0319166001600160a01b039290921691821790556200034690600162000436565b306000818152600c602090815260408083206016546001600160a01b039081168552908352818420600019905533808552600f8085528386208054600160ff199182168117909255601080885286892080548316841790556011808952878a208054841685179055998952928752858820805482168317905591865284872080548316821790559685528386208054821688179055601754909216855282852080549092169095179055600854848452600b835281842081905590519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000880565b6001600160a01b0382166000908152600e602052604090205460ff16151581151514156200049f5760405162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b60448201526064015b60405180910390fd5b6001600160a01b0382166000908152600e60205260409020805460ff191682158015919091179091556200051e57600d80546001810182556000919091527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50180546001600160a01b0384166001600160a01b03199091161790555050565b600d54600110620005645760405162461bcd60e51b815260206004820152600f60248201526e2932b8bab4b932b21018903830b4b960891b604482015260640162000496565b60005b600d548110156200068057826001600160a01b0316600d82815481106200059257620005926200086a565b6000918252602090912001546001600160a01b031614156200066b57600d8054620005c09060019062000806565b81548110620005d357620005d36200086a565b600091825260209091200154600d80546001600160a01b0390921691839081106200060257620006026200086a565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600d80548062000644576200064462000854565b600082815260209020810160001990810180546001600160a01b0319169055019055505050565b80620006778162000820565b91505062000567565b505050565b6000602082840312156200069857600080fd5b81516001600160a01b0381168114620006b057600080fd5b9392505050565b600082620006d557634e487b7160e01b600052601260045260246000fd5b500490565b600181815b808511156200071b578160001904821115620006ff57620006ff6200083e565b808516156200070d57918102915b93841c9390800290620006df565b509250929050565b6000620006b060ff8416836000826200073f57506001620007de565b816200074e57506000620007de565b8160018114620007675760028114620007725762000792565b6001915050620007de565b60ff8411156200078657620007866200083e565b50506001821b620007de565b5060208310610133831016604e8410600b8410161715620007b7575081810a620007de565b620007c38383620006da565b8060001904821115620007da57620007da6200083e565b0290505b92915050565b60008160001904831182151516156200080157620008016200083e565b500290565b6000828210156200081b576200081b6200083e565b500390565b60006000198214156200083757620008376200083e565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6117e080620008906000396000f3fe6080604052600436106101c55760003560e01c806370a08231116100f757806395d89b4111610095578063d00efb2f11610064578063d00efb2f1461052a578063dd62ed3e14610540578063e1d5584c14610586578063f887ea40146105a657600080fd5b806395d89b411461021c578063a8aa1b31146104ba578063a9059cbb146104da578063b62496f5146104fa57600080fd5b8063893d20e8116100d1578063893d20e8146104255780638a8c523c146104575780638b42507f1461046c5780638da5cb5b1461049c57600080fd5b806370a08231146103c4578063715018a6146103fa5780637d1db4a51461040f57600080fd5b80632b112e49116101645780634ada218b1161013e5780634ada218b1461034c578063571ac8b01461036d5780636c0a24eb1461038d5780636ddd1713146103a357600080fd5b80632b112e49146102eb578063313ce567146103005780633f4218e01461031c57600080fd5b8063095ea7b3116101a0578063095ea7b3146102565780630bd11f8a1461028657806318160ddd146102b657806323b872dd146102cb57600080fd5b8062e136df146101d15780630445b667146101f357806306fdde031461021c57600080fd5b366101cc57005b600080fd5b3480156101dd57600080fd5b506101f16101ec366004611581565b6105c6565b005b3480156101ff57600080fd5b5061020960185481565b6040519081526020015b60405180910390f35b34801561022857600080fd5b50604080518082018252600b81526a5453554b414e4f4d49435360a81b6020820152905161021391906115c8565b34801561026257600080fd5b50610276610271366004611557565b610643565b6040519015158152602001610213565b34801561029257600080fd5b506102766102a13660046114cd565b60116020526000908152604090205460ff1681565b3480156102c257600080fd5b50600854610209565b3480156102d757600080fd5b506102766102e636600461151b565b6106b0565b3480156102f757600080fd5b50610209610772565b34801561030c57600080fd5b5060405160128152602001610213565b34801561032857600080fd5b506102766103373660046114cd565b600f6020526000908152604090205460ff1681565b34801561035857600080fd5b5060175461027690600160a01b900460ff1681565b34801561037957600080fd5b506102766103883660046114cd565b6107c4565b34801561039957600080fd5b50610209600a5481565b3480156103af57600080fd5b5060175461027690600160a81b900460ff1681565b3480156103d057600080fd5b506102096103df3660046114cd565b6001600160a01b03166000908152600b602052604090205490565b34801561040657600080fd5b506101f16107d2565b34801561041b57600080fd5b5061020960095481565b34801561043157600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610213565b34801561046357600080fd5b506101f1610846565b34801561047857600080fd5b506102766104873660046114cd565b60106020526000908152604090205460ff1681565b3480156104a857600080fd5b506000546001600160a01b031661043f565b3480156104c657600080fd5b5060175461043f906001600160a01b031681565b3480156104e657600080fd5b506102766104f5366004611557565b61089b565b34801561050657600080fd5b506102766105153660046114cd565b600e6020526000908152604090205460ff1681565b34801561053657600080fd5b5061020960035481565b34801561054c57600080fd5b5061020961055b3660046114e8565b6001600160a01b039182166000908152600c6020908152604080832093909416825291909152205490565b34801561059257600080fd5b5061043f6105a1366004611581565b6108a8565b3480156105b257600080fd5b5060165461043f906001600160a01b031681565b6000546001600160a01b031633146105f95760405162461bcd60e51b81526004016105f090611648565b60405180910390fd5b600f811061063e5760405162461bcd60e51b8152602060048201526012602482015271086c2dc4ee840cede40e8d0c2e840d0d2ced60731b60448201526064016105f0565b600255565b336000818152600c602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061069e9086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383166000908152600c602090815260408083203384529091528120546000191461075d576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600c825283812033825290915291909120546107389184906108d2565b6001600160a01b0385166000908152600c602090815260408083203384529091529020555b61076884848461090c565b90505b9392505050565b6007546001600160a01b03166000908152600b60205260408120546107bf906006546001600160a01b03166000908152600b60205260409020546107b99060085490610d49565b90610d49565b905090565b60006106aa82600019610643565b6000546001600160a01b031633146107fc5760405162461bcd60e51b81526004016105f090611648565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108705760405162461bcd60e51b81526004016105f090611648565b6017805460ff60a01b1916600160a01b1790554360038190556002546108969190610d8b565b600455565b600061076b33848461090c565b600d81815481106108b857600080fd5b6000918252602090912001546001600160a01b0316905081565b600081848411156108f65760405162461bcd60e51b81526004016105f091906115c8565b5060006109038486611747565b95945050505050565b60195460009060ff161561092c57610925848484610dea565b905061076b565b6001600160a01b0384166000908152600f602052604090205460ff1615801561096e57506001600160a01b0383166000908152600f602052604090205460ff16155b156109c357601754600160a01b900460ff166109c35760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016105f0565b6109cb610ebe565b156109d8576109d8610f16565b6001600160a01b0384166000908152600e6020526040902054829060ff1615610b09576001600160a01b0384166000908152600f602052604090205460ff16610b0457600a546001600160a01b0385166000908152600b6020526040902054610a419085610d8b565b111580610a6657506001600160a01b03841660009081526011602052604090205460ff165b610ab25760405162461bcd60e51b815260206004820152601f60248201527f4d61782057616c6c6574204c696d6974204c696d69742045786365656465640060448201526064016105f0565b60095483111580610adb57506001600160a01b03841660009081526010602052604090205460ff165b610af75760405162461bcd60e51b81526004016105f09061161d565b610b018584611255565b90505b610ca2565b6001600160a01b0384166000908152600e602052604090205460ff1615610b99576001600160a01b0385166000908152600f602052604090205460ff16610b045760095483111580610b7357506001600160a01b03851660009081526010602052604090205460ff165b610b8f5760405162461bcd60e51b81526004016105f09061161d565b610b0185846112eb565b6001600160a01b0385166000908152600f602052604090205460ff16610ca257600a546001600160a01b0385166000908152600b6020526040902054610bdf9085610d8b565b111580610c0457506001600160a01b03841660009081526011602052604090205460ff165b610c505760405162461bcd60e51b815260206004820152601f60248201527f4d61782057616c6c6574204c696d6974204c696d69742045786365656465640060448201526064016105f0565b60095483111580610c7957506001600160a01b03851660009081526010602052604090205460ff165b610c955760405162461bcd60e51b81526004016105f09061161d565b610c9f858461137e565b90505b6001600160a01b0385166000908152600b6020526040902054610cc59084610d49565b6001600160a01b038087166000908152600b60205260408082209390935590861681522054610cf49082610d8b565b6001600160a01b038086166000818152600b6020526040908190209390935591519087169060008051602061178b83398151915290610d369085815260200190565b60405180910390a3506001949350505050565b600061076b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506108d2565b600080610d9883856116ee565b90508381101561076b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105f0565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600b90915291822054610e3b9184906108d2565b6001600160a01b038086166000908152600b60205260408082209390935590851681522054610e6a9083610d8b565b6001600160a01b038085166000818152600b6020526040908190209390935591519086169060008051602061178b83398151915290610eac9086815260200190565b60405180910390a35060019392505050565b336000908152600e602052604081205460ff16158015610ee1575060195460ff16155b8015610ef65750601754600160a81b900460ff165b80156107bf575050601854306000908152600b6020526040902054101590565b6019805460ff19166001908117909155600090610f339080610d8b565b90506000610f42600580610d8b565b306000908152600b6020526040812054919250610f6c6002610f66858186896113c7565b90611446565b90506000610f7a8383610d49565b60408051600280825260608201835292935047926000926020830190803683370190505090503081600081518110610fb457610fb4611774565b6001600160a01b039283166020918202929092010152600554825191169082906001908110610fe557610fe5611774565b6001600160a01b03928316602091820292909201015260165460405163791ac94760e01b815291169063791ac9479061102b90869060009086903090429060040161167d565b600060405180830381600087803b15801561104557600080fd5b505af1158015611059573d6000803e3d6000fd5b5050505060006110728347610d4990919063ffffffff16565b9050600061108b6110848a6002611446565b8990610d49565b905060006110ab6002610f6684816110a4600180610d8b565b88906113c7565b905060006110c883610f666110c1600380610d8b565b87906113c7565b905060006110da826107b98786610d49565b6014546040519192506000916001600160a01b039091169084908381818185875af1925050503d806000811461112c576040519150601f19603f3d011682016040523d82523d6000602084013e611131565b606091505b50506015546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611181576040519150601f19603f3d011682016040523d82523d6000602084013e611186565b606091505b5060009250508a15905061123c5760165460135460405163f305d71960e01b8152306004820152602481018d905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990869060c4016060604051808303818588803b1580156111ff57600080fd5b505af1158015611213573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611238919061159a565b5050505b50506019805460ff191690555050505050505050505050565b600454600090600590431015611269575060635b60125460009061127d90610f6686856113c7565b306000908152600b602052604090205490915061129a9082610d8b565b306000818152600b6020526040908190209290925590516001600160a01b0387169060008051602061178b833981519152906112d99085815260200190565b60405180910390a36109038482610d49565b600080611308601254610f666005866113c790919063ffffffff16565b306000908152600b60205260409020549091506113259082610d8b565b306000818152600b6020526040908190209290925590516001600160a01b0386169060008051602061178b833981519152906113649085815260200190565b60405180910390a36113768382610d49565b949350505050565b60008061139b601254610f666000866113c790919063ffffffff16565b905080156113bd57306000908152600b60205260409020546113259082610d8b565b6113768382610d49565b6000826113d6575060006106aa565b60006113e28385611728565b9050826113ef8583611706565b1461076b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105f0565b600061076b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836114a45760405162461bcd60e51b81526004016105f091906115c8565b5060006109038486611706565b80356001600160a01b03811681146114c857600080fd5b919050565b6000602082840312156114df57600080fd5b61076b826114b1565b600080604083850312156114fb57600080fd5b611504836114b1565b9150611512602084016114b1565b90509250929050565b60008060006060848603121561153057600080fd5b611539846114b1565b9250611547602085016114b1565b9150604084013590509250925092565b6000806040838503121561156a57600080fd5b611573836114b1565b946020939093013593505050565b60006020828403121561159357600080fd5b5035919050565b6000806000606084860312156115af57600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b818110156115f5578581018301518582016040015282016115d9565b81811115611607576000604083870101525b50601f01601f1916929092016040019392505050565b602080825260119082015270151608131a5b5a5d08115e18d959591959607a1b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156116cd5784516001600160a01b0316835293830193918301916001016116a8565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156117015761170161175e565b500190565b60008261172357634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156117425761174261175e565b500290565b6000828210156117595761175961175e565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220c0b564c09f421d2d1f19436af063b5a538a0fa00151888f16d2b124acf1cd22f64736f6c63430008070033
Deployed Bytecode
0x6080604052600436106101c55760003560e01c806370a08231116100f757806395d89b4111610095578063d00efb2f11610064578063d00efb2f1461052a578063dd62ed3e14610540578063e1d5584c14610586578063f887ea40146105a657600080fd5b806395d89b411461021c578063a8aa1b31146104ba578063a9059cbb146104da578063b62496f5146104fa57600080fd5b8063893d20e8116100d1578063893d20e8146104255780638a8c523c146104575780638b42507f1461046c5780638da5cb5b1461049c57600080fd5b806370a08231146103c4578063715018a6146103fa5780637d1db4a51461040f57600080fd5b80632b112e49116101645780634ada218b1161013e5780634ada218b1461034c578063571ac8b01461036d5780636c0a24eb1461038d5780636ddd1713146103a357600080fd5b80632b112e49146102eb578063313ce567146103005780633f4218e01461031c57600080fd5b8063095ea7b3116101a0578063095ea7b3146102565780630bd11f8a1461028657806318160ddd146102b657806323b872dd146102cb57600080fd5b8062e136df146101d15780630445b667146101f357806306fdde031461021c57600080fd5b366101cc57005b600080fd5b3480156101dd57600080fd5b506101f16101ec366004611581565b6105c6565b005b3480156101ff57600080fd5b5061020960185481565b6040519081526020015b60405180910390f35b34801561022857600080fd5b50604080518082018252600b81526a5453554b414e4f4d49435360a81b6020820152905161021391906115c8565b34801561026257600080fd5b50610276610271366004611557565b610643565b6040519015158152602001610213565b34801561029257600080fd5b506102766102a13660046114cd565b60116020526000908152604090205460ff1681565b3480156102c257600080fd5b50600854610209565b3480156102d757600080fd5b506102766102e636600461151b565b6106b0565b3480156102f757600080fd5b50610209610772565b34801561030c57600080fd5b5060405160128152602001610213565b34801561032857600080fd5b506102766103373660046114cd565b600f6020526000908152604090205460ff1681565b34801561035857600080fd5b5060175461027690600160a01b900460ff1681565b34801561037957600080fd5b506102766103883660046114cd565b6107c4565b34801561039957600080fd5b50610209600a5481565b3480156103af57600080fd5b5060175461027690600160a81b900460ff1681565b3480156103d057600080fd5b506102096103df3660046114cd565b6001600160a01b03166000908152600b602052604090205490565b34801561040657600080fd5b506101f16107d2565b34801561041b57600080fd5b5061020960095481565b34801561043157600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610213565b34801561046357600080fd5b506101f1610846565b34801561047857600080fd5b506102766104873660046114cd565b60106020526000908152604090205460ff1681565b3480156104a857600080fd5b506000546001600160a01b031661043f565b3480156104c657600080fd5b5060175461043f906001600160a01b031681565b3480156104e657600080fd5b506102766104f5366004611557565b61089b565b34801561050657600080fd5b506102766105153660046114cd565b600e6020526000908152604090205460ff1681565b34801561053657600080fd5b5061020960035481565b34801561054c57600080fd5b5061020961055b3660046114e8565b6001600160a01b039182166000908152600c6020908152604080832093909416825291909152205490565b34801561059257600080fd5b5061043f6105a1366004611581565b6108a8565b3480156105b257600080fd5b5060165461043f906001600160a01b031681565b6000546001600160a01b031633146105f95760405162461bcd60e51b81526004016105f090611648565b60405180910390fd5b600f811061063e5760405162461bcd60e51b8152602060048201526012602482015271086c2dc4ee840cede40e8d0c2e840d0d2ced60731b60448201526064016105f0565b600255565b336000818152600c602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061069e9086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383166000908152600c602090815260408083203384529091528120546000191461075d576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600c825283812033825290915291909120546107389184906108d2565b6001600160a01b0385166000908152600c602090815260408083203384529091529020555b61076884848461090c565b90505b9392505050565b6007546001600160a01b03166000908152600b60205260408120546107bf906006546001600160a01b03166000908152600b60205260409020546107b99060085490610d49565b90610d49565b905090565b60006106aa82600019610643565b6000546001600160a01b031633146107fc5760405162461bcd60e51b81526004016105f090611648565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108705760405162461bcd60e51b81526004016105f090611648565b6017805460ff60a01b1916600160a01b1790554360038190556002546108969190610d8b565b600455565b600061076b33848461090c565b600d81815481106108b857600080fd5b6000918252602090912001546001600160a01b0316905081565b600081848411156108f65760405162461bcd60e51b81526004016105f091906115c8565b5060006109038486611747565b95945050505050565b60195460009060ff161561092c57610925848484610dea565b905061076b565b6001600160a01b0384166000908152600f602052604090205460ff1615801561096e57506001600160a01b0383166000908152600f602052604090205460ff16155b156109c357601754600160a01b900460ff166109c35760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016105f0565b6109cb610ebe565b156109d8576109d8610f16565b6001600160a01b0384166000908152600e6020526040902054829060ff1615610b09576001600160a01b0384166000908152600f602052604090205460ff16610b0457600a546001600160a01b0385166000908152600b6020526040902054610a419085610d8b565b111580610a6657506001600160a01b03841660009081526011602052604090205460ff165b610ab25760405162461bcd60e51b815260206004820152601f60248201527f4d61782057616c6c6574204c696d6974204c696d69742045786365656465640060448201526064016105f0565b60095483111580610adb57506001600160a01b03841660009081526010602052604090205460ff165b610af75760405162461bcd60e51b81526004016105f09061161d565b610b018584611255565b90505b610ca2565b6001600160a01b0384166000908152600e602052604090205460ff1615610b99576001600160a01b0385166000908152600f602052604090205460ff16610b045760095483111580610b7357506001600160a01b03851660009081526010602052604090205460ff165b610b8f5760405162461bcd60e51b81526004016105f09061161d565b610b0185846112eb565b6001600160a01b0385166000908152600f602052604090205460ff16610ca257600a546001600160a01b0385166000908152600b6020526040902054610bdf9085610d8b565b111580610c0457506001600160a01b03841660009081526011602052604090205460ff165b610c505760405162461bcd60e51b815260206004820152601f60248201527f4d61782057616c6c6574204c696d6974204c696d69742045786365656465640060448201526064016105f0565b60095483111580610c7957506001600160a01b03851660009081526010602052604090205460ff165b610c955760405162461bcd60e51b81526004016105f09061161d565b610c9f858461137e565b90505b6001600160a01b0385166000908152600b6020526040902054610cc59084610d49565b6001600160a01b038087166000908152600b60205260408082209390935590861681522054610cf49082610d8b565b6001600160a01b038086166000818152600b6020526040908190209390935591519087169060008051602061178b83398151915290610d369085815260200190565b60405180910390a3506001949350505050565b600061076b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506108d2565b600080610d9883856116ee565b90508381101561076b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105f0565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600b90915291822054610e3b9184906108d2565b6001600160a01b038086166000908152600b60205260408082209390935590851681522054610e6a9083610d8b565b6001600160a01b038085166000818152600b6020526040908190209390935591519086169060008051602061178b83398151915290610eac9086815260200190565b60405180910390a35060019392505050565b336000908152600e602052604081205460ff16158015610ee1575060195460ff16155b8015610ef65750601754600160a81b900460ff165b80156107bf575050601854306000908152600b6020526040902054101590565b6019805460ff19166001908117909155600090610f339080610d8b565b90506000610f42600580610d8b565b306000908152600b6020526040812054919250610f6c6002610f66858186896113c7565b90611446565b90506000610f7a8383610d49565b60408051600280825260608201835292935047926000926020830190803683370190505090503081600081518110610fb457610fb4611774565b6001600160a01b039283166020918202929092010152600554825191169082906001908110610fe557610fe5611774565b6001600160a01b03928316602091820292909201015260165460405163791ac94760e01b815291169063791ac9479061102b90869060009086903090429060040161167d565b600060405180830381600087803b15801561104557600080fd5b505af1158015611059573d6000803e3d6000fd5b5050505060006110728347610d4990919063ffffffff16565b9050600061108b6110848a6002611446565b8990610d49565b905060006110ab6002610f6684816110a4600180610d8b565b88906113c7565b905060006110c883610f666110c1600380610d8b565b87906113c7565b905060006110da826107b98786610d49565b6014546040519192506000916001600160a01b039091169084908381818185875af1925050503d806000811461112c576040519150601f19603f3d011682016040523d82523d6000602084013e611131565b606091505b50506015546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611181576040519150601f19603f3d011682016040523d82523d6000602084013e611186565b606091505b5060009250508a15905061123c5760165460135460405163f305d71960e01b8152306004820152602481018d905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990869060c4016060604051808303818588803b1580156111ff57600080fd5b505af1158015611213573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611238919061159a565b5050505b50506019805460ff191690555050505050505050505050565b600454600090600590431015611269575060635b60125460009061127d90610f6686856113c7565b306000908152600b602052604090205490915061129a9082610d8b565b306000818152600b6020526040908190209290925590516001600160a01b0387169060008051602061178b833981519152906112d99085815260200190565b60405180910390a36109038482610d49565b600080611308601254610f666005866113c790919063ffffffff16565b306000908152600b60205260409020549091506113259082610d8b565b306000818152600b6020526040908190209290925590516001600160a01b0386169060008051602061178b833981519152906113649085815260200190565b60405180910390a36113768382610d49565b949350505050565b60008061139b601254610f666000866113c790919063ffffffff16565b905080156113bd57306000908152600b60205260409020546113259082610d8b565b6113768382610d49565b6000826113d6575060006106aa565b60006113e28385611728565b9050826113ef8583611706565b1461076b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105f0565b600061076b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836114a45760405162461bcd60e51b81526004016105f091906115c8565b5060006109038486611706565b80356001600160a01b03811681146114c857600080fd5b919050565b6000602082840312156114df57600080fd5b61076b826114b1565b600080604083850312156114fb57600080fd5b611504836114b1565b9150611512602084016114b1565b90509250929050565b60008060006060848603121561153057600080fd5b611539846114b1565b9250611547602085016114b1565b9150604084013590509250925092565b6000806040838503121561156a57600080fd5b611573836114b1565b946020939093013593505050565b60006020828403121561159357600080fd5b5035919050565b6000806000606084860312156115af57600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b818110156115f5578581018301518582016040015282016115d9565b81811115611607576000604083870101525b50601f01601f1916929092016040019392505050565b602080825260119082015270151608131a5b5a5d08115e18d959591959607a1b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156116cd5784516001600160a01b0316835293830193918301916001016116a8565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156117015761170161175e565b500190565b60008261172357634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156117425761174261175e565b500290565b6000828210156117595761175961175e565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220c0b564c09f421d2d1f19436af063b5a538a0fa00151888f16d2b124acf1cd22f64736f6c63430008070033
Deployed Bytecode Sourcemap
4842:11279:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15954:162;;;;;;;;;;-1:-1:-1;15954:162:0;;;;;:::i;:::-;;:::i;:::-;;6830:54;;;;;;;;;;;;;;;;;;;6453:25:1;;;6441:2;6426:18;6830:54:0;;;;;;;;8088:80;;;;;;;;;;-1:-1:-1;8160:5:0;;;;;;;;;;;-1:-1:-1;;;8160:5:0;;;;8088:80;;;;8160:5;8088:80;:::i;8512:216::-;;;;;;;;;;-1:-1:-1;8512:216:0;;;;;:::i;:::-;;:::i;:::-;;;2931:14:1;;2924:22;2906:41;;2894:2;2879:18;8512:216:0;2766:187:1;5873:50:0;;;;;;;;;;-1:-1:-1;5873:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7818:88;;;;;;;;;;-1:-1:-1;7891:12:0;;7818:88;;9030:370;;;;;;;;;;-1:-1:-1;9030:370:0;;;;;:::i;:::-;;:::i;15804:142::-;;;;;;;;;;;;;:::i;7912:80::-;;;;;;;;;;-1:-1:-1;7912:80:0;;5348:2;7616:36:1;;7604:2;7589:18;7912:80:0;7474:184:1;5767:44:0;;;;;;;;;;-1:-1:-1;5767:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6752:34;;;;;;;;;;-1:-1:-1;6752:34:0;;;;-1:-1:-1;;;6752:34:0;;;;;;8736:122;;;;;;;;;;-1:-1:-1;8736:122:0;;;;;:::i;:::-;;:::i;5475:51::-;;;;;;;;;;;;;;;;6793:30;;;;;;;;;;-1:-1:-1;6793:30:0;;;;-1:-1:-1;;;6793:30:0;;;;;;8260:105;;;;;;;;;;-1:-1:-1;8260:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;8344:18:0;8326:7;8344:18;;;:9;:18;;;;;;;8260:105;3145:148;;;;;;;;;;;;;:::i;5421:47::-;;;;;;;;;;;;;;;;8174:80;;;;;;;;;;-1:-1:-1;8226:7:0;2996:6;-1:-1:-1;;;;;2996:6:0;8174:80;;;-1:-1:-1;;;;;2110:32:1;;;2092:51;;2080:2;2065:18;8174:80:0;1946:203:1;13048:178:0;;;;;;;;;;;;;:::i;5818:48::-;;;;;;;;;;-1:-1:-1;5818:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;2931:79;;;;;;;;;;-1:-1:-1;2969:7:0;2996:6;-1:-1:-1;;;;;2996:6:0;2931:79;;6724:19;;;;;;;;;;-1:-1:-1;6724:19:0;;;;-1:-1:-1;;;;;6724:19:0;;;8866:156;;;;;;;;;;-1:-1:-1;8866:156:0;;;;;:::i;:::-;;:::i;5702:58::-;;;;;;;;;;-1:-1:-1;5702:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4961:26;;;;;;;;;;;;;;;;8371:133;;;;;;;;;;-1:-1:-1;8371:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8473:19:0;;;8455:7;8473:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8371:133;5666:29;;;;;;;;;;-1:-1:-1;5666:29:0;;;;;:::i;:::-;;:::i;6693:24::-;;;;;;;;;;-1:-1:-1;6693:24:0;;;;-1:-1:-1;;;;;6693:24:0;;;15954:162;3058:6;;-1:-1:-1;;;;;3058:6:0;2308:10;3058:22;3050:67;;;;-1:-1:-1;;;3050:67:0;;;;;;;:::i;:::-;;;;;;;;;16042:2:::1;16032:7;:12;16024:43;;;::::0;-1:-1:-1;;;16024:43:0;;3988:2:1;16024:43:0::1;::::0;::::1;3970:21:1::0;4027:2;4007:18;;;4000:30;-1:-1:-1;;;4046:18:1;;;4039:48;4104:18;;16024:43:0::1;3786:342:1::0;16024:43:0::1;16078:10;:20:::0;15954:162::o;8512:216::-;8616:10;8587:4;8604:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8604:32:0;;;;;;;;;;:41;;;8661:37;8587:4;;8604:32;;8661:37;;;;8639:6;6453:25:1;;6441:2;6426:18;;6307:177;8661:37:0;;;;;;;;-1:-1:-1;8716:4:0;8512:216;;;;;:::o;9030:370::-;-1:-1:-1;;;;;9150:19:0;;9130:4;9150:19;;;:11;:19;;;;;;;;9170:10;9150:31;;;;;;;;-1:-1:-1;;9150:52:0;9147:186;;9252:69;;;;;;;;;;;-1:-1:-1;;;9252:69:0;;;;;;;;-1:-1:-1;;;;;9252:19:0;;-1:-1:-1;9252:19:0;;;:11;:19;;;;;9272:10;9252:31;;;;;;;;;;:69;;9288:6;;9252:35;:69::i;:::-;-1:-1:-1;;;;;9218:19:0;;;;;;:11;:19;;;;;;;;9238:10;9218:31;;;;;;;:103;9147:186;9352:40;9366:6;9374:9;9385:6;9352:13;:40::i;:::-;9345:47;;9030:370;;;;;;:::o;15804:142::-;15932:4;;-1:-1:-1;;;;;15932:4:0;15857:7;8344:18;;;:9;:18;;;;;;15884:54;;15911:4;;-1:-1:-1;;;;;15911:4:0;8326:7;8344:18;;;:9;:18;;;;;;15884:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;15877:61;;15804:142;:::o;8736:122::-;8791:4;8815:35;8823:7;-1:-1:-1;;8815:7:0;:35::i;3145:148::-;3058:6;;-1:-1:-1;;;;;3058:6:0;2308:10;3058:22;3050:67;;;;-1:-1:-1;;;3050:67:0;;;;;;;:::i;:::-;3252:1:::1;3236:6:::0;;3215:40:::1;::::0;-1:-1:-1;;;;;3236:6:0;;::::1;::::0;3215:40:::1;::::0;3252:1;;3215:40:::1;3283:1;3266:19:::0;;-1:-1:-1;;;;;;3266:19:0::1;::::0;;3145:148::o;13048:178::-;3058:6;;-1:-1:-1;;;;;3058:6:0;2308:10;3058:22;3050:67;;;;-1:-1:-1;;;3050:67:0;;;;;;;:::i;:::-;13103:14:::1;:21:::0;;-1:-1:-1;;;;13103:21:0::1;-1:-1:-1::0;;;13103:21:0::1;::::0;;13149:12:::1;13135:11;:26:::0;;;13207:10:::1;::::0;13190:28:::1;::::0;13149:12;13190:16:::1;:28::i;:::-;13172:15;:46:::0;13048:178::o;8866:156::-;8946:4;8970:44;8984:10;8996:9;9007:6;8970:13;:44::i;5666:29::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5666:29:0;;-1:-1:-1;5666:29:0;:::o;470:192::-;556:7;592:12;584:6;;;;576:29;;;;-1:-1:-1;;;576:29:0;;;;;;;;:::i;:::-;-1:-1:-1;616:9:0;628:5;632:1;628;:5;:::i;:::-;616:17;470:192;-1:-1:-1;;;;;470:192:0:o;9408:1748::-;9520:6;;9500:4;;9520:6;;9517:63;;;9536:41;9551:6;9559:9;9570:6;9536:14;:41::i;:::-;9529:48;;;;9517:63;-1:-1:-1;;;;;9596:19:0;;;;;;:11;:19;;;;;;;;9595:20;:47;;;;-1:-1:-1;;;;;;9620:22:0;;;;;;:11;:22;;;;;;;;9619:23;9595:47;9592:124;;;9666:14;;-1:-1:-1;;;9666:14:0;;;;9658:46;;;;-1:-1:-1;;;9658:46:0;;5397:2:1;9658:46:0;;;5379:21:1;5436:2;5416:18;;;5409:30;-1:-1:-1;;;5455:18:1;;;5448:50;5515:18;;9658:46:0;5195:344:1;9658:46:0;9731:16;:14;:16::i;:::-;9728:35;;;9750:10;:8;:10::i;:::-;-1:-1:-1;;;;;9823:33:0;;9775:22;9823:33;;;:25;:33;;;;;;9800:6;;9823:33;;9820:1100;;;-1:-1:-1;;;;;9883:22:0;;;;;;:11;:22;;;;;;;;9879:354;;9970:16;;-1:-1:-1;;;;;9934:20:0;;;;;;:9;:20;;;;;;:32;;9959:6;9934:24;:32::i;:::-;:52;;:84;;;-1:-1:-1;;;;;;9990:28:0;;;;;;:17;:28;;;;;;;;9934:84;9926:128;;;;-1:-1:-1;;;9926:128:0;;4681:2:1;9926:128:0;;;4663:21:1;4720:2;4700:18;;;4693:30;4759:33;4739:18;;;4732:61;4810:18;;9926:128:0;4479:355:1;9926:128:0;10091:12;;10081:6;:22;;:52;;;-1:-1:-1;;;;;;10107:26:0;;;;;;:15;:26;;;;;;;;10081:52;10073:82;;;;-1:-1:-1;;;10073:82:0;;;;;;;:::i;:::-;10191:26;10202:6;10210;10191:10;:26::i;:::-;10174:43;;9879:354;9820:1100;;;-1:-1:-1;;;;;10255:36:0;;;;;;:25;:36;;;;;;;;10252:668;;;-1:-1:-1;;;;;10319:19:0;;;;;;:11;:19;;;;;;;;10315:204;;10377:12;;10367:6;:22;;:49;;;-1:-1:-1;;;;;;10393:23:0;;;;;;:15;:23;;;;;;;;10367:49;10359:79;;;;-1:-1:-1;;;10359:79:0;;;;;;;:::i;:::-;10474:27;10486:6;10494;10474:11;:27::i;10252:668::-;-1:-1:-1;;;;;10557:19:0;;;;;;:11;:19;;;;;;;;10552:357;;10642:16;;-1:-1:-1;;;;;10606:20:0;;;;;;:9;:20;;;;;;:32;;10631:6;10606:24;:32::i;:::-;:52;;:84;;;-1:-1:-1;;;;;;10662:28:0;;;;;;:17;:28;;;;;;;;10606:84;10598:128;;;;-1:-1:-1;;;10598:128:0;;4681:2:1;10598:128:0;;;4663:21:1;4720:2;4700:18;;;4693:30;4759:33;4739:18;;;4732:61;4810:18;;10598:128:0;4479:355:1;10598:128:0;10763:12;;10753:6;:22;;:49;;;-1:-1:-1;;;;;;10779:23:0;;;;;;:15;:23;;;;;;;;10753:49;10745:79;;;;-1:-1:-1;;;10745:79:0;;;;;;;:::i;:::-;10860:31;10876:6;10884;10860:15;:31::i;:::-;10843:48;;10552:357;-1:-1:-1;;;;;10952:17:0;;;;;;:9;:17;;;;;;:29;;10974:6;10952:21;:29::i;:::-;-1:-1:-1;;;;;10932:17:0;;;;;;;:9;:17;;;;;;:49;;;;11015:20;;;;;;;:40;;11040:14;11015:24;:40::i;:::-;-1:-1:-1;;;;;10992:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11083:43;;;;;;-1:-1:-1;;;;;;;;;;;11083:43:0;;;11111:14;6453:25:1;;6441:2;6426:18;;6307:177;11083:43:0;;;;;;;;-1:-1:-1;11144:4:0;;9408:1748;-1:-1:-1;;;;9408:1748:0:o;328:136::-;386:7;413:43;417:1;420;413:43;;;;;;;;;;;;;;;;;:3;:43::i;141:181::-;199:7;;231:5;235:1;231;:5;:::i;:::-;219:17;;260:1;255;:6;;247:46;;;;-1:-1:-1;;;247:46:0;;5041:2:1;247:46:0;;;5023:21:1;5080:2;5060:18;;;5053:30;5119:29;5099:18;;;5092:57;5166:18;;247:46:0;4839:351:1;11168:330:0;11298:53;;;;;;;;;;;-1:-1:-1;;;11298:53:0;;;;;;;;-1:-1:-1;;;;;11298:17:0;;11261:4;11298:17;;;:9;:17;;;;;;;:53;;11320:6;;11298:21;:53::i;:::-;-1:-1:-1;;;;;11278:17:0;;;;;;;:9;:17;;;;;;:73;;;;11385:20;;;;;;;:32;;11410:6;11385:24;:32::i;:::-;-1:-1:-1;;;;;11362:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11433:35;;;;;;-1:-1:-1;;;;;;;;;;;11433:35:0;;;11461:6;6453:25:1;;6441:2;6426:18;;6307:177;11433:35:0;;;;;;;;-1:-1:-1;11486:4:0;11168:330;;;;;:::o;12791:226::-;12900:10;12840:4;12874:37;;;:25;:37;;;;;;;;12873:38;:58;;;;-1:-1:-1;12925:6:0;;;;12924:7;12873:58;:82;;;;-1:-1:-1;12944:11:0;;-1:-1:-1;;;12944:11:0;;;;12873:82;:136;;;;-1:-1:-1;;12996:13:0;;12986:4;12968:24;;;;:9;:24;;;;;;:41;;;12791:226::o;13234:1801::-;6941:6;:13;;-1:-1:-1;;6941:13:0;6950:4;6941:13;;;;;;:6;;13310:34:::1;::::0;6950:4;13310:16:::1;:34::i;:::-;13283:61:::0;-1:-1:-1;13355:20:0::1;13377:29;6374:1;::::0;13377:15:::1;:29::i;:::-;13468:4;13419:28;13450:24:::0;;;:9:::1;:24;::::0;;;;;13355:51;;-1:-1:-1;13511:67:0::1;13576:1;13511:60;13355:51:::0;13511:60;13450:24;13536:16;13511:24:::1;:42::i;:::-;:46:::0;::::1;:60::i;:67::-;13485:93:::0;-1:-1:-1;13589:20:0::1;13612:41;:20:::0;13485:93;13612:24:::1;:41::i;:::-;13748:16;::::0;;13762:1:::1;13748:16:::0;;;;;::::1;::::0;;13589:64;;-1:-1:-1;13690:21:0::1;::::0;13666::::1;::::0;13748:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13748:16:0::1;13724:40;;13793:4;13775;13780:1;13775:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13775:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;13819:4:::1;::::0;13809:7;;13819:4;::::1;::::0;13809;;13819;;13809:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;13809:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;13836:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;13836:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;13908:12;;13836:6:::1;::::0;13951:4;;13978::::1;::::0;13998:15:::1;::::0;13836:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14037:17;14057:40;14083:13;14057:21;:25;;:40;;;;:::i;:::-;14037:60:::0;-1:-1:-1;14110:19:0::1;14132:41;14149:23;:16:::0;14170:1:::1;14149:20;:23::i;:::-;14132:12:::0;;:16:::1;:41::i;:::-;14110:63:::0;-1:-1:-1;14194:26:0::1;14223:73;14294:1;14223:66;14110:63:::0;14223:66;14237:34:::1;6129:1;::::0;14237:16:::1;:34::i;:::-;14223:9:::0;;:13:::1;:49::i;:73::-;14194:102:::0;-1:-1:-1;14307:26:0::1;14336:66;14390:11:::0;14336:49:::1;14350:34;6181:1;::::0;14350:16:::1;:34::i;:::-;14336:9:::0;;:13:::1;:49::i;:66::-;14307:95:::0;-1:-1:-1;14413:20:0::1;14436:57;14307:95:::0;14436:33:::1;:9:::0;14450:18;14436:13:::1;:33::i;:57::-;14535:20;::::0;14527:65:::1;::::0;14413:80;;-1:-1:-1;14507:15:0::1;::::0;-1:-1:-1;;;;;14535:20:0;;::::1;::::0;14569:18;;14507:15;14527:65;14507:15;14527:65;14569:18;14535:20;14527:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;14627:14:0::1;::::0;14619:53:::1;::::0;14506:86;;-1:-1:-1;;;;;;14627:14:0::1;::::0;14655:12;;14619:53:::1;::::0;;;14655:12;14627:14;14619:53:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;14706:5:0::1;::::0;-1:-1:-1;;14727:19:0;;;-1:-1:-1;14724:294:0::1;;14762:6;::::0;14936:21:::1;::::0;14762:244:::1;::::0;-1:-1:-1;;;14762:244:0;;14838:4:::1;14762:244;::::0;::::1;2495:34:1::0;2545:18;;;2538:34;;;14762:6:0::1;2588:18:1::0;;;2581:34;;;2631:18;;;2624:34;-1:-1:-1;;;;;14936:21:0;;::::1;2674:19:1::0;;;2667:44;14976:15:0::1;2727:19:1::0;;;2720:35;14762:6:0;::::1;::::0;:22:::1;::::0;14792:18;;2429:19:1;;14762:244:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14724:294;-1:-1:-1::0;;6959:6:0;:14;;-1:-1:-1;;6959:14:0;;;-1:-1:-1;;;;;;;;;;;13234:1801:0:o;11519:472::-;11668:15;;11589:7;;6326:1;;11653:12;:30;11649:84;;;-1:-1:-1;11715:2:0;11649:84;11790:14;;11745:17;;11765:40;;:20;:6;11776:8;11765:10;:20::i;:40::-;11863:4;11845:24;;;;:9;:24;;;;;;11745:60;;-1:-1:-1;11845:39:0;;11745:60;11845:28;:39::i;:::-;11836:4;11818:24;;;;:9;:24;;;;;;;:66;;;;11900:42;;-1:-1:-1;;;;;11900:42:0;;;-1:-1:-1;;;;;;;;;;;11900:42:0;;;11932:9;6453:25:1;;6441:2;6426:18;;6307:177;11900:42:0;;;;;;;;11962:21;:6;11973:9;11962:10;:21::i;11999:356::-;12070:7;12091:17;12111:44;12140:14;;12111:24;6374:1;12111:6;:10;;:24;;;;:::i;:44::-;12213:4;12195:24;;;;:9;:24;;;;;;12091:64;;-1:-1:-1;12195:39:0;;12091:64;12195:28;:39::i;:::-;12186:4;12168:24;;;;:9;:24;;;;;;;:66;;;;12250:42;;-1:-1:-1;;;;;12250:42:0;;;-1:-1:-1;;;;;;;;;;;12250:42:0;;;12282:9;6453:25:1;;6441:2;6426:18;;6307:177;12250:42:0;;;;;;;;12312:21;:6;12323:9;12312:10;:21::i;:::-;12305:28;11999:356;-1:-1:-1;;;;11999:356:0:o;12363:416::-;12438:7;12457:17;12477:43;12505:14;;12477:23;6277:1;12477:6;:10;;:23;;;;:::i;:43::-;12457:63;-1:-1:-1;12545:13:0;;12541:176;;12620:4;12602:24;;;;:9;:24;;;;;;:39;;12631:9;12602:28;:39::i;12541:176::-;12749:21;:6;12760:9;12749:10;:21::i;668:250::-;726:7;750:6;746:47;;-1:-1:-1;780:1:0;773:8;;746:47;805:9;817:5;821:1;817;:5;:::i;:::-;805:17;-1:-1:-1;850:1:0;841:5;845:1;805:17;841:5;:::i;:::-;:10;833:56;;;;-1:-1:-1;;;833:56:0;;5746:2:1;833:56:0;;;5728:21:1;5785:2;5765:18;;;5758:30;5824:34;5804:18;;;5797:62;-1:-1:-1;;;5875:18:1;;;5868:31;5916:19;;833:56:0;5544:397:1;924:132:0;982:7;1009:39;1013:1;1016;1009:39;;;;;;;;;;;;;;;;;1148:7;1183:12;1176:5;1168:28;;;;-1:-1:-1;;;1168:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1207:9:0;1219:5;1223:1;1219;:5;:::i;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;383:260::-;451:6;459;512:2;500:9;491:7;487:23;483:32;480:52;;;528:1;525;518:12;480:52;551:29;570:9;551:29;:::i;:::-;541:39;;599:38;633:2;622:9;618:18;599:38;:::i;:::-;589:48;;383:260;;;;;:::o;648:328::-;725:6;733;741;794:2;782:9;773:7;769:23;765:32;762:52;;;810:1;807;800:12;762:52;833:29;852:9;833:29;:::i;:::-;823:39;;881:38;915:2;904:9;900:18;881:38;:::i;:::-;871:48;;966:2;955:9;951:18;938:32;928:42;;648:328;;;;;:::o;981:254::-;1049:6;1057;1110:2;1098:9;1089:7;1085:23;1081:32;1078:52;;;1126:1;1123;1116:12;1078:52;1149:29;1168:9;1149:29;:::i;:::-;1139:39;1225:2;1210:18;;;;1197:32;;-1:-1:-1;;;981:254:1:o;1240:180::-;1299:6;1352:2;1340:9;1331:7;1327:23;1323:32;1320:52;;;1368:1;1365;1358:12;1320:52;-1:-1:-1;1391:23:1;;1240:180;-1:-1:-1;1240:180:1:o;1425:306::-;1513:6;1521;1529;1582:2;1570:9;1561:7;1557:23;1553:32;1550:52;;;1598:1;1595;1588:12;1550:52;1627:9;1621:16;1611:26;;1677:2;1666:9;1662:18;1656:25;1646:35;;1721:2;1710:9;1706:18;1700:25;1690:35;;1425:306;;;;;:::o;3184:597::-;3296:4;3325:2;3354;3343:9;3336:21;3386:6;3380:13;3429:6;3424:2;3413:9;3409:18;3402:34;3454:1;3464:140;3478:6;3475:1;3472:13;3464:140;;;3573:14;;;3569:23;;3563:30;3539:17;;;3558:2;3535:26;3528:66;3493:10;;3464:140;;;3622:6;3619:1;3616:13;3613:91;;;3692:1;3687:2;3678:6;3667:9;3663:22;3659:31;3652:42;3613:91;-1:-1:-1;3765:2:1;3744:15;-1:-1:-1;;3740:29:1;3725:45;;;;3772:2;3721:54;;3184:597;-1:-1:-1;;;3184:597:1:o;4133:341::-;4335:2;4317:21;;;4374:2;4354:18;;;4347:30;-1:-1:-1;;;4408:2:1;4393:18;;4386:47;4465:2;4450:18;;4133:341::o;5946:356::-;6148:2;6130:21;;;6167:18;;;6160:30;6226:34;6221:2;6206:18;;6199:62;6293:2;6278:18;;5946:356::o;6489:980::-;6751:4;6799:3;6788:9;6784:19;6830:6;6819:9;6812:25;6856:2;6894:6;6889:2;6878:9;6874:18;6867:34;6937:3;6932:2;6921:9;6917:18;6910:31;6961:6;6996;6990:13;7027:6;7019;7012:22;7065:3;7054:9;7050:19;7043:26;;7104:2;7096:6;7092:15;7078:29;;7125:1;7135:195;7149:6;7146:1;7143:13;7135:195;;;7214:13;;-1:-1:-1;;;;;7210:39:1;7198:52;;7305:15;;;;7270:12;;;;7246:1;7164:9;7135:195;;;-1:-1:-1;;;;;;;7386:32:1;;;;7381:2;7366:18;;7359:60;-1:-1:-1;;;7450:3:1;7435:19;7428:35;7347:3;6489:980;-1:-1:-1;;;6489:980:1:o;7663:128::-;7703:3;7734:1;7730:6;7727:1;7724:13;7721:39;;;7740:18;;:::i;:::-;-1:-1:-1;7776:9:1;;7663:128::o;7796:217::-;7836:1;7862;7852:132;;7906:10;7901:3;7897:20;7894:1;7887:31;7941:4;7938:1;7931:15;7969:4;7966:1;7959:15;7852:132;-1:-1:-1;7998:9:1;;7796:217::o;8018:168::-;8058:7;8124:1;8120;8116:6;8112:14;8109:1;8106:21;8101:1;8094:9;8087:17;8083:45;8080:71;;;8131:18;;:::i;:::-;-1:-1:-1;8171:9:1;;8018:168::o;8191:125::-;8231:4;8259:1;8256;8253:8;8250:34;;;8264:18;;:::i;:::-;-1:-1:-1;8301:9:1;;8191:125::o;8321:127::-;8382:10;8377:3;8373:20;8370:1;8363:31;8413:4;8410:1;8403:15;8437:4;8434:1;8427:15;8453:127;8514:10;8509:3;8505:20;8502:1;8495:31;8545:4;8542:1;8535:15;8569:4;8566:1;8559:15
Swarm Source
ipfs://c0b564c09f421d2d1f19436af063b5a538a0fa00151888f16d2b124acf1cd22f
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.