ETH Price: $3,162.55 (-8.61%)
Gas: 2 Gwei

Token

Paw Cream DAO (PAWD)
 

Overview

Max Total Supply

5,529,586,012 PAWD

Holders

34

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
MEV Bot: 0x000...e14
Balance
0.000000000000000003 PAWD

Value
$0.00
0x00000000032962B51589768828ad878876299E14
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:
PawCreamDAO

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-06
*/

pragma solidity ^0.8.6;

//https://twitter.com/PawCreamDao
//https://t.me/pawcreamdao
//https://medium.com/@pawcreamdao


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

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


interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The default value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5.05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
     * `transferFrom`. This is semantically equivalent to an infinite approval.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * NOTE: Does not update the allowance if the current allowance
     * is the maximum `uint256`.
     *
     * Requirements:
     *
     * - `from` and `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, _allowances[owner][spender] + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = _allowances[owner][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `sender` to `recipient`.
     *
     * This internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     */
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
        }
        _balances[to] += amount;

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

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

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

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

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

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

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

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

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

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

    /**
     * @dev Spend `amount` form the allowance of `owner` toward `spender`.
     *
     * Does not update the allowance amount in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Might emit an {Approval} event.
     */
    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

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

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

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

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

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

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

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

    function geUnlockTime() public view returns (uint256) {
        return _lockTime;
    }
}

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

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

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

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

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

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

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

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

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

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;

    event Mint(address indexed sender, uint amount0, uint amount1);
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

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

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

    function initialize(address, address) external;
}

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

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

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

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

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


contract PawCreamDAO is ERC20, Ownable {
   
    mapping(address => bool) public dexRouters;
    mapping(address => bool) public automatedMarketMakerPairs;

    IUniswapV2Router02 public defaultDexRouter;
    IUniswapV2Router02 public shibaSwapRouter;

    address public defaultPair;
    address public shibaPair;
    address public dead = 0x000000000000000000000000000000000000dEaD;
    address public shib = 0x95aD61b0a150d79219dCF64E1E6Cc01f0B64C4cE;
    address public bone = 0x9813037ee2218799597d83D4a5B6F3b6778218d9;
    address public leash = 0x27C70Cd1946795B66be9d954418546998b546634;


    uint256 private _startSupply = 5_529_586_012 * (10**18);
    uint8  private constant _decimals = 18;

    // fees (from a total of 10000)
    uint256 public buyFeesCollected = 0;
    uint256 public buyFee = 100;
    uint256 public buyTotalFees = buyFee;

    uint256 public sellFeesCollected = 0;
    uint256 public sellFee = 100;
    uint256 public sellTotalFees = sellFee;


    uint256 public deflationStartTime;


    event UpdateDefaultDexRouter(address indexed newAddress, address indexed oldAddress);
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);
   


    constructor(
        address _uniswapRouterAddress,
        address _shibaSwapAddress,
        uint256 _deflationStartTime
    ) ERC20("Paw Cream DAO", "PAWD") {
        deflationStartTime = _deflationStartTime;

        IUniswapV2Router02 _dexRouter = IUniswapV2Router02(_uniswapRouterAddress);
        IUniswapV2Router02 _shibaSwap = IUniswapV2Router02(_shibaSwapAddress);

        defaultDexRouter = _dexRouter;
        shibaSwapRouter = _shibaSwap;

        dexRouters[_uniswapRouterAddress] = true;
        dexRouters[_shibaSwapAddress] = true;

        defaultPair = IUniswapV2Factory(_dexRouter.factory()).createPair(address(this), _dexRouter.WETH());
        shibaPair = IUniswapV2Factory(_shibaSwap.factory()).createPair(address(this), _shibaSwap.WETH());
        
        _setAutomatedMarketMakerPair(defaultPair, true);
        _setAutomatedMarketMakerPair(shibaPair, true);
        //_mint is an internal function in ERC20.sol that is only called here, and CANNOT be called ever again
        _mint(owner(), _startSupply);
    }


    receive() external payable {}

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

    function addNewRouter(address _router, bool makeDefault) external onlyOwner {
        dexRouters[_router] = true;

        if (makeDefault) {
            emit UpdateDefaultDexRouter(_router, address(defaultDexRouter));
            defaultDexRouter = IUniswapV2Router02(_router);
            defaultPair = IUniswapV2Factory(defaultDexRouter.factory()).createPair(address(this), defaultDexRouter.WETH());
            _setAutomatedMarketMakerPair(defaultPair, true);
        }
    }

    function setAutomatedMarketMakerPair(address pair, bool value) external onlyOwner {
        require(
            value || pair != defaultPair,
            "The default pair cannot be removed from automatedMarketMakerPairs"
        );
        _setAutomatedMarketMakerPair(pair, value);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        require(
            automatedMarketMakerPairs[pair] != value,
            "Automated market maker pair is already set to that value"
        );

        automatedMarketMakerPairs[pair] = value;
        emit SetAutomatedMarketMakerPair(pair, value);
    }


    function setBuyFee(uint256 fee) external onlyOwner {
        buyFee = fee;
    }

    function setSellFee(uint256 fee) external onlyOwner {
        sellFee = fee;
    }

    function isExcludedFromFees(address account) public view returns(bool) {
        return 
            account == address(defaultDexRouter) ||
            account == address(shibaSwapRouter) ||
            IERC20(shib).balanceOf(account) > 0 ||
            IERC20(bone).balanceOf(account) > 0 ||
            IERC20(leash).balanceOf(account) > 0 ||
            IERC20(defaultPair).balanceOf(account) > 0 ||
            IERC20(shibaPair).balanceOf(account) > 0 ||
            account == owner() ||
            account == address(this) ||
            account == dead;
    }



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

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

        uint256 senderBalance = balanceOf(from);
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");

        // take fee
        amount = collectFees(from, to, amount);


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

    function collectFees(
        address from,
        address to,
        uint256 amount
    ) private returns (uint256) {
        if (block.timestamp >= deflationStartTime && !isExcludedFromFees(from) &&
            !isExcludedFromFees(to) ) {
            uint256 fees;
            if (automatedMarketMakerPairs[from]) {
                fees = (amount * buyTotalFees) / 10000;
                buyFeesCollected += fees;
            } else if (automatedMarketMakerPairs[to]) {
                fees = (amount * sellTotalFees) / 10000;
                sellFeesCollected += fees;
            }

            amount = amount - fees;
            super._transfer(from, dead, fees);
        }
        return amount;
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_uniswapRouterAddress","type":"address"},{"internalType":"address","name":"_shibaSwapAddress","type":"address"},{"internalType":"uint256","name":"_deflationStartTime","type":"uint256"}],"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":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateDefaultDexRouter","type":"event"},{"inputs":[{"internalType":"address","name":"_router","type":"address"},{"internalType":"bool","name":"makeDefault","type":"bool"}],"name":"addNewRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bone","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFeesCollected","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dead","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"defaultDexRouter","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deflationStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"dexRouters","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"geUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"leash","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFeesCollected","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"shib","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"shibaPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"shibaSwapRouter","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"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":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507395ad61b0a150d79219dcf64e1e6cc01f0b64c4ce600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550739813037ee2218799597d83d4a5b6f3b6778218d9601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507327c70cd1946795b66be9d954418546998b546634601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506b11ddf7625b984f95abf0000060125560006013556064601455601454601555600060165560646017556017546018553480156200018357600080fd5b5060405162004440380380620044408339818101604052810190620001a9919062000ba0565b6040518060400160405280600d81526020017f50617720437265616d2044414f000000000000000000000000000000000000008152506040518060400160405280600481526020017f5041574400000000000000000000000000000000000000000000000000000000815250816003908162000226919062000e6c565b50806004908162000238919062000e6c565b50505060006200024d6200081160201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350806019819055506000839050600083905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200047b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004a1919062000f53565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000509573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200052f919062000f53565b6040518363ffffffff1660e01b81526004016200054e92919062000f96565b6020604051808303816000875af11580156200056e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000594919062000f53565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000620573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000646919062000f53565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620006ae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006d4919062000f53565b6040518363ffffffff1660e01b8152600401620006f392919062000f96565b6020604051808303816000875af115801562000713573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000739919062000f53565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620007ae600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200081960201b60201c565b620007e3600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200081960201b60201c565b62000806620007f76200094f60201b60201c565b6012546200097960201b60201c565b505050505062001176565b600033905090565b801515600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503620008ae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008a5906200104a565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620009eb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009e290620010bc565b60405180910390fd5b620009ff6000838362000af160201b60201c565b806002600082825462000a1391906200110d565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000a6a91906200110d565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000ad1919062001159565b60405180910390a362000aed6000838362000af660201b60201c565b5050565b505050565b505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b2d8262000b00565b9050919050565b62000b3f8162000b20565b811462000b4b57600080fd5b50565b60008151905062000b5f8162000b34565b92915050565b6000819050919050565b62000b7a8162000b65565b811462000b8657600080fd5b50565b60008151905062000b9a8162000b6f565b92915050565b60008060006060848603121562000bbc5762000bbb62000afb565b5b600062000bcc8682870162000b4e565b935050602062000bdf8682870162000b4e565b925050604062000bf28682870162000b89565b9150509250925092565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000c7e57607f821691505b60208210810362000c945762000c9362000c36565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000cfe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000cbf565b62000d0a868362000cbf565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000d4d62000d4762000d418462000b65565b62000d22565b62000b65565b9050919050565b6000819050919050565b62000d698362000d2c565b62000d8162000d788262000d54565b84845462000ccc565b825550505050565b600090565b62000d9862000d89565b62000da581848462000d5e565b505050565b5b8181101562000dcd5762000dc160008262000d8e565b60018101905062000dab565b5050565b601f82111562000e1c5762000de68162000c9a565b62000df18462000caf565b8101602085101562000e01578190505b62000e1962000e108562000caf565b83018262000daa565b50505b505050565b600082821c905092915050565b600062000e416000198460080262000e21565b1980831691505092915050565b600062000e5c838362000e2e565b9150826002028217905092915050565b62000e778262000bfc565b67ffffffffffffffff81111562000e935762000e9262000c07565b5b62000e9f825462000c65565b62000eac82828562000dd1565b600060209050601f83116001811462000ee4576000841562000ecf578287015190505b62000edb858262000e4e565b86555062000f4b565b601f19841662000ef48662000c9a565b60005b8281101562000f1e5784890151825560018201915060208501945060208101905062000ef7565b8683101562000f3e578489015162000f3a601f89168262000e2e565b8355505b6001600288020188555050505b505050505050565b60006020828403121562000f6c5762000f6b62000afb565b5b600062000f7c8482850162000b4e565b91505092915050565b62000f908162000b20565b82525050565b600060408201905062000fad600083018562000f85565b62000fbc602083018462000f85565b9392505050565b600082825260208201905092915050565b7f4175746f6d61746564206d61726b6574206d616b65722070616972206973206160008201527f6c72656164792073657420746f20746861742076616c75650000000000000000602082015250565b60006200103260388362000fc3565b91506200103f8262000fd4565b604082019050919050565b60006020820190508181036000830152620010658162001023565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620010a4601f8362000fc3565b9150620010b1826200106c565b602082019050919050565b60006020820190508181036000830152620010d78162001095565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200111a8262000b65565b9150620011278362000b65565b9250828201905080821115620011425762001141620010de565b5b92915050565b620011538162000b65565b82525050565b600060208201905062001170600083018462001148565b92915050565b6132ba80620011866000396000f3fe60806040526004361061021e5760003560e01c80638b4cee0811610123578063b62496f5116100ab578063d578192c1161006f578063d578192c14610810578063d85ba0631461083b578063dd62ed3e14610866578063efa8ce5e146108a3578063f2fde38b146108ce57610225565b8063b62496f514610715578063b6c5232414610752578063c1c356c51461077d578063c3a5dbb9146107ba578063d32a8f67146107e557610225565b8063999777aa116100f2578063999777aa1461061e5780639a7a23d614610649578063a32cb4c614610672578063a457c2d71461069b578063a9059cbb146106d857610225565b80638b4cee08146105745780638da5cb5b1461059d57806395d89b41146105c857806396e58dd3146105f357610225565b80633726b0a2116101a65780634e08c56b116101755780634e08c56b1461048d5780634fbee193146104b85780636a486a8e146104f557806370a0823114610520578063715018a61461055d57610225565b80633726b0a2146103cf57806339509351146103fa578063437eea3814610437578063470624021461046257610225565b806323b872dd116101ed57806323b872dd146102e657806326631b65146103235780632b14ca561461034e578063313ce5671461037957806336cf7c87146103a457610225565b806306fdde031461022a578063095ea7b3146102555780630cc835a31461029257806318160ddd146102bb57610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f6108f7565b60405161024c919061268f565b60405180910390f35b34801561026157600080fd5b5061027c6004803603810190610277919061274a565b610989565b60405161028991906127a5565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b491906127c0565b6109ac565b005b3480156102c757600080fd5b506102d0610a4d565b6040516102dd91906127fc565b60405180910390f35b3480156102f257600080fd5b5061030d60048036038101906103089190612817565b610a57565b60405161031a91906127a5565b60405180910390f35b34801561032f57600080fd5b50610338610a86565b6040516103459190612879565b60405180910390f35b34801561035a57600080fd5b50610363610aac565b60405161037091906127fc565b60405180910390f35b34801561038557600080fd5b5061038e610ab2565b60405161039b91906128b0565b60405180910390f35b3480156103b057600080fd5b506103b9610abb565b6040516103c69190612879565b60405180910390f35b3480156103db57600080fd5b506103e4610ae1565b6040516103f19190612879565b60405180910390f35b34801561040657600080fd5b50610421600480360381019061041c919061274a565b610b07565b60405161042e91906127a5565b60405180910390f35b34801561044357600080fd5b5061044c610bb1565b6040516104599190612879565b60405180910390f35b34801561046e57600080fd5b50610477610bd7565b60405161048491906127fc565b60405180910390f35b34801561049957600080fd5b506104a2610bdd565b6040516104af919061292a565b60405180910390f35b3480156104c457600080fd5b506104df60048036038101906104da9190612945565b610c03565b6040516104ec91906127a5565b60405180910390f35b34801561050157600080fd5b5061050a6110be565b60405161051791906127fc565b60405180910390f35b34801561052c57600080fd5b5061054760048036038101906105429190612945565b6110c4565b60405161055491906127fc565b60405180910390f35b34801561056957600080fd5b5061057261110c565b005b34801561058057600080fd5b5061059b600480360381019061059691906127c0565b611264565b005b3480156105a957600080fd5b506105b2611305565b6040516105bf9190612879565b60405180910390f35b3480156105d457600080fd5b506105dd61132f565b6040516105ea919061268f565b60405180910390f35b3480156105ff57600080fd5b506106086113c1565b6040516106159190612879565b60405180910390f35b34801561062a57600080fd5b506106336113e7565b60405161064091906127fc565b60405180910390f35b34801561065557600080fd5b50610670600480360381019061066b919061299e565b6113ed565b005b34801561067e57600080fd5b506106996004803603810190610694919061299e565b61152b565b005b3480156106a757600080fd5b506106c260048036038101906106bd919061274a565b6118ed565b6040516106cf91906127a5565b60405180910390f35b3480156106e457600080fd5b506106ff60048036038101906106fa919061274a565b6119d7565b60405161070c91906127a5565b60405180910390f35b34801561072157600080fd5b5061073c60048036038101906107379190612945565b6119fa565b60405161074991906127a5565b60405180910390f35b34801561075e57600080fd5b50610767611a1a565b60405161077491906127fc565b60405180910390f35b34801561078957600080fd5b506107a4600480360381019061079f9190612945565b611a24565b6040516107b191906127a5565b60405180910390f35b3480156107c657600080fd5b506107cf611a44565b6040516107dc91906127fc565b60405180910390f35b3480156107f157600080fd5b506107fa611a4a565b6040516108079190612879565b60405180910390f35b34801561081c57600080fd5b50610825611a70565b604051610832919061292a565b60405180910390f35b34801561084757600080fd5b50610850611a96565b60405161085d91906127fc565b60405180910390f35b34801561087257600080fd5b5061088d600480360381019061088891906129de565b611a9c565b60405161089a91906127fc565b60405180910390f35b3480156108af57600080fd5b506108b8611b23565b6040516108c591906127fc565b60405180910390f35b3480156108da57600080fd5b506108f560048036038101906108f09190612945565b611b29565b005b60606003805461090690612a4d565b80601f016020809104026020016040519081016040528092919081815260200182805461093290612a4d565b801561097f5780601f106109545761010080835404028352916020019161097f565b820191906000526020600020905b81548152906001019060200180831161096257829003601f168201915b5050505050905090565b600080610994611cef565b90506109a1818585611cf7565b600191505092915050565b6109b4611cef565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3a90612aca565b60405180910390fd5b8060148190555050565b6000600254905090565b600080610a62611cef565b9050610a6f858285611ec0565b610a7a858585611f4c565b60019150509392505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60175481565b60006012905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080610b12611cef565b9050610ba6818585600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ba19190612b19565b611cf7565b600191505092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60145481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480610cae5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80610d5457506000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401610d119190612879565b602060405180830381865afa158015610d2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d529190612b62565b115b80610dfa57506000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401610db79190612879565b602060405180830381865afa158015610dd4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610df89190612b62565b115b80610ea057506000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401610e5d9190612879565b602060405180830381865afa158015610e7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9e9190612b62565b115b80610f4657506000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401610f039190612879565b602060405180830381865afa158015610f20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f449190612b62565b115b80610fec57506000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401610fa99190612879565b602060405180830381865afa158015610fc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fea9190612b62565b115b806110295750610ffa611305565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b8061105f57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806110b75750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b60185481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611114611cef565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119a90612aca565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61126c611cef565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f290612aca565b60405180910390fd5b8060178190555050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461133e90612a4d565b80601f016020809104026020016040519081016040528092919081815260200182805461136a90612a4d565b80156113b75780601f1061138c576101008083540402835291602001916113b7565b820191906000526020600020905b81548152906001019060200180831161139a57829003601f168201915b5050505050905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60165481565b6113f5611cef565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611484576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147b90612aca565b60405180910390fd5b80806114de5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61151d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151490612c27565b60405180910390fd5b61152782826120b2565b5050565b611533611cef565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b990612aca565b60405180910390fd5b6001600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080156118e957600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f56729c2d3b35702079226f38e0417b72386db8f924b488588b56135138cf179f60405160405180910390a381600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561174a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176e9190612c5c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061181b9190612c5c565b6040518363ffffffff1660e01b8152600401611838929190612c89565b6020604051808303816000875af1158015611857573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061187b9190612c5c565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506118e8600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016120b2565b5b5050565b6000806118f8611cef565b90506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050838110156119be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b590612d24565b60405180910390fd5b6119cb8286868403611cf7565b60019250505092915050565b6000806119e2611cef565b90506119ef818585611f4c565b600191505092915050565b60096020528060005260406000206000915054906101000a900460ff1681565b6000600754905090565b60086020528060005260406000206000915054906101000a900460ff1681565b60135481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60155481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60195481565b611b31611cef565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb790612aca565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2690612db6565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5d90612e48565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611dd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dcc90612eda565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611eb391906127fc565b60405180910390a3505050565b6000611ecc8484611a9c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611f465781811015611f38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2f90612f46565b60405180910390fd5b611f458484848403611cf7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611fbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb290612fd8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361202a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120219061306a565b60405180910390fd5b600081036120435761203e838360006121e5565b6120ad565b600061204e846110c4565b905081811015612093576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208a906130fc565b60405180910390fd5b61209e848484612464565b91506120ab8484846121e5565b505b505050565b801515600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503612144576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213b9061318e565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612254576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224b90612fd8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ba9061306a565b60405180910390fd5b6122ce8383836125f5565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612354576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234b906130fc565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123e79190612b19565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161244b91906127fc565b60405180910390a361245e8484846125fa565b50505050565b6000601954421015801561247e575061247c84610c03565b155b8015612490575061248e83610c03565b155b156125eb576000600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561252457612710601554846124fa91906131ae565b612504919061321f565b905080601360008282546125189190612b19565b925050819055506125ae565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156125ad576127106018548461258791906131ae565b612591919061321f565b905080601660008282546125a59190612b19565b925050819055505b5b80836125ba9190613250565b92506125e985600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836121e5565b505b8190509392505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561263957808201518184015260208101905061261e565b60008484015250505050565b6000601f19601f8301169050919050565b6000612661826125ff565b61266b818561260a565b935061267b81856020860161261b565b61268481612645565b840191505092915050565b600060208201905081810360008301526126a98184612656565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006126e1826126b6565b9050919050565b6126f1816126d6565b81146126fc57600080fd5b50565b60008135905061270e816126e8565b92915050565b6000819050919050565b61272781612714565b811461273257600080fd5b50565b6000813590506127448161271e565b92915050565b60008060408385031215612761576127606126b1565b5b600061276f858286016126ff565b925050602061278085828601612735565b9150509250929050565b60008115159050919050565b61279f8161278a565b82525050565b60006020820190506127ba6000830184612796565b92915050565b6000602082840312156127d6576127d56126b1565b5b60006127e484828501612735565b91505092915050565b6127f681612714565b82525050565b600060208201905061281160008301846127ed565b92915050565b6000806000606084860312156128305761282f6126b1565b5b600061283e868287016126ff565b935050602061284f868287016126ff565b925050604061286086828701612735565b9150509250925092565b612873816126d6565b82525050565b600060208201905061288e600083018461286a565b92915050565b600060ff82169050919050565b6128aa81612894565b82525050565b60006020820190506128c560008301846128a1565b92915050565b6000819050919050565b60006128f06128eb6128e6846126b6565b6128cb565b6126b6565b9050919050565b6000612902826128d5565b9050919050565b6000612914826128f7565b9050919050565b61292481612909565b82525050565b600060208201905061293f600083018461291b565b92915050565b60006020828403121561295b5761295a6126b1565b5b6000612969848285016126ff565b91505092915050565b61297b8161278a565b811461298657600080fd5b50565b60008135905061299881612972565b92915050565b600080604083850312156129b5576129b46126b1565b5b60006129c3858286016126ff565b92505060206129d485828601612989565b9150509250929050565b600080604083850312156129f5576129f46126b1565b5b6000612a03858286016126ff565b9250506020612a14858286016126ff565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612a6557607f821691505b602082108103612a7857612a77612a1e565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612ab460208361260a565b9150612abf82612a7e565b602082019050919050565b60006020820190508181036000830152612ae381612aa7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b2482612714565b9150612b2f83612714565b9250828201905080821115612b4757612b46612aea565b5b92915050565b600081519050612b5c8161271e565b92915050565b600060208284031215612b7857612b776126b1565b5b6000612b8684828501612b4d565b91505092915050565b7f5468652064656661756c7420706169722063616e6e6f742062652072656d6f7660008201527f65642066726f6d206175746f6d617465644d61726b65744d616b65725061697260208201527f7300000000000000000000000000000000000000000000000000000000000000604082015250565b6000612c1160418361260a565b9150612c1c82612b8f565b606082019050919050565b60006020820190508181036000830152612c4081612c04565b9050919050565b600081519050612c56816126e8565b92915050565b600060208284031215612c7257612c716126b1565b5b6000612c8084828501612c47565b91505092915050565b6000604082019050612c9e600083018561286a565b612cab602083018461286a565b9392505050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612d0e60258361260a565b9150612d1982612cb2565b604082019050919050565b60006020820190508181036000830152612d3d81612d01565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612da060268361260a565b9150612dab82612d44565b604082019050919050565b60006020820190508181036000830152612dcf81612d93565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612e3260248361260a565b9150612e3d82612dd6565b604082019050919050565b60006020820190508181036000830152612e6181612e25565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ec460228361260a565b9150612ecf82612e68565b604082019050919050565b60006020820190508181036000830152612ef381612eb7565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000612f30601d8361260a565b9150612f3b82612efa565b602082019050919050565b60006020820190508181036000830152612f5f81612f23565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612fc260258361260a565b9150612fcd82612f66565b604082019050919050565b60006020820190508181036000830152612ff181612fb5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061305460238361260a565b915061305f82612ff8565b604082019050919050565b6000602082019050818103600083015261308381613047565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006130e660268361260a565b91506130f18261308a565b604082019050919050565b60006020820190508181036000830152613115816130d9565b9050919050565b7f4175746f6d61746564206d61726b6574206d616b65722070616972206973206160008201527f6c72656164792073657420746f20746861742076616c75650000000000000000602082015250565b600061317860388361260a565b91506131838261311c565b604082019050919050565b600060208201905081810360008301526131a78161316b565b9050919050565b60006131b982612714565b91506131c483612714565b92508282026131d281612714565b915082820484148315176131e9576131e8612aea565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061322a82612714565b915061323583612714565b925082613245576132446131f0565b5b828204905092915050565b600061325b82612714565b915061326683612714565b925082820390508181111561327e5761327d612aea565b5b9291505056fea264697066735822122048b47174bf7b34a27b20f8fe8ccc55252edf524b410f898b02182eee8080ad8c64736f6c634300081200330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d00000000000000000000000003f7724180aa6b939894b5ca4314783b0b36b3290000000000000000000000000000000000000000000000000000000064d00460

Deployed Bytecode

0x60806040526004361061021e5760003560e01c80638b4cee0811610123578063b62496f5116100ab578063d578192c1161006f578063d578192c14610810578063d85ba0631461083b578063dd62ed3e14610866578063efa8ce5e146108a3578063f2fde38b146108ce57610225565b8063b62496f514610715578063b6c5232414610752578063c1c356c51461077d578063c3a5dbb9146107ba578063d32a8f67146107e557610225565b8063999777aa116100f2578063999777aa1461061e5780639a7a23d614610649578063a32cb4c614610672578063a457c2d71461069b578063a9059cbb146106d857610225565b80638b4cee08146105745780638da5cb5b1461059d57806395d89b41146105c857806396e58dd3146105f357610225565b80633726b0a2116101a65780634e08c56b116101755780634e08c56b1461048d5780634fbee193146104b85780636a486a8e146104f557806370a0823114610520578063715018a61461055d57610225565b80633726b0a2146103cf57806339509351146103fa578063437eea3814610437578063470624021461046257610225565b806323b872dd116101ed57806323b872dd146102e657806326631b65146103235780632b14ca561461034e578063313ce5671461037957806336cf7c87146103a457610225565b806306fdde031461022a578063095ea7b3146102555780630cc835a31461029257806318160ddd146102bb57610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f6108f7565b60405161024c919061268f565b60405180910390f35b34801561026157600080fd5b5061027c6004803603810190610277919061274a565b610989565b60405161028991906127a5565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b491906127c0565b6109ac565b005b3480156102c757600080fd5b506102d0610a4d565b6040516102dd91906127fc565b60405180910390f35b3480156102f257600080fd5b5061030d60048036038101906103089190612817565b610a57565b60405161031a91906127a5565b60405180910390f35b34801561032f57600080fd5b50610338610a86565b6040516103459190612879565b60405180910390f35b34801561035a57600080fd5b50610363610aac565b60405161037091906127fc565b60405180910390f35b34801561038557600080fd5b5061038e610ab2565b60405161039b91906128b0565b60405180910390f35b3480156103b057600080fd5b506103b9610abb565b6040516103c69190612879565b60405180910390f35b3480156103db57600080fd5b506103e4610ae1565b6040516103f19190612879565b60405180910390f35b34801561040657600080fd5b50610421600480360381019061041c919061274a565b610b07565b60405161042e91906127a5565b60405180910390f35b34801561044357600080fd5b5061044c610bb1565b6040516104599190612879565b60405180910390f35b34801561046e57600080fd5b50610477610bd7565b60405161048491906127fc565b60405180910390f35b34801561049957600080fd5b506104a2610bdd565b6040516104af919061292a565b60405180910390f35b3480156104c457600080fd5b506104df60048036038101906104da9190612945565b610c03565b6040516104ec91906127a5565b60405180910390f35b34801561050157600080fd5b5061050a6110be565b60405161051791906127fc565b60405180910390f35b34801561052c57600080fd5b5061054760048036038101906105429190612945565b6110c4565b60405161055491906127fc565b60405180910390f35b34801561056957600080fd5b5061057261110c565b005b34801561058057600080fd5b5061059b600480360381019061059691906127c0565b611264565b005b3480156105a957600080fd5b506105b2611305565b6040516105bf9190612879565b60405180910390f35b3480156105d457600080fd5b506105dd61132f565b6040516105ea919061268f565b60405180910390f35b3480156105ff57600080fd5b506106086113c1565b6040516106159190612879565b60405180910390f35b34801561062a57600080fd5b506106336113e7565b60405161064091906127fc565b60405180910390f35b34801561065557600080fd5b50610670600480360381019061066b919061299e565b6113ed565b005b34801561067e57600080fd5b506106996004803603810190610694919061299e565b61152b565b005b3480156106a757600080fd5b506106c260048036038101906106bd919061274a565b6118ed565b6040516106cf91906127a5565b60405180910390f35b3480156106e457600080fd5b506106ff60048036038101906106fa919061274a565b6119d7565b60405161070c91906127a5565b60405180910390f35b34801561072157600080fd5b5061073c60048036038101906107379190612945565b6119fa565b60405161074991906127a5565b60405180910390f35b34801561075e57600080fd5b50610767611a1a565b60405161077491906127fc565b60405180910390f35b34801561078957600080fd5b506107a4600480360381019061079f9190612945565b611a24565b6040516107b191906127a5565b60405180910390f35b3480156107c657600080fd5b506107cf611a44565b6040516107dc91906127fc565b60405180910390f35b3480156107f157600080fd5b506107fa611a4a565b6040516108079190612879565b60405180910390f35b34801561081c57600080fd5b50610825611a70565b604051610832919061292a565b60405180910390f35b34801561084757600080fd5b50610850611a96565b60405161085d91906127fc565b60405180910390f35b34801561087257600080fd5b5061088d600480360381019061088891906129de565b611a9c565b60405161089a91906127fc565b60405180910390f35b3480156108af57600080fd5b506108b8611b23565b6040516108c591906127fc565b60405180910390f35b3480156108da57600080fd5b506108f560048036038101906108f09190612945565b611b29565b005b60606003805461090690612a4d565b80601f016020809104026020016040519081016040528092919081815260200182805461093290612a4d565b801561097f5780601f106109545761010080835404028352916020019161097f565b820191906000526020600020905b81548152906001019060200180831161096257829003601f168201915b5050505050905090565b600080610994611cef565b90506109a1818585611cf7565b600191505092915050565b6109b4611cef565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3a90612aca565b60405180910390fd5b8060148190555050565b6000600254905090565b600080610a62611cef565b9050610a6f858285611ec0565b610a7a858585611f4c565b60019150509392505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60175481565b60006012905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080610b12611cef565b9050610ba6818585600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ba19190612b19565b611cf7565b600191505092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60145481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480610cae5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80610d5457506000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401610d119190612879565b602060405180830381865afa158015610d2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d529190612b62565b115b80610dfa57506000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401610db79190612879565b602060405180830381865afa158015610dd4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610df89190612b62565b115b80610ea057506000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401610e5d9190612879565b602060405180830381865afa158015610e7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9e9190612b62565b115b80610f4657506000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401610f039190612879565b602060405180830381865afa158015610f20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f449190612b62565b115b80610fec57506000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401610fa99190612879565b602060405180830381865afa158015610fc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fea9190612b62565b115b806110295750610ffa611305565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b8061105f57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806110b75750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b60185481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611114611cef565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119a90612aca565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61126c611cef565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f290612aca565b60405180910390fd5b8060178190555050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461133e90612a4d565b80601f016020809104026020016040519081016040528092919081815260200182805461136a90612a4d565b80156113b75780601f1061138c576101008083540402835291602001916113b7565b820191906000526020600020905b81548152906001019060200180831161139a57829003601f168201915b5050505050905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60165481565b6113f5611cef565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611484576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147b90612aca565b60405180910390fd5b80806114de5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61151d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151490612c27565b60405180910390fd5b61152782826120b2565b5050565b611533611cef565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b990612aca565b60405180910390fd5b6001600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080156118e957600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f56729c2d3b35702079226f38e0417b72386db8f924b488588b56135138cf179f60405160405180910390a381600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561174a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176e9190612c5c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061181b9190612c5c565b6040518363ffffffff1660e01b8152600401611838929190612c89565b6020604051808303816000875af1158015611857573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061187b9190612c5c565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506118e8600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016120b2565b5b5050565b6000806118f8611cef565b90506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050838110156119be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b590612d24565b60405180910390fd5b6119cb8286868403611cf7565b60019250505092915050565b6000806119e2611cef565b90506119ef818585611f4c565b600191505092915050565b60096020528060005260406000206000915054906101000a900460ff1681565b6000600754905090565b60086020528060005260406000206000915054906101000a900460ff1681565b60135481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60155481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60195481565b611b31611cef565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb790612aca565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2690612db6565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5d90612e48565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611dd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dcc90612eda565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611eb391906127fc565b60405180910390a3505050565b6000611ecc8484611a9c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611f465781811015611f38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2f90612f46565b60405180910390fd5b611f458484848403611cf7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611fbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb290612fd8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361202a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120219061306a565b60405180910390fd5b600081036120435761203e838360006121e5565b6120ad565b600061204e846110c4565b905081811015612093576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208a906130fc565b60405180910390fd5b61209e848484612464565b91506120ab8484846121e5565b505b505050565b801515600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503612144576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213b9061318e565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612254576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224b90612fd8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ba9061306a565b60405180910390fd5b6122ce8383836125f5565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612354576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234b906130fc565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123e79190612b19565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161244b91906127fc565b60405180910390a361245e8484846125fa565b50505050565b6000601954421015801561247e575061247c84610c03565b155b8015612490575061248e83610c03565b155b156125eb576000600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561252457612710601554846124fa91906131ae565b612504919061321f565b905080601360008282546125189190612b19565b925050819055506125ae565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156125ad576127106018548461258791906131ae565b612591919061321f565b905080601660008282546125a59190612b19565b925050819055505b5b80836125ba9190613250565b92506125e985600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836121e5565b505b8190509392505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561263957808201518184015260208101905061261e565b60008484015250505050565b6000601f19601f8301169050919050565b6000612661826125ff565b61266b818561260a565b935061267b81856020860161261b565b61268481612645565b840191505092915050565b600060208201905081810360008301526126a98184612656565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006126e1826126b6565b9050919050565b6126f1816126d6565b81146126fc57600080fd5b50565b60008135905061270e816126e8565b92915050565b6000819050919050565b61272781612714565b811461273257600080fd5b50565b6000813590506127448161271e565b92915050565b60008060408385031215612761576127606126b1565b5b600061276f858286016126ff565b925050602061278085828601612735565b9150509250929050565b60008115159050919050565b61279f8161278a565b82525050565b60006020820190506127ba6000830184612796565b92915050565b6000602082840312156127d6576127d56126b1565b5b60006127e484828501612735565b91505092915050565b6127f681612714565b82525050565b600060208201905061281160008301846127ed565b92915050565b6000806000606084860312156128305761282f6126b1565b5b600061283e868287016126ff565b935050602061284f868287016126ff565b925050604061286086828701612735565b9150509250925092565b612873816126d6565b82525050565b600060208201905061288e600083018461286a565b92915050565b600060ff82169050919050565b6128aa81612894565b82525050565b60006020820190506128c560008301846128a1565b92915050565b6000819050919050565b60006128f06128eb6128e6846126b6565b6128cb565b6126b6565b9050919050565b6000612902826128d5565b9050919050565b6000612914826128f7565b9050919050565b61292481612909565b82525050565b600060208201905061293f600083018461291b565b92915050565b60006020828403121561295b5761295a6126b1565b5b6000612969848285016126ff565b91505092915050565b61297b8161278a565b811461298657600080fd5b50565b60008135905061299881612972565b92915050565b600080604083850312156129b5576129b46126b1565b5b60006129c3858286016126ff565b92505060206129d485828601612989565b9150509250929050565b600080604083850312156129f5576129f46126b1565b5b6000612a03858286016126ff565b9250506020612a14858286016126ff565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612a6557607f821691505b602082108103612a7857612a77612a1e565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612ab460208361260a565b9150612abf82612a7e565b602082019050919050565b60006020820190508181036000830152612ae381612aa7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b2482612714565b9150612b2f83612714565b9250828201905080821115612b4757612b46612aea565b5b92915050565b600081519050612b5c8161271e565b92915050565b600060208284031215612b7857612b776126b1565b5b6000612b8684828501612b4d565b91505092915050565b7f5468652064656661756c7420706169722063616e6e6f742062652072656d6f7660008201527f65642066726f6d206175746f6d617465644d61726b65744d616b65725061697260208201527f7300000000000000000000000000000000000000000000000000000000000000604082015250565b6000612c1160418361260a565b9150612c1c82612b8f565b606082019050919050565b60006020820190508181036000830152612c4081612c04565b9050919050565b600081519050612c56816126e8565b92915050565b600060208284031215612c7257612c716126b1565b5b6000612c8084828501612c47565b91505092915050565b6000604082019050612c9e600083018561286a565b612cab602083018461286a565b9392505050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612d0e60258361260a565b9150612d1982612cb2565b604082019050919050565b60006020820190508181036000830152612d3d81612d01565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612da060268361260a565b9150612dab82612d44565b604082019050919050565b60006020820190508181036000830152612dcf81612d93565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612e3260248361260a565b9150612e3d82612dd6565b604082019050919050565b60006020820190508181036000830152612e6181612e25565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ec460228361260a565b9150612ecf82612e68565b604082019050919050565b60006020820190508181036000830152612ef381612eb7565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000612f30601d8361260a565b9150612f3b82612efa565b602082019050919050565b60006020820190508181036000830152612f5f81612f23565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612fc260258361260a565b9150612fcd82612f66565b604082019050919050565b60006020820190508181036000830152612ff181612fb5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061305460238361260a565b915061305f82612ff8565b604082019050919050565b6000602082019050818103600083015261308381613047565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006130e660268361260a565b91506130f18261308a565b604082019050919050565b60006020820190508181036000830152613115816130d9565b9050919050565b7f4175746f6d61746564206d61726b6574206d616b65722070616972206973206160008201527f6c72656164792073657420746f20746861742076616c75650000000000000000602082015250565b600061317860388361260a565b91506131838261311c565b604082019050919050565b600060208201905081810360008301526131a78161316b565b9050919050565b60006131b982612714565b91506131c483612714565b92508282026131d281612714565b915082820484148315176131e9576131e8612aea565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061322a82612714565b915061323583612714565b925082613245576132446131f0565b5b828204905092915050565b600061325b82612714565b915061326683612714565b925082820390508181111561327e5761327d612aea565b5b9291505056fea264697066735822122048b47174bf7b34a27b20f8fe8ccc55252edf524b410f898b02182eee8080ad8c64736f6c63430008120033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d00000000000000000000000003f7724180aa6b939894b5ca4314783b0b36b3290000000000000000000000000000000000000000000000000000000064d00460

-----Decoded View---------------
Arg [0] : _uniswapRouterAddress (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [1] : _shibaSwapAddress (address): 0x03f7724180AA6b939894B5Ca4314783B0b36b329
Arg [2] : _deflationStartTime (uint256): 1691354208

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [1] : 00000000000000000000000003f7724180aa6b939894b5ca4314783b0b36b329
Arg [2] : 0000000000000000000000000000000000000000000000000000000064d00460


Deployed Bytecode Sourcemap

24838:5757:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4223:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6574:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28441:82;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5343:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7355:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25309:64;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25766:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27186:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25167:64;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25238;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8059:240;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25380:65;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25644:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25053:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28623:580;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25801:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5514:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16222:148;;;;;;;;;;;;;:::i;:::-;;28531:84;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15579:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4442:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25136:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25723:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27782:296;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;27286:488;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8802:438;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5847:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24938:57;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16777:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24889:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25602:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25103:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25004:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25678:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6103:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25850:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16525:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4223:100;4277:13;4310:5;4303:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4223:100;:::o;6574:201::-;6657:4;6674:13;6690:12;:10;:12::i;:::-;6674:28;;6713:32;6722:5;6729:7;6738:6;6713:8;:32::i;:::-;6763:4;6756:11;;;6574:201;;;;:::o;28441:82::-;15801:12;:10;:12::i;:::-;15791:22;;:6;;;;;;;;;;;:22;;;15783:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;28512:3:::1;28503:6;:12;;;;28441:82:::0;:::o;5343:108::-;5404:7;5431:12;;5424:19;;5343:108;:::o;7355:295::-;7486:4;7503:15;7521:12;:10;:12::i;:::-;7503:30;;7544:38;7560:4;7566:7;7575:6;7544:15;:38::i;:::-;7593:27;7603:4;7609:2;7613:6;7593:9;:27::i;:::-;7638:4;7631:11;;;7355:295;;;;;:::o;25309:64::-;;;;;;;;;;;;;:::o;25766:28::-;;;;:::o;27186:92::-;27236:5;25554:2;27254:16;;27186:92;:::o;25167:64::-;;;;;;;;;;;;;:::o;25238:::-;;;;;;;;;;;;;:::o;8059:240::-;8147:4;8164:13;8180:12;:10;:12::i;:::-;8164:28;;8203:66;8212:5;8219:7;8258:10;8228:11;:18;8240:5;8228:18;;;;;;;;;;;;;;;:27;8247:7;8228:27;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;8203:8;:66::i;:::-;8287:4;8280:11;;;8059:240;;;;:::o;25380:65::-;;;;;;;;;;;;;:::o;25644:27::-;;;;:::o;25053:41::-;;;;;;;;;;;;;:::o;28623:580::-;28688:4;28745:16;;;;;;;;;;;28726:36;;:7;:36;;;:88;;;;28798:15;;;;;;;;;;;28779:35;;:7;:35;;;28726:88;:140;;;;28865:1;28838:4;;;;;;;;;;;28831:22;;;28854:7;28831:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:35;28726:140;:192;;;;28917:1;28890:4;;;;;;;;;;;28883:22;;;28906:7;28883:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:35;28726:192;:245;;;;28970:1;28942:5;;;;;;;;;;;28935:23;;;28959:7;28935:32;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:36;28726:245;:304;;;;29029:1;28995:11;;;;;;;;;;;28988:29;;;29018:7;28988:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:42;28726:304;:361;;;;29086:1;29054:9;;;;;;;;;;;29047:27;;;29075:7;29047:36;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:40;28726:361;:396;;;;29115:7;:5;:7::i;:::-;29104:18;;:7;:18;;;28726:396;:437;;;;29158:4;29139:24;;:7;:24;;;28726:437;:469;;;;29191:4;;;;;;;;;;;29180:15;;:7;:15;;;28726:469;28705:490;;28623:580;;;:::o;25801:38::-;;;;:::o;5514:127::-;5588:7;5615:9;:18;5625:7;5615:18;;;;;;;;;;;;;;;;5608:25;;5514:127;;;:::o;16222:148::-;15801:12;:10;:12::i;:::-;15791:22;;:6;;;;;;;;;;;:22;;;15783:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16329:1:::1;16292:40;;16313:6;;;;;;;;;;;16292:40;;;;;;;;;;;;16360:1;16343:6;;:19;;;;;;;;;;;;;;;;;;16222:148::o:0;28531:84::-;15801:12;:10;:12::i;:::-;15791:22;;:6;;;;;;;;;;;:22;;;15783:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;28604:3:::1;28594:7;:13;;;;28531:84:::0;:::o;15579:79::-;15617:7;15644:6;;;;;;;;;;;15637:13;;15579:79;:::o;4442:104::-;4498:13;4531:7;4524:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4442:104;:::o;25136:24::-;;;;;;;;;;;;;:::o;25723:36::-;;;;:::o;27782:296::-;15801:12;:10;:12::i;:::-;15791:22;;:6;;;;;;;;;;;:22;;;15783:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;27897:5:::1;:28;;;;27914:11;;;;;;;;;;;27906:19;;:4;:19;;;;27897:28;27875:143;;;;;;;;;;;;:::i;:::-;;;;;;;;;28029:41;28058:4;28064:5;28029:28;:41::i;:::-;27782:296:::0;;:::o;27286:488::-;15801:12;:10;:12::i;:::-;15791:22;;:6;;;;;;;;;;;:22;;;15783:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;27395:4:::1;27373:10;:19;27384:7;27373:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;27416:11;27412:355;;;27489:16;;;;;;;;;;;27449:58;;27472:7;27449:58;;;;;;;;;;;;27560:7;27522:16;;:46;;;;;;;;;;;;;;;;;;27615:16;;;;;;;;;;;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27597:56;;;27662:4;27669:16;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27597:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27583:11;;:110;;;;;;;;;;;;;;;;;;27708:47;27737:11;;;;;;;;;;;27750:4;27708:28;:47::i;:::-;27412:355;27286:488:::0;;:::o;8802:438::-;8895:4;8912:13;8928:12;:10;:12::i;:::-;8912:28;;8951:24;8978:11;:18;8990:5;8978:18;;;;;;;;;;;;;;;:27;8997:7;8978:27;;;;;;;;;;;;;;;;8951:54;;9044:15;9024:16;:35;;9016:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;9137:60;9146:5;9153:7;9181:15;9162:16;:34;9137:8;:60::i;:::-;9228:4;9221:11;;;;8802:438;;;;:::o;5847:193::-;5926:4;5943:13;5959:12;:10;:12::i;:::-;5943:28;;5982;5992:5;5999:2;6003:6;5982:9;:28::i;:::-;6028:4;6021:11;;;5847:193;;;;:::o;24938:57::-;;;;;;;;;;;;;;;;;;;;;;:::o;16777:89::-;16822:7;16849:9;;16842:16;;16777:89;:::o;24889:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;25602:35::-;;;;:::o;25103:26::-;;;;;;;;;;;;;:::o;25004:42::-;;;;;;;;;;;;;:::o;25678:36::-;;;;:::o;6103:151::-;6192:7;6219:11;:18;6231:5;6219:18;;;;;;;;;;;;;;;:27;6238:7;6219:27;;;;;;;;;;;;;;;;6212:34;;6103:151;;;;:::o;25850:33::-;;;;:::o;16525:244::-;15801:12;:10;:12::i;:::-;15791:22;;:6;;;;;;;;;;;:22;;;15783:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16634:1:::1;16614:22;;:8;:22;;::::0;16606:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;16724:8;16695:38;;16716:6;;;;;;;;;;;16695:38;;;;;;;;;;;;16753:8;16744:6;;:17;;;;;;;;;;;;;;;;;;16525:244:::0;:::o;162:98::-;215:7;242:10;235:17;;162:98;:::o;12438:380::-;12591:1;12574:19;;:5;:19;;;12566:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12672:1;12653:21;;:7;:21;;;12645:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12756:6;12726:11;:18;12738:5;12726:18;;;;;;;;;;;;;;;:27;12745:7;12726:27;;;;;;;;;;;;;;;:36;;;;12794:7;12778:32;;12787:5;12778:32;;;12803:6;12778:32;;;;;;:::i;:::-;;;;;;;;12438:380;;;:::o;13105:453::-;13240:24;13267:25;13277:5;13284:7;13267:9;:25::i;:::-;13240:52;;13327:17;13307:16;:37;13303:248;;13389:6;13369:16;:26;;13361:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13473:51;13482:5;13489:7;13517:6;13498:16;:25;13473:8;:51::i;:::-;13303:248;13229:329;13105:453;;;:::o;29215:637::-;29363:1;29347:18;;:4;:18;;;29339:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;29440:1;29426:16;;:2;:16;;;29418:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;29509:1;29499:6;:11;29495:93;;29527:28;29543:4;29549:2;29553:1;29527:15;:28::i;:::-;29570:7;;29495:93;29600:21;29624:15;29634:4;29624:9;:15::i;:::-;29600:39;;29675:6;29658:13;:23;;29650:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;29767:29;29779:4;29785:2;29789:6;29767:11;:29::i;:::-;29758:38;;29811:33;29827:4;29833:2;29837:6;29811:15;:33::i;:::-;29328:524;29215:637;;;;:::o;28086:345::-;28226:5;28191:40;;:25;:31;28217:4;28191:31;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;28169:146;;;;;;;;;;;;:::i;:::-;;;;;;;;;28362:5;28328:25;:31;28354:4;28328:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;28417:5;28383:40;;28411:4;28383:40;;;;;;;;;;;;28086:345;;:::o;9719:671::-;9866:1;9850:18;;:4;:18;;;9842:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9943:1;9929:16;;:2;:16;;;9921:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9998:38;10019:4;10025:2;10029:6;9998:20;:38::i;:::-;10049:19;10071:9;:15;10081:4;10071:15;;;;;;;;;;;;;;;;10049:37;;10120:6;10105:11;:21;;10097:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10237:6;10223:11;:20;10205:9;:15;10215:4;10205:15;;;;;;;;;;;;;;;:38;;;;10282:6;10265:9;:13;10275:2;10265:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;10321:2;10306:26;;10315:4;10306:26;;;10325:6;10306:26;;;;;;:::i;:::-;;;;;;;;10345:37;10365:4;10371:2;10375:6;10345:19;:37::i;:::-;9831:559;9719:671;;;:::o;29860:730::-;29974:7;30017:18;;29998:15;:37;;:66;;;;;30040:24;30059:4;30040:18;:24::i;:::-;30039:25;29998:66;:106;;;;;30082:22;30101:2;30082:18;:22::i;:::-;30081:23;29998:106;29994:565;;;30122:12;30153:25;:31;30179:4;30153:31;;;;;;;;;;;;;;;;;;;;;;;;;30149:312;;;30238:5;30222:12;;30213:6;:21;;;;:::i;:::-;30212:31;;;;:::i;:::-;30205:38;;30282:4;30262:16;;:24;;;;;;;:::i;:::-;;;;;;;;30149:312;;;30312:25;:29;30338:2;30312:29;;;;;;;;;;;;;;;;;;;;;;;;;30308:153;;;30396:5;30379:13;;30370:6;:22;;;;:::i;:::-;30369:32;;;;:::i;:::-;30362:39;;30441:4;30420:17;;:25;;;;;;;:::i;:::-;;;;;;;;30308:153;30149:312;30495:4;30486:6;:13;;;;:::i;:::-;30477:22;;30514:33;30530:4;30536;;;;;;;;;;;30542;30514:15;:33::i;:::-;30107:452;29994:565;30576:6;30569:13;;29860:730;;;;;:::o;14158:125::-;;;;:::o;14887:124::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:118::-;4845:24;4863:5;4845:24;:::i;:::-;4840:3;4833:37;4758:118;;:::o;4882:222::-;4975:4;5013:2;5002:9;4998:18;4990:26;;5026:71;5094:1;5083:9;5079:17;5070:6;5026:71;:::i;:::-;4882:222;;;;:::o;5110:86::-;5145:7;5185:4;5178:5;5174:16;5163:27;;5110:86;;;:::o;5202:112::-;5285:22;5301:5;5285:22;:::i;:::-;5280:3;5273:35;5202:112;;:::o;5320:214::-;5409:4;5447:2;5436:9;5432:18;5424:26;;5460:67;5524:1;5513:9;5509:17;5500:6;5460:67;:::i;:::-;5320:214;;;;:::o;5540:60::-;5568:3;5589:5;5582:12;;5540:60;;;:::o;5606:142::-;5656:9;5689:53;5707:34;5716:24;5734:5;5716:24;:::i;:::-;5707:34;:::i;:::-;5689:53;:::i;:::-;5676:66;;5606:142;;;:::o;5754:126::-;5804:9;5837:37;5868:5;5837:37;:::i;:::-;5824:50;;5754:126;;;:::o;5886:153::-;5963:9;5996:37;6027:5;5996:37;:::i;:::-;5983:50;;5886:153;;;:::o;6045:185::-;6159:64;6217:5;6159:64;:::i;:::-;6154:3;6147:77;6045:185;;:::o;6236:276::-;6356:4;6394:2;6383:9;6379:18;6371:26;;6407:98;6502:1;6491:9;6487:17;6478:6;6407:98;:::i;:::-;6236:276;;;;:::o;6518:329::-;6577:6;6626:2;6614:9;6605:7;6601:23;6597:32;6594:119;;;6632:79;;:::i;:::-;6594:119;6752:1;6777:53;6822:7;6813:6;6802:9;6798:22;6777:53;:::i;:::-;6767:63;;6723:117;6518:329;;;;:::o;6853:116::-;6923:21;6938:5;6923:21;:::i;:::-;6916:5;6913:32;6903:60;;6959:1;6956;6949:12;6903:60;6853:116;:::o;6975:133::-;7018:5;7056:6;7043:20;7034:29;;7072:30;7096:5;7072:30;:::i;:::-;6975:133;;;;:::o;7114:468::-;7179:6;7187;7236:2;7224:9;7215:7;7211:23;7207:32;7204:119;;;7242:79;;:::i;:::-;7204:119;7362:1;7387:53;7432:7;7423:6;7412:9;7408:22;7387:53;:::i;:::-;7377:63;;7333:117;7489:2;7515:50;7557:7;7548:6;7537:9;7533:22;7515:50;:::i;:::-;7505:60;;7460:115;7114:468;;;;;:::o;7588:474::-;7656:6;7664;7713:2;7701:9;7692:7;7688:23;7684:32;7681:119;;;7719:79;;:::i;:::-;7681:119;7839:1;7864:53;7909:7;7900:6;7889:9;7885:22;7864:53;:::i;:::-;7854:63;;7810:117;7966:2;7992:53;8037:7;8028:6;8017:9;8013:22;7992:53;:::i;:::-;7982:63;;7937:118;7588:474;;;;;:::o;8068:180::-;8116:77;8113:1;8106:88;8213:4;8210:1;8203:15;8237:4;8234:1;8227:15;8254:320;8298:6;8335:1;8329:4;8325:12;8315:22;;8382:1;8376:4;8372:12;8403:18;8393:81;;8459:4;8451:6;8447:17;8437:27;;8393:81;8521:2;8513:6;8510:14;8490:18;8487:38;8484:84;;8540:18;;:::i;:::-;8484:84;8305:269;8254:320;;;:::o;8580:182::-;8720:34;8716:1;8708:6;8704:14;8697:58;8580:182;:::o;8768:366::-;8910:3;8931:67;8995:2;8990:3;8931:67;:::i;:::-;8924:74;;9007:93;9096:3;9007:93;:::i;:::-;9125:2;9120:3;9116:12;9109:19;;8768:366;;;:::o;9140:419::-;9306:4;9344:2;9333:9;9329:18;9321:26;;9393:9;9387:4;9383:20;9379:1;9368:9;9364:17;9357:47;9421:131;9547:4;9421:131;:::i;:::-;9413:139;;9140:419;;;:::o;9565:180::-;9613:77;9610:1;9603:88;9710:4;9707:1;9700:15;9734:4;9731:1;9724:15;9751:191;9791:3;9810:20;9828:1;9810:20;:::i;:::-;9805:25;;9844:20;9862:1;9844:20;:::i;:::-;9839:25;;9887:1;9884;9880:9;9873:16;;9908:3;9905:1;9902:10;9899:36;;;9915:18;;:::i;:::-;9899:36;9751:191;;;;:::o;9948:143::-;10005:5;10036:6;10030:13;10021:22;;10052:33;10079:5;10052:33;:::i;:::-;9948:143;;;;:::o;10097:351::-;10167:6;10216:2;10204:9;10195:7;10191:23;10187:32;10184:119;;;10222:79;;:::i;:::-;10184:119;10342:1;10367:64;10423:7;10414:6;10403:9;10399:22;10367:64;:::i;:::-;10357:74;;10313:128;10097:351;;;;:::o;10454:289::-;10594:34;10590:1;10582:6;10578:14;10571:58;10663:34;10658:2;10650:6;10646:15;10639:59;10732:3;10727:2;10719:6;10715:15;10708:28;10454:289;:::o;10749:366::-;10891:3;10912:67;10976:2;10971:3;10912:67;:::i;:::-;10905:74;;10988:93;11077:3;10988:93;:::i;:::-;11106:2;11101:3;11097:12;11090:19;;10749:366;;;:::o;11121:419::-;11287:4;11325:2;11314:9;11310:18;11302:26;;11374:9;11368:4;11364:20;11360:1;11349:9;11345:17;11338:47;11402:131;11528:4;11402:131;:::i;:::-;11394:139;;11121:419;;;:::o;11546:143::-;11603:5;11634:6;11628:13;11619:22;;11650:33;11677:5;11650:33;:::i;:::-;11546:143;;;;:::o;11695:351::-;11765:6;11814:2;11802:9;11793:7;11789:23;11785:32;11782:119;;;11820:79;;:::i;:::-;11782:119;11940:1;11965:64;12021:7;12012:6;12001:9;11997:22;11965:64;:::i;:::-;11955:74;;11911:128;11695:351;;;;:::o;12052:332::-;12173:4;12211:2;12200:9;12196:18;12188:26;;12224:71;12292:1;12281:9;12277:17;12268:6;12224:71;:::i;:::-;12305:72;12373:2;12362:9;12358:18;12349:6;12305:72;:::i;:::-;12052:332;;;;;:::o;12390:224::-;12530:34;12526:1;12518:6;12514:14;12507:58;12599:7;12594:2;12586:6;12582:15;12575:32;12390:224;:::o;12620:366::-;12762:3;12783:67;12847:2;12842:3;12783:67;:::i;:::-;12776:74;;12859:93;12948:3;12859:93;:::i;:::-;12977:2;12972:3;12968:12;12961:19;;12620:366;;;:::o;12992:419::-;13158:4;13196:2;13185:9;13181:18;13173:26;;13245:9;13239:4;13235:20;13231:1;13220:9;13216:17;13209:47;13273:131;13399:4;13273:131;:::i;:::-;13265:139;;12992:419;;;:::o;13417:225::-;13557:34;13553:1;13545:6;13541:14;13534:58;13626:8;13621:2;13613:6;13609:15;13602:33;13417:225;:::o;13648:366::-;13790:3;13811:67;13875:2;13870:3;13811:67;:::i;:::-;13804:74;;13887:93;13976:3;13887:93;:::i;:::-;14005:2;14000:3;13996:12;13989:19;;13648:366;;;:::o;14020:419::-;14186:4;14224:2;14213:9;14209:18;14201:26;;14273:9;14267:4;14263:20;14259:1;14248:9;14244:17;14237:47;14301:131;14427:4;14301:131;:::i;:::-;14293:139;;14020:419;;;:::o;14445:223::-;14585:34;14581:1;14573:6;14569:14;14562:58;14654:6;14649:2;14641:6;14637:15;14630:31;14445:223;:::o;14674:366::-;14816:3;14837:67;14901:2;14896:3;14837:67;:::i;:::-;14830:74;;14913:93;15002:3;14913:93;:::i;:::-;15031:2;15026:3;15022:12;15015:19;;14674:366;;;:::o;15046:419::-;15212:4;15250:2;15239:9;15235:18;15227:26;;15299:9;15293:4;15289:20;15285:1;15274:9;15270:17;15263:47;15327:131;15453:4;15327:131;:::i;:::-;15319:139;;15046:419;;;:::o;15471:221::-;15611:34;15607:1;15599:6;15595:14;15588:58;15680:4;15675:2;15667:6;15663:15;15656:29;15471:221;:::o;15698:366::-;15840:3;15861:67;15925:2;15920:3;15861:67;:::i;:::-;15854:74;;15937:93;16026:3;15937:93;:::i;:::-;16055:2;16050:3;16046:12;16039:19;;15698:366;;;:::o;16070:419::-;16236:4;16274:2;16263:9;16259:18;16251:26;;16323:9;16317:4;16313:20;16309:1;16298:9;16294:17;16287:47;16351:131;16477:4;16351:131;:::i;:::-;16343:139;;16070:419;;;:::o;16495:179::-;16635:31;16631:1;16623:6;16619:14;16612:55;16495:179;:::o;16680:366::-;16822:3;16843:67;16907:2;16902:3;16843:67;:::i;:::-;16836:74;;16919:93;17008:3;16919:93;:::i;:::-;17037:2;17032:3;17028:12;17021:19;;16680:366;;;:::o;17052:419::-;17218:4;17256:2;17245:9;17241:18;17233:26;;17305:9;17299:4;17295:20;17291:1;17280:9;17276:17;17269:47;17333:131;17459:4;17333:131;:::i;:::-;17325:139;;17052:419;;;:::o;17477:224::-;17617:34;17613:1;17605:6;17601:14;17594:58;17686:7;17681:2;17673:6;17669:15;17662:32;17477:224;:::o;17707:366::-;17849:3;17870:67;17934:2;17929:3;17870:67;:::i;:::-;17863:74;;17946:93;18035:3;17946:93;:::i;:::-;18064:2;18059:3;18055:12;18048:19;;17707:366;;;:::o;18079:419::-;18245:4;18283:2;18272:9;18268:18;18260:26;;18332:9;18326:4;18322:20;18318:1;18307:9;18303:17;18296:47;18360:131;18486:4;18360:131;:::i;:::-;18352:139;;18079:419;;;:::o;18504:222::-;18644:34;18640:1;18632:6;18628:14;18621:58;18713:5;18708:2;18700:6;18696:15;18689:30;18504:222;:::o;18732:366::-;18874:3;18895:67;18959:2;18954:3;18895:67;:::i;:::-;18888:74;;18971:93;19060:3;18971:93;:::i;:::-;19089:2;19084:3;19080:12;19073:19;;18732:366;;;:::o;19104:419::-;19270:4;19308:2;19297:9;19293:18;19285:26;;19357:9;19351:4;19347:20;19343:1;19332:9;19328:17;19321:47;19385:131;19511:4;19385:131;:::i;:::-;19377:139;;19104:419;;;:::o;19529:225::-;19669:34;19665:1;19657:6;19653:14;19646:58;19738:8;19733:2;19725:6;19721:15;19714:33;19529:225;:::o;19760:366::-;19902:3;19923:67;19987:2;19982:3;19923:67;:::i;:::-;19916:74;;19999:93;20088:3;19999:93;:::i;:::-;20117:2;20112:3;20108:12;20101:19;;19760:366;;;:::o;20132:419::-;20298:4;20336:2;20325:9;20321:18;20313:26;;20385:9;20379:4;20375:20;20371:1;20360:9;20356:17;20349:47;20413:131;20539:4;20413:131;:::i;:::-;20405:139;;20132:419;;;:::o;20557:243::-;20697:34;20693:1;20685:6;20681:14;20674:58;20766:26;20761:2;20753:6;20749:15;20742:51;20557:243;:::o;20806:366::-;20948:3;20969:67;21033:2;21028:3;20969:67;:::i;:::-;20962:74;;21045:93;21134:3;21045:93;:::i;:::-;21163:2;21158:3;21154:12;21147:19;;20806:366;;;:::o;21178:419::-;21344:4;21382:2;21371:9;21367:18;21359:26;;21431:9;21425:4;21421:20;21417:1;21406:9;21402:17;21395:47;21459:131;21585:4;21459:131;:::i;:::-;21451:139;;21178:419;;;:::o;21603:410::-;21643:7;21666:20;21684:1;21666:20;:::i;:::-;21661:25;;21700:20;21718:1;21700:20;:::i;:::-;21695:25;;21755:1;21752;21748:9;21777:30;21795:11;21777:30;:::i;:::-;21766:41;;21956:1;21947:7;21943:15;21940:1;21937:22;21917:1;21910:9;21890:83;21867:139;;21986:18;;:::i;:::-;21867:139;21651:362;21603:410;;;;:::o;22019:180::-;22067:77;22064:1;22057:88;22164:4;22161:1;22154:15;22188:4;22185:1;22178:15;22205:185;22245:1;22262:20;22280:1;22262:20;:::i;:::-;22257:25;;22296:20;22314:1;22296:20;:::i;:::-;22291:25;;22335:1;22325:35;;22340:18;;:::i;:::-;22325:35;22382:1;22379;22375:9;22370:14;;22205:185;;;;:::o;22396:194::-;22436:4;22456:20;22474:1;22456:20;:::i;:::-;22451:25;;22490:20;22508:1;22490:20;:::i;:::-;22485:25;;22534:1;22531;22527:9;22519:17;;22558:1;22552:4;22549:11;22546:37;;;22563:18;;:::i;:::-;22546:37;22396:194;;;;:::o

Swarm Source

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