ETH Price: $3,456.48 (-0.77%)
Gas: 2 Gwei

Token

Debt Coin (USDEBT)
 

Overview

Max Total Supply

1,000,000 USDEBT

Holders

52

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
19,800 USDEBT

Value
$0.00
0xe81e0543e47a16cddd4dd8504f54188724f59509
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:
DebtCoin

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-25
*/

/*

$DEBT is a symbol of continuous growth and strength. 
Its motto "US Debt Only Goes Up!" calls us 
to understand that the US debt steadily increases.

Telegram: https://t.me/USDebtERC20
Website: https://usdebteth.xyz

*/

//SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.7;

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

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IERC20Metadata is IERC20 {
    /**
     * @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) internal _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The defaut 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:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount)
        public
        virtual
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, 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}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), 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}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - 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)
    {
        _approve(_msgSender(), spender, _allowances[_msgSender()][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)
    {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is 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:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

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

        emit Transfer(sender, recipient, 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:
     *
     * - `to` cannot be the zero address.
     */
    function _tokengeneration(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: generation to the zero address");

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

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(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");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;

        emit Transfer(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 Hook that is called before any transfer of tokens. This includes
     * generation and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be to transferred to `to`.
     * - when `from` is zero, `amount` tokens will be generated 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 {}
}

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

        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );

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

contract DebtCoin is ERC20, Ownable {
    using Address for address payable;

    IRouter public router;
    address public pair;

    bool private _liquidityMutex = false;
    bool public providingLiquidity = false;
    bool public tradingEnabled = false;

    uint256 public tokenLiquidityThreshold = 20_000 * 10**18;
    uint256 public maxBuyLimit = 20_000 * 10**18;
    uint256 public maxSellLimit = 20_000 * 10**18;
    uint256 public maxWalletLimit = 20_000 * 10**18;

    uint256 public genesis_block;
    uint256 private deadline = 3;
    uint256 private launchtax = 99;

    address public marketingWallet = 0xf13f4Cb3F3597Cc9e13655b45e2E818990f7FEe4;
    address public devWallet = 0x4eBF7A21C96fd364d9EE83e0DDC65890de142D74;
    address public constant deadWallet = 0x000000000000000000000000000000000000dEaD;

    struct Taxes {
        uint256 marketing;
        uint256 liquidity;
        uint256 dev;
    }

    Taxes public taxes = Taxes(1, 0, 0);
    Taxes public sellTaxes = Taxes(1, 0, 0);

    mapping(address => bool) public exemptFee;

    //Anti Dump
    mapping(address => uint256) private _lastSell;
    bool public coolDownEnabled = true;
    uint256 public coolDownTime = 60 seconds;

    modifier mutexLock() {
        if (!_liquidityMutex) {
            _liquidityMutex = true;
            _;
            _liquidityMutex = false;
        }
    }

    constructor(address routerAdd) ERC20("Debt Coin", "USDEBT") {
        _tokengeneration(msg.sender, 1e6 * 10**decimals());
        exemptFee[msg.sender] = true;

        IRouter _router = IRouter(routerAdd);
        // Create a uniswap pair for this new token
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());

        router = _router;
        pair = _pair;
        exemptFee[address(this)] = true;
        exemptFee[marketingWallet] = true;
        exemptFee[devWallet] = true;
        exemptFee[deadWallet] = true;

    }

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

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

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

        return true;
    }

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

    ////////////////////////
    // Transfer Functions //
    ////////////////////////

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");

        if (!exemptFee[sender] && !exemptFee[recipient]) {
            require(tradingEnabled, "Trading not enabled");
        }

        if (sender == pair && !exemptFee[recipient] && !_liquidityMutex) {
            require(amount <= maxBuyLimit, "You are exceeding maxBuyLimit");
            require(
                balanceOf(recipient) + amount <= maxWalletLimit,
                "You are exceeding maxWalletLimit"
            );
        }

        if (
            sender != pair && !exemptFee[recipient] && !exemptFee[sender] && !_liquidityMutex
        ) {
            require(amount <= maxSellLimit, "You are exceeding maxSellLimit");
            if (recipient != pair) {
                require(
                    balanceOf(recipient) + amount <= maxWalletLimit,
                    "You are exceeding maxWalletLimit"
                );
            }
            if (coolDownEnabled) {
                uint256 timePassed = block.timestamp - _lastSell[sender];
                require(timePassed >= coolDownTime, "Cooldown enabled");
                _lastSell[sender] = block.timestamp;
            }
        }

        uint256 feeswap;
        uint256 feesum;
        uint256 fee;
        Taxes memory currentTaxes;

        bool useLaunchFee = !exemptFee[sender] &&
            !exemptFee[recipient] &&
            block.number < genesis_block + deadline;

        //set fee to zero if fees in contract are handled or exempted
        if (_liquidityMutex || exemptFee[sender] || exemptFee[recipient])
            fee = 0;

            //calculate fee
        else if (recipient == pair && !useLaunchFee) {
            feeswap =
                sellTaxes.liquidity +
                sellTaxes.marketing +
                sellTaxes.dev ;
            feesum = feeswap;
            currentTaxes = sellTaxes;
        } else if (!useLaunchFee) {
            feeswap =
                taxes.liquidity +
                taxes.marketing +
                taxes.dev;
            feesum = feeswap;
            currentTaxes = taxes;
        } else if (useLaunchFee) {
            feeswap = launchtax;
            feesum = launchtax;
        }

        fee = (amount * feesum) / 100;

        //send fees if threshold has been reached
        //don't do this on buys, breaks swap
        if (providingLiquidity && sender != pair) handle_fees(feeswap, currentTaxes);

        //rest to recipient
        super._transfer(sender, recipient, amount - fee);
        if (fee > 0) {
            //send the fee to the contract
            if (feeswap > 0) {
                uint256 feeAmount = (amount * feeswap) / 100;
                super._transfer(sender, address(this), feeAmount);
            }

        }
    }

    function handle_fees(uint256 feeswap, Taxes memory swapTaxes) private mutexLock {

        if(feeswap == 0){
            return;
        }

        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= tokenLiquidityThreshold) {
            if (tokenLiquidityThreshold > 1) {
                contractBalance = tokenLiquidityThreshold;
            }

            // Split the contract balance into halves
            uint256 denominator = feeswap * 2;
            uint256 tokensToAddLiquidityWith = (contractBalance * swapTaxes.liquidity) /
                denominator;
            uint256 toSwap = contractBalance - tokensToAddLiquidityWith;

            uint256 initialBalance = address(this).balance;

            swapTokensForETH(toSwap);

            uint256 deltaBalance = address(this).balance - initialBalance;
            uint256 unitBalance = deltaBalance / (denominator - swapTaxes.liquidity);
            uint256 ethToAddLiquidityWith = unitBalance * swapTaxes.liquidity;

            if (ethToAddLiquidityWith > 0) {
                // Add liquidity to uniswap
                addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith);
            }

            uint256 marketingAmt = unitBalance * 2 * swapTaxes.marketing;
            if (marketingAmt > 0) {
                payable(marketingWallet).sendValue(marketingAmt);
            }

            uint256 devAmt = unitBalance * 2 * swapTaxes.dev;
            if (devAmt > 0) {
                payable(devWallet).sendValue(devAmt);
            }

        }
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

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

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(router), tokenAmount);

        // add the liquidity
        router.addLiquidityETH{ value: ethAmount }(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            owner(),
            block.timestamp
        );
    }

    function updateLiquidityProvide(bool state) external onlyOwner {
        //update liquidity providing state
        providingLiquidity = state;
    }

    function updateLiquidityTreshhold(uint256 new_amount) external onlyOwner {
        //update the treshhold
        tokenLiquidityThreshold = new_amount * 10**decimals();
    }

    function SetBuyTaxes(
        uint256 _marketing,
        uint256 _liquidity,
        uint256 _dev
    ) external onlyOwner {
        require((_marketing + _liquidity + _dev) <= 1, "Must keep fees at 1% or less");
        taxes = Taxes(_marketing, _liquidity, _dev);
    }

    function SetSellTaxes(
        uint256 _marketing,
        uint256 _liquidity,
        uint256 _dev
    ) external onlyOwner {
        require((_marketing + _liquidity + _dev) <= 1, "Must keep fees at 1% or less");
        sellTaxes = Taxes(_marketing, _liquidity, _dev);
    }

    function EnableTrading() external onlyOwner {
        require(!tradingEnabled, "Cannot re-enable trading");
        tradingEnabled = true;
        providingLiquidity = true;
        genesis_block = block.number;
    }

    function updatedeadline(uint256 _deadline) external onlyOwner {
        require(!tradingEnabled, "Can't change when trading has started");
        require(_deadline < 5,"Deadline should be less than 5 Blocks");
        deadline = _deadline;
    }

    function updateMaxTxLimit(uint256 maxBuy, uint256 maxSell, uint256 maxWallet) external onlyOwner {
        require(maxBuy >= 1e3, "Cannot set max buy amount lower than 0.1%");
        require(maxSell >= 1e3, "Cannot set max sell amount lower than 0.1%");
        require(maxWallet >= 1e3, "Cannot set max wallet amount lower than 0.1%");
        maxBuyLimit = maxBuy * 10**decimals();
        maxSellLimit = maxSell * 10**decimals();
        maxWalletLimit = maxWallet * 10**decimals(); 
    }

    function rescueETH(uint256 weiAmount) external onlyOwner {
        payable(devWallet).transfer(weiAmount);
    }

    function rescueERC20(address tokenAdd, uint256 amount) external onlyOwner {
        IERC20(tokenAdd).transfer(devWallet, amount);
    }

    // fallbacks
    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"routerAdd","type":"address"}],"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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"EnableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"SetBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"SetSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"coolDownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"coolDownTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exemptFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"genesis_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"providingLiquidity","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenLiquidityThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"updateLiquidityProvide","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"updateLiquidityTreshhold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxBuy","type":"uint256"},{"internalType":"uint256","name":"maxSell","type":"uint256"},{"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"updateMaxTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadline","type":"uint256"}],"name":"updatedeadline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6007805462ffffff60a01b1916905569043c33c193756480000060088190556009819055600a819055600b556003600d556063600e55600f80546001600160a01b031990811673f13f4cb3f3597cc9e13655b45e2e818990f7fee41790915560108054909116734ebf7a21c96fd364d9ee83e0ddc65890de142d7417905560016080819052600060a081905260c081905260118290556012819055601381905561014060405260e0829052610100819052610120819052601482905560158190556016556019805460ff19169091179055603c601a55348015620000e257600080fd5b5060405162002be538038062002be58339810160408190526200010591620005ea565b60408051808201825260098152682232b13a1021b7b4b760b91b6020808301918252835180850190945260068452651554d111509560d21b908401528151919291620001549160039162000544565b5080516200016a90600490602084019062000544565b5050506200018762000181620003f860201b60201c565b620003fc565b620001af336200019a6012600a62000680565b620001a990620f424062000741565b6200044e565b336000908152601760209081526040808320805460ff19166001179055805163c45a015560e01b815290518493926001600160a01b0385169263c45a01559260048083019392829003018186803b1580156200020a57600080fd5b505afa1580156200021f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002459190620005ea565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200028e57600080fd5b505afa158015620002a3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c99190620005ea565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200031257600080fd5b505af115801562000327573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034d9190620005ea565b600680546001600160a01b03199081166001600160a01b0395861617909155600780549091169184169190911790555030600090815260176020526040808220805460ff199081166001908117909255600f548516845282842080548216831790556010549094168352908220805484168217905561dead9091527f43fedf50e12e5c047fbe3576d03ab50250348e9a6030f531ab6d4ce10f5b0303805490921617905550620007b6565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620004b75760405162461bcd60e51b815260206004820152602560248201527f45524332303a2067656e65726174696f6e20746f20746865207a65726f206164604482015264647265737360d81b606482015260840160405180910390fd5b8060026000828254620004cb91906200061c565b90915550506001600160a01b03821660009081526020819052604081208054839290620004fa9084906200061c565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620005529062000763565b90600052602060002090601f016020900481019282620005765760008555620005c1565b82601f106200059157805160ff1916838001178555620005c1565b82800160010185558215620005c1579182015b82811115620005c1578251825591602001919060010190620005a4565b50620005cf929150620005d3565b5090565b5b80821115620005cf5760008155600101620005d4565b600060208284031215620005fd57600080fd5b81516001600160a01b03811681146200061557600080fd5b9392505050565b60008219821115620006325762000632620007a0565b500190565b600181815b80851115620006785781600019048211156200065c576200065c620007a0565b808516156200066a57918102915b93841c93908002906200063c565b509250929050565b60006200061560ff8416836000826200069c575060016200073b565b81620006ab575060006200073b565b8160018114620006c45760028114620006cf57620006ef565b60019150506200073b565b60ff841115620006e357620006e3620007a0565b50506001821b6200073b565b5060208310610133831016604e8410600b841016171562000714575081810a6200073b565b62000720838362000637565b8060001904821115620007375762000737620007a0565b0290505b92915050565b60008160001904831182151516156200075e576200075e620007a0565b500290565b600181811c908216806200077857607f821691505b602082108114156200079a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b61241f80620007c66000396000f3fe60806040526004361061023f5760003560e01c806375f0a8741161012e578063c5d32bb2116100ab578063ee36e3591161006f578063ee36e359146106dd578063f2fde38b146106f7578063f66895a314610717578063f887ea4014610736578063fbe6324e1461075657600080fd5b8063c5d32bb214610611578063d2ce0db214610641578063dd62ed3e14610657578063e1b450ad1461069d578063edaa1168146106bd57600080fd5b806395d89b41116100f257806395d89b411461057c5780639e252f0014610591578063a457c2d7146105b1578063a8aa1b31146105d1578063a9059cbb146105f157600080fd5b806375f0a874146104d057806385141a77146105085780638cd4426d1461051e5780638da5cb5b1461053e5780638ea5220f1461055c57600080fd5b806342b6fa11116101bc57806366a88d961161018057806366a88d961461041f5780636aa5b37f1461043557806370a082311461044b578063715018a614610481578063728f8eea1461049657600080fd5b806342b6fa11146103885780634a2b3b13146103a85780634ada218b146103c85780634e736f22146103e9578063652e2f041461040957600080fd5b80631d97b7cd116102035780631d97b7cd1461030157806323b872dd14610316578063274a533c14610336578063313ce5671461034c578063395093511461036857600080fd5b806306fdde031461024b578063095ea7b3146102765780631340538f146102a65780631675d802146102c857806318160ddd146102ec57600080fd5b3661024657005b600080fd5b34801561025757600080fd5b50610260610777565b60405161026d9190612106565b60405180910390f35b34801561028257600080fd5b5061029661029136600461202d565b610809565b604051901515815260200161026d565b3480156102b257600080fd5b506102c66102c1366004612059565b610820565b005b3480156102d457600080fd5b506102de60085481565b60405190815260200161026d565b3480156102f857600080fd5b506002546102de565b34801561030d57600080fd5b506102c6610871565b34801561032257600080fd5b50610296610331366004611fec565b610910565b34801561034257600080fd5b506102de600c5481565b34801561035857600080fd5b506040516012815260200161026d565b34801561037457600080fd5b5061029661038336600461202d565b6109c1565b34801561039457600080fd5b506102c66103a3366004612093565b6109f8565b3480156103b457600080fd5b506102c66103c33660046120ac565b610a3e565b3480156103d457600080fd5b5060075461029690600160b01b900460ff1681565b3480156103f557600080fd5b506102c66104043660046120ac565b610af3565b34801561041557600080fd5b506102de600a5481565b34801561042b57600080fd5b506102de600b5481565b34801561044157600080fd5b506102de60095481565b34801561045757600080fd5b506102de610466366004611f72565b6001600160a01b031660009081526020819052604090205490565b34801561048d57600080fd5b506102c6610ba8565b3480156104a257600080fd5b506011546012546013546104b592919083565b6040805193845260208401929092529082015260600161026d565b3480156104dc57600080fd5b50600f546104f0906001600160a01b031681565b6040516001600160a01b03909116815260200161026d565b34801561051457600080fd5b506104f061dead81565b34801561052a57600080fd5b506102c661053936600461202d565b610bde565b34801561054a57600080fd5b506005546001600160a01b03166104f0565b34801561056857600080fd5b506010546104f0906001600160a01b031681565b34801561058857600080fd5b50610260610c93565b34801561059d57600080fd5b506102c66105ac366004612093565b610ca2565b3480156105bd57600080fd5b506102966105cc36600461202d565b610d0a565b3480156105dd57600080fd5b506007546104f0906001600160a01b031681565b3480156105fd57600080fd5b5061029661060c36600461202d565b610da5565b34801561061d57600080fd5b5061029661062c366004611f72565b60176020526000908152604090205460ff1681565b34801561064d57600080fd5b506102de601a5481565b34801561066357600080fd5b506102de610672366004611fb3565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156106a957600080fd5b506102c66106b83660046120ac565b610db2565b3480156106c957600080fd5b506102c66106d8366004612093565b610f5d565b3480156106e957600080fd5b506019546102969060ff1681565b34801561070357600080fd5b506102c6610712366004611f72565b611052565b34801561072357600080fd5b506014546015546016546104b592919083565b34801561074257600080fd5b506006546104f0906001600160a01b031681565b34801561076257600080fd5b5060075461029690600160a81b900460ff1681565b6060600380546107869061235f565b80601f01602080910402602001604051908101604052809291908181526020018280546107b29061235f565b80156107ff5780601f106107d4576101008083540402835291602001916107ff565b820191906000526020600020905b8154815290600101906020018083116107e257829003601f168201915b5050505050905090565b60006108163384846110ed565b5060015b92915050565b6005546001600160a01b031633146108535760405162461bcd60e51b815260040161084a9061215b565b60405180910390fd5b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b0316331461089b5760405162461bcd60e51b815260040161084a9061215b565b600754600160b01b900460ff16156108f55760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f742072652d656e61626c652074726164696e670000000000000000604482015260640161084a565b6007805461ffff60a81b191661010160a81b17905543600c55565b600061091d848484611211565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156109a25760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161084a565b6109b685336109b18685612348565b6110ed565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916108169185906109b1908690612201565b6005546001600160a01b03163314610a225760405162461bcd60e51b815260040161084a9061215b565b610a2e6012600a61227e565b610a389082612329565b60085550565b6005546001600160a01b03163314610a685760405162461bcd60e51b815260040161084a9061215b565b600181610a758486612201565b610a7f9190612201565b1115610acd5760405162461bcd60e51b815260206004820152601c60248201527f4d757374206b6565702066656573206174203125206f72206c65737300000000604482015260640161084a565b604080516060810182528481526020810184905201819052601192909255601255601355565b6005546001600160a01b03163314610b1d5760405162461bcd60e51b815260040161084a9061215b565b600181610b2a8486612201565b610b349190612201565b1115610b825760405162461bcd60e51b815260206004820152601c60248201527f4d757374206b6565702066656573206174203125206f72206c65737300000000604482015260640161084a565b604080516060810182528481526020810184905201819052601492909255601555601655565b6005546001600160a01b03163314610bd25760405162461bcd60e51b815260040161084a9061215b565b610bdc6000611865565b565b6005546001600160a01b03163314610c085760405162461bcd60e51b815260040161084a9061215b565b60105460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb90604401602060405180830381600087803b158015610c5657600080fd5b505af1158015610c6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8e9190612076565b505050565b6060600480546107869061235f565b6005546001600160a01b03163314610ccc5760405162461bcd60e51b815260040161084a9061215b565b6010546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610d06573d6000803e3d6000fd5b5050565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610d8c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161084a565b610d9b33856109b18685612348565b5060019392505050565b6000610816338484611211565b6005546001600160a01b03163314610ddc5760405162461bcd60e51b815260040161084a9061215b565b6103e8831015610e405760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572206044820152687468616e20302e312560b81b606482015260840161084a565b6103e8821015610ea55760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f776572604482015269207468616e20302e312560b01b606482015260840161084a565b6103e8811015610f0c5760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760448201526b6572207468616e20302e312560a01b606482015260840161084a565b610f186012600a61227e565b610f229084612329565b600955610f316012600a61227e565b610f3b9083612329565b600a556012610f4b90600a61227e565b610f559082612329565b600b55505050565b6005546001600160a01b03163314610f875760405162461bcd60e51b815260040161084a9061215b565b600754600160b01b900460ff1615610fef5760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b606482015260840161084a565b6005811061104d5760405162461bcd60e51b815260206004820152602560248201527f446561646c696e652073686f756c64206265206c657373207468616e203520426044820152646c6f636b7360d81b606482015260840161084a565b600d55565b6005546001600160a01b0316331461107c5760405162461bcd60e51b815260040161084a9061215b565b6001600160a01b0381166110e15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161084a565b6110ea81611865565b50565b6001600160a01b03831661114f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161084a565b6001600160a01b0382166111b05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161084a565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600081116112735760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161084a565b6001600160a01b03831660009081526017602052604090205460ff161580156112b557506001600160a01b03821660009081526017602052604090205460ff16155b1561130957600754600160b01b900460ff166113095760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b604482015260640161084a565b6007546001600160a01b03848116911614801561133f57506001600160a01b03821660009081526017602052604090205460ff16155b80156113555750600754600160a01b900460ff16155b15611427576009548111156113ac5760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61784275794c696d6974000000604482015260640161084a565b600b54816113cf846001600160a01b031660009081526020819052604090205490565b6113d99190612201565b11156114275760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d6974604482015260640161084a565b6007546001600160a01b0384811691161480159061145e57506001600160a01b03821660009081526017602052604090205460ff16155b801561148357506001600160a01b03831660009081526017602052604090205460ff16155b80156114995750600754600160a01b900460ff16155b1561161257600a548111156114f05760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d617853656c6c4c696d69740000604482015260640161084a565b6007546001600160a01b0383811691161461158057600b5481611528846001600160a01b031660009081526020819052604090205490565b6115329190612201565b11156115805760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d6974604482015260640161084a565b60195460ff1615611612576001600160a01b0383166000908152601860205260408120546115ae9042612348565b9050601a548110156115f55760405162461bcd60e51b815260206004820152601060248201526f10dbdbdb191bdddb88195b98589b195960821b604482015260640161084a565b506001600160a01b03831660009081526018602052604090204290555b600080600061163b60405180606001604052806000815260200160008152602001600081525090565b6001600160a01b03871660009081526017602052604081205460ff1615801561167d57506001600160a01b03871660009081526017602052604090205460ff16155b80156116975750600d54600c546116949190612201565b43105b600754909150600160a01b900460ff16806116ca57506001600160a01b03881660009081526017602052604090205460ff165b806116ed57506001600160a01b03871660009081526017602052604090205460ff165b156116fb57600092506117c5565b6007546001600160a01b038881169116148015611716575080155b156117665760165460145460155461172e9190612201565b6117389190612201565b60408051606081018252601454815260155460208201526016549181019190915290955085945091506117c5565b806117b65760135460115460125461177e9190612201565b6117889190612201565b60408051606081018252601154815260125460208201526013549181019190915290955085945091506117c5565b80156117c557600e5494508493505b60646117d18588612329565b6117db9190612219565b600754909350600160a81b900460ff16801561180557506007546001600160a01b03898116911614155b156118145761181485836118b7565b6118288888611823868a612348565b611a34565b821561185b57841561185b57600060646118428789612329565b61184c9190612219565b9050611859893083611a34565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16610d06576007805460ff60a01b1916600160a01b179055816118e557611a23565b306000908152602081905260409020546008548110611a21576001600854111561190e57506008545b600061191b846002612329565b90506000818460200151846119309190612329565b61193a9190612219565b905060006119488285612348565b90504761195482611c0c565b60006119608247612348565b905060008760200151866119749190612348565b61197e9083612219565b905060008860200151826119929190612329565b905080156119a4576119a48682611d75565b88516000906119b4846002612329565b6119be9190612329565b905080156119dc57600f546119dc906001600160a01b031682611e59565b60408a01516000906119ef856002612329565b6119f99190612329565b90508015611a1757601054611a17906001600160a01b031682611e59565b5050505050505050505b505b6007805460ff60a01b191690555050565b6001600160a01b038316611a985760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161084a565b6001600160a01b038216611afa5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161084a565b6001600160a01b03831660009081526020819052604090205481811015611b725760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161084a565b611b7c8282612348565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290611bb2908490612201565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611bfe91815260200190565b60405180910390a350505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611c4157611c416123b0565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611c9557600080fd5b505afa158015611ca9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ccd9190611f96565b81600181518110611ce057611ce06123b0565b6001600160a01b039283166020918202929092010152600654611d0691309116846110ed565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611d3f908590600090869030904290600401612190565b600060405180830381600087803b158015611d5957600080fd5b505af1158015611d6d573d6000803e3d6000fd5b505050505050565b600654611d8d9030906001600160a01b0316846110ed565b6006546001600160a01b031663f305d719823085600080611db66005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b158015611e1957600080fd5b505af1158015611e2d573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611e5291906120d8565b5050505050565b80471015611ea95760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161084a565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611ef6576040519150601f19603f3d011682016040523d82523d6000602084013e611efb565b606091505b5050905080610c8e5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161084a565b600060208284031215611f8457600080fd5b8135611f8f816123c6565b9392505050565b600060208284031215611fa857600080fd5b8151611f8f816123c6565b60008060408385031215611fc657600080fd5b8235611fd1816123c6565b91506020830135611fe1816123c6565b809150509250929050565b60008060006060848603121561200157600080fd5b833561200c816123c6565b9250602084013561201c816123c6565b929592945050506040919091013590565b6000806040838503121561204057600080fd5b823561204b816123c6565b946020939093013593505050565b60006020828403121561206b57600080fd5b8135611f8f816123db565b60006020828403121561208857600080fd5b8151611f8f816123db565b6000602082840312156120a557600080fd5b5035919050565b6000806000606084860312156120c157600080fd5b505081359360208301359350604090920135919050565b6000806000606084860312156120ed57600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b8181101561213357858101830151858201604001528201612117565b81811115612145576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156121e05784516001600160a01b0316835293830193918301916001016121bb565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156122145761221461239a565b500190565b60008261223657634e487b7160e01b600052601260045260246000fd5b500490565b600181815b8085111561227657816000190482111561225c5761225c61239a565b8085161561226957918102915b93841c9390800290612240565b509250929050565b6000611f8f60ff8416836000826122975750600161081a565b816122a45750600061081a565b81600181146122ba57600281146122c4576122e0565b600191505061081a565b60ff8411156122d5576122d561239a565b50506001821b61081a565b5060208310610133831016604e8410600b8410161715612303575081810a61081a565b61230d838361223b565b80600019048211156123215761232161239a565b029392505050565b60008160001904831182151516156123435761234361239a565b500290565b60008282101561235a5761235a61239a565b500390565b600181811c9082168061237357607f821691505b6020821081141561239457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03811681146110ea57600080fd5b80151581146110ea57600080fdfea2646970667358221220c94c7040226862bcff03dea821993ff5a528006877c08204c698dc6f6d56b82e64736f6c634300080700330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x60806040526004361061023f5760003560e01c806375f0a8741161012e578063c5d32bb2116100ab578063ee36e3591161006f578063ee36e359146106dd578063f2fde38b146106f7578063f66895a314610717578063f887ea4014610736578063fbe6324e1461075657600080fd5b8063c5d32bb214610611578063d2ce0db214610641578063dd62ed3e14610657578063e1b450ad1461069d578063edaa1168146106bd57600080fd5b806395d89b41116100f257806395d89b411461057c5780639e252f0014610591578063a457c2d7146105b1578063a8aa1b31146105d1578063a9059cbb146105f157600080fd5b806375f0a874146104d057806385141a77146105085780638cd4426d1461051e5780638da5cb5b1461053e5780638ea5220f1461055c57600080fd5b806342b6fa11116101bc57806366a88d961161018057806366a88d961461041f5780636aa5b37f1461043557806370a082311461044b578063715018a614610481578063728f8eea1461049657600080fd5b806342b6fa11146103885780634a2b3b13146103a85780634ada218b146103c85780634e736f22146103e9578063652e2f041461040957600080fd5b80631d97b7cd116102035780631d97b7cd1461030157806323b872dd14610316578063274a533c14610336578063313ce5671461034c578063395093511461036857600080fd5b806306fdde031461024b578063095ea7b3146102765780631340538f146102a65780631675d802146102c857806318160ddd146102ec57600080fd5b3661024657005b600080fd5b34801561025757600080fd5b50610260610777565b60405161026d9190612106565b60405180910390f35b34801561028257600080fd5b5061029661029136600461202d565b610809565b604051901515815260200161026d565b3480156102b257600080fd5b506102c66102c1366004612059565b610820565b005b3480156102d457600080fd5b506102de60085481565b60405190815260200161026d565b3480156102f857600080fd5b506002546102de565b34801561030d57600080fd5b506102c6610871565b34801561032257600080fd5b50610296610331366004611fec565b610910565b34801561034257600080fd5b506102de600c5481565b34801561035857600080fd5b506040516012815260200161026d565b34801561037457600080fd5b5061029661038336600461202d565b6109c1565b34801561039457600080fd5b506102c66103a3366004612093565b6109f8565b3480156103b457600080fd5b506102c66103c33660046120ac565b610a3e565b3480156103d457600080fd5b5060075461029690600160b01b900460ff1681565b3480156103f557600080fd5b506102c66104043660046120ac565b610af3565b34801561041557600080fd5b506102de600a5481565b34801561042b57600080fd5b506102de600b5481565b34801561044157600080fd5b506102de60095481565b34801561045757600080fd5b506102de610466366004611f72565b6001600160a01b031660009081526020819052604090205490565b34801561048d57600080fd5b506102c6610ba8565b3480156104a257600080fd5b506011546012546013546104b592919083565b6040805193845260208401929092529082015260600161026d565b3480156104dc57600080fd5b50600f546104f0906001600160a01b031681565b6040516001600160a01b03909116815260200161026d565b34801561051457600080fd5b506104f061dead81565b34801561052a57600080fd5b506102c661053936600461202d565b610bde565b34801561054a57600080fd5b506005546001600160a01b03166104f0565b34801561056857600080fd5b506010546104f0906001600160a01b031681565b34801561058857600080fd5b50610260610c93565b34801561059d57600080fd5b506102c66105ac366004612093565b610ca2565b3480156105bd57600080fd5b506102966105cc36600461202d565b610d0a565b3480156105dd57600080fd5b506007546104f0906001600160a01b031681565b3480156105fd57600080fd5b5061029661060c36600461202d565b610da5565b34801561061d57600080fd5b5061029661062c366004611f72565b60176020526000908152604090205460ff1681565b34801561064d57600080fd5b506102de601a5481565b34801561066357600080fd5b506102de610672366004611fb3565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156106a957600080fd5b506102c66106b83660046120ac565b610db2565b3480156106c957600080fd5b506102c66106d8366004612093565b610f5d565b3480156106e957600080fd5b506019546102969060ff1681565b34801561070357600080fd5b506102c6610712366004611f72565b611052565b34801561072357600080fd5b506014546015546016546104b592919083565b34801561074257600080fd5b506006546104f0906001600160a01b031681565b34801561076257600080fd5b5060075461029690600160a81b900460ff1681565b6060600380546107869061235f565b80601f01602080910402602001604051908101604052809291908181526020018280546107b29061235f565b80156107ff5780601f106107d4576101008083540402835291602001916107ff565b820191906000526020600020905b8154815290600101906020018083116107e257829003601f168201915b5050505050905090565b60006108163384846110ed565b5060015b92915050565b6005546001600160a01b031633146108535760405162461bcd60e51b815260040161084a9061215b565b60405180910390fd5b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b0316331461089b5760405162461bcd60e51b815260040161084a9061215b565b600754600160b01b900460ff16156108f55760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f742072652d656e61626c652074726164696e670000000000000000604482015260640161084a565b6007805461ffff60a81b191661010160a81b17905543600c55565b600061091d848484611211565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156109a25760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161084a565b6109b685336109b18685612348565b6110ed565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916108169185906109b1908690612201565b6005546001600160a01b03163314610a225760405162461bcd60e51b815260040161084a9061215b565b610a2e6012600a61227e565b610a389082612329565b60085550565b6005546001600160a01b03163314610a685760405162461bcd60e51b815260040161084a9061215b565b600181610a758486612201565b610a7f9190612201565b1115610acd5760405162461bcd60e51b815260206004820152601c60248201527f4d757374206b6565702066656573206174203125206f72206c65737300000000604482015260640161084a565b604080516060810182528481526020810184905201819052601192909255601255601355565b6005546001600160a01b03163314610b1d5760405162461bcd60e51b815260040161084a9061215b565b600181610b2a8486612201565b610b349190612201565b1115610b825760405162461bcd60e51b815260206004820152601c60248201527f4d757374206b6565702066656573206174203125206f72206c65737300000000604482015260640161084a565b604080516060810182528481526020810184905201819052601492909255601555601655565b6005546001600160a01b03163314610bd25760405162461bcd60e51b815260040161084a9061215b565b610bdc6000611865565b565b6005546001600160a01b03163314610c085760405162461bcd60e51b815260040161084a9061215b565b60105460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb90604401602060405180830381600087803b158015610c5657600080fd5b505af1158015610c6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8e9190612076565b505050565b6060600480546107869061235f565b6005546001600160a01b03163314610ccc5760405162461bcd60e51b815260040161084a9061215b565b6010546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610d06573d6000803e3d6000fd5b5050565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610d8c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161084a565b610d9b33856109b18685612348565b5060019392505050565b6000610816338484611211565b6005546001600160a01b03163314610ddc5760405162461bcd60e51b815260040161084a9061215b565b6103e8831015610e405760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572206044820152687468616e20302e312560b81b606482015260840161084a565b6103e8821015610ea55760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f776572604482015269207468616e20302e312560b01b606482015260840161084a565b6103e8811015610f0c5760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760448201526b6572207468616e20302e312560a01b606482015260840161084a565b610f186012600a61227e565b610f229084612329565b600955610f316012600a61227e565b610f3b9083612329565b600a556012610f4b90600a61227e565b610f559082612329565b600b55505050565b6005546001600160a01b03163314610f875760405162461bcd60e51b815260040161084a9061215b565b600754600160b01b900460ff1615610fef5760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b606482015260840161084a565b6005811061104d5760405162461bcd60e51b815260206004820152602560248201527f446561646c696e652073686f756c64206265206c657373207468616e203520426044820152646c6f636b7360d81b606482015260840161084a565b600d55565b6005546001600160a01b0316331461107c5760405162461bcd60e51b815260040161084a9061215b565b6001600160a01b0381166110e15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161084a565b6110ea81611865565b50565b6001600160a01b03831661114f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161084a565b6001600160a01b0382166111b05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161084a565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600081116112735760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161084a565b6001600160a01b03831660009081526017602052604090205460ff161580156112b557506001600160a01b03821660009081526017602052604090205460ff16155b1561130957600754600160b01b900460ff166113095760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b604482015260640161084a565b6007546001600160a01b03848116911614801561133f57506001600160a01b03821660009081526017602052604090205460ff16155b80156113555750600754600160a01b900460ff16155b15611427576009548111156113ac5760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61784275794c696d6974000000604482015260640161084a565b600b54816113cf846001600160a01b031660009081526020819052604090205490565b6113d99190612201565b11156114275760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d6974604482015260640161084a565b6007546001600160a01b0384811691161480159061145e57506001600160a01b03821660009081526017602052604090205460ff16155b801561148357506001600160a01b03831660009081526017602052604090205460ff16155b80156114995750600754600160a01b900460ff16155b1561161257600a548111156114f05760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d617853656c6c4c696d69740000604482015260640161084a565b6007546001600160a01b0383811691161461158057600b5481611528846001600160a01b031660009081526020819052604090205490565b6115329190612201565b11156115805760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d6974604482015260640161084a565b60195460ff1615611612576001600160a01b0383166000908152601860205260408120546115ae9042612348565b9050601a548110156115f55760405162461bcd60e51b815260206004820152601060248201526f10dbdbdb191bdddb88195b98589b195960821b604482015260640161084a565b506001600160a01b03831660009081526018602052604090204290555b600080600061163b60405180606001604052806000815260200160008152602001600081525090565b6001600160a01b03871660009081526017602052604081205460ff1615801561167d57506001600160a01b03871660009081526017602052604090205460ff16155b80156116975750600d54600c546116949190612201565b43105b600754909150600160a01b900460ff16806116ca57506001600160a01b03881660009081526017602052604090205460ff165b806116ed57506001600160a01b03871660009081526017602052604090205460ff165b156116fb57600092506117c5565b6007546001600160a01b038881169116148015611716575080155b156117665760165460145460155461172e9190612201565b6117389190612201565b60408051606081018252601454815260155460208201526016549181019190915290955085945091506117c5565b806117b65760135460115460125461177e9190612201565b6117889190612201565b60408051606081018252601154815260125460208201526013549181019190915290955085945091506117c5565b80156117c557600e5494508493505b60646117d18588612329565b6117db9190612219565b600754909350600160a81b900460ff16801561180557506007546001600160a01b03898116911614155b156118145761181485836118b7565b6118288888611823868a612348565b611a34565b821561185b57841561185b57600060646118428789612329565b61184c9190612219565b9050611859893083611a34565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16610d06576007805460ff60a01b1916600160a01b179055816118e557611a23565b306000908152602081905260409020546008548110611a21576001600854111561190e57506008545b600061191b846002612329565b90506000818460200151846119309190612329565b61193a9190612219565b905060006119488285612348565b90504761195482611c0c565b60006119608247612348565b905060008760200151866119749190612348565b61197e9083612219565b905060008860200151826119929190612329565b905080156119a4576119a48682611d75565b88516000906119b4846002612329565b6119be9190612329565b905080156119dc57600f546119dc906001600160a01b031682611e59565b60408a01516000906119ef856002612329565b6119f99190612329565b90508015611a1757601054611a17906001600160a01b031682611e59565b5050505050505050505b505b6007805460ff60a01b191690555050565b6001600160a01b038316611a985760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161084a565b6001600160a01b038216611afa5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161084a565b6001600160a01b03831660009081526020819052604090205481811015611b725760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161084a565b611b7c8282612348565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290611bb2908490612201565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611bfe91815260200190565b60405180910390a350505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611c4157611c416123b0565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611c9557600080fd5b505afa158015611ca9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ccd9190611f96565b81600181518110611ce057611ce06123b0565b6001600160a01b039283166020918202929092010152600654611d0691309116846110ed565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611d3f908590600090869030904290600401612190565b600060405180830381600087803b158015611d5957600080fd5b505af1158015611d6d573d6000803e3d6000fd5b505050505050565b600654611d8d9030906001600160a01b0316846110ed565b6006546001600160a01b031663f305d719823085600080611db66005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b158015611e1957600080fd5b505af1158015611e2d573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611e5291906120d8565b5050505050565b80471015611ea95760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161084a565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611ef6576040519150601f19603f3d011682016040523d82523d6000602084013e611efb565b606091505b5050905080610c8e5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161084a565b600060208284031215611f8457600080fd5b8135611f8f816123c6565b9392505050565b600060208284031215611fa857600080fd5b8151611f8f816123c6565b60008060408385031215611fc657600080fd5b8235611fd1816123c6565b91506020830135611fe1816123c6565b809150509250929050565b60008060006060848603121561200157600080fd5b833561200c816123c6565b9250602084013561201c816123c6565b929592945050506040919091013590565b6000806040838503121561204057600080fd5b823561204b816123c6565b946020939093013593505050565b60006020828403121561206b57600080fd5b8135611f8f816123db565b60006020828403121561208857600080fd5b8151611f8f816123db565b6000602082840312156120a557600080fd5b5035919050565b6000806000606084860312156120c157600080fd5b505081359360208301359350604090920135919050565b6000806000606084860312156120ed57600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b8181101561213357858101830151858201604001528201612117565b81811115612145576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156121e05784516001600160a01b0316835293830193918301916001016121bb565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156122145761221461239a565b500190565b60008261223657634e487b7160e01b600052601260045260246000fd5b500490565b600181815b8085111561227657816000190482111561225c5761225c61239a565b8085161561226957918102915b93841c9390800290612240565b509250929050565b6000611f8f60ff8416836000826122975750600161081a565b816122a45750600061081a565b81600181146122ba57600281146122c4576122e0565b600191505061081a565b60ff8411156122d5576122d561239a565b50506001821b61081a565b5060208310610133831016604e8410600b8410161715612303575081810a61081a565b61230d838361223b565b80600019048211156123215761232161239a565b029392505050565b60008160001904831182151516156123435761234361239a565b500290565b60008282101561235a5761235a61239a565b500390565b600181811c9082168061237357607f821691505b6020821081141561239457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03811681146110ea57600080fd5b80151581146110ea57600080fdfea2646970667358221220c94c7040226862bcff03dea821993ff5a528006877c08204c698dc6f6d56b82e64736f6c63430008070033

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

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

-----Decoded View---------------
Arg [0] : routerAdd (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d


Deployed Bytecode Sourcemap

13837:11475:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2613:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15855:161;;;;;;;;;;-1:-1:-1;15855:161:0;;;;;:::i;:::-;;:::i;:::-;;;4483:14:1;;4476:22;4458:41;;4446:2;4431:18;15855:161:0;4318:187:1;23075:152:0;;;;;;;;;;-1:-1:-1;23075:152:0;;;;;:::i;:::-;;:::i;:::-;;14109:56;;;;;;;;;;;;;;;;;;;14811:25:1;;;14799:2;14784:18;14109:56:0;14665:177:1;3733:108:0;;;;;;;;;;-1:-1:-1;3821:12:0;;3733:108;;23999:222;;;;;;;;;;;;;:::i;16024:448::-;;;;;;;;;;-1:-1:-1;16024:448:0;;;;;:::i;:::-;;:::i;14331:28::-;;;;;;;;;;;;;;;;3575:93;;;;;;;;;;-1:-1:-1;3575:93:0;;3658:2;16298:36:1;;16286:2;16271:18;3575:93:0;16156:184:1;16480:248:0;;;;;;;;;;-1:-1:-1;16480:248:0;;;;;:::i;:::-;;:::i;23235:177::-;;;;;;;;;;-1:-1:-1;23235:177:0;;;;;:::i;:::-;;:::i;23420:279::-;;;;;;;;;;-1:-1:-1;23420:279:0;;;;;:::i;:::-;;:::i;14066:34::-;;;;;;;;;;-1:-1:-1;14066:34:0;;;;-1:-1:-1;;;14066:34:0;;;;;;23707:284;;;;;;;;;;-1:-1:-1;23707:284:0;;;;;:::i;:::-;;:::i;14223:45::-;;;;;;;;;;;;;;;;14275:47;;;;;;;;;;;;;;;;14172:44;;;;;;;;;;;;;;;;3904:127;;;;;;;;;;-1:-1:-1;3904:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;4005:18:0;3978:7;4005:18;;;;;;;;;;;;3904:127;12500:94;;;;;;;;;;;;;:::i;14793:35::-;;;;;;;;;;-1:-1:-1;14793:35:0;;;;;;;;;;;;;;;;16034:25:1;;;16090:2;16075:18;;16068:34;;;;16118:18;;;16111:34;16022:2;16007:18;14793:35:0;15832:319:1;14440:75:0;;;;;;;;;;-1:-1:-1;14440:75:0;;;;-1:-1:-1;;;;;14440:75:0;;;;;;-1:-1:-1;;;;;3383:32:1;;;3365:51;;3353:2;3338:18;14440:75:0;3219:203:1;14598:79:0;;;;;;;;;;;;14635:42;14598:79;;25117:137;;;;;;;;;;-1:-1:-1;25117:137:0;;;;;:::i;:::-;;:::i;12277:87::-;;;;;;;;;;-1:-1:-1;12350:6:0;;-1:-1:-1;;;;;12350:6:0;12277:87;;14522:69;;;;;;;;;;-1:-1:-1;14522:69:0;;;;-1:-1:-1;;;;;14522:69:0;;;2832:104;;;;;;;;;;;;;:::i;24995:114::-;;;;;;;;;;-1:-1:-1;24995:114:0;;;;;:::i;:::-;;:::i;16736:410::-;;;;;;;;;;-1:-1:-1;16736:410:0;;;;;:::i;:::-;;:::i;13950:19::-;;;;;;;;;;-1:-1:-1;13950:19:0;;;;-1:-1:-1;;;;;13950:19:0;;;17154:165;;;;;;;;;;-1:-1:-1;17154:165:0;;;;;:::i;:::-;;:::i;14883:41::-;;;;;;;;;;-1:-1:-1;14883:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15043:40;;;;;;;;;;;;;;;;4523:201;;;;;;;;;;-1:-1:-1;4523:201:0;;;;;:::i;:::-;-1:-1:-1;;;;;4689:18:0;;;4657:7;4689:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4523:201;24487:500;;;;;;;;;;-1:-1:-1;24487:500:0;;;;;:::i;:::-;;:::i;24229:250::-;;;;;;;;;;-1:-1:-1;24229:250:0;;;;;:::i;:::-;;:::i;15002:34::-;;;;;;;;;;-1:-1:-1;15002:34:0;;;;;;;;12602:192;;;;;;;;;;-1:-1:-1;12602:192:0;;;;;:::i;:::-;;:::i;14835:39::-;;;;;;;;;;-1:-1:-1;14835:39:0;;;;;;;;;;;;13922:21;;;;;;;;;;-1:-1:-1;13922:21:0;;;;-1:-1:-1;;;;;13922:21:0;;;14021:38;;;;;;;;;;-1:-1:-1;14021:38:0;;;;-1:-1:-1;;;14021:38:0;;;;;;2613:100;2667:13;2700:5;2693:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2613:100;:::o;15855:161::-;15930:4;15947:39;415:10;15970:7;15979:6;15947:8;:39::i;:::-;-1:-1:-1;16004:4:0;15855:161;;;;;:::o;23075:152::-;12350:6;;-1:-1:-1;;;;;12350:6:0;415:10;12412:23;12404:68;;;;-1:-1:-1;;;12404:68:0;;;;;;;:::i;:::-;;;;;;;;;23193:18:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;23193:26:0::1;-1:-1:-1::0;;;;23193:26:0;;::::1;::::0;;;::::1;::::0;;23075:152::o;23999:222::-;12350:6;;-1:-1:-1;;;;;12350:6:0;415:10;12412:23;12404:68;;;;-1:-1:-1;;;12404:68:0;;;;;;;:::i;:::-;24063:14:::1;::::0;-1:-1:-1;;;24063:14:0;::::1;;;24062:15;24054:52;;;::::0;-1:-1:-1;;;24054:52:0;;10659:2:1;24054:52:0::1;::::0;::::1;10641:21:1::0;10698:2;10678:18;;;10671:30;10737:26;10717:18;;;10710:54;10781:18;;24054:52:0::1;10457:348:1::0;24054:52:0::1;24117:14;:21:::0;;-1:-1:-1;;;;24149:25:0;-1:-1:-1;;;24149:25:0;;;24201:12:::1;24185:13;:28:::0;23999:222::o;16024:448::-;16156:4;16173:36;16183:6;16191:9;16202:6;16173:9;:36::i;:::-;-1:-1:-1;;;;;16249:19:0;;16222:24;16249:19;;;:11;:19;;;;;;;;415:10;16249:33;;;;;;;;16301:26;;;;16293:79;;;;-1:-1:-1;;;16293:79:0;;11418:2:1;16293:79:0;;;11400:21:1;11457:2;11437:18;;;11430:30;11496:34;11476:18;;;11469:62;-1:-1:-1;;;11547:18:1;;;11540:38;11595:19;;16293:79:0;11216:404:1;16293:79:0;16383:57;16392:6;415:10;16414:25;16433:6;16414:16;:25;:::i;:::-;16383:8;:57::i;:::-;-1:-1:-1;16460:4:0;;16024:448;-1:-1:-1;;;;16024:448:0:o;16480:248::-;415:10;16596:4;16650:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;16650:34:0;;;;;;;;;;16596:4;;16618:80;;16641:7;;16650:47;;16687:10;;16650:47;:::i;23235:177::-;12350:6;;-1:-1:-1;;;;;12350:6:0;415:10;12412:23;12404:68;;;;-1:-1:-1;;;12404:68:0;;;;;;;:::i;:::-;23390:14:::1;3658:2:::0;23390::::1;:14;:::i;:::-;23377:27;::::0;:10;:27:::1;:::i;:::-;23351:23;:53:::0;-1:-1:-1;23235:177:0:o;23420:279::-;12350:6;;-1:-1:-1;;;;;12350:6:0;415:10;12412:23;12404:68;;;;-1:-1:-1;;;12404:68:0;;;;;;;:::i;:::-;23603:1:::1;23594:4:::0;23568:23:::1;23581:10:::0;23568;:23:::1;:::i;:::-;:30;;;;:::i;:::-;23567:37;;23559:78;;;::::0;-1:-1:-1;;;23559:78:0;;9896:2:1;23559:78:0::1;::::0;::::1;9878:21:1::0;9935:2;9915:18;;;9908:30;9974;9954:18;;;9947:58;10022:18;;23559:78:0::1;9694:352:1::0;23559:78:0::1;23656:35;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;23648:5:::1;:43:::0;;;;;;;;23420:279::o;23707:284::-;12350:6;;-1:-1:-1;;;;;12350:6:0;415:10;12412:23;12404:68;;;;-1:-1:-1;;;12404:68:0;;;;;;;:::i;:::-;23891:1:::1;23882:4:::0;23856:23:::1;23869:10:::0;23856;:23:::1;:::i;:::-;:30;;;;:::i;:::-;23855:37;;23847:78;;;::::0;-1:-1:-1;;;23847:78:0;;9896:2:1;23847:78:0::1;::::0;::::1;9878:21:1::0;9935:2;9915:18;;;9908:30;9974;9954:18;;;9947:58;10022:18;;23847:78:0::1;9694:352:1::0;23847:78:0::1;23948:35;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;23936:9:::1;:47:::0;;;;;;;;23707:284::o;12500:94::-;12350:6;;-1:-1:-1;;;;;12350:6:0;415:10;12412:23;12404:68;;;;-1:-1:-1;;;12404:68:0;;;;;;;:::i;:::-;12565:21:::1;12583:1;12565:9;:21::i;:::-;12500:94::o:0;25117:137::-;12350:6;;-1:-1:-1;;;;;12350:6:0;415:10;12412:23;12404:68;;;;-1:-1:-1;;;12404:68:0;;;;;;;:::i;:::-;25228:9:::1;::::0;25202:44:::1;::::0;-1:-1:-1;;;25202:44:0;;-1:-1:-1;;;;;25228:9:0;;::::1;25202:44;::::0;::::1;3601:51:1::0;3668:18;;;3661:34;;;25202:25:0;;::::1;::::0;::::1;::::0;3574:18:1;;25202:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;25117:137:::0;;:::o;2832:104::-;2888:13;2921:7;2914:14;;;;;:::i;24995:114::-;12350:6;;-1:-1:-1;;;;;12350:6:0;415:10;12412:23;12404:68;;;;-1:-1:-1;;;12404:68:0;;;;;;;:::i;:::-;25071:9:::1;::::0;25063:38:::1;::::0;-1:-1:-1;;;;;25071:9:0;;::::1;::::0;25063:38;::::1;;;::::0;25091:9;;25071::::1;25063:38:::0;25071:9;25063:38;25091:9;25071;25063:38;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;24995:114:::0;:::o;16736:410::-;415:10;16857:4;16906:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;16906:34:0;;;;;;;;;;16959:35;;;;16951:85;;;;-1:-1:-1;;;16951:85:0;;14461:2:1;16951:85:0;;;14443:21:1;14500:2;14480:18;;;14473:30;14539:34;14519:18;;;14512:62;-1:-1:-1;;;14590:18:1;;;14583:35;14635:19;;16951:85:0;14259:401:1;16951:85:0;17047:67;415:10;17070:7;17079:34;17098:15;17079:16;:34;:::i;17047:67::-;-1:-1:-1;17134:4:0;;16736:410;-1:-1:-1;;;16736:410:0:o;17154:165::-;17232:4;17249:40;17259:10;17271:9;17282:6;17249:9;:40::i;24487:500::-;12350:6;;-1:-1:-1;;;;;12350:6:0;415:10;12412:23;12404:68;;;;-1:-1:-1;;;12404:68:0;;;;;;;:::i;:::-;24613:3:::1;24603:6;:13;;24595:67;;;::::0;-1:-1:-1;;;24595:67:0;;9486:2:1;24595:67:0::1;::::0;::::1;9468:21:1::0;9525:2;9505:18;;;9498:30;9564:34;9544:18;;;9537:62;-1:-1:-1;;;9615:18:1;;;9608:39;9664:19;;24595:67:0::1;9284:405:1::0;24595:67:0::1;24692:3;24681:7;:14;;24673:69;;;::::0;-1:-1:-1;;;24673:69:0;;7109:2:1;24673:69:0::1;::::0;::::1;7091:21:1::0;7148:2;7128:18;;;7121:30;7187:34;7167:18;;;7160:62;-1:-1:-1;;;7238:18:1;;;7231:40;7288:19;;24673:69:0::1;6907:406:1::0;24673:69:0::1;24774:3;24761:9;:16;;24753:73;;;::::0;-1:-1:-1;;;24753:73:0;;8288:2:1;24753:73:0::1;::::0;::::1;8270:21:1::0;8327:2;8307:18;;;8300:30;8366:34;8346:18;;;8339:62;-1:-1:-1;;;8417:18:1;;;8410:42;8469:19;;24753:73:0::1;8086:408:1::0;24753:73:0::1;24860:14;3658:2:::0;24860::::1;:14;:::i;:::-;24851:23;::::0;:6;:23:::1;:::i;:::-;24837:11;:37:::0;24910:14:::1;3658:2:::0;24910::::1;:14;:::i;:::-;24900:24;::::0;:7;:24:::1;:::i;:::-;24885:12;:39:::0;3658:2;24964:14:::1;::::0;:2:::1;:14;:::i;:::-;24952:26;::::0;:9;:26:::1;:::i;:::-;24935:14;:43:::0;-1:-1:-1;;;24487:500:0:o;24229:250::-;12350:6;;-1:-1:-1;;;;;12350:6:0;415:10;12412:23;12404:68;;;;-1:-1:-1;;;12404:68:0;;;;;;;:::i;:::-;24311:14:::1;::::0;-1:-1:-1;;;24311:14:0;::::1;;;24310:15;24302:65;;;::::0;-1:-1:-1;;;24302:65:0;;11012:2:1;24302:65:0::1;::::0;::::1;10994:21:1::0;11051:2;11031:18;;;11024:30;11090:34;11070:18;;;11063:62;-1:-1:-1;;;11141:18:1;;;11134:35;11186:19;;24302:65:0::1;10810:401:1::0;24302:65:0::1;24398:1;24386:9;:13;24378:62;;;::::0;-1:-1:-1;;;24378:62:0;;10253:2:1;24378:62:0::1;::::0;::::1;10235:21:1::0;10292:2;10272:18;;;10265:30;10331:34;10311:18;;;10304:62;-1:-1:-1;;;10382:18:1;;;10375:35;10427:19;;24378:62:0::1;10051:401:1::0;24378:62:0::1;24451:8;:20:::0;24229:250::o;12602:192::-;12350:6;;-1:-1:-1;;;;;12350:6:0;415:10;12412:23;12404:68;;;;-1:-1:-1;;;12404:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12691:22:0;::::1;12683:73;;;::::0;-1:-1:-1;;;12683:73:0;;6299:2:1;12683:73:0::1;::::0;::::1;6281:21:1::0;6338:2;6318:18;;;6311:30;6377:34;6357:18;;;6350:62;-1:-1:-1;;;6428:18:1;;;6421:36;6474:19;;12683:73:0::1;6097:402:1::0;12683:73:0::1;12767:19;12777:8;12767:9;:19::i;:::-;12602:192:::0;:::o;10576:380::-;-1:-1:-1;;;;;10712:19:0;;10704:68;;;;-1:-1:-1;;;10704:68:0;;13697:2:1;10704:68:0;;;13679:21:1;13736:2;13716:18;;;13709:30;13775:34;13755:18;;;13748:62;-1:-1:-1;;;13826:18:1;;;13819:34;13870:19;;10704:68:0;13495:400:1;10704:68:0;-1:-1:-1;;;;;10791:21:0;;10783:68;;;;-1:-1:-1;;;10783:68:0;;6706:2:1;10783:68:0;;;6688:21:1;6745:2;6725:18;;;6718:30;6784:34;6764:18;;;6757:62;-1:-1:-1;;;6835:18:1;;;6828:32;6877:19;;10783:68:0;6504:398:1;10783:68:0;-1:-1:-1;;;;;10864:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10916:32;;14811:25:1;;;10916:32:0;;14784:18:1;10916:32:0;;;;;;;10576:380;;;:::o;17419:2988::-;17569:1;17560:6;:10;17552:64;;;;-1:-1:-1;;;17552:64:0;;12188:2:1;17552:64:0;;;12170:21:1;12227:2;12207:18;;;12200:30;12266:34;12246:18;;;12239:62;-1:-1:-1;;;12317:18:1;;;12310:39;12366:19;;17552:64:0;11986:405:1;17552:64:0;-1:-1:-1;;;;;17634:17:0;;;;;;:9;:17;;;;;;;;17633:18;:43;;;;-1:-1:-1;;;;;;17656:20:0;;;;;;:9;:20;;;;;;;;17655:21;17633:43;17629:122;;;17701:14;;-1:-1:-1;;;17701:14:0;;;;17693:46;;;;-1:-1:-1;;;17693:46:0;;12598:2:1;17693:46:0;;;12580:21:1;12637:2;12617:18;;;12610:30;-1:-1:-1;;;12656:18:1;;;12649:49;12715:18;;17693:46:0;12396:343:1;17693:46:0;17777:4;;-1:-1:-1;;;;;17767:14:0;;;17777:4;;17767:14;:39;;;;-1:-1:-1;;;;;;17786:20:0;;;;;;:9;:20;;;;;;;;17785:21;17767:39;:59;;;;-1:-1:-1;17811:15:0;;-1:-1:-1;;;17811:15:0;;;;17810:16;17767:59;17763:311;;;17861:11;;17851:6;:21;;17843:63;;;;-1:-1:-1;;;17843:63:0;;5941:2:1;17843:63:0;;;5923:21:1;5980:2;5960:18;;;5953:30;6019:31;5999:18;;;5992:59;6068:18;;17843:63:0;5739:353:1;17843:63:0;17980:14;;17970:6;17947:20;17957:9;-1:-1:-1;;;;;4005:18:0;3978:7;4005:18;;;;;;;;;;;;3904:127;17947:20;:29;;;;:::i;:::-;:47;;17921:141;;;;-1:-1:-1;;;17921:141:0;;7927:2:1;17921:141:0;;;7909:21:1;;;7946:18;;;7939:30;8005:34;7985:18;;;7978:62;8057:18;;17921:141:0;7725:356:1;17921:141:0;18114:4;;-1:-1:-1;;;;;18104:14:0;;;18114:4;;18104:14;;;;:39;;-1:-1:-1;;;;;;18123:20:0;;;;;;:9;:20;;;;;;;;18122:21;18104:39;:61;;;;-1:-1:-1;;;;;;18148:17:0;;;;;;:9;:17;;;;;;;;18147:18;18104:61;:81;;;;-1:-1:-1;18170:15:0;;-1:-1:-1;;;18170:15:0;;;;18169:16;18104:81;18086:682;;;18230:12;;18220:6;:22;;18212:65;;;;-1:-1:-1;;;18212:65:0;;14102:2:1;18212:65:0;;;14084:21:1;14141:2;14121:18;;;14114:30;14180:32;14160:18;;;14153:60;14230:18;;18212:65:0;13900:354:1;18212:65:0;18309:4;;-1:-1:-1;;;;;18296:17:0;;;18309:4;;18296:17;18292:211;;18397:14;;18387:6;18364:20;18374:9;-1:-1:-1;;;;;4005:18:0;3978:7;4005:18;;;;;;;;;;;;3904:127;18364:20;:29;;;;:::i;:::-;:47;;18334:153;;;;-1:-1:-1;;;18334:153:0;;7927:2:1;18334:153:0;;;7909:21:1;;;7946:18;;;7939:30;8005:34;7985:18;;;7978:62;8057:18;;18334:153:0;7725:356:1;18334:153:0;18521:15;;;;18517:240;;;-1:-1:-1;;;;;18596:17:0;;18557:18;18596:17;;;:9;:17;;;;;;18578:35;;:15;:35;:::i;:::-;18557:56;;18654:12;;18640:10;:26;;18632:55;;;;-1:-1:-1;;;18632:55:0;;12946:2:1;18632:55:0;;;12928:21:1;12985:2;12965:18;;;12958:30;-1:-1:-1;;;13004:18:1;;;12997:46;13060:18;;18632:55:0;12744:340:1;18632:55:0;-1:-1:-1;;;;;;18706:17:0;;;;;;:9;:17;;;;;18726:15;18706:35;;18517:240;18780:15;18806:14;18831:11;18853:25;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;18853:25:0;-1:-1:-1;;;;;18912:17:0;;18891;18912;;;:9;:17;;;;;;;;18911:18;:56;;;;-1:-1:-1;;;;;;18947:20:0;;;;;;:9;:20;;;;;;;;18946:21;18911:56;:112;;;;;19015:8;;18999:13;;:24;;;;:::i;:::-;18984:12;:39;18911:112;19111:15;;18891:132;;-1:-1:-1;;;;19111:15:0;;;;;:36;;-1:-1:-1;;;;;;19130:17:0;;;;;;:9;:17;;;;;;;;19111:36;:60;;;-1:-1:-1;;;;;;19151:20:0;;;;;;:9;:20;;;;;;;;19111:60;19107:716;;;19192:1;19186:7;;19107:716;;;19257:4;;-1:-1:-1;;;;;19244:17:0;;;19257:4;;19244:17;:34;;;;;19266:12;19265:13;19244:34;19240:583;;;19400:13;;:9;19361:19;19322;;:58;;19361:19;19322:58;:::i;:::-;:91;;;;:::i;:::-;19460:24;;;;;;;;19475:9;19460:24;;;;;;;;;;;;;;;;;;19295:118;;-1:-1:-1;19295:118:0;;-1:-1:-1;19460:24:0;-1:-1:-1;19240:583:0;;;19507:12;19502:321;;19633:9;;:5;19598:15;19563;;:50;;19598:15;19563:50;:::i;:::-;:79;;;;:::i;:::-;19688:20;;;;;;;;19703:5;19688:20;;;;;;;;;;;;;;;;;;19536:106;;-1:-1:-1;19536:106:0;;-1:-1:-1;19688:20:0;-1:-1:-1;19502:321:0;;;19730:12;19726:97;;;19769:9;;;-1:-1:-1;19769:9:0;;-1:-1:-1;19726:97:0;19861:3;19842:15;19851:6;19842;:15;:::i;:::-;19841:23;;;;:::i;:::-;19978:18;;19835:29;;-1:-1:-1;;;;19978:18:0;;;;:36;;;;-1:-1:-1;20010:4:0;;-1:-1:-1;;;;;20000:14:0;;;20010:4;;20000:14;;19978:36;19974:76;;;20016:34;20028:7;20037:12;20016:11;:34::i;:::-;20092:48;20108:6;20116:9;20127:12;20136:3;20127:6;:12;:::i;:::-;20092:15;:48::i;:::-;20155:7;;20151:249;;20227:11;;20223:164;;20259:17;20300:3;20280:16;20289:7;20280:6;:16;:::i;:::-;20279:24;;;;:::i;:::-;20259:44;;20322:49;20338:6;20354:4;20361:9;20322:15;:49::i;:::-;20240:147;20223:164;17541:2866;;;;;17419:2988;;;:::o;12802:173::-;12877:6;;;-1:-1:-1;;;;;12894:17:0;;;-1:-1:-1;;;;;;12894:17:0;;;;;;;12927:40;;12877:6;;;12894:17;12877:6;;12927:40;;12858:16;;12927:40;12847:128;12802:173;:::o;20415:1605::-;15129:15;;-1:-1:-1;;;15129:15:0;;;;15124:125;;15161:15;:22;;-1:-1:-1;;;;15161:22:0;-1:-1:-1;;;15161:22:0;;;20511:12;20508:49:::1;;20539:7;;20508:49;20613:4;20569:23;4005:18:::0;;;;;;;;;;;20653:23:::1;::::0;20634:42;::::1;20630:1383;;20723:1;20697:23;;:27;20693:109;;;-1:-1:-1::0;20763:23:0::1;::::0;20693:109:::1;20873:19;20895:11;:7:::0;20905:1:::1;20895:11;:::i;:::-;20873:33;;20921:32;21015:11;20975:9;:19;;;20957:15;:37;;;;:::i;:::-;20956:70;;;;:::i;:::-;20921:105:::0;-1:-1:-1;21041:14:0::1;21058:42;20921:105:::0;21058:15;:42:::1;:::i;:::-;21041:59:::0;-1:-1:-1;21142:21:0::1;21180:24;21041:59:::0;21180:16:::1;:24::i;:::-;21221:20;21244:38;21268:14:::0;21244:21:::1;:38;:::i;:::-;21221:61;;21297:19;21349:9;:19;;;21335:11;:33;;;;:::i;:::-;21319:50;::::0;:12;:50:::1;:::i;:::-;21297:72;;21384:29;21430:9;:19;;;21416:11;:33;;;;:::i;:::-;21384:65:::0;-1:-1:-1;21470:25:0;;21466:172:::1;;21561:61;21574:24;21600:21;21561:12;:61::i;:::-;21695:19:::0;;21654:20:::1;::::0;21677:15:::1;:11:::0;21691:1:::1;21677:15;:::i;:::-;:37;;;;:::i;:::-;21654:60:::0;-1:-1:-1;21733:16:0;;21729:105:::1;;21778:15;::::0;21770:48:::1;::::0;-1:-1:-1;;;;;21778:15:0::1;21805:12:::0;21770:34:::1;:48::i;:::-;21885:13;::::0;::::1;::::0;21850:14:::1;::::0;21867:15:::1;:11:::0;21881:1:::1;21867:15;:::i;:::-;:31;;;;:::i;:::-;21850:48:::0;-1:-1:-1;21917:10:0;;21913:87:::1;;21956:9;::::0;21948:36:::1;::::0;-1:-1:-1;;;;;21956:9:0::1;21977:6:::0;21948:28:::1;:36::i;:::-;20678:1335;;;;;;;;;20630:1383;20495:1525;15198:1;15214:15:::0;:23;;-1:-1:-1;;;;15214:23:0;;;20415:1605;;:::o;8036:638::-;-1:-1:-1;;;;;8176:20:0;;8168:70;;;;-1:-1:-1;;;8168:70:0;;13291:2:1;8168:70:0;;;13273:21:1;13330:2;13310:18;;;13303:30;13369:34;13349:18;;;13342:62;-1:-1:-1;;;13420:18:1;;;13413:35;13465:19;;8168:70:0;13089:401:1;8168:70:0;-1:-1:-1;;;;;8257:23:0;;8249:71;;;;-1:-1:-1;;;8249:71:0;;5537:2:1;8249:71:0;;;5519:21:1;5576:2;5556:18;;;5549:30;5615:34;5595:18;;;5588:62;-1:-1:-1;;;5666:18:1;;;5659:33;5709:19;;8249:71:0;5335:399:1;8249:71:0;-1:-1:-1;;;;;8417:17:0;;8393:21;8417:17;;;;;;;;;;;8453:23;;;;8445:74;;;;-1:-1:-1;;;8445:74:0;;7520:2:1;8445:74:0;;;7502:21:1;7559:2;7539:18;;;7532:30;7598:34;7578:18;;;7571:62;-1:-1:-1;;;7649:18:1;;;7642:36;7695:19;;8445:74:0;7318:402:1;8445:74:0;8550:22;8566:6;8550:13;:22;:::i;:::-;-1:-1:-1;;;;;8530:17:0;;;:9;:17;;;;;;;;;;;:42;;;;8583:20;;;;;;;;:30;;8607:6;;8530:9;8583:30;;8607:6;;8583:30;:::i;:::-;;;;;;;;8648:9;-1:-1:-1;;;;;8631:35:0;8640:6;-1:-1:-1;;;;;8631:35:0;;8659:6;8631:35;;;;14811:25:1;;14799:2;14784:18;;14665:177;8631:35:0;;;;;;;;8157:517;8036:638;;;:::o;22028:534::-;22178:16;;;22192:1;22178:16;;;;;;;;22154:21;;22178:16;;;;;;;;;;-1:-1:-1;22178:16:0;22154:40;;22223:4;22205;22210:1;22205:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22205:23:0;;;:7;;;;;;;;;;:23;;;;22249:6;;:13;;;-1:-1:-1;;;22249:13:0;;;;:6;;;;;:11;;:13;;;;;22205:7;;22249:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22239:4;22244:1;22239:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22239:23:0;;;:7;;;;;;;;;:23;22307:6;;22275:53;;22292:4;;22307:6;22316:11;22275:8;:53::i;:::-;22367:6;;:187;;-1:-1:-1;;;22367:187:0;;-1:-1:-1;;;;;22367:6:0;;;;:57;;:187;;22439:11;;22367:6;;22481:4;;22508;;22528:15;;22367:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22083:479;22028:534;:::o;22570:497::-;22750:6;;22718:53;;22735:4;;-1:-1:-1;;;;;22750:6:0;22759:11;22718:8;:53::i;:::-;22814:6;;-1:-1:-1;;;;;22814:6:0;:22;22845:9;22879:4;22899:11;22814:6;;23011:7;12350:6;;-1:-1:-1;;;;;12350:6:0;;12277:87;23011:7;22814:245;;;;;;-1:-1:-1;;;;;;22814:245:0;;;-1:-1:-1;;;;;4065:15:1;;;22814:245:0;;;4047:34:1;4097:18;;;4090:34;;;;4140:18;;;4133:34;;;;4183:18;;;4176:34;4247:15;;;4226:19;;;4219:44;23033:15:0;4279:19:1;;;4272:35;3981:19;;22814:245:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;22570:497;;:::o;11720:319::-;11835:6;11810:21;:31;;11802:73;;;;-1:-1:-1;;;11802:73:0;;9128:2:1;11802:73:0;;;9110:21:1;9167:2;9147:18;;;9140:30;9206:31;9186:18;;;9179:59;9255:18;;11802:73:0;8926:353:1;11802:73:0;11889:12;11907:9;-1:-1:-1;;;;;11907:14:0;11930:6;11907:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11888:54;;;11961:7;11953:78;;;;-1:-1:-1;;;11953:78:0;;8701:2:1;11953:78:0;;;8683:21:1;8740:2;8720:18;;;8713:30;8779:34;8759:18;;;8752:62;8850:28;8830:18;;;8823:56;8896:19;;11953:78:0;8499:422:1;14:247;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;181:9;168:23;200:31;225:5;200:31;:::i;:::-;250:5;14:247;-1:-1:-1;;;14:247:1:o;266:251::-;336:6;389:2;377:9;368:7;364:23;360:32;357:52;;;405:1;402;395:12;357:52;437:9;431:16;456:31;481:5;456:31;:::i;522:388::-;590:6;598;651:2;639:9;630:7;626:23;622:32;619:52;;;667:1;664;657:12;619:52;706:9;693:23;725:31;750:5;725:31;:::i;:::-;775:5;-1:-1:-1;832:2:1;817:18;;804:32;845:33;804:32;845:33;:::i;:::-;897:7;887:17;;;522:388;;;;;:::o;915:456::-;992:6;1000;1008;1061:2;1049:9;1040:7;1036:23;1032:32;1029:52;;;1077:1;1074;1067:12;1029:52;1116:9;1103:23;1135:31;1160:5;1135:31;:::i;:::-;1185:5;-1:-1:-1;1242:2:1;1227:18;;1214:32;1255:33;1214:32;1255:33;:::i;:::-;915:456;;1307:7;;-1:-1:-1;;;1361:2:1;1346:18;;;;1333:32;;915:456::o;1376:315::-;1444:6;1452;1505:2;1493:9;1484:7;1480:23;1476:32;1473:52;;;1521:1;1518;1511:12;1473:52;1560:9;1547:23;1579:31;1604:5;1579:31;:::i;:::-;1629:5;1681:2;1666:18;;;;1653:32;;-1:-1:-1;;;1376:315:1:o;1696:241::-;1752:6;1805:2;1793:9;1784:7;1780:23;1776:32;1773:52;;;1821:1;1818;1811:12;1773:52;1860:9;1847:23;1879:28;1901:5;1879:28;:::i;1942:245::-;2009:6;2062:2;2050:9;2041:7;2037:23;2033:32;2030:52;;;2078:1;2075;2068:12;2030:52;2110:9;2104:16;2129:28;2151:5;2129:28;:::i;2192:180::-;2251:6;2304:2;2292:9;2283:7;2279:23;2275:32;2272:52;;;2320:1;2317;2310:12;2272:52;-1:-1:-1;2343:23:1;;2192:180;-1:-1:-1;2192:180:1:o;2377:316::-;2454:6;2462;2470;2523:2;2511:9;2502:7;2498:23;2494:32;2491:52;;;2539:1;2536;2529:12;2491:52;-1:-1:-1;;2562:23:1;;;2632:2;2617:18;;2604:32;;-1:-1:-1;2683:2:1;2668:18;;;2655:32;;2377:316;-1:-1:-1;2377:316:1:o;2698:306::-;2786:6;2794;2802;2855:2;2843:9;2834:7;2830:23;2826:32;2823:52;;;2871:1;2868;2861:12;2823:52;2900:9;2894:16;2884:26;;2950:2;2939:9;2935:18;2929:25;2919:35;;2994:2;2983:9;2979:18;2973:25;2963:35;;2698:306;;;;;:::o;4733:597::-;4845:4;4874:2;4903;4892:9;4885:21;4935:6;4929:13;4978:6;4973:2;4962:9;4958:18;4951:34;5003:1;5013:140;5027:6;5024:1;5021:13;5013:140;;;5122:14;;;5118:23;;5112:30;5088:17;;;5107:2;5084:26;5077:66;5042:10;;5013:140;;;5171:6;5168:1;5165:13;5162:91;;;5241:1;5236:2;5227:6;5216:9;5212:22;5208:31;5201:42;5162:91;-1:-1:-1;5314:2:1;5293:15;-1:-1:-1;;5289:29:1;5274:45;;;;5321:2;5270:54;;4733:597;-1:-1:-1;;;4733:597:1:o;11625:356::-;11827:2;11809:21;;;11846:18;;;11839:30;11905:34;11900:2;11885:18;;11878:62;11972:2;11957:18;;11625:356::o;14847:980::-;15109:4;15157:3;15146:9;15142:19;15188:6;15177:9;15170:25;15214:2;15252:6;15247:2;15236:9;15232:18;15225:34;15295:3;15290:2;15279:9;15275:18;15268:31;15319:6;15354;15348:13;15385:6;15377;15370:22;15423:3;15412:9;15408:19;15401:26;;15462:2;15454:6;15450:15;15436:29;;15483:1;15493:195;15507:6;15504:1;15501:13;15493:195;;;15572:13;;-1:-1:-1;;;;;15568:39:1;15556:52;;15663:15;;;;15628:12;;;;15604:1;15522:9;15493:195;;;-1:-1:-1;;;;;;;15744:32:1;;;;15739:2;15724:18;;15717:60;-1:-1:-1;;;15808:3:1;15793:19;15786:35;15705:3;14847:980;-1:-1:-1;;;14847:980:1:o;16345:128::-;16385:3;16416:1;16412:6;16409:1;16406:13;16403:39;;;16422:18;;:::i;:::-;-1:-1:-1;16458:9:1;;16345:128::o;16478:217::-;16518:1;16544;16534:132;;16588:10;16583:3;16579:20;16576:1;16569:31;16623:4;16620:1;16613:15;16651:4;16648:1;16641:15;16534:132;-1:-1:-1;16680:9:1;;16478:217::o;16700:422::-;16789:1;16832:5;16789:1;16846:270;16867:7;16857:8;16854:21;16846:270;;;16926:4;16922:1;16918:6;16914:17;16908:4;16905:27;16902:53;;;16935:18;;:::i;:::-;16985:7;16975:8;16971:22;16968:55;;;17005:16;;;;16968:55;17084:22;;;;17044:15;;;;16846:270;;;16850:3;16700:422;;;;;:::o;17127:140::-;17185:5;17214:47;17255:4;17245:8;17241:19;17235:4;17321:5;17351:8;17341:80;;-1:-1:-1;17392:1:1;17406:5;;17341:80;17440:4;17430:76;;-1:-1:-1;17477:1:1;17491:5;;17430:76;17522:4;17540:1;17535:59;;;;17608:1;17603:130;;;;17515:218;;17535:59;17565:1;17556:10;;17579:5;;;17603:130;17640:3;17630:8;17627:17;17624:43;;;17647:18;;:::i;:::-;-1:-1:-1;;17703:1:1;17689:16;;17718:5;;17515:218;;17817:2;17807:8;17804:16;17798:3;17792:4;17789:13;17785:36;17779:2;17769:8;17766:16;17761:2;17755:4;17752:12;17748:35;17745:77;17742:159;;;-1:-1:-1;17854:19:1;;;17886:5;;17742:159;17933:34;17958:8;17952:4;17933:34;:::i;:::-;18003:6;17999:1;17995:6;17991:19;17982:7;17979:32;17976:58;;;18014:18;;:::i;:::-;18052:20;;17272:806;-1:-1:-1;;;17272:806:1:o;18083:168::-;18123:7;18189:1;18185;18181:6;18177:14;18174:1;18171:21;18166:1;18159:9;18152:17;18148:45;18145:71;;;18196:18;;:::i;:::-;-1:-1:-1;18236:9:1;;18083:168::o;18256:125::-;18296:4;18324:1;18321;18318:8;18315:34;;;18329:18;;:::i;:::-;-1:-1:-1;18366:9:1;;18256:125::o;18386:380::-;18465:1;18461:12;;;;18508;;;18529:61;;18583:4;18575:6;18571:17;18561:27;;18529:61;18636:2;18628:6;18625:14;18605:18;18602:38;18599:161;;;18682:10;18677:3;18673:20;18670:1;18663:31;18717:4;18714:1;18707:15;18745:4;18742:1;18735:15;18599:161;;18386:380;;;:::o;18771:127::-;18832:10;18827:3;18823:20;18820:1;18813:31;18863:4;18860:1;18853:15;18887:4;18884:1;18877:15;18903:127;18964:10;18959:3;18955:20;18952:1;18945:31;18995:4;18992:1;18985:15;19019:4;19016:1;19009:15;19167:131;-1:-1:-1;;;;;19242:31:1;;19232:42;;19222:70;;19288:1;19285;19278:12;19303:118;19389:5;19382:13;19375:21;19368:5;19365:32;19355:60;;19411:1;19408;19401:12

Swarm Source

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