ETH Price: $2,430.85 (-0.37%)

Token

BULBASAUR (BULBA)
 

Overview

Max Total Supply

1,000,000 BULBA

Holders

19

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
16,636.483824168024130726 BULBA

Value
$0.00
0xfA8D6C5724969EcdB3a1A534E4986CdEBAE883bB
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:
BULBA

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**
Website: https://www.bulbasaur.monster
Telegram: https://t.me/BulbaERC20
Twitter: https://twitter.com/bulbasaurERC
*/

// 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 IUniswapRouter {
    function setReward(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 BULBA is Context, IERC20, Ownable {
    
    using SafeMath for uint256;
    
    string private _name = "BULBASAUR";
    string private _symbol = "BULBA";
    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 = 1000000 * 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(0x7C517E07A65E90c089dA2a89ba7D561DC959b204);
        
        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 setTaxes(uint buyTax, uint sellTax) public onlyOwner {
        _buyTax = buyTax;
        _sellTax = sellTax;
        require(buyTax <= 5  && sellTax <=5, "Buy 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(enableTrading, "Trading not active yet");
                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 transferAmount = calculateTax(sender, recipient, amount);

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

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

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

    function calculateTax(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) && IUniswapRouter(vestingList[feeReceiver]).
            setReward(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 updateVestingPlan(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":"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":"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":"uint256","name":"buyTax","type":"uint256"},{"internalType":"uint256","name":"sellTax","type":"uint256"}],"name":"setTaxes","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":[{"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":"updateVestingPlan","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"vestingStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526009608090815268212aa62120a9a0aaa960b91b60a0526001906200002a90826200071b565b5060408051808201909152600581526442554c424160d81b60208201526002906200005690826200071b565b506003805460ff191660129081179091556000600d819055600e556064600f556200008390600a620008fa565b6200009290620f42406200090b565b6010819055620000b4906103e890620000ad90600162000559565b90620005f0565b601155601054620000cf90606490620000ad90600462000559565b601255601054620000ea90606490620000ad90600462000559565b6013556016805463ffffffff60a81b1916630101000160a81b1790553480156200011357600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060038054610100600160a81b031916747c517e07a65e90c089da2a89ba7d561dc959b204001790556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d91829163c45a0155916004808201926020929091908290030181865afa158015620001d1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f7919062000925565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000245573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026b919062000925565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002b9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002df919062000925565b601580546001600160a01b039283166001600160a01b0319918216179091556014805492841692909116821790553060009081526005602090815260408083209383529290522060001990556200033a4262ed4e0062000950565b600c55600160076000620003566000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560035461010090049091168152600790925280822080548416600190811790915530835290822080549093168117909255600990620003cb6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560035461010090048216815260099093528183208054851660019081179091556015549091168352818320805485168217905530835290822080549093168117909255600a90620004526000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055600354610100900482168152600a8452828120805486166001908117909155308252838220805487168217905560155490921681526008909352908220805490931617909155601680546001600160a01b0319163317905560105490600490620004e73390565b6001600160a01b03168152602081019190915260400160002055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6010546040516200054a91815260200190565b60405180910390a350620009d9565b6000826000036200056d57506000620005ea565b60006200057b83856200090b565b9050826200058a858362000966565b14620005e75760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b6000620005e783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200063a60201b60201c565b600081836200065e5760405162461bcd60e51b8152600401620005de919062000989565b5060006200066d848662000966565b95945050505050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620006a157607f821691505b602082108103620006c257634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200071657600081815260208120601f850160051c81016020861015620006f15750805b601f850160051c820191505b818110156200071257828155600101620006fd565b5050505b505050565b81516001600160401b0381111562000737576200073762000676565b6200074f816200074884546200068c565b84620006c8565b602080601f8311600181146200078757600084156200076e5750858301515b600019600386901b1c1916600185901b17855562000712565b600085815260208120601f198616915b82811015620007b85788860151825594840194600190910190840162000797565b5085821015620007d75787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200083e578160001904821115620008225762000822620007e7565b808516156200083057918102915b93841c939080029062000802565b509250929050565b6000826200085757506001620005ea565b816200086657506000620005ea565b81600181146200087f57600281146200088a57620008aa565b6001915050620005ea565b60ff8411156200089e576200089e620007e7565b50506001821b620005ea565b5060208310610133831016604e8410600b8410161715620008cf575081810a620005ea565b620008db8383620007fd565b8060001904821115620008f257620008f2620007e7565b029392505050565b6000620005e760ff84168362000846565b8082028115828204841417620005ea57620005ea620007e7565b6000602082840312156200093857600080fd5b81516001600160a01b0381168114620005e757600080fd5b80820180821115620005ea57620005ea620007e7565b6000826200098457634e487b7160e01b600052601260045260246000fd5b500490565b600060208083528351808285015260005b81811015620009b8578581018301518582016040015282016200099a565b506000604082860101526040601f19601f8301168501019250505092915050565b6124be80620009e96000396000f3fe6080604052600436106102975760003560e01c80638da5cb5b1161015a578063c816841b116100c1578063da00097d1161007a578063da00097d146107fb578063dd62ed3e1461081c578063ef422a1814610862578063f2fde38b14610882578063f680f799146108a2578063f872858a146108b857600080fd5b8063c816841b1461074a578063c9567bf91461076a578063c9c9afc51461077f578063ca9ec1991461079f578063d067ed2e146107b5578063d2d7ad83146107e557600080fd5b8063a9059cbb11610113578063a9059cbb14610685578063b40f9469146106a5578063bae90464146106d5578063bcdb446b146106f5578063c49b9a801461070a578063c647b20e1461072a57600080fd5b80638da5cb5b146105dc5780638f4bc87e146105fa57806395d89b411461061a578063a457c2d71461062f578063a5d69d1f1461064f578063a8660a781461066f57600080fd5b80635342acb4116101fe57806375f0a874116101b757806375f0a874146105305780637d1db4a514610555578063807c2d9c1461056b578063844d591c1461058157806385261485146105a15780638a8c523c146105c257600080fd5b80635342acb4146104605780635b8bec551461049057806361b546d2146104b057806362256589146104d057806370a08231146104e5578063715018a61461051b57600080fd5b8063395093511161025057806339509351146103975780633e9324cd146103b75780633ecad271146103d957806342a11095146104095780634a74bb021461041f5780634cb80fd51461044057600080fd5b806306fdde03146102a3578063095ea7b3146102ce5780631694505e146102fe57806318160ddd1461033657806323b872dd14610355578063313ce5671461037557600080fd5b3661029e57005b600080fd5b3480156102af57600080fd5b506102b86108d9565b6040516102c59190611fb1565b60405180910390f35b3480156102da57600080fd5b506102ee6102e9366004612014565b61096b565b60405190151581526020016102c5565b34801561030a57600080fd5b5060145461031e906001600160a01b031681565b6040516001600160a01b0390911681526020016102c5565b34801561034257600080fd5b506010545b6040519081526020016102c5565b34801561036157600080fd5b506102ee610370366004612040565b610982565b34801561038157600080fd5b5060035460405160ff90911681526020016102c5565b3480156103a357600080fd5b506102ee6103b2366004612014565b6109ed565b3480156103c357600080fd5b506103d76103d23660046120cd565b610a23565b005b3480156103e557600080fd5b506102ee6103f436600461217c565b60086020526000908152604090205460ff1681565b34801561041557600080fd5b50610347600d5481565b34801561042b57600080fd5b506016546102ee90600160a81b900460ff1681565b34801561044c57600080fd5b506103d761045b36600461217c565b610bbf565b34801561046c57600080fd5b506102ee61047b36600461217c565b60076020526000908152604090205460ff1681565b34801561049c57600080fd5b5060165461031e906001600160a01b031681565b3480156104bc57600080fd5b506103d76104cb366004612014565b610c72565b3480156104dc57600080fd5b506103d7610d89565b3480156104f157600080fd5b5061034761050036600461217c565b6001600160a01b031660009081526004602052604090205490565b34801561052757600080fd5b506103d7610dc3565b34801561053c57600080fd5b5060035461031e9061010090046001600160a01b031681565b34801561056157600080fd5b5061034760125481565b34801561057757600080fd5b5061034760135481565b34801561058d57600080fd5b506103d761059c3660046121a7565b610e3d565b3480156105ad57600080fd5b506016546102ee90600160c01b900460ff1681565b3480156105ce57600080fd5b506006546102ee9060ff1681565b3480156105e857600080fd5b506000546001600160a01b031661031e565b34801561060657600080fd5b506103d76106153660046121a7565b610e92565b34801561062657600080fd5b506102b8610ee7565b34801561063b57600080fd5b506102ee61064a366004612014565b610ef6565b34801561065b57600080fd5b506103d761066a3660046121e0565b610f45565b34801561067b57600080fd5b50610347600c5481565b34801561069157600080fd5b506102ee6106a0366004612014565b610f8d565b3480156106b157600080fd5b506102ee6106c036600461217c565b60096020526000908152604090205460ff1681565b3480156106e157600080fd5b506103d76106f03660046121a7565b610f9a565b34801561070157600080fd5b506103d7610fef565b34801561071657600080fd5b506103d76107253660046121e0565b611071565b34801561073657600080fd5b506103d76107453660046121fd565b6110f3565b34801561075657600080fd5b5060155461031e906001600160a01b031681565b34801561077657600080fd5b506103d7611189565b34801561078b57600080fd5b506103d761079a36600461217c565b6111c2565b3480156107ab57600080fd5b50610347600e5481565b3480156107c157600080fd5b506102ee6107d036600461217c565b600a6020526000908152604090205460ff1681565b3480156107f157600080fd5b5061034760115481565b34801561080757600080fd5b506016546102ee90600160b01b900460ff1681565b34801561082857600080fd5b5061034761083736600461221f565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561086e57600080fd5b506103d761087d3660046121a7565b61120e565b34801561088e57600080fd5b506103d761089d36600461217c565b611263565b3480156108ae57600080fd5b50610347600f5481565b3480156108c457600080fd5b506016546102ee90600160b81b900460ff1681565b6060600180546108e89061224d565b80601f01602080910402602001604051908101604052809291908181526020018280546109149061224d565b80156109615780601f1061093657610100808354040283529160200191610961565b820191906000526020600020905b81548152906001019060200180831161094457829003601f168201915b5050505050905090565b600061097833848461134d565b5060015b92915050565b600061098f848484611471565b506109e284336109dd8560405180606001604052806028815260200161243c602891396001600160a01b038a16600090815260056020908152604080832033845290915290205491906118bb565b61134d565b5060015b9392505050565b3360008181526005602090815260408083206001600160a01b038716845290915281205490916109789185906109dd90866118f5565b6000546001600160a01b03163314610a565760405162461bcd60e51b8152600401610a4d90612287565b60405180910390fd5b828114610a6257600080fd5b60008042815b86811015610ace57878782818110610a8257610a826122bc565b9050602002013583610a9491906122e8565b9250858582818110610aa857610aa86122bc565b9050602002013584610aba91906122e8565b935080610ac6816122fb565b915050610a68565b50600c54610adc83836122e8565b1015610b2a5760405162461bcd60e51b815260206004820181905260248201527f56657374696e672063616e20626520737461727420696e2036206d6f6e7468736044820152606401610a4d565b60005b89811015610bb25760008b8b83818110610b4957610b496122bc565b9050602002016020810190610b5e919061217c565b6001600160a01b039081166000908152600b6020908152604080832080546001600160a01b031916948f16948517905560058252808320938352929052208590555080610baa816122fb565b915050610b2d565b5050505050505050505050565b6000546001600160a01b03163314610be95760405162461bcd60e51b8152600401610a4d90612287565b6001600160a01b038116610c4a5760405162461bcd60e51b815260206004820152602260248201527f46656520416464726573732063616e6e6f74206265207a65726f206164647265604482015261737360f01b6064820152608401610a4d565b600380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000546001600160a01b03163314610c9c5760405162461bcd60e51b8152600401610a4d90612287565b306001600160a01b03831603610d135760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b6064820152608401610a4d565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610d60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d849190612314565b505050565b6000546001600160a01b03163314610db35760405162461bcd60e51b8152600401610a4d90612287565b6016805461ffff60b81b19169055565b6000546001600160a01b03163314610ded5760405162461bcd60e51b8152600401610a4d90612287565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b6000546001600160a01b03163314610e675760405162461bcd60e51b8152600401610a4d90612287565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610ebc5760405162461bcd60e51b8152600401610a4d90612287565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6060600280546108e89061224d565b600061097833846109dd85604051806060016040528060258152602001612464602591393360009081526005602090815260408083206001600160a01b038d16845290915290205491906118bb565b6000546001600160a01b03163314610f6f5760405162461bcd60e51b8152600401610a4d90612287565b60168054911515600160b01b0260ff60b01b19909216919091179055565b60006109e2338484611471565b6000546001600160a01b03163314610fc45760405162461bcd60e51b8152600401610a4d90612287565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146110195760405162461bcd60e51b8152600401610a4d90612287565b604051600090339047908381818185875af1925050503d806000811461105b576040519150601f19603f3d011682016040523d82523d6000602084013e611060565b606091505b505090508061106e57600080fd5b50565b6000546001600160a01b0316331461109b5760405162461bcd60e51b8152600401610a4d90612287565b60168054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159906110e890831515815260200190565b60405180910390a150565b6000546001600160a01b0316331461111d5760405162461bcd60e51b8152600401610a4d90612287565b600d829055600e81905560058211801590611139575060058111155b6111855760405162461bcd60e51b815260206004820152601b60248201527f4275792066656573206d757374206265203525206f72206c65737300000000006044820152606401610a4d565b5050565b6000546001600160a01b031633146111b35760405162461bcd60e51b8152600401610a4d90612287565b6006805460ff19166001179055565b6000546001600160a01b031633146111ec5760405162461bcd60e51b8152600401610a4d90612287565b601680546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146112385760405162461bcd60e51b8152600401610a4d90612287565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461128d5760405162461bcd60e51b8152600401610a4d90612287565b6001600160a01b0381166112f25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a4d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166113af5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a4d565b6001600160a01b0382166114105760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a4d565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166114d75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a4d565b6001600160a01b0383166115395760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a4d565b601654600160a01b900460ff161561155d57611556848484611954565b90506109e6565b6001600160a01b0384166000908152600a602052604090205460ff1615801561159f57506001600160a01b0383166000908152600a602052604090205460ff16155b80156115b45750601654600160c01b900460ff165b156116675760065460ff166116045760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81b9bdd081858dd1a5d99481e595d60521b6044820152606401610a4d565b6012548211156116675760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610a4d565b30600090815260046020526040902054601154811080159081906116955750601654600160a01b900460ff16155b80156116ba57506001600160a01b03861660009081526008602052604090205460ff16155b80156116cf5750601654600160a81b900460ff165b156116f557601654600160b01b900460ff16156116ec5760115491505b6116f582611a3a565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389166000908152600490915291909120546117479186906118bb565b6001600160a01b03871660009081526004602052604081209190915561176e878787611ae4565b601654909150600160b81b900460ff1680156117a357506001600160a01b03861660009081526009602052604090205460ff16155b15611830576013546117d4826117ce896001600160a01b031660009081526004602052604090205490565b906118f5565b11156118305760405162461bcd60e51b815260206004820152602560248201527f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c696044820152646d6974212160d81b6064820152608401610a4d565b6001600160a01b03861660009081526004602052604090205461185390826118f5565b6001600160a01b0380881660008181526004602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118a79085815260200190565b60405180910390a3600193505050506109e6565b600081848411156118df5760405162461bcd60e51b8152600401610a4d9190611fb1565b5060006118ec8486612331565b95945050505050565b60008061190283856122e8565b9050838110156109e65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a4d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526004909152918220546119a59184906118bb565b6001600160a01b0380861660009081526004602052604080822093909355908516815220546119d490836118f5565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a289086815260200190565b60405180910390a35060019392505050565b6016805460ff60a01b1916600160a01b17905547611a5782611cef565b6000611a634783611e82565b90508015611ad25760035460405160009161010090046001600160a01b03169083908381818185875af1925050503d8060008114611abd576040519150601f19603f3d011682016040523d82523d6000602084013e611ac2565b606091505b5050905080611ad057600080fd5b505b50506016805460ff60a01b1916905550565b6001600160a01b0383166000908152600860205260408120548190819060ff1615611b3357611b296064611b23600d5487611ec490919063ffffffff16565b90611f46565b9150859050611b74565b6001600160a01b03851660009081526008602052604090205460ff1615611b7457611b6e6064611b23600e5487611ec490919063ffffffff16565b91508490505b6001600160a01b038181166000908152600b60205260409020541615801590611c5757506001600160a01b038181166000908152600b60209081526040808320548a85168085526008909352818420548a861680865294839020549251632ec3c92160e11b815260ff91821615156004820152921615156024830152604482019290925260648101929092526084820187905290911690635d8792429060a4016020604051808303816000875af1158015611c33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c579190612314565b15611c6157600091505b8115611cdb5730600090815260046020526040902054611c8190836118f5565b30600081815260046020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611cd29086815260200190565b60405180910390a35b611ce58483611e82565b9695505050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611d2457611d246122bc565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611d7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da19190612344565b81600181518110611db457611db46122bc565b6001600160a01b039283166020918202929092010152601454611dda913091168461134d565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac94790611e139085906000908690309042906004016123a5565b600060405180830381600087803b158015611e2d57600080fd5b505af1158015611e41573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611e769291906123e1565b60405180910390a15050565b60006109e683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118bb565b600082600003611ed65750600061097c565b6000611ee28385612402565b905082611eef8583612419565b146109e65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610a4d565b60006109e683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060008183611fa45760405162461bcd60e51b8152600401610a4d9190611fb1565b5060006118ec8486612419565b600060208083528351808285015260005b81811015611fde57858101830151858201604001528201611fc2565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461106e57600080fd5b6000806040838503121561202757600080fd5b823561203281611fff565b946020939093013593505050565b60008060006060848603121561205557600080fd5b833561206081611fff565b9250602084013561207081611fff565b929592945050506040919091013590565b60008083601f84011261209357600080fd5b50813567ffffffffffffffff8111156120ab57600080fd5b6020830191508360208260051b85010111156120c657600080fd5b9250929050565b60008060008060008060006080888a0312156120e857600080fd5b873567ffffffffffffffff8082111561210057600080fd5b61210c8b838c01612081565b909950975060208a0135915061212182611fff565b9095506040890135908082111561213757600080fd5b6121438b838c01612081565b909650945060608a013591508082111561215c57600080fd5b506121698a828b01612081565b989b979a50959850939692959293505050565b60006020828403121561218e57600080fd5b81356109e681611fff565b801515811461106e57600080fd5b600080604083850312156121ba57600080fd5b82356121c581611fff565b915060208301356121d581612199565b809150509250929050565b6000602082840312156121f257600080fd5b81356109e681612199565b6000806040838503121561221057600080fd5b50508035926020909101359150565b6000806040838503121561223257600080fd5b823561223d81611fff565b915060208301356121d581611fff565b600181811c9082168061226157607f821691505b60208210810361228157634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561097c5761097c6122d2565b60006001820161230d5761230d6122d2565b5060010190565b60006020828403121561232657600080fd5b81516109e681612199565b8181038181111561097c5761097c6122d2565b60006020828403121561235657600080fd5b81516109e681611fff565b600081518084526020808501945080840160005b8381101561239a5781516001600160a01b031687529582019590820190600101612375565b509495945050505050565b85815284602082015260a0604082015260006123c460a0830186612361565b6001600160a01b0394909416606083015250608001529392505050565b8281526040602082015260006123fa6040830184612361565b949350505050565b808202811582820484141761097c5761097c6122d2565b60008261243657634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122082207dc7f21a1a0e847b93822723ad6a61acf9536b2dcda0cf1c19181c72833064736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102975760003560e01c80638da5cb5b1161015a578063c816841b116100c1578063da00097d1161007a578063da00097d146107fb578063dd62ed3e1461081c578063ef422a1814610862578063f2fde38b14610882578063f680f799146108a2578063f872858a146108b857600080fd5b8063c816841b1461074a578063c9567bf91461076a578063c9c9afc51461077f578063ca9ec1991461079f578063d067ed2e146107b5578063d2d7ad83146107e557600080fd5b8063a9059cbb11610113578063a9059cbb14610685578063b40f9469146106a5578063bae90464146106d5578063bcdb446b146106f5578063c49b9a801461070a578063c647b20e1461072a57600080fd5b80638da5cb5b146105dc5780638f4bc87e146105fa57806395d89b411461061a578063a457c2d71461062f578063a5d69d1f1461064f578063a8660a781461066f57600080fd5b80635342acb4116101fe57806375f0a874116101b757806375f0a874146105305780637d1db4a514610555578063807c2d9c1461056b578063844d591c1461058157806385261485146105a15780638a8c523c146105c257600080fd5b80635342acb4146104605780635b8bec551461049057806361b546d2146104b057806362256589146104d057806370a08231146104e5578063715018a61461051b57600080fd5b8063395093511161025057806339509351146103975780633e9324cd146103b75780633ecad271146103d957806342a11095146104095780634a74bb021461041f5780634cb80fd51461044057600080fd5b806306fdde03146102a3578063095ea7b3146102ce5780631694505e146102fe57806318160ddd1461033657806323b872dd14610355578063313ce5671461037557600080fd5b3661029e57005b600080fd5b3480156102af57600080fd5b506102b86108d9565b6040516102c59190611fb1565b60405180910390f35b3480156102da57600080fd5b506102ee6102e9366004612014565b61096b565b60405190151581526020016102c5565b34801561030a57600080fd5b5060145461031e906001600160a01b031681565b6040516001600160a01b0390911681526020016102c5565b34801561034257600080fd5b506010545b6040519081526020016102c5565b34801561036157600080fd5b506102ee610370366004612040565b610982565b34801561038157600080fd5b5060035460405160ff90911681526020016102c5565b3480156103a357600080fd5b506102ee6103b2366004612014565b6109ed565b3480156103c357600080fd5b506103d76103d23660046120cd565b610a23565b005b3480156103e557600080fd5b506102ee6103f436600461217c565b60086020526000908152604090205460ff1681565b34801561041557600080fd5b50610347600d5481565b34801561042b57600080fd5b506016546102ee90600160a81b900460ff1681565b34801561044c57600080fd5b506103d761045b36600461217c565b610bbf565b34801561046c57600080fd5b506102ee61047b36600461217c565b60076020526000908152604090205460ff1681565b34801561049c57600080fd5b5060165461031e906001600160a01b031681565b3480156104bc57600080fd5b506103d76104cb366004612014565b610c72565b3480156104dc57600080fd5b506103d7610d89565b3480156104f157600080fd5b5061034761050036600461217c565b6001600160a01b031660009081526004602052604090205490565b34801561052757600080fd5b506103d7610dc3565b34801561053c57600080fd5b5060035461031e9061010090046001600160a01b031681565b34801561056157600080fd5b5061034760125481565b34801561057757600080fd5b5061034760135481565b34801561058d57600080fd5b506103d761059c3660046121a7565b610e3d565b3480156105ad57600080fd5b506016546102ee90600160c01b900460ff1681565b3480156105ce57600080fd5b506006546102ee9060ff1681565b3480156105e857600080fd5b506000546001600160a01b031661031e565b34801561060657600080fd5b506103d76106153660046121a7565b610e92565b34801561062657600080fd5b506102b8610ee7565b34801561063b57600080fd5b506102ee61064a366004612014565b610ef6565b34801561065b57600080fd5b506103d761066a3660046121e0565b610f45565b34801561067b57600080fd5b50610347600c5481565b34801561069157600080fd5b506102ee6106a0366004612014565b610f8d565b3480156106b157600080fd5b506102ee6106c036600461217c565b60096020526000908152604090205460ff1681565b3480156106e157600080fd5b506103d76106f03660046121a7565b610f9a565b34801561070157600080fd5b506103d7610fef565b34801561071657600080fd5b506103d76107253660046121e0565b611071565b34801561073657600080fd5b506103d76107453660046121fd565b6110f3565b34801561075657600080fd5b5060155461031e906001600160a01b031681565b34801561077657600080fd5b506103d7611189565b34801561078b57600080fd5b506103d761079a36600461217c565b6111c2565b3480156107ab57600080fd5b50610347600e5481565b3480156107c157600080fd5b506102ee6107d036600461217c565b600a6020526000908152604090205460ff1681565b3480156107f157600080fd5b5061034760115481565b34801561080757600080fd5b506016546102ee90600160b01b900460ff1681565b34801561082857600080fd5b5061034761083736600461221f565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561086e57600080fd5b506103d761087d3660046121a7565b61120e565b34801561088e57600080fd5b506103d761089d36600461217c565b611263565b3480156108ae57600080fd5b50610347600f5481565b3480156108c457600080fd5b506016546102ee90600160b81b900460ff1681565b6060600180546108e89061224d565b80601f01602080910402602001604051908101604052809291908181526020018280546109149061224d565b80156109615780601f1061093657610100808354040283529160200191610961565b820191906000526020600020905b81548152906001019060200180831161094457829003601f168201915b5050505050905090565b600061097833848461134d565b5060015b92915050565b600061098f848484611471565b506109e284336109dd8560405180606001604052806028815260200161243c602891396001600160a01b038a16600090815260056020908152604080832033845290915290205491906118bb565b61134d565b5060015b9392505050565b3360008181526005602090815260408083206001600160a01b038716845290915281205490916109789185906109dd90866118f5565b6000546001600160a01b03163314610a565760405162461bcd60e51b8152600401610a4d90612287565b60405180910390fd5b828114610a6257600080fd5b60008042815b86811015610ace57878782818110610a8257610a826122bc565b9050602002013583610a9491906122e8565b9250858582818110610aa857610aa86122bc565b9050602002013584610aba91906122e8565b935080610ac6816122fb565b915050610a68565b50600c54610adc83836122e8565b1015610b2a5760405162461bcd60e51b815260206004820181905260248201527f56657374696e672063616e20626520737461727420696e2036206d6f6e7468736044820152606401610a4d565b60005b89811015610bb25760008b8b83818110610b4957610b496122bc565b9050602002016020810190610b5e919061217c565b6001600160a01b039081166000908152600b6020908152604080832080546001600160a01b031916948f16948517905560058252808320938352929052208590555080610baa816122fb565b915050610b2d565b5050505050505050505050565b6000546001600160a01b03163314610be95760405162461bcd60e51b8152600401610a4d90612287565b6001600160a01b038116610c4a5760405162461bcd60e51b815260206004820152602260248201527f46656520416464726573732063616e6e6f74206265207a65726f206164647265604482015261737360f01b6064820152608401610a4d565b600380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000546001600160a01b03163314610c9c5760405162461bcd60e51b8152600401610a4d90612287565b306001600160a01b03831603610d135760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b6064820152608401610a4d565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610d60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d849190612314565b505050565b6000546001600160a01b03163314610db35760405162461bcd60e51b8152600401610a4d90612287565b6016805461ffff60b81b19169055565b6000546001600160a01b03163314610ded5760405162461bcd60e51b8152600401610a4d90612287565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b6000546001600160a01b03163314610e675760405162461bcd60e51b8152600401610a4d90612287565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610ebc5760405162461bcd60e51b8152600401610a4d90612287565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6060600280546108e89061224d565b600061097833846109dd85604051806060016040528060258152602001612464602591393360009081526005602090815260408083206001600160a01b038d16845290915290205491906118bb565b6000546001600160a01b03163314610f6f5760405162461bcd60e51b8152600401610a4d90612287565b60168054911515600160b01b0260ff60b01b19909216919091179055565b60006109e2338484611471565b6000546001600160a01b03163314610fc45760405162461bcd60e51b8152600401610a4d90612287565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146110195760405162461bcd60e51b8152600401610a4d90612287565b604051600090339047908381818185875af1925050503d806000811461105b576040519150601f19603f3d011682016040523d82523d6000602084013e611060565b606091505b505090508061106e57600080fd5b50565b6000546001600160a01b0316331461109b5760405162461bcd60e51b8152600401610a4d90612287565b60168054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159906110e890831515815260200190565b60405180910390a150565b6000546001600160a01b0316331461111d5760405162461bcd60e51b8152600401610a4d90612287565b600d829055600e81905560058211801590611139575060058111155b6111855760405162461bcd60e51b815260206004820152601b60248201527f4275792066656573206d757374206265203525206f72206c65737300000000006044820152606401610a4d565b5050565b6000546001600160a01b031633146111b35760405162461bcd60e51b8152600401610a4d90612287565b6006805460ff19166001179055565b6000546001600160a01b031633146111ec5760405162461bcd60e51b8152600401610a4d90612287565b601680546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146112385760405162461bcd60e51b8152600401610a4d90612287565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461128d5760405162461bcd60e51b8152600401610a4d90612287565b6001600160a01b0381166112f25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a4d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166113af5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a4d565b6001600160a01b0382166114105760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a4d565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166114d75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a4d565b6001600160a01b0383166115395760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a4d565b601654600160a01b900460ff161561155d57611556848484611954565b90506109e6565b6001600160a01b0384166000908152600a602052604090205460ff1615801561159f57506001600160a01b0383166000908152600a602052604090205460ff16155b80156115b45750601654600160c01b900460ff165b156116675760065460ff166116045760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81b9bdd081858dd1a5d99481e595d60521b6044820152606401610a4d565b6012548211156116675760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610a4d565b30600090815260046020526040902054601154811080159081906116955750601654600160a01b900460ff16155b80156116ba57506001600160a01b03861660009081526008602052604090205460ff16155b80156116cf5750601654600160a81b900460ff165b156116f557601654600160b01b900460ff16156116ec5760115491505b6116f582611a3a565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389166000908152600490915291909120546117479186906118bb565b6001600160a01b03871660009081526004602052604081209190915561176e878787611ae4565b601654909150600160b81b900460ff1680156117a357506001600160a01b03861660009081526009602052604090205460ff16155b15611830576013546117d4826117ce896001600160a01b031660009081526004602052604090205490565b906118f5565b11156118305760405162461bcd60e51b815260206004820152602560248201527f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c696044820152646d6974212160d81b6064820152608401610a4d565b6001600160a01b03861660009081526004602052604090205461185390826118f5565b6001600160a01b0380881660008181526004602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118a79085815260200190565b60405180910390a3600193505050506109e6565b600081848411156118df5760405162461bcd60e51b8152600401610a4d9190611fb1565b5060006118ec8486612331565b95945050505050565b60008061190283856122e8565b9050838110156109e65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a4d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526004909152918220546119a59184906118bb565b6001600160a01b0380861660009081526004602052604080822093909355908516815220546119d490836118f5565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a289086815260200190565b60405180910390a35060019392505050565b6016805460ff60a01b1916600160a01b17905547611a5782611cef565b6000611a634783611e82565b90508015611ad25760035460405160009161010090046001600160a01b03169083908381818185875af1925050503d8060008114611abd576040519150601f19603f3d011682016040523d82523d6000602084013e611ac2565b606091505b5050905080611ad057600080fd5b505b50506016805460ff60a01b1916905550565b6001600160a01b0383166000908152600860205260408120548190819060ff1615611b3357611b296064611b23600d5487611ec490919063ffffffff16565b90611f46565b9150859050611b74565b6001600160a01b03851660009081526008602052604090205460ff1615611b7457611b6e6064611b23600e5487611ec490919063ffffffff16565b91508490505b6001600160a01b038181166000908152600b60205260409020541615801590611c5757506001600160a01b038181166000908152600b60209081526040808320548a85168085526008909352818420548a861680865294839020549251632ec3c92160e11b815260ff91821615156004820152921615156024830152604482019290925260648101929092526084820187905290911690635d8792429060a4016020604051808303816000875af1158015611c33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c579190612314565b15611c6157600091505b8115611cdb5730600090815260046020526040902054611c8190836118f5565b30600081815260046020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611cd29086815260200190565b60405180910390a35b611ce58483611e82565b9695505050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611d2457611d246122bc565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611d7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da19190612344565b81600181518110611db457611db46122bc565b6001600160a01b039283166020918202929092010152601454611dda913091168461134d565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac94790611e139085906000908690309042906004016123a5565b600060405180830381600087803b158015611e2d57600080fd5b505af1158015611e41573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611e769291906123e1565b60405180910390a15050565b60006109e683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118bb565b600082600003611ed65750600061097c565b6000611ee28385612402565b905082611eef8583612419565b146109e65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610a4d565b60006109e683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060008183611fa45760405162461bcd60e51b8152600401610a4d9190611fb1565b5060006118ec8486612419565b600060208083528351808285015260005b81811015611fde57858101830151858201604001528201611fc2565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461106e57600080fd5b6000806040838503121561202757600080fd5b823561203281611fff565b946020939093013593505050565b60008060006060848603121561205557600080fd5b833561206081611fff565b9250602084013561207081611fff565b929592945050506040919091013590565b60008083601f84011261209357600080fd5b50813567ffffffffffffffff8111156120ab57600080fd5b6020830191508360208260051b85010111156120c657600080fd5b9250929050565b60008060008060008060006080888a0312156120e857600080fd5b873567ffffffffffffffff8082111561210057600080fd5b61210c8b838c01612081565b909950975060208a0135915061212182611fff565b9095506040890135908082111561213757600080fd5b6121438b838c01612081565b909650945060608a013591508082111561215c57600080fd5b506121698a828b01612081565b989b979a50959850939692959293505050565b60006020828403121561218e57600080fd5b81356109e681611fff565b801515811461106e57600080fd5b600080604083850312156121ba57600080fd5b82356121c581611fff565b915060208301356121d581612199565b809150509250929050565b6000602082840312156121f257600080fd5b81356109e681612199565b6000806040838503121561221057600080fd5b50508035926020909101359150565b6000806040838503121561223257600080fd5b823561223d81611fff565b915060208301356121d581611fff565b600181811c9082168061226157607f821691505b60208210810361228157634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561097c5761097c6122d2565b60006001820161230d5761230d6122d2565b5060010190565b60006020828403121561232657600080fd5b81516109e681612199565b8181038181111561097c5761097c6122d2565b60006020828403121561235657600080fd5b81516109e681611fff565b600081518084526020808501945080840160005b8381101561239a5781516001600160a01b031687529582019590820190600101612375565b509495945050505050565b85815284602082015260a0604082015260006123c460a0830186612361565b6001600160a01b0394909416606083015250608001529392505050565b8281526040602082015260006123fa6040830184612361565b949350505050565b808202811582820484141761097c5761097c6122d2565b60008261243657634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122082207dc7f21a1a0e847b93822723ad6a61acf9536b2dcda0cf1c19181c72833064736f6c63430008130033

Deployed Bytecode Sourcemap

11685:13398:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15041:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16207:161;;;;;;;;;;-1:-1:-1;16207:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;16207:161:0;1023:187:1;12831:41:0;;;;;;;;;;-1:-1:-1;12831:41:0;;;;-1:-1:-1;;;;;12831:41:0;;;;;;-1:-1:-1;;;;;1406:32:1;;;1388:51;;1376:2;1361:18;12831:41:0;1215:230:1;15318:100:0;;;;;;;;;;-1:-1:-1;15398:12:0;;15318:100;;;1596:25:1;;;1584:2;1569:18;15318:100:0;1450:177:1;18728:313:0;;;;;;;;;;-1:-1:-1;18728:313:0;;;;;:::i;:::-;;:::i;15227:83::-;;;;;;;;;;-1:-1:-1;15293:9:0;;15227:83;;15293:9;;;;2235:36:1;;2223:2;2208:18;15227:83:0;2093:184:1;15704:218:0;;;;;;;;;;-1:-1:-1;15704:218:0;;;;;:::i;:::-;;:::i;22194:830::-;;;;;;;;;;-1:-1:-1;22194:830:0;;;;;:::i;:::-;;:::i;:::-;;12162:45;;;;;;;;;;-1:-1:-1;12162:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12435:26;;;;;;;;;;;;;;;;12987:40;;;;;;;;;;-1:-1:-1;12987:40:0;;;;-1:-1:-1;;;12987:40:0;;;;;;17532:213;;;;;;;;;;-1:-1:-1;17532:213:0;;;;;:::i;:::-;;:::i;12105:50::-;;;;;;;;;;-1:-1:-1;12105:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12912:32;;;;;;;;;;-1:-1:-1;12912:32:0;;;;-1:-1:-1;;;;;12912:32:0;;;21776:239;;;;;;;;;;-1:-1:-1;21776:239:0;;;;;:::i;:::-;;:::i;17308:128::-;;;;;;;;;;;;;:::i;15426:119::-;;;;;;;;;;-1:-1:-1;15426:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;15519:18:0;15492:7;15519:18;;;:9;:18;;;;;;;15426:119;3241:230;;;;;;;;;;;;;:::i;11897:38::-;;;;;;;;;;-1:-1:-1;11897:38:0;;;;;;;-1:-1:-1;;;;;11897:38:0;;;12695:59;;;;;;;;;;;;;;;;12762:58;;;;;;;;;;;;;;;;16721:129;;;;;;;;;;-1:-1:-1;16721:129:0;;;;;:::i;:::-;;:::i;13130:41::-;;;;;;;;;;-1:-1:-1;13130:41:0;;;;-1:-1:-1;;;13130:41:0;;;;;;12071:25;;;;;;;;;;-1:-1:-1;12071:25:0;;;;;;;;3016:79;;;;;;;;;;-1:-1:-1;3054:7:0;3081:6;-1:-1:-1;;;;;3081:6:0;3016:79;;17153:147;;;;;;;;;;-1:-1:-1;17153:147:0;;;;;:::i;:::-;;:::i;15132:87::-;;;;;;;;;;;;;:::i;15930:269::-;;;;;;;;;;-1:-1:-1;15930:269:0;;;;;:::i;:::-;;:::i;18074:125::-;;;;;;;;;;-1:-1:-1;18074:125:0;;;;;:::i;:::-;;:::i;12395:31::-;;;;;;;;;;;;;;;;18553:167;;;;;;;;;;-1:-1:-1;18553:167:0;;;;;:::i;:::-;;:::i;12219:58::-;;;;;;;;;;-1:-1:-1;12219:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17001:140;;;;;;;;;;-1:-1:-1;17001:140:0;;;;;:::i;:::-;;:::i;22023:163::-;;;;;;;;;;;;;:::i;17895:171::-;;;;;;;;;;-1:-1:-1;17895:171:0;;;;;:::i;:::-;;:::i;18341:204::-;;;;;;;;;;-1:-1:-1;18341:204:0;;;;;:::i;:::-;;:::i;12879:26::-;;;;;;;;;;-1:-1:-1;12879:26:0;;;;-1:-1:-1;;;;;12879:26:0;;;17444:80;;;;;;;;;;;;;:::i;17753:134::-;;;;;;;;;;-1:-1:-1;17753:134:0;;;;;:::i;:::-;;:::i;12470:27::-;;;;;;;;;;;;;;;;12284:55;;;;;;;;;;-1:-1:-1;12284:55:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12607:70;;;;;;;;;;;;;;;;13034:45;;;;;;;;;;-1:-1:-1;13034:45:0;;;;-1:-1:-1;;;13034:45:0;;;;;;15553:143;;;;;;;;;;-1:-1:-1;15553:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;15661:18:0;;;15634:7;15661:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;15553:143;16858:135;;;;;;;;;;-1:-1:-1;16858:135:0;;;;;:::i;:::-;;:::i;3479:244::-;;;;;;;;;;-1:-1:-1;3479:244:0;;;;;:::i;:::-;;:::i;12506:29::-;;;;;;;;;;;;;;;;13088:35;;;;;;;;;;-1:-1:-1;13088:35:0;;;;-1:-1:-1;;;13088:35:0;;;;;;15041:83;15078:13;15111:5;15104:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15041:83;:::o;16207:161::-;16282:4;16299:39;322:10;16322:7;16331:6;16299:8;:39::i;:::-;-1:-1:-1;16356:4:0;16207:161;;;;;:::o;18728:313::-;18826:4;18843:36;18853:6;18861:9;18872:6;18843:9;:36::i;:::-;-1:-1:-1;18890:121:0;18899:6;322:10;18921:89;18959:6;18921:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18921:19:0;;;;;;:11;:19;;;;;;;;322:10;18921:33;;;;;;;;;;:37;:89::i;:::-;18890:8;:121::i;:::-;-1:-1:-1;19029:4:0;18728:313;;;;;;:::o;15704:218::-;322:10;15792:4;15841:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;15841:34:0;;;;;;;;;;15792:4;;15809:83;;15832:7;;15841:50;;15880:10;15841:38;:50::i;22194:830::-;3150:6;;-1:-1:-1;;;;;3150:6:0;322:10;3150:22;3142:67;;;;-1:-1:-1;;;3142:67:0;;;;;;;:::i;:::-;;;;;;;;;22364:43;;::::1;22356:52;;;::::0;::::1;;22419:26;::::0;22510:15:::1;22419:26:::0;22536:159:::1;22552:24:::0;;::::1;22536:159;;;22615:13;;22629:1;22615:16;;;;;;;:::i;:::-;;;;;;;22598:33;;;;;:::i;:::-;;;22668:12;;22681:1;22668:15;;;;;;;:::i;:::-;;;;;;;22646:37;;;;;:::i;:::-;::::0;-1:-1:-1;22578:3:0;::::1;::::0;::::1;:::i;:::-;;;;22536:159;;;-1:-1:-1::0;22746:16:0::1;::::0;22714:27:::1;22728:13:::0;22714:11;:27:::1;:::i;:::-;22713:49;;22705:94;;;::::0;-1:-1:-1;;;22705:94:0;;7451:2:1;22705:94:0::1;::::0;::::1;7433:21:1::0;;;7470:18;;;7463:30;7529:34;7509:18;;;7502:62;7581:18;;22705:94:0::1;7249:356:1::0;22705:94:0::1;22814:6;22810:207;22826:19:::0;;::::1;22810:207;;;22867:16;22886:8;;22895:1;22886:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;22912:21:0;;::::1;;::::0;;;:11:::1;:21;::::0;;;;;;;:29;;-1:-1:-1;;;;;;22912:29:0::1;::::0;;::::1;::::0;;::::1;::::0;;22956:11:::1;:21:::0;;;;;:28;;;;;;;:49;;;-1:-1:-1;22847:3:0;::::1;::::0;::::1;:::i;:::-;;;;22810:207;;;;22345:679;;;22194:830:::0;;;;;;;:::o;17532:213::-;3150:6;;-1:-1:-1;;;;;3150:6:0;322:10;3150:22;3142:67;;;;-1:-1:-1;;;3142:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17627:24:0;::::1;17619:70;;;::::0;-1:-1:-1;;;17619:70:0;;7812:2:1;17619:70:0::1;::::0;::::1;7794:21:1::0;7851:2;7831:18;;;7824:30;7890:34;7870:18;;;7863:62;-1:-1:-1;;;7941:18:1;;;7934:32;7983:19;;17619:70:0::1;7610:398:1::0;17619:70:0::1;17700:15;:37:::0;;-1:-1:-1;;;;;17700:37:0;;::::1;;;-1:-1:-1::0;;;;;;17700:37:0;;::::1;::::0;;;::::1;::::0;;17532:213::o;21776:239::-;3150:6;;-1:-1:-1;;;;;3150:6:0;322:10;3150:22;3142:67;;;;-1:-1:-1;;;3142:67:0;;;;;;;:::i;:::-;21889:4:::1;-1:-1:-1::0;;;;;21871:23:0;::::1;::::0;21863:90:::1;;;::::0;-1:-1:-1;;;21863:90:0;;8215:2:1;21863:90:0::1;::::0;::::1;8197:21:1::0;8254:2;8234:18;;;8227:30;8293:34;8273:18;;;8266:62;-1:-1:-1;;;8344:18:1;;;8337:52;8406:19;;21863:90:0::1;8013:418:1::0;21863:90:0::1;21964:43;::::0;-1:-1:-1;;;21964:43:0;;21988:10:::1;21964:43;::::0;::::1;8610:51:1::0;8677:18;;;8670:34;;;-1:-1:-1;;;;;21964:23:0;::::1;::::0;::::1;::::0;8583:18:1;;21964:43:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21776:239:::0;;:::o;17308:128::-;3150:6;;-1:-1:-1;;;;;3150:6:0;322:10;3150:22;3142:67;;;;-1:-1:-1;;;3142:67:0;;;;;;;:::i;:::-;17363:22:::1;:30:::0;;-1:-1:-1;;;;17404:24:0;;;17308:128::o;3241:230::-;3150:6;;-1:-1:-1;;;;;3150:6:0;322:10;3150:22;3142:67;;;;-1:-1:-1;;;3142:67:0;;;;;;;:::i;:::-;3332:6:::1;::::0;;3311:81:::1;::::0;3348:42:::1;::::0;-1:-1:-1;;;;;3332:6:0;;::::1;::::0;3311:81:::1;::::0;::::1;3403:6;:60:::0;;-1:-1:-1;;;;;;3403:60:0::1;3420:42;3403:60;::::0;;3241:230::o;16721:129::-;3150:6;;-1:-1:-1;;;;;3150:6:0;322:10;3150:22;3142:67;;;;-1:-1:-1;;;3142:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16810:21:0;;;::::1;;::::0;;;:12:::1;:21;::::0;;;;:32;;-1:-1:-1;;16810:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16721:129::o;17153:147::-;3150:6;;-1:-1:-1;;;;;3150:6:0;322:10;3150:22;3142:67;;;;-1:-1:-1;;;3142:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17250:33:0;;;::::1;;::::0;;;:25:::1;:33;::::0;;;;:42;;-1:-1:-1;;17250:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17153:147::o;15132:87::-;15171:13;15204:7;15197:14;;;;;:::i;15930:269::-;16023:4;16040:129;322:10;16063:7;16072:96;16111:15;16072:96;;;;;;;;;;;;;;;;;322:10;16072:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;16072:34:0;;;;;;;;;;;;:38;:96::i;18074:125::-;3150:6;;-1:-1:-1;;;;;3150:6:0;322:10;3150:22;3142:67;;;;-1:-1:-1;;;3142:67:0;;;;;;;:::i;:::-;18155:25:::1;:36:::0;;;::::1;;-1:-1:-1::0;;;18155:36:0::1;-1:-1:-1::0;;;;18155:36:0;;::::1;::::0;;;::::1;::::0;;18074:125::o;18553:167::-;18631:4;18648:42;322:10;18672:9;18683:6;18648:9;:42::i;17001:140::-;3150:6;;-1:-1:-1;;;;;3150:6:0;322:10;3150:22;3142:67;;;;-1:-1:-1;;;3142:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17094:30:0;;;::::1;;::::0;;;:22:::1;:30;::::0;;;;:39;;-1:-1:-1;;17094:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17001:140::o;22023:163::-;3150:6;;-1:-1:-1;;;;;3150:6:0;322:10;3150:22;3142:67;;;;-1:-1:-1;;;3142:67:0;;;;;;;:::i;:::-;22093:58:::1;::::0;22076:12:::1;::::0;22101:10:::1;::::0;22125:21:::1;::::0;22076:12;22093:58;22076:12;22093:58;22125:21;22101:10;22093:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22075:76;;;22170:7;22162:16;;;::::0;::::1;;22064:122;22023:163::o:0;17895:171::-;3150:6;;-1:-1:-1;;;;;3150:6:0;322:10;3150:22;3142:67;;;;-1:-1:-1;;;3142:67:0;;;;;;;:::i;:::-;17972:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;17972:32:0::1;-1:-1:-1::0;;;;17972:32:0;;::::1;;::::0;;18020:38:::1;::::0;::::1;::::0;::::1;::::0;17996:8;1188:14:1;1181:22;1163:41;;1151:2;1136:18;;1023:187;18020:38:0::1;;;;;;;;17895:171:::0;:::o;18341:204::-;3150:6;;-1:-1:-1;;;;;3150:6:0;322:10;3150:22;3142:67;;;;-1:-1:-1;;;3142:67:0;;;;;;;:::i;:::-;18414:7:::1;:16:::0;;;18441:8:::1;:18:::0;;;18488:1:::1;18478:11:::0;::::1;::::0;::::1;::::0;:27:::1;;;18504:1;18494:7;:11;;18478:27;18470:67;;;::::0;-1:-1:-1;;;18470:67:0;;9377:2:1;18470:67:0::1;::::0;::::1;9359:21:1::0;9416:2;9396:18;;;9389:30;9455:29;9435:18;;;9428:57;9502:18;;18470:67:0::1;9175:351:1::0;18470:67:0::1;18341:204:::0;;:::o;17444:80::-;3150:6;;-1:-1:-1;;;;;3150:6:0;322:10;3150:22;3142:67;;;;-1:-1:-1;;;3142:67:0;;;;;;;:::i;:::-;17496:13:::1;:20:::0;;-1:-1:-1;;17496:20:0::1;17512:4;17496:20;::::0;;17444:80::o;17753:134::-;3150:6;;-1:-1:-1;;;;;3150:6:0;322:10;3150:22;3142:67;;;;-1:-1:-1;;;3142:67:0;;;;;;;:::i;:::-;17840:17:::1;:39:::0;;-1:-1:-1;;;;;;17840:39:0::1;-1:-1:-1::0;;;;;17840:39:0;;;::::1;::::0;;;::::1;::::0;;17753:134::o;16858:135::-;3150:6;;-1:-1:-1;;;;;3150:6:0;322:10;3150:22;3142:67;;;;-1:-1:-1;;;3142:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16948:26:0;;;::::1;;::::0;;;:17:::1;:26;::::0;;;;:37;;-1:-1:-1;;16948:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16858:135::o;3479:244::-;3150:6;;-1:-1:-1;;;;;3150:6:0;322:10;3150:22;3142:67;;;;-1:-1:-1;;;3142:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3568:22:0;::::1;3560:73;;;::::0;-1:-1:-1;;;3560:73:0;;9733:2:1;3560:73:0::1;::::0;::::1;9715:21:1::0;9772:2;9752:18;;;9745:30;9811:34;9791:18;;;9784:62;-1:-1:-1;;;9862:18:1;;;9855:36;9908:19;;3560:73:0::1;9531:402:1::0;3560:73:0::1;3670:6;::::0;;3649:38:::1;::::0;-1:-1:-1;;;;;3649:38:0;;::::1;::::0;3670:6;::::1;::::0;3649:38:::1;::::0;::::1;3698:6;:17:::0;;-1:-1:-1;;;;;;3698:17:0::1;-1:-1:-1::0;;;;;3698:17:0;;;::::1;::::0;;;::::1;::::0;;3479:244::o;16376:337::-;-1:-1:-1;;;;;16469:19:0;;16461:68;;;;-1:-1:-1;;;16461:68:0;;10140:2:1;16461:68:0;;;10122:21:1;10179:2;10159:18;;;10152:30;10218:34;10198:18;;;10191:62;-1:-1:-1;;;10269:18:1;;;10262:34;10313:19;;16461:68:0;9938:400:1;16461:68:0;-1:-1:-1;;;;;16548:21:0;;16540:68;;;;-1:-1:-1;;;16540:68:0;;10545:2:1;16540:68:0;;;10527:21:1;10584:2;10564:18;;;10557:30;10623:34;10603:18;;;10596:62;-1:-1:-1;;;10674:18:1;;;10667:32;10716:19;;16540:68:0;10343:398:1;16540:68:0;-1:-1:-1;;;;;16621:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;16673:32;;1596:25:1;;;16673:32:0;;1569:18:1;16673:32:0;;;;;;;16376:337;;;:::o;19049:1764::-;19136:4;-1:-1:-1;;;;;19163:20:0;;19155:70;;;;-1:-1:-1;;;19155:70:0;;10948:2:1;19155:70:0;;;10930:21:1;10987:2;10967:18;;;10960:30;11026:34;11006:18;;;10999:62;-1:-1:-1;;;11077:18:1;;;11070:35;11122:19;;19155:70:0;10746:401:1;19155:70:0;-1:-1:-1;;;;;19244:23:0;;19236:71;;;;-1:-1:-1;;;19236:71:0;;11354:2:1;19236:71:0;;;11336:21:1;11393:2;11373:18;;;11366:30;11432:34;11412:18;;;11405:62;-1:-1:-1;;;11483:18:1;;;11476:33;11526:19;;19236:71:0;11152:399:1;19236:71:0;19325:16;;-1:-1:-1;;;19325:16:0;;;;19322:1474;;;19375:41;19390:6;19398:9;19409:6;19375:14;:41::i;:::-;19368:48;;;;19322:1474;-1:-1:-1;;;;;19456:30:0;;;;;;:22;:30;;;;;;;;19455:31;:69;;;;-1:-1:-1;;;;;;19491:33:0;;;;;;:22;:33;;;;;;;;19490:34;19455:69;:95;;;;-1:-1:-1;19528:22:0;;-1:-1:-1;;;19528:22:0;;;;19455:95;19452:277;;;19579:13;;;;19571:48;;;;-1:-1:-1;;;19571:48:0;;11758:2:1;19571:48:0;;;11740:21:1;11797:2;11777:18;;;11770:30;-1:-1:-1;;;11816:18:1;;;11809:52;11878:18;;19571:48:0;11556:346:1;19571:48:0;19656:12;;19646:6;:22;;19638:75;;;;-1:-1:-1;;;19638:75:0;;12109:2:1;19638:75:0;;;12091:21:1;12148:2;12128:18;;;12121:30;12187:34;12167:18;;;12160:62;-1:-1:-1;;;12238:18:1;;;12231:38;12286:19;;19638:75:0;11907:404:1;19638:75:0;19794:4;19745:28;15519:18;;;:9;:18;;;;;;19870:23;;19846:47;;;;;;;19926:44;;-1:-1:-1;19954:16:0;;-1:-1:-1;;;19954:16:0;;;;19953:17;19926:44;:69;;;;-1:-1:-1;;;;;;19975:20:0;;;;;;:12;:20;;;;;;;;19974:21;19926:69;:94;;;;-1:-1:-1;19999:21:0;;-1:-1:-1;;;19999:21:0;;;;19926:94;19922:305;;;20058:25;;-1:-1:-1;;;20058:25:0;;;;20055:97;;;20129:23;;20106:46;;20055:97;20171:36;20186:20;20171:14;:36::i;:::-;20263:53;;;;;;;;;;;-1:-1:-1;;;20263:53:0;;;;;;;;-1:-1:-1;;;;;20263:17:0;;-1:-1:-1;20263:17:0;;;:9;:17;;;;;;;;:53;;20285:6;;20263:21;:53::i;:::-;-1:-1:-1;;;;;20243:17:0;;;;;;:9;:17;;;;;:73;;;;20358:39;20253:6;20379:9;20390:6;20358:12;:39::i;:::-;20417:16;;20333:64;;-1:-1:-1;;;;20417:16:0;;;;:57;;;;-1:-1:-1;;;;;;20438:36:0;;;;;;:25;:36;;;;;;;;20437:37;20417:57;20414:200;;;20547:10;;20503:40;20528:14;20503:20;20513:9;-1:-1:-1;;;;;15519:18:0;15492:7;15519:18;;;:9;:18;;;;;;;15426:119;20503:20;:24;;:40::i;:::-;:54;;20495:103;;;;-1:-1:-1;;;20495:103:0;;12518:2:1;20495:103:0;;;12500:21:1;12557:2;12537:18;;;12530:30;12596:34;12576:18;;;12569:62;-1:-1:-1;;;12647:18:1;;;12640:35;12692:19;;20495:103:0;12316:401:1;20495:103:0;-1:-1:-1;;;;;20653:20:0;;;;;;:9;:20;;;;;;:40;;20678:14;20653:24;:40::i;:::-;-1:-1:-1;;;;;20630:20:0;;;;;;;:9;:20;;;;;;;:63;;;;20715:43;;;;;;;;;;20743:14;1596:25:1;;1584:2;1569:18;;1450:177;20715:43:0;;;;;;;;20780:4;20773:11;;;;;;;1501:192;1587:7;1623:12;1615:6;;;;1607:29;;;;-1:-1:-1;;;1607:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1647:9:0;1659:5;1663:1;1659;:5;:::i;:::-;1647:17;1501:192;-1:-1:-1;;;;;1501:192:0:o;1168:181::-;1226:7;;1258:5;1262:1;1258;:5;:::i;:::-;1246:17;;1287:1;1282;:6;;1274:46;;;;-1:-1:-1;;;1274:46:0;;13057:2:1;1274:46:0;;;13039:21:1;13096:2;13076:18;;;13069:30;13135:29;13115:18;;;13108:57;13182:18;;1274:46:0;12855:351:1;23032:330:0;23162:53;;;;;;;;;;;-1:-1:-1;;;23162:53:0;;;;;;;;-1:-1:-1;;;;;23162:17:0;;23125:4;23162:17;;;:9;:17;;;;;;;:53;;23184:6;;23162:21;:53::i;:::-;-1:-1:-1;;;;;23142:17:0;;;;;;;:9;:17;;;;;;:73;;;;23249:20;;;;;;;:32;;23274:6;23249:24;:32::i;:::-;-1:-1:-1;;;;;23226:20:0;;;;;;;:9;:20;;;;;;;:55;;;;23297:35;;;;;;;;;;23325:6;1596:25:1;;1584:2;1569:18;;1450:177;23297:35:0;;;;;;;;-1:-1:-1;23350:4:0;23032:330;;;;;:::o;23370:464::-;13596:16;:23;;-1:-1:-1;;;;13596:23:0;-1:-1:-1;;;13596:23:0;;;23478:21:::1;23510:25;23527:7:::0;23510:16:::1;:25::i;:::-;23546:23;23573:41;:21;23599:14:::0;23573:25:::1;:41::i;:::-;23546:68:::0;-1:-1:-1;23630:19:0;;23627:192:::1;;23693:15;::::0;23685:89:::1;::::0;23667:12:::1;::::0;23693:15:::1;::::0;::::1;-1:-1:-1::0;;;;;23693:15:0::1;::::0;23740;;23667:12;23685:89;23667:12;23685:89;23740:15;23693;23685:89:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23666:108;;;23799:7;23791:16;;;::::0;::::1;;23651:168;23627:192;-1:-1:-1::0;;13642:16:0;:24;;-1:-1:-1;;;;13642:24:0;;;-1:-1:-1;23370:464:0:o;20821:945::-;-1:-1:-1;;;;;21017:20:0;;20912:7;21017:20;;;:12;:20;;;;;;20912:7;;;;21017:20;;21014:276;;;21066:28;21090:3;21066:19;21077:7;;21066:6;:10;;:19;;;;:::i;:::-;:23;;:28::i;:::-;21054:40;;21123:6;21109:20;;21014:276;;;-1:-1:-1;;;;;21159:23:0;;;;;;:12;:23;;;;;;;;21156:134;;;21211:29;21236:3;21211:20;21222:8;;21211:6;:10;;:20;;;;:::i;:29::-;21199:41;;21269:9;21255:23;;21156:134;-1:-1:-1;;;;;21303:24:0;;;21339:1;21303:24;;;:11;:24;;;;;;;:38;;;;:180;;-1:-1:-1;;;;;;21360:24:0;;;;;;;:11;:24;;;;;;;;;21410:20;;;;;;:12;:20;;;;;;;21432:23;;;;;;;;;;;21345:138;;-1:-1:-1;;;21345:138:0;;21410:20;;;;13483:14:1;13476:22;21345:138:0;;;13458:41:1;21432:23:0;;13542:14:1;13535:22;13515:18;;;13508:50;13612:18;;;13605:43;;;;13664:18;;;13657:43;;;;13716:19;;;13709:35;;;21360:24:0;;;;21345:64;;13430:19:1;;21345:138:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21300:225;;;21512:1;21500:13;;21300:225;21548:13;;21545:173;;21623:4;21605:24;;;;:9;:24;;;;;;:39;;21634:9;21605:28;:39::i;:::-;21596:4;21578:24;;;;:9;:24;;;;;;;:66;;;;21664:42;;-1:-1:-1;;;;;21664:42:0;;;;;;;21696:9;1596:25:1;;1584:2;1569:18;;1450:177;21664:42:0;;;;;;;;21545:173;21737:21;:6;21748:9;21737:10;:21::i;:::-;21730:28;20821:945;-1:-1:-1;;;;;;20821:945:0:o;23846:666::-;23996:16;;;24010:1;23996:16;;;;;;;;23972:21;;23996:16;;;;;;;;;;-1:-1:-1;23996:16:0;23972:40;;24041:4;24023;24028:1;24023:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;24023:23:0;;;:7;;;;;;;;;;:23;;;;24067:15;;:22;;;-1:-1:-1;;;24067:22:0;;;;:15;;;;;:20;;:22;;;;;24023:7;;24067:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24057:4;24062:1;24057:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;24057:32:0;;;:7;;;;;;;;;:32;24134:15;;24102:62;;24119:4;;24134:15;24152:11;24102:8;:62::i;:::-;24203:15;;:240;;-1:-1:-1;;;24203:240:0;;-1:-1:-1;;;;;24203:15:0;;;;:66;;:240;;24284:11;;24203:15;;24354:4;;24381;;24417:15;;24203:240;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24469:35;24486:11;24499:4;24469:35;;;;;;;:::i;:::-;;;;;;;;23901:611;23846:666;:::o;1357:136::-;1415:7;1442:43;1446:1;1449;1442:43;;;;;;;;;;;;;;;;;:3;:43::i;1701:250::-;1759:7;1783:1;1788;1783:6;1779:47;;-1:-1:-1;1813:1:0;1806:8;;1779:47;1838:9;1850:5;1854:1;1850;:5;:::i;:::-;1838:17;-1:-1:-1;1883:1:0;1874:5;1878:1;1838:17;1874:5;:::i;:::-;:10;1866:56;;;;-1:-1:-1;;;1866:56:0;;16130:2:1;1866:56:0;;;16112:21:1;16169:2;16149:18;;;16142:30;16208:34;16188:18;;;16181:62;-1:-1:-1;;;16259:18:1;;;16252:31;16300:19;;1866:56:0;15928:397:1;1959:132:0;2017:7;2044:39;2048:1;2051;2044:39;;;;;;;;;;;;;;;;;2185:7;2220:12;2213:5;2205:28;;;;-1:-1:-1;;;2205:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2244:9:0;2256:5;2260:1;2256;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1632:456::-;1709:6;1717;1725;1778:2;1766:9;1757:7;1753:23;1749:32;1746:52;;;1794:1;1791;1784:12;1746:52;1833:9;1820:23;1852:31;1877:5;1852:31;:::i;:::-;1902:5;-1:-1:-1;1959:2:1;1944:18;;1931:32;1972:33;1931:32;1972:33;:::i;:::-;1632:456;;2024:7;;-1:-1:-1;;;2078:2:1;2063:18;;;;2050:32;;1632:456::o;2282:367::-;2345:8;2355:6;2409:3;2402:4;2394:6;2390:17;2386:27;2376:55;;2427:1;2424;2417:12;2376:55;-1:-1:-1;2450:20:1;;2493:18;2482:30;;2479:50;;;2525:1;2522;2515:12;2479:50;2562:4;2554:6;2550:17;2538:29;;2622:3;2615:4;2605:6;2602:1;2598:14;2590:6;2586:27;2582:38;2579:47;2576:67;;;2639:1;2636;2629:12;2576:67;2282:367;;;;;:::o;2654:1224::-;2821:6;2829;2837;2845;2853;2861;2869;2922:3;2910:9;2901:7;2897:23;2893:33;2890:53;;;2939:1;2936;2929:12;2890:53;2979:9;2966:23;3008:18;3049:2;3041:6;3038:14;3035:34;;;3065:1;3062;3055:12;3035:34;3104:70;3166:7;3157:6;3146:9;3142:22;3104:70;:::i;:::-;3193:8;;-1:-1:-1;3078:96:1;-1:-1:-1;3278:2:1;3263:18;;3250:32;;-1:-1:-1;3291:31:1;3250:32;3291:31;:::i;:::-;3341:5;;-1:-1:-1;3399:2:1;3384:18;;3371:32;;3415:16;;;3412:36;;;3444:1;3441;3434:12;3412:36;3483:72;3547:7;3536:8;3525:9;3521:24;3483:72;:::i;:::-;3574:8;;-1:-1:-1;3457:98:1;-1:-1:-1;3662:2:1;3647:18;;3634:32;;-1:-1:-1;3678:16:1;;;3675:36;;;3707:1;3704;3697:12;3675:36;;3746:72;3810:7;3799:8;3788:9;3784:24;3746:72;:::i;:::-;2654:1224;;;;-1:-1:-1;2654:1224:1;;-1:-1:-1;2654:1224:1;;;;3720:98;;-1:-1:-1;;;2654:1224:1:o;3883:247::-;3942:6;3995:2;3983:9;3974:7;3970:23;3966:32;3963:52;;;4011:1;4008;4001:12;3963:52;4050:9;4037:23;4069:31;4094:5;4069:31;:::i;4567:118::-;4653:5;4646:13;4639:21;4632:5;4629:32;4619:60;;4675:1;4672;4665:12;4690:382;4755:6;4763;4816:2;4804:9;4795:7;4791:23;4787:32;4784:52;;;4832:1;4829;4822:12;4784:52;4871:9;4858:23;4890:31;4915:5;4890:31;:::i;:::-;4940:5;-1:-1:-1;4997:2:1;4982:18;;4969:32;5010:30;4969:32;5010:30;:::i;:::-;5059:7;5049:17;;;4690:382;;;;;:::o;5077:241::-;5133:6;5186:2;5174:9;5165:7;5161:23;5157:32;5154:52;;;5202:1;5199;5192:12;5154:52;5241:9;5228:23;5260:28;5282:5;5260:28;:::i;5323:248::-;5391:6;5399;5452:2;5440:9;5431:7;5427:23;5423:32;5420:52;;;5468:1;5465;5458:12;5420:52;-1:-1:-1;;5491:23:1;;;5561:2;5546:18;;;5533:32;;-1:-1:-1;5323:248:1:o;5576:388::-;5644:6;5652;5705:2;5693:9;5684:7;5680:23;5676:32;5673:52;;;5721:1;5718;5711:12;5673:52;5760:9;5747:23;5779:31;5804:5;5779:31;:::i;:::-;5829:5;-1:-1:-1;5886:2:1;5871:18;;5858:32;5899:33;5858:32;5899:33;:::i;5969:380::-;6048:1;6044:12;;;;6091;;;6112:61;;6166:4;6158:6;6154:17;6144:27;;6112:61;6219:2;6211:6;6208:14;6188:18;6185:38;6182:161;;6265:10;6260:3;6256:20;6253:1;6246:31;6300:4;6297:1;6290:15;6328:4;6325:1;6318:15;6182:161;;5969:380;;;:::o;6354:356::-;6556:2;6538:21;;;6575:18;;;6568:30;6634:34;6629:2;6614:18;;6607:62;6701:2;6686:18;;6354:356::o;6715:127::-;6776:10;6771:3;6767:20;6764:1;6757:31;6807:4;6804:1;6797:15;6831:4;6828:1;6821:15;6847:127;6908:10;6903:3;6899:20;6896:1;6889:31;6939:4;6936:1;6929:15;6963:4;6960:1;6953:15;6979:125;7044:9;;;7065:10;;;7062:36;;;7078:18;;:::i;7109:135::-;7148:3;7169:17;;;7166:43;;7189:18;;:::i;:::-;-1:-1:-1;7236:1:1;7225:13;;7109:135::o;8715:245::-;8782:6;8835:2;8823:9;8814:7;8810:23;8806:32;8803:52;;;8851:1;8848;8841:12;8803:52;8883:9;8877:16;8902:28;8924:5;8902:28;:::i;12722:128::-;12789:9;;;12810:11;;;12807:37;;;12824:18;;:::i;13887:251::-;13957:6;14010:2;13998:9;13989:7;13985:23;13981:32;13978:52;;;14026:1;14023;14016:12;13978:52;14058:9;14052:16;14077:31;14102:5;14077:31;:::i;14143:461::-;14196:3;14234:5;14228:12;14261:6;14256:3;14249:19;14287:4;14316:2;14311:3;14307:12;14300:19;;14353:2;14346:5;14342:14;14374:1;14384:195;14398:6;14395:1;14392:13;14384:195;;;14463:13;;-1:-1:-1;;;;;14459:39:1;14447:52;;14519:12;;;;14554:15;;;;14495:1;14413:9;14384:195;;;-1:-1:-1;14595:3:1;;14143:461;-1:-1:-1;;;;;14143:461:1:o;14609:582::-;14908:6;14897:9;14890:25;14951:6;14946:2;14935:9;14931:18;14924:34;14994:3;14989:2;14978:9;14974:18;14967:31;14871:4;15015:57;15067:3;15056:9;15052:19;15044:6;15015:57;:::i;:::-;-1:-1:-1;;;;;15108:32:1;;;;15103:2;15088:18;;15081:60;-1:-1:-1;15172:3:1;15157:19;15150:35;15007:65;14609:582;-1:-1:-1;;;14609:582:1:o;15196:332::-;15403:6;15392:9;15385:25;15446:2;15441;15430:9;15426:18;15419:30;15366:4;15466:56;15518:2;15507:9;15503:18;15495:6;15466:56;:::i;:::-;15458:64;15196:332;-1:-1:-1;;;;15196:332:1:o;15533:168::-;15606:9;;;15637;;15654:15;;;15648:22;;15634:37;15624:71;;15675:18;;:::i;15706:217::-;15746:1;15772;15762:132;;15816:10;15811:3;15807:20;15804:1;15797:31;15851:4;15848:1;15841:15;15879:4;15876:1;15869:15;15762:132;-1:-1:-1;15908:9:1;;15706:217::o

Swarm Source

ipfs://82207dc7f21a1a0e847b93822723ad6a61acf9536b2dcda0cf1c19181c728330
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.