Token MetaWeb3

 

Overview [ERC-20]

Max Total Supply:
100,000,000 Web3

Holders:
367 (0.00%)

Transfers:
-

 
Loading
[ Download CSV Export  ] 
Loading
[ Download CSV Export  ] 
Loading

OVERVIEW

MetaWeb3 is a blockchain launchpad project with a vision to become the next-generation bridge uniting investors, developers, marketers, MetaVerse and Web3.

# Exchange Pair Price  24H Volume % Volume
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Web3

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-03-22
*/

/*
███╗   ███╗███████╗████████╗ █████╗     ██╗    ██╗███████╗██████╗ ██████╗ 
████╗ ████║██╔════╝╚══██╔══╝██╔══██╗    ██║    ██║██╔════╝██╔══██╗╚════██╗
██╔████╔██║█████╗     ██║   ███████║    ██║ █╗ ██║█████╗  ██████╔╝ █████╔╝
██║╚██╔╝██║██╔══╝     ██║   ██╔══██║    ██║███╗██║██╔══╝  ██╔══██╗ ╚═══██╗
██║ ╚═╝ ██║███████╗   ██║   ██║  ██║    ╚███╔███╔╝███████╗██████╔╝██████╔╝
╚═╝     ╚═╝╚══════╝   ╚═╝   ╚═╝  ╚═╝     ╚══╝╚══╝ ╚══════╝╚═════╝ ╚═════╝ 

*/
//SPDX-License-Identifier: MIT

pragma solidity ^0.8.13;

interface IERC20 {
    function totalSupply() external view returns (uint);
    function balanceOf(address account) external view returns (uint);
    function transfer(address recipient, uint amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint);
    function approve(address spender, uint amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint value);
    event Approval(address indexed owner, address indexed spender, uint value);
}
library SafeMath {
    function add(uint a, uint b) internal pure returns (uint) {
        uint c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }
    function sub(uint a, uint b) internal pure returns (uint) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint a, uint b, string memory errorMessage) internal pure returns (uint) {
        require(b <= a, errorMessage);
        uint c = a - b;

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

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

        return c;
    }
    function div(uint a, uint b) internal pure returns (uint) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint a, uint b, string memory errorMessage) internal pure returns (uint) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint c = a / b;

        return c;
    }
}

contract Context {
    constructor () { }
    // solhint-disable-previous-line no-empty-blocks

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

abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () {
       
        _owner = msg.sender ;
        emit OwnershipTransferred(address(0), _owner);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(_owner == _msgSender() , "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}




contract ERC20Detailed {
    string private _name;
    string private _symbol;
    uint8 private _decimals;

    constructor (string memory tname, string memory tsymbol, uint8 tdecimals) {
        _name = tname;
        _symbol = tsymbol;
        _decimals = tdecimals;
        
    }
    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;
    }
}



library Address {
    function isContract(address account) internal view returns (bool) {
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != 0x0 && codehash != accountHash);
    }
}

library SafeERC20 {
    using SafeMath for uint;
    using Address for address;

    function safeTransfer(IERC20 token, address to, uint value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function safeTransferFrom(IERC20 token, address from, address to, uint value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
    }

    function safeApprove(IERC20 token, address spender, uint value) internal {
        require((value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeBEP20: approve from non-zero to non-zero allowance"
        );
        callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
    }
    function callOptionalReturn(IERC20 token, bytes memory data) private {
        require(address(token).isContract(), "SafeBEP20: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = address(token).call(data);
        require(success, "SafeBEP20: low-level call failed");

        if (returndata.length > 0) { // Return data is optional
            // solhint-disable-next-line max-line-length
            require(abi.decode(returndata, (bool)), "SafeBEP20: BEP20 operation did not succeed");
        }
    }
}

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 Mint(address indexed sender, uint amount0, uint amount1);
    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 mint(address to) external returns (uint liquidity);
    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 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 Web3 is Context, Ownable, IERC20, ERC20Detailed {
  using SafeERC20 for IERC20;
  using Address for address;
  using SafeMath for uint256;
  
    IUniswapV2Router02 public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;
    
    mapping (address => uint) internal _balances;
    mapping (address => mapping (address => uint)) internal _allowances;
    mapping (address => bool) public _isExcludedFromFee;
    mapping (address => bool) public AMMs;
    mapping (address => bool) public _isExcludedFromMaxWallet;
  
   
    uint256 internal _totalSupply;

    uint256 public teamFee = 6;
    uint256 public liquidityFee = 1;
  

    address payable public teamAddress = payable(0xA70efce6169fa76b24D8c8163D912EF65B38d687);
    
    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
  

    uint256 public numTokensSellToAddToLiquidity = 750000 * 10**9;

    uint256 public _maxWalletAmount = 2500000 * 10**9;
  
    event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap);
    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );

    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
  
  
    constructor () ERC20Detailed("MetaWeb3", "Web3", 9) {
    
    _totalSupply = 100000000 * (10**9);
    
	_balances[owner()] = _totalSupply;
	//uniswapv3 router = 0xE592427A0AEce92De3Edee1F18E0157C05861564
	 IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
         // Create a uniswap pair for this new token
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        // set the rest of the contract variables
        uniswapV2Router = _uniswapV2Router;

          //exclude owner and this contract from fee
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[teamAddress] = true;

        _isExcludedFromMaxWallet[address(this)] = true;
        _isExcludedFromMaxWallet[owner()] = true;
        _isExcludedFromMaxWallet[teamAddress] = true;
        _isExcludedFromMaxWallet[uniswapV2Pair] = true;

      
        AMMs[uniswapV2Pair] = true;


     emit Transfer(address(0), _msgSender(), _totalSupply);
  }
  
    function totalSupply() public view override returns (uint) {
        return _totalSupply;
    }
    function balanceOf(address account) public view override returns (uint) {
        return _balances[account];
    }
    function transfer(address recipient, uint amount) public override  returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
    function allowance(address towner, address spender) public view override returns (uint) {
        return _allowances[towner][spender];
    }
    function approve(address spender, uint amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
    function transferFrom(address sender, address recipient, uint amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "BEP20: transfer amount exceeds allowance"));
        return true;
    }
    function increaseAllowance(address spender, uint addedValue) public returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }
    function decreaseAllowance(address spender, uint subtractedValue) public returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "BEP20: decreased allowance below zero"));
        return true;
    }

    function setTeamFeePercent(uint256 updatedTeamFee) external onlyOwner {
        teamFee = updatedTeamFee;
        require(teamFee.add(liquidityFee) <= 10, "Fee is crossing the boundaries");
    }

    
    function setLiquidityFeePercent(uint256 updatedLiquidityFee) external onlyOwner {
        liquidityFee = updatedLiquidityFee;
        require(teamFee.add(liquidityFee) <= 10, "Fee is crossing the boundaries");
    }

    function setTeamAddress(address payable wallet) external onlyOwner
    {
        teamAddress = wallet;
    }

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

    function changeNumTokensSellToAddToLiquidity(uint256 _numTokensSellToAddToLiquidity) external onlyOwner
    {
        numTokensSellToAddToLiquidity = _numTokensSellToAddToLiquidity;
    }
    function excludeFromFee(address account) external onlyOwner {
        _isExcludedFromFee[account] = true;
    }
    
    function includeInFee(address account) external onlyOwner {
        _isExcludedFromFee[account] = false;
    }

    function excludeFromMaxWallet(address account) external onlyOwner {
        _isExcludedFromMaxWallet[account] = true;
    }
    
    function includeInMaxWallet(address account) external onlyOwner {
        _isExcludedFromMaxWallet[account] = false;
    }

    function excludeFromAMMs(address account) external onlyOwner
    {
        AMMs[account] = false;
        _isExcludedFromMaxWallet[account] = false;
    }

    function includeInAMMs(address account) external onlyOwner
    {
        AMMs[account] = true;
        _isExcludedFromMaxWallet[account] = true;
    }

    function changeMaxWalletLimit(uint256 maxWalletAmount) external onlyOwner
    {
        _maxWalletAmount = maxWalletAmount;
    }

  
     //to recieve ETH from uniswapV2Router when swaping
    receive() external payable {}
    function _transfer(address sender, address recipient, uint amount) internal{

        require(sender != address(0), "BEP20: transfer from the zero address");
        require(recipient != address(0), "BEP20: transfer to the zero address");

        if(!_isExcludedFromMaxWallet[recipient])
        {
            require(balanceOf(recipient).add(amount) <= _maxWalletAmount, "Maximum wallet limit!!");
        }

         //indicates if fee should be deducted from transfer
        bool takeFee = true;
        
        //if any account belongs to _isExcludedFromFee account then remove the fee
        if(_isExcludedFromFee[sender] || _isExcludedFromFee[recipient]){
            takeFee = false;
        }
       
        if(!AMMs[recipient] && !AMMs[sender])
        {takeFee = false;}

      
        // is the token balance of this contract address over the min number of
        // tokens that we need to initiate a swap + liquidity lock?
        // also, don't get caught in a circular liquidity event.
        // also, don't swap & liquify if sender is uniswap pair.
        uint256 contractTokenBalance = balanceOf(address(this));
        
        
        bool overMinTokenBalance = contractTokenBalance >= numTokensSellToAddToLiquidity;
        if (
            overMinTokenBalance &&
            !inSwapAndLiquify &&
            !AMMs[sender] &&
            swapAndLiquifyEnabled &&
            takeFee
        ) {
            contractTokenBalance = numTokensSellToAddToLiquidity;
            swapAndLiquify(contractTokenBalance);
        }

        
       
        if(takeFee)
        {
            uint256 taxAmount = (amount.mul(teamFee + liquidityFee )).div(100);
            uint256 TotalSent = amount.sub(taxAmount);
            _balances[sender] = _balances[sender].sub(amount, "BEP20: transfer amount exceeds balance");
            _balances[recipient] = _balances[recipient].add(TotalSent);
            _balances[address(this)] = _balances[address(this)].add(taxAmount);
            emit Transfer(sender, recipient, TotalSent);
            emit Transfer(sender, address(this), taxAmount);
        }
        else
        {
            _balances[sender] = _balances[sender].sub(amount, "BEP20: transfer amount exceeds balance");
            _balances[recipient] = _balances[recipient].add(amount);
            emit Transfer(sender, recipient, amount);
        }
       
    }

    function totalFee() internal view returns(uint256)
    {
        return teamFee.add(liquidityFee);
    }

      function swapAndLiquify(uint256 tokensToLiquify) private {

       uint256 tokensToLP = tokensToLiquify.mul(liquidityFee).div(totalFee()).div(2);
        uint256 amountToSwap = tokensToLiquify.sub(tokensToLP);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokensToLiquify);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 ethBalance = address(this).balance;
        uint256 ethFeeFactor = totalFee().sub((liquidityFee).div(2));

        uint256 ethForLiquidity = ethBalance.mul(liquidityFee).div(ethFeeFactor).div(2);
        uint256 ethForTeam = ethBalance.mul(teamFee).div(ethFeeFactor);
    
     
        addLiquidity(tokensToLP, ethForLiquidity);

        payable(teamAddress).transfer(ethForTeam);
       
    }


    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),
            block.timestamp
        );
    }

     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
            address(0),
            block.timestamp
        );

    }

    function _approve(address towner, address spender, uint amount) internal {
        require(towner != address(0), "BEP20: approve from the zero address");
        require(spender != address(0), "BEP20: approve to the zero address");

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

    function withdrawStuckETH() external onlyOwner{
        require (address(this).balance > 0, "Can't withdraw negative or zero");
        payable(owner()).transfer(address(this).balance);
    }

    function removeStuckToken(address _address) external onlyOwner {
        require(_address != address(this), "Can't withdraw tokens destined for liquidity");
        require(IERC20(_address).balanceOf(address(this)) > 0, "Can't withdraw 0");

        IERC20(_address).transfer(owner(), IERC20(_address).balanceOf(address(this)));
    }  
}

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":false,"internalType":"uint256","name":"minTokensBeforeSwap","type":"uint256"}],"name":"MinTokensBeforeSwapUpdated","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":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"AMMs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"_isExcludedFromMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"towner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletAmount","type":"uint256"}],"name":"changeMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_numTokensSellToAddToLiquidity","type":"uint256"}],"name":"changeNumTokensSellToAddToLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromAMMs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInAMMs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"liquidityFee","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":"numTokensSellToAddToLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"removeStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"updatedLiquidityFee","type":"uint256"}],"name":"setLiquidityFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"wallet","type":"address"}],"name":"setTeamAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"updatedTeamFee","type":"uint256"}],"name":"setTeamFeePercent","outputs":[],"stateMutability":"nonpayable","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":"teamAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526006600a556001600b55600c8054600161ff0160a01b031916750100a70efce6169fa76b24d8c8163d912ef65b38d6871790556602aa1efb94e000600d556608e1bc9bf04000600e553480156200005a57600080fd5b5060408051808201825260088152674d6574615765623360c01b6020808301919091528251808401845260048152635765623360e01b91810191909152600080546001600160a01b03191633908117825593519293919260099291907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a38251620000f090600190602086019062000441565b5081516200010690600290602085019062000441565b506003805460ff191660ff92909216919091179055505067016345785d8a0000600981905560046000620001426000546001600160a01b031690565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001be573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e49190620004e7565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000232573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002589190620004e7565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002a6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002cc9190620004e7565b6001600160a01b0390811660a0528116608052600160066000620002f86000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553080825260068552838220805487166001908117909155600c5490931682528382208054871684179055815260089384905291822080549094168117909355620003786000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055600c54821681526008845282812080548616600190811790915560a05190921681528281208054861683179055600790935291208054909216179055620003ea3390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009546040516200043291815260200190565b60405180910390a35062000555565b8280546200044f9062000519565b90600052602060002090601f016020900481019282620004735760008555620004be565b82601f106200048e57805160ff1916838001178555620004be565b82800160010185558215620004be579182015b82811115620004be578251825591602001919060010190620004a1565b50620004cc929150620004d0565b5090565b5b80821115620004cc5760008155600101620004d1565b600060208284031215620004fa57600080fd5b81516001600160a01b03811681146200051257600080fd5b9392505050565b600181811c908216806200052e57607f821691505b6020821081036200054f57634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a0516121026200059e600039600061044c0152600081816102cf0152818161189f015281816119580152818161199401528181611be30152611c3f01526121026000f3fe6080604052600436106102345760003560e01c806370a082311161012e578063c49b9a80116100ab578063dd62ed3e1161006f578063dd62ed3e146106e5578063e083e9221461072b578063ea2f0b371461074b578063f2fde38b1461076b578063f5648a4f1461078b57600080fd5b8063c49b9a8014610649578063c57a6c4414610669578063d12a768814610689578063d1d7d7ef1461069f578063d7c94efd146106cf57600080fd5b806395d89b41116100f257806395d89b41146105be57806397c44288146105d357806398118cb4146105f3578063a457c2d714610609578063a9059cbb1461062957600080fd5b806370a0823114610505578063715018a61461053b578063768dc710146105505780638da5cb5b146105805780638ee88c531461059e57600080fd5b8063313ce567116101bc5780634a74bb02116101805780634a74bb021461046e5780635b700d911461048f5780635ec270c8146104af5780636690864e146104cf5780636c0a24eb146104ef57600080fd5b8063313ce567146103b857806339509351146103da5780633f33e909146103fa578063437823ec1461041a57806349bd5a5e1461043a57600080fd5b806318160ddd1161020357806318160ddd146103095780631c75f085146103285780631e9fe6c614610348578063212e3b2b1461037857806323b872dd1461039857600080fd5b806301b95e1d1461024057806306fdde0314610262578063095ea7b31461028d5780631694505e146102bd57600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b5061026061025b366004611d00565b6107a0565b005b34801561026e57600080fd5b5061027761080f565b6040516102849190611d1d565b60405180910390f35b34801561029957600080fd5b506102ad6102a8366004611d72565b6108a1565b6040519015158152602001610284565b3480156102c957600080fd5b506102f17f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610284565b34801561031557600080fd5b506009545b604051908152602001610284565b34801561033457600080fd5b50600c546102f1906001600160a01b031681565b34801561035457600080fd5b506102ad610363366004611d00565b60076020526000908152604090205460ff1681565b34801561038457600080fd5b50610260610393366004611d9e565b6108b8565b3480156103a457600080fd5b506102ad6103b3366004611db7565b6108e7565b3480156103c457600080fd5b5060035460405160ff9091168152602001610284565b3480156103e657600080fd5b506102ad6103f5366004611d72565b610950565b34801561040657600080fd5b50610260610415366004611d00565b610986565b34801561042657600080fd5b50610260610435366004611d00565b6109d1565b34801561044657600080fd5b506102f17f000000000000000000000000000000000000000000000000000000000000000081565b34801561047a57600080fd5b50600c546102ad90600160a81b900460ff1681565b34801561049b57600080fd5b506102606104aa366004611d00565b610a1f565b3480156104bb57600080fd5b506102606104ca366004611d00565b610a6d565b3480156104db57600080fd5b506102606104ea366004611d00565b610acd565b3480156104fb57600080fd5b5061031a600e5481565b34801561051157600080fd5b5061031a610520366004611d00565b6001600160a01b031660009081526004602052604090205490565b34801561054757600080fd5b50610260610b19565b34801561055c57600080fd5b506102ad61056b366004611d00565b60066020526000908152604090205460ff1681565b34801561058c57600080fd5b506000546001600160a01b03166102f1565b3480156105aa57600080fd5b506102606105b9366004611d9e565b610b8d565b3480156105ca57600080fd5b50610277610c1b565b3480156105df57600080fd5b506102606105ee366004611d9e565b610c2a565b3480156105ff57600080fd5b5061031a600b5481565b34801561061557600080fd5b506102ad610624366004611d72565b610c67565b34801561063557600080fd5b506102ad610644366004611d72565b610cb6565b34801561065557600080fd5b50610260610664366004611e06565b610cc3565b34801561067557600080fd5b50610260610684366004611d9e565b610d45565b34801561069557600080fd5b5061031a600d5481565b3480156106ab57600080fd5b506102ad6106ba366004611d00565b60086020526000908152604090205460ff1681565b3480156106db57600080fd5b5061031a600a5481565b3480156106f157600080fd5b5061031a610700366004611e23565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561073757600080fd5b50610260610746366004611d00565b610d74565b34801561075757600080fd5b50610260610766366004611d00565b610fb2565b34801561077757600080fd5b50610260610786366004611d00565b610ffd565b34801561079757600080fd5b506102606110e7565b6000546001600160a01b031633146107d35760405162461bcd60e51b81526004016107ca90611e5c565b60405180910390fd5b6001600160a01b031660009081526007602090815260408083208054600160ff1991821681179092556008909352922080549091169091179055565b60606001805461081e90611e91565b80601f016020809104026020016040519081016040528092919081815260200182805461084a90611e91565b80156108975780601f1061086c57610100808354040283529160200191610897565b820191906000526020600020905b81548152906001019060200180831161087a57829003601f168201915b5050505050905090565b60006108ae33848461119b565b5060015b92915050565b6000546001600160a01b031633146108e25760405162461bcd60e51b81526004016107ca90611e5c565b600e55565b60006108f48484846112bf565b61094684336109418560405180606001604052806028815260200161205a602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190611775565b61119b565b5060019392505050565b3360008181526005602090815260408083206001600160a01b038716845290915281205490916108ae91859061094190866117af565b6000546001600160a01b031633146109b05760405162461bcd60e51b81526004016107ca90611e5c565b6001600160a01b03166000908152600860205260409020805460ff19169055565b6000546001600160a01b031633146109fb5760405162461bcd60e51b81526004016107ca90611e5c565b6001600160a01b03166000908152600660205260409020805460ff19166001179055565b6000546001600160a01b03163314610a495760405162461bcd60e51b81526004016107ca90611e5c565b6001600160a01b03166000908152600860205260409020805460ff19166001179055565b6000546001600160a01b03163314610a975760405162461bcd60e51b81526004016107ca90611e5c565b6001600160a01b03166000908152600760209081526040808320805460ff19908116909155600890925290912080549091169055565b6000546001600160a01b03163314610af75760405162461bcd60e51b81526004016107ca90611e5c565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610b435760405162461bcd60e51b81526004016107ca90611e5c565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610bb75760405162461bcd60e51b81526004016107ca90611e5c565b600b819055600a8054610bca90836117af565b1115610c185760405162461bcd60e51b815260206004820152601e60248201527f4665652069732063726f7373696e672074686520626f756e646172696573000060448201526064016107ca565b50565b60606002805461081e90611e91565b6000546001600160a01b03163314610c545760405162461bcd60e51b81526004016107ca90611e5c565b600a818155600b54610bca9083906117af565b60006108ae3384610941856040518060600160405280602581526020016120a8602591393360009081526005602090815260408083206001600160a01b038d1684529091529020549190611775565b60006108ae3384846112bf565b6000546001600160a01b03163314610ced5760405162461bcd60e51b81526004016107ca90611e5c565b600c8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990610d3a90831515815260200190565b60405180910390a150565b6000546001600160a01b03163314610d6f5760405162461bcd60e51b81526004016107ca90611e5c565b600d55565b6000546001600160a01b03163314610d9e5760405162461bcd60e51b81526004016107ca90611e5c565b306001600160a01b03821603610e0b5760405162461bcd60e51b815260206004820152602c60248201527f43616e277420776974686472617720746f6b656e732064657374696e6564206660448201526b6f72206c697175696469747960a01b60648201526084016107ca565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610e52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e769190611ecb565b11610eb65760405162461bcd60e51b815260206004820152601060248201526f043616e277420776974686472617720360841b60448201526064016107ca565b806001600160a01b031663a9059cbb610ed76000546001600160a01b031690565b6040516370a0823160e01b81523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa158015610f1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3f9190611ecb565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610f8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fae9190611ee4565b5050565b6000546001600160a01b03163314610fdc5760405162461bcd60e51b81526004016107ca90611e5c565b6001600160a01b03166000908152600660205260409020805460ff19169055565b6000546001600160a01b031633146110275760405162461bcd60e51b81526004016107ca90611e5c565b6001600160a01b03811661108c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107ca565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146111115760405162461bcd60e51b81526004016107ca90611e5c565b600047116111615760405162461bcd60e51b815260206004820152601f60248201527f43616e2774207769746864726177206e65676174697665206f72207a65726f0060448201526064016107ca565b600080546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015610c18573d6000803e3d6000fd5b6001600160a01b0383166111fd5760405162461bcd60e51b8152602060048201526024808201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107ca565b6001600160a01b03821661125e5760405162461bcd60e51b815260206004820152602260248201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107ca565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166113235760405162461bcd60e51b815260206004820152602560248201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107ca565b6001600160a01b0382166113855760405162461bcd60e51b815260206004820152602360248201527f42455032303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107ca565b6001600160a01b03821660009081526008602052604090205460ff1661141857600e546113d1826113cb856001600160a01b031660009081526004602052604090205490565b906117af565b11156114185760405162461bcd60e51b81526020600482015260166024820152754d6178696d756d2077616c6c6574206c696d6974212160501b60448201526064016107ca565b6001600160a01b03831660009081526006602052604090205460019060ff168061145a57506001600160a01b03831660009081526006602052604090205460ff165b15611463575060005b6001600160a01b03831660009081526007602052604090205460ff161580156114a557506001600160a01b03841660009081526007602052604090205460ff16155b156114ae575060005b30600090815260046020526040902054600d54811080159081906114dc5750600c54600160a01b900460ff16155b801561150157506001600160a01b03861660009081526007602052604090205460ff16155b80156115165750600c54600160a81b900460ff165b801561151f5750825b1561153257600d54915061153282611815565b82156116a457600061155f6064611559600b54600a546115529190611f17565b8890611ab9565b90611b3b565b9050600061156d8683611b7d565b90506115ac86604051806060016040528060268152602001612082602691396001600160a01b038b166000908152600460205260409020549190611775565b6001600160a01b03808a1660009081526004602052604080822093909355908916815220546115db90826117af565b6001600160a01b03881660009081526004602052604080822092909255308152205461160790836117af565b3060009081526004602090815260409182902092909255518281526001600160a01b0389811692908b16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a360405182815230906001600160a01b038a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505061176d565b6116e184604051806060016040528060268152602001612082602691396001600160a01b0389166000908152600460205260409020549190611775565b6001600160a01b03808816600090815260046020526040808220939093559087168152205461171090856117af565b6001600160a01b0380871660008181526004602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117649088815260200190565b60405180910390a35b505050505050565b600081848411156117995760405162461bcd60e51b81526004016107ca9190611d1d565b5060006117a68486611f2f565b95945050505050565b6000806117bc8385611f17565b90508381101561180e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107ca565b9392505050565b60006118356002611559611827611bbf565b600b54611559908790611ab9565b905060006118438383611b7d565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061187d5761187d611f46565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191f9190611f5c565b8160018151811061193257611932611f46565b60200260200101906001600160a01b031690816001600160a01b03168152505061197d307f00000000000000000000000000000000000000000000000000000000000000008661119b565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac947906119d2908590600090869030904290600401611f79565b600060405180830381600087803b1580156119ec57600080fd5b505af1158015611a00573d6000803e3d6000fd5b5050600b5447925060009150611a2990611a1b906002611b3b565b611a23611bbf565b90611b7d565b90506000611a4b600261155984611559600b5488611ab990919063ffffffff16565b90506000611a6883611559600a5487611ab990919063ffffffff16565b9050611a748783611bdd565b600c546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611aae573d6000803e3d6000fd5b505050505050505050565b600082600003611acb575060006108b2565b6000611ad78385611fea565b905082611ae48583612009565b1461180e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107ca565b600061180e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611cbd565b600061180e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611775565b6000611bd8600b54600a546117af90919063ffffffff16565b905090565b611c08307f00000000000000000000000000000000000000000000000000000000000000008461119b565b60405163f305d71960e01b8152306004820152602481018390526000604482018190526064820181905260848201524260a48201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f305d71990839060c40160606040518083038185885af1158015611c91573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611cb6919061202b565b5050505050565b60008183611cde5760405162461bcd60e51b81526004016107ca9190611d1d565b5060006117a68486612009565b6001600160a01b0381168114610c1857600080fd5b600060208284031215611d1257600080fd5b813561180e81611ceb565b600060208083528351808285015260005b81811015611d4a57858101830151858201604001528201611d2e565b81811115611d5c576000604083870101525b50601f01601f1916929092016040019392505050565b60008060408385031215611d8557600080fd5b8235611d9081611ceb565b946020939093013593505050565b600060208284031215611db057600080fd5b5035919050565b600080600060608486031215611dcc57600080fd5b8335611dd781611ceb565b92506020840135611de781611ceb565b929592945050506040919091013590565b8015158114610c1857600080fd5b600060208284031215611e1857600080fd5b813561180e81611df8565b60008060408385031215611e3657600080fd5b8235611e4181611ceb565b91506020830135611e5181611ceb565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c90821680611ea557607f821691505b602082108103611ec557634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215611edd57600080fd5b5051919050565b600060208284031215611ef657600080fd5b815161180e81611df8565b634e487b7160e01b600052601160045260246000fd5b60008219821115611f2a57611f2a611f01565b500190565b600082821015611f4157611f41611f01565b500390565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611f6e57600080fd5b815161180e81611ceb565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611fc95784516001600160a01b031683529383019391830191600101611fa4565b50506001600160a01b03969096166060850152505050608001529392505050565b600081600019048311821515161561200457612004611f01565b500290565b60008261202657634e487b7160e01b600052601260045260246000fd5b500490565b60008060006060848603121561204057600080fd5b835192506020840151915060408401519050925092509256fe42455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636542455032303a207472616e7366657220616d6f756e7420657863656564732062616c616e636542455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212202726a946098a434772059914420b97967a4883dbd32b6c1e304452de46b035b064736f6c634300080d0033

Deployed ByteCode Sourcemap

15286:11705:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20932:154;;;;;;;;;;-1:-1:-1;20932:154:0;;;;;:::i;:::-;;:::i;:::-;;5199:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18361:158;;;;;;;;;;-1:-1:-1;18361:158:0;;;;;:::i;:::-;;:::i;:::-;;;1489:14:1;;1482:22;1464:41;;1452:2;1437:18;18361:158:0;1324:187:1;15446:51:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1707:32:1;;;1689:51;;1677:2;1662:18;15446:51:0;1516:230:1;17817:97:0;;;;;;;;;;-1:-1:-1;17894:12:0;;17817:97;;;1897:25:1;;;1885:2;1870:18;17817:97:0;1751:177:1;15970:88:0;;;;;;;;;;-1:-1:-1;15970:88:0;;;;-1:-1:-1;;;;;15970:88:0;;;15738:37;;;;;;;;;;-1:-1:-1;15738:37:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;21094:132;;;;;;;;;;-1:-1:-1;21094:132:0;;;;;:::i;:::-;;:::i;18525:310::-;;;;;;;;;;-1:-1:-1;18525:310:0;;;;;:::i;:::-;;:::i;5381:83::-;;;;;;;;;;-1:-1:-1;5447:9:0;;5381:83;;5447:9;;;;2945:36:1;;2933:2;2918:18;5381:83:0;2803:184:1;18841:207:0;;;;;;;;;;-1:-1:-1;18841:207:0;;;;;:::i;:::-;;:::i;20634:124::-;;;;;;;;;;-1:-1:-1;20634:124:0;;;;;:::i;:::-;;:::i;20252:113::-;;;;;;;;;;-1:-1:-1;20252:113:0;;;;;:::i;:::-;;:::i;15504:38::-;;;;;;;;;;;;;;;16099:40;;;;;;;;;;-1:-1:-1;16099:40:0;;;;-1:-1:-1;;;16099:40:0;;;;;;20497:125;;;;;;;;;;-1:-1:-1;20497:125:0;;;;;:::i;:::-;;:::i;20766:158::-;;;;;;;;;;-1:-1:-1;20766:158:0;;;;;:::i;:::-;;:::i;19758:111::-;;;;;;;;;;-1:-1:-1;19758:111:0;;;;;:::i;:::-;;:::i;16222:49::-;;;;;;;;;;;;;;;;17920:116;;;;;;;;;;-1:-1:-1;17920:116:0;;;;;:::i;:::-;-1:-1:-1;;;;;18010:18:0;17986:4;18010:18;;;:9;:18;;;;;;;17920:116;4339:148;;;;;;;;;;;;;:::i;15680:51::-;;;;;;;;;;-1:-1:-1;15680:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3696:79;;;;;;;;;;-1:-1:-1;3734:7:0;3761:6;-1:-1:-1;;;;;3761:6:0;3696:79;;19532:218;;;;;;;;;;-1:-1:-1;19532:218:0;;;;;:::i;:::-;;:::i;5288:87::-;;;;;;;;;;;;;:::i;19320:198::-;;;;;;;;;;-1:-1:-1;19320:198:0;;;;;:::i;:::-;;:::i;15926:31::-;;;;;;;;;;;;;;;;19054:258;;;;;;;;;;-1:-1:-1;19054:258:0;;;;;:::i;:::-;;:::i;18042:165::-;;;;;;;;;;-1:-1:-1;18042:165:0;;;;;:::i;:::-;;:::i;19877:171::-;;;;;;;;;;-1:-1:-1;19877:171:0;;;;;:::i;:::-;;:::i;20056:190::-;;;;;;;;;;-1:-1:-1;20056:190:0;;;;;:::i;:::-;;:::i;16152:61::-;;;;;;;;;;;;;;;;15782:57;;;;;;;;;;-1:-1:-1;15782:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15893:26;;;;;;;;;;;;;;;;18213:142;;;;;;;;;;-1:-1:-1;18213:142:0;;;;;:::i;:::-;-1:-1:-1;;;;;18319:19:0;;;18295:4;18319:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;18213:142;26647:339;;;;;;;;;;-1:-1:-1;26647:339:0;;;;;:::i;:::-;;:::i;20377:112::-;;;;;;;;;;-1:-1:-1;20377:112:0;;;;;:::i;:::-;;:::i;4642:244::-;;;;;;;;;;-1:-1:-1;4642:244:0;;;;;:::i;:::-;;:::i;26445:194::-;;;;;;;;;;;;;:::i;20932:154::-;3908:6;;-1:-1:-1;;;;;3908:6:0;3205:10;3908:22;3900:68;;;;-1:-1:-1;;;3900:68:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;21007:13:0::1;;::::0;;;:4:::1;:13;::::0;;;;;;;:20;;21023:4:::1;-1:-1:-1::0;;21007:20:0;;::::1;::::0;::::1;::::0;;;21038:24:::1;:33:::0;;;;;:40;;;;::::1;::::0;;::::1;::::0;;20932:154::o;5199:83::-;5236:13;5269:5;5262:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5199:83;:::o;18361:158::-;18433:4;18450:39;3205:10;18473:7;18482:6;18450:8;:39::i;:::-;-1:-1:-1;18507:4:0;18361:158;;;;;:::o;21094:132::-;3908:6;;-1:-1:-1;;;;;3908:6:0;3205:10;3908:22;3900:68;;;;-1:-1:-1;;;3900:68:0;;;;;;;:::i;:::-;21184:16:::1;:34:::0;21094:132::o;18525:310::-;18620:4;18637:36;18647:6;18655:9;18666:6;18637:9;:36::i;:::-;18684:121;18693:6;3205:10;18715:89;18753:6;18715:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18715:19:0;;;;;;:11;:19;;;;;;;;3205:10;18715:33;;;;;;;;;;:37;:89::i;:::-;18684:8;:121::i;:::-;-1:-1:-1;18823:4:0;18525:310;;;;;:::o;18841:207::-;3205:10;18918:4;18967:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;18967:34:0;;;;;;;;;;18918:4;;18935:83;;18958:7;;18967:50;;19006:10;18967:38;:50::i;20634:124::-;3908:6;;-1:-1:-1;;;;;3908:6:0;3205:10;3908:22;3900:68;;;;-1:-1:-1;;;3900:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20709:33:0::1;20745:5;20709:33:::0;;;:24:::1;:33;::::0;;;;:41;;-1:-1:-1;;20709:41:0::1;::::0;;20634:124::o;20252:113::-;3908:6;;-1:-1:-1;;;;;3908:6:0;3205:10;3908:22;3900:68;;;;-1:-1:-1;;;3900:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20323:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;20323:34:0::1;20353:4;20323:34;::::0;;20252:113::o;20497:125::-;3908:6;;-1:-1:-1;;;;;3908:6:0;3205:10;3908:22;3900:68;;;;-1:-1:-1;;;3900:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20574:33:0::1;;::::0;;;:24:::1;:33;::::0;;;;:40;;-1:-1:-1;;20574:40:0::1;20610:4;20574:40;::::0;;20497:125::o;20766:158::-;3908:6;;-1:-1:-1;;;;;3908:6:0;3205:10;3908:22;3900:68;;;;-1:-1:-1;;;3900:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20843:13:0::1;20859:5;20843:13:::0;;;:4:::1;:13;::::0;;;;;;;:21;;-1:-1:-1;;20843:21:0;;::::1;::::0;;;20875:24:::1;:33:::0;;;;;;:41;;;;::::1;::::0;;20766:158::o;19758:111::-;3908:6;;-1:-1:-1;;;;;3908:6:0;3205:10;3908:22;3900:68;;;;-1:-1:-1;;;3900:68:0;;;;;;;:::i;:::-;19841:11:::1;:20:::0;;-1:-1:-1;;;;;;19841:20:0::1;-1:-1:-1::0;;;;;19841:20:0;;;::::1;::::0;;;::::1;::::0;;19758:111::o;4339:148::-;3908:6;;-1:-1:-1;;;;;3908:6:0;3205:10;3908:22;3900:68;;;;-1:-1:-1;;;3900:68:0;;;;;;;:::i;:::-;4446:1:::1;4430:6:::0;;4409:40:::1;::::0;-1:-1:-1;;;;;4430:6:0;;::::1;::::0;4409:40:::1;::::0;4446:1;;4409:40:::1;4477:1;4460:19:::0;;-1:-1:-1;;;;;;4460:19:0::1;::::0;;4339:148::o;19532:218::-;3908:6;;-1:-1:-1;;;;;3908:6:0;3205:10;3908:22;3900:68;;;;-1:-1:-1;;;3900:68:0;;;;;;;:::i;:::-;19623:12:::1;:34:::0;;;19705:2:::1;19676:7:::0;;:25:::1;::::0;19638:19;19676:11:::1;:25::i;:::-;:31;;19668:74;;;::::0;-1:-1:-1;;;19668:74:0;;5170:2:1;19668:74:0::1;::::0;::::1;5152:21:1::0;5209:2;5189:18;;;5182:30;5248:32;5228:18;;;5221:60;5298:18;;19668:74:0::1;4968:354:1::0;19668:74:0::1;19532:218:::0;:::o;5288:87::-;5327:13;5360:7;5353:14;;;;;:::i;19320:198::-;3908:6;;-1:-1:-1;;;;;3908:6:0;3205:10;3908:22;3900:68;;;;-1:-1:-1;;;3900:68:0;;;;;;;:::i;:::-;19401:7:::1;:24:::0;;;19456:12:::1;::::0;19444:25:::1;::::0;19411:14;;19444:11:::1;:25::i;19054:258::-:0;19136:4;19153:129;3205:10;19176:7;19185:96;19224:15;19185:96;;;;;;;;;;;;;;;;;3205:10;19185:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;19185:34:0;;;;;;;;;;;;:38;:96::i;18042:165::-;18118:4;18135:42;3205:10;18159:9;18170:6;18135:9;:42::i;19877:171::-;3908:6;;-1:-1:-1;;;;;3908:6:0;3205:10;3908:22;3900:68;;;;-1:-1:-1;;;3900:68:0;;;;;;;:::i;:::-;19954:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;19954:32:0::1;-1:-1:-1::0;;;;19954:32:0;;::::1;;::::0;;20002:38:::1;::::0;::::1;::::0;::::1;::::0;19978:8;1489:14:1;1482:22;1464:41;;1452:2;1437:18;;1324:187;20002:38:0::1;;;;;;;;19877:171:::0;:::o;20056:190::-;3908:6;;-1:-1:-1;;;;;3908:6:0;3205:10;3908:22;3900:68;;;;-1:-1:-1;;;3900:68:0;;;;;;;:::i;:::-;20176:29:::1;:62:::0;20056:190::o;26647:339::-;3908:6;;-1:-1:-1;;;;;3908:6:0;3205:10;3908:22;3900:68;;;;-1:-1:-1;;;3900:68:0;;;;;;;:::i;:::-;26749:4:::1;-1:-1:-1::0;;;;;26729:25:0;::::1;::::0;26721:82:::1;;;::::0;-1:-1:-1;;;26721:82:0;;5529:2:1;26721:82:0::1;::::0;::::1;5511:21:1::0;5568:2;5548:18;;;5541:30;5607:34;5587:18;;;5580:62;-1:-1:-1;;;5658:18:1;;;5651:42;5710:19;;26721:82:0::1;5327:408:1::0;26721:82:0::1;26822:41;::::0;-1:-1:-1;;;26822:41:0;;26857:4:::1;26822:41;::::0;::::1;1689:51:1::0;26866:1:0::1;::::0;-1:-1:-1;;;;;26822:26:0;::::1;::::0;::::1;::::0;1662:18:1;;26822:41:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;26814:74;;;::::0;-1:-1:-1;;;26814:74:0;;6131:2:1;26814:74:0::1;::::0;::::1;6113:21:1::0;6170:2;6150:18;;;6143:30;-1:-1:-1;;;6189:18:1;;;6182:46;6245:18;;26814:74:0::1;5929:340:1::0;26814:74:0::1;26908:8;-1:-1:-1::0;;;;;26901:25:0::1;;26927:7;3734::::0;3761:6;-1:-1:-1;;;;;3761:6:0;;3696:79;26927:7:::1;26936:41;::::0;-1:-1:-1;;;26936:41:0;;26971:4:::1;26936:41;::::0;::::1;1689:51:1::0;-1:-1:-1;;;;;26936:26:0;::::1;::::0;::::1;::::0;1662:18:1;;26936:41:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26901:77;::::0;-1:-1:-1;;;;;;26901:77:0::1;::::0;;;;;;-1:-1:-1;;;;;6466:32:1;;;26901:77:0::1;::::0;::::1;6448:51:1::0;6515:18;;;6508:34;6421:18;;26901:77:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;26647:339:::0;:::o;20377:112::-;3908:6;;-1:-1:-1;;;;;3908:6:0;3205:10;3908:22;3900:68;;;;-1:-1:-1;;;3900:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20446:27:0::1;20476:5;20446:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;20446:35:0::1;::::0;;20377:112::o;4642:244::-;3908:6;;-1:-1:-1;;;;;3908:6:0;3205:10;3908:22;3900:68;;;;-1:-1:-1;;;3900:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4731:22:0;::::1;4723:73;;;::::0;-1:-1:-1;;;4723:73:0;;7005:2:1;4723:73:0::1;::::0;::::1;6987:21:1::0;7044:2;7024:18;;;7017:30;7083:34;7063:18;;;7056:62;-1:-1:-1;;;7134:18:1;;;7127:36;7180:19;;4723:73:0::1;6803:402:1::0;4723:73:0::1;4833:6;::::0;;4812:38:::1;::::0;-1:-1:-1;;;;;4812:38:0;;::::1;::::0;4833:6;::::1;::::0;4812:38:::1;::::0;::::1;4861:6;:17:::0;;-1:-1:-1;;;;;;4861:17:0::1;-1:-1:-1::0;;;;;4861:17:0;;;::::1;::::0;;;::::1;::::0;;4642:244::o;26445:194::-;3908:6;;-1:-1:-1;;;;;3908:6:0;3205:10;3908:22;3900:68;;;;-1:-1:-1;;;3900:68:0;;;;;;;:::i;:::-;26535:1:::1;26511:21;:25;26502:70;;;::::0;-1:-1:-1;;;26502:70:0;;7412:2:1;26502:70:0::1;::::0;::::1;7394:21:1::0;7451:2;7431:18;;;7424:30;7490:33;7470:18;;;7463:61;7541:18;;26502:70:0::1;7210:355:1::0;26502:70:0::1;3734:7:::0;3761:6;;26583:48:::1;::::0;-1:-1:-1;;;;;3761:6:0;;;;26609:21:::1;26583:48:::0;::::1;;;::::0;26609:21;;26583:48;3734:7;26583:48;26609:21;3761:6;26583:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;26098:339:::0;-1:-1:-1;;;;;26190:20:0;;26182:69;;;;-1:-1:-1;;;26182:69:0;;7772:2:1;26182:69:0;;;7754:21:1;7811:2;7791:18;;;7784:30;7850:34;7830:18;;;7823:62;-1:-1:-1;;;7901:18:1;;;7894:34;7945:19;;26182:69:0;7570:400:1;26182:69:0;-1:-1:-1;;;;;26270:21:0;;26262:68;;;;-1:-1:-1;;;26262:68:0;;8177:2:1;26262:68:0;;;8159:21:1;8216:2;8196:18;;;8189:30;8255:34;8235:18;;;8228:62;-1:-1:-1;;;8306:18:1;;;8299:32;8348:19;;26262:68:0;7975:398:1;26262:68:0;-1:-1:-1;;;;;26343:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;26396:33;;1897:25:1;;;26396:33:0;;1870:18:1;26396:33:0;;;;;;;26098:339;;;:::o;21330:2452::-;-1:-1:-1;;;;;21426:20:0;;21418:70;;;;-1:-1:-1;;;21418:70:0;;8580:2:1;21418:70:0;;;8562:21:1;8619:2;8599:18;;;8592:30;8658:34;8638:18;;;8631:62;-1:-1:-1;;;8709:18:1;;;8702:35;8754:19;;21418:70:0;8378:401:1;21418:70:0;-1:-1:-1;;;;;21507:23:0;;21499:71;;;;-1:-1:-1;;;21499:71:0;;8986:2:1;21499:71:0;;;8968:21:1;9025:2;9005:18;;;8998:30;9064:34;9044:18;;;9037:62;-1:-1:-1;;;9115:18:1;;;9108:33;9158:19;;21499:71:0;8784:399:1;21499:71:0;-1:-1:-1;;;;;21587:35:0;;;;;;:24;:35;;;;;;;;21583:164;;21692:16;;21656:32;21681:6;21656:20;21666:9;-1:-1:-1;;;;;18010:18:0;17986:4;18010:18;;;:9;:18;;;;;;;17920:116;21656:20;:24;;:32::i;:::-;:52;;21648:87;;;;-1:-1:-1;;;21648:87:0;;9390:2:1;21648:87:0;;;9372:21:1;9429:2;9409:18;;;9402:30;-1:-1:-1;;;9448:18:1;;;9441:52;9510:18;;21648:87:0;9188:346:1;21648:87:0;-1:-1:-1;;;;;21948:26:0;;21821:12;21948:26;;;:18;:26;;;;;;21836:4;;21948:26;;;:59;;-1:-1:-1;;;;;;21978:29:0;;;;;;:18;:29;;;;;;;;21948:59;21945:105;;;-1:-1:-1;22033:5:0;21945:105;-1:-1:-1;;;;;22073:15:0;;;;;;:4;:15;;;;;;;;22072:16;:33;;;;-1:-1:-1;;;;;;22093:12:0;;;;;;:4;:12;;;;;;;;22092:13;22072:33;22069:65;;;-1:-1:-1;22127:5:0;22069:65;22485:4;22436:28;18010:18;;;:9;:18;;;;;;22573:29;;22549:53;;;;;;;22631;;-1:-1:-1;22668:16:0;;-1:-1:-1;;;22668:16:0;;;;22667:17;22631:53;:83;;;;-1:-1:-1;;;;;;22702:12:0;;;;;;:4;:12;;;;;;;;22701:13;22631:83;:121;;;;-1:-1:-1;22731:21:0;;-1:-1:-1;;;22731:21:0;;;;22631:121;:145;;;;;22769:7;22631:145;22613:305;;;22826:29;;22803:52;;22870:36;22885:20;22870:14;:36::i;:::-;22952:7;22949:817;;;22985:17;23005:46;23047:3;23006:35;23027:12;;23017:7;;:22;;;;:::i;:::-;23006:6;;:10;:35::i;:::-;23005:41;;:46::i;:::-;22985:66;-1:-1:-1;23066:17:0;23086:21;:6;22985:66;23086:10;:21::i;:::-;23066:41;;23142:71;23164:6;23142:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23142:17:0;;;;;;:9;:17;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;23122:17:0;;;;;;;:9;:17;;;;;;:91;;;;23251:20;;;;;;;:35;;23276:9;23251:24;:35::i;:::-;-1:-1:-1;;;;;23228:20:0;;;;;;:9;:20;;;;;;:58;;;;23346:4;23328:24;;;;:39;;23357:9;23328:28;:39::i;:::-;23319:4;23301:24;;;;:9;:24;;;;;;;;;:66;;;;23387:38;1897:25:1;;;-1:-1:-1;;;;;23387:38:0;;;;;;;;;;1870:18:1;23387:38:0;;;;;;;23445:42;;1897:25:1;;;23470:4:0;;-1:-1:-1;;;;;23445:42:0;;;;;1885:2:1;1870:18;23445:42:0;;;;;;;22970:529;;22949:817;;;23558:71;23580:6;23558:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23558:17:0;;;;;;:9;:17;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;23538:17:0;;;;;;;:9;:17;;;;;;:91;;;;23667:20;;;;;;;:32;;23692:6;23667:24;:32::i;:::-;-1:-1:-1;;;;;23644:20:0;;;;;;;:9;:20;;;;;;;:55;;;;23719:35;;;;;;;;;;23747:6;1897:25:1;;1885:2;1870:18;;1751:177;23719:35:0;;;;;;;;22949:817;21405:2377;;;21330:2452;;;:::o;2217:180::-;2297:4;2330:12;2322:6;;;;2314:29;;;;-1:-1:-1;;;2314:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2354:6:0;2363:5;2367:1;2363;:5;:::i;:::-;2354:14;2217:180;-1:-1:-1;;;;;2217:180:0:o;1909:169::-;1961:4;;1987:5;1991:1;1987;:5;:::i;:::-;1978:14;;2016:1;2011;:6;;2003:46;;;;-1:-1:-1;;;2003:46:0;;10136:2:1;2003:46:0;;;10118:21:1;10175:2;10155:18;;;10148:30;10214:29;10194:18;;;10187:57;10261:18;;2003:46:0;9934:351:1;2003:46:0;2069:1;1909:169;-1:-1:-1;;;1909:169:0:o;23907:1055::-;23976:18;23997:56;24051:1;23997:49;24035:10;:8;:10::i;:::-;24017:12;;23997:33;;:15;;:19;:33::i;:56::-;23976:77;-1:-1:-1;24064:20:0;24087:31;:15;23976:77;24087:19;:31::i;:::-;24155:16;;;24169:1;24155:16;;;;;;;;24064:54;;-1:-1:-1;24131:21:0;;24155:16;;;;;;;;;;;;-1:-1:-1;24155:16:0;24131:40;;24200:4;24182;24187:1;24182:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;24182:23:0;;;-1:-1:-1;;;;;24182:23:0;;;;;24226:15;-1:-1:-1;;;;;24226:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24216:4;24221:1;24216:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;24216:32:0;;;-1:-1:-1;;;;;24216:32:0;;;;;24261:66;24278:4;24293:15;24311;24261:8;:66::i;:::-;24338:197;;-1:-1:-1;;;24338:197:0;;-1:-1:-1;;;;;24338:15:0;:66;;;;:197;;24419:12;;24446:1;;24462:4;;24489;;24509:15;;24338:197;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;24640:12:0;;24569:21;;-1:-1:-1;24548:18:0;;-1:-1:-1;24624:37:0;;24639:21;;24658:1;24639:18;:21::i;:::-;24624:10;:8;:10::i;:::-;:14;;:37::i;:::-;24601:60;;24674:23;24700:53;24751:1;24700:46;24733:12;24700:28;24715:12;;24700:10;:14;;:28;;;;:::i;:53::-;24674:79;;24764:18;24785:41;24813:12;24785:23;24800:7;;24785:10;:14;;:23;;;;:::i;:41::-;24764:62;;24850:41;24863:10;24875:15;24850:12;:41::i;:::-;24912:11;;24904:41;;-1:-1:-1;;;;;24912:11:0;;;;24904:41;;;;;24934:10;;24912:11;24904:41;24912:11;24904:41;24934:10;24912:11;24904:41;;;;;;;;;;;;;;;;;;;;;23964:998;;;;;;;23907:1055;:::o;2403:238::-;2455:4;2476:1;2481;2476:6;2472:47;;-1:-1:-1;2506:1:0;2499:8;;2472:47;2531:6;2540:5;2544:1;2540;:5;:::i;:::-;2531:14;-1:-1:-1;2573:1:0;2564:5;2568:1;2531:14;2564:5;:::i;:::-;:10;2556:56;;;;-1:-1:-1;;;2556:56:0;;12392:2:1;2556:56:0;;;12374:21:1;12431:2;12411:18;;;12404:30;12470:34;12450:18;;;12443:62;-1:-1:-1;;;12521:18:1;;;12514:31;12562:19;;2556:56:0;12190:397:1;2647:123:0;2699:4;2723:39;2727:1;2730;2723:39;;;;;;;;;;;;;;;;;:3;:39::i;2084:127::-;2136:4;2160:43;2164:1;2167;2160:43;;;;;;;;;;;;;;;;;:3;:43::i;23790:107::-;23832:7;23864:25;23876:12;;23864:7;;:11;;:25;;;;:::i;:::-;23857:32;;23790:107;:::o;25570:520::-;25720:62;25737:4;25752:15;25770:11;25720:8;:62::i;:::-;25825:255;;-1:-1:-1;;;25825:255:0;;25897:4;25825:255;;;12933:34:1;12983:18;;;12976:34;;;25943:1:0;13026:18:1;;;13019:34;;;13069:18;;;13062:34;;;13112:19;;;13105:44;26054:15:0;13165:19:1;;;13158:35;25825:15:0;-1:-1:-1;;;;;25825:31:0;;;;25864:9;;12867:19:1;;25825:255:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;25570:520;;:::o;2776:246::-;2856:4;2955:12;2948:5;2940:28;;;;-1:-1:-1;;;2940:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2979:6:0;2988:5;2992:1;2988;:5;:::i;14:131:1:-;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;150:247;209:6;262:2;250:9;241:7;237:23;233:32;230:52;;;278:1;275;268:12;230:52;317:9;304:23;336:31;361:5;336:31;:::i;402:597::-;514:4;543:2;572;561:9;554:21;604:6;598:13;647:6;642:2;631:9;627:18;620:34;672:1;682:140;696:6;693:1;690:13;682:140;;;791:14;;;787:23;;781:30;757:17;;;776:2;753:26;746:66;711:10;;682:140;;;840:6;837:1;834:13;831:91;;;910:1;905:2;896:6;885:9;881:22;877:31;870:42;831:91;-1:-1:-1;983:2:1;962:15;-1:-1:-1;;958:29:1;943:45;;;;990:2;939:54;;402:597;-1:-1:-1;;;402:597:1:o;1004:315::-;1072:6;1080;1133:2;1121:9;1112:7;1108:23;1104:32;1101:52;;;1149:1;1146;1139:12;1101:52;1188:9;1175:23;1207:31;1232:5;1207:31;:::i;:::-;1257:5;1309:2;1294:18;;;;1281:32;;-1:-1:-1;;;1004:315:1:o;2157:180::-;2216:6;2269:2;2257:9;2248:7;2244:23;2240:32;2237:52;;;2285:1;2282;2275:12;2237:52;-1:-1:-1;2308:23:1;;2157:180;-1:-1:-1;2157:180:1:o;2342:456::-;2419:6;2427;2435;2488:2;2476:9;2467:7;2463:23;2459:32;2456:52;;;2504:1;2501;2494:12;2456:52;2543:9;2530:23;2562:31;2587:5;2562:31;:::i;:::-;2612:5;-1:-1:-1;2669:2:1;2654:18;;2641:32;2682:33;2641:32;2682:33;:::i;:::-;2342:456;;2734:7;;-1:-1:-1;;;2788:2:1;2773:18;;;;2760:32;;2342:456::o;3460:118::-;3546:5;3539:13;3532:21;3525:5;3522:32;3512:60;;3568:1;3565;3558:12;3583:241;3639:6;3692:2;3680:9;3671:7;3667:23;3663:32;3660:52;;;3708:1;3705;3698:12;3660:52;3747:9;3734:23;3766:28;3788:5;3766:28;:::i;3829:388::-;3897:6;3905;3958:2;3946:9;3937:7;3933:23;3929:32;3926:52;;;3974:1;3971;3964:12;3926:52;4013:9;4000:23;4032:31;4057:5;4032:31;:::i;:::-;4082:5;-1:-1:-1;4139:2:1;4124:18;;4111:32;4152:33;4111:32;4152:33;:::i;:::-;4204:7;4194:17;;;3829:388;;;;;:::o;4222:356::-;4424:2;4406:21;;;4443:18;;;4436:30;4502:34;4497:2;4482:18;;4475:62;4569:2;4554:18;;4222:356::o;4583:380::-;4662:1;4658:12;;;;4705;;;4726:61;;4780:4;4772:6;4768:17;4758:27;;4726:61;4833:2;4825:6;4822:14;4802:18;4799:38;4796:161;;4879:10;4874:3;4870:20;4867:1;4860:31;4914:4;4911:1;4904:15;4942:4;4939:1;4932:15;4796:161;;4583:380;;;:::o;5740:184::-;5810:6;5863:2;5851:9;5842:7;5838:23;5834:32;5831:52;;;5879:1;5876;5869:12;5831:52;-1:-1:-1;5902:16:1;;5740:184;-1:-1:-1;5740:184:1:o;6553:245::-;6620:6;6673:2;6661:9;6652:7;6648:23;6644:32;6641:52;;;6689:1;6686;6679:12;6641:52;6721:9;6715:16;6740:28;6762:5;6740:28;:::i;9539:127::-;9600:10;9595:3;9591:20;9588:1;9581:31;9631:4;9628:1;9621:15;9655:4;9652:1;9645:15;9671:128;9711:3;9742:1;9738:6;9735:1;9732:13;9729:39;;;9748:18;;:::i;:::-;-1:-1:-1;9784:9:1;;9671:128::o;9804:125::-;9844:4;9872:1;9869;9866:8;9863:34;;;9877:18;;:::i;:::-;-1:-1:-1;9914:9:1;;9804:125::o;10422:127::-;10483:10;10478:3;10474:20;10471:1;10464:31;10514:4;10511:1;10504:15;10538:4;10535:1;10528:15;10554:251;10624:6;10677:2;10665:9;10656:7;10652:23;10648:32;10645:52;;;10693:1;10690;10683:12;10645:52;10725:9;10719:16;10744:31;10769:5;10744:31;:::i;10810:980::-;11072:4;11120:3;11109:9;11105:19;11151:6;11140:9;11133:25;11177:2;11215:6;11210:2;11199:9;11195:18;11188:34;11258:3;11253:2;11242:9;11238:18;11231:31;11282:6;11317;11311:13;11348:6;11340;11333:22;11386:3;11375:9;11371:19;11364:26;;11425:2;11417:6;11413:15;11399:29;;11446:1;11456:195;11470:6;11467:1;11464:13;11456:195;;;11535:13;;-1:-1:-1;;;;;11531:39:1;11519:52;;11626:15;;;;11591:12;;;;11567:1;11485:9;11456:195;;;-1:-1:-1;;;;;;;11707:32:1;;;;11702:2;11687:18;;11680:60;-1:-1:-1;;;11771:3:1;11756:19;11749:35;11668:3;10810:980;-1:-1:-1;;;10810:980:1:o;11795:168::-;11835:7;11901:1;11897;11893:6;11889:14;11886:1;11883:21;11878:1;11871:9;11864:17;11860:45;11857:71;;;11908:18;;:::i;:::-;-1:-1:-1;11948:9:1;;11795:168::o;11968:217::-;12008:1;12034;12024:132;;12078:10;12073:3;12069:20;12066:1;12059:31;12113:4;12110:1;12103:15;12141:4;12138:1;12131:15;12024:132;-1:-1:-1;12170:9:1;;11968:217::o;13204:306::-;13292:6;13300;13308;13361:2;13349:9;13340:7;13336:23;13332:32;13329:52;;;13377:1;13374;13367:12;13329:52;13406:9;13400:16;13390:26;;13456:2;13445:9;13441:18;13435:25;13425:35;;13500:2;13489:9;13485:18;13479:25;13469:35;;13204:306;;;;;:::o

Swarm Source

ipfs://2726a946098a434772059914420b97967a4883dbd32b6c1e304452de46b035b0

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.