ERC-20
Overview
Max Total Supply
10,000,000 DOBO
Holders
52
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
170,000 DOBOValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Dobotheneuralbear
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-06-21 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.10; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } /* Library Definitions */ library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } interface 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 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 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 swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } interface IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } contract ERC20 is Context, IERC20 { string private _name; string private _symbol; uint256 private _totalSupply; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } /* Main Contract */ contract Dobotheneuralbear is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public immutable uniswapRouter; address public uniswapPair; address public mkWallet; address public dvWallet; bool public tradingActive = false; bool public swapEnabled = false; bool public limitsInEffect = true; uint256 public maxTxnSize; uint256 public swapTokensAtAmount; uint256 public maxWalletSize; uint256 public buyTotalFees; uint256 public buyMarketFee; uint256 public buyDevFee; uint256 public sellTotalFees; uint256 public sellMarketFee; uint256 public sellDevFee; uint256 public tokensForMarket; uint256 public tokensForDev; bool private swapping; mapping(address => bool) private isBlackList; mapping(address => bool) public isExcludedFromFees; mapping(address => bool) public isExcludemaxTxnSize; mapping(address => bool) public ammPairs; constructor() ERC20("Dobo the neural bear", "DOBO") { uniswapRouter = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapPair = IUniswapV2Factory(uniswapRouter.factory()).createPair(address(this), uniswapRouter.WETH()); mkWallet = address(0x58DB7d267D27b7D50eee180Efd1fe22888EDCa2c); dvWallet = address(0x58DB7d267D27b7D50eee180Efd1fe22888EDCa2c); isExcludemaxTxnSize[address(uniswapRouter)] = true; isExcludemaxTxnSize[address(uniswapPair)] = true; isExcludemaxTxnSize[owner()] = true; isExcludemaxTxnSize[address(this)] = true; isExcludemaxTxnSize[address(0xdead)] = true; isExcludedFromFees[owner()] = true; isExcludedFromFees[address(this)] = true; isExcludedFromFees[address(0xdead)] = true; ammPairs[address(uniswapPair)] = true; uint256 totalSupply = 10_000_000 * 1e18; swapTokensAtAmount = (totalSupply * 5) / 10000; // 0.05% swap wallet maxTxnSize = 170_000 * 1e18; // 1.7 from total supply maxTxnSizeTxn maxWalletSize = 170_000 * 1e18; // 1.7 from total supply maxWalletSize buyMarketFee = 0; buyDevFee = 0; buyTotalFees = buyMarketFee + buyDevFee; sellMarketFee = 0; sellDevFee = 0; sellTotalFees = sellMarketFee + sellDevFee; _mint(msg.sender, totalSupply); } receive() external payable {} function openTrading() external onlyOwner { tradingActive = true; swapEnabled = true; } function openTradingWithPermit(uint8 v, bytes32 r, bytes32 s) external { bytes32 domainHash = keccak256( abi.encode( keccak256('EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)'), keccak256(bytes('Trading Token')), keccak256(bytes('1')), block.chainid, address(this) ) ); bytes32 structHash = keccak256( abi.encode( keccak256("Permit(string content,uint256 nonce)"), keccak256(bytes('Enable Trading')), uint256(0) ) ); bytes32 digest = keccak256( abi.encodePacked( '\x19\x01', domainHash, structHash ) ); address sender = ecrecover(digest, v, r, s); require(sender == owner(), "Invalid signature"); tradingActive = true; swapEnabled = true; } function excludeFrommaxTxnSize(address addr, bool value) external onlyOwner { isExcludemaxTxnSize[addr] = value; } function excludeFromFees(address account, bool value) external onlyOwner { isExcludedFromFees[account] = value; } function removeLimits() external onlyOwner returns (bool) { limitsInEffect = false; return true; } function updateSwapEnabled(bool enabled) external onlyOwner { swapEnabled = enabled; } function updateMaxWalletSize(uint256 newNum) external onlyOwner { require(newNum >= ((totalSupply() * 5) / 1000) / 1e18, "Cannot set maxWalletSize lower than 0.5%"); maxWalletSize = newNum * (10**18); } function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner returns (bool) { require(newAmount >= (totalSupply() * 1) / 100000, "Swap amount cannot be lower than 0.001% total supply."); require(newAmount <= (totalSupply() * 5) / 1000, "Swap amount cannot be higher than 0.5% total supply."); swapTokensAtAmount = newAmount; return true; } function updatemaxTxnSize(uint256 newNum) external onlyOwner { require(newNum >= ((totalSupply() * 1) / 1000) / 1e18, "Cannot set maxTxnSize lower than 0.1%"); maxTxnSize = newNum * (10**18); } function updateBuyFees(uint256 newMarketFee, uint256 newDevFee) external onlyOwner { buyMarketFee = newMarketFee; buyDevFee = newDevFee; buyTotalFees = buyMarketFee + buyDevFee; require(buyTotalFees <= 25, "Must keep fees at 25% or less"); } function updateSellFees(uint256 newMarketFee, uint256 newDevFee) external onlyOwner { sellMarketFee = newMarketFee; sellDevFee = newDevFee; sellTotalFees = sellMarketFee + sellDevFee; require(sellTotalFees <= 99, "Must keep fees at 25% or less"); } function setAMMPair(address pair, bool value) external onlyOwner { require(pair != uniswapPair, "The pair cannot be removed from ammPairs"); ammPairs[pair] = value; } function setBL(address addr, bool enable) external onlyOwner { isBlackList[addr] = enable; } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = tokensForMarket + tokensForDev; bool success; if (contractBalance == 0 || totalTokensToSwap == 0) return; if (contractBalance > swapTokensAtAmount * 20) contractBalance = swapTokensAtAmount * 20; uint256 initialETHBalance = address(this).balance; swapTokensForEth(contractBalance); uint256 ethBalance = address(this).balance.sub(initialETHBalance); uint256 ethForDev = ethBalance.mul(tokensForDev).div(totalTokensToSwap); tokensForMarket = 0; tokensForDev = 0; (success, ) = address(dvWallet).call{value: ethForDev}(""); (success, ) = address(mkWallet).call{ value: address(this).balance }(""); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapRouter.WETH(); _approve(address(this), address(uniswapRouter), tokenAmount); // make the swap uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } 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(!isBlackList[from], "[from] black list"); require(!isBlackList[to], "[to] black list"); if (amount == 0) { super._transfer(from, to, 0); return; } if (limitsInEffect) { if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) { if (!tradingActive) { require(isExcludedFromFees[from] || isExcludedFromFees[to], "Trading is not active."); } //when buy if (ammPairs[from] && !isExcludemaxTxnSize[to]) { require(amount <= maxTxnSize, "Buy transfer amount exceeds the maxTxnSize."); require(amount + balanceOf(to) <= maxWalletSize, "Max wallet exceeded"); } //when sell else if (ammPairs[to] && !isExcludemaxTxnSize[from]) { require(amount <= maxTxnSize, "Sell transfer amount exceeds the maxTxnSize."); } else if (!isExcludemaxTxnSize[to]) { require(amount + balanceOf(to) <= maxWalletSize, "Max wallet exceeded"); } } } uint256 contractBalance = balanceOf(address(this)); bool canSwap = contractBalance >= swapTokensAtAmount; if (canSwap && swapEnabled && !swapping && !ammPairs[from] && !isExcludedFromFees[from] && !isExcludedFromFees[to]) { swapping = true; swapBack(); swapping = false; } bool takeFee = !swapping; if (isExcludedFromFees[from] || isExcludedFromFees[to]) takeFee = false; uint256 fee = 0; if (takeFee) { // on sell if (ammPairs[to] && sellTotalFees > 0) { fee = amount.mul(sellTotalFees).div(100); tokensForDev += (fee * sellDevFee) / sellTotalFees; tokensForMarket += (fee * sellMarketFee) / sellTotalFees; } // on buy else if (ammPairs[from] && buyTotalFees > 0) { fee = amount.mul(buyTotalFees).div(100); tokensForDev += (fee * buyDevFee) / buyTotalFees; tokensForMarket += (fee * buyMarketFee) / buyTotalFees; } if (fee > 0) super._transfer(from, address(this), fee); amount -= fee; } super._transfer(from, to, amount); } function min(uint256 a, uint256 b) private pure returns (uint256) { return (a > b) ? b : a; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"ammPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dvWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"excludeFrommaxTxnSize","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":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludemaxTxnSize","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxnSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mkWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"openTradingWithPermit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAMMPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"setBL","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":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarket","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapRouter","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMarketFee","type":"uint256"},{"internalType":"uint256","name":"newDevFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMarketFee","type":"uint256"},{"internalType":"uint256","name":"newDevFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updatemaxTxnSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a06040526008805462ffffff60a01b1916600160b01b1790553480156200002657600080fd5b506040518060400160405280601481526020017f446f626f20746865206e657572616c206265617200000000000000000000000081525060405180604001604052806004815260200163444f424f60e01b81525081600090816200008b91906200062c565b5060016200009a82826200062c565b505050620000b7620000b16200044560201b60201c565b62000449565b737a250d5630b4cf539739df2c5dacb4c659f2488d60808190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200010d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001339190620006f8565b6001600160a01b031663c9c65396306080516001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000183573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001a99190620006f8565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620001f7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021d9190620006f8565b600680546001600160a01b039283166001600160a01b03199182161782556007805482167358db7d267d27b7d50eee180efd1fe22888edca2c9081179091556008805490921617905560805182166000908152601760208190526040808320805460ff19908116600190811790925594549095168352822080549093168417909255620002b26005546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff199586161790553081526017909252812080548316600190811790915561dead82527f43fedf50e12e5c047fbe3576d03ab50250348e9a6030f531ab6d4ce10f5b0303805490931681179092556016906200033a6005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152601684528281208054861660019081179091557f290d80ce586bfe95e1ebf348e3ba109df813891ad867417e64d38c5a50473b57805487168217905560065490921681526018909352912080549092161790556a084595161401484a000000612710620003da82600562000740565b620003e6919062000760565b600a556923ffb7ed6565d64000006009819055600b556000600d819055600e81905562000414908062000783565b600c556000601081905560118190556200042f908062000783565b600f556200043e33826200049b565b5062000799565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620004f65760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b80600260008282546200050a919062000783565b90915550506001600160a01b038216600090815260036020526040812080548392906200053990849062000783565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620005b357607f821691505b602082108103620005d457634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200058357600081815260208120601f850160051c81016020861015620006035750805b601f850160051c820191505b8181101562000624578281556001016200060f565b505050505050565b81516001600160401b0381111562000648576200064862000588565b62000660816200065984546200059e565b84620005da565b602080601f8311600181146200069857600084156200067f5750858301515b600019600386901b1c1916600185901b17855562000624565b600085815260208120601f198616915b82811015620006c957888601518255948401946001909101908401620006a8565b5085821015620006e85787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200070b57600080fd5b81516001600160a01b03811681146200072357600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176200075a576200075a6200072a565b92915050565b6000826200077e57634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156200075a576200075a6200072a565b6080516126b4620007ca60003960008181610562015281816120fd015281816121b601526121f201526126b46000f3fe6080604052600436106102975760003560e01c80638da5cb5b1161015a578063bbc0c742116100c1578063d85ba0631161007a578063d85ba063146107f2578063dd62ed3e14610808578063e2f456051461084e578063e4a1b95f14610864578063e7a996ab1461087a578063f2fde38b1461089a57600080fd5b8063bbc0c7421461073c578063c02174ca1461075d578063c02466681461077d578063c816841b1461079d578063c9567bf9146107bd578063d257b34f146107d257600080fd5b80639c3b4fdc116101135780639c3b4fdc1461068a5780639fccce32146106a0578063a0d82dc5146106b6578063a457c2d7146106cc578063a72905a2146106ec578063a9059cbb1461071c57600080fd5b80638da5cb5b146105d15780638f3fa860146105ef578063917d3a6514610605578063924de9b71461063557806395d89b4114610655578063979919aa1461066a57600080fd5b806345434032116101fe5780636ddd1713116101b75780636ddd1713146104e457806370a0823114610505578063715018a61461053b578063735de9f714610550578063751039fc1461059c5780637b1d787d146105b157600080fd5b8063454340321461041d5780634a62bb651461043d5780634fbee1931461045e5780636323d7cb1461048e57806366ca9b83146104ae5780636a486a8e146104ce57600080fd5b806324887e801161025057806324887e80146103755780632b5f295a146103955780632d99d32e146103ab578063313ce567146103cb57806335b5fb63146103e757806339509351146103fd57600080fd5b806302dbd8f8146102a357806306fdde03146102c5578063095ea7b3146102f057806318160ddd146103205780631f7ea8da1461033f57806323b872dd1461035557600080fd5b3661029e57005b600080fd5b3480156102af57600080fd5b506102c36102be366004612272565b6108ba565b005b3480156102d157600080fd5b506102da61095a565b6040516102e79190612294565b60405180910390f35b3480156102fc57600080fd5b5061031061030b3660046122f7565b6109ec565b60405190151581526020016102e7565b34801561032c57600080fd5b506002545b6040519081526020016102e7565b34801561034b57600080fd5b5061033160125481565b34801561036157600080fd5b50610310610370366004612323565b610a03565b34801561038157600080fd5b506102c3610390366004612364565b610aad565b3480156103a157600080fd5b5061033160095481565b3480156103b757600080fd5b506102c36103c636600461238d565b610b83565b3480156103d757600080fd5b50604051601281526020016102e7565b3480156103f357600080fd5b5061033160105481565b34801561040957600080fd5b506103106104183660046122f7565b610c47565b34801561042957600080fd5b506102c361043836600461238d565b610c83565b34801561044957600080fd5b5060085461031090600160b01b900460ff1681565b34801561046a57600080fd5b506103106104793660046123c2565b60166020526000908152604090205460ff1681565b34801561049a57600080fd5b506102c36104a93660046123df565b610cd8565b3480156104ba57600080fd5b506102c36104c9366004612272565b610f73565b3480156104da57600080fd5b50610331600f5481565b3480156104f057600080fd5b5060085461031090600160a81b900460ff1681565b34801561051157600080fd5b506103316105203660046123c2565b6001600160a01b031660009081526003602052604090205490565b34801561054757600080fd5b506102c3611006565b34801561055c57600080fd5b506105847f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102e7565b3480156105a857600080fd5b5061031061103c565b3480156105bd57600080fd5b50600854610584906001600160a01b031681565b3480156105dd57600080fd5b506005546001600160a01b0316610584565b3480156105fb57600080fd5b50610331600b5481565b34801561061157600080fd5b506103106106203660046123c2565b60176020526000908152604090205460ff1681565b34801561064157600080fd5b506102c361065036600461241a565b61107c565b34801561066157600080fd5b506102da6110c4565b34801561067657600080fd5b506102c3610685366004612364565b6110d3565b34801561069657600080fd5b50610331600e5481565b3480156106ac57600080fd5b5061033160135481565b3480156106c257600080fd5b5061033160115481565b3480156106d857600080fd5b506103106106e73660046122f7565b6111a6565b3480156106f857600080fd5b506103106107073660046123c2565b60186020526000908152604090205460ff1681565b34801561072857600080fd5b506103106107373660046122f7565b61123f565b34801561074857600080fd5b5060085461031090600160a01b900460ff1681565b34801561076957600080fd5b50600754610584906001600160a01b031681565b34801561078957600080fd5b506102c361079836600461238d565b61124c565b3480156107a957600080fd5b50600654610584906001600160a01b031681565b3480156107c957600080fd5b506102c36112a1565b3480156107de57600080fd5b506103106107ed366004612364565b6112e2565b3480156107fe57600080fd5b50610331600c5481565b34801561081457600080fd5b50610331610823366004612435565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561085a57600080fd5b50610331600a5481565b34801561087057600080fd5b50610331600d5481565b34801561088657600080fd5b506102c361089536600461238d565b611439565b3480156108a657600080fd5b506102c36108b53660046123c2565b61148e565b6005546001600160a01b031633146108ed5760405162461bcd60e51b81526004016108e49061246e565b60405180910390fd5b6010829055601181905561090181836124b9565b600f819055606310156109565760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420323525206f72206c65737300000060448201526064016108e4565b5050565b606060008054610969906124cc565b80601f0160208091040260200160405190810160405280929190818152602001828054610995906124cc565b80156109e25780601f106109b7576101008083540402835291602001916109e2565b820191906000526020600020905b8154815290600101906020018083116109c557829003601f168201915b5050505050905090565b60006109f9338484611529565b5060015b92915050565b6000610a1084848461164d565b6001600160a01b038416600090815260046020908152604080832033845290915290205482811015610a955760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016108e4565b610aa28533858403611529565b506001949350505050565b6005546001600160a01b03163314610ad75760405162461bcd60e51b81526004016108e49061246e565b670de0b6b3a76400006103e8610aec60025490565b610af7906005612506565b610b01919061251d565b610b0b919061251d565b811015610b6b5760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f7420736574206d617857616c6c657453697a65206c6f776572207460448201526768616e20302e352560c01b60648201526084016108e4565b610b7d81670de0b6b3a7640000612506565b600b5550565b6005546001600160a01b03163314610bad5760405162461bcd60e51b81526004016108e49061246e565b6006546001600160a01b0390811690831603610c1c5760405162461bcd60e51b815260206004820152602860248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d20604482015267616d6d506169727360c01b60648201526084016108e4565b6001600160a01b03919091166000908152601860205260409020805460ff1916911515919091179055565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916109f9918590610c7e9086906124b9565b611529565b6005546001600160a01b03163314610cad5760405162461bcd60e51b81526004016108e49061246e565b6001600160a01b03919091166000908152601560205260409020805460ff1916911515919091179055565b604080518082018252600d81526c2a3930b234b733902a37b5b2b760991b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f918101919091527f65e27265c2bf07e8242fee81a602df3320989bd26741589720839868a275d56c918101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260009060c00160408051808303601f1901815282825280516020918201208383018352600e84526d456e61626c652054726164696e6760901b9382019390935281517f7dfdbf06c6260804b81338506aa4a709bd9f04b68ca0d2d054b8627926c90ae4918101919091527f07e4ca7f0c414d237f9df43639d0673c51201469c22695492434205e0b759df39181019190915260006060820181905291925060800160405160208183030381529060405280519060200120905060008282604051602001610e7892919061190160f01b81526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff8a169284019290925260608301889052608083018790529092509060019060a0016020604051602081039080840390855afa158015610ee3573d6000803e3d6000fd5b505050602060405103519050610f016005546001600160a01b031690565b6001600160a01b0316816001600160a01b031614610f555760405162461bcd60e51b8152602060048201526011602482015270496e76616c6964207369676e617475726560781b60448201526064016108e4565b50506008805461ffff60a01b191661010160a01b1790555050505050565b6005546001600160a01b03163314610f9d5760405162461bcd60e51b81526004016108e49061246e565b600d829055600e819055610fb181836124b9565b600c819055601910156109565760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420323525206f72206c65737300000060448201526064016108e4565b6005546001600160a01b031633146110305760405162461bcd60e51b81526004016108e49061246e565b61103a6000611d8d565b565b6005546000906001600160a01b031633146110695760405162461bcd60e51b81526004016108e49061246e565b506008805460ff60b01b19169055600190565b6005546001600160a01b031633146110a65760405162461bcd60e51b81526004016108e49061246e565b60088054911515600160a81b0260ff60a81b19909216919091179055565b606060018054610969906124cc565b6005546001600160a01b031633146110fd5760405162461bcd60e51b81526004016108e49061246e565b670de0b6b3a76400006103e861111260025490565b61111d906001612506565b611127919061251d565b611131919061251d565b81101561118e5760405162461bcd60e51b815260206004820152602560248201527f43616e6e6f7420736574206d617854786e53697a65206c6f776572207468616e60448201526420302e312560d81b60648201526084016108e4565b6111a081670de0b6b3a7640000612506565b60095550565b3360009081526004602090815260408083206001600160a01b0386168452909152812054828110156112285760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108e4565b6112353385858403611529565b5060019392505050565b60006109f933848461164d565b6005546001600160a01b031633146112765760405162461bcd60e51b81526004016108e49061246e565b6001600160a01b03919091166000908152601660205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146112cb5760405162461bcd60e51b81526004016108e49061246e565b6008805461ffff60a01b191661010160a01b179055565b6005546000906001600160a01b0316331461130f5760405162461bcd60e51b81526004016108e49061246e565b620186a061131c60025490565b611327906001612506565b611331919061251d565b82101561139e5760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b60648201526084016108e4565b6103e86113aa60025490565b6113b5906005612506565b6113bf919061251d565b82111561142b5760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b60648201526084016108e4565b50600a81905560015b919050565b6005546001600160a01b031633146114635760405162461bcd60e51b81526004016108e49061246e565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146114b85760405162461bcd60e51b81526004016108e49061246e565b6001600160a01b03811661151d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108e4565b61152681611d8d565b50565b6001600160a01b03831661158b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108e4565b6001600160a01b0382166115ec5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108e4565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166116735760405162461bcd60e51b81526004016108e49061253f565b6001600160a01b0382166116995760405162461bcd60e51b81526004016108e490612584565b6001600160a01b03831660009081526015602052604090205460ff16156116f65760405162461bcd60e51b815260206004820152601160248201527016d99c9bdb5748189b1858dac81b1a5cdd607a1b60448201526064016108e4565b6001600160a01b03821660009081526015602052604090205460ff16156117515760405162461bcd60e51b815260206004820152600f60248201526e16dd1bd748189b1858dac81b1a5cdd608a1b60448201526064016108e4565b8060000361176a5761176583836000611ddf565b505050565b600854600160b01b900460ff1615611ace576005546001600160a01b038481169116148015906117a857506005546001600160a01b03838116911614155b80156117bc57506001600160a01b03821615155b80156117d357506001600160a01b03821661dead14155b80156117e2575060145460ff16155b15611ace57600854600160a01b900460ff1661187c576001600160a01b03831660009081526016602052604090205460ff168061183757506001600160a01b03821660009081526016602052604090205460ff165b61187c5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016108e4565b6001600160a01b03831660009081526018602052604090205460ff1680156118bd57506001600160a01b03821660009081526017602052604090205460ff16155b15611997576009548111156119285760405162461bcd60e51b815260206004820152602b60248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526a36b0bc2a3c3729b4bd329760a91b60648201526084016108e4565b600b546001600160a01b03831660009081526003602052604090205461194e90836124b9565b11156119925760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016108e4565b611ace565b6001600160a01b03821660009081526018602052604090205460ff1680156119d857506001600160a01b03831660009081526017602052604090205460ff16155b15611a44576009548111156119925760405162461bcd60e51b815260206004820152602c60248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201526b1036b0bc2a3c3729b4bd329760a11b60648201526084016108e4565b6001600160a01b03821660009081526017602052604090205460ff16611ace57600b546001600160a01b038316600090815260036020526040902054611a8a90836124b9565b1115611ace5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016108e4565b30600090815260036020526040902054600a5481108015908190611afb5750600854600160a81b900460ff165b8015611b0a575060145460ff16155b8015611b2f57506001600160a01b03851660009081526018602052604090205460ff16155b8015611b5457506001600160a01b03851660009081526016602052604090205460ff16155b8015611b7957506001600160a01b03841660009081526016602052604090205460ff16155b15611b9e576014805460ff19166001179055611b93611f34565b6014805460ff191690555b6014546001600160a01b03861660009081526016602052604090205460ff91821615911680611be557506001600160a01b03851660009081526016602052604090205460ff165b15611bee575060005b60008115611d79576001600160a01b03861660009081526018602052604090205460ff168015611c2057506000600f54115b15611cae57611c456064611c3f600f548861208790919063ffffffff16565b9061209a565b9050600f5460115482611c589190612506565b611c62919061251d565b60136000828254611c7391906124b9565b9091555050600f54601054611c889083612506565b611c92919061251d565b60126000828254611ca391906124b9565b90915550611d5b9050565b6001600160a01b03871660009081526018602052604090205460ff168015611cd857506000600c54115b15611d5b57611cf76064611c3f600c548861208790919063ffffffff16565b9050600c54600e5482611d0a9190612506565b611d14919061251d565b60136000828254611d2591906124b9565b9091555050600c54600d54611d3a9083612506565b611d44919061251d565b60126000828254611d5591906124b9565b90915550505b8015611d6c57611d6c873083611ddf565b611d7681866125c7565b94505b611d84878787611ddf565b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038316611e055760405162461bcd60e51b81526004016108e49061253f565b6001600160a01b038216611e2b5760405162461bcd60e51b81526004016108e490612584565b6001600160a01b03831660009081526003602052604090205481811015611ea35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108e4565b6001600160a01b03808516600090815260036020526040808220858503905591851681529081208054849290611eda9084906124b9565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f2691815260200190565b60405180910390a350505050565b3060009081526003602052604081205490506000601354601254611f5891906124b9565b90506000821580611f67575081155b15611f7157505050565b600a54611f7f906014612506565b831115611f9757600a54611f94906014612506565b92505b47611fa1846120a6565b6000611fad4783612266565b90506000611fca85611c3f6013548561208790919063ffffffff16565b6000601281905560138190556008546040519293506001600160a01b031691839181818185875af1925050503d8060008114612022576040519150601f19603f3d011682016040523d82523d6000602084013e612027565b606091505b50506007546040519195506001600160a01b0316904790600081818185875af1925050503d8060008114612077576040519150601f19603f3d011682016040523d82523d6000602084013e61207c565b606091505b505050505050505050565b60006120938284612506565b9392505050565b6000612093828461251d565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106120db576120db6125da565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612159573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061217d91906125f0565b81600181518110612190576121906125da565b60200260200101906001600160a01b031690816001600160a01b0316815250506121db307f000000000000000000000000000000000000000000000000000000000000000084611529565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac9479061223090859060009086903090429060040161260d565b600060405180830381600087803b15801561224a57600080fd5b505af115801561225e573d6000803e3d6000fd5b505050505050565b600061209382846125c7565b6000806040838503121561228557600080fd5b50508035926020909101359150565b600060208083528351808285015260005b818110156122c1578581018301518582016040015282016122a5565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461152657600080fd5b6000806040838503121561230a57600080fd5b8235612315816122e2565b946020939093013593505050565b60008060006060848603121561233857600080fd5b8335612343816122e2565b92506020840135612353816122e2565b929592945050506040919091013590565b60006020828403121561237657600080fd5b5035919050565b8035801515811461143457600080fd5b600080604083850312156123a057600080fd5b82356123ab816122e2565b91506123b96020840161237d565b90509250929050565b6000602082840312156123d457600080fd5b8135612093816122e2565b6000806000606084860312156123f457600080fd5b833560ff8116811461240557600080fd5b95602085013595506040909401359392505050565b60006020828403121561242c57600080fd5b6120938261237d565b6000806040838503121561244857600080fd5b8235612453816122e2565b91506020830135612463816122e2565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808201808211156109fd576109fd6124a3565b600181811c908216806124e057607f821691505b60208210810361250057634e487b7160e01b600052602260045260246000fd5b50919050565b80820281158282048414176109fd576109fd6124a3565b60008261253a57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b818103818111156109fd576109fd6124a3565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561260257600080fd5b8151612093816122e2565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561265d5784516001600160a01b031683529383019391830191600101612638565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212203cdf5417c4bc8289bac50053402b864e55192e1922e7d07556f52d3f9f17128b64736f6c63430008130033
Deployed Bytecode
0x6080604052600436106102975760003560e01c80638da5cb5b1161015a578063bbc0c742116100c1578063d85ba0631161007a578063d85ba063146107f2578063dd62ed3e14610808578063e2f456051461084e578063e4a1b95f14610864578063e7a996ab1461087a578063f2fde38b1461089a57600080fd5b8063bbc0c7421461073c578063c02174ca1461075d578063c02466681461077d578063c816841b1461079d578063c9567bf9146107bd578063d257b34f146107d257600080fd5b80639c3b4fdc116101135780639c3b4fdc1461068a5780639fccce32146106a0578063a0d82dc5146106b6578063a457c2d7146106cc578063a72905a2146106ec578063a9059cbb1461071c57600080fd5b80638da5cb5b146105d15780638f3fa860146105ef578063917d3a6514610605578063924de9b71461063557806395d89b4114610655578063979919aa1461066a57600080fd5b806345434032116101fe5780636ddd1713116101b75780636ddd1713146104e457806370a0823114610505578063715018a61461053b578063735de9f714610550578063751039fc1461059c5780637b1d787d146105b157600080fd5b8063454340321461041d5780634a62bb651461043d5780634fbee1931461045e5780636323d7cb1461048e57806366ca9b83146104ae5780636a486a8e146104ce57600080fd5b806324887e801161025057806324887e80146103755780632b5f295a146103955780632d99d32e146103ab578063313ce567146103cb57806335b5fb63146103e757806339509351146103fd57600080fd5b806302dbd8f8146102a357806306fdde03146102c5578063095ea7b3146102f057806318160ddd146103205780631f7ea8da1461033f57806323b872dd1461035557600080fd5b3661029e57005b600080fd5b3480156102af57600080fd5b506102c36102be366004612272565b6108ba565b005b3480156102d157600080fd5b506102da61095a565b6040516102e79190612294565b60405180910390f35b3480156102fc57600080fd5b5061031061030b3660046122f7565b6109ec565b60405190151581526020016102e7565b34801561032c57600080fd5b506002545b6040519081526020016102e7565b34801561034b57600080fd5b5061033160125481565b34801561036157600080fd5b50610310610370366004612323565b610a03565b34801561038157600080fd5b506102c3610390366004612364565b610aad565b3480156103a157600080fd5b5061033160095481565b3480156103b757600080fd5b506102c36103c636600461238d565b610b83565b3480156103d757600080fd5b50604051601281526020016102e7565b3480156103f357600080fd5b5061033160105481565b34801561040957600080fd5b506103106104183660046122f7565b610c47565b34801561042957600080fd5b506102c361043836600461238d565b610c83565b34801561044957600080fd5b5060085461031090600160b01b900460ff1681565b34801561046a57600080fd5b506103106104793660046123c2565b60166020526000908152604090205460ff1681565b34801561049a57600080fd5b506102c36104a93660046123df565b610cd8565b3480156104ba57600080fd5b506102c36104c9366004612272565b610f73565b3480156104da57600080fd5b50610331600f5481565b3480156104f057600080fd5b5060085461031090600160a81b900460ff1681565b34801561051157600080fd5b506103316105203660046123c2565b6001600160a01b031660009081526003602052604090205490565b34801561054757600080fd5b506102c3611006565b34801561055c57600080fd5b506105847f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b0390911681526020016102e7565b3480156105a857600080fd5b5061031061103c565b3480156105bd57600080fd5b50600854610584906001600160a01b031681565b3480156105dd57600080fd5b506005546001600160a01b0316610584565b3480156105fb57600080fd5b50610331600b5481565b34801561061157600080fd5b506103106106203660046123c2565b60176020526000908152604090205460ff1681565b34801561064157600080fd5b506102c361065036600461241a565b61107c565b34801561066157600080fd5b506102da6110c4565b34801561067657600080fd5b506102c3610685366004612364565b6110d3565b34801561069657600080fd5b50610331600e5481565b3480156106ac57600080fd5b5061033160135481565b3480156106c257600080fd5b5061033160115481565b3480156106d857600080fd5b506103106106e73660046122f7565b6111a6565b3480156106f857600080fd5b506103106107073660046123c2565b60186020526000908152604090205460ff1681565b34801561072857600080fd5b506103106107373660046122f7565b61123f565b34801561074857600080fd5b5060085461031090600160a01b900460ff1681565b34801561076957600080fd5b50600754610584906001600160a01b031681565b34801561078957600080fd5b506102c361079836600461238d565b61124c565b3480156107a957600080fd5b50600654610584906001600160a01b031681565b3480156107c957600080fd5b506102c36112a1565b3480156107de57600080fd5b506103106107ed366004612364565b6112e2565b3480156107fe57600080fd5b50610331600c5481565b34801561081457600080fd5b50610331610823366004612435565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561085a57600080fd5b50610331600a5481565b34801561087057600080fd5b50610331600d5481565b34801561088657600080fd5b506102c361089536600461238d565b611439565b3480156108a657600080fd5b506102c36108b53660046123c2565b61148e565b6005546001600160a01b031633146108ed5760405162461bcd60e51b81526004016108e49061246e565b60405180910390fd5b6010829055601181905561090181836124b9565b600f819055606310156109565760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420323525206f72206c65737300000060448201526064016108e4565b5050565b606060008054610969906124cc565b80601f0160208091040260200160405190810160405280929190818152602001828054610995906124cc565b80156109e25780601f106109b7576101008083540402835291602001916109e2565b820191906000526020600020905b8154815290600101906020018083116109c557829003601f168201915b5050505050905090565b60006109f9338484611529565b5060015b92915050565b6000610a1084848461164d565b6001600160a01b038416600090815260046020908152604080832033845290915290205482811015610a955760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016108e4565b610aa28533858403611529565b506001949350505050565b6005546001600160a01b03163314610ad75760405162461bcd60e51b81526004016108e49061246e565b670de0b6b3a76400006103e8610aec60025490565b610af7906005612506565b610b01919061251d565b610b0b919061251d565b811015610b6b5760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f7420736574206d617857616c6c657453697a65206c6f776572207460448201526768616e20302e352560c01b60648201526084016108e4565b610b7d81670de0b6b3a7640000612506565b600b5550565b6005546001600160a01b03163314610bad5760405162461bcd60e51b81526004016108e49061246e565b6006546001600160a01b0390811690831603610c1c5760405162461bcd60e51b815260206004820152602860248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d20604482015267616d6d506169727360c01b60648201526084016108e4565b6001600160a01b03919091166000908152601860205260409020805460ff1916911515919091179055565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916109f9918590610c7e9086906124b9565b611529565b6005546001600160a01b03163314610cad5760405162461bcd60e51b81526004016108e49061246e565b6001600160a01b03919091166000908152601560205260409020805460ff1916911515919091179055565b604080518082018252600d81526c2a3930b234b733902a37b5b2b760991b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f918101919091527f65e27265c2bf07e8242fee81a602df3320989bd26741589720839868a275d56c918101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260009060c00160408051808303601f1901815282825280516020918201208383018352600e84526d456e61626c652054726164696e6760901b9382019390935281517f7dfdbf06c6260804b81338506aa4a709bd9f04b68ca0d2d054b8627926c90ae4918101919091527f07e4ca7f0c414d237f9df43639d0673c51201469c22695492434205e0b759df39181019190915260006060820181905291925060800160405160208183030381529060405280519060200120905060008282604051602001610e7892919061190160f01b81526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff8a169284019290925260608301889052608083018790529092509060019060a0016020604051602081039080840390855afa158015610ee3573d6000803e3d6000fd5b505050602060405103519050610f016005546001600160a01b031690565b6001600160a01b0316816001600160a01b031614610f555760405162461bcd60e51b8152602060048201526011602482015270496e76616c6964207369676e617475726560781b60448201526064016108e4565b50506008805461ffff60a01b191661010160a01b1790555050505050565b6005546001600160a01b03163314610f9d5760405162461bcd60e51b81526004016108e49061246e565b600d829055600e819055610fb181836124b9565b600c819055601910156109565760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420323525206f72206c65737300000060448201526064016108e4565b6005546001600160a01b031633146110305760405162461bcd60e51b81526004016108e49061246e565b61103a6000611d8d565b565b6005546000906001600160a01b031633146110695760405162461bcd60e51b81526004016108e49061246e565b506008805460ff60b01b19169055600190565b6005546001600160a01b031633146110a65760405162461bcd60e51b81526004016108e49061246e565b60088054911515600160a81b0260ff60a81b19909216919091179055565b606060018054610969906124cc565b6005546001600160a01b031633146110fd5760405162461bcd60e51b81526004016108e49061246e565b670de0b6b3a76400006103e861111260025490565b61111d906001612506565b611127919061251d565b611131919061251d565b81101561118e5760405162461bcd60e51b815260206004820152602560248201527f43616e6e6f7420736574206d617854786e53697a65206c6f776572207468616e60448201526420302e312560d81b60648201526084016108e4565b6111a081670de0b6b3a7640000612506565b60095550565b3360009081526004602090815260408083206001600160a01b0386168452909152812054828110156112285760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108e4565b6112353385858403611529565b5060019392505050565b60006109f933848461164d565b6005546001600160a01b031633146112765760405162461bcd60e51b81526004016108e49061246e565b6001600160a01b03919091166000908152601660205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146112cb5760405162461bcd60e51b81526004016108e49061246e565b6008805461ffff60a01b191661010160a01b179055565b6005546000906001600160a01b0316331461130f5760405162461bcd60e51b81526004016108e49061246e565b620186a061131c60025490565b611327906001612506565b611331919061251d565b82101561139e5760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b60648201526084016108e4565b6103e86113aa60025490565b6113b5906005612506565b6113bf919061251d565b82111561142b5760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b60648201526084016108e4565b50600a81905560015b919050565b6005546001600160a01b031633146114635760405162461bcd60e51b81526004016108e49061246e565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146114b85760405162461bcd60e51b81526004016108e49061246e565b6001600160a01b03811661151d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108e4565b61152681611d8d565b50565b6001600160a01b03831661158b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108e4565b6001600160a01b0382166115ec5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108e4565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166116735760405162461bcd60e51b81526004016108e49061253f565b6001600160a01b0382166116995760405162461bcd60e51b81526004016108e490612584565b6001600160a01b03831660009081526015602052604090205460ff16156116f65760405162461bcd60e51b815260206004820152601160248201527016d99c9bdb5748189b1858dac81b1a5cdd607a1b60448201526064016108e4565b6001600160a01b03821660009081526015602052604090205460ff16156117515760405162461bcd60e51b815260206004820152600f60248201526e16dd1bd748189b1858dac81b1a5cdd608a1b60448201526064016108e4565b8060000361176a5761176583836000611ddf565b505050565b600854600160b01b900460ff1615611ace576005546001600160a01b038481169116148015906117a857506005546001600160a01b03838116911614155b80156117bc57506001600160a01b03821615155b80156117d357506001600160a01b03821661dead14155b80156117e2575060145460ff16155b15611ace57600854600160a01b900460ff1661187c576001600160a01b03831660009081526016602052604090205460ff168061183757506001600160a01b03821660009081526016602052604090205460ff165b61187c5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016108e4565b6001600160a01b03831660009081526018602052604090205460ff1680156118bd57506001600160a01b03821660009081526017602052604090205460ff16155b15611997576009548111156119285760405162461bcd60e51b815260206004820152602b60248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526a36b0bc2a3c3729b4bd329760a91b60648201526084016108e4565b600b546001600160a01b03831660009081526003602052604090205461194e90836124b9565b11156119925760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016108e4565b611ace565b6001600160a01b03821660009081526018602052604090205460ff1680156119d857506001600160a01b03831660009081526017602052604090205460ff16155b15611a44576009548111156119925760405162461bcd60e51b815260206004820152602c60248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201526b1036b0bc2a3c3729b4bd329760a11b60648201526084016108e4565b6001600160a01b03821660009081526017602052604090205460ff16611ace57600b546001600160a01b038316600090815260036020526040902054611a8a90836124b9565b1115611ace5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016108e4565b30600090815260036020526040902054600a5481108015908190611afb5750600854600160a81b900460ff165b8015611b0a575060145460ff16155b8015611b2f57506001600160a01b03851660009081526018602052604090205460ff16155b8015611b5457506001600160a01b03851660009081526016602052604090205460ff16155b8015611b7957506001600160a01b03841660009081526016602052604090205460ff16155b15611b9e576014805460ff19166001179055611b93611f34565b6014805460ff191690555b6014546001600160a01b03861660009081526016602052604090205460ff91821615911680611be557506001600160a01b03851660009081526016602052604090205460ff165b15611bee575060005b60008115611d79576001600160a01b03861660009081526018602052604090205460ff168015611c2057506000600f54115b15611cae57611c456064611c3f600f548861208790919063ffffffff16565b9061209a565b9050600f5460115482611c589190612506565b611c62919061251d565b60136000828254611c7391906124b9565b9091555050600f54601054611c889083612506565b611c92919061251d565b60126000828254611ca391906124b9565b90915550611d5b9050565b6001600160a01b03871660009081526018602052604090205460ff168015611cd857506000600c54115b15611d5b57611cf76064611c3f600c548861208790919063ffffffff16565b9050600c54600e5482611d0a9190612506565b611d14919061251d565b60136000828254611d2591906124b9565b9091555050600c54600d54611d3a9083612506565b611d44919061251d565b60126000828254611d5591906124b9565b90915550505b8015611d6c57611d6c873083611ddf565b611d7681866125c7565b94505b611d84878787611ddf565b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038316611e055760405162461bcd60e51b81526004016108e49061253f565b6001600160a01b038216611e2b5760405162461bcd60e51b81526004016108e490612584565b6001600160a01b03831660009081526003602052604090205481811015611ea35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108e4565b6001600160a01b03808516600090815260036020526040808220858503905591851681529081208054849290611eda9084906124b9565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f2691815260200190565b60405180910390a350505050565b3060009081526003602052604081205490506000601354601254611f5891906124b9565b90506000821580611f67575081155b15611f7157505050565b600a54611f7f906014612506565b831115611f9757600a54611f94906014612506565b92505b47611fa1846120a6565b6000611fad4783612266565b90506000611fca85611c3f6013548561208790919063ffffffff16565b6000601281905560138190556008546040519293506001600160a01b031691839181818185875af1925050503d8060008114612022576040519150601f19603f3d011682016040523d82523d6000602084013e612027565b606091505b50506007546040519195506001600160a01b0316904790600081818185875af1925050503d8060008114612077576040519150601f19603f3d011682016040523d82523d6000602084013e61207c565b606091505b505050505050505050565b60006120938284612506565b9392505050565b6000612093828461251d565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106120db576120db6125da565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612159573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061217d91906125f0565b81600181518110612190576121906125da565b60200260200101906001600160a01b031690816001600160a01b0316815250506121db307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611529565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac9479061223090859060009086903090429060040161260d565b600060405180830381600087803b15801561224a57600080fd5b505af115801561225e573d6000803e3d6000fd5b505050505050565b600061209382846125c7565b6000806040838503121561228557600080fd5b50508035926020909101359150565b600060208083528351808285015260005b818110156122c1578581018301518582016040015282016122a5565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461152657600080fd5b6000806040838503121561230a57600080fd5b8235612315816122e2565b946020939093013593505050565b60008060006060848603121561233857600080fd5b8335612343816122e2565b92506020840135612353816122e2565b929592945050506040919091013590565b60006020828403121561237657600080fd5b5035919050565b8035801515811461143457600080fd5b600080604083850312156123a057600080fd5b82356123ab816122e2565b91506123b96020840161237d565b90509250929050565b6000602082840312156123d457600080fd5b8135612093816122e2565b6000806000606084860312156123f457600080fd5b833560ff8116811461240557600080fd5b95602085013595506040909401359392505050565b60006020828403121561242c57600080fd5b6120938261237d565b6000806040838503121561244857600080fd5b8235612453816122e2565b91506020830135612463816122e2565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808201808211156109fd576109fd6124a3565b600181811c908216806124e057607f821691505b60208210810361250057634e487b7160e01b600052602260045260246000fd5b50919050565b80820281158282048414176109fd576109fd6124a3565b60008261253a57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b818103818111156109fd576109fd6124a3565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561260257600080fd5b8151612093816122e2565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561265d5784516001600160a01b031683529383019391830191600101612638565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212203cdf5417c4bc8289bac50053402b864e55192e1922e7d07556f52d3f9f17128b64736f6c63430008130033
Deployed Bytecode Sourcemap
14927:10450:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20258:289;;;;;;;;;;-1:-1:-1;20258:289:0;;;;;:::i;:::-;;:::i;:::-;;10272:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11003:169;;;;;;;;;;-1:-1:-1;11003:169:0;;;;;:::i;:::-;;:::i;:::-;;;1441:14:1;;1434:22;1416:41;;1404:2;1389:18;11003:169:0;1276:187:1;10593:108:0;;;;;;;;;;-1:-1:-1;10681:12:0;;10593:108;;;1614:25:1;;;1602:2;1587:18;10593:108:0;1468:177:1;15601:30:0;;;;;;;;;;;;;;;;11363:492;;;;;;;;;;-1:-1:-1;11363:492:0;;;;;:::i;:::-;;:::i;19112:225::-;;;;;;;;;;-1:-1:-1;19112:225:0;;;;;:::i;:::-;;:::i;15287:25::-;;;;;;;;;;;;;;;;20555:189;;;;;;;;;;-1:-1:-1;20555:189:0;;;;;:::i;:::-;;:::i;10492:93::-;;;;;;;;;;-1:-1:-1;10492:93:0;;10575:2;2923:36:1;;2911:2;2896:18;10492:93:0;2781:184:1;15532:28:0;;;;;;;;;;;;;;;;11863:215;;;;;;;;;;-1:-1:-1;11863:215:0;;;;;:::i;:::-;;:::i;20752:106::-;;;;;;;;;;-1:-1:-1;20752:106:0;;;;;:::i;:::-;;:::i;15245:33::-;;;;;;;;;;-1:-1:-1;15245:33:0;;;;-1:-1:-1;;;15245:33:0;;;;;;15755:50;;;;;;;;;;-1:-1:-1;15755:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17536:1060;;;;;;;;;;-1:-1:-1;17536:1060:0;;;;;:::i;:::-;;:::i;19968:282::-;;;;;;;;;;-1:-1:-1;19968:282:0;;;;;:::i;:::-;;:::i;15497:28::-;;;;;;;;;;;;;;;;15207:31;;;;;;;;;;-1:-1:-1;15207:31:0;;;;-1:-1:-1;;;15207:31:0;;;;;;10709:127;;;;;;;;;;-1:-1:-1;10709:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;10810:18:0;10783:7;10810:18;;;:9;:18;;;;;;;10709:127;777:103;;;;;;;;;;;;;:::i;15014:49::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3822:32:1;;;3804:51;;3792:2;3777:18;15014:49:0;3632:229:1;18875:121:0;;;;;;;;;;;;;:::i;15135:23::-;;;;;;;;;;-1:-1:-1;15135:23:0;;;;-1:-1:-1;;;;;15135:23:0;;;554:87;;;;;;;;;;-1:-1:-1;627:6:0;;-1:-1:-1;;;;;627:6:0;554:87;;15359:28;;;;;;;;;;;;;;;;15812:51;;;;;;;;;;-1:-1:-1;15812:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;19004:100;;;;;;;;;;-1:-1:-1;19004:100:0;;;;;:::i;:::-;;:::i;10380:104::-;;;;;;;;;;;;;:::i;19744:216::-;;;;;;;;;;-1:-1:-1;19744:216:0;;;;;:::i;:::-;;:::i;15464:24::-;;;;;;;;;;;;;;;;15638:27;;;;;;;;;;;;;;;;15567:25;;;;;;;;;;;;;;;;12086:413;;;;;;;;;;-1:-1:-1;12086:413:0;;;;;:::i;:::-;;:::i;15872:40::-;;;;;;;;;;-1:-1:-1;15872:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11180:175;;;;;;;;;;-1:-1:-1;11180:175:0;;;;;:::i;:::-;;:::i;15167:33::-;;;;;;;;;;-1:-1:-1;15167:33:0;;;;-1:-1:-1;;;15167:33:0;;;;;;15105:23;;;;;;;;;;-1:-1:-1;15105:23:0;;;;-1:-1:-1;;;;;15105:23:0;;;18740:127;;;;;;;;;;-1:-1:-1;18740:127:0;;;;;:::i;:::-;;:::i;15070:26::-;;;;;;;;;;-1:-1:-1;15070:26:0;;;;-1:-1:-1;;;;;15070:26:0;;;17418:110;;;;;;;;;;;;;:::i;19345:391::-;;;;;;;;;;-1:-1:-1;19345:391:0;;;;;:::i;:::-;;:::i;15396:27::-;;;;;;;;;;;;;;;;10844:151;;;;;;;;;;-1:-1:-1;10844:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;10960:18:0;;;10933:7;10960:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10844:151;15319:33;;;;;;;;;;;;;;;;15430:27;;;;;;;;;;;;;;;;18604:128;;;;;;;;;;-1:-1:-1;18604:128:0;;;;;:::i;:::-;;:::i;888:201::-;;;;;;;;;;-1:-1:-1;888:201:0;;;;;:::i;:::-;;:::i;20258:289::-;627:6;;-1:-1:-1;;;;;627:6:0;180:10;689:23;681:68;;;;-1:-1:-1;;;681:68:0;;;;;;;:::i;:::-;;;;;;;;;20353:13:::1;:28:::0;;;20392:10:::1;:22:::0;;;20441:26:::1;20405:9:::0;20369:12;20441:26:::1;:::i;:::-;20425:13;:42:::0;;;20503:2:::1;-1:-1:-1::0;20486:19:0::1;20478:61;;;::::0;-1:-1:-1;;;20478:61:0;;5477:2:1;20478:61:0::1;::::0;::::1;5459:21:1::0;5516:2;5496:18;;;5489:30;5555:31;5535:18;;;5528:59;5604:18;;20478:61:0::1;5275:353:1::0;20478:61:0::1;20258:289:::0;;:::o;10272:100::-;10326:13;10359:5;10352:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10272:100;:::o;11003:169::-;11086:4;11103:39;180:10;11126:7;11135:6;11103:8;:39::i;:::-;-1:-1:-1;11160:4:0;11003:169;;;;;:::o;11363:492::-;11503:4;11520:36;11530:6;11538:9;11549:6;11520:9;:36::i;:::-;-1:-1:-1;;;;;11596:19:0;;11569:24;11596:19;;;:11;:19;;;;;;;;180:10;11596:33;;;;;;;;11648:26;;;;11640:79;;;;-1:-1:-1;;;11640:79:0;;6220:2:1;11640:79:0;;;6202:21:1;6259:2;6239:18;;;6232:30;6298:34;6278:18;;;6271:62;-1:-1:-1;;;6349:18:1;;;6342:38;6397:19;;11640:79:0;6018:404:1;11640:79:0;11755:57;11764:6;180:10;11805:6;11786:16;:25;11755:8;:57::i;:::-;-1:-1:-1;11843:4:0;;11363:492;-1:-1:-1;;;;11363:492:0:o;19112:225::-;627:6;;-1:-1:-1;;;;;627:6:0;180:10;689:23;681:68;;;;-1:-1:-1;;;681:68:0;;;;;;;:::i;:::-;19236:4:::1;19228;19207:13;10681:12:::0;;;10593:108;19207:13:::1;:17;::::0;19223:1:::1;19207:17;:::i;:::-;19206:26;;;;:::i;:::-;19205:35;;;;:::i;:::-;19195:6;:45;;19187:98;;;::::0;-1:-1:-1;;;19187:98:0;;7024:2:1;19187:98:0::1;::::0;::::1;7006:21:1::0;7063:2;7043:18;;;7036:30;7102:34;7082:18;;;7075:62;-1:-1:-1;;;7153:18:1;;;7146:38;7201:19;;19187:98:0::1;6822:404:1::0;19187:98:0::1;19312:17;:6:::0;19322::::1;19312:17;:::i;:::-;19296:13;:33:::0;-1:-1:-1;19112:225:0:o;20555:189::-;627:6;;-1:-1:-1;;;;;627:6:0;180:10;689:23;681:68;;;;-1:-1:-1;;;681:68:0;;;;;;;:::i;:::-;20647:11:::1;::::0;-1:-1:-1;;;;;20647:11:0;;::::1;20639:19:::0;;::::1;::::0;20631:72:::1;;;::::0;-1:-1:-1;;;20631:72:0;;7433:2:1;20631:72:0::1;::::0;::::1;7415:21:1::0;7472:2;7452:18;;;7445:30;7511:34;7491:18;;;7484:62;-1:-1:-1;;;7562:18:1;;;7555:38;7610:19;;20631:72:0::1;7231:404:1::0;20631:72:0::1;-1:-1:-1::0;;;;;20714:14:0;;;::::1;;::::0;;;:8:::1;:14;::::0;;;;:22;;-1:-1:-1;;20714:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20555:189::o;11863:215::-;180:10;11951:4;12000:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;12000:34:0;;;;;;;;;;11951:4;;11968:80;;11991:7;;12000:47;;12037:10;;12000:47;:::i;:::-;11968:8;:80::i;20752:106::-;627:6;;-1:-1:-1;;;;;627:6:0;180:10;689:23;681:68;;;;-1:-1:-1;;;681:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20824:17:0;;;::::1;;::::0;;;:11:::1;:17;::::0;;;;:26;;-1:-1:-1;;20824:26:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20752:106::o;17536:1060::-;17816:22;;;;;;;;;;;-1:-1:-1;;;17816:22:0;;;;;17868:10;;;;;;;;;;-1:-1:-1;;;17868:10:0;;;;17663:295;;17692:95;17663:295;;;7899:25:1;;;;17806:33:0;7940:18:1;;;7933:34;;;;17858:21:0;7983:18:1;;;7976:34;17898:13:0;8026:18:1;;;8019:34;17938:4:0;8069:19:1;;;8062:61;-1:-1:-1;;7871:19:1;;17663:295:0;;;;;;-1:-1:-1;;17663:295:0;;;;;;17639:330;;17663:295;17639:330;;;;18134:23;;;;;;;;-1:-1:-1;;;18134:23:0;;;;;;;18027:175;;18056:49;18027:175;;;8336:25:1;;;;18124:34:0;8377:18:1;;;8370:34;;;;-1:-1:-1;8420:18:1;;;8413:34;;;17639:330:0;;-1:-1:-1;8309:18:1;;18027:175:0;;;;;;;;;;;;18003:210;;;;;;17982:231;;18226:14;18331:10;18360;18267:134;;;;;;;;-1:-1:-1;;;8716:27:1;;8768:1;8759:11;;8752:27;;;;8804:2;8795:12;;8788:28;8841:2;8832:12;;8458:392;18267:134:0;;;;-1:-1:-1;;18267:134:0;;;;;;;;;18243:169;;18267:134;18243:169;;;;18425:14;18442:26;;;;;;;;;9082:25:1;;;9155:4;9143:17;;9123:18;;;9116:45;;;;9177:18;;;9170:34;;;9220:18;;;9213:34;;;18243:169:0;;-1:-1:-1;18425:14:0;18442:26;;9054:19:1;;18442:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18425:43;;18497:7;627:6;;-1:-1:-1;;;;;627:6:0;;554:87;18497:7;-1:-1:-1;;;;;18487:17:0;:6;-1:-1:-1;;;;;18487:17:0;;18479:47;;;;-1:-1:-1;;;18479:47:0;;9460:2:1;18479:47:0;;;9442:21:1;9499:2;9479:18;;;9472:30;-1:-1:-1;;;9518:18:1;;;9511:47;9575:18;;18479:47:0;9258:341:1;18479:47:0;-1:-1:-1;;18539:13:0;:20;;-1:-1:-1;;;;18570:18:0;-1:-1:-1;;;18570:18:0;;;-1:-1:-1;;;;;17536:1060:0:o;19968:282::-;627:6;;-1:-1:-1;;;;;627:6:0;180:10;689:23;681:68;;;;-1:-1:-1;;;681:68:0;;;;;;;:::i;:::-;20062:12:::1;:27:::0;;;20100:9:::1;:21:::0;;;20147:24:::1;20112:9:::0;20077:12;20147:24:::1;:::i;:::-;20132:12;:39:::0;;;20206:2:::1;-1:-1:-1::0;20190:18:0::1;20182:60;;;::::0;-1:-1:-1;;;20182:60:0;;5477:2:1;20182:60:0::1;::::0;::::1;5459:21:1::0;5516:2;5496:18;;;5489:30;5555:31;5535:18;;;5528:59;5604:18;;20182:60:0::1;5275:353:1::0;777:103:0;627:6;;-1:-1:-1;;;;;627:6:0;180:10;689:23;681:68;;;;-1:-1:-1;;;681:68:0;;;;;;;:::i;:::-;842:30:::1;869:1;842:18;:30::i;:::-;777:103::o:0;18875:121::-;627:6;;18927:4;;-1:-1:-1;;;;;627:6:0;180:10;689:23;681:68;;;;-1:-1:-1;;;681:68:0;;;;;;;:::i;:::-;-1:-1:-1;18944:14:0::1;:22:::0;;-1:-1:-1;;;;18944:22:0::1;::::0;;;18875:121;:::o;19004:100::-;627:6;;-1:-1:-1;;;;;627:6:0;180:10;689:23;681:68;;;;-1:-1:-1;;;681:68:0;;;;;;;:::i;:::-;19075:11:::1;:21:::0;;;::::1;;-1:-1:-1::0;;;19075:21:0::1;-1:-1:-1::0;;;;19075:21:0;;::::1;::::0;;;::::1;::::0;;19004:100::o;10380:104::-;10436:13;10469:7;10462:14;;;;;:::i;19744:216::-;627:6;;-1:-1:-1;;;;;627:6:0;180:10;689:23;681:68;;;;-1:-1:-1;;;681:68:0;;;;;;;:::i;:::-;19865:4:::1;19857;19836:13;10681:12:::0;;;10593:108;19836:13:::1;:17;::::0;19852:1:::1;19836:17;:::i;:::-;19835:26;;;;:::i;:::-;19834:35;;;;:::i;:::-;19824:6;:45;;19816:95;;;::::0;-1:-1:-1;;;19816:95:0;;9806:2:1;19816:95:0::1;::::0;::::1;9788:21:1::0;9845:2;9825:18;;;9818:30;9884:34;9864:18;;;9857:62;-1:-1:-1;;;9935:18:1;;;9928:35;9980:19;;19816:95:0::1;9604:401:1::0;19816:95:0::1;19935:17;:6:::0;19945::::1;19935:17;:::i;:::-;19922:10;:30:::0;-1:-1:-1;19744:216:0:o;12086:413::-;180:10;12179:4;12223:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;12223:34:0;;;;;;;;;;12276:35;;;;12268:85;;;;-1:-1:-1;;;12268:85:0;;10212:2:1;12268:85:0;;;10194:21:1;10251:2;10231:18;;;10224:30;10290:34;10270:18;;;10263:62;-1:-1:-1;;;10341:18:1;;;10334:35;10386:19;;12268:85:0;10010:401:1;12268:85:0;12389:67;180:10;12412:7;12440:15;12421:16;:34;12389:8;:67::i;:::-;-1:-1:-1;12487:4:0;;12086:413;-1:-1:-1;;;12086:413:0:o;11180:175::-;11266:4;11283:42;180:10;11307:9;11318:6;11283:9;:42::i;18740:127::-;627:6;;-1:-1:-1;;;;;627:6:0;180:10;689:23;681:68;;;;-1:-1:-1;;;681:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18824:27:0;;;::::1;;::::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;18824:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18740:127::o;17418:110::-;627:6;;-1:-1:-1;;;;;627:6:0;180:10;689:23;681:68;;;;-1:-1:-1;;;681:68:0;;;;;;;:::i;:::-;17471:13:::1;:20:::0;;-1:-1:-1;;;;17502:18:0;-1:-1:-1;;;17502:18:0;;;17418:110::o;19345:391::-;627:6;;19426:4;;-1:-1:-1;;;;;627:6:0;180:10;689:23;681:68;;;;-1:-1:-1;;;681:68:0;;;;;;;:::i;:::-;19486:6:::1;19465:13;10681:12:::0;;;10593:108;19465:13:::1;:17;::::0;19481:1:::1;19465:17;:::i;:::-;19464:28;;;;:::i;:::-;19451:9;:41;;19443:107;;;::::0;-1:-1:-1;;;19443:107:0;;10618:2:1;19443:107:0::1;::::0;::::1;10600:21:1::0;10657:2;10637:18;;;10630:30;10696:34;10676:18;;;10669:62;-1:-1:-1;;;10747:18:1;;;10740:51;10808:19;;19443:107:0::1;10416:417:1::0;19443:107:0::1;19604:4;19583:13;10681:12:::0;;;10593:108;19583:13:::1;:17;::::0;19599:1:::1;19583:17;:::i;:::-;19582:26;;;;:::i;:::-;19569:9;:39;;19561:104;;;::::0;-1:-1:-1;;;19561:104:0;;11040:2:1;19561:104:0::1;::::0;::::1;11022:21:1::0;11079:2;11059:18;;;11052:30;11118:34;11098:18;;;11091:62;-1:-1:-1;;;11169:18:1;;;11162:50;11229:19;;19561:104:0::1;10838:416:1::0;19561:104:0::1;-1:-1:-1::0;19676:18:0::1;:30:::0;;;19724:4:::1;760:1;19345:391:::0;;;:::o;18604:128::-;627:6;;-1:-1:-1;;;;;627:6:0;180:10;689:23;681:68;;;;-1:-1:-1;;;681:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18691:25:0;;;::::1;;::::0;;;:19:::1;:25;::::0;;;;:33;;-1:-1:-1;;18691:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18604:128::o;888:201::-;627:6;;-1:-1:-1;;;;;627:6:0;180:10;689:23;681:68;;;;-1:-1:-1;;;681:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;977:22:0;::::1;969:73;;;::::0;-1:-1:-1;;;969:73:0;;11461:2:1;969:73:0::1;::::0;::::1;11443:21:1::0;11500:2;11480:18;;;11473:30;11539:34;11519:18;;;11512:62;-1:-1:-1;;;11590:18:1;;;11583:36;11636:19;;969:73:0::1;11259:402:1::0;969:73:0::1;1053:28;1072:8;1053:18;:28::i;:::-;888:201:::0;:::o;13513:380::-;-1:-1:-1;;;;;13649:19:0;;13641:68;;;;-1:-1:-1;;;13641:68:0;;11868:2:1;13641:68:0;;;11850:21:1;11907:2;11887:18;;;11880:30;11946:34;11926:18;;;11919:62;-1:-1:-1;;;11997:18:1;;;11990:34;12041:19;;13641:68:0;11666:400:1;13641:68:0;-1:-1:-1;;;;;13728:21:0;;13720:68;;;;-1:-1:-1;;;13720:68:0;;12273:2:1;13720:68:0;;;12255:21:1;12312:2;12292:18;;;12285:30;12351:34;12331:18;;;12324:62;-1:-1:-1;;;12402:18:1;;;12395:32;12444:19;;13720:68:0;12071:398:1;13720:68:0;-1:-1:-1;;;;;13801:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;13853:32;;1614:25:1;;;13853:32:0;;1587:18:1;13853:32:0;;;;;;;13513:380;;;:::o;22331:2928::-;-1:-1:-1;;;;;22429:18:0;;22421:68;;;;-1:-1:-1;;;22421:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22508:16:0;;22500:64;;;;-1:-1:-1;;;22500:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22584:17:0;;;;;;:11;:17;;;;;;;;22583:18;22575:48;;;;-1:-1:-1;;;22575:48:0;;13486:2:1;22575:48:0;;;13468:21:1;13525:2;13505:18;;;13498:30;-1:-1:-1;;;13544:18:1;;;13537:47;13601:18;;22575:48:0;13284:341:1;22575:48:0;-1:-1:-1;;;;;22643:15:0;;;;;;:11;:15;;;;;;;;22642:16;22634:44;;;;-1:-1:-1;;;22634:44:0;;13832:2:1;22634:44:0;;;13814:21:1;13871:2;13851:18;;;13844:30;-1:-1:-1;;;13890:18:1;;;13883:45;13945:18;;22634:44:0;13630:339:1;22634:44:0;22695:6;22705:1;22695:11;22691:93;;22723:28;22739:4;22745:2;22749:1;22723:15;:28::i;:::-;22331:2928;;;:::o;22691:93::-;22800:14;;-1:-1:-1;;;22800:14:0;;;;22796:1088;;;627:6;;-1:-1:-1;;;;;22835:15:0;;;627:6;;22835:15;;;;:49;;-1:-1:-1;627:6:0;;-1:-1:-1;;;;;22871:13:0;;;627:6;;22871:13;;22835:49;:86;;;;-1:-1:-1;;;;;;22905:16:0;;;;22835:86;:128;;;;-1:-1:-1;;;;;;22942:21:0;;22956:6;22942:21;;22835:128;:158;;;;-1:-1:-1;22985:8:0;;;;22984:9;22835:158;22831:1042;;;23019:13;;-1:-1:-1;;;23019:13:0;;;;23014:148;;-1:-1:-1;;;;;23065:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;23093:22:0;;;;;;:18;:22;;;;;;;;23065:50;23057:85;;;;-1:-1:-1;;;23057:85:0;;14176:2:1;23057:85:0;;;14158:21:1;14215:2;14195:18;;;14188:30;-1:-1:-1;;;14234:18:1;;;14227:52;14296:18;;23057:85:0;13974:346:1;23057:85:0;-1:-1:-1;;;;;23214:14:0;;;;;;:8;:14;;;;;;;;:42;;;;-1:-1:-1;;;;;;23233:23:0;;;;;;:19;:23;;;;;;;;23232:24;23214:42;23210:648;;;23299:10;;23289:6;:20;;23281:76;;;;-1:-1:-1;;;23281:76:0;;14527:2:1;23281:76:0;;;14509:21:1;14566:2;14546:18;;;14539:30;14605:34;14585:18;;;14578:62;-1:-1:-1;;;14656:18:1;;;14649:41;14707:19;;23281:76:0;14325:407:1;23281:76:0;23414:13;;-1:-1:-1;;;;;10810:18:0;;10783:7;10810:18;;;:9;:18;;;;;;23388:22;;:6;:22;:::i;:::-;:39;;23380:71;;;;-1:-1:-1;;;23380:71:0;;14939:2:1;23380:71:0;;;14921:21:1;14978:2;14958:18;;;14951:30;-1:-1:-1;;;14997:18:1;;;14990:49;15056:18;;23380:71:0;14737:343:1;23380:71:0;23210:648;;;-1:-1:-1;;;;;23527:12:0;;;;;;:8;:12;;;;;;;;:42;;;;-1:-1:-1;;;;;;23544:25:0;;;;;;:19;:25;;;;;;;;23543:26;23527:42;23523:335;;;23612:10;;23602:6;:20;;23594:77;;;;-1:-1:-1;;;23594:77:0;;15287:2:1;23594:77:0;;;15269:21:1;15326:2;15306:18;;;15299:30;15365:34;15345:18;;;15338:62;-1:-1:-1;;;15416:18:1;;;15409:42;15468:19;;23594:77:0;15085:408:1;23523:335:0;-1:-1:-1;;;;;23719:23:0;;;;;;:19;:23;;;;;;;;23714:144;;23801:13;;-1:-1:-1;;;;;10810:18:0;;10783:7;10810:18;;;:9;:18;;;;;;23775:22;;:6;:22;:::i;:::-;:39;;23767:71;;;;-1:-1:-1;;;23767:71:0;;14939:2:1;23767:71:0;;;14921:21:1;14978:2;14958:18;;;14951:30;-1:-1:-1;;;14997:18:1;;;14990:49;15056:18;;23767:71:0;14737:343:1;23767:71:0;23940:4;23896:23;10810:18;;;:9;:18;;;;;;23991;;23972:37;;;;;;;24024:35;;-1:-1:-1;24048:11:0;;-1:-1:-1;;;24048:11:0;;;;24024:35;:61;;;;-1:-1:-1;24077:8:0;;;;24076:9;24024:61;:93;;;;-1:-1:-1;;;;;;24103:14:0;;;;;;:8;:14;;;;;;;;24102:15;24024:93;:135;;;;-1:-1:-1;;;;;;24135:24:0;;;;;;:18;:24;;;;;;;;24134:25;24024:135;:175;;;;-1:-1:-1;;;;;;24177:22:0;;;;;;:18;:22;;;;;;;;24176:23;24024:175;24020:281;;;24218:8;:15;;-1:-1:-1;;24218:15:0;24229:4;24218:15;;;24248:10;:8;:10::i;:::-;24273:8;:16;;-1:-1:-1;;24273:16:0;;;24020:281;24329:8;;-1:-1:-1;;;;;24352:24:0;;24313:12;24352:24;;;:18;:24;;;;;;24329:8;;;;24328:9;;24352:24;;:50;;-1:-1:-1;;;;;;24380:22:0;;;;;;:18;:22;;;;;;;;24352:50;24348:84;;;-1:-1:-1;24427:5:0;24348:84;24445:11;24475:7;24471:735;;;-1:-1:-1;;;;;24527:12:0;;;;;;:8;:12;;;;;;;;:33;;;;;24559:1;24543:13;;:17;24527:33;24523:554;;;24587:34;24617:3;24587:25;24598:13;;24587:6;:10;;:25;;;;:::i;:::-;:29;;:34::i;:::-;24581:40;;24677:13;;24663:10;;24657:3;:16;;;;:::i;:::-;24656:34;;;;:::i;:::-;24640:12;;:50;;;;;;;:::i;:::-;;;;-1:-1:-1;;24752:13:0;;24735;;24729:19;;:3;:19;:::i;:::-;24728:37;;;;:::i;:::-;24709:15;;:56;;;;;;;:::i;:::-;;;;-1:-1:-1;24523:554:0;;-1:-1:-1;24523:554:0;;-1:-1:-1;;;;;24827:14:0;;;;;;:8;:14;;;;;;;;:34;;;;;24860:1;24845:12;;:16;24827:34;24823:254;;;24888:33;24917:3;24888:24;24899:12;;24888:6;:10;;:24;;;;:::i;:33::-;24882:39;;24976:12;;24963:9;;24957:3;:15;;;;:::i;:::-;24956:32;;;;:::i;:::-;24940:12;;:48;;;;;;;:::i;:::-;;;;-1:-1:-1;;25049:12:0;;25033;;25027:18;;:3;:18;:::i;:::-;25026:35;;;;:::i;:::-;25007:15;;:54;;;;;;;:::i;:::-;;;;-1:-1:-1;;24823:254:0;25097:7;;25093:71;;25123:41;25139:4;25153;25160:3;25123:15;:41::i;:::-;25181:13;25191:3;25181:13;;:::i;:::-;;;24471:735;25218:33;25234:4;25240:2;25244:6;25218:15;:33::i;:::-;22410:2849;;;;22331:2928;;;:::o;1097:191::-;1190:6;;;-1:-1:-1;;;;;1207:17:0;;;-1:-1:-1;;;;;;1207:17:0;;;;;;;1240:40;;1190:6;;;1207:17;1190:6;;1240:40;;1171:16;;1240:40;1160:128;1097:191;:::o;13901:733::-;-1:-1:-1;;;;;14041:20:0;;14033:70;;;;-1:-1:-1;;;14033:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14122:23:0;;14114:71;;;;-1:-1:-1;;;14114:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14282:17:0;;14258:21;14282:17;;;:9;:17;;;;;;14318:23;;;;14310:74;;;;-1:-1:-1;;;14310:74:0;;15833:2:1;14310:74:0;;;15815:21:1;15872:2;15852:18;;;15845:30;15911:34;15891:18;;;15884:62;-1:-1:-1;;;15962:18:1;;;15955:36;16008:19;;14310:74:0;15631:402:1;14310:74:0;-1:-1:-1;;;;;14420:17:0;;;;;;;:9;:17;;;;;;14440:22;;;14420:42;;14484:20;;;;;;;;:30;;14456:6;;14420:17;14484:30;;14456:6;;14484:30;:::i;:::-;;;;;;;;14549:9;-1:-1:-1;;;;;14532:35:0;14541:6;-1:-1:-1;;;;;14532:35:0;;14560:6;14532:35;;;;1614:25:1;;1602:2;1587:18;;1468:177;14532:35:0;;;;;;;;14022:612;13901:733;;;:::o;20866:866::-;20949:4;20905:23;10810:18;;;:9;:18;;;;;;20905:50;;20966:25;21012:12;;20994:15;;:30;;;;:::i;:::-;20966:58;-1:-1:-1;21035:12:0;21064:20;;;:46;;-1:-1:-1;21088:22:0;;21064:46;21060:72;;;21125:7;;;20866:866::o;21060:72::-;21166:18;;:23;;21187:2;21166:23;:::i;:::-;21148:15;:41;21144:101;;;21222:18;;:23;;21243:2;21222:23;:::i;:::-;21204:41;;21144:101;21286:21;21318:33;21335:15;21318:16;:33::i;:::-;21364:18;21385:44;:21;21411:17;21385:25;:44::i;:::-;21364:65;;21440:17;21460:51;21493:17;21460:28;21475:12;;21460:10;:14;;:28;;;;:::i;:51::-;21542:1;21524:15;:19;;;21554:12;:16;;;21605:8;;21597:44;;21440:71;;-1:-1:-1;;;;;;21605:8:0;;21440:71;;21597:44;21542:1;21597:44;21440:71;21605:8;21597:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;21674:8:0;;21666:58;;21583;;-1:-1:-1;;;;;;21674:8:0;;21697:21;;21666:58;;;;21697:21;21674:8;21666:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;20866:866:0:o;2676:98::-;2734:7;2761:5;2765:1;2761;:5;:::i;:::-;2754:12;2676:98;-1:-1:-1;;;2676:98:0:o;2782:::-;2840:7;2867:5;2871:1;2867;:5;:::i;21740:583::-;21890:16;;;21904:1;21890:16;;;;;;;;21866:21;;21890:16;;;;;;;;;;-1:-1:-1;21890:16:0;21866:40;;21935:4;21917;21922:1;21917:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;21917:23:0;;;-1:-1:-1;;;;;21917:23:0;;;;;21961:13;-1:-1:-1;;;;;21961:18:0;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21951:4;21956:1;21951:7;;;;;;;;:::i;:::-;;;;;;:30;-1:-1:-1;;;;;21951:30:0;;;-1:-1:-1;;;;;21951:30:0;;;;;21994:60;22011:4;22026:13;22042:11;21994:8;:60::i;:::-;22093:222;;-1:-1:-1;;;22093:222:0;;-1:-1:-1;;;;;22093:13:0;:64;;;;:222;;22172:11;;22198:1;;22242:4;;22269;;22289:15;;22093:222;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21795:528;21740:583;:::o;2570:98::-;2628:7;2655:5;2659:1;2655;:5;:::i;14:248:1:-;82:6;90;143:2;131:9;122:7;118:23;114:32;111:52;;;159:1;156;149:12;111:52;-1:-1:-1;;182:23:1;;;252:2;237:18;;;224:32;;-1:-1:-1;14:248:1:o;267:548::-;379:4;408:2;437;426:9;419:21;469:6;463:13;512:6;507:2;496:9;492:18;485:34;537:1;547:140;561:6;558:1;555:13;547:140;;;656:14;;;652:23;;646:30;622:17;;;641:2;618:26;611:66;576:10;;547:140;;;551:3;736:1;731:2;722:6;711:9;707:22;703:31;696:42;806:2;799;795:7;790:2;782:6;778:15;774:29;763:9;759:45;755:54;747:62;;;;267:548;;;;:::o;820:131::-;-1:-1:-1;;;;;895:31:1;;885:42;;875:70;;941:1;938;931:12;956:315;1024:6;1032;1085:2;1073:9;1064:7;1060:23;1056:32;1053:52;;;1101:1;1098;1091:12;1053:52;1140:9;1127:23;1159:31;1184:5;1159:31;:::i;:::-;1209:5;1261:2;1246:18;;;;1233:32;;-1:-1:-1;;;956:315:1:o;1650:456::-;1727:6;1735;1743;1796:2;1784:9;1775:7;1771:23;1767:32;1764:52;;;1812:1;1809;1802:12;1764:52;1851:9;1838:23;1870:31;1895:5;1870:31;:::i;:::-;1920:5;-1:-1:-1;1977:2:1;1962:18;;1949:32;1990:33;1949:32;1990:33;:::i;:::-;1650:456;;2042:7;;-1:-1:-1;;;2096:2:1;2081:18;;;;2068:32;;1650:456::o;2111:180::-;2170:6;2223:2;2211:9;2202:7;2198:23;2194:32;2191:52;;;2239:1;2236;2229:12;2191:52;-1:-1:-1;2262:23:1;;2111:180;-1:-1:-1;2111:180:1:o;2296:160::-;2361:20;;2417:13;;2410:21;2400:32;;2390:60;;2446:1;2443;2436:12;2461:315;2526:6;2534;2587:2;2575:9;2566:7;2562:23;2558:32;2555:52;;;2603:1;2600;2593:12;2555:52;2642:9;2629:23;2661:31;2686:5;2661:31;:::i;:::-;2711:5;-1:-1:-1;2735:35:1;2766:2;2751:18;;2735:35;:::i;:::-;2725:45;;2461:315;;;;;:::o;2970:247::-;3029:6;3082:2;3070:9;3061:7;3057:23;3053:32;3050:52;;;3098:1;3095;3088:12;3050:52;3137:9;3124:23;3156:31;3181:5;3156:31;:::i;3222:405::-;3297:6;3305;3313;3366:2;3354:9;3345:7;3341:23;3337:32;3334:52;;;3382:1;3379;3372:12;3334:52;3421:9;3408:23;3471:4;3464:5;3460:16;3453:5;3450:27;3440:55;;3491:1;3488;3481:12;3440:55;3514:5;3566:2;3551:18;;3538:32;;-1:-1:-1;3617:2:1;3602:18;;;3589:32;;3222:405;-1:-1:-1;;;3222:405:1:o;4074:180::-;4130:6;4183:2;4171:9;4162:7;4158:23;4154:32;4151:52;;;4199:1;4196;4189:12;4151:52;4222:26;4238:9;4222:26;:::i;4259:388::-;4327:6;4335;4388:2;4376:9;4367:7;4363:23;4359:32;4356:52;;;4404:1;4401;4394:12;4356:52;4443:9;4430:23;4462:31;4487:5;4462:31;:::i;:::-;4512:5;-1:-1:-1;4569:2:1;4554:18;;4541:32;4582:33;4541:32;4582:33;:::i;:::-;4634:7;4624:17;;;4259:388;;;;;:::o;4652:356::-;4854:2;4836:21;;;4873:18;;;4866:30;4932:34;4927:2;4912:18;;4905:62;4999:2;4984:18;;4652:356::o;5013:127::-;5074:10;5069:3;5065:20;5062:1;5055:31;5105:4;5102:1;5095:15;5129:4;5126:1;5119:15;5145:125;5210:9;;;5231:10;;;5228:36;;;5244:18;;:::i;5633:380::-;5712:1;5708:12;;;;5755;;;5776:61;;5830:4;5822:6;5818:17;5808:27;;5776:61;5883:2;5875:6;5872:14;5852:18;5849:38;5846:161;;5929:10;5924:3;5920:20;5917:1;5910:31;5964:4;5961:1;5954:15;5992:4;5989:1;5982:15;5846:161;;5633:380;;;:::o;6427:168::-;6500:9;;;6531;;6548:15;;;6542:22;;6528:37;6518:71;;6569:18;;:::i;6600:217::-;6640:1;6666;6656:132;;6710:10;6705:3;6701:20;6698:1;6691:31;6745:4;6742:1;6735:15;6773:4;6770:1;6763:15;6656:132;-1:-1:-1;6802:9:1;;6600:217::o;12474:401::-;12676:2;12658:21;;;12715:2;12695:18;;;12688:30;12754:34;12749:2;12734:18;;12727:62;-1:-1:-1;;;12820:2:1;12805:18;;12798:35;12865:3;12850:19;;12474:401::o;12880:399::-;13082:2;13064:21;;;13121:2;13101:18;;;13094:30;13160:34;13155:2;13140:18;;13133:62;-1:-1:-1;;;13226:2:1;13211:18;;13204:33;13269:3;13254:19;;12880:399::o;15498:128::-;15565:9;;;15586:11;;;15583:37;;;15600:18;;:::i;16380:127::-;16441:10;16436:3;16432:20;16429:1;16422:31;16472:4;16469:1;16462:15;16496:4;16493:1;16486:15;16512:251;16582:6;16635:2;16623:9;16614:7;16610:23;16606:32;16603:52;;;16651:1;16648;16641:12;16603:52;16683:9;16677:16;16702:31;16727:5;16702:31;:::i;16768:980::-;17030:4;17078:3;17067:9;17063:19;17109:6;17098:9;17091:25;17135:2;17173:6;17168:2;17157:9;17153:18;17146:34;17216:3;17211:2;17200:9;17196:18;17189:31;17240:6;17275;17269:13;17306:6;17298;17291:22;17344:3;17333:9;17329:19;17322:26;;17383:2;17375:6;17371:15;17357:29;;17404:1;17414:195;17428:6;17425:1;17422:13;17414:195;;;17493:13;;-1:-1:-1;;;;;17489:39:1;17477:52;;17584:15;;;;17549:12;;;;17525:1;17443:9;17414:195;;;-1:-1:-1;;;;;;;17665:32:1;;;;17660:2;17645:18;;17638:60;-1:-1:-1;;;17729:3:1;17714:19;17707:35;17626:3;16768:980;-1:-1:-1;;;16768:980:1:o
Swarm Source
ipfs://3cdf5417c4bc8289bac50053402b864e55192e1922e7d07556f52d3f9f17128b
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.