Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
420,000,000,000 WEIWEI
Holders
423
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
0.000000001 WEIWEIValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
WEIWEI
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-06-05 */ /** https://weiweicoin.xyz https://t.me/WeiWei_Portal https://x.com/weiweicoin Meet Wojak’s distant cousin from Asia, Wei Wei. */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.20; pragma experimental ABIEncoderV2; 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()); } modifier onlyOwner() { _checkOwner(); _; } function owner() public view virtual returns (address) { return _owner; } function _checkOwner() internal view virtual { 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); } } interface IERC20 { event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address to, 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 from, address to, uint256 amount) external returns (bool); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } 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); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval( address indexed owner, address indexed spender, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address owner) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; event Mint(address indexed sender, uint256 amount0, uint256 amount1); event Swap( address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint256); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns ( uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast ); function price0CumulativeLast() external view returns (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function mint(address to) external returns (uint256 liquidity); function swap( uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data ) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } 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 per(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= 100, "Percentage must be between 0 and 100"); return a * b / 100; } 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; } } } 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 9; } 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 to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, 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) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } function _transfer(address from, address to, uint256 amount) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[from] = fromBalance - amount; _balances[to] += amount; } emit Transfer(from, to, amount); _afterTokenTransfer(from, to, 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; unchecked { _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 _spendAllowance(address owner, address spender, uint256 amount) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {} function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {} } contract WEIWEI is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public immutable _uniswapV2Router; address public uniswapV2Pair; address private devWallet; address private marketingWallet; address private constant deadAddress = address(0xdead); uint256 public buyFee = 20; uint256 public sellFee = 29; uint8 private constant _decimals = 9; uint256 public initialTotalSupply = 420000000000 * 10**_decimals; // max wallet 1% uint256 public maxWallet = (initialTotalSupply * 10)/1000; uint256 public maxTransactionAmount = maxWallet; bool private swapping; uint256 public swapTokensAtAmount = (initialTotalSupply * 2)/1000; bool public tradingOpen = false; bool public swapEnabled = false; mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) private _isExcludedMaxTransactionAmount; mapping(address => bool) private automatedMarketMakerPairs; event ExcludeFromFees(address indexed account, bool isExcluded); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); constructor() ERC20("Wei Wei", "WEIWEI"){ _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); marketingWallet = payable(0xF53B6766D2561fb86c95D0AFC99fE78DD1C28077); devWallet = payable(_msgSender()); excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true); excludeFromMaxTransaction(address(_uniswapV2Router), true); excludeFromMaxTransaction(address(this), true); excludeFromMaxTransaction(address(0xdead), true); excludeFromMaxTransaction(address(_msgSender()), true); excludeFromMaxTransaction(devWallet, true); excludeFromMaxTransaction(marketingWallet, true); excludeFromFees(address(_msgSender()), true); excludeFromFees(devWallet, true); excludeFromFees(marketingWallet, true); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); excludeFromMaxTransaction(address(uniswapV2Pair), true); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); // mint _mint(devWallet, initialTotalSupply); } receive() external payable {} function addLpToUniswap() external onlyOwner() { require(!tradingOpen,"Trading is already open"); _approve(address(this), address(_uniswapV2Router), initialTotalSupply); _uniswapV2Router.addLiquidityETH{value: address(this).balance}( address(this), balanceOf(address(this)), 0, 0, 0xF53B6766D2561fb86c95D0AFC99fE78DD1C28077, block.timestamp ); IERC20(uniswapV2Pair).approve(address(_uniswapV2Router), type(uint).max); } function openTrading() external onlyOwner() { swapEnabled = true; tradingOpen = true; } function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner { _isExcludedMaxTransactionAmount[updAds] = isEx; } function burn(uint256 amount) external { _burn(_msgSender(), amount); } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner { require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs"); _setAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } function isExcludedFromFees(address account) public view returns (bool) { return _isExcludedFromFees[account]; } 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 (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) { if (!tradingOpen) { require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active."); } if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) { // buy require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount."); require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) { // sell require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount."); } else if (!_isExcludedMaxTransactionAmount[to]) { require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } } // swap tokens for eth marketing uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance > swapTokensAtAmount; if (canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) { swapping = true; swapBack(); swapping = false; } bool takeFee = !swapping && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]; uint256 fees = 0; if (takeFee) { if (automatedMarketMakerPairs[to]) { fees = amount.mul(sellFee).div(100); } else if(automatedMarketMakerPairs[from]) { fees = amount.mul(buyFee).div(100); } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } function swapTokensForEth(uint256 tokenAmount) private { 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, marketingWallet, block.timestamp ); } function setNewestFee(uint256 _buyFee, uint256 _sellFee) external onlyOwner { sellFee = _sellFee; buyFee = _buyFee; } function removeLimits() external onlyOwner { maxTransactionAmount = initialTotalSupply; maxWallet = initialTotalSupply; } function manualSwapToken(uint256 percent) external { require(_msgSender() == marketingWallet); uint256 contractBalance = balanceOf(address(this)); uint256 swapAmount = contractBalance * percent / 100; swapTokensForEth(swapAmount); } function getStuckEth() external { require(address(this).balance > 0, "Token: no ETH in the contract"); require(_msgSender() == devWallet); payable(msg.sender).transfer(address(this).balance); } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); if (contractBalance == 0) { return; } uint256 tokensToSwap = contractBalance; if (tokensToSwap > swapTokensAtAmount) { tokensToSwap = swapTokensAtAmount; } swapTokensForEth(tokensToSwap); } }
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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLpToUniswap","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":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyFee","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":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getStuckEth","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":"initialTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualSwapToken","outputs":[],"stateMutability":"nonpayable","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":"openTrading","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":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"setNewestFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a06040526014600955601d600a556009600a6200001e919062000769565b6200002f906461c9f3680062000780565b600b556103e8600b54600a62000046919062000780565b6200005291906200079a565b600c55600c54600d556103e8600b5460026200006f919062000780565b6200007b91906200079a565b600f556010805461ffff1916905534801562000095575f80fd5b50604051806040016040528060078152602001665765692057656960c81b8152506040518060400160405280600681526020016557454957454960d01b8152508160039081620000e6919062000859565b506004620000f5828262000859565b505050620001126200010c620003ee60201b60201c565b620003f2565b737a250d5630b4cf539739df2c5dacb4c659f2488d608052600880546001600160a01b03191673f53b6766d2561fb86c95d0afc99fe78dd1c28077179055620001583390565b600780546001600160a01b0319166001600160a01b03929092169190911790556200018530600162000443565b6200019461dead600162000443565b608051620001a4906001620004ab565b620001b1306001620004ab565b620001c061dead6001620004ab565b620001cd336001620004ab565b600754620001e6906001600160a01b03166001620004ab565b600854620001ff906001600160a01b03166001620004ab565b6200020c33600162000443565b60075462000225906001600160a01b0316600162000443565b6008546200023e906001600160a01b0316600162000443565b6080516001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200027d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002a3919062000921565b6001600160a01b031663c9c65396306080516001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002f1573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000317919062000921565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000362573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000388919062000921565b600680546001600160a01b0319166001600160a01b03929092169182179055620003b4906001620004ab565b600654620003cd906001600160a01b03166001620004df565b600754600b54620003e8916001600160a01b03169062000532565b6200095f565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6200044d620005f7565b6001600160a01b0382165f81815260116020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b620004b5620005f7565b6001600160a01b03919091165f908152601260205260409020805460ff1916911515919091179055565b6001600160a01b0382165f81815260136020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b0382166200058e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b8060025f828254620005a1919062000949565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6005546001600160a01b03163314620006535760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000585565b565b505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620006ae57815f19048211156200069257620006926200065a565b80851615620006a057918102915b93841c939080029062000673565b509250929050565b5f82620006c65750600162000763565b81620006d457505f62000763565b8160018114620006ed5760028114620006f85762000718565b600191505062000763565b60ff8411156200070c576200070c6200065a565b50506001821b62000763565b5060208310610133831016604e8410600b84101617156200073d575081810a62000763565b6200074983836200066e565b805f19048211156200075f576200075f6200065a565b0290505b92915050565b5f6200077960ff841683620006b6565b9392505050565b80820281158282048414176200076357620007636200065a565b5f82620007b557634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620007e357607f821691505b6020821081036200080257634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000655575f81815260208120601f850160051c81016020861015620008305750805b601f850160051c820191505b8181101562000851578281556001016200083c565b505050505050565b81516001600160401b03811115620008755762000875620007ba565b6200088d81620008868454620007ce565b8462000808565b602080601f831160018114620008c3575f8415620008ab5750858301515b5f19600386901b1c1916600185901b17855562000851565b5f85815260208120601f198616915b82811015620008f357888601518255948401946001909101908401620008d2565b50858210156200091157878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f6020828403121562000932575f80fd5b81516001600160a01b038116811462000779575f80fd5b808201808211156200076357620007636200065a565b608051611d04620009a25f395f81816103e101528181610809015281816108320152818161092001528181611601015281816116b801526116f70152611d045ff3fe6080604052600436106101ff575f3560e01c8063715018a611610113578063c02466681161009d578063e2f456051161006d578063e2f456051461059b578063e61bf156146105b0578063f2fde38b146105cf578063f8b45b05146105ee578063ffb54a9914610603575f80fd5b8063c024666814610534578063c8c8ebe414610553578063c9567bf914610568578063dd62ed3e1461057c575f80fd5b80638da5cb5b116100e35780638da5cb5b146104a657806395d89b41146104c35780639a7a23d6146104d7578063a457c2d7146104f6578063a9059cbb14610515575f80fd5b8063715018a61461044057806371f5f01a14610454578063751039fc146104735780637571336a14610487575f80fd5b8063395093511161019457806349bd5a5e1161016457806349bd5a5e146103625780634fbee19314610399578063583e0568146103d05780636ddd17131461040357806370a0823114610421575f80fd5b806339509351146102fb578063398bb3181461031a57806342966c681461032e578063470624021461034d575f80fd5b806323b872dd116101cf57806323b872dd146102975780632b14ca56146102b6578063311028af146102cb578063313ce567146102e0575f80fd5b806306fdde031461020a578063095ea7b31461023457806313df6ccd1461026357806318160ddd14610279575f80fd5b3661020657005b5f80fd5b348015610215575f80fd5b5061021e61061c565b60405161022b9190611931565b60405180910390f35b34801561023f575f80fd5b5061025361024e366004611990565b6106ac565b604051901515815260200161022b565b34801561026e575f80fd5b506102776106c5565b005b348015610284575f80fd5b506002545b60405190815260200161022b565b3480156102a2575f80fd5b506102536102b13660046119ba565b610764565b3480156102c1575f80fd5b50610289600a5481565b3480156102d6575f80fd5b50610289600b5481565b3480156102eb575f80fd5b506040516009815260200161022b565b348015610306575f80fd5b50610253610315366004611990565b610787565b348015610325575f80fd5b506102776107a8565b348015610339575f80fd5b506102776103483660046119f8565b61099b565b348015610358575f80fd5b5061028960095481565b34801561036d575f80fd5b50600654610381906001600160a01b031681565b6040516001600160a01b03909116815260200161022b565b3480156103a4575f80fd5b506102536103b3366004611a0f565b6001600160a01b03165f9081526011602052604090205460ff1690565b3480156103db575f80fd5b506103817f000000000000000000000000000000000000000000000000000000000000000081565b34801561040e575f80fd5b5060105461025390610100900460ff1681565b34801561042c575f80fd5b5061028961043b366004611a0f565b6109a5565b34801561044b575f80fd5b506102776109bf565b34801561045f575f80fd5b5061027761046e3660046119f8565b6109d2565b34801561047e575f80fd5b50610277610a24565b348015610492575f80fd5b506102776104a1366004611a37565b610a39565b3480156104b1575f80fd5b506005546001600160a01b0316610381565b3480156104ce575f80fd5b5061021e610a6b565b3480156104e2575f80fd5b506102776104f1366004611a37565b610a7a565b348015610501575f80fd5b50610253610510366004611990565b610b14565b348015610520575f80fd5b5061025361052f366004611990565b610b8e565b34801561053f575f80fd5b5061027761054e366004611a37565b610b9b565b34801561055e575f80fd5b50610289600d5481565b348015610573575f80fd5b50610277610c01565b348015610587575f80fd5b50610289610596366004611a6e565b610c1a565b3480156105a6575f80fd5b50610289600f5481565b3480156105bb575f80fd5b506102776105ca366004611a9a565b610c44565b3480156105da575f80fd5b506102776105e9366004611a0f565b610c54565b3480156105f9575f80fd5b50610289600c5481565b34801561060e575f80fd5b506010546102539060ff1681565b60606003805461062b90611aba565b80601f016020809104026020016040519081016040528092919081815260200182805461065790611aba565b80156106a25780601f10610679576101008083540402835291602001916106a2565b820191905f5260205f20905b81548152906001019060200180831161068557829003601f168201915b5050505050905090565b5f336106b9818585610cca565b60019150505b92915050565b5f47116107195760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e3a206e6f2045544820696e2074686520636f6e747261637400000060448201526064015b60405180910390fd5b6007546001600160a01b0316336001600160a01b031614610738575f80fd5b60405133904780156108fc02915f818181858888f19350505050158015610761573d5f803e3d5ffd5b50565b5f33610771858285610ded565b61077c858585610e65565b506001949350505050565b5f336106b98185856107998383610c1a565b6107a39190611b06565b610cca565b6107b06113d1565b60105460ff16156108035760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610710565b610830307f0000000000000000000000000000000000000000000000000000000000000000600b54610cca565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f305d719473061086a306109a5565b6040516001600160e01b031960e086901b1681526001600160a01b03909216600483015260248201525f60448201819052606482015273f53b6766d2561fb86c95d0afc99fe78dd1c2807760848201524260a482015260c40160606040518083038185885af11580156108df573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109049190611b19565b505060065460405163095ea7b360e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301525f196024830152909116915063095ea7b3906044016020604051808303815f875af1158015610977573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107619190611b44565b610761338261142b565b6001600160a01b03165f9081526020819052604090205490565b6109c76113d1565b6109d05f61155b565b565b6008546001600160a01b0316336001600160a01b0316146109f1575f80fd5b5f6109fb306109a5565b90505f6064610a0a8484611b5f565b610a149190611b76565b9050610a1f816115ac565b505050565b610a2c6113d1565b600b54600d819055600c55565b610a416113d1565b6001600160a01b03919091165f908152601260205260409020805460ff1916911515919091179055565b60606004805461062b90611aba565b610a826113d1565b6006546001600160a01b0390811690831603610b065760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610710565b610b108282611769565b5050565b5f3381610b218286610c1a565b905083811015610b815760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610710565b61077c8286868403610cca565b5f336106b9818585610e65565b610ba36113d1565b6001600160a01b0382165f81815260116020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b610c096113d1565b6010805461ffff1916610101179055565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b610c4c6113d1565b600a55600955565b610c5c6113d1565b6001600160a01b038116610cc15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610710565b6107618161155b565b6001600160a01b038316610d2c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610710565b6001600160a01b038216610d8d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610710565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f610df88484610c1a565b90505f198114610e5f5781811015610e525760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610710565b610e5f8484848403610cca565b50505050565b6001600160a01b038316610e8b5760405162461bcd60e51b815260040161071090611b95565b6001600160a01b038216610eb15760405162461bcd60e51b815260040161071090611bda565b805f03610ec357610a1f83835f6117bc565b6005546001600160a01b03848116911614801590610eef57506005546001600160a01b03838116911614155b8015610f0357506001600160a01b03821615155b8015610f1a57506001600160a01b03821661dead14155b8015610f295750600e5460ff16155b156111fb5760105460ff16610fba576001600160a01b0383165f9081526011602052604090205460ff1680610f7557506001600160a01b0382165f9081526011602052604090205460ff165b610fba5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610710565b6001600160a01b0383165f9081526013602052604090205460ff168015610ff957506001600160a01b0382165f9081526012602052604090205460ff16155b156110cd57600d5481111561106e5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152608401610710565b600c5461107a836109a5565b6110849083611b06565b11156110c85760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610710565b6111fb565b6001600160a01b0382165f9081526013602052604090205460ff16801561110c57506001600160a01b0383165f9081526012602052604090205460ff16155b1561118257600d548111156110c85760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610710565b6001600160a01b0382165f9081526012602052604090205460ff166111fb57600c546111ad836109a5565b6111b79083611b06565b11156111fb5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610710565b5f611205306109a5565b600f5490915081118080156112215750601054610100900460ff165b80156112305750600e5460ff16155b801561125457506001600160a01b0385165f9081526013602052604090205460ff16155b801561127857506001600160a01b0385165f9081526011602052604090205460ff16155b801561129c57506001600160a01b0384165f9081526011602052604090205460ff16155b156112c157600e805460ff191660011790556112b66118e4565b600e805460ff191690555b600e545f9060ff161580156112ee57506001600160a01b0386165f9081526011602052604090205460ff16155b801561131257506001600160a01b0385165f9081526011602052604090205460ff16155b90505f81156113bd576001600160a01b0386165f9081526013602052604090205460ff16156113625761135b6064611355600a548861191490919063ffffffff16565b90611926565b905061139f565b6001600160a01b0387165f9081526013602052604090205460ff161561139f5761139c60646113556009548861191490919063ffffffff16565b90505b80156113b0576113b08730836117bc565b6113ba8186611c1d565b94505b6113c88787876117bc565b50505050505050565b6005546001600160a01b031633146109d05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610710565b6001600160a01b03821661148b5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610710565b6001600160a01b0382165f90815260208190526040902054818110156114fe5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610710565b6001600160a01b0383165f818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106115df576115df611c30565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561165b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061167f9190611c44565b8160018151811061169257611692611c30565b60200260200101906001600160a01b031690816001600160a01b0316815250506116dd307f000000000000000000000000000000000000000000000000000000000000000084610cca565b60085460405163791ac94760e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169263791ac947926117389287925f92889291909116904290600401611c5f565b5f604051808303815f87803b15801561174f575f80fd5b505af1158015611761573d5f803e3d5ffd5b505050505050565b6001600160a01b0382165f81815260136020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b0383166117e25760405162461bcd60e51b815260040161071090611b95565b6001600160a01b0382166118085760405162461bcd60e51b815260040161071090611bda565b6001600160a01b0383165f908152602081905260409020548181101561187f5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610710565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610e5f565b5f6118ee306109a5565b9050805f036118fa5750565b600f54819081111561190b5750600f545b610b10816115ac565b5f61191f8284611b5f565b9392505050565b5f61191f8284611b76565b5f6020808352835180828501525f5b8181101561195c57858101830151858201604001528201611940565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610761575f80fd5b5f80604083850312156119a1575f80fd5b82356119ac8161197c565b946020939093013593505050565b5f805f606084860312156119cc575f80fd5b83356119d78161197c565b925060208401356119e78161197c565b929592945050506040919091013590565b5f60208284031215611a08575f80fd5b5035919050565b5f60208284031215611a1f575f80fd5b813561191f8161197c565b8015158114610761575f80fd5b5f8060408385031215611a48575f80fd5b8235611a538161197c565b91506020830135611a6381611a2a565b809150509250929050565b5f8060408385031215611a7f575f80fd5b8235611a8a8161197c565b91506020830135611a638161197c565b5f8060408385031215611aab575f80fd5b50508035926020909101359150565b600181811c90821680611ace57607f821691505b602082108103611aec57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156106bf576106bf611af2565b5f805f60608486031215611b2b575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611b54575f80fd5b815161191f81611a2a565b80820281158282048414176106bf576106bf611af2565b5f82611b9057634e487b7160e01b5f52601260045260245ffd5b500490565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b818103818111156106bf576106bf611af2565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611c54575f80fd5b815161191f8161197c565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611cad5784516001600160a01b031683529383019391830191600101611c88565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212202d31003564c4d744c84c10b67407217638436fbd6ba4042a8971787e980bab7d64736f6c63430008140033
Deployed Bytecode
0x6080604052600436106101ff575f3560e01c8063715018a611610113578063c02466681161009d578063e2f456051161006d578063e2f456051461059b578063e61bf156146105b0578063f2fde38b146105cf578063f8b45b05146105ee578063ffb54a9914610603575f80fd5b8063c024666814610534578063c8c8ebe414610553578063c9567bf914610568578063dd62ed3e1461057c575f80fd5b80638da5cb5b116100e35780638da5cb5b146104a657806395d89b41146104c35780639a7a23d6146104d7578063a457c2d7146104f6578063a9059cbb14610515575f80fd5b8063715018a61461044057806371f5f01a14610454578063751039fc146104735780637571336a14610487575f80fd5b8063395093511161019457806349bd5a5e1161016457806349bd5a5e146103625780634fbee19314610399578063583e0568146103d05780636ddd17131461040357806370a0823114610421575f80fd5b806339509351146102fb578063398bb3181461031a57806342966c681461032e578063470624021461034d575f80fd5b806323b872dd116101cf57806323b872dd146102975780632b14ca56146102b6578063311028af146102cb578063313ce567146102e0575f80fd5b806306fdde031461020a578063095ea7b31461023457806313df6ccd1461026357806318160ddd14610279575f80fd5b3661020657005b5f80fd5b348015610215575f80fd5b5061021e61061c565b60405161022b9190611931565b60405180910390f35b34801561023f575f80fd5b5061025361024e366004611990565b6106ac565b604051901515815260200161022b565b34801561026e575f80fd5b506102776106c5565b005b348015610284575f80fd5b506002545b60405190815260200161022b565b3480156102a2575f80fd5b506102536102b13660046119ba565b610764565b3480156102c1575f80fd5b50610289600a5481565b3480156102d6575f80fd5b50610289600b5481565b3480156102eb575f80fd5b506040516009815260200161022b565b348015610306575f80fd5b50610253610315366004611990565b610787565b348015610325575f80fd5b506102776107a8565b348015610339575f80fd5b506102776103483660046119f8565b61099b565b348015610358575f80fd5b5061028960095481565b34801561036d575f80fd5b50600654610381906001600160a01b031681565b6040516001600160a01b03909116815260200161022b565b3480156103a4575f80fd5b506102536103b3366004611a0f565b6001600160a01b03165f9081526011602052604090205460ff1690565b3480156103db575f80fd5b506103817f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b34801561040e575f80fd5b5060105461025390610100900460ff1681565b34801561042c575f80fd5b5061028961043b366004611a0f565b6109a5565b34801561044b575f80fd5b506102776109bf565b34801561045f575f80fd5b5061027761046e3660046119f8565b6109d2565b34801561047e575f80fd5b50610277610a24565b348015610492575f80fd5b506102776104a1366004611a37565b610a39565b3480156104b1575f80fd5b506005546001600160a01b0316610381565b3480156104ce575f80fd5b5061021e610a6b565b3480156104e2575f80fd5b506102776104f1366004611a37565b610a7a565b348015610501575f80fd5b50610253610510366004611990565b610b14565b348015610520575f80fd5b5061025361052f366004611990565b610b8e565b34801561053f575f80fd5b5061027761054e366004611a37565b610b9b565b34801561055e575f80fd5b50610289600d5481565b348015610573575f80fd5b50610277610c01565b348015610587575f80fd5b50610289610596366004611a6e565b610c1a565b3480156105a6575f80fd5b50610289600f5481565b3480156105bb575f80fd5b506102776105ca366004611a9a565b610c44565b3480156105da575f80fd5b506102776105e9366004611a0f565b610c54565b3480156105f9575f80fd5b50610289600c5481565b34801561060e575f80fd5b506010546102539060ff1681565b60606003805461062b90611aba565b80601f016020809104026020016040519081016040528092919081815260200182805461065790611aba565b80156106a25780601f10610679576101008083540402835291602001916106a2565b820191905f5260205f20905b81548152906001019060200180831161068557829003601f168201915b5050505050905090565b5f336106b9818585610cca565b60019150505b92915050565b5f47116107195760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e3a206e6f2045544820696e2074686520636f6e747261637400000060448201526064015b60405180910390fd5b6007546001600160a01b0316336001600160a01b031614610738575f80fd5b60405133904780156108fc02915f818181858888f19350505050158015610761573d5f803e3d5ffd5b50565b5f33610771858285610ded565b61077c858585610e65565b506001949350505050565b5f336106b98185856107998383610c1a565b6107a39190611b06565b610cca565b6107b06113d1565b60105460ff16156108035760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610710565b610830307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d600b54610cca565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663f305d719473061086a306109a5565b6040516001600160e01b031960e086901b1681526001600160a01b03909216600483015260248201525f60448201819052606482015273f53b6766d2561fb86c95d0afc99fe78dd1c2807760848201524260a482015260c40160606040518083038185885af11580156108df573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109049190611b19565b505060065460405163095ea7b360e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d811660048301525f196024830152909116915063095ea7b3906044016020604051808303815f875af1158015610977573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107619190611b44565b610761338261142b565b6001600160a01b03165f9081526020819052604090205490565b6109c76113d1565b6109d05f61155b565b565b6008546001600160a01b0316336001600160a01b0316146109f1575f80fd5b5f6109fb306109a5565b90505f6064610a0a8484611b5f565b610a149190611b76565b9050610a1f816115ac565b505050565b610a2c6113d1565b600b54600d819055600c55565b610a416113d1565b6001600160a01b03919091165f908152601260205260409020805460ff1916911515919091179055565b60606004805461062b90611aba565b610a826113d1565b6006546001600160a01b0390811690831603610b065760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610710565b610b108282611769565b5050565b5f3381610b218286610c1a565b905083811015610b815760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610710565b61077c8286868403610cca565b5f336106b9818585610e65565b610ba36113d1565b6001600160a01b0382165f81815260116020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b610c096113d1565b6010805461ffff1916610101179055565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b610c4c6113d1565b600a55600955565b610c5c6113d1565b6001600160a01b038116610cc15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610710565b6107618161155b565b6001600160a01b038316610d2c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610710565b6001600160a01b038216610d8d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610710565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f610df88484610c1a565b90505f198114610e5f5781811015610e525760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610710565b610e5f8484848403610cca565b50505050565b6001600160a01b038316610e8b5760405162461bcd60e51b815260040161071090611b95565b6001600160a01b038216610eb15760405162461bcd60e51b815260040161071090611bda565b805f03610ec357610a1f83835f6117bc565b6005546001600160a01b03848116911614801590610eef57506005546001600160a01b03838116911614155b8015610f0357506001600160a01b03821615155b8015610f1a57506001600160a01b03821661dead14155b8015610f295750600e5460ff16155b156111fb5760105460ff16610fba576001600160a01b0383165f9081526011602052604090205460ff1680610f7557506001600160a01b0382165f9081526011602052604090205460ff165b610fba5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610710565b6001600160a01b0383165f9081526013602052604090205460ff168015610ff957506001600160a01b0382165f9081526012602052604090205460ff16155b156110cd57600d5481111561106e5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152608401610710565b600c5461107a836109a5565b6110849083611b06565b11156110c85760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610710565b6111fb565b6001600160a01b0382165f9081526013602052604090205460ff16801561110c57506001600160a01b0383165f9081526012602052604090205460ff16155b1561118257600d548111156110c85760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610710565b6001600160a01b0382165f9081526012602052604090205460ff166111fb57600c546111ad836109a5565b6111b79083611b06565b11156111fb5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610710565b5f611205306109a5565b600f5490915081118080156112215750601054610100900460ff165b80156112305750600e5460ff16155b801561125457506001600160a01b0385165f9081526013602052604090205460ff16155b801561127857506001600160a01b0385165f9081526011602052604090205460ff16155b801561129c57506001600160a01b0384165f9081526011602052604090205460ff16155b156112c157600e805460ff191660011790556112b66118e4565b600e805460ff191690555b600e545f9060ff161580156112ee57506001600160a01b0386165f9081526011602052604090205460ff16155b801561131257506001600160a01b0385165f9081526011602052604090205460ff16155b90505f81156113bd576001600160a01b0386165f9081526013602052604090205460ff16156113625761135b6064611355600a548861191490919063ffffffff16565b90611926565b905061139f565b6001600160a01b0387165f9081526013602052604090205460ff161561139f5761139c60646113556009548861191490919063ffffffff16565b90505b80156113b0576113b08730836117bc565b6113ba8186611c1d565b94505b6113c88787876117bc565b50505050505050565b6005546001600160a01b031633146109d05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610710565b6001600160a01b03821661148b5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610710565b6001600160a01b0382165f90815260208190526040902054818110156114fe5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610710565b6001600160a01b0383165f818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106115df576115df611c30565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561165b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061167f9190611c44565b8160018151811061169257611692611c30565b60200260200101906001600160a01b031690816001600160a01b0316815250506116dd307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84610cca565b60085460405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81169263791ac947926117389287925f92889291909116904290600401611c5f565b5f604051808303815f87803b15801561174f575f80fd5b505af1158015611761573d5f803e3d5ffd5b505050505050565b6001600160a01b0382165f81815260136020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b0383166117e25760405162461bcd60e51b815260040161071090611b95565b6001600160a01b0382166118085760405162461bcd60e51b815260040161071090611bda565b6001600160a01b0383165f908152602081905260409020548181101561187f5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610710565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610e5f565b5f6118ee306109a5565b9050805f036118fa5750565b600f54819081111561190b5750600f545b610b10816115ac565b5f61191f8284611b5f565b9392505050565b5f61191f8284611b76565b5f6020808352835180828501525f5b8181101561195c57858101830151858201604001528201611940565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610761575f80fd5b5f80604083850312156119a1575f80fd5b82356119ac8161197c565b946020939093013593505050565b5f805f606084860312156119cc575f80fd5b83356119d78161197c565b925060208401356119e78161197c565b929592945050506040919091013590565b5f60208284031215611a08575f80fd5b5035919050565b5f60208284031215611a1f575f80fd5b813561191f8161197c565b8015158114610761575f80fd5b5f8060408385031215611a48575f80fd5b8235611a538161197c565b91506020830135611a6381611a2a565b809150509250929050565b5f8060408385031215611a7f575f80fd5b8235611a8a8161197c565b91506020830135611a638161197c565b5f8060408385031215611aab575f80fd5b50508035926020909101359150565b600181811c90821680611ace57607f821691505b602082108103611aec57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156106bf576106bf611af2565b5f805f60608486031215611b2b575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611b54575f80fd5b815161191f81611a2a565b80820281158282048414176106bf576106bf611af2565b5f82611b9057634e487b7160e01b5f52601260045260245ffd5b500490565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b818103818111156106bf576106bf611af2565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611c54575f80fd5b815161191f8161197c565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611cad5784516001600160a01b031683529383019391830191600101611c88565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212202d31003564c4d744c84c10b67407217638436fbd6ba4042a8971787e980bab7d64736f6c63430008140033
Deployed Bytecode Sourcemap
14598:8154:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9827:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10758:201;;;;;;;;;;-1:-1:-1;10758:201:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;10758:201:0;1023:187:1;22149:225:0;;;;;;;;;;;;;:::i;:::-;;10147:108;;;;;;;;;;-1:-1:-1;10235:12:0;;10147:108;;;1361:25:1;;;1349:2;1334:18;10147:108:0;1215:177:1;10967:261:0;;;;;;;;;;-1:-1:-1;10967:261:0;;;;;:::i;:::-;;:::i;14934:27::-;;;;;;;;;;;;;;;;15013:64;;;;;;;;;;;;;;;;10047:92;;;;;;;;;;-1:-1:-1;10047:92:0;;10130:1;2000:36:1;;1988:2;1973:18;10047:92:0;1858:184:1;11236:238:0;;;;;;;;;;-1:-1:-1;11236:238:0;;;;;:::i;:::-;;:::i;17005:547::-;;;;;;;;;;;;;:::i;17830:85::-;;;;;;;;;;-1:-1:-1;17830:85:0;;;;;:::i;:::-;;:::i;14901:26::-;;;;;;;;;;;;;;;;14733:28;;;;;;;;;;-1:-1:-1;14733:28:0;;;;-1:-1:-1;;;;;14733:28:0;;;;;;-1:-1:-1;;;;;2396:32:1;;;2378:51;;2366:2;2351:18;14733:28:0;2232:203:1;18572:126:0;;;;;;;;;;-1:-1:-1;18572:126:0;;;;;:::i;:::-;-1:-1:-1;;;;;18662:28:0;18638:4;18662:28;;;:19;:28;;;;;;;;;18572:126;14674:52;;;;;;;;;;;;;;;15374:31;;;;;;;;;;-1:-1:-1;15374:31:0;;;;;;;;;;;10263:127;;;;;;;;;;-1:-1:-1;10263:127:0;;;;;:::i;:::-;;:::i;1038:103::-;;;;;;;;;;;;;:::i;21868:273::-;;;;;;;;;;-1:-1:-1;21868:273:0;;;;;:::i;:::-;;:::i;21716:144::-;;;;;;;;;;;;;:::i;17678:::-;;;;;;;;;;-1:-1:-1;17678:144:0;;;;;:::i;:::-;;:::i;803:87::-;;;;;;;;;;-1:-1:-1;876:6:0;;-1:-1:-1;;;;;876:6:0;803:87;;9935:104;;;;;;;;;;;;;:::i;18113:257::-;;;;;;;;;;-1:-1:-1;18113:257:0;;;;;:::i;:::-;;:::i;11482:436::-;;;;;;;;;;-1:-1:-1;11482:436:0;;;;;:::i;:::-;;:::i;10398:193::-;;;;;;;;;;-1:-1:-1;10398:193:0;;;;;:::i;:::-;;:::i;17923:182::-;;;;;;;;;;-1:-1:-1;17923:182:0;;;;;:::i;:::-;;:::i;15172:47::-;;;;;;;;;;;;;;;;17560:110;;;;;;;;;;;;;:::i;10599:151::-;;;;;;;;;;-1:-1:-1;10599:151:0;;;;;:::i;:::-;;:::i;15262:65::-;;;;;;;;;;;;;;;;21568:140;;;;;;;;;;-1:-1:-1;21568:140:0;;;;;:::i;:::-;;:::i;1149:201::-;;;;;;;;;;-1:-1:-1;1149:201:0;;;;;:::i;:::-;;:::i;15108:57::-;;;;;;;;;;;;;;;;15336:31;;;;;;;;;;-1:-1:-1;15336:31:0;;;;;;;;9827:100;9881:13;9914:5;9907:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9827:100;:::o;10758:201::-;10841:4;356:10;10897:32;356:10;10913:7;10922:6;10897:8;:32::i;:::-;10947:4;10940:11;;;10758:201;;;;;:::o;22149:225::-;22224:1;22200:21;:25;22192:67;;;;-1:-1:-1;;;22192:67:0;;4669:2:1;22192:67:0;;;4651:21:1;4708:2;4688:18;;;4681:30;4747:31;4727:18;;;4720:59;4796:18;;22192:67:0;;;;;;;;;22294:9;;-1:-1:-1;;;;;22294:9:0;356:10;-1:-1:-1;;;;;22278:25:0;;22270:34;;;;;;22315:51;;22323:10;;22344:21;22315:51;;;;;;;;;22344:21;22323:10;22315:51;;;;;;;;;;;;;;;;;;;;;22149:225::o;10967:261::-;11064:4;356:10;11122:38;11138:4;356:10;11153:6;11122:15;:38::i;:::-;11171:27;11181:4;11187:2;11191:6;11171:9;:27::i;:::-;-1:-1:-1;11216:4:0;;10967:261;-1:-1:-1;;;;10967:261:0:o;11236:238::-;11324:4;356:10;11380:64;356:10;11396:7;11433:10;11405:25;356:10;11396:7;11405:9;:25::i;:::-;:38;;;;:::i;:::-;11380:8;:64::i;17005:547::-;762:13;:11;:13::i;:::-;17072:11:::1;::::0;::::1;;17071:12;17063:47;;;::::0;-1:-1:-1;;;17063:47:0;;5289:2:1;17063:47:0::1;::::0;::::1;5271:21:1::0;5328:2;5308:18;;;5301:30;5367:25;5347:18;;;5340:53;5410:18;;17063:47:0::1;5087:347:1::0;17063:47:0::1;17121:70;17138:4;17153:16;17172:18;;17121:8;:70::i;:::-;17202:16;-1:-1:-1::0;;;;;17202:32:0::1;;17242:21;17287:4;17307:24;17325:4;17307:9;:24::i;:::-;17202:259;::::0;-1:-1:-1;;;;;;17202:259:0::1;::::0;;;;;;-1:-1:-1;;;;;5798:15:1;;;17202:259:0::1;::::0;::::1;5780:34:1::0;5830:18;;;5823:34;17346:1:0::1;5873:18:1::0;;;5866:34;;;5916:18;;;5909:34;17378:42:0::1;5959:19:1::0;;;5952:44;17435:15:0::1;6012:19:1::0;;;6005:35;5714:19;;17202:259:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;17479:13:0::1;::::0;17472:72:::1;::::0;-1:-1:-1;;;17472:72:0;;-1:-1:-1;;;;;17510:16:0::1;6554:32:1::0;;17472:72:0::1;::::0;::::1;6536:51:1::0;-1:-1:-1;;6603:18:1;;;6596:34;17479:13:0;;::::1;::::0;-1:-1:-1;17472:29:0::1;::::0;6509:18:1;;17472:72:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;17830:85::-:0;17880:27;356:10;17900:6;17880:5;:27::i;10263:127::-;-1:-1:-1;;;;;10364:18:0;10337:7;10364:18;;;;;;;;;;;;10263:127::o;1038:103::-;762:13;:11;:13::i;:::-;1103:30:::1;1130:1;1103:18;:30::i;:::-;1038:103::o:0;21868:273::-;21954:15;;-1:-1:-1;;;;;21954:15:0;356:10;-1:-1:-1;;;;;21938:31:0;;21930:40;;;;;;21981:23;22007:24;22025:4;22007:9;:24::i;:::-;21981:50;-1:-1:-1;22042:18:0;22091:3;22063:25;22081:7;21981:50;22063:25;:::i;:::-;:31;;;;:::i;:::-;22042:52;;22105:28;22122:10;22105:16;:28::i;:::-;21919:222;;21868:273;:::o;21716:144::-;762:13;:11;:13::i;:::-;21793:18:::1;::::0;21770:20:::1;:41:::0;;;21822:9:::1;:30:::0;21716:144::o;17678:::-;762:13;:11;:13::i;:::-;-1:-1:-1;;;;;17768:39:0;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;17768:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17678:144::o;9935:104::-;9991:13;10024:7;10017:14;;;;;:::i;18113:257::-;762:13;:11;:13::i;:::-;18235::::1;::::0;-1:-1:-1;;;;;18235:13:0;;::::1;18227:21:::0;;::::1;::::0;18219:91:::1;;;::::0;-1:-1:-1;;;18219:91:0;;7488:2:1;18219:91:0::1;::::0;::::1;7470:21:1::0;7527:2;7507:18;;;7500:30;7566:34;7546:18;;;7539:62;7637:27;7617:18;;;7610:55;7682:19;;18219:91:0::1;7286:421:1::0;18219:91:0::1;18321:41;18350:4;18356:5;18321:28;:41::i;:::-;18113:257:::0;;:::o;11482:436::-;11575:4;356:10;11575:4;11658:25;356:10;11675:7;11658:9;:25::i;:::-;11631:52;;11722:15;11702:16;:35;;11694:85;;;;-1:-1:-1;;;11694:85:0;;7914:2:1;11694:85:0;;;7896:21:1;7953:2;7933:18;;;7926:30;7992:34;7972:18;;;7965:62;-1:-1:-1;;;8043:18:1;;;8036:35;8088:19;;11694:85:0;7712:401:1;11694:85:0;11815:60;11824:5;11831:7;11859:15;11840:16;:34;11815:8;:60::i;10398:193::-;10477:4;356:10;10533:28;356:10;10550:2;10554:6;10533:9;:28::i;17923:182::-;762:13;:11;:13::i;:::-;-1:-1:-1;;;;;18008:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;18008:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;18063:34;;1163:41:1;;;18063:34:0::1;::::0;1136:18:1;18063:34:0::1;;;;;;;17923:182:::0;;:::o;17560:110::-;762:13;:11;:13::i;:::-;17615:11:::1;:18:::0;;-1:-1:-1;;17644:18:0;;;;;17560:110::o;10599:151::-;-1:-1:-1;;;;;10715:18:0;;;10688:7;10715:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10599:151::o;21568:140::-;762:13;:11;:13::i;:::-;21655:7:::1;:18:::0;21684:6:::1;:16:::0;21568:140::o;1149:201::-;762:13;:11;:13::i;:::-;-1:-1:-1;;;;;1238:22:0;::::1;1230:73;;;::::0;-1:-1:-1;;;1230:73:0;;8320:2:1;1230:73:0::1;::::0;::::1;8302:21:1::0;8359:2;8339:18;;;8332:30;8398:34;8378:18;;;8371:62;-1:-1:-1;;;8449:18:1;;;8442:36;8495:19;;1230:73:0::1;8118:402:1::0;1230:73:0::1;1314:28;1333:8;1314:18;:28::i;13621:346::-:0;-1:-1:-1;;;;;13723:19:0;;13715:68;;;;-1:-1:-1;;;13715:68:0;;8727:2:1;13715:68:0;;;8709:21:1;8766:2;8746:18;;;8739:30;8805:34;8785:18;;;8778:62;-1:-1:-1;;;8856:18:1;;;8849:34;8900:19;;13715:68:0;8525:400:1;13715:68:0;-1:-1:-1;;;;;13802:21:0;;13794:68;;;;-1:-1:-1;;;13794:68:0;;9132:2:1;13794:68:0;;;9114:21:1;9171:2;9151:18;;;9144:30;9210:34;9190:18;;;9183:62;-1:-1:-1;;;9261:18:1;;;9254:32;9303:19;;13794:68:0;8930:398:1;13794:68:0;-1:-1:-1;;;;;13875:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;13927:32;;1361:25:1;;;13927:32:0;;1334:18:1;13927:32:0;;;;;;;13621:346;;;:::o;13975:419::-;14076:24;14103:25;14113:5;14120:7;14103:9;:25::i;:::-;14076:52;;-1:-1:-1;;14143:16:0;:37;14139:248;;14225:6;14205:16;:26;;14197:68;;;;-1:-1:-1;;;14197:68:0;;9535:2:1;14197:68:0;;;9517:21:1;9574:2;9554:18;;;9547:30;9613:31;9593:18;;;9586:59;9662:18;;14197:68:0;9333:353:1;14197:68:0;14309:51;14318:5;14325:7;14353:6;14334:16;:25;14309:8;:51::i;:::-;14065:329;13975:419;;;:::o;18706:2370::-;-1:-1:-1;;;;;18804:18:0;;18796:68;;;;-1:-1:-1;;;18796:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18883:16:0;;18875:64;;;;-1:-1:-1;;;18875:64:0;;;;;;;:::i;:::-;18956:6;18966:1;18956:11;18952:93;;18984:28;19000:4;19006:2;19010:1;18984:15;:28::i;18952:93::-;876:6;;-1:-1:-1;;;;;19061:15:0;;;876:6;;19061:15;;;;:32;;-1:-1:-1;876:6:0;;-1:-1:-1;;;;;19080:13:0;;;876:6;;19080:13;;19061:32;:52;;;;-1:-1:-1;;;;;;19097:16:0;;;;19061:52;:77;;;;-1:-1:-1;;;;;;19117:21:0;;19131:6;19117:21;;19061:77;:90;;;;-1:-1:-1;19143:8:0;;;;19142:9;19061:90;19057:1012;;;19173:11;;;;19168:140;;-1:-1:-1;;;;;19213:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;19242:23:0;;;;;;:19;:23;;;;;;;;19213:52;19205:87;;;;-1:-1:-1;;;19205:87:0;;10703:2:1;19205:87:0;;;10685:21:1;10742:2;10722:18;;;10715:30;-1:-1:-1;;;10761:18:1;;;10754:52;10823:18;;19205:87:0;10501:346:1;19205:87:0;-1:-1:-1;;;;;19328:31:0;;;;;;:25;:31;;;;;;;;:71;;;;-1:-1:-1;;;;;;19364:35:0;;;;;;:31;:35;;;;;;;;19363:36;19328:71;19324:734;;;19462:20;;19452:6;:30;;19444:96;;;;-1:-1:-1;;;19444:96:0;;11054:2:1;19444:96:0;;;11036:21:1;11093:2;11073:18;;;11066:30;11132:34;11112:18;;;11105:62;-1:-1:-1;;;11183:18:1;;;11176:51;11244:19;;19444:96:0;10852:417:1;19444:96:0;19593:9;;19576:13;19586:2;19576:9;:13::i;:::-;19567:22;;:6;:22;:::i;:::-;:35;;19559:67;;;;-1:-1:-1;;;19559:67:0;;11476:2:1;19559:67:0;;;11458:21:1;11515:2;11495:18;;;11488:30;-1:-1:-1;;;11534:18:1;;;11527:49;11593:18;;19559:67:0;11274:343:1;19559:67:0;19324:734;;;-1:-1:-1;;;;;19665:29:0;;;;;;:25;:29;;;;;;;;:71;;;;-1:-1:-1;;;;;;19699:37:0;;;;;;:31;:37;;;;;;;;19698:38;19665:71;19661:397;;;19800:20;;19790:6;:30;;19782:97;;;;-1:-1:-1;;;19782:97:0;;11824:2:1;19782:97:0;;;11806:21:1;11863:2;11843:18;;;11836:30;11902:34;11882:18;;;11875:62;-1:-1:-1;;;11953:18:1;;;11946:52;12015:19;;19782:97:0;11622:418:1;19661:397:0;-1:-1:-1;;;;;19919:35:0;;;;;;:31;:35;;;;;;;;19914:144;;20009:9;;19992:13;20002:2;19992:9;:13::i;:::-;19983:22;;:6;:22;:::i;:::-;:35;;19975:67;;;;-1:-1:-1;;;19975:67:0;;11476:2:1;19975:67:0;;;11458:21:1;11515:2;11495:18;;;11488:30;-1:-1:-1;;;11534:18:1;;;11527:49;11593:18;;19975:67:0;11274:343:1;19975:67:0;20123:28;20154:24;20172:4;20154:9;:24::i;:::-;20227:18;;20123:55;;-1:-1:-1;20204:41:0;;;20260:22;;;;-1:-1:-1;20271:11:0;;;;;;;20260:22;:35;;;;-1:-1:-1;20287:8:0;;;;20286:9;20260:35;:71;;;;-1:-1:-1;;;;;;20300:31:0;;;;;;:25;:31;;;;;;;;20299:32;20260:71;:101;;;;-1:-1:-1;;;;;;20336:25:0;;;;;;:19;:25;;;;;;;;20335:26;20260:101;:129;;;;-1:-1:-1;;;;;;20366:23:0;;;;;;:19;:23;;;;;;;;20365:24;20260:129;20256:233;;;20406:8;:15;;-1:-1:-1;;20406:15:0;20417:4;20406:15;;;20436:10;:8;:10::i;:::-;20461:8;:16;;-1:-1:-1;;20461:16:0;;;20256:233;20517:8;;20501:12;;20517:8;;20516:9;:39;;;;-1:-1:-1;;;;;;20530:25:0;;;;;;:19;:25;;;;;;;;20529:26;20516:39;:67;;;;-1:-1:-1;;;;;;20560:23:0;;;;;;:19;:23;;;;;;;;20559:24;20516:67;20501:82;;20596:12;20627:7;20623:402;;;-1:-1:-1;;;;;20655:29:0;;;;;;:25;:29;;;;;;;;20651:229;;;20712:28;20736:3;20712:19;20723:7;;20712:6;:10;;:19;;;;:::i;:::-;:23;;:28::i;:::-;20705:35;;20651:229;;;-1:-1:-1;;;;;20778:31:0;;;;;;:25;:31;;;;;;;;20775:105;;;20837:27;20860:3;20837:18;20848:6;;20837;:10;;:18;;;;:::i;:27::-;20830:34;;20775:105;20898:8;;20894:91;;20927:42;20943:4;20957;20964;20927:15;:42::i;:::-;20999:14;21009:4;20999:14;;:::i;:::-;;;20623:402;21035:33;21051:4;21057:2;21061:6;21035:15;:33::i;:::-;18785:2291;;;;18706:2370;;;:::o;898:132::-;876:6;;-1:-1:-1;;;;;876:6:0;356:10;962:23;954:68;;;;-1:-1:-1;;;954:68:0;;12380:2:1;954:68:0;;;12362:21:1;;;12399:18;;;12392:30;12458:34;12438:18;;;12431:62;12510:18;;954:68:0;12178:356:1;13018:595:0;-1:-1:-1;;;;;13102:21:0;;13094:67;;;;-1:-1:-1;;;13094:67:0;;12741:2:1;13094:67:0;;;12723:21:1;12780:2;12760:18;;;12753:30;12819:34;12799:18;;;12792:62;-1:-1:-1;;;12870:18:1;;;12863:31;12911:19;;13094:67:0;12539:397:1;13094:67:0;-1:-1:-1;;;;;13261:18:0;;13236:22;13261:18;;;;;;;;;;;13298:24;;;;13290:71;;;;-1:-1:-1;;;13290:71:0;;13143:2:1;13290:71:0;;;13125:21:1;13182:2;13162:18;;;13155:30;13221:34;13201:18;;;13194:62;-1:-1:-1;;;13272:18:1;;;13265:32;13314:19;;13290:71:0;12941:398:1;13290:71:0;-1:-1:-1;;;;;13397:18:0;;:9;:18;;;;;;;;;;;13418:23;;;13397:44;;13456:12;:22;;;;;;;13507:37;1361:25:1;;;13397:9:0;;:18;13507:37;;1334:18:1;13507:37:0;;;;;;;21919:222;;21868:273;:::o;1358:191::-;1451:6;;;-1:-1:-1;;;;;1468:17:0;;;-1:-1:-1;;;;;;1468:17:0;;;;;;;1501:40;;1451:6;;;1468:17;1451:6;;1501:40;;1432:16;;1501:40;1421:128;1358:191;:::o;21084:476::-;21174:16;;;21188:1;21174:16;;;;;;;;21150:21;;21174:16;;;;;;;;;;-1:-1:-1;21174:16:0;21150:40;;21219:4;21201;21206:1;21201:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;21201:23:0;;;-1:-1:-1;;;;;21201:23:0;;;;;21245:16;-1:-1:-1;;;;;21245:21:0;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21235:4;21240:1;21235:7;;;;;;;;:::i;:::-;;;;;;:33;-1:-1:-1;;;;;21235:33:0;;;-1:-1:-1;;;;;21235:33:0;;;;;21279:63;21296:4;21311:16;21330:11;21279:8;:63::i;:::-;21496:15;;21353:199;;-1:-1:-1;;;21353:199:0;;-1:-1:-1;;;;;21353:16:0;:67;;;;;:199;;21435:11;;21461:1;;21477:4;;21496:15;;;;;21526;;21353:199;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21139:421;21084:476;:::o;18378:186::-;-1:-1:-1;;;;;18461:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;18461:39:0;;;;;;;;;;18516:40;;18461:39;;:31;18516:40;;;18378:186;;:::o;11926:641::-;-1:-1:-1;;;;;12023:18:0;;12015:68;;;;-1:-1:-1;;;12015:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12102:16:0;;12094:64;;;;-1:-1:-1;;;12094:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12244:15:0;;12222:19;12244:15;;;;;;;;;;;12278:21;;;;12270:72;;;;-1:-1:-1;;;12270:72:0;;15051:2:1;12270:72:0;;;15033:21:1;15090:2;15070:18;;;15063:30;15129:34;15109:18;;;15102:62;-1:-1:-1;;;15180:18:1;;;15173:36;15226:19;;12270:72:0;14849:402:1;12270:72:0;-1:-1:-1;;;;;12378:15:0;;;:9;:15;;;;;;;;;;;12396:20;;;12378:38;;12431:13;;;;;;;;;;:23;;;;;;12483:26;;1361:25:1;;;12431:13:0;;12483:26;;1334:18:1;12483:26:0;;;;;;;12522:37;21868:273;22382:367;22421:23;22447:24;22465:4;22447:9;:24::i;:::-;22421:50;;22486:15;22505:1;22486:20;22482:59;;22523:7;22382:367::o;22482:59::-;22621:18;;22574:15;;22606:33;;22602:99;;;-1:-1:-1;22671:18:0;;22602:99;22711:30;22728:12;22711:16;:30::i;8284:98::-;8342:7;8369:5;8373:1;8369;:5;:::i;:::-;8362:12;8284:98;-1:-1:-1;;;8284:98:0:o;8390:::-;8448:7;8475:5;8479:1;8475;: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;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:180::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;-1:-1:-1;2198:23:1;;2047:180;-1:-1:-1;2047:180:1:o;2440:247::-;2499:6;2552:2;2540:9;2531:7;2527:23;2523:32;2520:52;;;2568:1;2565;2558:12;2520:52;2607:9;2594:23;2626:31;2651:5;2626:31;:::i;2926:118::-;3012:5;3005:13;2998:21;2991:5;2988:32;2978:60;;3034:1;3031;3024:12;3049:382;3114:6;3122;3175:2;3163:9;3154:7;3150:23;3146:32;3143:52;;;3191:1;3188;3181:12;3143:52;3230:9;3217:23;3249:31;3274:5;3249:31;:::i;:::-;3299:5;-1:-1:-1;3356:2:1;3341:18;;3328:32;3369:30;3328:32;3369:30;:::i;:::-;3418:7;3408:17;;;3049:382;;;;;:::o;3436:388::-;3504:6;3512;3565:2;3553:9;3544:7;3540:23;3536:32;3533:52;;;3581:1;3578;3571:12;3533:52;3620:9;3607:23;3639:31;3664:5;3639:31;:::i;:::-;3689:5;-1:-1:-1;3746:2:1;3731:18;;3718:32;3759:33;3718:32;3759:33;:::i;3829:248::-;3897:6;3905;3958:2;3946:9;3937:7;3933:23;3929:32;3926:52;;;3974:1;3971;3964:12;3926:52;-1:-1:-1;;3997:23:1;;;4067:2;4052:18;;;4039:32;;-1:-1:-1;3829:248:1:o;4082:380::-;4161:1;4157:12;;;;4204;;;4225:61;;4279:4;4271:6;4267:17;4257:27;;4225:61;4332:2;4324:6;4321:14;4301:18;4298:38;4295:161;;4378:10;4373:3;4369:20;4366:1;4359:31;4413:4;4410:1;4403:15;4441:4;4438:1;4431:15;4295:161;;4082:380;;;:::o;4825:127::-;4886:10;4881:3;4877:20;4874:1;4867:31;4917:4;4914:1;4907:15;4941:4;4938:1;4931:15;4957:125;5022:9;;;5043:10;;;5040:36;;;5056:18;;:::i;6051:306::-;6139:6;6147;6155;6208:2;6196:9;6187:7;6183:23;6179:32;6176:52;;;6224:1;6221;6214:12;6176:52;6253:9;6247:16;6237:26;;6303:2;6292:9;6288:18;6282:25;6272:35;;6347:2;6336:9;6332:18;6326:25;6316:35;;6051:306;;;;;:::o;6641:245::-;6708:6;6761:2;6749:9;6740:7;6736:23;6732:32;6729:52;;;6777:1;6774;6767:12;6729:52;6809:9;6803:16;6828:28;6850:5;6828:28;:::i;6891:168::-;6964:9;;;6995;;7012:15;;;7006:22;;6992:37;6982:71;;7033:18;;:::i;7064:217::-;7104:1;7130;7120:132;;7174:10;7169:3;7165:20;7162:1;7155:31;7209:4;7206:1;7199:15;7237:4;7234:1;7227:15;7120:132;-1:-1:-1;7266:9:1;;7064:217::o;9691:401::-;9893:2;9875:21;;;9932:2;9912:18;;;9905:30;9971:34;9966:2;9951:18;;9944:62;-1:-1:-1;;;10037:2:1;10022:18;;10015:35;10082:3;10067:19;;9691:401::o;10097:399::-;10299:2;10281:21;;;10338:2;10318:18;;;10311:30;10377:34;10372:2;10357:18;;10350:62;-1:-1:-1;;;10443:2:1;10428:18;;10421:33;10486:3;10471:19;;10097:399::o;12045:128::-;12112:9;;;12133:11;;;12130:37;;;12147:18;;:::i;13476:127::-;13537:10;13532:3;13528:20;13525:1;13518:31;13568:4;13565:1;13558:15;13592:4;13589:1;13582:15;13608:251;13678:6;13731:2;13719:9;13710:7;13706:23;13702:32;13699:52;;;13747:1;13744;13737:12;13699:52;13779:9;13773:16;13798:31;13823:5;13798:31;:::i;13864:980::-;14126:4;14174:3;14163:9;14159:19;14205:6;14194:9;14187:25;14231:2;14269:6;14264:2;14253:9;14249:18;14242:34;14312:3;14307:2;14296:9;14292:18;14285:31;14336:6;14371;14365:13;14402:6;14394;14387:22;14440:3;14429:9;14425:19;14418:26;;14479:2;14471:6;14467:15;14453:29;;14500:1;14510:195;14524:6;14521:1;14518:13;14510:195;;;14589:13;;-1:-1:-1;;;;;14585:39:1;14573:52;;14680:15;;;;14645:12;;;;14621:1;14539:9;14510:195;;;-1:-1:-1;;;;;;;14761:32:1;;;;14756:2;14741:18;;14734:60;-1:-1:-1;;;14825:3:1;14810:19;14803:35;14722:3;13864:980;-1:-1:-1;;;13864:980:1:o
Swarm Source
ipfs://2d31003564c4d744c84c10b67407217638436fbd6ba4042a8971787e980bab7d
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.