Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
10,000,000 BD
Holders
40
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
89,164.698411334 BDValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
BeaconDao
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-01-13 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.17; 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 allPairsLength() external view returns (uint256); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint256) external view returns (address pair); 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 Burn( address indexed sender, uint256 amount0, uint256 amount1, address indexed to ); 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 burn(address to) external returns (uint256 amount0, uint256 amount1); 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 IUniswapV2Router01 { 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 removeLiquidity( address tokenA, address tokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns (uint256 amountA, uint256 amountB); function removeLiquidityETH( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external returns (uint256 amountToken, uint256 amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountA, uint256 amountB); function removeLiquidityETHWithPermit( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountToken, uint256 amountETH); function swapExactTokensForTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapTokensForExactTokens( uint256 amountOut, uint256 amountInMax, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapExactETHForTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable returns (uint256[] memory amounts); function swapTokensForExactETH( uint256 amountOut, uint256 amountInMax, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapExactTokensForETH( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapETHForExactTokens( uint256 amountOut, address[] calldata path, address to, uint256 deadline ) external payable returns (uint256[] memory amounts); function quote( uint256 amountA, uint256 reserveA, uint256 reserveB ) external pure returns (uint256 amountB); function getAmountOut( uint256 amountIn, uint256 reserveIn, uint256 reserveOut ) external pure returns (uint256 amountOut); function getAmountIn( uint256 amountOut, uint256 reserveIn, uint256 reserveOut ) external pure returns (uint256 amountIn); function getAmountsOut(uint256 amountIn, address[] calldata path) external view returns (uint256[] memory amounts); function getAmountsIn(uint256 amountOut, address[] calldata path) external view returns (uint256[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external returns (uint256 amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountETH); function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } 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 decimals() external view returns (uint8); function symbol() external view returns (string memory); } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } 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); } } 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_; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() external view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the name of the token. */ function name() external view virtual override returns (string memory) { return _name; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function decimals() public view virtual override returns (uint8) { return 9; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() external view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `to` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address to, uint256 amount) external virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } /** * @dev See {IERC20-approve}. * * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on * `transferFrom`. This is semantically equivalent to an infinite approval. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) external virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } function transferFrom( address from, address to, uint256 amount ) external virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) external 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 increaseAllowance(address spender, uint256 addedValue) external virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _totalSupply += amount; unchecked { // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above. _balances[account] += amount; } emit Transfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; // Overflow not possible: amount <= accountBalance <= totalSupply. _totalSupply -= amount; } emit Transfer(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 _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"); uint256 fromBalance = _balances[from]; require( fromBalance >= amount, "ERC20: transfer amount exceeds balance" ); unchecked { _balances[from] = fromBalance - amount; // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by // decrementing then incrementing. _balances[to] += amount; } emit Transfer(from, to, amount); } } contract BeaconDao is ERC20, Ownable { string private _name = "Beacon Dao"; string private _symbol = "BD"; uint8 private _decimals = 9; uint256 private _supply = 10_000_000; uint256 public taxForLiquidity = 1; // buy liquidity fee uint256 public taxForMarketing = 4; // buy marketing fee uint256 public sellTaxForLiquidity = 5; // sell liquidity fee uint256 public sellTaxForMarketing = 20; // sell marketing fee uint256 public maxTxAmount = 100000 * 10**_decimals; uint256 public maxWalletAmount = 100000 * 10**_decimals; address public marketingWallet = 0xC6b6170308C4fE2d890b5CB4147D62FF53307f94; //marketing wallet address IUniswapV2Router02 public immutable uniswapV2Router; address public immutable uniswapV2Pair; uint256 private _marketingReserves = 0; mapping(address => bool) private _isExcludedFromFee; uint256 private _numTokensSellToAddToLiquidity = 5000 * 10**_decimals; uint256 private _numTokensSellToAddToETH = 2000 * 10**_decimals; bool inSwapAndLiquify; event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); modifier lockTheSwap() { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor() ERC20(_name, _symbol) { _mint(msg.sender, (_supply * 10**_decimals)); IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // router address uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; _isExcludedFromFee[address(uniswapV2Router)] = true; _isExcludedFromFee[msg.sender] = true; _isExcludedFromFee[marketingWallet] = true; } 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"); require(balanceOf(from) >= amount, "ERC20: transfer amount exceeds balance"); if ((from == uniswapV2Pair || to == uniswapV2Pair) && !inSwapAndLiquify) { if (from != uniswapV2Pair) { uint256 contractLiquidityBalance = balanceOf(address(this)) - _marketingReserves; if (contractLiquidityBalance >= _numTokensSellToAddToLiquidity) { _swapAndLiquify(_numTokensSellToAddToLiquidity); } if ((_marketingReserves) >= _numTokensSellToAddToETH) { _swapTokensForEth(_numTokensSellToAddToETH); _marketingReserves -= _numTokensSellToAddToETH; bool sent = payable(marketingWallet).send(address(this).balance); require(sent, "Failed to send ETH"); } } uint256 transferAmount; if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) { transferAmount = amount; } else { require(amount <= maxTxAmount, "ERC20: transfer amount exceeds the max transaction amount"); if(from == uniswapV2Pair){ require((amount + balanceOf(to)) <= maxWalletAmount, "ERC20: balance amount exceeded max wallet amount limit"); } if(to == uniswapV2Pair) { uint256 marketingShare = ((amount * sellTaxForMarketing) / 100); uint256 liquidityShare = ((amount * sellTaxForLiquidity) / 100); transferAmount = amount - (marketingShare + liquidityShare); _marketingReserves += marketingShare; super._transfer(from, address(this), (marketingShare + liquidityShare)); } else { uint256 marketingShare = ((amount * taxForMarketing) / 100); uint256 liquidityShare = ((amount * taxForLiquidity) / 100); transferAmount = amount - (marketingShare + liquidityShare); _marketingReserves += marketingShare; super._transfer(from, address(this), (marketingShare + liquidityShare)); } } super._transfer(from, to, transferAmount); } else { super._transfer(from, to, amount); } } function _swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap { uint256 half = (contractTokenBalance / 2); uint256 otherHalf = (contractTokenBalance - half); uint256 initialBalance = address(this).balance; _swapTokensForEth(half); uint256 newBalance = (address(this).balance - initialBalance); _addLiquidity(otherHalf, newBalance); emit SwapAndLiquify(half, newBalance, otherHalf); } function _swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), (block.timestamp + 300) ); } function _addLiquidity(uint256 tokenAmount, uint256 ethAmount) private lockTheSwap { _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, 0, owner(), block.timestamp ); } function changeMarketingWallet(address newWallet) public onlyOwner returns (bool) { marketingWallet = newWallet; return true; } function changeTaxForLiquidityAndMarketing(uint256 _taxForLiquidity, uint256 _taxForMarketing) public onlyOwner returns (bool) { require((_taxForLiquidity+_taxForMarketing) <= 100, "ERC20: total tax must not be greater than 100"); taxForLiquidity = _taxForLiquidity; taxForMarketing = _taxForMarketing; return true; } function changeSellTaxForLiquidityAndMarketing(uint256 _sellTaxForLiquidity, uint256 _sellTaxForMarketing) public onlyOwner returns (bool) { require((_sellTaxForLiquidity+_sellTaxForMarketing) <= 100, "ERC20: total tax must not be greater than 100"); sellTaxForLiquidity = _sellTaxForLiquidity; sellTaxForMarketing = _sellTaxForMarketing; return true; } function changeMaxTxAmount(uint256 _maxTxAmount) public onlyOwner returns (bool) { maxTxAmount = _maxTxAmount; return true; } function changeMaxWalletAmount(uint256 _maxWalletAmount) public onlyOwner returns (bool) { maxWalletAmount = _maxWalletAmount; return true; } receive() external payable {} }
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":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","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":"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":"address","name":"newWallet","type":"address"}],"name":"changeMarketingWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"changeMaxTxAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxWalletAmount","type":"uint256"}],"name":"changeMaxWalletAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sellTaxForLiquidity","type":"uint256"},{"internalType":"uint256","name":"_sellTaxForMarketing","type":"uint256"}],"name":"changeSellTaxForLiquidityAndMarketing","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_taxForLiquidity","type":"uint256"},{"internalType":"uint256","name":"_taxForMarketing","type":"uint256"}],"name":"changeTaxForLiquidityAndMarketing","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","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":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTaxForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxForMarketing","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":"taxForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
610100604052600a60c090815269426561636f6e2044616f60b01b60e0526006906200002c908262000659565b50604080518082019091526002815261109160f21b602082015260079062000055908262000659565b506008805460ff191660099081179091556298968081556001600a9081556004600b556005600c556014600d556200008e91906200083a565b6200009d90620186a062000852565b600e55600854620000b39060ff16600a6200083a565b620000c290620186a062000852565b600f55601080546001600160a01b03191673c6b6170308c4fe2d890b5cb4147d62ff53307f941790556000601155600854620001039060ff16600a6200083a565b620001119061138862000852565b601355600854620001279060ff16600a6200083a565b62000135906107d062000852565b6014553480156200014557600080fd5b50600680546200015590620005ca565b80601f01602080910402602001604051908101604052809291908181526020018280546200018390620005ca565b8015620001d45780601f10620001a857610100808354040283529160200191620001d4565b820191906000526020600020905b815481529060010190602001808311620001b657829003601f168201915b505050505060078054620001e890620005ca565b80601f01602080910402602001604051908101604052809291908181526020018280546200021690620005ca565b8015620002675780601f106200023b5761010080835404028352916020019162000267565b820191906000526020600020905b8154815290600101906020018083116200024957829003601f168201915b505050505081600390816200027d919062000659565b5060046200028c828262000659565b505050620002a9620002a36200049860201b60201c565b6200049c565b600854620002d8903390620002c39060ff16600a6200083a565b600954620002d2919062000852565b620004ee565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000330573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200035691906200086c565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003a4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ca91906200086c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000418573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200043e91906200086c565b6001600160a01b0390811660a05290811660808190526000908152601260205260408082208054600160ff1991821681179092553384528284208054821683179055601054909416835291208054909216179055620008ad565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620005495760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b80600260008282546200055d919062000897565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620005df57607f821691505b6020821081036200060057634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200065457600081815260208120601f850160051c810160208610156200062f5750805b601f850160051c820191505b8181101562000650578281556001016200063b565b5050505b505050565b81516001600160401b03811115620006755762000675620005b4565b6200068d81620006868454620005ca565b8462000606565b602080601f831160018114620006c55760008415620006ac5750858301515b600019600386901b1c1916600185901b17855562000650565b600085815260208120601f198616915b82811015620006f657888601518255948401946001909101908401620006d5565b5085821015620007155787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200077c57816000190482111562000760576200076062000725565b808516156200076e57918102915b93841c939080029062000740565b509250929050565b600082620007955750600162000834565b81620007a45750600062000834565b8160018114620007bd5760028114620007c857620007e8565b600191505062000834565b60ff841115620007dc57620007dc62000725565b50506001821b62000834565b5060208310610133831016604e8410600b84101617156200080d575081810a62000834565b6200081983836200073b565b806000190482111562000830576200083062000725565b0290505b92915050565b60006200084b60ff84168362000784565b9392505050565b808202811582820484141762000834576200083462000725565b6000602082840312156200087f57600080fd5b81516001600160a01b03811681146200084b57600080fd5b8082018082111562000834576200083462000725565b60805160a051611893620009196000396000818161031101528181610ab101528181610aec01528181610b3601528181610d050152610dd1015260008181610254015281816110d20152818161118b015281816111ba0152818161134f015261137601526118936000f3fe6080604052600436106101bb5760003560e01c80637df57310116100ec578063a9059cbb1161008a578063bb85c6d111610064578063bb85c6d1146104eb578063dd62ed3e1461050b578063f2fde38b1461052b578063f345bd851461054b57600080fd5b8063a9059cbb14610495578063aa4bde28146104b5578063af8af690146104cb57600080fd5b80638da5cb5b116100c65780638da5cb5b1461042257806395d89b41146104405780639c4f483214610455578063a457c2d71461047557600080fd5b80637df57310146103d657806381bfdcca146103ec5780638c0b5e221461040c57600080fd5b80633950935111610159578063677daa5711610133578063677daa571461034957806370a0823114610369578063715018a61461039f57806375f0a874146103b657600080fd5b806339509351146102df57806349bd5a5e146102ff578063527ffabd1461033357600080fd5b80631694505e116101955780631694505e1461024257806318160ddd1461028e57806323b872dd146102a3578063313ce567146102c357600080fd5b8063029e8399146101c757806306fdde03146101f0578063095ea7b31461021257600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b506101dd600d5481565b6040519081526020015b60405180910390f35b3480156101fc57600080fd5b50610205610561565b6040516101e79190611459565b34801561021e57600080fd5b5061023261022d3660046114bc565b6105f3565b60405190151581526020016101e7565b34801561024e57600080fd5b506102767f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101e7565b34801561029a57600080fd5b506002546101dd565b3480156102af57600080fd5b506102326102be3660046114e8565b61060d565b3480156102cf57600080fd5b50604051600981526020016101e7565b3480156102eb57600080fd5b506102326102fa3660046114bc565b610631565b34801561030b57600080fd5b506102767f000000000000000000000000000000000000000000000000000000000000000081565b34801561033f57600080fd5b506101dd600b5481565b34801561035557600080fd5b50610232610364366004611529565b610653565b34801561037557600080fd5b506101dd610384366004611542565b6001600160a01b031660009081526020819052604090205490565b3480156103ab57600080fd5b506103b4610666565b005b3480156103c257600080fd5b50601054610276906001600160a01b031681565b3480156103e257600080fd5b506101dd600c5481565b3480156103f857600080fd5b50610232610407366004611529565b61067a565b34801561041857600080fd5b506101dd600e5481565b34801561042e57600080fd5b506005546001600160a01b0316610276565b34801561044c57600080fd5b5061020561068d565b34801561046157600080fd5b50610232610470366004611566565b61069c565b34801561048157600080fd5b506102326104903660046114bc565b6106e8565b3480156104a157600080fd5b506102326104b03660046114bc565b610763565b3480156104c157600080fd5b506101dd600f5481565b3480156104d757600080fd5b506102326104e6366004611566565b610771565b3480156104f757600080fd5b50610232610506366004611542565b6107b4565b34801561051757600080fd5b506101dd610526366004611588565b6107e3565b34801561053757600080fd5b506103b4610546366004611542565b61080e565b34801561055757600080fd5b506101dd600a5481565b606060038054610570906115c1565b80601f016020809104026020016040519081016040528092919081815260200182805461059c906115c1565b80156105e95780601f106105be576101008083540402835291602001916105e9565b820191906000526020600020905b8154815290600101906020018083116105cc57829003601f168201915b5050505050905090565b600033610601818585610887565b60019150505b92915050565b60003361061b8582856109ab565b610626858585610a25565b506001949350505050565b60003361060181858561064483836107e3565b61064e9190611611565b610887565b600061065d610f24565b50600e55600190565b61066e610f24565b6106786000610f7e565b565b6000610684610f24565b50600f55600190565b606060048054610570906115c1565b60006106a6610f24565b60646106b28385611611565b11156106d95760405162461bcd60e51b81526004016106d090611624565b60405180910390fd5b50600c91909155600d55600190565b600033816106f682866107e3565b9050838110156107565760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016106d0565b6106268286868403610887565b600033610601818585610a25565b600061077b610f24565b60646107878385611611565b11156107a55760405162461bcd60e51b81526004016106d090611624565b50600a91909155600b55600190565b60006107be610f24565b50601080546001600160a01b0383166001600160a01b03199091161790556001919050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610816610f24565b6001600160a01b03811661087b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106d0565b61088481610f7e565b50565b6001600160a01b0383166108e95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106d0565b6001600160a01b03821661094a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106d0565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006109b784846107e3565b90506000198114610a1f5781811015610a125760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016106d0565b610a1f8484848403610887565b50505050565b6001600160a01b038316610a4b5760405162461bcd60e51b81526004016106d090611671565b6001600160a01b038216610a715760405162461bcd60e51b81526004016106d0906116b6565b80610a91846001600160a01b031660009081526020819052604090205490565b1015610aaf5760405162461bcd60e51b81526004016106d0906116f9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161480610b2057507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316145b8015610b2f575060155460ff16155b15610f14577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614610c4057601154306000908152602081905260408120549091610b8b9161173f565b90506013548110610ba157610ba1601354610fd0565b60145460115410610c3e57610bb760145461106e565b60145460116000828254610bcb919061173f565b90915550506010546040516000916001600160a01b0316904780156108fc029184818181858888f19350505050905080610c3c5760405162461bcd60e51b815260206004820152601260248201527108cc2d2d8cac840e8de40e6cadcc8408aa8960731b60448201526064016106d0565b505b505b6001600160a01b03831660009081526012602052604081205460ff1680610c7f57506001600160a01b03831660009081526012602052604090205460ff165b15610c8b575080610f09565b600e54821115610d035760405162461bcd60e51b815260206004820152603960248201527f45524332303a207472616e7366657220616d6f756e742065786365656473207460448201527f6865206d6178207472616e73616374696f6e20616d6f756e740000000000000060648201526084016106d0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031603610dcf57600f546001600160a01b038416600090815260208190526040902054610d629084611611565b1115610dcf5760405162461bcd60e51b815260206004820152603660248201527f45524332303a2062616c616e636520616d6f756e74206578636565646564206d604482015275185e081dd85b1b195d08185b5bdd5b9d081b1a5b5a5d60521b60648201526084016106d0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031603610e8d5760006064600d5484610e1a9190611752565b610e249190611769565b905060006064600c5485610e389190611752565b610e429190611769565b9050610e4e8183611611565b610e58908561173f565b92508160116000828254610e6c9190611611565b90915550610e8690508630610e818486611611565b611250565b5050610f09565b60006064600b5484610e9f9190611752565b610ea99190611769565b905060006064600a5485610ebd9190611752565b610ec79190611769565b9050610ed38183611611565b610edd908561173f565b92508160116000828254610ef19190611611565b90915550610f0690508630610e818486611611565b50505b610a1f848483611250565b610f1f838383611250565b505050565b6005546001600160a01b031633146106785760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106d0565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6015805460ff191660011790556000610fea600283611769565b90506000610ff8828461173f565b9050476110048361106e565b6000611010824761173f565b905061101c838261133c565b60408051858152602081018390529081018490527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a150506015805460ff19169055505050565b6015805460ff1916600117905560408051600280825260608201835260009260208301908036833701905050905030816000815181106110b0576110b061178b565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561112e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115291906117a1565b816001815181106111655761116561178b565b60200260200101906001600160a01b031690816001600160a01b0316815250506111b0307f000000000000000000000000000000000000000000000000000000000000000084610887565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663791ac94783600084306111f04261012c611611565b6040518663ffffffff1660e01b81526004016112109594939291906117be565b600060405180830381600087803b15801561122a57600080fd5b505af115801561123e573d6000803e3d6000fd5b50506015805460ff1916905550505050565b6001600160a01b0383166112765760405162461bcd60e51b81526004016106d090611671565b6001600160a01b03821661129c5760405162461bcd60e51b81526004016106d0906116b6565b6001600160a01b038316600090815260208190526040902054818110156112d55760405162461bcd60e51b81526004016106d0906116f9565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350505050565b6015805460ff19166001179055611374307f000000000000000000000000000000000000000000000000000000000000000084610887565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f305d7198230856000806113bb6005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015611423573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611448919061182f565b50506015805460ff19169055505050565b600060208083528351808285015260005b818110156114865785810183015185820160400152820161146a565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461088457600080fd5b600080604083850312156114cf57600080fd5b82356114da816114a7565b946020939093013593505050565b6000806000606084860312156114fd57600080fd5b8335611508816114a7565b92506020840135611518816114a7565b929592945050506040919091013590565b60006020828403121561153b57600080fd5b5035919050565b60006020828403121561155457600080fd5b813561155f816114a7565b9392505050565b6000806040838503121561157957600080fd5b50508035926020909101359150565b6000806040838503121561159b57600080fd5b82356115a6816114a7565b915060208301356115b6816114a7565b809150509250929050565b600181811c908216806115d557607f821691505b6020821081036115f557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610607576106076115fb565b6020808252602d908201527f45524332303a20746f74616c20746178206d757374206e6f742062652067726560408201526c061746572207468616e2031303609c1b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b81810381811115610607576106076115fb565b8082028115828204841417610607576106076115fb565b60008261178657634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156117b357600080fd5b815161155f816114a7565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561180e5784516001600160a01b0316835293830193918301916001016117e9565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561184457600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212207eb2b5c47df80c66691c6717aa4e7a06dcab64c316585edccaa3567e58da6f3264736f6c63430008110033
Deployed Bytecode
0x6080604052600436106101bb5760003560e01c80637df57310116100ec578063a9059cbb1161008a578063bb85c6d111610064578063bb85c6d1146104eb578063dd62ed3e1461050b578063f2fde38b1461052b578063f345bd851461054b57600080fd5b8063a9059cbb14610495578063aa4bde28146104b5578063af8af690146104cb57600080fd5b80638da5cb5b116100c65780638da5cb5b1461042257806395d89b41146104405780639c4f483214610455578063a457c2d71461047557600080fd5b80637df57310146103d657806381bfdcca146103ec5780638c0b5e221461040c57600080fd5b80633950935111610159578063677daa5711610133578063677daa571461034957806370a0823114610369578063715018a61461039f57806375f0a874146103b657600080fd5b806339509351146102df57806349bd5a5e146102ff578063527ffabd1461033357600080fd5b80631694505e116101955780631694505e1461024257806318160ddd1461028e57806323b872dd146102a3578063313ce567146102c357600080fd5b8063029e8399146101c757806306fdde03146101f0578063095ea7b31461021257600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b506101dd600d5481565b6040519081526020015b60405180910390f35b3480156101fc57600080fd5b50610205610561565b6040516101e79190611459565b34801561021e57600080fd5b5061023261022d3660046114bc565b6105f3565b60405190151581526020016101e7565b34801561024e57600080fd5b506102767f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b0390911681526020016101e7565b34801561029a57600080fd5b506002546101dd565b3480156102af57600080fd5b506102326102be3660046114e8565b61060d565b3480156102cf57600080fd5b50604051600981526020016101e7565b3480156102eb57600080fd5b506102326102fa3660046114bc565b610631565b34801561030b57600080fd5b506102767f000000000000000000000000ec97637843bb53f99b8cf8ea8bbbc717971333a381565b34801561033f57600080fd5b506101dd600b5481565b34801561035557600080fd5b50610232610364366004611529565b610653565b34801561037557600080fd5b506101dd610384366004611542565b6001600160a01b031660009081526020819052604090205490565b3480156103ab57600080fd5b506103b4610666565b005b3480156103c257600080fd5b50601054610276906001600160a01b031681565b3480156103e257600080fd5b506101dd600c5481565b3480156103f857600080fd5b50610232610407366004611529565b61067a565b34801561041857600080fd5b506101dd600e5481565b34801561042e57600080fd5b506005546001600160a01b0316610276565b34801561044c57600080fd5b5061020561068d565b34801561046157600080fd5b50610232610470366004611566565b61069c565b34801561048157600080fd5b506102326104903660046114bc565b6106e8565b3480156104a157600080fd5b506102326104b03660046114bc565b610763565b3480156104c157600080fd5b506101dd600f5481565b3480156104d757600080fd5b506102326104e6366004611566565b610771565b3480156104f757600080fd5b50610232610506366004611542565b6107b4565b34801561051757600080fd5b506101dd610526366004611588565b6107e3565b34801561053757600080fd5b506103b4610546366004611542565b61080e565b34801561055757600080fd5b506101dd600a5481565b606060038054610570906115c1565b80601f016020809104026020016040519081016040528092919081815260200182805461059c906115c1565b80156105e95780601f106105be576101008083540402835291602001916105e9565b820191906000526020600020905b8154815290600101906020018083116105cc57829003601f168201915b5050505050905090565b600033610601818585610887565b60019150505b92915050565b60003361061b8582856109ab565b610626858585610a25565b506001949350505050565b60003361060181858561064483836107e3565b61064e9190611611565b610887565b600061065d610f24565b50600e55600190565b61066e610f24565b6106786000610f7e565b565b6000610684610f24565b50600f55600190565b606060048054610570906115c1565b60006106a6610f24565b60646106b28385611611565b11156106d95760405162461bcd60e51b81526004016106d090611624565b60405180910390fd5b50600c91909155600d55600190565b600033816106f682866107e3565b9050838110156107565760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016106d0565b6106268286868403610887565b600033610601818585610a25565b600061077b610f24565b60646107878385611611565b11156107a55760405162461bcd60e51b81526004016106d090611624565b50600a91909155600b55600190565b60006107be610f24565b50601080546001600160a01b0383166001600160a01b03199091161790556001919050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610816610f24565b6001600160a01b03811661087b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106d0565b61088481610f7e565b50565b6001600160a01b0383166108e95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106d0565b6001600160a01b03821661094a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106d0565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006109b784846107e3565b90506000198114610a1f5781811015610a125760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016106d0565b610a1f8484848403610887565b50505050565b6001600160a01b038316610a4b5760405162461bcd60e51b81526004016106d090611671565b6001600160a01b038216610a715760405162461bcd60e51b81526004016106d0906116b6565b80610a91846001600160a01b031660009081526020819052604090205490565b1015610aaf5760405162461bcd60e51b81526004016106d0906116f9565b7f000000000000000000000000ec97637843bb53f99b8cf8ea8bbbc717971333a36001600160a01b0316836001600160a01b03161480610b2057507f000000000000000000000000ec97637843bb53f99b8cf8ea8bbbc717971333a36001600160a01b0316826001600160a01b0316145b8015610b2f575060155460ff16155b15610f14577f000000000000000000000000ec97637843bb53f99b8cf8ea8bbbc717971333a36001600160a01b0316836001600160a01b031614610c4057601154306000908152602081905260408120549091610b8b9161173f565b90506013548110610ba157610ba1601354610fd0565b60145460115410610c3e57610bb760145461106e565b60145460116000828254610bcb919061173f565b90915550506010546040516000916001600160a01b0316904780156108fc029184818181858888f19350505050905080610c3c5760405162461bcd60e51b815260206004820152601260248201527108cc2d2d8cac840e8de40e6cadcc8408aa8960731b60448201526064016106d0565b505b505b6001600160a01b03831660009081526012602052604081205460ff1680610c7f57506001600160a01b03831660009081526012602052604090205460ff165b15610c8b575080610f09565b600e54821115610d035760405162461bcd60e51b815260206004820152603960248201527f45524332303a207472616e7366657220616d6f756e742065786365656473207460448201527f6865206d6178207472616e73616374696f6e20616d6f756e740000000000000060648201526084016106d0565b7f000000000000000000000000ec97637843bb53f99b8cf8ea8bbbc717971333a36001600160a01b0316846001600160a01b031603610dcf57600f546001600160a01b038416600090815260208190526040902054610d629084611611565b1115610dcf5760405162461bcd60e51b815260206004820152603660248201527f45524332303a2062616c616e636520616d6f756e74206578636565646564206d604482015275185e081dd85b1b195d08185b5bdd5b9d081b1a5b5a5d60521b60648201526084016106d0565b7f000000000000000000000000ec97637843bb53f99b8cf8ea8bbbc717971333a36001600160a01b0316836001600160a01b031603610e8d5760006064600d5484610e1a9190611752565b610e249190611769565b905060006064600c5485610e389190611752565b610e429190611769565b9050610e4e8183611611565b610e58908561173f565b92508160116000828254610e6c9190611611565b90915550610e8690508630610e818486611611565b611250565b5050610f09565b60006064600b5484610e9f9190611752565b610ea99190611769565b905060006064600a5485610ebd9190611752565b610ec79190611769565b9050610ed38183611611565b610edd908561173f565b92508160116000828254610ef19190611611565b90915550610f0690508630610e818486611611565b50505b610a1f848483611250565b610f1f838383611250565b505050565b6005546001600160a01b031633146106785760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106d0565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6015805460ff191660011790556000610fea600283611769565b90506000610ff8828461173f565b9050476110048361106e565b6000611010824761173f565b905061101c838261133c565b60408051858152602081018390529081018490527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a150506015805460ff19169055505050565b6015805460ff1916600117905560408051600280825260608201835260009260208301908036833701905050905030816000815181106110b0576110b061178b565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561112e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115291906117a1565b816001815181106111655761116561178b565b60200260200101906001600160a01b031690816001600160a01b0316815250506111b0307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84610887565b6001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d1663791ac94783600084306111f04261012c611611565b6040518663ffffffff1660e01b81526004016112109594939291906117be565b600060405180830381600087803b15801561122a57600080fd5b505af115801561123e573d6000803e3d6000fd5b50506015805460ff1916905550505050565b6001600160a01b0383166112765760405162461bcd60e51b81526004016106d090611671565b6001600160a01b03821661129c5760405162461bcd60e51b81526004016106d0906116b6565b6001600160a01b038316600090815260208190526040902054818110156112d55760405162461bcd60e51b81526004016106d0906116f9565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350505050565b6015805460ff19166001179055611374307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84610887565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663f305d7198230856000806113bb6005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015611423573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611448919061182f565b50506015805460ff19169055505050565b600060208083528351808285015260005b818110156114865785810183015185820160400152820161146a565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461088457600080fd5b600080604083850312156114cf57600080fd5b82356114da816114a7565b946020939093013593505050565b6000806000606084860312156114fd57600080fd5b8335611508816114a7565b92506020840135611518816114a7565b929592945050506040919091013590565b60006020828403121561153b57600080fd5b5035919050565b60006020828403121561155457600080fd5b813561155f816114a7565b9392505050565b6000806040838503121561157957600080fd5b50508035926020909101359150565b6000806040838503121561159b57600080fd5b82356115a6816114a7565b915060208301356115b6816114a7565b809150509250929050565b600181811c908216806115d557607f821691505b6020821081036115f557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610607576106076115fb565b6020808252602d908201527f45524332303a20746f74616c20746178206d757374206e6f742062652067726560408201526c061746572207468616e2031303609c1b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b81810381811115610607576106076115fb565b8082028115828204841417610607576106076115fb565b60008261178657634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156117b357600080fd5b815161155f816114a7565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561180e5784516001600160a01b0316835293830193918301916001016117e9565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561184457600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212207eb2b5c47df80c66691c6717aa4e7a06dcab64c316585edccaa3567e58da6f3264736f6c63430008110033
Deployed Bytecode Sourcemap
17983:7389:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18378:39;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;18378:39:0;;;;;;;;12297:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;13942:244::-;;;;;;;;;;-1:-1:-1;13942:244:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;13942:244:0;1205:187:1;18679:51:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1587:32:1;;;1569:51;;1557:2;1542:18;18679:51:0;1397:229:1;12806:110:0;;;;;;;;;;-1:-1:-1;12896:12:0;;12806:110;;14196:297;;;;;;;;;;-1:-1:-1;14196:297:0;;;;;:::i;:::-;;:::i;12649:92::-;;;;;;;;;;-1:-1:-1;12649:92:0;;12732:1;2234:36:1;;2222:2;2207:18;12649:92:0;2092:184:1;15020:272:0;;;;;;;;;;-1:-1:-1;15020:272:0;;;;;:::i;:::-;;:::i;18737:38::-;;;;;;;;;;;;;;;18247:34;;;;;;;;;;;;;;;;24970:154;;;;;;;;;;-1:-1:-1;24970:154:0;;;;;:::i;:::-;;:::i;12462:177::-;;;;;;;;;;-1:-1:-1;12462:177:0;;;;;:::i;:::-;-1:-1:-1;;;;;12613:18:0;12581:7;12613:18;;;;;;;;;;;;12462:177;11045:103;;;;;;;;;;;;;:::i;:::-;;18568:75;;;;;;;;;;-1:-1:-1;18568:75:0;;;;-1:-1:-1;;;;;18568:75:0;;;18311:38;;;;;;;;;;;;;;;;25132:198;;;;;;;;;;-1:-1:-1;25132:198:0;;;;;:::i;:::-;;:::i;18448:51::-;;;;;;;;;;;;;;;;10806:87;;;;;;;;;;-1:-1:-1;10879:6:0;;-1:-1:-1;;;;;10879:6:0;10806:87;;12121:106;;;;;;;;;;;;;:::i;24554:404::-;;;;;;;;;;-1:-1:-1;24554:404:0;;;;;:::i;:::-;;:::i;14503:507::-;;;;;;;;;;-1:-1:-1;14503:507:0;;;;;:::i;:::-;;:::i;13386:236::-;;;;;;;;;;-1:-1:-1;13386:236:0;;;;;:::i;:::-;;:::i;18506:55::-;;;;;;;;;;;;;;;;24178:368;;;;;;;;;;-1:-1:-1;24178:368:0;;;;;:::i;:::-;;:::i;24015:155::-;;;;;;;;;;-1:-1:-1;24015:155:0;;;;;:::i;:::-;;:::i;12979:201::-;;;;;;;;;;-1:-1:-1;12979:201:0;;;;;:::i;:::-;;:::i;11158:238::-;;;;;;;;;;-1:-1:-1;11158:238:0;;;;;:::i;:::-;;:::i;18185:34::-;;;;;;;;;;;;;;;;12297:102;12353:13;12386:5;12379:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12297:102;:::o;13942:244::-;14063:4;10437:10;14124:32;10437:10;14140:7;14149:6;14124:8;:32::i;:::-;14174:4;14167:11;;;13942:244;;;;;:::o;14196:297::-;14329:4;10437:10;14387:38;14403:4;10437:10;14418:6;14387:15;:38::i;:::-;14436:27;14446:4;14452:2;14456:6;14436:9;:27::i;:::-;-1:-1:-1;14481:4:0;;14196:297;-1:-1:-1;;;;14196:297:0:o;15020:272::-;15137:4;10437:10;15198:64;10437:10;15214:7;15251:10;15223:25;10437:10;15214:7;15223:9;:25::i;:::-;:38;;;;:::i;:::-;15198:8;:64::i;24970:154::-;25045:4;10763:13;:11;:13::i;:::-;-1:-1:-1;25068:11:0::1;:26:::0;25112:4:::1;::::0;24970:154::o;11045:103::-;10763:13;:11;:13::i;:::-;11110:30:::1;11137:1;11110:18;:30::i;:::-;11045:103::o:0;25132:198::-;25242:4;10763:13;:11;:13::i;:::-;-1:-1:-1;25264:15:0::1;:34:::0;25318:4:::1;::::0;25132:198::o;12121:106::-;12179:13;12212:7;12205:14;;;;;:::i;24554:404::-;24692:4;10763:13;:11;:13::i;:::-;24769:3:::1;24723:41;24744:20:::0;24723;:41:::1;:::i;:::-;24722:50;;24714:108;;;;-1:-1:-1::0;;;24714:108:0::1;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1::0;24833:19:0::1;:42:::0;;;;24886:19:::1;:42:::0;24946:4:::1;::::0;24554:404::o;14503:507::-;14625:4;10437:10;14625:4;14713:25;10437:10;14730:7;14713:9;:25::i;:::-;14686:52;;14791:15;14771:16;:35;;14749:122;;;;-1:-1:-1;;;14749:122:0;;4835:2:1;14749:122:0;;;4817:21:1;4874:2;4854:18;;;4847:30;4913:34;4893:18;;;4886:62;-1:-1:-1;;;4964:18:1;;;4957:35;5009:19;;14749:122:0;4633:401:1;14749:122:0;14907:60;14916:5;14923:7;14951:15;14932:16;:34;14907:8;:60::i;13386:236::-;13503:4;10437:10;13564:28;10437:10;13581:2;13585:6;13564:9;:28::i;24178:368::-;24304:4;10763:13;:11;:13::i;:::-;24373:3:::1;24335:33;24352:16:::0;24335;:33:::1;:::i;:::-;24334:42;;24326:100;;;;-1:-1:-1::0;;;24326:100:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;24437:15:0::1;:34:::0;;;;24482:15:::1;:34:::0;24534:4:::1;::::0;24178:368::o;24015:155::-;24091:4;10763:13;:11;:13::i;:::-;-1:-1:-1;24113:15:0::1;:27:::0;;-1:-1:-1;;;;;24113:27:0;::::1;-1:-1:-1::0;;;;;;24113:27:0;;::::1;;::::0;;;24015:155;;;:::o;12979:201::-;-1:-1:-1;;;;;13145:18:0;;;13113:7;13145:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;12979:201::o;11158:238::-;10763:13;:11;:13::i;:::-;-1:-1:-1;;;;;11261:22:0;::::1;11239:110;;;::::0;-1:-1:-1;;;11239:110:0;;5241:2:1;11239:110:0::1;::::0;::::1;5223:21:1::0;5280:2;5260:18;;;5253:30;5319:34;5299:18;;;5292:62;-1:-1:-1;;;5370:18:1;;;5363:36;5416:19;;11239:110:0::1;5039:402:1::0;11239:110:0::1;11360:28;11379:8;11360:18;:28::i;:::-;11158:238:::0;:::o;16297:380::-;-1:-1:-1;;;;;16433:19:0;;16425:68;;;;-1:-1:-1;;;16425:68:0;;5648:2:1;16425:68:0;;;5630:21:1;5687:2;5667:18;;;5660:30;5726:34;5706:18;;;5699:62;-1:-1:-1;;;5777:18:1;;;5770:34;5821:19;;16425:68:0;5446:400:1;16425:68:0;-1:-1:-1;;;;;16512:21:0;;16504:68;;;;-1:-1:-1;;;16504:68:0;;6053:2:1;16504:68:0;;;6035:21:1;6092:2;6072:18;;;6065:30;6131:34;6111:18;;;6104:62;-1:-1:-1;;;6182:18:1;;;6175:32;6224:19;;16504:68:0;5851:398:1;16504:68:0;-1:-1:-1;;;;;16585:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;16637:32;;160:25:1;;;16637:32:0;;133:18:1;16637:32:0;;;;;;;16297:380;;;:::o;16687:502::-;16822:24;16849:25;16859:5;16866:7;16849:9;:25::i;:::-;16822:52;;-1:-1:-1;;16889:16:0;:37;16885:297;;16989:6;16969:16;:26;;16943:117;;;;-1:-1:-1;;;16943:117:0;;6456:2:1;16943:117:0;;;6438:21:1;6495:2;6475:18;;;6468:30;6534:31;6514:18;;;6507:59;6583:18;;16943:117:0;6254:353:1;16943:117:0;17104:51;17113:5;17120:7;17148:6;17129:16;:25;17104:8;:51::i;:::-;16811:378;16687:502;;;:::o;19890:2735::-;-1:-1:-1;;;;;19988:18:0;;19980:68;;;;-1:-1:-1;;;19980:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20067:16:0;;20059:64;;;;-1:-1:-1;;;20059:64:0;;;;;;;:::i;:::-;20161:6;20142:15;20152:4;-1:-1:-1;;;;;12613:18:0;12581:7;12613:18;;;;;;;;;;;;12462:177;20142:15;:25;;20134:76;;;;-1:-1:-1;;;20134:76:0;;;;;;;:::i;:::-;20236:13;-1:-1:-1;;;;;20228:21:0;:4;-1:-1:-1;;;;;20228:21:0;;:44;;;;20259:13;-1:-1:-1;;;;;20253:19:0;:2;-1:-1:-1;;;;;20253:19:0;;20228:44;20227:67;;;;-1:-1:-1;20278:16:0;;;;20277:17;20227:67;20223:2395;;;20323:13;-1:-1:-1;;;;;20315:21:0;:4;-1:-1:-1;;;;;20315:21:0;;20311:686;;20419:18;;20410:4;20357:32;12613:18;;;;;;;;;;;20357:32;;20392:45;;;:::i;:::-;20357:80;;20488:30;;20460:24;:58;20456:154;;20543:47;20559:30;;20543:15;:47::i;:::-;20656:24;;20633:18;;20632:48;20628:354;;20705:43;20723:24;;20705:17;:43::i;:::-;20793:24;;20771:18;;:46;;;;;;;:::i;:::-;;;;-1:-1:-1;;20860:15:0;;20852:52;;20840:9;;-1:-1:-1;;;;;20860:15:0;;20882:21;20852:52;;;;;20840:9;20852:52;20840:9;20852:52;20882:21;20860:15;20852:52;;;;;;;20840:64;;20935:4;20927:35;;;;-1:-1:-1;;;20927:35:0;;8164:2:1;20927:35:0;;;8146:21:1;8203:2;8183:18;;;8176:30;-1:-1:-1;;;8222:18:1;;;8215:48;8280:18;;20927:35:0;7962:342:1;20927:35:0;20682:300;20628:354;20338:659;20311:686;-1:-1:-1;;;;;21054:24:0;;21013:22;21054:24;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;21082:22:0;;;;;;:18;:22;;;;;;;;21054:50;21050:1425;;;-1:-1:-1;21142:6:0;21050:1425;;;21221:11;;21211:6;:21;;21203:91;;;;-1:-1:-1;;;21203:91:0;;8511:2:1;21203:91:0;;;8493:21:1;8550:2;8530:18;;;8523:30;8589:34;8569:18;;;8562:62;8660:27;8640:18;;;8633:55;8705:19;;21203:91:0;8309:421:1;21203:91:0;21324:13;-1:-1:-1;;;;;21316:21:0;:4;-1:-1:-1;;;;;21316:21:0;;21313:178;;21397:15;;-1:-1:-1;;;;;12613:18:0;;12581:7;12613:18;;;;;;;;;;;21370:22;;:6;:22;:::i;:::-;21369:43;;21361:110;;;;-1:-1:-1;;;21361:110:0;;8937:2:1;21361:110:0;;;8919:21:1;8976:2;8956:18;;;8949:30;9015:34;8995:18;;;8988:62;-1:-1:-1;;;9066:18:1;;;9059:52;9128:19;;21361:110:0;8735:418:1;21361:110:0;21520:13;-1:-1:-1;;;;;21514:19:0;:2;-1:-1:-1;;;;;21514:19:0;;21511:947;;21575:22;21634:3;21611:19;;21602:6;:28;;;;:::i;:::-;21601:36;;;;:::i;:::-;21575:63;;21661:22;21720:3;21697:19;;21688:6;:28;;;;:::i;:::-;21687:36;;;;:::i;:::-;21661:63;-1:-1:-1;21774:31:0;21661:63;21774:14;:31;:::i;:::-;21764:42;;:6;:42;:::i;:::-;21747:59;;21851:14;21829:18;;:36;;;;;;;:::i;:::-;;;;-1:-1:-1;21888:71:0;;-1:-1:-1;21904:4:0;21918;21926:31;21943:14;21926;:31;:::i;:::-;21888:15;:71::i;:::-;21552:427;;21511:947;;;22042:22;22097:3;22078:15;;22069:6;:24;;;;:::i;:::-;22068:32;;;;:::i;:::-;22042:59;;22124:22;22179:3;22160:15;;22151:6;:24;;;;:::i;:::-;22150:32;;;;:::i;:::-;22124:59;-1:-1:-1;22233:31:0;22124:59;22233:14;:31;:::i;:::-;22223:42;;:6;:42;:::i;:::-;22206:59;;22310:14;22288:18;;:36;;;;;;;:::i;:::-;;;;-1:-1:-1;22347:71:0;;-1:-1:-1;22363:4:0;22377;22385:31;22402:14;22385;:31;:::i;22347:71::-;22019:439;;21511:947;22489:41;22505:4;22511:2;22515:14;22489:15;:41::i;20223:2395::-;22573:33;22589:4;22595:2;22599:6;22573:15;:33::i;:::-;19890:2735;;;:::o;10903:132::-;10879:6;;-1:-1:-1;;;;;10879:6:0;10437:10;10967:23;10959:68;;;;-1:-1:-1;;;10959:68:0;;9755:2:1;10959:68:0;;;9737:21:1;;;9774:18;;;9767:30;9833:34;9813:18;;;9806:62;9885:18;;10959:68:0;9553:356:1;11406:191:0;11499:6;;;-1:-1:-1;;;;;11516:17:0;;;-1:-1:-1;;;;;;11516:17:0;;;;;;;11549:40;;11499:6;;;11516:17;11499:6;;11549:40;;11480:16;;11549:40;11469:128;11406:191;:::o;22635:464::-;19232:16;:23;;-1:-1:-1;;19232:23:0;19251:4;19232:23;;;:16;22737:24:::1;22760:1;22737:20:::0;:24:::1;:::i;:::-;22721:41:::0;-1:-1:-1;22773:17:0::1;22794:27;22721:41:::0;22794:20;:27:::1;:::i;:::-;22773:49:::0;-1:-1:-1;22858:21:0::1;22890:23;22908:4:::0;22890:17:::1;:23::i;:::-;22924:18;22946:38;22970:14:::0;22946:21:::1;:38;:::i;:::-;22924:61;;22996:36;23010:9;23021:10;22996:13;:36::i;:::-;23048:43;::::0;;10116:25:1;;;10172:2;10157:18;;10150:34;;;10200:18;;;10193:34;;;23048:43:0::1;::::0;10104:2:1;10089:18;23048:43:0::1;;;;;;;-1:-1:-1::0;;19278:16:0;:24;;-1:-1:-1;;19278:24:0;;;-1:-1:-1;;;22635:464:0:o;23109:492::-;19232:16;:23;;-1:-1:-1;;19232:23:0;19251:4;19232:23;;;23212:16:::1;::::0;;23226:1:::1;23212:16:::0;;;;;::::1;::::0;;-1:-1:-1;;23212:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;23212:16:0::1;23188:40;;23257:4;23239;23244:1;23239:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;23239:23:0::1;;;-1:-1:-1::0;;;;;23239:23:0::1;;;::::0;::::1;23283:15;-1:-1:-1::0;;;;;23283:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23273:4;23278:1;23273:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1::0;;;;;23273:32:0::1;;;-1:-1:-1::0;;;;;23273:32:0::1;;;::::0;::::1;23316:62;23333:4;23348:15;23366:11;23316:8;:62::i;:::-;-1:-1:-1::0;;;;;23389:15:0::1;:66;;23470:11:::0;23496:1:::1;23512:4:::0;23539::::1;23560:21;:15;23578:3;23560:21;:::i;:::-;23389:204;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;19278:16:0;:24;;-1:-1:-1;;19278:24:0;;;-1:-1:-1;;;;23109:492:0:o;17197:776::-;-1:-1:-1;;;;;17328:18:0;;17320:68;;;;-1:-1:-1;;;17320:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17407:16:0;;17399:64;;;;-1:-1:-1;;;17399:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17498:15:0;;17476:19;17498:15;;;;;;;;;;;17546:21;;;;17524:109;;;;-1:-1:-1;;;17524:109:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17669:15:0;;;:9;:15;;;;;;;;;;;17687:20;;;17669:38;;17887:13;;;;;;;;;;:23;;;;;;17939:26;;160:25:1;;;17887:13:0;;17939:26;;133:18:1;17939:26:0;;;;;;;17309:664;17197:776;;;:::o;23609:398::-;19232:16;:23;;-1:-1:-1;;19232:23:0;19251:4;19232:23;;;23726:62:::1;23743:4;23758:15;23776:11:::0;23726:8:::1;:62::i;:::-;23801:15;-1:-1:-1::0;;;;;23801:31:0::1;;23840:9;23873:4;23893:11;23919:1;23935::::0;23951:7:::1;10879:6:::0;;-1:-1:-1;;;;;10879:6:0;;10806:87;23951:7:::1;23801:198;::::0;::::1;::::0;;;-1:-1:-1;;;;;;23801:198:0;;;-1:-1:-1;;;;;12102:15:1;;;23801:198:0::1;::::0;::::1;12084:34:1::0;12134:18;;;12127:34;;;;12177:18;;;12170:34;;;;12220:18;;;12213:34;12284:15;;;12263:19;;;12256:44;23973:15:0::1;12316:19:1::0;;;12309:35;12018:19;;23801:198:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;19278:16:0;:24;;-1:-1:-1;;19278:24:0;;;-1:-1:-1;;;23609:398:0:o;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;885:315;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2489:180::-;2548:6;2601:2;2589:9;2580:7;2576:23;2572:32;2569:52;;;2617:1;2614;2607:12;2569:52;-1:-1:-1;2640:23:1;;2489:180;-1:-1:-1;2489:180:1:o;2674:247::-;2733:6;2786:2;2774:9;2765:7;2761:23;2757:32;2754:52;;;2802:1;2799;2792:12;2754:52;2841:9;2828:23;2860:31;2885:5;2860:31;:::i;:::-;2910:5;2674:247;-1:-1:-1;;;2674:247:1:o;2926:248::-;2994:6;3002;3055:2;3043:9;3034:7;3030:23;3026:32;3023:52;;;3071:1;3068;3061:12;3023:52;-1:-1:-1;;3094:23:1;;;3164:2;3149:18;;;3136:32;;-1:-1:-1;2926:248:1:o;3179:388::-;3247:6;3255;3308:2;3296:9;3287:7;3283:23;3279:32;3276:52;;;3324:1;3321;3314:12;3276:52;3363:9;3350:23;3382:31;3407:5;3382:31;:::i;:::-;3432:5;-1:-1:-1;3489:2:1;3474:18;;3461:32;3502:33;3461:32;3502:33;:::i;:::-;3554:7;3544:17;;;3179:388;;;;;:::o;3572:380::-;3651:1;3647:12;;;;3694;;;3715:61;;3769:4;3761:6;3757:17;3747:27;;3715:61;3822:2;3814:6;3811:14;3791:18;3788:38;3785:161;;3868:10;3863:3;3859:20;3856:1;3849:31;3903:4;3900:1;3893:15;3931:4;3928:1;3921:15;3785:161;;3572:380;;;:::o;3957:127::-;4018:10;4013:3;4009:20;4006:1;3999:31;4049:4;4046:1;4039:15;4073:4;4070:1;4063:15;4089:125;4154:9;;;4175:10;;;4172:36;;;4188:18;;:::i;4219:409::-;4421:2;4403:21;;;4460:2;4440:18;;;4433:30;4499:34;4494:2;4479:18;;4472:62;-1:-1:-1;;;4565:2:1;4550:18;;4543:43;4618:3;4603:19;;4219:409::o;6612:401::-;6814:2;6796:21;;;6853:2;6833:18;;;6826:30;6892:34;6887:2;6872:18;;6865:62;-1:-1:-1;;;6958:2:1;6943:18;;6936:35;7003:3;6988:19;;6612:401::o;7018:399::-;7220:2;7202:21;;;7259:2;7239:18;;;7232:30;7298:34;7293:2;7278:18;;7271:62;-1:-1:-1;;;7364:2:1;7349:18;;7342:33;7407:3;7392:19;;7018:399::o;7422:402::-;7624:2;7606:21;;;7663:2;7643:18;;;7636:30;7702:34;7697:2;7682:18;;7675:62;-1:-1:-1;;;7768:2:1;7753:18;;7746:36;7814:3;7799:19;;7422:402::o;7829:128::-;7896:9;;;7917:11;;;7914:37;;;7931:18;;:::i;9158:168::-;9231:9;;;9262;;9279:15;;;9273:22;;9259:37;9249:71;;9300:18;;:::i;9331:217::-;9371:1;9397;9387:132;;9441:10;9436:3;9432:20;9429:1;9422:31;9476:4;9473:1;9466:15;9504:4;9501:1;9494:15;9387:132;-1:-1:-1;9533:9:1;;9331:217::o;10370:127::-;10431:10;10426:3;10422:20;10419:1;10412:31;10462:4;10459:1;10452:15;10486:4;10483:1;10476:15;10502:251;10572:6;10625:2;10613:9;10604:7;10600:23;10596:32;10593:52;;;10641:1;10638;10631:12;10593:52;10673:9;10667:16;10692:31;10717:5;10692:31;:::i;10758:980::-;11020:4;11068:3;11057:9;11053:19;11099:6;11088:9;11081:25;11125:2;11163:6;11158:2;11147:9;11143:18;11136:34;11206:3;11201:2;11190:9;11186:18;11179:31;11230:6;11265;11259:13;11296:6;11288;11281:22;11334:3;11323:9;11319:19;11312:26;;11373:2;11365:6;11361:15;11347:29;;11394:1;11404:195;11418:6;11415:1;11412:13;11404:195;;;11483:13;;-1:-1:-1;;;;;11479:39:1;11467:52;;11574:15;;;;11539:12;;;;11515:1;11433:9;11404:195;;;-1:-1:-1;;;;;;;11655:32:1;;;;11650:2;11635:18;;11628:60;-1:-1:-1;;;11719:3:1;11704:19;11697:35;11616:3;10758:980;-1:-1:-1;;;10758:980:1:o;12355:306::-;12443:6;12451;12459;12512:2;12500:9;12491:7;12487:23;12483:32;12480:52;;;12528:1;12525;12518:12;12480:52;12557:9;12551:16;12541:26;;12607:2;12596:9;12592:18;12586:25;12576:35;;12651:2;12640:9;12636:18;12630:25;12620:35;;12355:306;;;;;:::o
Swarm Source
ipfs://7eb2b5c47df80c66691c6717aa4e7a06dcab64c316585edccaa3567e58da6f32
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.