ETH Price: $3,463.89 (+3.90%)
Gas: 5 Gwei

Token

FutuerVerse (FV)
 

Overview

Max Total Supply

1,000,000,000 FV

Holders

60

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
6,513,538.563610779 FV

Value
$0.00
0x92bEe40a82630ea9652CFeb8D74CF50A8334E1e7
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:
FutuerVerse

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-12-02
*/

// SPDX-License-Identifier: Unlicensed

/** 
Futureverse's comprehensive technology platform empowers developers to create the worlds they imagine.

Website: https://www.futureverse.pro
Telegram: https://t.me/futureverse_erc
Twitter: https://twitter.com/futureverse_erc
 */
pragma solidity 0.8.19;

abstract contract Context {

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

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

interface IOpenERC20 {
    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 SafeIntegerLib {

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

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeIntegerLib: 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, "SafeIntegerLib: multiplication overflow");

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeIntegerLib: 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, "SafeIntegerLib: modulo by zero");
    }

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

library Address {

    function isContract(address account) internal view returns (bool) {
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            
            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;

    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 waiveOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    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 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 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 FutuerVerse is Context, IOpenERC20, Ownable {
    
    using SafeIntegerLib for uint256;
    using Address for address;
    
    string private _name ="FutuerVerse";
    string private _symbol = "FV";
    uint8 private _decimals = 9;

    address payable private taxWallet = payable(0xBdfF540E4067C92A4623F791927092CaEEfC21D5);
    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    
    mapping (address => bool) public checkExcludedFromFees;
    mapping (address => bool) public checkWalletLimitExcept;
    mapping (address => bool) public checkTxLimitExcept;
    mapping (address => bool) public checkMarketPair;

    uint256 public _buyLiquidityFees = 0;
    uint256 public _buyMarketingFees = 20;
    uint256 public _buyDevelopmentFees = 0;
    uint256 public _sellLiquidityFees = 0;
    uint256 public _sellMarketingFees = 20;
    uint256 public _sellDevelopmentFees = 0;

    uint256 public _liquidityShares = 0;
    uint256 public _marketingShares = 10;
    uint256 public _developmentShares = 0;

    uint256 public _totalTaxIfBuying = 20;
    uint256 public _totalTaxIfSelling = 20;
    uint256 public _totalDistributionShares = 10;

    uint256 private _totalSupply = 1000_000_000 * 10**9;
    uint256 public _maxTxAmount = _totalSupply;
    uint256 public _walletMax = _totalSupply*25/1000;
    uint256 private minimumTokensBeforeSwap = _totalSupply/100000; 

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapPair;
    
    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = false;
    bool public swapAndLiquifyByLimitOnly = false;
    bool public checkWalletLimit = 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); 

        uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = _totalSupply;

        checkExcludedFromFees[owner()] = true;
        checkExcludedFromFees[taxWallet] = true;

        checkWalletLimitExcept[owner()] = true;
        checkWalletLimitExcept[taxWallet] = true;
        checkWalletLimitExcept[address(uniswapPair)] = true;
        checkWalletLimitExcept[address(this)] = true;
        
        checkTxLimitExcept[owner()] = true;
        checkTxLimitExcept[taxWallet] = true;
        checkTxLimitExcept[address(this)] = true;

        checkMarketPair[address(uniswapPair)] = true;

        _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 addMarketPair(address account) public onlyOwner {
        checkMarketPair[account] = true;
    }

    function setcheckTxLimitExcept(address holder, bool exempt) external onlyOwner {
        checkTxLimitExcept[holder] = exempt;
    }
    
    function setcheckExcludedFromFees(address account, bool newValue) public onlyOwner {
        checkExcludedFromFees[account] = newValue;
    }

    function setBuyFee(uint256 newLiquidityTax, uint256 newMarketingTax, uint256 newDevelopmentTax) external onlyOwner() {
        _buyLiquidityFees = newLiquidityTax;
        _buyMarketingFees = newMarketingTax;
        _buyDevelopmentFees = newDevelopmentTax;

        _totalTaxIfBuying = _buyLiquidityFees.add(_buyMarketingFees).add(_buyDevelopmentFees);
        require (_totalTaxIfBuying <= 10);
    }

    function setSellFee(uint256 newLiquidityTax, uint256 newMarketingTax, uint256 newDevelopmentTax) external onlyOwner() {
        _sellLiquidityFees = newLiquidityTax;
        _sellMarketingFees = newMarketingTax;
        _sellDevelopmentFees = newDevelopmentTax;

        _totalTaxIfSelling = _sellLiquidityFees.add(_sellMarketingFees).add(_sellDevelopmentFees);
        require (_totalTaxIfSelling <= 20);
    }
    
    function setDistributionSettings(uint256 newLiquidityShare, uint256 newMarketingShare, uint256 newDevelopmentShare) external onlyOwner() {
        _liquidityShares = newLiquidityShare;
        _marketingShares = newMarketingShare;
        _developmentShares = newDevelopmentShare;

        _totalDistributionShares = _liquidityShares.add(_marketingShares).add(_developmentShares);
    }
    
    function adjustMaxTxAmount(uint256 maxTxAmount) external onlyOwner() {
        require(maxTxAmount >= _totalSupply/100, "Max wallet should be more or equal to 1%");
        _maxTxAmount = maxTxAmount;
    }

    function enableDisableWalletLimit(bool newValue) external onlyOwner {
       checkWalletLimit = newValue;
    }

    function setcheckWalletLimitExcept(address holder, bool exempt) external onlyOwner {
        checkWalletLimitExcept[holder] = exempt;
    }

    function setWalletLimit(uint256 newLimit) external onlyOwner {
        _walletMax  = newLimit;
    }

    function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() {
        minimumTokensBeforeSwap = newLimit;
    }

    function settaxWallet(address newAddress) external onlyOwner() {
        taxWallet = payable(newAddress);
    }

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

    function setSwapAndLiquifyByLimitOnly(bool newValue) public onlyOwner {
        swapAndLiquifyByLimitOnly = newValue;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress));
    }

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

    function manualSend() external {
        transferToAddressETH(taxWallet, address(this).balance);
    }

     //to recieve ETH from uniswapV2Router when swaping
    receive() external payable {}

    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(!checkTxLimitExcept[sender] && !checkTxLimitExcept[recipient]) {
                require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
            }            

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

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

            address feeReceiver = feeAmount == amount ? sender : address(this);
            if(feeAmount > 0) {
                _balances[feeReceiver] = _balances[feeReceiver].add(feeAmount);
                emit Transfer(sender, feeReceiver, feeAmount);
            }

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

            if(checkWalletLimit && !checkWalletLimitExcept[recipient])
                require(balanceOf(recipient).add(finalAmount) <= _walletMax);

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

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

    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 {

        swapTokensForEth(tAmount);
        uint256 amountETHMarketing = address(this).balance;
        transferToAddressETH(taxWallet, amountETHMarketing);

    }
    
    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 takeFee(address sender, address recipient, uint256 amount) internal view returns (uint256, uint256) {
        
        uint256 feeAmount = amount;

        if (checkExcludedFromFees[sender] && swapAndLiquifyEnabled) return (amount, feeAmount);

        if(checkMarketPair[sender]) {
            feeAmount = amount.mul(_totalTaxIfBuying).div(100);
        }
        else if(checkMarketPair[recipient]) {
            feeAmount = amount.mul(_totalTaxIfSelling).div(100);
        }
        if (checkExcludedFromFees[sender]) {
            return (amount, 0);
        }

        return (amount.sub(feeAmount), feeAmount);
    }
    
}

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":"_buyDevelopmentFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLiquidityFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_developmentShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingShares","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":"_sellDevelopmentFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalDistributionShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","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":"account","type":"address"}],"name":"addMarketPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"adjustMaxTxAmount","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"","type":"address"}],"name":"checkExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"checkMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"checkTxLimitExcept","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"checkWalletLimitExcept","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"enableDisableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","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":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityTax","type":"uint256"},{"internalType":"uint256","name":"newMarketingTax","type":"uint256"},{"internalType":"uint256","name":"newDevelopmentTax","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityShare","type":"uint256"},{"internalType":"uint256","name":"newMarketingShare","type":"uint256"},{"internalType":"uint256","name":"newDevelopmentShare","type":"uint256"}],"name":"setDistributionSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityTax","type":"uint256"},{"internalType":"uint256","name":"newMarketingTax","type":"uint256"},{"internalType":"uint256","name":"newDevelopmentTax","type":"uint256"}],"name":"setSellFee","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":"newLimit","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setcheckExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setcheckTxLimitExcept","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setcheckWalletLimitExcept","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"settaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60e0604052600b60a09081526a467574756572566572736560a81b60c0526002906200002c9082620005bf565b50604080518082019091526002815261232b60f11b6020820152600390620000559082620005bf565b50600480546001600160a81b03191674bdff540e4067c92a4623f791927092caeefc21d50917905561dead6080526000600b8190556014600c819055600d829055600e829055600f81905560108290556011829055600a6012819055601392909255808055601555601655670de0b6b3a7640000601781905560188190556103e890620000e49060196200068b565b620000f09190620006b7565b601955620186a0601754620001069190620006b7565b601a55601c805462ffffff60a81b1916600160b81b1790553480156200012b57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001eb9190620006da565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000239573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025f9190620006da565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002ad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d39190620006da565b601c80546001600160a01b039283166001600160a01b031991821617909155601b8054928416929091168217905560175430600090815260066020908152604080832094835293905291822055600190600790620003396000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790556004546101009004909116815260079092528120805490921660019081179092556008906200039e6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790556004546101009004821681526008909352818320805485166001908117909155601c549091168352818320805485168217905530835290822080549093168117909255600990620004256000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055600454610100900482168152600984528281208054861660019081179091553082528382208054871682179055601c549092168152600a90935290822080549093161790915560175490600590620004a83390565b6001600160a01b03168152602081019190915260400160002055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6017546040516200050b91815260200190565b60405180910390a3506200070c565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200054557607f821691505b6020821081036200056657634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620005ba57600081815260208120601f850160051c81016020861015620005955750805b601f850160051c820191505b81811015620005b657828155600101620005a1565b5050505b505050565b81516001600160401b03811115620005db57620005db6200051a565b620005f381620005ec845462000530565b846200056c565b602080601f8311600181146200062b5760008415620006125750858301515b600019600386901b1c1916600185901b178555620005b6565b600085815260208120601f198616915b828110156200065c578886015182559484019460019091019084016200063b565b50858210156200067b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8082028115828204841417620006b157634e487b7160e01b600052601160045260246000fd5b92915050565b600082620006d557634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620006ed57600080fd5b81516001600160a01b03811681146200070557600080fd5b9392505050565b6080516121c96200072f600039600081816104ab0152610c8a01526121c96000f3fe6080604052600436106103395760003560e01c80637d1db4a5116101ab578063c2d4640e116100f7578063e207a92b11610095578063f2fde38b1161006f578063f2fde38b1461098e578063f4293890146109ae578063f872858a146109c3578063fabf7063146109e457600080fd5b8063e207a92b14610938578063f0cd1dac14610958578063f1d5f5171461096e57600080fd5b8063c816841b116100d1578063c816841b1461089b578063d76e26a3146108bb578063da00097d146108d1578063dd62ed3e146108f257600080fd5b8063c2d4640e1461082b578063c49b9a801461084b578063c78a789b1461086b57600080fd5b806395d89b4111610164578063a457c2d71161013e578063a457c2d7146107b5578063a5d69d1f146107d5578063a9059cbb146107f5578063b6c3af341461081557600080fd5b806395d89b41146107745780639e3fa32314610789578063a08e671f1461079f57600080fd5b80637d1db4a5146106df578063807c2d9c146106f557806382eefb431461070b5780638da5cb5b146107215780638f03aad51461073f578063914eb66a1461075f57600080fd5b80632f0a5fd411610285578063565cec3811610223578063661b6e36116101fd578063661b6e361461065d578063667b511c14610673578063705f9d741461069357806370a08231146106a957600080fd5b8063565cec381461061157806357e6adcb14610627578063646d47001461064757600080fd5b80633b97084a1161025f5780633b97084a146105705780634a74bb0214610590578063526012e8146105b157806355324fa9146105e157600080fd5b80632f0a5fd414610518578063313ce5671461052e578063395093511461055057600080fd5b806323b872dd116102f257806327c8f835116102cc57806327c8f835146104995780632b112e49146104cd5780632cdae5cb146104e25780632df671091461050257600080fd5b806323b872dd1461043957806325519cf2146104595780632563ae831461047957600080fd5b806304b8d3291461034557806306fdde0314610367578063095ea7b3146103925780631694505e146103c257806318160ddd146103fa5780631d865c301461041957600080fd5b3661034057005b600080fd5b34801561035157600080fd5b50610365610360366004611daf565b610a14565b005b34801561037357600080fd5b5061037c610a6f565b6040516103899190611dcc565b60405180910390f35b34801561039e57600080fd5b506103b26103ad366004611e1a565b610b01565b6040519015158152602001610389565b3480156103ce57600080fd5b50601b546103e2906001600160a01b031681565b6040516001600160a01b039091168152602001610389565b34801561040657600080fd5b506017545b604051908152602001610389565b34801561042557600080fd5b50610365610434366004611e46565b610b18565b34801561044557600080fd5b506103b2610454366004611e72565b610b7c565b34801561046557600080fd5b50610365610474366004611e46565b610be7565b34801561048557600080fd5b50610365610494366004611ec8565b610c40565b3480156104a557600080fd5b506103e27f000000000000000000000000000000000000000000000000000000000000000081565b3480156104d957600080fd5b5061040b610c88565b3480156104ee57600080fd5b506103656104fd366004611ee3565b610cd2565b34801561050e57600080fd5b5061040b600c5481565b34801561052457600080fd5b5061040b600e5481565b34801561053a57600080fd5b5060045460405160ff9091168152602001610389565b34801561055c57600080fd5b506103b261056b366004611e1a565b610d27565b34801561057c57600080fd5b5061036561058b366004611f18565b610d5d565b34801561059c57600080fd5b50601c546103b290600160a81b900460ff1681565b3480156105bd57600080fd5b506103b26105cc366004611daf565b60086020526000908152604090205460ff1681565b3480156105ed57600080fd5b506103b26105fc366004611daf565b600a6020526000908152604090205460ff1681565b34801561061d57600080fd5b5061040b60125481565b34801561063357600080fd5b50610365610642366004611ee3565b610d8c565b34801561065357600080fd5b5061040b60105481565b34801561066957600080fd5b5061040b600f5481565b34801561067f57600080fd5b5061036561068e366004611ee3565b610de1565b34801561069f57600080fd5b5061040b600d5481565b3480156106b557600080fd5b5061040b6106c4366004611daf565b6001600160a01b031660009081526005602052604090205490565b3480156106eb57600080fd5b5061040b60185481565b34801561070157600080fd5b5061040b60195481565b34801561071757600080fd5b5061040b60155481565b34801561072d57600080fd5b506000546001600160a01b03166103e2565b34801561074b57600080fd5b5061036561075a366004611f18565b610e36565b34801561076b57600080fd5b50610365610ed4565b34801561078057600080fd5b5061037c610f48565b34801561079557600080fd5b5061040b60115481565b3480156107ab57600080fd5b5061040b60165481565b3480156107c157600080fd5b506103b26107d0366004611e1a565b610f57565b3480156107e157600080fd5b506103656107f0366004611ec8565b610fa6565b34801561080157600080fd5b506103b2610810366004611e1a565b610fee565b34801561082157600080fd5b5061040b600b5481565b34801561083757600080fd5b50610365610846366004611e46565b610ffb565b34801561085757600080fd5b50610365610866366004611ec8565b61104a565b34801561087757600080fd5b506103b2610886366004611daf565b60096020526000908152604090205460ff1681565b3480156108a757600080fd5b50601c546103e2906001600160a01b031681565b3480156108c757600080fd5b5061040b60135481565b3480156108dd57600080fd5b50601c546103b290600160b01b900460ff1681565b3480156108fe57600080fd5b5061040b61090d366004611f31565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561094457600080fd5b50610365610953366004611daf565b6110cc565b34801561096457600080fd5b5061040b60145481565b34801561097a57600080fd5b50610365610989366004611f18565b61111a565b34801561099a57600080fd5b506103656109a9366004611daf565b611149565b3480156109ba57600080fd5b50610365611233565b3480156109cf57600080fd5b50601c546103b290600160b81b900460ff1681565b3480156109f057600080fd5b506103b26109ff366004611daf565b60076020526000908152604090205460ff1681565b6000546001600160a01b03163314610a475760405162461bcd60e51b8152600401610a3e90611f6a565b60405180910390fd5b600480546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b606060028054610a7e90611f9f565b80601f0160208091040260200160405190810160405280929190818152602001828054610aaa90611f9f565b8015610af75780601f10610acc57610100808354040283529160200191610af7565b820191906000526020600020905b815481529060010190602001808311610ada57829003601f168201915b5050505050905090565b6000610b0e338484611250565b5060015b92915050565b6000546001600160a01b03163314610b425760405162461bcd60e51b8152600401610a3e90611f6a565b600e839055600f8290556010819055610b6581610b5f8585611374565b90611374565b601581905560141015610b7757600080fd5b505050565b6000610b898484846113dd565b50610bdc8433610bd785604051806060016040528060288152602001612147602891396001600160a01b038a166000908152600660209081526040808320338452909152902054919061183d565b611250565b5060015b9392505050565b6000546001600160a01b03163314610c115760405162461bcd60e51b8152600401610a3e90611f6a565b600b839055600c829055600d819055610c2e81610b5f8585611374565b6014819055600a1015610b7757600080fd5b6000546001600160a01b03163314610c6a5760405162461bcd60e51b8152600401610a3e90611f6a565b601c8054911515600160b81b0260ff60b81b19909216919091179055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316600090815260056020526040812054601754610ccd91611877565b905090565b6000546001600160a01b03163314610cfc5760405162461bcd60e51b8152600401610a3e90611f6a565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b3360008181526006602090815260408083206001600160a01b03871684529091528120549091610b0e918590610bd79086611374565b6000546001600160a01b03163314610d875760405162461bcd60e51b8152600401610a3e90611f6a565b601a55565b6000546001600160a01b03163314610db65760405162461bcd60e51b8152600401610a3e90611f6a565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610e0b5760405162461bcd60e51b8152600401610a3e90611f6a565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610e605760405162461bcd60e51b8152600401610a3e90611f6a565b6064601754610e6f9190611fef565b811015610ecf5760405162461bcd60e51b815260206004820152602860248201527f4d61782077616c6c65742073686f756c64206265206d6f7265206f7220657175604482015267616c20746f20312560c01b6064820152608401610a3e565b601855565b6000546001600160a01b03163314610efe5760405162461bcd60e51b8152600401610a3e90611f6a565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b606060038054610a7e90611f9f565b6000610b0e3384610bd78560405180606001604052806025815260200161216f602591393360009081526006602090815260408083206001600160a01b038d168452909152902054919061183d565b6000546001600160a01b03163314610fd05760405162461bcd60e51b8152600401610a3e90611f6a565b601c8054911515600160b01b0260ff60b01b19909216919091179055565b6000610bdc3384846113dd565b6000546001600160a01b031633146110255760405162461bcd60e51b8152600401610a3e90611f6a565b60118390556012829055601381905561104281610b5f8585611374565b601655505050565b6000546001600160a01b031633146110745760405162461bcd60e51b8152600401610a3e90611f6a565b601c8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159906110c190831515815260200190565b60405180910390a150565b6000546001600160a01b031633146110f65760405162461bcd60e51b8152600401610a3e90611f6a565b6001600160a01b03166000908152600a60205260409020805460ff19166001179055565b6000546001600160a01b031633146111445760405162461bcd60e51b8152600401610a3e90611f6a565b601955565b6000546001600160a01b031633146111735760405162461bcd60e51b8152600401610a3e90611f6a565b6001600160a01b0381166111d85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a3e565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60045461124e9061010090046001600160a01b03164761189c565b565b6001600160a01b0383166112b25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a3e565b6001600160a01b0382166113135760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a3e565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000806113818385612011565b905083811015610be05760405162461bcd60e51b815260206004820152602160248201527f53616665496e74656765724c69623a206164646974696f6e206f766572666c6f6044820152607760f81b6064820152608401610a3e565b60006001600160a01b0384166114435760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a3e565b6001600160a01b0383166114a55760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a3e565b601c54600160a01b900460ff16156114c9576114c28484846118d2565b9050610be0565b6001600160a01b03841660009081526009602052604090205460ff1615801561150b57506001600160a01b03831660009081526009602052604090205460ff16155b15611573576018548211156115735760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610a3e565b30600090815260056020526040902054601a54811080159081906115a15750601c54600160a01b900460ff16155b80156115c657506001600160a01b03861660009081526007602052604090205460ff16155b80156115ea57506001600160a01b0385166000908152600a602052604090205460ff165b80156115ff5750601c54600160a81b900460ff165b801561160c5750601a5484115b1561163257601c54600160b01b900460ff161561162957601a5491505b611632826119b8565b600080611640888888611a02565b9150915060008682146116535730611655565b885b905081156116dd576001600160a01b0381166000908152600560205260409020546116809083611374565b6001600160a01b0380831660008181526005602052604090819020939093559151908b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116d49086815260200190565b60405180910390a35b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038c1660009081526005909152919091205461172f91899061183d565b6001600160a01b038a16600090815260056020526040902055601c54600160b81b900460ff16801561177a57506001600160a01b03881660009081526008602052604090205460ff16155b156117b0576019546117a584610b5f8b6001600160a01b031660009081526005602052604090205490565b11156117b057600080fd5b6001600160a01b0388166000908152600560205260409020546117d39084611374565b6001600160a01b03808a1660008181526005602052604090819020939093559151908b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118279087815260200190565b60405180910390a3600195505050505050610be0565b600081848411156118615760405162461bcd60e51b8152600401610a3e9190611dcc565b50600061186e8486612024565b95945050505050565b6000610be083836040518060600160405280602481526020016121236024913961183d565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610b77573d6000803e3d6000fd5b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260059091529182205461192391849061183d565b6001600160a01b0380861660009081526005602052604080822093909355908516815220546119529083611374565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119a69086815260200190565b60405180910390a35060019392505050565b601c805460ff60a01b1916600160a01b1790556119d481611b11565b60045447906119f19061010090046001600160a01b03168261189c565b5050601c805460ff60a01b19169055565b6001600160a01b0383166000908152600760205260408120548190839060ff168015611a375750601c54600160a81b900460ff165b15611a46578392509050611b09565b6001600160a01b0386166000908152600a602052604090205460ff1615611a8e57611a876064611a8160145487611ca490919063ffffffff16565b90611d2c565b9050611acc565b6001600160a01b0385166000908152600a602052604090205460ff1615611acc57611ac96064611a8160155487611ca490919063ffffffff16565b90505b6001600160a01b03861660009081526007602052604090205460ff1615611afa578360009250925050611b09565b611b048482611877565b925090505b935093915050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611b4657611b46612037565b6001600160a01b03928316602091820292909201810191909152601b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bc3919061204d565b81600181518110611bd657611bd6612037565b6001600160a01b039283166020918202929092010152601b54611bfc9130911684611250565b601b5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611c359085906000908690309042906004016120ae565b600060405180830381600087803b158015611c4f57600080fd5b505af1158015611c63573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611c989291906120ea565b60405180910390a15050565b600082600003611cb657506000610b12565b6000611cc2838561210b565b905082611ccf8583611fef565b14610be05760405162461bcd60e51b815260206004820152602760248201527f53616665496e74656765724c69623a206d756c7469706c69636174696f6e206f604482015266766572666c6f7760c81b6064820152608401610a3e565b6000610be083836040518060400160405280602081526020017f53616665496e74656765724c69623a206469766973696f6e206279207a65726f81525060008183611d8a5760405162461bcd60e51b8152600401610a3e9190611dcc565b50600061186e8486611fef565b6001600160a01b0381168114611dac57600080fd5b50565b600060208284031215611dc157600080fd5b8135610be081611d97565b600060208083528351808285015260005b81811015611df957858101830151858201604001528201611ddd565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215611e2d57600080fd5b8235611e3881611d97565b946020939093013593505050565b600080600060608486031215611e5b57600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215611e8757600080fd5b8335611e9281611d97565b92506020840135611ea281611d97565b929592945050506040919091013590565b80358015158114611ec357600080fd5b919050565b600060208284031215611eda57600080fd5b610be082611eb3565b60008060408385031215611ef657600080fd5b8235611f0181611d97565b9150611f0f60208401611eb3565b90509250929050565b600060208284031215611f2a57600080fd5b5035919050565b60008060408385031215611f4457600080fd5b8235611f4f81611d97565b91506020830135611f5f81611d97565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c90821680611fb357607f821691505b602082108103611fd357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008261200c57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610b1257610b12611fd9565b81810381811115610b1257610b12611fd9565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561205f57600080fd5b8151610be081611d97565b600081518084526020808501945080840160005b838110156120a35781516001600160a01b03168752958201959082019060010161207e565b509495945050505050565b85815284602082015260a0604082015260006120cd60a083018661206a565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201526000612103604083018461206a565b949350505050565b8082028115828204841417610b1257610b12611fd956fe53616665496e74656765724c69623a207375627472616374696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212204f1bf2d1dd21375b80bd3fdf413aa54cf912bc69dd0a0ad9443c7a26f5be01ba64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106103395760003560e01c80637d1db4a5116101ab578063c2d4640e116100f7578063e207a92b11610095578063f2fde38b1161006f578063f2fde38b1461098e578063f4293890146109ae578063f872858a146109c3578063fabf7063146109e457600080fd5b8063e207a92b14610938578063f0cd1dac14610958578063f1d5f5171461096e57600080fd5b8063c816841b116100d1578063c816841b1461089b578063d76e26a3146108bb578063da00097d146108d1578063dd62ed3e146108f257600080fd5b8063c2d4640e1461082b578063c49b9a801461084b578063c78a789b1461086b57600080fd5b806395d89b4111610164578063a457c2d71161013e578063a457c2d7146107b5578063a5d69d1f146107d5578063a9059cbb146107f5578063b6c3af341461081557600080fd5b806395d89b41146107745780639e3fa32314610789578063a08e671f1461079f57600080fd5b80637d1db4a5146106df578063807c2d9c146106f557806382eefb431461070b5780638da5cb5b146107215780638f03aad51461073f578063914eb66a1461075f57600080fd5b80632f0a5fd411610285578063565cec3811610223578063661b6e36116101fd578063661b6e361461065d578063667b511c14610673578063705f9d741461069357806370a08231146106a957600080fd5b8063565cec381461061157806357e6adcb14610627578063646d47001461064757600080fd5b80633b97084a1161025f5780633b97084a146105705780634a74bb0214610590578063526012e8146105b157806355324fa9146105e157600080fd5b80632f0a5fd414610518578063313ce5671461052e578063395093511461055057600080fd5b806323b872dd116102f257806327c8f835116102cc57806327c8f835146104995780632b112e49146104cd5780632cdae5cb146104e25780632df671091461050257600080fd5b806323b872dd1461043957806325519cf2146104595780632563ae831461047957600080fd5b806304b8d3291461034557806306fdde0314610367578063095ea7b3146103925780631694505e146103c257806318160ddd146103fa5780631d865c301461041957600080fd5b3661034057005b600080fd5b34801561035157600080fd5b50610365610360366004611daf565b610a14565b005b34801561037357600080fd5b5061037c610a6f565b6040516103899190611dcc565b60405180910390f35b34801561039e57600080fd5b506103b26103ad366004611e1a565b610b01565b6040519015158152602001610389565b3480156103ce57600080fd5b50601b546103e2906001600160a01b031681565b6040516001600160a01b039091168152602001610389565b34801561040657600080fd5b506017545b604051908152602001610389565b34801561042557600080fd5b50610365610434366004611e46565b610b18565b34801561044557600080fd5b506103b2610454366004611e72565b610b7c565b34801561046557600080fd5b50610365610474366004611e46565b610be7565b34801561048557600080fd5b50610365610494366004611ec8565b610c40565b3480156104a557600080fd5b506103e27f000000000000000000000000000000000000000000000000000000000000dead81565b3480156104d957600080fd5b5061040b610c88565b3480156104ee57600080fd5b506103656104fd366004611ee3565b610cd2565b34801561050e57600080fd5b5061040b600c5481565b34801561052457600080fd5b5061040b600e5481565b34801561053a57600080fd5b5060045460405160ff9091168152602001610389565b34801561055c57600080fd5b506103b261056b366004611e1a565b610d27565b34801561057c57600080fd5b5061036561058b366004611f18565b610d5d565b34801561059c57600080fd5b50601c546103b290600160a81b900460ff1681565b3480156105bd57600080fd5b506103b26105cc366004611daf565b60086020526000908152604090205460ff1681565b3480156105ed57600080fd5b506103b26105fc366004611daf565b600a6020526000908152604090205460ff1681565b34801561061d57600080fd5b5061040b60125481565b34801561063357600080fd5b50610365610642366004611ee3565b610d8c565b34801561065357600080fd5b5061040b60105481565b34801561066957600080fd5b5061040b600f5481565b34801561067f57600080fd5b5061036561068e366004611ee3565b610de1565b34801561069f57600080fd5b5061040b600d5481565b3480156106b557600080fd5b5061040b6106c4366004611daf565b6001600160a01b031660009081526005602052604090205490565b3480156106eb57600080fd5b5061040b60185481565b34801561070157600080fd5b5061040b60195481565b34801561071757600080fd5b5061040b60155481565b34801561072d57600080fd5b506000546001600160a01b03166103e2565b34801561074b57600080fd5b5061036561075a366004611f18565b610e36565b34801561076b57600080fd5b50610365610ed4565b34801561078057600080fd5b5061037c610f48565b34801561079557600080fd5b5061040b60115481565b3480156107ab57600080fd5b5061040b60165481565b3480156107c157600080fd5b506103b26107d0366004611e1a565b610f57565b3480156107e157600080fd5b506103656107f0366004611ec8565b610fa6565b34801561080157600080fd5b506103b2610810366004611e1a565b610fee565b34801561082157600080fd5b5061040b600b5481565b34801561083757600080fd5b50610365610846366004611e46565b610ffb565b34801561085757600080fd5b50610365610866366004611ec8565b61104a565b34801561087757600080fd5b506103b2610886366004611daf565b60096020526000908152604090205460ff1681565b3480156108a757600080fd5b50601c546103e2906001600160a01b031681565b3480156108c757600080fd5b5061040b60135481565b3480156108dd57600080fd5b50601c546103b290600160b01b900460ff1681565b3480156108fe57600080fd5b5061040b61090d366004611f31565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561094457600080fd5b50610365610953366004611daf565b6110cc565b34801561096457600080fd5b5061040b60145481565b34801561097a57600080fd5b50610365610989366004611f18565b61111a565b34801561099a57600080fd5b506103656109a9366004611daf565b611149565b3480156109ba57600080fd5b50610365611233565b3480156109cf57600080fd5b50601c546103b290600160b81b900460ff1681565b3480156109f057600080fd5b506103b26109ff366004611daf565b60076020526000908152604090205460ff1681565b6000546001600160a01b03163314610a475760405162461bcd60e51b8152600401610a3e90611f6a565b60405180910390fd5b600480546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b606060028054610a7e90611f9f565b80601f0160208091040260200160405190810160405280929190818152602001828054610aaa90611f9f565b8015610af75780601f10610acc57610100808354040283529160200191610af7565b820191906000526020600020905b815481529060010190602001808311610ada57829003601f168201915b5050505050905090565b6000610b0e338484611250565b5060015b92915050565b6000546001600160a01b03163314610b425760405162461bcd60e51b8152600401610a3e90611f6a565b600e839055600f8290556010819055610b6581610b5f8585611374565b90611374565b601581905560141015610b7757600080fd5b505050565b6000610b898484846113dd565b50610bdc8433610bd785604051806060016040528060288152602001612147602891396001600160a01b038a166000908152600660209081526040808320338452909152902054919061183d565b611250565b5060015b9392505050565b6000546001600160a01b03163314610c115760405162461bcd60e51b8152600401610a3e90611f6a565b600b839055600c829055600d819055610c2e81610b5f8585611374565b6014819055600a1015610b7757600080fd5b6000546001600160a01b03163314610c6a5760405162461bcd60e51b8152600401610a3e90611f6a565b601c8054911515600160b81b0260ff60b81b19909216919091179055565b7f000000000000000000000000000000000000000000000000000000000000dead6001600160a01b0316600090815260056020526040812054601754610ccd91611877565b905090565b6000546001600160a01b03163314610cfc5760405162461bcd60e51b8152600401610a3e90611f6a565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b3360008181526006602090815260408083206001600160a01b03871684529091528120549091610b0e918590610bd79086611374565b6000546001600160a01b03163314610d875760405162461bcd60e51b8152600401610a3e90611f6a565b601a55565b6000546001600160a01b03163314610db65760405162461bcd60e51b8152600401610a3e90611f6a565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610e0b5760405162461bcd60e51b8152600401610a3e90611f6a565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610e605760405162461bcd60e51b8152600401610a3e90611f6a565b6064601754610e6f9190611fef565b811015610ecf5760405162461bcd60e51b815260206004820152602860248201527f4d61782077616c6c65742073686f756c64206265206d6f7265206f7220657175604482015267616c20746f20312560c01b6064820152608401610a3e565b601855565b6000546001600160a01b03163314610efe5760405162461bcd60e51b8152600401610a3e90611f6a565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b606060038054610a7e90611f9f565b6000610b0e3384610bd78560405180606001604052806025815260200161216f602591393360009081526006602090815260408083206001600160a01b038d168452909152902054919061183d565b6000546001600160a01b03163314610fd05760405162461bcd60e51b8152600401610a3e90611f6a565b601c8054911515600160b01b0260ff60b01b19909216919091179055565b6000610bdc3384846113dd565b6000546001600160a01b031633146110255760405162461bcd60e51b8152600401610a3e90611f6a565b60118390556012829055601381905561104281610b5f8585611374565b601655505050565b6000546001600160a01b031633146110745760405162461bcd60e51b8152600401610a3e90611f6a565b601c8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159906110c190831515815260200190565b60405180910390a150565b6000546001600160a01b031633146110f65760405162461bcd60e51b8152600401610a3e90611f6a565b6001600160a01b03166000908152600a60205260409020805460ff19166001179055565b6000546001600160a01b031633146111445760405162461bcd60e51b8152600401610a3e90611f6a565b601955565b6000546001600160a01b031633146111735760405162461bcd60e51b8152600401610a3e90611f6a565b6001600160a01b0381166111d85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a3e565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60045461124e9061010090046001600160a01b03164761189c565b565b6001600160a01b0383166112b25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a3e565b6001600160a01b0382166113135760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a3e565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000806113818385612011565b905083811015610be05760405162461bcd60e51b815260206004820152602160248201527f53616665496e74656765724c69623a206164646974696f6e206f766572666c6f6044820152607760f81b6064820152608401610a3e565b60006001600160a01b0384166114435760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a3e565b6001600160a01b0383166114a55760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a3e565b601c54600160a01b900460ff16156114c9576114c28484846118d2565b9050610be0565b6001600160a01b03841660009081526009602052604090205460ff1615801561150b57506001600160a01b03831660009081526009602052604090205460ff16155b15611573576018548211156115735760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610a3e565b30600090815260056020526040902054601a54811080159081906115a15750601c54600160a01b900460ff16155b80156115c657506001600160a01b03861660009081526007602052604090205460ff16155b80156115ea57506001600160a01b0385166000908152600a602052604090205460ff165b80156115ff5750601c54600160a81b900460ff165b801561160c5750601a5484115b1561163257601c54600160b01b900460ff161561162957601a5491505b611632826119b8565b600080611640888888611a02565b9150915060008682146116535730611655565b885b905081156116dd576001600160a01b0381166000908152600560205260409020546116809083611374565b6001600160a01b0380831660008181526005602052604090819020939093559151908b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116d49086815260200190565b60405180910390a35b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038c1660009081526005909152919091205461172f91899061183d565b6001600160a01b038a16600090815260056020526040902055601c54600160b81b900460ff16801561177a57506001600160a01b03881660009081526008602052604090205460ff16155b156117b0576019546117a584610b5f8b6001600160a01b031660009081526005602052604090205490565b11156117b057600080fd5b6001600160a01b0388166000908152600560205260409020546117d39084611374565b6001600160a01b03808a1660008181526005602052604090819020939093559151908b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118279087815260200190565b60405180910390a3600195505050505050610be0565b600081848411156118615760405162461bcd60e51b8152600401610a3e9190611dcc565b50600061186e8486612024565b95945050505050565b6000610be083836040518060600160405280602481526020016121236024913961183d565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610b77573d6000803e3d6000fd5b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260059091529182205461192391849061183d565b6001600160a01b0380861660009081526005602052604080822093909355908516815220546119529083611374565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119a69086815260200190565b60405180910390a35060019392505050565b601c805460ff60a01b1916600160a01b1790556119d481611b11565b60045447906119f19061010090046001600160a01b03168261189c565b5050601c805460ff60a01b19169055565b6001600160a01b0383166000908152600760205260408120548190839060ff168015611a375750601c54600160a81b900460ff165b15611a46578392509050611b09565b6001600160a01b0386166000908152600a602052604090205460ff1615611a8e57611a876064611a8160145487611ca490919063ffffffff16565b90611d2c565b9050611acc565b6001600160a01b0385166000908152600a602052604090205460ff1615611acc57611ac96064611a8160155487611ca490919063ffffffff16565b90505b6001600160a01b03861660009081526007602052604090205460ff1615611afa578360009250925050611b09565b611b048482611877565b925090505b935093915050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611b4657611b46612037565b6001600160a01b03928316602091820292909201810191909152601b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bc3919061204d565b81600181518110611bd657611bd6612037565b6001600160a01b039283166020918202929092010152601b54611bfc9130911684611250565b601b5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611c359085906000908690309042906004016120ae565b600060405180830381600087803b158015611c4f57600080fd5b505af1158015611c63573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611c989291906120ea565b60405180910390a15050565b600082600003611cb657506000610b12565b6000611cc2838561210b565b905082611ccf8583611fef565b14610be05760405162461bcd60e51b815260206004820152602760248201527f53616665496e74656765724c69623a206d756c7469706c69636174696f6e206f604482015266766572666c6f7760c81b6064820152608401610a3e565b6000610be083836040518060400160405280602081526020017f53616665496e74656765724c69623a206469766973696f6e206279207a65726f81525060008183611d8a5760405162461bcd60e51b8152600401610a3e9190611dcc565b50600061186e8486611fef565b6001600160a01b0381168114611dac57600080fd5b50565b600060208284031215611dc157600080fd5b8135610be081611d97565b600060208083528351808285015260005b81811015611df957858101830151858201604001528201611ddd565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215611e2d57600080fd5b8235611e3881611d97565b946020939093013593505050565b600080600060608486031215611e5b57600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215611e8757600080fd5b8335611e9281611d97565b92506020840135611ea281611d97565b929592945050506040919091013590565b80358015158114611ec357600080fd5b919050565b600060208284031215611eda57600080fd5b610be082611eb3565b60008060408385031215611ef657600080fd5b8235611f0181611d97565b9150611f0f60208401611eb3565b90509250929050565b600060208284031215611f2a57600080fd5b5035919050565b60008060408385031215611f4457600080fd5b8235611f4f81611d97565b91506020830135611f5f81611d97565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c90821680611fb357607f821691505b602082108103611fd357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008261200c57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610b1257610b12611fd9565b81810381811115610b1257610b12611fd9565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561205f57600080fd5b8151610be081611d97565b600081518084526020808501945080840160005b838110156120a35781516001600160a01b03168752958201959082019060010161207e565b509495945050505050565b85815284602082015260a0604082015260006120cd60a083018661206a565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201526000612103604083018461206a565b949350505050565b8082028115828204841417610b1257610b12611fd956fe53616665496e74656765724c69623a207375627472616374696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212204f1bf2d1dd21375b80bd3fdf413aa54cf912bc69dd0a0ad9443c7a26f5be01ba64736f6c63430008130033

Deployed Bytecode Sourcemap

11055:12782:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18533:113;;;;;;;;;;-1:-1:-1;18533:113:0;;;;;:::i;:::-;;:::i;:::-;;14462:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15628:161;;;;;;;;;;-1:-1:-1;15628:161:0;;;;;:::i;:::-;;:::i;:::-;;;1440:14:1;;1433:22;1415:41;;1403:2;1388:18;15628:161:0;1275:187:1;12640:41:0;;;;;;;;;;-1:-1:-1;12640:41:0;;;;-1:-1:-1;;;;;12640:41:0;;;;;;-1:-1:-1;;;;;1657:32:1;;;1639:51;;1627:2;1612:18;12640:41:0;1467:229:1;14739:100:0;;;;;;;;;;-1:-1:-1;14819:12:0;;14739:100;;;1847:25:1;;;1835:2;1820:18;14739:100:0;1701:177:1;16970:418:0;;;;;;;;;;-1:-1:-1;16970:418:0;;;;;:::i;:::-;;:::i;19621:313::-;;;;;;;;;;-1:-1:-1;19621:313:0;;;;;:::i;:::-;;:::i;16553:409::-;;;;;;;;;;-1:-1:-1;16553:409:0;;;;;:::i;:::-;;:::i;18021:113::-;;;;;;;;;;-1:-1:-1;18021:113:0;;;;;:::i;:::-;;:::i;11406:81::-;;;;;;;;;;;;;;;18970:128;;;;;;;;;;;;;:::i;16402:143::-;;;;;;;;;;-1:-1:-1;16402:143:0;;;;;:::i;:::-;;:::i;11908:37::-;;;;;;;;;;;;;;;;11997;;;;;;;;;;;;;;;;14648:83;;;;;;;;;;-1:-1:-1;14714:9:0;;14648:83;;14714:9;;;;3685:36:1;;3673:2;3658:18;14648:83:0;3543:184:1;15125:218:0;;;;;;;;;;-1:-1:-1;15125:218:0;;;;;:::i;:::-;;:::i;18401:124::-;;;;;;;;;;-1:-1:-1;18401:124:0;;;;;:::i;:::-;;:::i;12755:41::-;;;;;;;;;;-1:-1:-1;12755:41:0;;;;-1:-1:-1;;;12755:41:0;;;;;;11688:55;;;;;;;;;;-1:-1:-1;11688:55:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11808:48;;;;;;;;;;-1:-1:-1;11808:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12176:36;;;;;;;;;;;;;;;;18142:141;;;;;;;;;;-1:-1:-1;18142:141:0;;;;;:::i;:::-;;:::i;12086:39::-;;;;;;;;;;;;;;;;12041:38;;;;;;;;;;;;;;;;16257:133;;;;;;;;;;-1:-1:-1;16257:133:0;;;;;:::i;:::-;;:::i;11952:38::-;;;;;;;;;;;;;;;;14847:119;;;;;;;;;;-1:-1:-1;14847:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;14940:18:0;14913:7;14940:18;;;:9;:18;;;;;;;14847:119;12465:42;;;;;;;;;;;;;;;;12514:48;;;;;;;;;;;;;;;;12309:38;;;;;;;;;;;;;;;;6049:79;;;;;;;;;;-1:-1:-1;6087:7:0;6114:6;-1:-1:-1;;;;;6114:6:0;6049:79;;17804:209;;;;;;;;;;-1:-1:-1;17804:209:0;;;;;:::i;:::-;;:::i;6274:145::-;;;;;;;;;;;;;:::i;14553:87::-;;;;;;;;;;;;;:::i;12134:35::-;;;;;;;;;;;;;;;;12354:44;;;;;;;;;;;;;;;;15351:269;;;;;;;;;;-1:-1:-1;15351:269:0;;;;;:::i;:::-;;:::i;18833:125::-;;;;;;;;;;-1:-1:-1;18833:125:0;;;;;:::i;:::-;;:::i;19446:167::-;;;;;;;;;;-1:-1:-1;19446:167:0;;;;;:::i;:::-;;:::i;11865:36::-;;;;;;;;;;;;;;;;17400:392;;;;;;;;;;-1:-1:-1;17400:392:0;;;;;:::i;:::-;;:::i;18654:171::-;;;;;;;;;;-1:-1:-1;18654:171:0;;;;;:::i;:::-;;:::i;11750:51::-;;;;;;;;;;-1:-1:-1;11750:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12688:26;;;;;;;;;;-1:-1:-1;12688:26:0;;;;-1:-1:-1;;;;;12688:26:0;;;12219:37;;;;;;;;;;;;;;;;12803:45;;;;;;;;;;-1:-1:-1;12803:45:0;;;;-1:-1:-1;;;12803:45:0;;;;;;14974:143;;;;;;;;;;-1:-1:-1;14974:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;15082:18:0;;;15055:7;15082:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;14974:143;16142:107;;;;;;;;;;-1:-1:-1;16142:107:0;;;;;:::i;:::-;;:::i;12265:37::-;;;;;;;;;;;;;;;;18291:102;;;;;;;;;;-1:-1:-1;18291:102:0;;;;;:::i;:::-;;:::i;6427:244::-;;;;;;;;;;-1:-1:-1;6427:244:0;;;;;:::i;:::-;;:::i;19240:104::-;;;;;;;;;;;;;:::i;12855:35::-;;;;;;;;;;-1:-1:-1;12855:35:0;;;;-1:-1:-1;;;12855:35:0;;;;;;11627:54;;;;;;;;;;-1:-1:-1;11627:54:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;18533:113;6183:6;;-1:-1:-1;;;;;6183:6:0;441:10;6183:22;6175:67;;;;-1:-1:-1;;;6175:67:0;;;;;;;:::i;:::-;;;;;;;;;18607:9:::1;:31:::0;;-1:-1:-1;;;;;18607:31:0;;::::1;;;-1:-1:-1::0;;;;;;18607:31:0;;::::1;::::0;;;::::1;::::0;;18533:113::o;14462:83::-;14499:13;14532:5;14525:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14462:83;:::o;15628:161::-;15703:4;15720:39;441:10;15743:7;15752:6;15720:8;:39::i;:::-;-1:-1:-1;15777:4:0;15628:161;;;;;:::o;16970:418::-;6183:6;;-1:-1:-1;;;;;6183:6:0;441:10;6183:22;6175:67;;;;-1:-1:-1;;;6175:67:0;;;;;;;:::i;:::-;17099:18:::1;:36:::0;;;17146:18:::1;:36:::0;;;17193:20:::1;:40:::0;;;17267:68:::1;17216:17:::0;17267:42:::1;17120:15:::0;17167;17267:22:::1;:42::i;:::-;:46:::0;::::1;:68::i;:::-;17246:18;:89:::0;;;17377:2:::1;-1:-1:-1::0;17355:24:0::1;17346:34;;;::::0;::::1;;16970:418:::0;;;:::o;19621:313::-;19719:4;19736:36;19746:6;19754:9;19765:6;19736:9;:36::i;:::-;-1:-1:-1;19783:121:0;19792:6;441:10;19814:89;19852:6;19814:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19814:19:0;;;;;;:11;:19;;;;;;;;441:10;19814:33;;;;;;;;;;:37;:89::i;:::-;19783:8;:121::i;:::-;-1:-1:-1;19922:4:0;19621:313;;;;;;:::o;16553:409::-;6183:6;;-1:-1:-1;;;;;6183:6:0;441:10;6183:22;6175:67;;;;-1:-1:-1;;;6175:67:0;;;;;;;:::i;:::-;16681:17:::1;:35:::0;;;16727:17:::1;:35:::0;;;16773:19:::1;:39:::0;;;16845:65:::1;16795:17:::0;16845:40:::1;16701:15:::0;16747;16845:21:::1;:40::i;:65::-;16825:17;:85:::0;;;16951:2:::1;-1:-1:-1::0;16930:23:0::1;16921:33;;;::::0;::::1;18021:113:::0;6183:6;;-1:-1:-1;;;;;6183:6:0;441:10;6183:22;6175:67;;;;-1:-1:-1;;;6175:67:0;;;;;;;:::i;:::-;18099:16:::1;:27:::0;;;::::1;;-1:-1:-1::0;;;18099:27:0::1;-1:-1:-1::0;;;;18099:27:0;;::::1;::::0;;;::::1;::::0;;18021:113::o;18970:128::-;19077:11;-1:-1:-1;;;;;14940:18:0;19023:7;14940:18;;;:9;:18;;;;;;19050:12;;:40;;:16;:40::i;:::-;19043:47;;18970:128;:::o;16402:143::-;6183:6;;-1:-1:-1;;;;;6183:6:0;441:10;6183:22;6175:67;;;;-1:-1:-1;;;6175:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16496:30:0;;;::::1;;::::0;;;:21:::1;:30;::::0;;;;:41;;-1:-1:-1;;16496:41:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16402:143::o;15125:218::-;441:10;15213:4;15262:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;15262:34:0;;;;;;;;;;15213:4;;15230:83;;15253:7;;15262:50;;15301:10;15262:38;:50::i;18401:124::-;6183:6;;-1:-1:-1;;;;;6183:6:0;441:10;6183:22;6175:67;;;;-1:-1:-1;;;6175:67:0;;;;;;;:::i;:::-;18483:23:::1;:34:::0;18401:124::o;18142:141::-;6183:6;;-1:-1:-1;;;;;6183:6:0;441:10;6183:22;6175:67;;;;-1:-1:-1;;;6175:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18236:30:0;;;::::1;;::::0;;;:22:::1;:30;::::0;;;;:39;;-1:-1:-1;;18236:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18142:141::o;16257:133::-;6183:6;;-1:-1:-1;;;;;6183:6:0;441:10;6183:22;6175:67;;;;-1:-1:-1;;;6175:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16347:26:0;;;::::1;;::::0;;;:18:::1;:26;::::0;;;;:35;;-1:-1:-1;;16347:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16257:133::o;17804:209::-;6183:6;;-1:-1:-1;;;;;6183:6:0;441:10;6183:22;6175:67;;;;-1:-1:-1;;;6175:67:0;;;;;;;:::i;:::-;17920:3:::1;17907:12;;:16;;;;:::i;:::-;17892:11;:31;;17884:84;;;::::0;-1:-1:-1;;;17884:84:0;;5612:2:1;17884:84:0::1;::::0;::::1;5594:21:1::0;5651:2;5631:18;;;5624:30;5690:34;5670:18;;;5663:62;-1:-1:-1;;;5741:18:1;;;5734:38;5789:19;;17884:84:0::1;5410:404:1::0;17884:84:0::1;17979:12;:26:::0;17804:209::o;6274:145::-;6183:6;;-1:-1:-1;;;;;6183:6:0;441:10;6183:22;6175:67;;;;-1:-1:-1;;;6175:67:0;;;;;;;:::i;:::-;6378:1:::1;6362:6:::0;;6341:40:::1;::::0;-1:-1:-1;;;;;6362:6:0;;::::1;::::0;6341:40:::1;::::0;6378:1;;6341:40:::1;6409:1;6392:19:::0;;-1:-1:-1;;;;;;6392:19:0::1;::::0;;6274:145::o;14553:87::-;14592:13;14625:7;14618:14;;;;;:::i;15351:269::-;15444:4;15461:129;441:10;15484:7;15493:96;15532:15;15493:96;;;;;;;;;;;;;;;;;441:10;15493:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;15493:34:0;;;;;;;;;;;;:38;:96::i;18833:125::-;6183:6;;-1:-1:-1;;;;;6183:6:0;441:10;6183:22;6175:67;;;;-1:-1:-1;;;6175:67:0;;;;;;;:::i;:::-;18914:25:::1;:36:::0;;;::::1;;-1:-1:-1::0;;;18914:36:0::1;-1:-1:-1::0;;;;18914:36:0;;::::1;::::0;;;::::1;::::0;;18833:125::o;19446:167::-;19524:4;19541:42;441:10;19565:9;19576:6;19541:9;:42::i;17400:392::-;6183:6;;-1:-1:-1;;;;;6183:6:0;441:10;6183:22;6175:67;;;;-1:-1:-1;;;6175:67:0;;;;;;;:::i;:::-;17548:16:::1;:36:::0;;;17595:16:::1;:36:::0;;;17642:18:::1;:40:::0;;;17722:62:::1;17663:19:::0;17722:38:::1;17567:17:::0;17614;17722:20:::1;:38::i;:62::-;17695:24;:89:::0;-1:-1:-1;;;17400:392:0:o;18654:171::-;6183:6;;-1:-1:-1;;;;;6183:6:0;441:10;6183:22;6175:67;;;;-1:-1:-1;;;6175:67:0;;;;;;;:::i;:::-;18731:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;18731:32:0::1;-1:-1:-1::0;;;;18731:32:0;;::::1;;::::0;;18779:38:::1;::::0;::::1;::::0;::::1;::::0;18755:8;1440:14:1;1433:22;1415:41;;1403:2;1388:18;;1275:187;18779:38:0::1;;;;;;;;18654:171:::0;:::o;16142:107::-;6183:6;;-1:-1:-1;;;;;6183:6:0;441:10;6183:22;6175:67;;;;-1:-1:-1;;;6175:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16210:24:0::1;;::::0;;;:15:::1;:24;::::0;;;;:31;;-1:-1:-1;;16210:31:0::1;16237:4;16210:31;::::0;;16142:107::o;18291:102::-;6183:6;;-1:-1:-1;;;;;6183:6:0;441:10;6183:22;6175:67;;;;-1:-1:-1;;;6175:67:0;;;;;;;:::i;:::-;18363:10:::1;:22:::0;18291:102::o;6427:244::-;6183:6;;-1:-1:-1;;;;;6183:6:0;441:10;6183:22;6175:67;;;;-1:-1:-1;;;6175:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6516:22:0;::::1;6508:73;;;::::0;-1:-1:-1;;;6508:73:0;;6021:2:1;6508:73:0::1;::::0;::::1;6003:21:1::0;6060:2;6040:18;;;6033:30;6099:34;6079:18;;;6072:62;-1:-1:-1;;;6150:18:1;;;6143:36;6196:19;;6508:73:0::1;5819:402:1::0;6508:73:0::1;6618:6;::::0;;6597:38:::1;::::0;-1:-1:-1;;;;;6597:38:0;;::::1;::::0;6618:6;::::1;::::0;6597:38:::1;::::0;::::1;6646:6;:17:::0;;-1:-1:-1;;;;;;6646:17:0::1;-1:-1:-1::0;;;;;6646:17:0;;;::::1;::::0;;;::::1;::::0;;6427:244::o;19240:104::-;19303:9;;19282:54;;19303:9;;;-1:-1:-1;;;;;19303:9:0;19314:21;19282:20;:54::i;:::-;19240:104::o;15797:337::-;-1:-1:-1;;;;;15890:19:0;;15882:68;;;;-1:-1:-1;;;15882:68:0;;6428:2:1;15882:68:0;;;6410:21:1;6467:2;6447:18;;;6440:30;6506:34;6486:18;;;6479:62;-1:-1:-1;;;6557:18:1;;;6550:34;6601:19;;15882:68:0;6226:400:1;15882:68:0;-1:-1:-1;;;;;15969:21:0;;15961:68;;;;-1:-1:-1;;;15961:68:0;;6833:2:1;15961:68:0;;;6815:21:1;6872:2;6852:18;;;6845:30;6911:34;6891:18;;;6884:62;-1:-1:-1;;;6962:18:1;;;6955:32;7004:19;;15961:68:0;6631:398:1;15961:68:0;-1:-1:-1;;;;;16042:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;16094:32;;1847:25:1;;;16094:32:0;;1820:18:1;16094:32:0;;;;;;;15797:337;;;:::o;1421:187::-;1479:7;;1511:5;1515:1;1511;:5;:::i;:::-;1499:17;;1540:1;1535;:6;;1527:52;;;;-1:-1:-1;;;1527:52:0;;7366:2:1;1527:52:0;;;7348:21:1;7405:2;7385:18;;;7378:30;7444:34;7424:18;;;7417:62;-1:-1:-1;;;7495:18:1;;;7488:31;7536:19;;1527:52:0;7164:397:1;19942:1974:0;20029:4;-1:-1:-1;;;;;20056:20:0;;20048:70;;;;-1:-1:-1;;;20048:70:0;;7768:2:1;20048:70:0;;;7750:21:1;7807:2;7787:18;;;7780:30;7846:34;7826:18;;;7819:62;-1:-1:-1;;;7897:18:1;;;7890:35;7942:19;;20048:70:0;7566:401:1;20048:70:0;-1:-1:-1;;;;;20137:23:0;;20129:71;;;;-1:-1:-1;;;20129:71:0;;8174:2:1;20129:71:0;;;8156:21:1;8213:2;8193:18;;;8186:30;8252:34;8232:18;;;8225:62;-1:-1:-1;;;8303:18:1;;;8296:33;8346:19;;20129:71:0;7972:399:1;20129:71:0;20216:16;;-1:-1:-1;;;20216:16:0;;;;20213:1696;;;20266:41;20281:6;20289:9;20300:6;20266:14;:41::i;:::-;20259:48;;;;20213:1696;-1:-1:-1;;;;;20363:26:0;;;;;;:18;:26;;;;;;;;20362:27;:61;;;;-1:-1:-1;;;;;;20394:29:0;;;;;;:18;:29;;;;;;;;20393:30;20362:61;20359:176;;;20462:12;;20452:6;:22;;20444:75;;;;-1:-1:-1;;;20444:75:0;;8578:2:1;20444:75:0;;;8560:21:1;8617:2;8597:18;;;8590:30;8656:34;8636:18;;;8629:62;-1:-1:-1;;;8707:18:1;;;8700:38;8755:19;;20444:75:0;8376:404:1;20444:75:0;20612:4;20563:28;14940:18;;;:9;:18;;;;;;20688:23;;20664:47;;;;;;;20744:44;;-1:-1:-1;20772:16:0;;-1:-1:-1;;;20772:16:0;;;;20771:17;20744:44;:78;;;;-1:-1:-1;;;;;;20793:29:0;;;;;;:21;:29;;;;;;;;20792:30;20744:78;:108;;;;-1:-1:-1;;;;;;20826:26:0;;;;;;:15;:26;;;;;;;;20744:108;:133;;;;-1:-1:-1;20856:21:0;;-1:-1:-1;;;20856:21:0;;;;20744:133;:169;;;;;20890:23;;20881:6;:32;20744:169;20740:380;;;20951:25;;-1:-1:-1;;;20951:25:0;;;;20948:97;;;21022:23;;20999:46;;20948:97;21064:36;21079:20;21064:14;:36::i;:::-;21137:19;21158:17;21179:34;21187:6;21195:9;21206:6;21179:7;:34::i;:::-;21136:77;;;;21230:19;21265:6;21252:9;:19;:44;;21291:4;21252:44;;;21274:6;21252:44;21230:66;-1:-1:-1;21314:13:0;;21311:179;;-1:-1:-1;;;;;21373:22:0;;;;;;:9;:22;;;;;;:37;;21400:9;21373:26;:37::i;:::-;-1:-1:-1;;;;;21348:22:0;;;;;;;:9;:22;;;;;;;:62;;;;21434:40;;;;;;;;;;21464:9;1847:25:1;;1835:2;1820:18;;1701:177;21434:40:0;;;;;;;;21311:179;21526:53;;;;;;;;;;;-1:-1:-1;;;21526:53:0;;;;;;;;-1:-1:-1;;;;;21526:17:0;;-1:-1:-1;21526:17:0;;;:9;:17;;;;;;;;:53;;21548:6;;21526:21;:53::i;:::-;-1:-1:-1;;;;;21506:17:0;;;;;;:9;:17;;;;;:73;21599:16;;-1:-1:-1;;;21599:16:0;;;;:54;;;;-1:-1:-1;;;;;;21620:33:0;;;;;;:22;:33;;;;;;;;21619:34;21599:54;21596:136;;;21721:10;;21680:37;21705:11;21680:20;21690:9;-1:-1:-1;;;;;14940:18:0;14913:7;14940:18;;;:9;:18;;;;;;;14847:119;21680:37;:51;;21672:60;;;;;;-1:-1:-1;;;;;21772:20:0;;;;;;:9;:20;;;;;;:37;;21797:11;21772:24;:37::i;:::-;-1:-1:-1;;;;;21749:20:0;;;;;;;:9;:20;;;;;;;:60;;;;21831:40;;;;;;;;;;21859:11;1847:25:1;;1835:2;1820:18;;1701:177;21831:40:0;;;;;;;;21893:4;21886:11;;;;;;;;;1766:192;1852:7;1888:12;1880:6;;;;1872:29;;;;-1:-1:-1;;;1872:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1912:9:0;1924:5;1928:1;1924;:5;:::i;:::-;1912:17;1766:192;-1:-1:-1;;;;;1766:192:0:o;1616:142::-;1674:7;1701:49;1705:1;1708;1701:49;;;;;;;;;;;;;;;;;:3;:49::i;19106:126::-;19198:26;;-1:-1:-1;;;;;19198:18:0;;;:26;;;;;19217:6;;19198:26;;;;19217:6;19198:18;:26;;;;;;;;;;;;;;;;;;;21924:330;22054:53;;;;;;;;;;;-1:-1:-1;;;22054:53:0;;;;;;;;-1:-1:-1;;;;;22054:17:0;;22017:4;22054:17;;;:9;:17;;;;;;;:53;;22076:6;;22054:21;:53::i;:::-;-1:-1:-1;;;;;22034:17:0;;;;;;;:9;:17;;;;;;:73;;;;22141:20;;;;;;;:32;;22166:6;22141:24;:32::i;:::-;-1:-1:-1;;;;;22118:20:0;;;;;;;:9;:20;;;;;;;:55;;;;22189:35;;;;;;;;;;22217:6;1847:25:1;;1835:2;1820:18;;1701:177;22189:35:0;;;;;;;;-1:-1:-1;22242:4:0;21924:330;;;;;:::o;22262:232::-;13313:16;:23;;-1:-1:-1;;;;13313:23:0;-1:-1:-1;;;13313:23:0;;;22336:25:::1;22353:7:::0;22336:16:::1;:25::i;:::-;22454:9;::::0;22401:21:::1;::::0;22433:51:::1;::::0;22454:9:::1;::::0;::::1;-1:-1:-1::0;;;;;22454:9:0::1;22401:21:::0;22433:20:::1;:51::i;:::-;-1:-1:-1::0;;13359:16:0;:24;;-1:-1:-1;;;;13359:24:0;;;22262:232::o;23180:648::-;-1:-1:-1;;;;;23353:29:0;;23271:7;23353:29;;;:21;:29;;;;;;23271:7;;23330:6;;23353:29;;:54;;;;-1:-1:-1;23386:21:0;;-1:-1:-1;;;23386:21:0;;;;23353:54;23349:86;;;23417:6;;-1:-1:-1;23425:9:0;-1:-1:-1;23409:26:0;;23349:86;-1:-1:-1;;;;;23451:23:0;;;;;;:15;:23;;;;;;;;23448:229;;;23503:38;23537:3;23503:29;23514:17;;23503:6;:10;;:29;;;;:::i;:::-;:33;;:38::i;:::-;23491:50;;23448:229;;;-1:-1:-1;;;;;23571:26:0;;;;;;:15;:26;;;;;;;;23568:109;;;23626:39;23661:3;23626:30;23637:18;;23626:6;:10;;:30;;;;:::i;:39::-;23614:51;;23568:109;-1:-1:-1;;;;;23691:29:0;;;;;;:21;:29;;;;;;;;23687:80;;;23745:6;23753:1;23737:18;;;;;;;23687:80;23787:21;:6;23798:9;23787:10;:21::i;:::-;23779:41;-1:-1:-1;23810:9:0;-1:-1:-1;23180:648:0;;;;;;;:::o;22506:666::-;22656:16;;;22670:1;22656:16;;;;;;;;22632:21;;22656:16;;;;;;;;;;-1:-1:-1;22656:16:0;22632:40;;22701:4;22683;22688:1;22683:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22683:23:0;;;:7;;;;;;;;;;:23;;;;22727:15;;:22;;;-1:-1:-1;;;22727:22:0;;;;:15;;;;;:20;;:22;;;;;22683:7;;22727:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22717:4;22722:1;22717:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22717:32:0;;;:7;;;;;;;;;:32;22794:15;;22762:62;;22779:4;;22794:15;22812:11;22762:8;:62::i;:::-;22863:15;;:240;;-1:-1:-1;;;22863:240:0;;-1:-1:-1;;;;;22863:15:0;;;;:66;;:240;;22944:11;;22863:15;;23014:4;;23041;;23077:15;;22863:240;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23129:35;23146:11;23159:4;23129:35;;;;;;;:::i;:::-;;;;;;;;22561:611;22506:666;:::o;1966:256::-;2024:7;2048:1;2053;2048:6;2044:47;;-1:-1:-1;2078:1:0;2071:8;;2044:47;2103:9;2115:5;2119:1;2115;:5;:::i;:::-;2103:17;-1:-1:-1;2148:1:0;2139:5;2143:1;2103:17;2139:5;:::i;:::-;:10;2131:62;;;;-1:-1:-1;;;2131:62:0;;11203:2:1;2131:62:0;;;11185:21:1;11242:2;11222:18;;;11215:30;11281:34;11261:18;;;11254:62;-1:-1:-1;;;11332:18:1;;;11325:37;11379:19;;2131:62:0;11001:403:1;2230:138:0;2288:7;2315:45;2319:1;2322;2315:45;;;;;;;;;;;;;;;;;2462:7;2497:12;2490:5;2482:28;;;;-1:-1:-1;;;2482:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2521:9:0;2533:5;2537:1;2533;:5;:::i;14:131:1:-;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;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:548::-;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;;;686:3;871:1;866:2;857:6;846:9;842:22;838:31;831:42;941:2;934;930:7;925:2;917:6;913:15;909:29;898:9;894:45;890:54;882:62;;;;402:548;;;;:::o;955:315::-;1023:6;1031;1084:2;1072:9;1063:7;1059:23;1055:32;1052:52;;;1100:1;1097;1090:12;1052:52;1139:9;1126:23;1158:31;1183:5;1158:31;:::i;:::-;1208:5;1260:2;1245:18;;;;1232:32;;-1:-1:-1;;;955:315:1:o;1883:316::-;1960:6;1968;1976;2029:2;2017:9;2008:7;2004:23;2000:32;1997:52;;;2045:1;2042;2035:12;1997:52;-1:-1:-1;;2068:23:1;;;2138:2;2123:18;;2110:32;;-1:-1:-1;2189:2:1;2174:18;;;2161:32;;1883:316;-1:-1:-1;1883:316:1:o;2204:456::-;2281:6;2289;2297;2350:2;2338:9;2329:7;2325:23;2321:32;2318:52;;;2366:1;2363;2356:12;2318:52;2405:9;2392:23;2424:31;2449:5;2424:31;:::i;:::-;2474:5;-1:-1:-1;2531:2:1;2516:18;;2503:32;2544:33;2503:32;2544:33;:::i;:::-;2204:456;;2596:7;;-1:-1:-1;;;2650:2:1;2635:18;;;;2622:32;;2204:456::o;2665:160::-;2730:20;;2786:13;;2779:21;2769:32;;2759:60;;2815:1;2812;2805:12;2759:60;2665:160;;;:::o;2830:180::-;2886:6;2939:2;2927:9;2918:7;2914:23;2910:32;2907:52;;;2955:1;2952;2945:12;2907:52;2978:26;2994:9;2978:26;:::i;3223:315::-;3288:6;3296;3349:2;3337:9;3328:7;3324:23;3320:32;3317:52;;;3365:1;3362;3355:12;3317:52;3404:9;3391:23;3423:31;3448:5;3423:31;:::i;:::-;3473:5;-1:-1:-1;3497:35:1;3528:2;3513:18;;3497:35;:::i;:::-;3487:45;;3223:315;;;;;:::o;3732:180::-;3791:6;3844:2;3832:9;3823:7;3819:23;3815:32;3812:52;;;3860:1;3857;3850:12;3812:52;-1:-1:-1;3883:23:1;;3732:180;-1:-1:-1;3732:180:1:o;3917:388::-;3985:6;3993;4046:2;4034:9;4025:7;4021:23;4017:32;4014:52;;;4062:1;4059;4052:12;4014:52;4101:9;4088:23;4120:31;4145:5;4120:31;:::i;:::-;4170:5;-1:-1:-1;4227:2:1;4212:18;;4199:32;4240:33;4199:32;4240:33;:::i;:::-;4292:7;4282:17;;;3917:388;;;;;:::o;4310:356::-;4512:2;4494:21;;;4531:18;;;4524:30;4590:34;4585:2;4570:18;;4563:62;4657:2;4642:18;;4310:356::o;4671:380::-;4750:1;4746:12;;;;4793;;;4814:61;;4868:4;4860:6;4856:17;4846:27;;4814:61;4921:2;4913:6;4910:14;4890:18;4887:38;4884:161;;4967:10;4962:3;4958:20;4955:1;4948:31;5002:4;4999:1;4992:15;5030:4;5027:1;5020:15;4884:161;;4671:380;;;:::o;5056:127::-;5117:10;5112:3;5108:20;5105:1;5098:31;5148:4;5145:1;5138:15;5172:4;5169:1;5162:15;5188:217;5228:1;5254;5244:132;;5298:10;5293:3;5289:20;5286:1;5279:31;5333:4;5330:1;5323:15;5361:4;5358:1;5351:15;5244:132;-1:-1:-1;5390:9:1;;5188:217::o;7034:125::-;7099:9;;;7120:10;;;7117:36;;;7133:18;;:::i;8785:128::-;8852:9;;;8873:11;;;8870:37;;;8887:18;;:::i;9050:127::-;9111:10;9106:3;9102:20;9099:1;9092:31;9142:4;9139:1;9132:15;9166:4;9163:1;9156:15;9182:251;9252:6;9305:2;9293:9;9284:7;9280:23;9276:32;9273:52;;;9321:1;9318;9311:12;9273:52;9353:9;9347:16;9372:31;9397:5;9372:31;:::i;9438:461::-;9491:3;9529:5;9523:12;9556:6;9551:3;9544:19;9582:4;9611:2;9606:3;9602:12;9595:19;;9648:2;9641:5;9637:14;9669:1;9679:195;9693:6;9690:1;9687:13;9679:195;;;9758:13;;-1:-1:-1;;;;;9754:39:1;9742:52;;9814:12;;;;9849:15;;;;9790:1;9708:9;9679:195;;;-1:-1:-1;9890:3:1;;9438:461;-1:-1:-1;;;;;9438:461:1:o;9904:582::-;10203:6;10192:9;10185:25;10246:6;10241:2;10230:9;10226:18;10219:34;10289:3;10284:2;10273:9;10269:18;10262:31;10166:4;10310:57;10362:3;10351:9;10347:19;10339:6;10310:57;:::i;:::-;-1:-1:-1;;;;;10403:32:1;;;;10398:2;10383:18;;10376:60;-1:-1:-1;10467:3:1;10452:19;10445:35;10302:65;9904:582;-1:-1:-1;;;9904:582:1:o;10491:332::-;10698:6;10687:9;10680:25;10741:2;10736;10725:9;10721:18;10714:30;10661:4;10761:56;10813:2;10802:9;10798:18;10790:6;10761:56;:::i;:::-;10753:64;10491:332;-1:-1:-1;;;;10491:332:1:o;10828:168::-;10901:9;;;10932;;10949:15;;;10943:22;;10929:37;10919:71;;10970:18;;:::i

Swarm Source

ipfs://4f1bf2d1dd21375b80bd3fdf413aa54cf912bc69dd0a0ad9443c7a26f5be01ba
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.