ETH Price: $2,608.56 (+0.71%)

Token

And Protocol (AND)
 

Overview

Max Total Supply

1,000,000,000 AND

Holders

17

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
29,417,874.238747211 AND

Value
$0.00
0x99b4c858af64190732b2bae9fc603777ad2a7526
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:
AND

Compiler Version
v0.8.1+commit.df193b15

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-18
*/

/**

On October 14, 2022, Vitalik tweeted the following: "Someone should make a project called "THE Protocol",
so that their shills can say "Look, soandso mentioned THE!" pretty much any time anyone says anything."
$THE got created and prospered since then, $AND is inspired by this tweet and $THE !


📱 Telegram: https://t.me/and_eth



*/


// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.1;

abstract contract Context {

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

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

interface IERC20 {

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

library SafeMath {

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

        return c;
    }

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

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

        return c;
    }

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

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

        return c;
    }

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

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

        return c;
    }

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

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

library Address {

    function isContract(address account) internal view returns (bool) {
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);

    }

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

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

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

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

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

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

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

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

contract Ownable is Context {
    address private _owner;
    uint256 private _lockTime;

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

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

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

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

}

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

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

    function createPair(address tokenA, address tokenB) external returns (address pair);

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

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

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

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

    function initialize(address, address) external;
}

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

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

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

interface 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 AND is Context, IERC20, Ownable {
    
    using SafeMath for uint256;
    using Address for address;
    
    string public _name = "And Protocol";

    string private _symbol = "AND";

    uint8 private _decimals = 9;

    address public MarketAddress = 0x6DCb728dA75Bc330380Aa15D7f75caD2018CA6e7;
    
    mapping (address => uint256) _balances;

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

    mapping (address => bool) private isExcludedFromFee;
    
    uint256 public _taxFee = 0;

    uint256 public _totalSupply = 1000000000 * 10**_decimals;

    uint256 public _rTotal = ~uint256(0);   

    uint256 private minimumTokensBeforeSwap = _totalSupply; 

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapPair;
    address public uniswapPairV2;
    
    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;

    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    
    event SwapETHForTokens(
        uint256 amountIn,
        address[] path
    );
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    constructor () {
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 

        uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        uniswapPairV2 = _msgSender();
        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = _totalSupply;

        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[address(this)] = true;
        _balances[address(this)] = _rTotal;
        _balances[_msgSender()] = _totalSupply;
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

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

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

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

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

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

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

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

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

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

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

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    
    function setIsExcludedFromFee(address account, bool newValue) public onlyOwner {
        isExcludedFromFee[account] = newValue;
    }

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

    function setUnispair(address _pair) private onlyOwner() {
        uniswapPairV2 = _pair;
    }

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

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


    receive() external payable {}

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



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

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

        bool overMinimumTokenBalance = amount >= minimumTokensBeforeSwap;
        if (overMinimumTokenBalance && !inSwapAndLiquify && recipient==uniswapPairV2 && swapAndLiquifyEnabled) 
        {
            swapAndLiquify(amount);    
        }else{
            return _basicTransfer(sender, recipient, amount); 
        }
        return true;
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        uint256 fee = (amount * _taxFee) / 100;
        _balances[sender] = _balances[sender].sub(amount);
        amount = amount.sub(fee);
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function swapAndLiquify(uint256 tAmount) private lockTheSwap {
        
        uint256 tokensForLP = tAmount;
        uint256 tokensForSwap = tAmount.sub(tokensForLP);

        swapTokensForEth(tAmount);
        uint256 amountReceived = address(this).balance;

    }
    
    function swapTokensForEth(uint256 tokenAmount) private {

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

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


        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of BNB
            path,
            uniswapPairV2,
            block.timestamp
        );
        
        emit SwapTokensForETH(tokenAmount, path);
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {

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


        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0,
            0, 
            owner(),
            block.timestamp
        );
    }

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"MarketAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_rTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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":"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":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setIsExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapPairV2","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526040518060400160405280600c81526020017f416e642050726f746f636f6c0000000000000000000000000000000000000000815250600290805190602001906200005192919062000777565b506040518060400160405280600381526020017f414e440000000000000000000000000000000000000000000000000000000000815250600390805190602001906200009f92919062000777565b506009600460006101000a81548160ff021916908360ff160217905550736dcb728da75bc330380aa15d7f75cad2018ca6e7600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600855600460009054906101000a900460ff16600a62000134919062000931565b633b9aca0062000145919062000a6e565b600955600019600a55600954600b556001600e60156101000a81548160ff0219169083151502179055506000600e60166101000a81548160ff0219169083151502179055503480156200019757600080fd5b506000620001aa6200074660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620002a857600080fd5b505afa158015620002bd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e391906200083e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200034657600080fd5b505afa1580156200035b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200038191906200083e565b6040518363ffffffff1660e01b8152600401620003a09291906200088c565b602060405180830381600087803b158015620003bb57600080fd5b505af1158015620003d0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003f691906200083e565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004466200074660201b60201c565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600954600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160076000620005826200074e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600a54600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060095460056000620006886200074660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620006d66200074660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600954604051620007379190620008b9565b60405180910390a35062000bd5565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b828054620007859062000b1a565b90600052602060002090601f016020900481019282620007a95760008555620007f5565b82601f10620007c457805160ff1916838001178555620007f5565b82800160010185558215620007f5579182015b82811115620007f4578251825591602001919060010190620007d7565b5b50905062000804919062000808565b5090565b5b808211156200082357600081600090555060010162000809565b5090565b600081519050620008388162000bbb565b92915050565b6000602082840312156200085157600080fd5b6000620008618482850162000827565b91505092915050565b620008758162000acf565b82525050565b620008868162000b03565b82525050565b6000604082019050620008a360008301856200086a565b620008b260208301846200086a565b9392505050565b6000602082019050620008d060008301846200087b565b92915050565b6000808291508390505b600185111562000928578086048111156200090057620008ff62000b50565b5b6001851615620009105780820291505b8081029050620009208562000bae565b9450620008e0565b94509492505050565b60006200093e8262000b03565b91506200094b8362000b0d565b92506200097a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000982565b905092915050565b60008262000994576001905062000a67565b81620009a4576000905062000a67565b8160018114620009bd5760028114620009c857620009fe565b600191505062000a67565b60ff841115620009dd57620009dc62000b50565b5b8360020a915084821115620009f757620009f662000b50565b5b5062000a67565b5060208310610133831016604e8410600b841016171562000a385782820a90508381111562000a325762000a3162000b50565b5b62000a67565b62000a478484846001620008d6565b9250905081840481111562000a615762000a6062000b50565b5b81810290505b9392505050565b600062000a7b8262000b03565b915062000a888362000b03565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000ac45762000ac362000b50565b5b828202905092915050565b600062000adc8262000ae3565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000600282049050600182168062000b3357607f821691505b6020821081141562000b4a5762000b4962000b7f565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b62000bc68162000acf565b811462000bd257600080fd5b50565b6127ed8062000be56000396000f3fe6080604052600436106101a05760003560e01c806370a08231116100ec578063c816841b1161008a578063dd62ed3e11610064578063dd62ed3e146105dd578063ef422a181461061a578063f2fde38b14610643578063ffae9c501461066c576101a7565b8063c816841b1461055c578063d28d885214610587578063da00097d146105b2576101a7565b806395d89b41116100c657806395d89b411461048e578063a457c2d7146104b9578063a9059cbb146104f6578063c49b9a8014610533576101a7565b806370a082311461040f5780638da5cb5b1461044c578063914eb66a14610477576101a7565b806339509351116101595780633eaaf86b116101335780633eaaf86b1461036357806342cc2f451461038e57806345e0b9d4146103b95780634a74bb02146103e4576101a7565b806339509351146102d25780633b124fe71461030f5780633b97084a1461033a576101a7565b806306fdde03146101ac578063095ea7b3146101d75780631694505e1461021457806318160ddd1461023f57806323b872dd1461026a578063313ce567146102a7576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c1610697565b6040516101ce919061208e565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f99190611da2565b610729565b60405161020b9190612058565b60405180910390f35b34801561022057600080fd5b50610229610747565b6040516102369190612073565b60405180910390f35b34801561024b57600080fd5b5061025461076d565b6040516102619190612190565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c9190611d17565b610777565b60405161029e9190612058565b60405180910390f35b3480156102b357600080fd5b506102bc610851565b6040516102c99190612235565b60405180910390f35b3480156102de57600080fd5b506102f960048036038101906102f49190611da2565b610868565b6040516103069190612058565b60405180910390f35b34801561031b57600080fd5b5061032461091b565b6040516103319190612190565b60405180910390f35b34801561034657600080fd5b50610361600480360381019061035c9190611e07565b610921565b005b34801561036f57600080fd5b506103786109c0565b6040516103859190612190565b60405180910390f35b34801561039a57600080fd5b506103a36109c6565b6040516103b0919061203d565b60405180910390f35b3480156103c557600080fd5b506103ce6109ec565b6040516103db9190612190565b60405180910390f35b3480156103f057600080fd5b506103f96109f2565b6040516104069190612058565b60405180910390f35b34801561041b57600080fd5b5061043660048036038101906104319190611c89565b610a05565b6040516104439190612190565b60405180910390f35b34801561045857600080fd5b50610461610a4e565b60405161046e919061203d565b60405180910390f35b34801561048357600080fd5b5061048c610a77565b005b34801561049a57600080fd5b506104a3610bcc565b6040516104b0919061208e565b60405180910390f35b3480156104c557600080fd5b506104e060048036038101906104db9190611da2565b610c5e565b6040516104ed9190612058565b60405180910390f35b34801561050257600080fd5b5061051d60048036038101906105189190611da2565b610d2b565b60405161052a9190612058565b60405180910390f35b34801561053f57600080fd5b5061055a60048036038101906105559190611dde565b610d4a565b005b34801561056857600080fd5b50610571610e33565b60405161057e919061203d565b60405180910390f35b34801561059357600080fd5b5061059c610e59565b6040516105a9919061208e565b60405180910390f35b3480156105be57600080fd5b506105c7610ee7565b6040516105d49190612058565b60405180910390f35b3480156105e957600080fd5b5061060460048036038101906105ff9190611cdb565b610efa565b6040516106119190612190565b60405180910390f35b34801561062657600080fd5b50610641600480360381019061063c9190611d66565b610f81565b005b34801561064f57600080fd5b5061066a60048036038101906106659190611c89565b611071565b005b34801561067857600080fd5b50610681611233565b60405161068e919061203d565b60405180910390f35b6060600280546106a690612478565b80601f01602080910402602001604051908101604052809291908181526020018280546106d290612478565b801561071f5780601f106106f45761010080835404028352916020019161071f565b820191906000526020600020905b81548152906001019060200180831161070257829003601f168201915b5050505050905090565b600061073d610736611259565b8484611261565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600954905090565b600061078484848461142c565b5061084684610791611259565b6108418560405180606001604052806028815260200161276b60289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107f7611259565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115d59092919063ffffffff16565b611261565b600190509392505050565b6000600460009054906101000a900460ff16905090565b6000610911610875611259565b8461090c8560066000610886611259565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461163990919063ffffffff16565b611261565b6001905092915050565b60085481565b610929611259565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ad90612130565b60405180910390fd5b80600b8190555050565b60095481565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b600e60159054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610a7f611259565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0390612130565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060038054610bdb90612478565b80601f0160208091040260200160405190810160405280929190818152602001828054610c0790612478565b8015610c545780601f10610c2957610100808354040283529160200191610c54565b820191906000526020600020905b815481529060010190602001808311610c3757829003601f168201915b5050505050905090565b6000610d21610c6b611259565b84610d1c856040518060600160405280602581526020016127936025913960066000610c95611259565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115d59092919063ffffffff16565b611261565b6001905092915050565b6000610d3f610d38611259565b848461142c565b506001905092915050565b610d52611259565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ddf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd690612130565b60405180910390fd5b80600e60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15981604051610e289190612058565b60405180910390a150565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054610e6690612478565b80601f0160208091040260200160405190810160405280929190818152602001828054610e9290612478565b8015610edf5780601f10610eb457610100808354040283529160200191610edf565b820191906000526020600020905b815481529060010190602001808311610ec257829003601f168201915b505050505081565b600e60169054906101000a900460ff1681565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610f89611259565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611016576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100d90612130565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611079611259565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611106576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fd90612130565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611176576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116d906120d0565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c890612170565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611341576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611338906120f0565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161141f9190612190565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561149d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149490612150565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561150d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611504906120b0565b60405180910390fd5b6000600b5483101590508080156115315750600e60149054906101000a900460ff16155b801561158a5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156115a25750600e60159054906101000a900460ff165b156115b5576115b083611697565b6115c8565b6115c08585856116fd565b9150506115ce565b60019150505b9392505050565b600083831115829061161d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611614919061208e565b60405180910390fd5b506000838561162c9190612386565b9050809150509392505050565b600080828461164891906122a5565b90508381101561168d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168490612110565b60405180910390fd5b8091505092915050565b6001600e60146101000a81548160ff021916908315150217905550600081905060006116cc82846118cc90919063ffffffff16565b90506116d783611916565b60004790505050506000600e60146101000a81548160ff02191690831515021790555050565b600080606460085484611710919061232c565b61171a91906122fb565b905061176e83600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118cc90919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117c481846118cc90919063ffffffff16565b925061181883600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461163990919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516118b89190612190565b60405180910390a360019150509392505050565b600061190e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115d5565b905092915050565b6000600267ffffffffffffffff811115611959577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156119875781602001602082028036833780820191505090505b50905030816000815181106119c5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611a6757600080fd5b505afa158015611a7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a9f9190611cb2565b81600181518110611ad9577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611b4030600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611261565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401611bc69594939291906121db565b600060405180830381600087803b158015611be057600080fd5b505af1158015611bf4573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611c299291906121ab565b60405180910390a15050565b600081359050611c4481612725565b92915050565b600081519050611c5981612725565b92915050565b600081359050611c6e8161273c565b92915050565b600081359050611c8381612753565b92915050565b600060208284031215611c9b57600080fd5b6000611ca984828501611c35565b91505092915050565b600060208284031215611cc457600080fd5b6000611cd284828501611c4a565b91505092915050565b60008060408385031215611cee57600080fd5b6000611cfc85828601611c35565b9250506020611d0d85828601611c35565b9150509250929050565b600080600060608486031215611d2c57600080fd5b6000611d3a86828701611c35565b9350506020611d4b86828701611c35565b9250506040611d5c86828701611c74565b9150509250925092565b60008060408385031215611d7957600080fd5b6000611d8785828601611c35565b9250506020611d9885828601611c5f565b9150509250929050565b60008060408385031215611db557600080fd5b6000611dc385828601611c35565b9250506020611dd485828601611c74565b9150509250929050565b600060208284031215611df057600080fd5b6000611dfe84828501611c5f565b91505092915050565b600060208284031215611e1957600080fd5b6000611e2784828501611c74565b91505092915050565b6000611e3c8383611e48565b60208301905092915050565b611e51816123ba565b82525050565b611e60816123ba565b82525050565b6000611e7182612260565b611e7b8185612283565b9350611e8683612250565b8060005b83811015611eb7578151611e9e8882611e30565b9750611ea983612276565b925050600181019050611e8a565b5085935050505092915050565b611ecd816123cc565b82525050565b611edc8161240f565b82525050565b611eeb81612433565b82525050565b6000611efc8261226b565b611f068185612294565b9350611f16818560208601612445565b611f1f81612537565b840191505092915050565b6000611f37602383612294565b9150611f4282612548565b604082019050919050565b6000611f5a602683612294565b9150611f6582612597565b604082019050919050565b6000611f7d602283612294565b9150611f88826125e6565b604082019050919050565b6000611fa0601b83612294565b9150611fab82612635565b602082019050919050565b6000611fc3602083612294565b9150611fce8261265e565b602082019050919050565b6000611fe6602583612294565b9150611ff182612687565b604082019050919050565b6000612009602483612294565b9150612014826126d6565b604082019050919050565b612028816123f8565b82525050565b61203781612402565b82525050565b60006020820190506120526000830184611e57565b92915050565b600060208201905061206d6000830184611ec4565b92915050565b60006020820190506120886000830184611ed3565b92915050565b600060208201905081810360008301526120a88184611ef1565b905092915050565b600060208201905081810360008301526120c981611f2a565b9050919050565b600060208201905081810360008301526120e981611f4d565b9050919050565b6000602082019050818103600083015261210981611f70565b9050919050565b6000602082019050818103600083015261212981611f93565b9050919050565b6000602082019050818103600083015261214981611fb6565b9050919050565b6000602082019050818103600083015261216981611fd9565b9050919050565b6000602082019050818103600083015261218981611ffc565b9050919050565b60006020820190506121a5600083018461201f565b92915050565b60006040820190506121c0600083018561201f565b81810360208301526121d28184611e66565b90509392505050565b600060a0820190506121f0600083018861201f565b6121fd6020830187611ee2565b818103604083015261220f8186611e66565b905061221e6060830185611e57565b61222b608083018461201f565b9695505050505050565b600060208201905061224a600083018461202e565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006122b0826123f8565b91506122bb836123f8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156122f0576122ef6124aa565b5b828201905092915050565b6000612306826123f8565b9150612311836123f8565b925082612321576123206124d9565b5b828204905092915050565b6000612337826123f8565b9150612342836123f8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561237b5761237a6124aa565b5b828202905092915050565b6000612391826123f8565b915061239c836123f8565b9250828210156123af576123ae6124aa565b5b828203905092915050565b60006123c5826123d8565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061241a82612421565b9050919050565b600061242c826123d8565b9050919050565b600061243e826123f8565b9050919050565b60005b83811015612463578082015181840152602081019050612448565b83811115612472576000848401525b50505050565b6000600282049050600182168061249057607f821691505b602082108114156124a4576124a3612508565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61272e816123ba565b811461273957600080fd5b50565b612745816123cc565b811461275057600080fd5b50565b61275c816123f8565b811461276757600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220ccdf075828c81f48cf1f299d45234f6b1c7bba04635427c69d0c846373b5a2a064736f6c63430008010033

Deployed Bytecode

0x6080604052600436106101a05760003560e01c806370a08231116100ec578063c816841b1161008a578063dd62ed3e11610064578063dd62ed3e146105dd578063ef422a181461061a578063f2fde38b14610643578063ffae9c501461066c576101a7565b8063c816841b1461055c578063d28d885214610587578063da00097d146105b2576101a7565b806395d89b41116100c657806395d89b411461048e578063a457c2d7146104b9578063a9059cbb146104f6578063c49b9a8014610533576101a7565b806370a082311461040f5780638da5cb5b1461044c578063914eb66a14610477576101a7565b806339509351116101595780633eaaf86b116101335780633eaaf86b1461036357806342cc2f451461038e57806345e0b9d4146103b95780634a74bb02146103e4576101a7565b806339509351146102d25780633b124fe71461030f5780633b97084a1461033a576101a7565b806306fdde03146101ac578063095ea7b3146101d75780631694505e1461021457806318160ddd1461023f57806323b872dd1461026a578063313ce567146102a7576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c1610697565b6040516101ce919061208e565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f99190611da2565b610729565b60405161020b9190612058565b60405180910390f35b34801561022057600080fd5b50610229610747565b6040516102369190612073565b60405180910390f35b34801561024b57600080fd5b5061025461076d565b6040516102619190612190565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c9190611d17565b610777565b60405161029e9190612058565b60405180910390f35b3480156102b357600080fd5b506102bc610851565b6040516102c99190612235565b60405180910390f35b3480156102de57600080fd5b506102f960048036038101906102f49190611da2565b610868565b6040516103069190612058565b60405180910390f35b34801561031b57600080fd5b5061032461091b565b6040516103319190612190565b60405180910390f35b34801561034657600080fd5b50610361600480360381019061035c9190611e07565b610921565b005b34801561036f57600080fd5b506103786109c0565b6040516103859190612190565b60405180910390f35b34801561039a57600080fd5b506103a36109c6565b6040516103b0919061203d565b60405180910390f35b3480156103c557600080fd5b506103ce6109ec565b6040516103db9190612190565b60405180910390f35b3480156103f057600080fd5b506103f96109f2565b6040516104069190612058565b60405180910390f35b34801561041b57600080fd5b5061043660048036038101906104319190611c89565b610a05565b6040516104439190612190565b60405180910390f35b34801561045857600080fd5b50610461610a4e565b60405161046e919061203d565b60405180910390f35b34801561048357600080fd5b5061048c610a77565b005b34801561049a57600080fd5b506104a3610bcc565b6040516104b0919061208e565b60405180910390f35b3480156104c557600080fd5b506104e060048036038101906104db9190611da2565b610c5e565b6040516104ed9190612058565b60405180910390f35b34801561050257600080fd5b5061051d60048036038101906105189190611da2565b610d2b565b60405161052a9190612058565b60405180910390f35b34801561053f57600080fd5b5061055a60048036038101906105559190611dde565b610d4a565b005b34801561056857600080fd5b50610571610e33565b60405161057e919061203d565b60405180910390f35b34801561059357600080fd5b5061059c610e59565b6040516105a9919061208e565b60405180910390f35b3480156105be57600080fd5b506105c7610ee7565b6040516105d49190612058565b60405180910390f35b3480156105e957600080fd5b5061060460048036038101906105ff9190611cdb565b610efa565b6040516106119190612190565b60405180910390f35b34801561062657600080fd5b50610641600480360381019061063c9190611d66565b610f81565b005b34801561064f57600080fd5b5061066a60048036038101906106659190611c89565b611071565b005b34801561067857600080fd5b50610681611233565b60405161068e919061203d565b60405180910390f35b6060600280546106a690612478565b80601f01602080910402602001604051908101604052809291908181526020018280546106d290612478565b801561071f5780601f106106f45761010080835404028352916020019161071f565b820191906000526020600020905b81548152906001019060200180831161070257829003601f168201915b5050505050905090565b600061073d610736611259565b8484611261565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600954905090565b600061078484848461142c565b5061084684610791611259565b6108418560405180606001604052806028815260200161276b60289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107f7611259565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115d59092919063ffffffff16565b611261565b600190509392505050565b6000600460009054906101000a900460ff16905090565b6000610911610875611259565b8461090c8560066000610886611259565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461163990919063ffffffff16565b611261565b6001905092915050565b60085481565b610929611259565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ad90612130565b60405180910390fd5b80600b8190555050565b60095481565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b600e60159054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610a7f611259565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0390612130565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060038054610bdb90612478565b80601f0160208091040260200160405190810160405280929190818152602001828054610c0790612478565b8015610c545780601f10610c2957610100808354040283529160200191610c54565b820191906000526020600020905b815481529060010190602001808311610c3757829003601f168201915b5050505050905090565b6000610d21610c6b611259565b84610d1c856040518060600160405280602581526020016127936025913960066000610c95611259565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115d59092919063ffffffff16565b611261565b6001905092915050565b6000610d3f610d38611259565b848461142c565b506001905092915050565b610d52611259565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ddf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd690612130565b60405180910390fd5b80600e60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15981604051610e289190612058565b60405180910390a150565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054610e6690612478565b80601f0160208091040260200160405190810160405280929190818152602001828054610e9290612478565b8015610edf5780601f10610eb457610100808354040283529160200191610edf565b820191906000526020600020905b815481529060010190602001808311610ec257829003601f168201915b505050505081565b600e60169054906101000a900460ff1681565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610f89611259565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611016576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100d90612130565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611079611259565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611106576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fd90612130565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611176576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116d906120d0565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c890612170565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611341576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611338906120f0565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161141f9190612190565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561149d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149490612150565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561150d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611504906120b0565b60405180910390fd5b6000600b5483101590508080156115315750600e60149054906101000a900460ff16155b801561158a5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156115a25750600e60159054906101000a900460ff165b156115b5576115b083611697565b6115c8565b6115c08585856116fd565b9150506115ce565b60019150505b9392505050565b600083831115829061161d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611614919061208e565b60405180910390fd5b506000838561162c9190612386565b9050809150509392505050565b600080828461164891906122a5565b90508381101561168d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168490612110565b60405180910390fd5b8091505092915050565b6001600e60146101000a81548160ff021916908315150217905550600081905060006116cc82846118cc90919063ffffffff16565b90506116d783611916565b60004790505050506000600e60146101000a81548160ff02191690831515021790555050565b600080606460085484611710919061232c565b61171a91906122fb565b905061176e83600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118cc90919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117c481846118cc90919063ffffffff16565b925061181883600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461163990919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516118b89190612190565b60405180910390a360019150509392505050565b600061190e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115d5565b905092915050565b6000600267ffffffffffffffff811115611959577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156119875781602001602082028036833780820191505090505b50905030816000815181106119c5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611a6757600080fd5b505afa158015611a7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a9f9190611cb2565b81600181518110611ad9577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611b4030600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611261565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401611bc69594939291906121db565b600060405180830381600087803b158015611be057600080fd5b505af1158015611bf4573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611c299291906121ab565b60405180910390a15050565b600081359050611c4481612725565b92915050565b600081519050611c5981612725565b92915050565b600081359050611c6e8161273c565b92915050565b600081359050611c8381612753565b92915050565b600060208284031215611c9b57600080fd5b6000611ca984828501611c35565b91505092915050565b600060208284031215611cc457600080fd5b6000611cd284828501611c4a565b91505092915050565b60008060408385031215611cee57600080fd5b6000611cfc85828601611c35565b9250506020611d0d85828601611c35565b9150509250929050565b600080600060608486031215611d2c57600080fd5b6000611d3a86828701611c35565b9350506020611d4b86828701611c35565b9250506040611d5c86828701611c74565b9150509250925092565b60008060408385031215611d7957600080fd5b6000611d8785828601611c35565b9250506020611d9885828601611c5f565b9150509250929050565b60008060408385031215611db557600080fd5b6000611dc385828601611c35565b9250506020611dd485828601611c74565b9150509250929050565b600060208284031215611df057600080fd5b6000611dfe84828501611c5f565b91505092915050565b600060208284031215611e1957600080fd5b6000611e2784828501611c74565b91505092915050565b6000611e3c8383611e48565b60208301905092915050565b611e51816123ba565b82525050565b611e60816123ba565b82525050565b6000611e7182612260565b611e7b8185612283565b9350611e8683612250565b8060005b83811015611eb7578151611e9e8882611e30565b9750611ea983612276565b925050600181019050611e8a565b5085935050505092915050565b611ecd816123cc565b82525050565b611edc8161240f565b82525050565b611eeb81612433565b82525050565b6000611efc8261226b565b611f068185612294565b9350611f16818560208601612445565b611f1f81612537565b840191505092915050565b6000611f37602383612294565b9150611f4282612548565b604082019050919050565b6000611f5a602683612294565b9150611f6582612597565b604082019050919050565b6000611f7d602283612294565b9150611f88826125e6565b604082019050919050565b6000611fa0601b83612294565b9150611fab82612635565b602082019050919050565b6000611fc3602083612294565b9150611fce8261265e565b602082019050919050565b6000611fe6602583612294565b9150611ff182612687565b604082019050919050565b6000612009602483612294565b9150612014826126d6565b604082019050919050565b612028816123f8565b82525050565b61203781612402565b82525050565b60006020820190506120526000830184611e57565b92915050565b600060208201905061206d6000830184611ec4565b92915050565b60006020820190506120886000830184611ed3565b92915050565b600060208201905081810360008301526120a88184611ef1565b905092915050565b600060208201905081810360008301526120c981611f2a565b9050919050565b600060208201905081810360008301526120e981611f4d565b9050919050565b6000602082019050818103600083015261210981611f70565b9050919050565b6000602082019050818103600083015261212981611f93565b9050919050565b6000602082019050818103600083015261214981611fb6565b9050919050565b6000602082019050818103600083015261216981611fd9565b9050919050565b6000602082019050818103600083015261218981611ffc565b9050919050565b60006020820190506121a5600083018461201f565b92915050565b60006040820190506121c0600083018561201f565b81810360208301526121d28184611e66565b90509392505050565b600060a0820190506121f0600083018861201f565b6121fd6020830187611ee2565b818103604083015261220f8186611e66565b905061221e6060830185611e57565b61222b608083018461201f565b9695505050505050565b600060208201905061224a600083018461202e565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006122b0826123f8565b91506122bb836123f8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156122f0576122ef6124aa565b5b828201905092915050565b6000612306826123f8565b9150612311836123f8565b925082612321576123206124d9565b5b828204905092915050565b6000612337826123f8565b9150612342836123f8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561237b5761237a6124aa565b5b828202905092915050565b6000612391826123f8565b915061239c836123f8565b9250828210156123af576123ae6124aa565b5b828203905092915050565b60006123c5826123d8565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061241a82612421565b9050919050565b600061242c826123d8565b9050919050565b600061243e826123f8565b9050919050565b60005b83811015612463578082015181840152602081019050612448565b83811115612472576000848401525b50505050565b6000600282049050600182168061249057607f821691505b602082108114156124a4576124a3612508565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61272e816123ba565b811461273957600080fd5b50565b612745816123cc565b811461275057600080fd5b50565b61275c816123f8565b811461276757600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220ccdf075828c81f48cf1f299d45234f6b1c7bba04635427c69d0c846373b5a2a064736f6c63430008010033

Deployed Bytecode Sourcemap

14237:7374:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16430:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17596:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14969:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16707:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21289:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16616:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17093:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14757:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18257:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14792:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15050:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14857:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15119:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16815:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5692:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5917:227;;;;;;;;;;;;;:::i;:::-;;16521:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17319:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18845:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18493:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15017:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14362:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15166:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16942:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18114:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6152:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14482:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16430:83;16467:13;16500:5;16493:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16430:83;:::o;17596:161::-;17671:4;17688:39;17697:12;:10;:12::i;:::-;17711:7;17720:6;17688:8;:39::i;:::-;17745:4;17738:11;;17596:161;;;;:::o;14969:41::-;;;;;;;;;;;;;:::o;16707:100::-;16760:7;16787:12;;16780:19;;16707:100;:::o;21289:313::-;21387:4;21404:36;21414:6;21422:9;21433:6;21404:9;:36::i;:::-;;21451:121;21460:6;21468:12;:10;:12::i;:::-;21482:89;21520:6;21482:89;;;;;;;;;;;;;;;;;:11;:19;21494:6;21482:19;;;;;;;;;;;;;;;:33;21502:12;:10;:12::i;:::-;21482:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;21451:8;:121::i;:::-;21590:4;21583:11;;21289:313;;;;;:::o;16616:83::-;16657:5;16682:9;;;;;;;;;;;16675:16;;16616:83;:::o;17093:218::-;17181:4;17198:83;17207:12;:10;:12::i;:::-;17221:7;17230:50;17269:10;17230:11;:25;17242:12;:10;:12::i;:::-;17230:25;;;;;;;;;;;;;;;:34;17256:7;17230:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;17198:8;:83::i;:::-;17299:4;17292:11;;17093:218;;;;:::o;14757:26::-;;;;:::o;18257:124::-;5836:12;:10;:12::i;:::-;5826:22;;:6;;;;;;;;;;:22;;;5818:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18365:8:::1;18339:23;:34;;;;18257:124:::0;:::o;14792:56::-;;;;:::o;15050:28::-;;;;;;;;;;;;;:::o;14857:36::-;;;;:::o;15119:40::-;;;;;;;;;;;;;:::o;16815:119::-;16881:7;16908:9;:18;16918:7;16908:18;;;;;;;;;;;;;;;;16901:25;;16815:119;;;:::o;5692:79::-;5730:7;5757:6;;;;;;;;;;;5750:13;;5692:79;:::o;5917:227::-;5836:12;:10;:12::i;:::-;5826:22;;:6;;;;;;;;;;:22;;;5818:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6021:42:::1;5984:81;;6005:6;::::0;::::1;;;;;;;;5984:81;;;;;;;;;;;;6093:42;6076:6;::::0;:60:::1;;;;;;;;;;;;;;;;;;5917:227::o:0;16521:87::-;16560:13;16593:7;16586:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16521:87;:::o;17319:269::-;17412:4;17429:129;17438:12;:10;:12::i;:::-;17452:7;17461:96;17500:15;17461:96;;;;;;;;;;;;;;;;;:11;:25;17473:12;:10;:12::i;:::-;17461:25;;;;;;;;;;;;;;;:34;17487:7;17461:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;17429:8;:129::i;:::-;17576:4;17569:11;;17319:269;;;;:::o;18845:167::-;18923:4;18940:42;18950:12;:10;:12::i;:::-;18964:9;18975:6;18940:9;:42::i;:::-;;19000:4;18993:11;;18845:167;;;;:::o;18493:171::-;5836:12;:10;:12::i;:::-;5826:22;;:6;;;;;;;;;;:22;;;5818:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18594:8:::1;18570:21;;:32;;;;;;;;;;;;;;;;;;18618:38;18647:8;18618:38;;;;;;:::i;:::-;;;;;;;;18493:171:::0;:::o;15017:26::-;;;;;;;;;;;;;:::o;14362:36::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;15166:45::-;;;;;;;;;;;;;:::o;16942:143::-;17023:7;17050:11;:18;17062:5;17050:18;;;;;;;;;;;;;;;:27;17069:7;17050:27;;;;;;;;;;;;;;;;17043:34;;16942:143;;;;:::o;18114:135::-;5836:12;:10;:12::i;:::-;5826:22;;:6;;;;;;;;;;:22;;;5818:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18233:8:::1;18204:17;:26;18222:7;18204:26;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;18114:135:::0;;:::o;6152:244::-;5836:12;:10;:12::i;:::-;5826:22;;:6;;;;;;;;;;:22;;;5818:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6261:1:::1;6241:22;;:8;:22;;;;6233:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6351:8;6322:38;;6343:6;::::0;::::1;;;;;;;;6322:38;;;;;;;;;;;;6380:8;6371:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;6152:244:::0;:::o;14482:73::-;;;;;;;;;;;;;:::o;462:115::-;515:15;558:10;543:26;;462:115;:::o;17765:337::-;17875:1;17858:19;;:5;:19;;;;17850:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17956:1;17937:21;;:7;:21;;;;17929:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18040:6;18010:11;:18;18022:5;18010:18;;;;;;;;;;;;;;;:27;18029:7;18010:27;;;;;;;;;;;;;;;:36;;;;18078:7;18062:32;;18071:5;18062:32;;;18087:6;18062:32;;;;;;:::i;:::-;;;;;;;;17765:337;;;:::o;19024:621::-;19111:4;19156:1;19138:20;;:6;:20;;;;19130:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;19240:1;19219:23;;:9;:23;;;;19211:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;19295:28;19336:23;;19326:6;:33;;19295:64;;19374:23;:44;;;;;19402:16;;;;;;;;;;;19401:17;19374:44;:72;;;;;19433:13;;;;;;;;;;;19422:24;;:9;:24;;;19374:72;:97;;;;;19450:21;;;;;;;;;;;19374:97;19370:246;;;19498:22;19513:6;19498:14;:22::i;:::-;19370:246;;;19562:41;19577:6;19585:9;19596:6;19562:14;:41::i;:::-;19555:48;;;;;19370:246;19633:4;19626:11;;;19024:621;;;;;;:::o;1732:192::-;1818:7;1851:1;1846;:6;;1854:12;1838:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1878:9;1894:1;1890;:5;;;;:::i;:::-;1878:17;;1915:1;1908:8;;;1732:192;;;;;:::o;1399:181::-;1457:7;1477:9;1493:1;1489;:5;;;;:::i;:::-;1477:17;;1518:1;1513;:6;;1505:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1571:1;1564:8;;;1399:181;;;;:::o;20051:275::-;15653:4;15634:16;;:23;;;;;;;;;;;;;;;;;;20133:19:::1;20155:7;20133:29;;20173:21;20197:24;20209:11;20197:7;:11;;:24;;;;:::i;:::-;20173:48;;20234:25;20251:7;20234:16;:25::i;:::-;20270:22;20295:21;20270:46;;15668:1;;;15699:5:::0;15680:16;;:24;;;;;;;;;;;;;;;;;;20051:275;:::o;19653:390::-;19746:4;19763:11;19798:3;19787:7;;19778:6;:16;;;;:::i;:::-;19777:24;;;;:::i;:::-;19763:38;;19832:29;19854:6;19832:9;:17;19842:6;19832:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;19812:9;:17;19822:6;19812:17;;;;;;;;;;;;;;;:49;;;;19881:15;19892:3;19881:6;:10;;:15;;;;:::i;:::-;19872:24;;19930:32;19955:6;19930:9;:20;19940:9;19930:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;19907:9;:20;19917:9;19907:20;;;;;;;;;;;;;;;:55;;;;19995:9;19978:35;;19987:6;19978:35;;;20006:6;19978:35;;;;;;:::i;:::-;;;;;;;;20031:4;20024:11;;;19653:390;;;;;:::o;1588:136::-;1646:7;1673:43;1677:1;1680;1673:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1666:50;;1588:136;;;;:::o;20338:568::-;20406:21;20444:1;20430:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20406:40;;20475:4;20457;20462:1;20457:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;;;20501:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20491:4;20496:1;20491:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;;20536:62;20553:4;20568:15;;;;;;;;;;;20586:11;20536:8;:62::i;:::-;20613:15;;;;;;;;;;;:66;;;20694:11;20720:1;20764:4;20783:13;;;;;;;;;;;20811:15;20613:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20863:35;20880:11;20893:4;20863:35;;;;;;;:::i;:::-;;;;;;;;20338:568;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:133::-;;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;350:84;;;;:::o;440:139::-;;524:6;511:20;502:29;;540:33;567:5;540:33;:::i;:::-;492:87;;;;:::o;585:262::-;;693:2;681:9;672:7;668:23;664:32;661:2;;;709:1;706;699:12;661:2;752:1;777:53;822:7;813:6;802:9;798:22;777:53;:::i;:::-;767:63;;723:117;651:196;;;;:::o;853:284::-;;972:2;960:9;951:7;947:23;943:32;940:2;;;988:1;985;978:12;940:2;1031:1;1056:64;1112:7;1103:6;1092:9;1088:22;1056:64;:::i;:::-;1046:74;;1002:128;930:207;;;;:::o;1143:407::-;;;1268:2;1256:9;1247:7;1243:23;1239:32;1236:2;;;1284:1;1281;1274:12;1236:2;1327:1;1352:53;1397:7;1388:6;1377:9;1373:22;1352:53;:::i;:::-;1342:63;;1298:117;1454:2;1480:53;1525:7;1516:6;1505:9;1501:22;1480:53;:::i;:::-;1470:63;;1425:118;1226:324;;;;;:::o;1556:552::-;;;;1698:2;1686:9;1677:7;1673:23;1669:32;1666:2;;;1714:1;1711;1704:12;1666:2;1757:1;1782:53;1827:7;1818:6;1807:9;1803:22;1782:53;:::i;:::-;1772:63;;1728:117;1884:2;1910:53;1955:7;1946:6;1935:9;1931:22;1910:53;:::i;:::-;1900:63;;1855:118;2012:2;2038:53;2083:7;2074:6;2063:9;2059:22;2038:53;:::i;:::-;2028:63;;1983:118;1656:452;;;;;:::o;2114:401::-;;;2236:2;2224:9;2215:7;2211:23;2207:32;2204:2;;;2252:1;2249;2242:12;2204:2;2295:1;2320:53;2365:7;2356:6;2345:9;2341:22;2320:53;:::i;:::-;2310:63;;2266:117;2422:2;2448:50;2490:7;2481:6;2470:9;2466:22;2448:50;:::i;:::-;2438:60;;2393:115;2194:321;;;;;:::o;2521:407::-;;;2646:2;2634:9;2625:7;2621:23;2617:32;2614:2;;;2662:1;2659;2652:12;2614:2;2705:1;2730:53;2775:7;2766:6;2755:9;2751:22;2730:53;:::i;:::-;2720:63;;2676:117;2832:2;2858:53;2903:7;2894:6;2883:9;2879:22;2858:53;:::i;:::-;2848:63;;2803:118;2604:324;;;;;:::o;2934:256::-;;3039:2;3027:9;3018:7;3014:23;3010:32;3007:2;;;3055:1;3052;3045:12;3007:2;3098:1;3123:50;3165:7;3156:6;3145:9;3141:22;3123:50;:::i;:::-;3113:60;;3069:114;2997:193;;;;:::o;3196:262::-;;3304:2;3292:9;3283:7;3279:23;3275:32;3272:2;;;3320:1;3317;3310:12;3272:2;3363:1;3388:53;3433:7;3424:6;3413:9;3409:22;3388:53;:::i;:::-;3378:63;;3334:117;3262:196;;;;:::o;3464:179::-;;3554:46;3596:3;3588:6;3554:46;:::i;:::-;3632:4;3627:3;3623:14;3609:28;;3544:99;;;;:::o;3649:108::-;3726:24;3744:5;3726:24;:::i;:::-;3721:3;3714:37;3704:53;;:::o;3763:118::-;3850:24;3868:5;3850:24;:::i;:::-;3845:3;3838:37;3828:53;;:::o;3917:732::-;;4065:54;4113:5;4065:54;:::i;:::-;4135:86;4214:6;4209:3;4135:86;:::i;:::-;4128:93;;4245:56;4295:5;4245:56;:::i;:::-;4324:7;4355:1;4340:284;4365:6;4362:1;4359:13;4340:284;;;4441:6;4435:13;4468:63;4527:3;4512:13;4468:63;:::i;:::-;4461:70;;4554:60;4607:6;4554:60;:::i;:::-;4544:70;;4400:224;4387:1;4384;4380:9;4375:14;;4340:284;;;4344:14;4640:3;4633:10;;4041:608;;;;;;;:::o;4655:109::-;4736:21;4751:5;4736:21;:::i;:::-;4731:3;4724:34;4714:50;;:::o;4770:185::-;4884:64;4942:5;4884:64;:::i;:::-;4879:3;4872:77;4862:93;;:::o;4961:147::-;5056:45;5095:5;5056:45;:::i;:::-;5051:3;5044:58;5034:74;;:::o;5114:364::-;;5230:39;5263:5;5230:39;:::i;:::-;5285:71;5349:6;5344:3;5285:71;:::i;:::-;5278:78;;5365:52;5410:6;5405:3;5398:4;5391:5;5387:16;5365:52;:::i;:::-;5442:29;5464:6;5442:29;:::i;:::-;5437:3;5433:39;5426:46;;5206:272;;;;;:::o;5484:366::-;;5647:67;5711:2;5706:3;5647:67;:::i;:::-;5640:74;;5723:93;5812:3;5723:93;:::i;:::-;5841:2;5836:3;5832:12;5825:19;;5630:220;;;:::o;5856:366::-;;6019:67;6083:2;6078:3;6019:67;:::i;:::-;6012:74;;6095:93;6184:3;6095:93;:::i;:::-;6213:2;6208:3;6204:12;6197:19;;6002:220;;;:::o;6228:366::-;;6391:67;6455:2;6450:3;6391:67;:::i;:::-;6384:74;;6467:93;6556:3;6467:93;:::i;:::-;6585:2;6580:3;6576:12;6569:19;;6374:220;;;:::o;6600:366::-;;6763:67;6827:2;6822:3;6763:67;:::i;:::-;6756:74;;6839:93;6928:3;6839:93;:::i;:::-;6957:2;6952:3;6948:12;6941:19;;6746:220;;;:::o;6972:366::-;;7135:67;7199:2;7194:3;7135:67;:::i;:::-;7128:74;;7211:93;7300:3;7211:93;:::i;:::-;7329:2;7324:3;7320:12;7313:19;;7118:220;;;:::o;7344:366::-;;7507:67;7571:2;7566:3;7507:67;:::i;:::-;7500:74;;7583:93;7672:3;7583:93;:::i;:::-;7701:2;7696:3;7692:12;7685:19;;7490:220;;;:::o;7716:366::-;;7879:67;7943:2;7938:3;7879:67;:::i;:::-;7872:74;;7955:93;8044:3;7955:93;:::i;:::-;8073:2;8068:3;8064:12;8057:19;;7862:220;;;:::o;8088:118::-;8175:24;8193:5;8175:24;:::i;:::-;8170:3;8163:37;8153:53;;:::o;8212:112::-;8295:22;8311:5;8295:22;:::i;:::-;8290:3;8283:35;8273:51;;:::o;8330:222::-;;8461:2;8450:9;8446:18;8438:26;;8474:71;8542:1;8531:9;8527:17;8518:6;8474:71;:::i;:::-;8428:124;;;;:::o;8558:210::-;;8683:2;8672:9;8668:18;8660:26;;8696:65;8758:1;8747:9;8743:17;8734:6;8696:65;:::i;:::-;8650:118;;;;:::o;8774:276::-;;8932:2;8921:9;8917:18;8909:26;;8945:98;9040:1;9029:9;9025:17;9016:6;8945:98;:::i;:::-;8899:151;;;;:::o;9056:313::-;;9207:2;9196:9;9192:18;9184:26;;9256:9;9250:4;9246:20;9242:1;9231:9;9227:17;9220:47;9284:78;9357:4;9348:6;9284:78;:::i;:::-;9276:86;;9174:195;;;;:::o;9375:419::-;;9579:2;9568:9;9564:18;9556:26;;9628:9;9622:4;9618:20;9614:1;9603:9;9599:17;9592:47;9656:131;9782:4;9656:131;:::i;:::-;9648:139;;9546:248;;;:::o;9800:419::-;;10004:2;9993:9;9989:18;9981:26;;10053:9;10047:4;10043:20;10039:1;10028:9;10024:17;10017:47;10081:131;10207:4;10081:131;:::i;:::-;10073:139;;9971:248;;;:::o;10225:419::-;;10429:2;10418:9;10414:18;10406:26;;10478:9;10472:4;10468:20;10464:1;10453:9;10449:17;10442:47;10506:131;10632:4;10506:131;:::i;:::-;10498:139;;10396:248;;;:::o;10650:419::-;;10854:2;10843:9;10839:18;10831:26;;10903:9;10897:4;10893:20;10889:1;10878:9;10874:17;10867:47;10931:131;11057:4;10931:131;:::i;:::-;10923:139;;10821:248;;;:::o;11075:419::-;;11279:2;11268:9;11264:18;11256:26;;11328:9;11322:4;11318:20;11314:1;11303:9;11299:17;11292:47;11356:131;11482:4;11356:131;:::i;:::-;11348:139;;11246:248;;;:::o;11500:419::-;;11704:2;11693:9;11689:18;11681:26;;11753:9;11747:4;11743:20;11739:1;11728:9;11724:17;11717:47;11781:131;11907:4;11781:131;:::i;:::-;11773:139;;11671:248;;;:::o;11925:419::-;;12129:2;12118:9;12114:18;12106:26;;12178:9;12172:4;12168:20;12164:1;12153:9;12149:17;12142:47;12206:131;12332:4;12206:131;:::i;:::-;12198:139;;12096:248;;;:::o;12350:222::-;;12481:2;12470:9;12466:18;12458:26;;12494:71;12562:1;12551:9;12547:17;12538:6;12494:71;:::i;:::-;12448:124;;;;:::o;12578:483::-;;12787:2;12776:9;12772:18;12764:26;;12800:71;12868:1;12857:9;12853:17;12844:6;12800:71;:::i;:::-;12918:9;12912:4;12908:20;12903:2;12892:9;12888:18;12881:48;12946:108;13049:4;13040:6;12946:108;:::i;:::-;12938:116;;12754:307;;;;;:::o;13067:831::-;;13368:3;13357:9;13353:19;13345:27;;13382:71;13450:1;13439:9;13435:17;13426:6;13382:71;:::i;:::-;13463:80;13539:2;13528:9;13524:18;13515:6;13463:80;:::i;:::-;13590:9;13584:4;13580:20;13575:2;13564:9;13560:18;13553:48;13618:108;13721:4;13712:6;13618:108;:::i;:::-;13610:116;;13736:72;13804:2;13793:9;13789:18;13780:6;13736:72;:::i;:::-;13818:73;13886:3;13875:9;13871:19;13862:6;13818:73;:::i;:::-;13335:563;;;;;;;;:::o;13904:214::-;;14031:2;14020:9;14016:18;14008:26;;14044:67;14108:1;14097:9;14093:17;14084:6;14044:67;:::i;:::-;13998:120;;;;:::o;14124:132::-;;14214:3;14206:11;;14244:4;14239:3;14235:14;14227:22;;14196:60;;;:::o;14262:114::-;;14363:5;14357:12;14347:22;;14336:40;;;:::o;14382:99::-;;14468:5;14462:12;14452:22;;14441:40;;;:::o;14487:113::-;;14589:4;14584:3;14580:14;14572:22;;14562:38;;;:::o;14606:184::-;;14739:6;14734:3;14727:19;14779:4;14774:3;14770:14;14755:29;;14717:73;;;;:::o;14796:169::-;;14914:6;14909:3;14902:19;14954:4;14949:3;14945:14;14930:29;;14892:73;;;;:::o;14971:305::-;;15030:20;15048:1;15030:20;:::i;:::-;15025:25;;15064:20;15082:1;15064:20;:::i;:::-;15059:25;;15218:1;15150:66;15146:74;15143:1;15140:81;15137:2;;;15224:18;;:::i;:::-;15137:2;15268:1;15265;15261:9;15254:16;;15015:261;;;;:::o;15282:185::-;;15339:20;15357:1;15339:20;:::i;:::-;15334:25;;15373:20;15391:1;15373:20;:::i;:::-;15368:25;;15412:1;15402:2;;15417:18;;:::i;:::-;15402:2;15459:1;15456;15452:9;15447:14;;15324:143;;;;:::o;15473:348::-;;15536:20;15554:1;15536:20;:::i;:::-;15531:25;;15570:20;15588:1;15570:20;:::i;:::-;15565:25;;15758:1;15690:66;15686:74;15683:1;15680:81;15675:1;15668:9;15661:17;15657:105;15654:2;;;15765:18;;:::i;:::-;15654:2;15813:1;15810;15806:9;15795:20;;15521:300;;;;:::o;15827:191::-;;15887:20;15905:1;15887:20;:::i;:::-;15882:25;;15921:20;15939:1;15921:20;:::i;:::-;15916:25;;15960:1;15957;15954:8;15951:2;;;15965:18;;:::i;:::-;15951:2;16010:1;16007;16003:9;15995:17;;15872:146;;;;:::o;16024:96::-;;16090:24;16108:5;16090:24;:::i;:::-;16079:35;;16069:51;;;:::o;16126:90::-;;16203:5;16196:13;16189:21;16178:32;;16168:48;;;:::o;16222:126::-;;16299:42;16292:5;16288:54;16277:65;;16267:81;;;:::o;16354:77::-;;16420:5;16409:16;;16399:32;;;:::o;16437:86::-;;16512:4;16505:5;16501:16;16490:27;;16480:43;;;:::o;16529:180::-;;16639:64;16697:5;16639:64;:::i;:::-;16626:77;;16616:93;;;:::o;16715:140::-;;16825:24;16843:5;16825:24;:::i;:::-;16812:37;;16802:53;;;:::o;16861:121::-;;16952:24;16970:5;16952:24;:::i;:::-;16939:37;;16929:53;;;:::o;16988:307::-;17056:1;17066:113;17080:6;17077:1;17074:13;17066:113;;;17165:1;17160:3;17156:11;17150:18;17146:1;17141:3;17137:11;17130:39;17102:2;17099:1;17095:10;17090:15;;17066:113;;;17197:6;17194:1;17191:13;17188:2;;;17277:1;17268:6;17263:3;17259:16;17252:27;17188:2;17037:258;;;;:::o;17301:320::-;;17382:1;17376:4;17372:12;17362:22;;17429:1;17423:4;17419:12;17450:18;17440:2;;17506:4;17498:6;17494:17;17484:27;;17440:2;17568;17560:6;17557:14;17537:18;17534:38;17531:2;;;17587:18;;:::i;:::-;17531:2;17352:269;;;;:::o;17627:180::-;17675:77;17672:1;17665:88;17772:4;17769:1;17762:15;17796:4;17793:1;17786:15;17813:180;17861:77;17858:1;17851:88;17958:4;17955:1;17948:15;17982:4;17979:1;17972:15;17999:180;18047:77;18044:1;18037:88;18144:4;18141:1;18134:15;18168:4;18165:1;18158:15;18185:102;;18277:2;18273:7;18268:2;18261:5;18257:14;18253:28;18243:38;;18233:54;;;:::o;18293:222::-;18433:34;18429:1;18421:6;18417:14;18410:58;18502:5;18497:2;18489:6;18485:15;18478:30;18399:116;:::o;18521:225::-;18661:34;18657:1;18649:6;18645:14;18638:58;18730:8;18725:2;18717:6;18713:15;18706:33;18627:119;:::o;18752:221::-;18892:34;18888:1;18880:6;18876:14;18869:58;18961:4;18956:2;18948:6;18944:15;18937:29;18858:115;:::o;18979:177::-;19119:29;19115:1;19107:6;19103:14;19096:53;19085:71;:::o;19162:182::-;19302:34;19298:1;19290:6;19286:14;19279:58;19268:76;:::o;19350:224::-;19490:34;19486:1;19478:6;19474:14;19467:58;19559:7;19554:2;19546:6;19542:15;19535:32;19456:118;:::o;19580:223::-;19720:34;19716:1;19708:6;19704:14;19697:58;19789:6;19784:2;19776:6;19772:15;19765:31;19686:117;:::o;19809:122::-;19882:24;19900:5;19882:24;:::i;:::-;19875:5;19872:35;19862:2;;19921:1;19918;19911:12;19862:2;19852:79;:::o;19937:116::-;20007:21;20022:5;20007:21;:::i;:::-;20000:5;19997:32;19987:2;;20043:1;20040;20033:12;19987:2;19977:76;:::o;20059:122::-;20132:24;20150:5;20132:24;:::i;:::-;20125:5;20122:35;20112:2;;20171:1;20168;20161:12;20112:2;20102:79;:::o

Swarm Source

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