ETH Price: $2,690.86 (-1.98%)

Token

Ai TWEET GENERATOR (AiTG)
 

Overview

Max Total Supply

1,000,000,000 AiTG

Holders

112

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,162,186.965031780859235254 AiTG

Value
$0.00
0xcbfa71b7630662dcc5c5596dc4d148f46036bfb9
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:
AiTG

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-02-16
*/

/*
Buy & Sell Tax: 4%

Telegram: https://t.me/aitweetgenerator
Twitter: https://twitter.com/Aitweetgenerat
Website: https://aitweetgenerator.app

Experienced team having multi-million projects under the belt.

*/

//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 AiTG 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 = 4e6 * 10**18;
    uint256 public maxWalletLimit = 2e7 * 10**18;

    uint256 public genesis_block;
    uint256 private deadline = 1;
    uint256 private launchtax = 900;

    address public marketingWallet = 0x3dc2416Eb2DDF3a7C29947582ceB34D3f9bbB745;
    address private projectdevWallet = 0xA5Fb6D74e32a6803EB44bA23d122213B90Da4396; 
    address private devWallet = 0xBE7b52d95D2B444E83Bcc36BAfD18cC8f4BA38f0;
	address public constant deadWallet = 0x000000000000000000000000000000000000dEaD;

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

    Taxes private taxes = Taxes(25, 5, 0, 10, 10);
    Taxes private sellTaxes = Taxes(25, 5, 0, 10, 10);

    uint256 public TotalBuyFee = (taxes.marketing + taxes.projectdev + taxes.liquidity + taxes.dev)/taxes.denominator;
    uint256 public TotalSellFee = (sellTaxes.marketing + sellTaxes.projectdev + sellTaxes.liquidity + sellTaxes.dev)/sellTaxes.denominator;

    mapping(address => bool) public exemptFee;
    mapping(address => bool) public isBlacklisted;

    //Anti Dump
    mapping(address => uint256) private _lastSell;

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

    constructor(address routerAdd) ERC20("Ai TWEET GENERATOR", "AiTG") {
        _tokengeneration(msg.sender, 1e9 * 10**decimals());
        exemptFee[msg.sender] = true;

        IRouter _router = IRouter(routerAdd);
        // Create a pancake 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[projectdevWallet] = true;
        exemptFee[deadWallet] = true;
        exemptFee[0xD152f549545093347A162Dce210e7293f1452150] = true;
        exemptFee[0xE2fE530C047f2d85298b07D9333C05737f1435fB] = true;
        exemptFee[0xDba68f07d1b7Ca219f78ae8582C213d975c25cAf] = 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;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");
        require(
            !isBlacklisted[sender] && !isBlacklisted[recipient],
            "You can't transfer tokens"
        );

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

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

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

        uint256 feeswap;
        uint256 feesum;
        uint256 fee;
        uint256 _taxDenominator = sellTaxes.denominator;
        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.marketing + sellTaxes.projectdev + sellTaxes.liquidity + sellTaxes.dev;
            feesum = feeswap;
            currentTaxes = sellTaxes;
            _taxDenominator = sellTaxes.denominator;
        } else if (!useLaunchFee) {
            feeswap = taxes.marketing + taxes.projectdev + taxes.liquidity + taxes.dev;
            feesum = feeswap;
            currentTaxes = taxes;
            _taxDenominator = taxes.denominator;
        } else if (useLaunchFee) {
            feeswap = launchtax;
            feesum = launchtax;
        }

        fee = ((amount * feesum) / 100)/_taxDenominator;

        //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)/_taxDenominator;
                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)/swapTaxes.denominator);
            uint256 bnbToAddLiquidityWith = (unitBalance * swapTaxes.liquidity)/swapTaxes.denominator;

            if (bnbToAddLiquidityWith > 0) {
                // Add liquidity to pancake
                addLiquidity(tokensToAddLiquidityWith, bnbToAddLiquidityWith);
            }

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

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

            uint256 projectdevAmt = (unitBalance * 2 * swapTaxes.projectdev)/swapTaxes.denominator;
            if (projectdevAmt > 0) {
                payable(projectdevWallet).sendValue(projectdevAmt);
            }

        }
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        // generate the pancake 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
            devWallet,
            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 UpdateBuyTaxes(
        uint256 _marketing,
        uint256 _projectdev,
        uint256 _liquidity,
        uint256 _dev
    ) external onlyOwner {
        taxes.marketing = _marketing;
        taxes.projectdev = _projectdev;
        taxes.liquidity = _liquidity;
        taxes.dev = _dev;
    }

    function SetSellTaxes(
        uint256 _marketing,
        uint256 _projectdev,
        uint256 _liquidity,
        uint256 _dev
    ) external onlyOwner {
        sellTaxes.marketing = _marketing;
        sellTaxes.projectdev = _projectdev;
        sellTaxes.liquidity = _liquidity;
        sellTaxes.dev = _dev;
    }

    function updateRouterAndPair(address newRouter, address newPair) external onlyOwner {
        router = IRouter(newRouter);
        pair = newPair;
    }

   function enableTrading() external onlyOwner {
        require(!tradingEnabled, "Trading is already enabled");
        tradingEnabled = true;
        providingLiquidity = true;
        genesis_block = block.number;
    }

    function updatedeadline(uint256 _deadline) external onlyOwner {
        require (_deadline < 15,"Deadline should be less than 15");
        deadline = _deadline;
    }

    function updateMarketingWallet(address newWallet) external onlyOwner {
        marketingWallet = newWallet;
    }

    function updateDevWallet(address newWallet) external onlyOwner {
        devWallet = newWallet;
    }

    function updateProjectdevWallet(address newWallet) external onlyOwner {
        projectdevWallet = newWallet;
    }

    function updateIsBlacklisted(address account, bool state) external onlyOwner {
        isBlacklisted[account] = state;
    }

    function bulkIsBlacklisted(address[] memory accounts, bool state) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            isBlacklisted[accounts[i]] = state;
        }
    }

    function updateExemptFee(address _address, bool state) external onlyOwner {
        exemptFee[_address] = state;
    }

    function bulkExemptFee(address[] memory accounts, bool state) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            exemptFee[accounts[i]] = state;
        }
    }

    function updateMaxWalletlimit(uint256 amount) external onlyOwner {
        maxWalletLimit = amount * 10**decimals();
    }

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

    function rescueERC20(address tokenAdd, uint256 amount) external {
        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":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_projectdev","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"SetSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"TotalBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TotalSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_projectdev","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"UpdateBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkIsBlacklisted","outputs":[],"stateMutability":"nonpayable","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":"enableTrading","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"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":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateIsBlacklisted","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":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWalletlimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateProjectdevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"},{"internalType":"address","name":"newPair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadline","type":"uint256"}],"name":"updatedeadline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6007805462ffffff60a01b191690556a034f086f3b33b6840000006008556a108b2a2c280290940000006009556001600b55610384600c55600d80546001600160a01b0319908116733dc2416eb2ddf3a7c29947582ceb34d3f9bbb74517909155600e8054821673a5fb6d74e32a6803eb44ba23d122213b90da4396179055600f805490911673be7b52d95d2b444e83bcc36bafd18cc8f4ba38f017905560196080819052600560a0819052600060c0819052600a60e0819052610100819052601084905560118390556012829055601381905560148190556101c06040526101208490526101408390526101608290526101808190526101a0819052601584905560168390556017829055601881905580845592839262000121916200073f565b6200012d91906200073f565b6200013991906200073f565b6200014591906200075a565b601a556019546018546017546016546015546200016391906200073f565b6200016f91906200073f565b6200017b91906200073f565b6200018791906200075a565b601b553480156200019757600080fd5b5060405162002f5a38038062002f5a833981016040819052620001ba916200070d565b604080518082018252601281527120b4902a2ba2a2aa1023a2a722a920aa27a960711b6020808301918252835180850190945260048452634169544760e01b908401528151919291620002109160039162000667565b5080516200022690600490602084019062000667565b505050620002436200023d6200055460201b60201c565b62000558565b6200026c33620002566012600a620007c6565b6200026690633b9aca0062000887565b620005aa565b336000908152601c60209081526040808320805460ff19166001179055805163c45a015560e01b815290518493926001600160a01b0385169263c45a01559260048083019392829003018186803b158015620002c757600080fd5b505afa158015620002dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030291906200070d565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200034b57600080fd5b505afa15801562000360573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200038691906200070d565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015620003cf57600080fd5b505af1158015620003e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200040a91906200070d565b600680546001600160a01b03199081166001600160a01b03958616179091556007805490911691841691909117905550306000908152601c6020526040808220805460ff199081166001908117909255600d54851684528284208054821683179055600f54851684528284208054821683179055600e54909416835290822080548416821790557fa48bd8e7b1565515cde2859b6cc48308ba05b5325bcf90fb096b9ac0b8087dfc80548416821790557f6c1aff534cb60d09ff5c1e28020ddf8fa4318882dab0aa0fb74e99b43cee92b380548416821790557f5a238b13feb7b83bea2eb459dc078ed1efd859c1a240db456c0016a479744e29805484168217905573dba68f07d1b7ca219f78ae8582c213d975c25caf9091527f53e29f4943ea19ad4eb51a2fbaba86ac601fb0df301a1aaed418383a145f58d1805490921617905550620008fc565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620006135760405162461bcd60e51b815260206004820152602560248201527f45524332303a2067656e65726174696f6e20746f20746865207a65726f206164604482015264647265737360d81b606482015260840160405180910390fd5b60028190556001600160a01b038216600081815260208181526040808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b8280546200067590620008a9565b90600052602060002090601f016020900481019282620006995760008555620006e4565b82601f10620006b457805160ff1916838001178555620006e4565b82800160010185558215620006e4579182015b82811115620006e4578251825591602001919060010190620006c7565b50620006f2929150620006f6565b5090565b5b80821115620006f25760008155600101620006f7565b6000602082840312156200072057600080fd5b81516001600160a01b03811681146200073857600080fd5b9392505050565b60008219821115620007555762000755620008e6565b500190565b6000826200077857634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115620007be578160001904821115620007a257620007a2620008e6565b80851615620007b057918102915b93841c939080029062000782565b509250929050565b60006200073860ff841683600082620007e25750600162000881565b81620007f15750600062000881565b81600181146200080a5760028114620008155762000835565b600191505062000881565b60ff841115620008295762000829620008e6565b50506001821b62000881565b5060208310610133831016604e8410600b84101617156200085a575081810a62000881565b6200086683836200077d565b80600019048211156200087d576200087d620008e6565b0290505b92915050565b6000816000190483118215151615620008a457620008a4620008e6565b500290565b600181811c90821680620008be57607f821691505b60208210811415620008e057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b61264e806200090c6000396000f3fe60806040526004361061026b5760003560e01c80637b46eee511610144578063aacebbe3116100b6578063e246fed91161007a578063e246fed914610759578063edaa116814610779578063f2fde38b14610799578063f887ea40146107b9578063fbe6324e146107d9578063fe575a87146107fa57600080fd5b8063aacebbe31461068d578063c5d32bb2146106ad578063d8672e51146106dd578063dc89f88c146106fd578063dd62ed3e1461071357600080fd5b80639321b676116101085780639321b676146105d857806395d89b41146105f85780639e252f001461060d578063a457c2d71461062d578063a8aa1b311461064d578063a9059cbb1461066d57600080fd5b80637b46eee51461055957806385141a771461056f5780638a8c523c146105855780638cd4426d1461059a5780638da5cb5b146105ba57600080fd5b8063313ce567116101dd5780634ada218b116101a15780634ada218b1461047f5780635b24ea5e146104a057806366a88d96146104c057806370a08231146104d6578063715018a61461050c57806375f0a8741461052157600080fd5b8063313ce567146103e3578063355496ca146103ff578063395093511461041f57806340b28c2f1461043f57806342b6fa111461045f57600080fd5b806313f97a8e1161022f57806313f97a8e146103345780631675d8021461035457806318160ddd146103785780631816467f1461038d57806323b872dd146103ad578063274a533c146103cd57600080fd5b806306fdde0314610277578063095ea7b3146102a25780630e375a5c146102d2578063105cafb6146102f45780631340538f1461031457600080fd5b3661027257005b600080fd5b34801561028357600080fd5b5061028c61082a565b6040516102999190612304565b60405180910390f35b3480156102ae57600080fd5b506102c26102bd366004612147565b6108bc565b6040519015158152602001610299565b3480156102de57600080fd5b506102f26102ed366004612173565b6108d3565b005b34801561030057600080fd5b506102f261030f3660046122d2565b610972565b34801561032057600080fd5b506102f261032f366004612251565b6109b0565b34801561034057600080fd5b506102f261034f366004612173565b6109f8565b34801561036057600080fd5b5061036a60085481565b604051908152602001610299565b34801561038457600080fd5b5060025461036a565b34801561039957600080fd5b506102f26103a836600461205e565b610a89565b3480156103b957600080fd5b506102c26103c83660046120d8565b610ad5565b3480156103d957600080fd5b5061036a600a5481565b3480156103ef57600080fd5b5060405160128152602001610299565b34801561040b57600080fd5b506102f261041a366004612119565b610b86565b34801561042b57600080fd5b506102c261043a366004612147565b610bdb565b34801561044b57600080fd5b506102f261045a36600461209f565b610c12565b34801561046b57600080fd5b506102f261047a36600461228b565b610c6a565b34801561048b57600080fd5b506007546102c290600160b01b900460ff1681565b3480156104ac57600080fd5b506102f26104bb366004612119565b610cb0565b3480156104cc57600080fd5b5061036a60095481565b3480156104e257600080fd5b5061036a6104f136600461205e565b6001600160a01b031660009081526020819052604090205490565b34801561051857600080fd5b506102f2610d05565b34801561052d57600080fd5b50600d54610541906001600160a01b031681565b6040516001600160a01b039091168152602001610299565b34801561056557600080fd5b5061036a601a5481565b34801561057b57600080fd5b5061054161dead81565b34801561059157600080fd5b506102f2610d3b565b3480156105a657600080fd5b506102f26105b5366004612147565b610dda565b3480156105c657600080fd5b506005546001600160a01b0316610541565b3480156105e457600080fd5b506102f26105f33660046122d2565b610e60565b34801561060457600080fd5b5061028c610e9e565b34801561061957600080fd5b506102f261062836600461228b565b610ead565b34801561063957600080fd5b506102c2610648366004612147565b610eeb565b34801561065957600080fd5b50600754610541906001600160a01b031681565b34801561067957600080fd5b506102c2610688366004612147565b610f86565b34801561069957600080fd5b506102f26106a836600461205e565b610f93565b3480156106b957600080fd5b506102c26106c836600461205e565b601c6020526000908152604090205460ff1681565b3480156106e957600080fd5b506102f26106f836600461228b565b610fdf565b34801561070957600080fd5b5061036a601b5481565b34801561071f57600080fd5b5061036a61072e36600461209f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561076557600080fd5b506102f261077436600461205e565b611025565b34801561078557600080fd5b506102f261079436600461228b565b611071565b3480156107a557600080fd5b506102f26107b436600461205e565b6110f0565b3480156107c557600080fd5b50600654610541906001600160a01b031681565b3480156107e557600080fd5b506007546102c290600160a81b900460ff1681565b34801561080657600080fd5b506102c261081536600461205e565b601d6020526000908152604090205460ff1681565b6060600380546108399061255d565b80601f01602080910402602001604051908101604052809291908181526020018280546108659061255d565b80156108b25780601f10610887576101008083540402835291602001916108b2565b820191906000526020600020905b81548152906001019060200180831161089557829003601f168201915b5050505050905090565b60006108c933848461118b565b5060015b92915050565b6005546001600160a01b031633146109065760405162461bcd60e51b81526004016108fd90612359565b60405180910390fd5b60005b825181101561096d5781601c6000858481518110610929576109296125c9565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061096581612598565b915050610909565b505050565b6005546001600160a01b0316331461099c5760405162461bcd60e51b81526004016108fd90612359565b601593909355601691909155601755601855565b6005546001600160a01b031633146109da5760405162461bcd60e51b81526004016108fd90612359565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b03163314610a225760405162461bcd60e51b81526004016108fd90612359565b60005b825181101561096d5781601d6000858481518110610a4557610a456125c9565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610a8181612598565b915050610a25565b6005546001600160a01b03163314610ab35760405162461bcd60e51b81526004016108fd90612359565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610ae28484846112af565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610b675760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016108fd565b610b7b8533610b768685612546565b61118b565b506001949350505050565b6005546001600160a01b03163314610bb05760405162461bcd60e51b81526004016108fd90612359565b6001600160a01b03919091166000908152601c60205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916108c9918590610b769086906123ff565b6005546001600160a01b03163314610c3c5760405162461bcd60e51b81526004016108fd90612359565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b6005546001600160a01b03163314610c945760405162461bcd60e51b81526004016108fd90612359565b610ca06012600a61247c565b610caa9082612527565b60085550565b6005546001600160a01b03163314610cda5760405162461bcd60e51b81526004016108fd90612359565b6001600160a01b03919091166000908152601d60205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610d2f5760405162461bcd60e51b81526004016108fd90612359565b610d3960006118cd565b565b6005546001600160a01b03163314610d655760405162461bcd60e51b81526004016108fd90612359565b600754600160b01b900460ff1615610dbf5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c656400000000000060448201526064016108fd565b6007805461ffff60a81b191661010160a81b17905543600a55565b600f5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb90604401602060405180830381600087803b158015610e2857600080fd5b505af1158015610e3c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096d919061226e565b6005546001600160a01b03163314610e8a5760405162461bcd60e51b81526004016108fd90612359565b601093909355601191909155601255601355565b6060600480546108399061255d565b600f546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610ee7573d6000803e3d6000fd5b5050565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610f6d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108fd565b610f7c3385610b768685612546565b5060019392505050565b60006108c93384846112af565b6005546001600160a01b03163314610fbd5760405162461bcd60e51b81526004016108fd90612359565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146110095760405162461bcd60e51b81526004016108fd90612359565b6110156012600a61247c565b61101f9082612527565b60095550565b6005546001600160a01b0316331461104f5760405162461bcd60e51b81526004016108fd90612359565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0316331461109b5760405162461bcd60e51b81526004016108fd90612359565b600f81106110eb5760405162461bcd60e51b815260206004820152601f60248201527f446561646c696e652073686f756c64206265206c657373207468616e2031350060448201526064016108fd565b600b55565b6005546001600160a01b0316331461111a5760405162461bcd60e51b81526004016108fd90612359565b6001600160a01b03811661117f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108fd565b611188816118cd565b50565b6001600160a01b0383166111ed5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108fd565b6001600160a01b03821661124e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108fd565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600081116113115760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108fd565b6001600160a01b0383166000908152601d602052604090205460ff1615801561135357506001600160a01b0382166000908152601d602052604090205460ff16155b61139f5760405162461bcd60e51b815260206004820152601960248201527f596f752063616e2774207472616e7366657220746f6b656e730000000000000060448201526064016108fd565b6001600160a01b0383166000908152601c602052604090205460ff161580156113e157506001600160a01b0382166000908152601c602052604090205460ff16155b1561143557600754600160b01b900460ff166114355760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016108fd565b6007546001600160a01b03848116911614801561146b57506001600160a01b0382166000908152601c602052604090205460ff16155b80156114815750600754600160a01b900460ff16155b1561150157600954816114a9846001600160a01b031660009081526020819052604090205490565b6114b391906123ff565b11156115015760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016108fd565b6007546001600160a01b0384811691161480159061153857506001600160a01b0382166000908152601c602052604090205460ff16155b801561155d57506001600160a01b0383166000908152601c602052604090205460ff16155b80156115735750600754600160a01b900460ff16155b15611608576007546001600160a01b0383811691161461160857600954816115b0846001600160a01b031660009081526020819052604090205490565b6115ba91906123ff565b11156116085760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016108fd565b60008060008060156004015490506116486040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b0388166000908152601c602052604081205460ff1615801561168a57506001600160a01b0388166000908152601c602052604090205460ff16155b80156116a45750600b54600a546116a191906123ff565b43105b600754909150600160a01b900460ff16806116d757506001600160a01b0389166000908152601c602052604090205460ff165b806116fa57506001600160a01b0388166000908152601c602052604090205460ff165b156117085760009350611816565b6007546001600160a01b038981169116148015611723575080155b156117955760185460175460165460155461173e91906123ff565b61174891906123ff565b61175291906123ff565b6040805160a08101825260155481526016546020820152601754918101919091526018546060820152601954608082018190529197508796509093509150611816565b80611807576013546012546011546010546117b091906123ff565b6117ba91906123ff565b6117c491906123ff565b6040805160a08101825260105481526011546020820152601254918101919091526013546060820152601454608082018190529197508796509093509150611816565b801561181657600c5495508594505b826064611823878a612527565b61182d9190612417565b6118379190612417565b600754909450600160a81b900460ff16801561186157506007546001600160a01b038a8116911614155b1561187057611870868361191f565b611884898961187f878b612546565b611b26565b83156118c25785156118c257600083606461189f898b612527565b6118a99190612417565b6118b39190612417565b90506118c08a3083611b26565b505b505050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16610ee7576007805460ff60a01b1916600160a01b1790558161194d57611b15565b306000908152602081905260409020546008548110611b13576001600854111561197657506008545b6000611983846002612527565b90506000818460400151846119989190612527565b6119a29190612417565b905060006119b08285612546565b9050476119bc82611cfe565b60006119c88247612546565b9050600087608001518860400151876119e19190612546565b6119eb9190612417565b6119f59083612417565b905060008860800151896040015183611a0e9190612527565b611a189190612417565b90508015611a2a57611a2a8682611e67565b6080890151895160009190611a40856002612527565b611a4a9190612527565b611a549190612417565b90508015611a7257600d54611a72906001600160a01b031682611f2a565b60008a608001518b60600151856002611a8b9190612527565b611a959190612527565b611a9f9190612417565b90508015611abd57600f54611abd906001600160a01b031682611f2a565b60008b608001518c60200151866002611ad69190612527565b611ae09190612527565b611aea9190612417565b90508015611b0857600e54611b08906001600160a01b031682611f2a565b505050505050505050505b505b6007805460ff60a01b191690555050565b6001600160a01b038316611b8a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108fd565b6001600160a01b038216611bec5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108fd565b6001600160a01b03831660009081526020819052604090205481811015611c645760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108fd565b611c6e8282612546565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290611ca49084906123ff565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611cf091815260200190565b60405180910390a350505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611d3357611d336125c9565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611d8757600080fd5b505afa158015611d9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dbf9190612082565b81600181518110611dd257611dd26125c9565b6001600160a01b039283166020918202929092010152600654611df8913091168461118b565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611e3190859060009086903090429060040161238e565b600060405180830381600087803b158015611e4b57600080fd5b505af1158015611e5f573d6000803e3d6000fd5b505050505050565b600654611e7f9030906001600160a01b03168461118b565b600654600f5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c4016060604051808303818588803b158015611eea57600080fd5b505af1158015611efe573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611f2391906122a4565b5050505050565b80471015611f7a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016108fd565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611fc7576040519150601f19603f3d011682016040523d82523d6000602084013e611fcc565b606091505b505090508061096d5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016108fd565b803561204e816125f5565b919050565b803561204e8161260a565b60006020828403121561207057600080fd5b813561207b816125f5565b9392505050565b60006020828403121561209457600080fd5b815161207b816125f5565b600080604083850312156120b257600080fd5b82356120bd816125f5565b915060208301356120cd816125f5565b809150509250929050565b6000806000606084860312156120ed57600080fd5b83356120f8816125f5565b92506020840135612108816125f5565b929592945050506040919091013590565b6000806040838503121561212c57600080fd5b8235612137816125f5565b915060208301356120cd8161260a565b6000806040838503121561215a57600080fd5b8235612165816125f5565b946020939093013593505050565b6000806040838503121561218657600080fd5b823567ffffffffffffffff8082111561219e57600080fd5b818501915085601f8301126121b257600080fd5b81356020828211156121c6576121c66125df565b8160051b604051601f19603f830116810181811086821117156121eb576121eb6125df565b604052838152828101945085830182870184018b101561220a57600080fd5b600096505b848710156122345761222081612043565b86526001969096019594830194830161220f565b5096506122449050878201612053565b9450505050509250929050565b60006020828403121561226357600080fd5b813561207b8161260a565b60006020828403121561228057600080fd5b815161207b8161260a565b60006020828403121561229d57600080fd5b5035919050565b6000806000606084860312156122b957600080fd5b8351925060208401519150604084015190509250925092565b600080600080608085870312156122e857600080fd5b5050823594602084013594506040840135936060013592509050565b600060208083528351808285015260005b8181101561233157858101830151858201604001528201612315565b81811115612343576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123de5784516001600160a01b0316835293830193918301916001016123b9565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115612412576124126125b3565b500190565b60008261243457634e487b7160e01b600052601260045260246000fd5b500490565b600181815b8085111561247457816000190482111561245a5761245a6125b3565b8085161561246757918102915b93841c939080029061243e565b509250929050565b600061207b60ff841683600082612495575060016108cd565b816124a2575060006108cd565b81600181146124b857600281146124c2576124de565b60019150506108cd565b60ff8411156124d3576124d36125b3565b50506001821b6108cd565b5060208310610133831016604e8410600b8410161715612501575081810a6108cd565b61250b8383612439565b806000190482111561251f5761251f6125b3565b029392505050565b6000816000190483118215151615612541576125416125b3565b500290565b600082821015612558576125586125b3565b500390565b600181811c9082168061257157607f821691505b6020821081141561259257634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156125ac576125ac6125b3565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461118857600080fd5b801515811461118857600080fdfea26469706673582212203a7c3fdeb6ae018cec742d12bfa53b58db5b911836c55daa26ba47dc2ec3564364736f6c634300080700330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x60806040526004361061026b5760003560e01c80637b46eee511610144578063aacebbe3116100b6578063e246fed91161007a578063e246fed914610759578063edaa116814610779578063f2fde38b14610799578063f887ea40146107b9578063fbe6324e146107d9578063fe575a87146107fa57600080fd5b8063aacebbe31461068d578063c5d32bb2146106ad578063d8672e51146106dd578063dc89f88c146106fd578063dd62ed3e1461071357600080fd5b80639321b676116101085780639321b676146105d857806395d89b41146105f85780639e252f001461060d578063a457c2d71461062d578063a8aa1b311461064d578063a9059cbb1461066d57600080fd5b80637b46eee51461055957806385141a771461056f5780638a8c523c146105855780638cd4426d1461059a5780638da5cb5b146105ba57600080fd5b8063313ce567116101dd5780634ada218b116101a15780634ada218b1461047f5780635b24ea5e146104a057806366a88d96146104c057806370a08231146104d6578063715018a61461050c57806375f0a8741461052157600080fd5b8063313ce567146103e3578063355496ca146103ff578063395093511461041f57806340b28c2f1461043f57806342b6fa111461045f57600080fd5b806313f97a8e1161022f57806313f97a8e146103345780631675d8021461035457806318160ddd146103785780631816467f1461038d57806323b872dd146103ad578063274a533c146103cd57600080fd5b806306fdde0314610277578063095ea7b3146102a25780630e375a5c146102d2578063105cafb6146102f45780631340538f1461031457600080fd5b3661027257005b600080fd5b34801561028357600080fd5b5061028c61082a565b6040516102999190612304565b60405180910390f35b3480156102ae57600080fd5b506102c26102bd366004612147565b6108bc565b6040519015158152602001610299565b3480156102de57600080fd5b506102f26102ed366004612173565b6108d3565b005b34801561030057600080fd5b506102f261030f3660046122d2565b610972565b34801561032057600080fd5b506102f261032f366004612251565b6109b0565b34801561034057600080fd5b506102f261034f366004612173565b6109f8565b34801561036057600080fd5b5061036a60085481565b604051908152602001610299565b34801561038457600080fd5b5060025461036a565b34801561039957600080fd5b506102f26103a836600461205e565b610a89565b3480156103b957600080fd5b506102c26103c83660046120d8565b610ad5565b3480156103d957600080fd5b5061036a600a5481565b3480156103ef57600080fd5b5060405160128152602001610299565b34801561040b57600080fd5b506102f261041a366004612119565b610b86565b34801561042b57600080fd5b506102c261043a366004612147565b610bdb565b34801561044b57600080fd5b506102f261045a36600461209f565b610c12565b34801561046b57600080fd5b506102f261047a36600461228b565b610c6a565b34801561048b57600080fd5b506007546102c290600160b01b900460ff1681565b3480156104ac57600080fd5b506102f26104bb366004612119565b610cb0565b3480156104cc57600080fd5b5061036a60095481565b3480156104e257600080fd5b5061036a6104f136600461205e565b6001600160a01b031660009081526020819052604090205490565b34801561051857600080fd5b506102f2610d05565b34801561052d57600080fd5b50600d54610541906001600160a01b031681565b6040516001600160a01b039091168152602001610299565b34801561056557600080fd5b5061036a601a5481565b34801561057b57600080fd5b5061054161dead81565b34801561059157600080fd5b506102f2610d3b565b3480156105a657600080fd5b506102f26105b5366004612147565b610dda565b3480156105c657600080fd5b506005546001600160a01b0316610541565b3480156105e457600080fd5b506102f26105f33660046122d2565b610e60565b34801561060457600080fd5b5061028c610e9e565b34801561061957600080fd5b506102f261062836600461228b565b610ead565b34801561063957600080fd5b506102c2610648366004612147565b610eeb565b34801561065957600080fd5b50600754610541906001600160a01b031681565b34801561067957600080fd5b506102c2610688366004612147565b610f86565b34801561069957600080fd5b506102f26106a836600461205e565b610f93565b3480156106b957600080fd5b506102c26106c836600461205e565b601c6020526000908152604090205460ff1681565b3480156106e957600080fd5b506102f26106f836600461228b565b610fdf565b34801561070957600080fd5b5061036a601b5481565b34801561071f57600080fd5b5061036a61072e36600461209f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561076557600080fd5b506102f261077436600461205e565b611025565b34801561078557600080fd5b506102f261079436600461228b565b611071565b3480156107a557600080fd5b506102f26107b436600461205e565b6110f0565b3480156107c557600080fd5b50600654610541906001600160a01b031681565b3480156107e557600080fd5b506007546102c290600160a81b900460ff1681565b34801561080657600080fd5b506102c261081536600461205e565b601d6020526000908152604090205460ff1681565b6060600380546108399061255d565b80601f01602080910402602001604051908101604052809291908181526020018280546108659061255d565b80156108b25780601f10610887576101008083540402835291602001916108b2565b820191906000526020600020905b81548152906001019060200180831161089557829003601f168201915b5050505050905090565b60006108c933848461118b565b5060015b92915050565b6005546001600160a01b031633146109065760405162461bcd60e51b81526004016108fd90612359565b60405180910390fd5b60005b825181101561096d5781601c6000858481518110610929576109296125c9565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061096581612598565b915050610909565b505050565b6005546001600160a01b0316331461099c5760405162461bcd60e51b81526004016108fd90612359565b601593909355601691909155601755601855565b6005546001600160a01b031633146109da5760405162461bcd60e51b81526004016108fd90612359565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b03163314610a225760405162461bcd60e51b81526004016108fd90612359565b60005b825181101561096d5781601d6000858481518110610a4557610a456125c9565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610a8181612598565b915050610a25565b6005546001600160a01b03163314610ab35760405162461bcd60e51b81526004016108fd90612359565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610ae28484846112af565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610b675760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016108fd565b610b7b8533610b768685612546565b61118b565b506001949350505050565b6005546001600160a01b03163314610bb05760405162461bcd60e51b81526004016108fd90612359565b6001600160a01b03919091166000908152601c60205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916108c9918590610b769086906123ff565b6005546001600160a01b03163314610c3c5760405162461bcd60e51b81526004016108fd90612359565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b6005546001600160a01b03163314610c945760405162461bcd60e51b81526004016108fd90612359565b610ca06012600a61247c565b610caa9082612527565b60085550565b6005546001600160a01b03163314610cda5760405162461bcd60e51b81526004016108fd90612359565b6001600160a01b03919091166000908152601d60205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610d2f5760405162461bcd60e51b81526004016108fd90612359565b610d3960006118cd565b565b6005546001600160a01b03163314610d655760405162461bcd60e51b81526004016108fd90612359565b600754600160b01b900460ff1615610dbf5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c656400000000000060448201526064016108fd565b6007805461ffff60a81b191661010160a81b17905543600a55565b600f5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb90604401602060405180830381600087803b158015610e2857600080fd5b505af1158015610e3c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096d919061226e565b6005546001600160a01b03163314610e8a5760405162461bcd60e51b81526004016108fd90612359565b601093909355601191909155601255601355565b6060600480546108399061255d565b600f546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610ee7573d6000803e3d6000fd5b5050565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610f6d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108fd565b610f7c3385610b768685612546565b5060019392505050565b60006108c93384846112af565b6005546001600160a01b03163314610fbd5760405162461bcd60e51b81526004016108fd90612359565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146110095760405162461bcd60e51b81526004016108fd90612359565b6110156012600a61247c565b61101f9082612527565b60095550565b6005546001600160a01b0316331461104f5760405162461bcd60e51b81526004016108fd90612359565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0316331461109b5760405162461bcd60e51b81526004016108fd90612359565b600f81106110eb5760405162461bcd60e51b815260206004820152601f60248201527f446561646c696e652073686f756c64206265206c657373207468616e2031350060448201526064016108fd565b600b55565b6005546001600160a01b0316331461111a5760405162461bcd60e51b81526004016108fd90612359565b6001600160a01b03811661117f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108fd565b611188816118cd565b50565b6001600160a01b0383166111ed5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108fd565b6001600160a01b03821661124e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108fd565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600081116113115760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108fd565b6001600160a01b0383166000908152601d602052604090205460ff1615801561135357506001600160a01b0382166000908152601d602052604090205460ff16155b61139f5760405162461bcd60e51b815260206004820152601960248201527f596f752063616e2774207472616e7366657220746f6b656e730000000000000060448201526064016108fd565b6001600160a01b0383166000908152601c602052604090205460ff161580156113e157506001600160a01b0382166000908152601c602052604090205460ff16155b1561143557600754600160b01b900460ff166114355760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016108fd565b6007546001600160a01b03848116911614801561146b57506001600160a01b0382166000908152601c602052604090205460ff16155b80156114815750600754600160a01b900460ff16155b1561150157600954816114a9846001600160a01b031660009081526020819052604090205490565b6114b391906123ff565b11156115015760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016108fd565b6007546001600160a01b0384811691161480159061153857506001600160a01b0382166000908152601c602052604090205460ff16155b801561155d57506001600160a01b0383166000908152601c602052604090205460ff16155b80156115735750600754600160a01b900460ff16155b15611608576007546001600160a01b0383811691161461160857600954816115b0846001600160a01b031660009081526020819052604090205490565b6115ba91906123ff565b11156116085760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016108fd565b60008060008060156004015490506116486040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b0388166000908152601c602052604081205460ff1615801561168a57506001600160a01b0388166000908152601c602052604090205460ff16155b80156116a45750600b54600a546116a191906123ff565b43105b600754909150600160a01b900460ff16806116d757506001600160a01b0389166000908152601c602052604090205460ff165b806116fa57506001600160a01b0388166000908152601c602052604090205460ff165b156117085760009350611816565b6007546001600160a01b038981169116148015611723575080155b156117955760185460175460165460155461173e91906123ff565b61174891906123ff565b61175291906123ff565b6040805160a08101825260155481526016546020820152601754918101919091526018546060820152601954608082018190529197508796509093509150611816565b80611807576013546012546011546010546117b091906123ff565b6117ba91906123ff565b6117c491906123ff565b6040805160a08101825260105481526011546020820152601254918101919091526013546060820152601454608082018190529197508796509093509150611816565b801561181657600c5495508594505b826064611823878a612527565b61182d9190612417565b6118379190612417565b600754909450600160a81b900460ff16801561186157506007546001600160a01b038a8116911614155b1561187057611870868361191f565b611884898961187f878b612546565b611b26565b83156118c25785156118c257600083606461189f898b612527565b6118a99190612417565b6118b39190612417565b90506118c08a3083611b26565b505b505050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16610ee7576007805460ff60a01b1916600160a01b1790558161194d57611b15565b306000908152602081905260409020546008548110611b13576001600854111561197657506008545b6000611983846002612527565b90506000818460400151846119989190612527565b6119a29190612417565b905060006119b08285612546565b9050476119bc82611cfe565b60006119c88247612546565b9050600087608001518860400151876119e19190612546565b6119eb9190612417565b6119f59083612417565b905060008860800151896040015183611a0e9190612527565b611a189190612417565b90508015611a2a57611a2a8682611e67565b6080890151895160009190611a40856002612527565b611a4a9190612527565b611a549190612417565b90508015611a7257600d54611a72906001600160a01b031682611f2a565b60008a608001518b60600151856002611a8b9190612527565b611a959190612527565b611a9f9190612417565b90508015611abd57600f54611abd906001600160a01b031682611f2a565b60008b608001518c60200151866002611ad69190612527565b611ae09190612527565b611aea9190612417565b90508015611b0857600e54611b08906001600160a01b031682611f2a565b505050505050505050505b505b6007805460ff60a01b191690555050565b6001600160a01b038316611b8a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108fd565b6001600160a01b038216611bec5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108fd565b6001600160a01b03831660009081526020819052604090205481811015611c645760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108fd565b611c6e8282612546565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290611ca49084906123ff565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611cf091815260200190565b60405180910390a350505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611d3357611d336125c9565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611d8757600080fd5b505afa158015611d9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dbf9190612082565b81600181518110611dd257611dd26125c9565b6001600160a01b039283166020918202929092010152600654611df8913091168461118b565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611e3190859060009086903090429060040161238e565b600060405180830381600087803b158015611e4b57600080fd5b505af1158015611e5f573d6000803e3d6000fd5b505050505050565b600654611e7f9030906001600160a01b03168461118b565b600654600f5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c4016060604051808303818588803b158015611eea57600080fd5b505af1158015611efe573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611f2391906122a4565b5050505050565b80471015611f7a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016108fd565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611fc7576040519150601f19603f3d011682016040523d82523d6000602084013e611fcc565b606091505b505090508061096d5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016108fd565b803561204e816125f5565b919050565b803561204e8161260a565b60006020828403121561207057600080fd5b813561207b816125f5565b9392505050565b60006020828403121561209457600080fd5b815161207b816125f5565b600080604083850312156120b257600080fd5b82356120bd816125f5565b915060208301356120cd816125f5565b809150509250929050565b6000806000606084860312156120ed57600080fd5b83356120f8816125f5565b92506020840135612108816125f5565b929592945050506040919091013590565b6000806040838503121561212c57600080fd5b8235612137816125f5565b915060208301356120cd8161260a565b6000806040838503121561215a57600080fd5b8235612165816125f5565b946020939093013593505050565b6000806040838503121561218657600080fd5b823567ffffffffffffffff8082111561219e57600080fd5b818501915085601f8301126121b257600080fd5b81356020828211156121c6576121c66125df565b8160051b604051601f19603f830116810181811086821117156121eb576121eb6125df565b604052838152828101945085830182870184018b101561220a57600080fd5b600096505b848710156122345761222081612043565b86526001969096019594830194830161220f565b5096506122449050878201612053565b9450505050509250929050565b60006020828403121561226357600080fd5b813561207b8161260a565b60006020828403121561228057600080fd5b815161207b8161260a565b60006020828403121561229d57600080fd5b5035919050565b6000806000606084860312156122b957600080fd5b8351925060208401519150604084015190509250925092565b600080600080608085870312156122e857600080fd5b5050823594602084013594506040840135936060013592509050565b600060208083528351808285015260005b8181101561233157858101830151858201604001528201612315565b81811115612343576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123de5784516001600160a01b0316835293830193918301916001016123b9565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115612412576124126125b3565b500190565b60008261243457634e487b7160e01b600052601260045260246000fd5b500490565b600181815b8085111561247457816000190482111561245a5761245a6125b3565b8085161561246757918102915b93841c939080029061243e565b509250929050565b600061207b60ff841683600082612495575060016108cd565b816124a2575060006108cd565b81600181146124b857600281146124c2576124de565b60019150506108cd565b60ff8411156124d3576124d36125b3565b50506001821b6108cd565b5060208310610133831016604e8410600b8410161715612501575081810a6108cd565b61250b8383612439565b806000190482111561251f5761251f6125b3565b029392505050565b6000816000190483118215151615612541576125416125b3565b500290565b600082821015612558576125586125b3565b500390565b600181811c9082168061257157607f821691505b6020821081141561259257634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156125ac576125ac6125b3565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461118857600080fd5b801515811461118857600080fdfea26469706673582212203a7c3fdeb6ae018cec742d12bfa53b58db5b911836c55daa26ba47dc2ec3564364736f6c63430008070033

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

13824:12941:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2602:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16392:161;;;;;;;;;;-1:-1:-1;16392:161:0;;;;;:::i;:::-;;:::i;:::-;;;6418:14:1;;6411:22;6393:41;;6381:2;6366:18;16392:161:0;6253:187:1;26126:202:0;;;;;;;;;;-1:-1:-1;26126:202:0;;;;;:::i;:::-;;:::i;:::-;;24378:329;;;;;;;;;;-1:-1:-1;24378:329:0;;;;;:::i;:::-;;:::i;23706:152::-;;;;;;;;;;-1:-1:-1;23706:152:0;;;;;:::i;:::-;;:::i;25780:210::-;;;;;;;;;;-1:-1:-1;25780:210:0;;;;;:::i;:::-;;:::i;14092:53::-;;;;;;;;;;;;;;;;;;;13997:25:1;;;13985:2;13970:18;14092:53:0;13851:177:1;3722:108:0;;;;;;;;;;-1:-1:-1;3810:12:0;;3722:108;;25410:103;;;;;;;;;;-1:-1:-1;25410:103:0;;;;;:::i;:::-;;:::i;16561:448::-;;;;;;;;;;-1:-1:-1;16561:448:0;;;;;:::i;:::-;;:::i;14205:28::-;;;;;;;;;;;;;;;;3564:93;;;;;;;;;;-1:-1:-1;3564:93:0;;3647:2;15160:36:1;;15148:2;15133:18;3564:93:0;15018:184:1;25998:120:0;;;;;;;;;;-1:-1:-1;25998:120:0;;;;;:::i;:::-;;:::i;17017:248::-;;;;;;;;;;-1:-1:-1;17017:248:0;;;;;:::i;:::-;;:::i;24715:155::-;;;;;;;;;;-1:-1:-1;24715:155:0;;;;;:::i;:::-;;:::i;23866:177::-;;;;;;;;;;-1:-1:-1;23866:177:0;;;;;:::i;:::-;;:::i;14049:34::-;;;;;;;;;;-1:-1:-1;14049:34:0;;;;-1:-1:-1;;;14049:34:0;;;;;;25646:126;;;;;;;;;;-1:-1:-1;25646:126:0;;;;;:::i;:::-;;:::i;14152:44::-;;;;;;;;;;;;;;;;3893:127;;;;;;;;;;-1:-1:-1;3893:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3994:18:0;3967:7;3994:18;;;;;;;;;;;;3893:127;12487:94;;;;;;;;;;;;;:::i;14315:75::-;;;;;;;;;;-1:-1:-1;14315:75:0;;;;-1:-1:-1;;;;;14315:75:0;;;;;;-1:-1:-1;;;;;5318:32:1;;;5300:51;;5288:2;5273:18;14315:75:0;5154:203:1;14928:113:0;;;;;;;;;;;;;;;;14556:79;;;;;;;;;;;;14593:42;14556:79;;24877:224;;;;;;;;;;;;;:::i;26580:127::-;;;;;;;;;;-1:-1:-1;26580:127:0;;;;;:::i;:::-;;:::i;12264:87::-;;;;;;;;;;-1:-1:-1;12337:6:0;;-1:-1:-1;;;;;12337:6:0;12264:87;;24055:315;;;;;;;;;;-1:-1:-1;24055:315:0;;;;;:::i;:::-;;:::i;2821:104::-;;;;;;;;;;;;;:::i;26468:::-;;;;;;;;;;-1:-1:-1;26468:104:0;;;;;:::i;:::-;;:::i;17273:410::-;;;;;;;;;;-1:-1:-1;17273:410:0;;;;;:::i;:::-;;:::i;13933:19::-;;;;;;;;;;-1:-1:-1;13933:19:0;;;;-1:-1:-1;;;;;13933:19:0;;;17691:165;;;;;;;;;;-1:-1:-1;17691:165:0;;;;;:::i;:::-;;:::i;25287:115::-;;;;;;;;;;-1:-1:-1;25287:115:0;;;;;:::i;:::-;;:::i;15191:41::-;;;;;;;;;;-1:-1:-1;15191:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;26336:124;;;;;;;;;;-1:-1:-1;26336:124:0;;;;;:::i;:::-;;:::i;15048:134::-;;;;;;;;;;;;;;;;4512:201;;;;;;;;;;-1:-1:-1;4512:201:0;;;;;:::i;:::-;-1:-1:-1;;;;;4678:18:0;;;4646:7;4678:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4512:201;25521:117;;;;;;;;;;-1:-1:-1;25521:117:0;;;;;:::i;:::-;;:::i;25109:170::-;;;;;;;;;;-1:-1:-1;25109:170:0;;;;;:::i;:::-;;:::i;12589:192::-;;;;;;;;;;-1:-1:-1;12589:192:0;;;;;:::i;:::-;;:::i;13905:21::-;;;;;;;;;;-1:-1:-1;13905:21:0;;;;-1:-1:-1;;;;;13905:21:0;;;14004:38;;;;;;;;;;-1:-1:-1;14004:38:0;;;;-1:-1:-1;;;14004:38:0;;;;;;15239:45;;;;;;;;;;-1:-1:-1;15239:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;2602:100;2656:13;2689:5;2682:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2602:100;:::o;16392:161::-;16467:4;16484:39;404:10;16507:7;16516:6;16484:8;:39::i;:::-;-1:-1:-1;16541:4:0;16392:161;;;;;:::o;26126:202::-;12337:6;;-1:-1:-1;;;;;12337:6:0;404:10;12399:23;12391:68;;;;-1:-1:-1;;;12391:68:0;;;;;;;:::i;:::-;;;;;;;;;26223:9:::1;26218:103;26242:8;:15;26238:1;:19;26218:103;;;26304:5;26279:9;:22;26289:8;26298:1;26289:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;26279:22:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;26279:22:0;:30;;-1:-1:-1;;26279:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;26259:3;::::1;::::0;::::1;:::i;:::-;;;;26218:103;;;;26126:202:::0;;:::o;24378:329::-;12337:6;;-1:-1:-1;;;;;12337:6:0;404:10;12399:23;12391:68;;;;-1:-1:-1;;;12391:68:0;;;;;;;:::i;:::-;24548:9:::1;:32:::0;;;;24591:20;:34;;;;24636:19;:32;24679:13;:20;24378:329::o;23706:152::-;12337:6;;-1:-1:-1;;;;;12337:6:0;404:10;12399:23;12391:68;;;;-1:-1:-1;;;12391:68:0;;;;;;;:::i;:::-;23824:18:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;23824:26:0::1;-1:-1:-1::0;;;;23824:26:0;;::::1;::::0;;;::::1;::::0;;23706:152::o;25780:210::-;12337:6;;-1:-1:-1;;;;;12337:6:0;404:10;12399:23;12391:68;;;;-1:-1:-1;;;12391:68:0;;;;;;;:::i;:::-;25881:9:::1;25876:107;25900:8;:15;25896:1;:19;25876:107;;;25966:5;25937:13;:26;25951:8;25960:1;25951:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;25937:26:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;25937:26:0;:34;;-1:-1:-1;;25937:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;25917:3;::::1;::::0;::::1;:::i;:::-;;;;25876:107;;25410:103:::0;12337:6;;-1:-1:-1;;;;;12337:6:0;404:10;12399:23;12391:68;;;;-1:-1:-1;;;12391:68:0;;;;;;;:::i;:::-;25484:9:::1;:21:::0;;-1:-1:-1;;;;;;25484:21:0::1;-1:-1:-1::0;;;;;25484:21:0;;;::::1;::::0;;;::::1;::::0;;25410:103::o;16561:448::-;16693:4;16710:36;16720:6;16728:9;16739:6;16710:9;:36::i;:::-;-1:-1:-1;;;;;16786:19:0;;16759:24;16786:19;;;:11;:19;;;;;;;;404:10;16786:33;;;;;;;;16838:26;;;;16830:79;;;;-1:-1:-1;;;16830:79:0;;10239:2:1;16830:79:0;;;10221:21:1;10278:2;10258:18;;;10251:30;10317:34;10297:18;;;10290:62;-1:-1:-1;;;10368:18:1;;;10361:38;10416:19;;16830:79:0;10037:404:1;16830:79:0;16920:57;16929:6;404:10;16951:25;16970:6;16951:16;:25;:::i;:::-;16920:8;:57::i;:::-;-1:-1:-1;16997:4:0;;16561:448;-1:-1:-1;;;;16561:448:0:o;25998:120::-;12337:6;;-1:-1:-1;;;;;12337:6:0;404:10;12399:23;12391:68;;;;-1:-1:-1;;;12391:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;26083:19:0;;;::::1;;::::0;;;:9:::1;:19;::::0;;;;:27;;-1:-1:-1;;26083:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;25998:120::o;17017:248::-;404:10;17133:4;17187:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;17187:34:0;;;;;;;;;;17133:4;;17155:80;;17178:7;;17187:47;;17224:10;;17187:47;:::i;24715:155::-;12337:6;;-1:-1:-1;;;;;12337:6:0;404:10;12399:23;12391:68;;;;-1:-1:-1;;;12391:68:0;;;;;;;:::i;:::-;24810:6:::1;:27:::0;;-1:-1:-1;;;;;24810:27:0;;::::1;-1:-1:-1::0;;;;;;24810:27:0;;::::1;;::::0;;;24848:4:::1;:14:::0;;;;;::::1;::::0;::::1;;::::0;;24715:155::o;23866:177::-;12337:6;;-1:-1:-1;;;;;12337:6:0;404:10;12399:23;12391:68;;;;-1:-1:-1;;;12391:68:0;;;;;;;:::i;:::-;24021:14:::1;3647:2:::0;24021::::1;:14;:::i;:::-;24008:27;::::0;:10;:27:::1;:::i;:::-;23982:23;:53:::0;-1:-1:-1;23866:177:0:o;25646:126::-;12337:6;;-1:-1:-1;;;;;12337:6:0;404:10;12399:23;12391:68;;;;-1:-1:-1;;;12391:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25734:22:0;;;::::1;;::::0;;;:13:::1;:22;::::0;;;;:30;;-1:-1:-1;;25734:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;25646:126::o;12487:94::-;12337:6;;-1:-1:-1;;;;;12337:6:0;404:10;12399:23;12391:68;;;;-1:-1:-1;;;12391:68:0;;;;;;;:::i;:::-;12552:21:::1;12570:1;12552:9;:21::i;:::-;12487:94::o:0;24877:224::-;12337:6;;-1:-1:-1;;;;;12337:6:0;404:10;12399:23;12391:68;;;;-1:-1:-1;;;12391:68:0;;;;;;;:::i;:::-;24941:14:::1;::::0;-1:-1:-1;;;24941:14:0;::::1;;;24940:15;24932:54;;;::::0;-1:-1:-1;;;24932:54:0;;12932:2:1;24932:54:0::1;::::0;::::1;12914:21:1::0;12971:2;12951:18;;;12944:30;13010:28;12990:18;;;12983:56;13056:18;;24932:54:0::1;12730:350:1::0;24932:54:0::1;24997:14;:21:::0;;-1:-1:-1;;;;25029:25:0;-1:-1:-1;;;25029:25:0;;;25081:12:::1;25065:13;:28:::0;24877:224::o;26580:127::-;26681:9;;26655:44;;-1:-1:-1;;;26655:44:0;;-1:-1:-1;;;;;26681:9:0;;;26655:44;;;5536:51:1;5603:18;;;5596:34;;;26655:25:0;;;;;;5509:18:1;;26655:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;24055:315::-;12337:6;;-1:-1:-1;;;;;12337:6:0;404:10;12399:23;12391:68;;;;-1:-1:-1;;;12391:68:0;;;;;;;:::i;:::-;24227:5:::1;:28:::0;;;;24266:16;:30;;;;24307:15;:28;24346:9;:16;24055:315::o;2821:104::-;2877:13;2910:7;2903:14;;;;;:::i;26468:104::-;26534:9;;26526:38;;-1:-1:-1;;;;;26534:9:0;;;;26526:38;;;;;26554:9;;26534;26526:38;26534:9;26526:38;26554:9;26534;26526:38;;;;;;;;;;;;;;;;;;;;;26468:104;:::o;17273:410::-;404:10;17394:4;17443:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;17443:34:0;;;;;;;;;;17496:35;;;;17488:85;;;;-1:-1:-1;;;17488:85:0;;13647:2:1;17488:85:0;;;13629:21:1;13686:2;13666:18;;;13659:30;13725:34;13705:18;;;13698:62;-1:-1:-1;;;13776:18:1;;;13769:35;13821:19;;17488:85:0;13445:401:1;17488:85:0;17584:67;404:10;17607:7;17616:34;17635:15;17616:16;:34;:::i;17584:67::-;-1:-1:-1;17671:4:0;;17273:410;-1:-1:-1;;;17273:410:0:o;17691:165::-;17769:4;17786:40;17796:10;17808:9;17819:6;17786:9;:40::i;25287:115::-;12337:6;;-1:-1:-1;;;;;12337:6:0;404:10;12399:23;12391:68;;;;-1:-1:-1;;;12391:68:0;;;;;;;:::i;:::-;25367:15:::1;:27:::0;;-1:-1:-1;;;;;;25367:27:0::1;-1:-1:-1::0;;;;;25367:27:0;;;::::1;::::0;;;::::1;::::0;;25287:115::o;26336:124::-;12337:6;;-1:-1:-1;;;;;12337:6:0;404:10;12399:23;12391:68;;;;-1:-1:-1;;;12391:68:0;;;;;;;:::i;:::-;26438:14:::1;3647:2:::0;26438::::1;:14;:::i;:::-;26429:23;::::0;:6;:23:::1;:::i;:::-;26412:14;:40:::0;-1:-1:-1;26336:124:0:o;25521:117::-;12337:6;;-1:-1:-1;;;;;12337:6:0;404:10;12399:23;12391:68;;;;-1:-1:-1;;;12391:68:0;;;;;;;:::i;:::-;25602:16:::1;:28:::0;;-1:-1:-1;;;;;;25602:28:0::1;-1:-1:-1::0;;;;;25602:28:0;;;::::1;::::0;;;::::1;::::0;;25521:117::o;25109:170::-;12337:6;;-1:-1:-1;;;;;12337:6:0;404:10;12399:23;12391:68;;;;-1:-1:-1;;;12391:68:0;;;;;;;:::i;:::-;25203:2:::1;25191:9;:14;25182:58;;;::::0;-1:-1:-1;;;25182:58:0;;13287:2:1;25182:58:0::1;::::0;::::1;13269:21:1::0;13326:2;13306:18;;;13299:30;13365:33;13345:18;;;13338:61;13416:18;;25182:58:0::1;13085:355:1::0;25182:58:0::1;25251:8;:20:::0;25109:170::o;12589:192::-;12337:6;;-1:-1:-1;;;;;12337:6:0;404:10;12399:23;12391:68;;;;-1:-1:-1;;;12391:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12678:22:0;::::1;12670:73;;;::::0;-1:-1:-1;;;12670:73:0;;7876:2:1;12670:73:0::1;::::0;::::1;7858:21:1::0;7915:2;7895:18;;;7888:30;7954:34;7934:18;;;7927:62;-1:-1:-1;;;8005:18:1;;;7998:36;8051:19;;12670:73:0::1;7674:402:1::0;12670:73:0::1;12754:19;12764:8;12754:9;:19::i;:::-;12589:192:::0;:::o;10563:380::-;-1:-1:-1;;;;;10699:19:0;;10691:68;;;;-1:-1:-1;;;10691:68:0;;12527:2:1;10691:68:0;;;12509:21:1;12566:2;12546:18;;;12539:30;12605:34;12585:18;;;12578:62;-1:-1:-1;;;12656:18:1;;;12649:34;12700:19;;10691:68:0;12325:400:1;10691:68:0;-1:-1:-1;;;;;10778:21:0;;10770:68;;;;-1:-1:-1;;;10770:68:0;;8283:2:1;10770:68:0;;;8265:21:1;8322:2;8302:18;;;8295:30;8361:34;8341:18;;;8334:62;-1:-1:-1;;;8412:18:1;;;8405:32;8454:19;;10770:68:0;8081:398:1;10770:68:0;-1:-1:-1;;;;;10851:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10903:32;;13997:25:1;;;10903:32:0;;13970:18:1;10903:32:0;;;;;;;10563:380;;;:::o;17864:2850::-;18014:1;18005:6;:10;17997:64;;;;-1:-1:-1;;;17997:64:0;;11009:2:1;17997:64:0;;;10991:21:1;11048:2;11028:18;;;11021:30;11087:34;11067:18;;;11060:62;-1:-1:-1;;;11138:18:1;;;11131:39;11187:19;;17997:64:0;10807:405:1;17997:64:0;-1:-1:-1;;;;;18095:21:0;;;;;;:13;:21;;;;;;;;18094:22;:51;;;;-1:-1:-1;;;;;;18121:24:0;;;;;;:13;:24;;;;;;;;18120:25;18094:51;18072:126;;;;-1:-1:-1;;;18072:126:0;;11767:2:1;18072:126:0;;;11749:21:1;11806:2;11786:18;;;11779:30;11845:27;11825:18;;;11818:55;11890:18;;18072:126:0;11565:349:1;18072:126:0;-1:-1:-1;;;;;18216:17:0;;;;;;:9;:17;;;;;;;;18215:18;:43;;;;-1:-1:-1;;;;;;18238:20:0;;;;;;:9;:20;;;;;;;;18237:21;18215:43;18211:122;;;18283:14;;-1:-1:-1;;;18283:14:0;;;;18275:46;;;;-1:-1:-1;;;18275:46:0;;11419:2:1;18275:46:0;;;11401:21:1;11458:2;11438:18;;;11431:30;-1:-1:-1;;;11477:18:1;;;11470:49;11536:18;;18275:46:0;11217:343:1;18275:46:0;18359:4;;-1:-1:-1;;;;;18349:14:0;;;18359:4;;18349:14;:39;;;;-1:-1:-1;;;;;;18368:20:0;;;;;;:9;:20;;;;;;;;18367:21;18349:39;:59;;;;-1:-1:-1;18393:15:0;;-1:-1:-1;;;18393:15:0;;;;18392:16;18349:59;18345:233;;;18484:14;;18474:6;18451:20;18461:9;-1:-1:-1;;;;;3994:18:0;3967:7;3994:18;;;;;;;;;;;;3893:127;18451:20;:29;;;;:::i;:::-;:47;;18425:141;;;;-1:-1:-1;;;18425:141:0;;9093:2:1;18425:141:0;;;9075:21:1;;;9112:18;;;9105:30;9171:34;9151:18;;;9144:62;9223:18;;18425:141:0;8891:356:1;18425:141:0;18618:4;;-1:-1:-1;;;;;18608:14:0;;;18618:4;;18608:14;;;;:39;;-1:-1:-1;;;;;;18627:20:0;;;;;;:9;:20;;;;;;;;18626:21;18608:39;:61;;;;-1:-1:-1;;;;;;18652:17:0;;;;;;:9;:17;;;;;;;;18651:18;18608:61;:81;;;;-1:-1:-1;18674:15:0;;-1:-1:-1;;;18674:15:0;;;;18673:16;18608:81;18590:348;;;18733:4;;-1:-1:-1;;;;;18720:17:0;;;18733:4;;18720:17;18716:211;;18821:14;;18811:6;18788:20;18798:9;-1:-1:-1;;;;;3994:18:0;3967:7;3994:18;;;;;;;;;;;;3893:127;18788:20;:29;;;;:::i;:::-;:47;;18758:153;;;;-1:-1:-1;;;18758:153:0;;9093:2:1;18758:153:0;;;9075:21:1;;;9112:18;;;9105:30;9171:34;9151:18;;;9144:62;9223:18;;18758:153:0;8891:356:1;18758:153:0;18950:15;18976:14;19001:11;19023:23;19049:9;:21;;;19023:47;;19081:25;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19081:25:0;-1:-1:-1;;;;;19140:17:0;;19119;19140;;;:9;:17;;;;;;;;19139:18;:56;;;;-1:-1:-1;;;;;;19175:20:0;;;;;;:9;:20;;;;;;;;19174:21;19139:56;:112;;;;;19243:8;;19227:13;;:24;;;;:::i;:::-;19212:12;:39;19139:112;19339:15;;19119:132;;-1:-1:-1;;;;19339:15:0;;;;;:36;;-1:-1:-1;;;;;;19358:17:0;;;;;;:9;:17;;;;;;;;19339:36;:60;;;-1:-1:-1;;;;;;19379:20:0;;;;;;:9;:20;;;;;;;;19339:60;19335:759;;;19420:1;19414:7;;19335:759;;;19485:4;;-1:-1:-1;;;;;19472:17:0;;;19485:4;;19472:17;:34;;;;;19494:12;19493:13;19472:34;19468:626;;;19600:13;;19578:19;;19555:20;;19600:9;19533:19;:42;;19555:20;19533:42;:::i;:::-;:64;;;;:::i;:::-;:80;;;;:::i;:::-;19659:24;;;;;;;;19674:9;19659:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19523:90;;-1:-1:-1;19523:90:0;;-1:-1:-1;19659:24:0;;-1:-1:-1;19659:24:0;-1:-1:-1;19468:626:0;;;19760:12;19755:339;;19854:9;;19836:15;;19817:16;;19854:5;19799:15;:34;;19817:16;19799:34;:::i;:::-;:52;;;;:::i;:::-;:64;;;;:::i;:::-;19909:20;;;;;;;;19924:5;19909:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19789:74;;-1:-1:-1;19789:74:0;;-1:-1:-1;19909:20:0;;-1:-1:-1;19909:20:0;-1:-1:-1;19755:339:0;;;20001:12;19997:97;;;20040:9;;;-1:-1:-1;20040:9:0;;-1:-1:-1;19997:97:0;20138:15;20133:3;20114:15;20123:6;20114;:15;:::i;:::-;20113:23;;;;:::i;:::-;20112:41;;;;:::i;:::-;20267:18;;20106:47;;-1:-1:-1;;;;20267:18:0;;;;:36;;;;-1:-1:-1;20299:4:0;;-1:-1:-1;;;;;20289:14:0;;;20299:4;;20289:14;;20267:36;20263:76;;;20305:34;20317:7;20326:12;20305:11;:34::i;:::-;20381:48;20397:6;20405:9;20416:12;20425:3;20416:6;:12;:::i;:::-;20381:15;:48::i;:::-;20444:7;;20440:267;;20516:11;;20512:182;;20548:17;20595:15;20590:3;20570:16;20579:7;20570:6;:16;:::i;:::-;20569:24;;;;:::i;:::-;20568:42;;;;:::i;:::-;20548:62;;20629:49;20645:6;20661:4;20668:9;20629:15;:49::i;:::-;20529:165;20512:182;17986:2728;;;;;;17864:2850;;;:::o;12789:173::-;12864:6;;;-1:-1:-1;;;;;12881:17:0;;;-1:-1:-1;;;;;;12881:17:0;;;;;;;12914:40;;12864:6;;;12881:17;12864:6;;12914:40;;12845:16;;12914:40;12834:128;12789:173;:::o;20722:1927::-;15401:15;;-1:-1:-1;;;15401:15:0;;;;15396:125;;15433:15;:22;;-1:-1:-1;;;;15433:22:0;-1:-1:-1;;;15433:22:0;;;20818:12;20815:49:::1;;20846:7;;20815:49;20921:4;20877:23;3994:18:::0;;;;;;;;;;;20961:23:::1;::::0;20942:42;::::1;20938:1704;;21031:1;21005:23;;:27;21001:109;;;-1:-1:-1::0;21071:23:0::1;::::0;21001:109:::1;21181:19;21203:11;:7:::0;21213:1:::1;21203:11;:::i;:::-;21181:33;;21229:32;21323:11;21283:9;:19;;;21265:15;:37;;;;:::i;:::-;21264:70;;;;:::i;:::-;21229:105:::0;-1:-1:-1;21349:14:0::1;21366:42;21229:105:::0;21366:15;:42:::1;:::i;:::-;21349:59:::0;-1:-1:-1;21450:21:0::1;21488:24;21349:59:::0;21488:16:::1;:24::i;:::-;21529:20;21552:38;21576:14:::0;21552:21:::1;:38;:::i;:::-;21529:61;;21605:19;21679:9;:21;;;21658:9;:19;;;21644:11;:33;;;;:::i;:::-;21643:57;;;;:::i;:::-;21627:74;::::0;:12;:74:::1;:::i;:::-;21605:96;;21716:29;21784:9;:21;;;21763:9;:19;;;21749:11;:33;;;;:::i;:::-;21748:57;;;;:::i;:::-;21716:89:::0;-1:-1:-1;21826:25:0;;21822:172:::1;;21917:61;21930:24;21956:21;21917:12;:61::i;:::-;22073:21;::::0;::::1;::::0;22052:19;;22010:20:::1;::::0;22073:21;22034:15:::1;:11:::0;22048:1:::1;22034:15;:::i;:::-;:37;;;;:::i;:::-;22033:61;;;;:::i;:::-;22010:84:::0;-1:-1:-1;22113:16:0;;22109:105:::1;;22158:15;::::0;22150:48:::1;::::0;-1:-1:-1;;;;;22158:15:0::1;22185:12:::0;22150:34:::1;:48::i;:::-;22230:14;22281:9;:21;;;22266:9;:13;;;22248:11;22262:1;22248:15;;;;:::i;:::-;:31;;;;:::i;:::-;22247:55;;;;:::i;:::-;22230:72:::0;-1:-1:-1;22321:10:0;;22317:87:::1;;22360:9;::::0;22352:36:::1;::::0;-1:-1:-1;;;;;22360:9:0::1;22381:6:::0;22352:28:::1;:36::i;:::-;22420:21;22485:9;:21;;;22463:9;:20;;;22445:11;22459:1;22445:15;;;;:::i;:::-;:38;;;;:::i;:::-;22444:62;;;;:::i;:::-;22420:86:::0;-1:-1:-1;22525:17:0;;22521:108:::1;;22571:16;::::0;22563:50:::1;::::0;-1:-1:-1;;;;;22571:16:0::1;22599:13:::0;22563:35:::1;:50::i;:::-;20986:1656;;;;;;;;;;20938:1704;20802:1847;15470:1;15486:15:::0;:23;;-1:-1:-1;;;;15486:23:0;;;20722:1927;;:::o;8025:638::-;-1:-1:-1;;;;;8165:20:0;;8157:70;;;;-1:-1:-1;;;8157:70:0;;12121:2:1;8157:70:0;;;12103:21:1;12160:2;12140:18;;;12133:30;12199:34;12179:18;;;12172:62;-1:-1:-1;;;12250:18:1;;;12243:35;12295:19;;8157:70:0;11919:401:1;8157:70:0;-1:-1:-1;;;;;8246:23:0;;8238:71;;;;-1:-1:-1;;;8238:71:0;;7472:2:1;8238:71:0;;;7454:21:1;7511:2;7491:18;;;7484:30;7550:34;7530:18;;;7523:62;-1:-1:-1;;;7601:18:1;;;7594:33;7644:19;;8238:71:0;7270:399:1;8238:71:0;-1:-1:-1;;;;;8406:17:0;;8382:21;8406:17;;;;;;;;;;;8442:23;;;;8434:74;;;;-1:-1:-1;;;8434:74:0;;8686:2:1;8434:74:0;;;8668:21:1;8725:2;8705:18;;;8698:30;8764:34;8744:18;;;8737:62;-1:-1:-1;;;8815:18:1;;;8808:36;8861:19;;8434:74:0;8484:402:1;8434:74:0;8539:22;8555:6;8539:13;:22;:::i;:::-;-1:-1:-1;;;;;8519:17:0;;;:9;:17;;;;;;;;;;;:42;;;;8572:20;;;;;;;;:30;;8596:6;;8519:9;8572:30;;8596:6;;8572:30;:::i;:::-;;;;;;;;8637:9;-1:-1:-1;;;;;8620:35:0;8629:6;-1:-1:-1;;;;;8620:35:0;;8648:6;8620:35;;;;13997:25:1;;13985:2;13970:18;;13851:177;8620:35:0;;;;;;;;8146:517;8025:638;;;:::o;22657:534::-;22807:16;;;22821:1;22807:16;;;;;;;;22783:21;;22807:16;;;;;;;;;;-1:-1:-1;22807:16:0;22783:40;;22852:4;22834;22839:1;22834:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22834:23:0;;;:7;;;;;;;;;;:23;;;;22878:6;;:13;;;-1:-1:-1;;;22878:13:0;;;;:6;;;;;:11;;:13;;;;;22834:7;;22878:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22868:4;22873:1;22868:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22868:23:0;;;:7;;;;;;;;;:23;22936:6;;22904:53;;22921:4;;22936:6;22945:11;22904:8;:53::i;:::-;22996:6;;:187;;-1:-1:-1;;;22996:187:0;;-1:-1:-1;;;;;22996:6:0;;;;:57;;:187;;23068:11;;22996:6;;23110:4;;23137;;23157:15;;22996:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22712:479;22657:534;:::o;23199:499::-;23379:6;;23347:53;;23364:4;;-1:-1:-1;;;;;23379:6:0;23388:11;23347:8;:53::i;:::-;23443:6;;23640:9;;23443:247;;-1:-1:-1;;;23443:247:0;;23508:4;23443:247;;;5982:34:1;6032:18;;;6025:34;;;23443:6:0;6075:18:1;;;6068:34;;;6118:18;;;6111:34;-1:-1:-1;;;;;23640:9:0;;;6161:19:1;;;6154:44;23664:15:0;6214:19:1;;;6207:35;23443:6:0;;;:22;;23474:9;;5916:19:1;;23443:247:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;23199:499;;:::o;11707:319::-;11822:6;11797:21;:31;;11789:73;;;;-1:-1:-1;;;11789:73:0;;9881:2:1;11789:73:0;;;9863:21:1;9920:2;9900:18;;;9893:30;9959:31;9939:18;;;9932:59;10008:18;;11789:73:0;9679:353:1;11789:73:0;11876:12;11894:9;-1:-1:-1;;;;;11894:14:0;11917:6;11894:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11875:54;;;11948:7;11940:78;;;;-1:-1:-1;;;11940:78:0;;9454:2:1;11940:78:0;;;9436:21:1;9493:2;9473:18;;;9466:30;9532:34;9512:18;;;9505:62;9603:28;9583:18;;;9576:56;9649:19;;11940:78:0;9252:422:1;14:134;82:20;;111:31;82:20;111:31;:::i;:::-;14:134;;;:::o;153:128::-;218:20;;247:28;218:20;247:28;:::i;286:247::-;345:6;398:2;386:9;377:7;373:23;369:32;366:52;;;414:1;411;404:12;366:52;453:9;440:23;472:31;497:5;472:31;:::i;:::-;522:5;286:247;-1:-1:-1;;;286:247:1:o;538:251::-;608:6;661:2;649:9;640:7;636:23;632:32;629:52;;;677:1;674;667:12;629:52;709:9;703:16;728:31;753:5;728:31;:::i;794:388::-;862:6;870;923:2;911:9;902:7;898:23;894:32;891:52;;;939:1;936;929:12;891:52;978:9;965:23;997:31;1022:5;997:31;:::i;:::-;1047:5;-1:-1:-1;1104:2:1;1089:18;;1076:32;1117:33;1076:32;1117:33;:::i;:::-;1169:7;1159:17;;;794:388;;;;;:::o;1187:456::-;1264:6;1272;1280;1333:2;1321:9;1312:7;1308:23;1304:32;1301:52;;;1349:1;1346;1339:12;1301:52;1388:9;1375:23;1407:31;1432:5;1407:31;:::i;:::-;1457:5;-1:-1:-1;1514:2:1;1499:18;;1486:32;1527:33;1486:32;1527:33;:::i;:::-;1187:456;;1579:7;;-1:-1:-1;;;1633:2:1;1618:18;;;;1605:32;;1187:456::o;1648:382::-;1713:6;1721;1774:2;1762:9;1753:7;1749:23;1745:32;1742:52;;;1790:1;1787;1780:12;1742:52;1829:9;1816:23;1848:31;1873:5;1848:31;:::i;:::-;1898:5;-1:-1:-1;1955:2:1;1940:18;;1927:32;1968:30;1927:32;1968:30;:::i;2035:315::-;2103:6;2111;2164:2;2152:9;2143:7;2139:23;2135:32;2132:52;;;2180:1;2177;2170:12;2132:52;2219:9;2206:23;2238:31;2263:5;2238:31;:::i;:::-;2288:5;2340:2;2325:18;;;;2312:32;;-1:-1:-1;;;2035:315:1:o;2355:1202::-;2445:6;2453;2506:2;2494:9;2485:7;2481:23;2477:32;2474:52;;;2522:1;2519;2512:12;2474:52;2562:9;2549:23;2591:18;2632:2;2624:6;2621:14;2618:34;;;2648:1;2645;2638:12;2618:34;2686:6;2675:9;2671:22;2661:32;;2731:7;2724:4;2720:2;2716:13;2712:27;2702:55;;2753:1;2750;2743:12;2702:55;2789:2;2776:16;2811:4;2834:2;2830;2827:10;2824:36;;;2840:18;;:::i;:::-;2886:2;2883:1;2879:10;2918:2;2912:9;2981:2;2977:7;2972:2;2968;2964:11;2960:25;2952:6;2948:38;3036:6;3024:10;3021:22;3016:2;3004:10;3001:18;2998:46;2995:72;;;3047:18;;:::i;:::-;3083:2;3076:22;3133:18;;;3167:15;;;;-1:-1:-1;3202:11:1;;;3232;;;3228:20;;3225:33;-1:-1:-1;3222:53:1;;;3271:1;3268;3261:12;3222:53;3293:1;3284:10;;3303:169;3317:2;3314:1;3311:9;3303:169;;;3374:23;3393:3;3374:23;:::i;:::-;3362:36;;3335:1;3328:9;;;;;3418:12;;;;3450;;3303:169;;;-1:-1:-1;3491:6:1;-1:-1:-1;3516:35:1;;-1:-1:-1;3532:18:1;;;3516:35;:::i;:::-;3506:45;;;;;;2355:1202;;;;;:::o;3562:241::-;3618:6;3671:2;3659:9;3650:7;3646:23;3642:32;3639:52;;;3687:1;3684;3677:12;3639:52;3726:9;3713:23;3745:28;3767:5;3745:28;:::i;3808:245::-;3875:6;3928:2;3916:9;3907:7;3903:23;3899:32;3896:52;;;3944:1;3941;3934:12;3896:52;3976:9;3970:16;3995:28;4017:5;3995:28;:::i;4058:180::-;4117:6;4170:2;4158:9;4149:7;4145:23;4141:32;4138:52;;;4186:1;4183;4176:12;4138:52;-1:-1:-1;4209:23:1;;4058:180;-1:-1:-1;4058:180:1:o;4243:306::-;4331:6;4339;4347;4400:2;4388:9;4379:7;4375:23;4371:32;4368:52;;;4416:1;4413;4406:12;4368:52;4445:9;4439:16;4429:26;;4495:2;4484:9;4480:18;4474:25;4464:35;;4539:2;4528:9;4524:18;4518:25;4508:35;;4243:306;;;;;:::o;4554:385::-;4640:6;4648;4656;4664;4717:3;4705:9;4696:7;4692:23;4688:33;4685:53;;;4734:1;4731;4724:12;4685:53;-1:-1:-1;;4757:23:1;;;4827:2;4812:18;;4799:32;;-1:-1:-1;4878:2:1;4863:18;;4850:32;;4929:2;4914:18;4901:32;;-1:-1:-1;4554:385:1;-1:-1:-1;4554:385:1:o;6668:597::-;6780:4;6809:2;6838;6827:9;6820:21;6870:6;6864:13;6913:6;6908:2;6897:9;6893:18;6886:34;6938:1;6948:140;6962:6;6959:1;6956:13;6948:140;;;7057:14;;;7053:23;;7047:30;7023:17;;;7042:2;7019:26;7012:66;6977:10;;6948:140;;;7106:6;7103:1;7100:13;7097:91;;;7176:1;7171:2;7162:6;7151:9;7147:22;7143:31;7136:42;7097:91;-1:-1:-1;7249:2:1;7228:15;-1:-1:-1;;7224:29:1;7209:45;;;;7256:2;7205:54;;6668:597;-1:-1:-1;;;6668:597:1:o;10446:356::-;10648:2;10630:21;;;10667:18;;;10660:30;10726:34;10721:2;10706:18;;10699:62;10793:2;10778:18;;10446:356::o;14033:980::-;14295:4;14343:3;14332:9;14328:19;14374:6;14363:9;14356:25;14400:2;14438:6;14433:2;14422:9;14418:18;14411:34;14481:3;14476:2;14465:9;14461:18;14454:31;14505:6;14540;14534:13;14571:6;14563;14556:22;14609:3;14598:9;14594:19;14587:26;;14648:2;14640:6;14636:15;14622:29;;14669:1;14679:195;14693:6;14690:1;14687:13;14679:195;;;14758:13;;-1:-1:-1;;;;;14754:39:1;14742:52;;14849:15;;;;14814:12;;;;14790:1;14708:9;14679:195;;;-1:-1:-1;;;;;;;14930:32:1;;;;14925:2;14910:18;;14903:60;-1:-1:-1;;;14994:3:1;14979:19;14972:35;14891:3;14033:980;-1:-1:-1;;;14033:980:1:o;15207:128::-;15247:3;15278:1;15274:6;15271:1;15268:13;15265:39;;;15284:18;;:::i;:::-;-1:-1:-1;15320:9:1;;15207:128::o;15340:217::-;15380:1;15406;15396:132;;15450:10;15445:3;15441:20;15438:1;15431:31;15485:4;15482:1;15475:15;15513:4;15510:1;15503:15;15396:132;-1:-1:-1;15542:9:1;;15340:217::o;15562:422::-;15651:1;15694:5;15651:1;15708:270;15729:7;15719:8;15716:21;15708:270;;;15788:4;15784:1;15780:6;15776:17;15770:4;15767:27;15764:53;;;15797:18;;:::i;:::-;15847:7;15837:8;15833:22;15830:55;;;15867:16;;;;15830:55;15946:22;;;;15906:15;;;;15708:270;;;15712:3;15562:422;;;;;:::o;15989:140::-;16047:5;16076:47;16117:4;16107:8;16103:19;16097:4;16183:5;16213:8;16203:80;;-1:-1:-1;16254:1:1;16268:5;;16203:80;16302:4;16292:76;;-1:-1:-1;16339:1:1;16353:5;;16292:76;16384:4;16402:1;16397:59;;;;16470:1;16465:130;;;;16377:218;;16397:59;16427:1;16418:10;;16441:5;;;16465:130;16502:3;16492:8;16489:17;16486:43;;;16509:18;;:::i;:::-;-1:-1:-1;;16565:1:1;16551:16;;16580:5;;16377:218;;16679:2;16669:8;16666:16;16660:3;16654:4;16651:13;16647:36;16641:2;16631:8;16628:16;16623:2;16617:4;16614:12;16610:35;16607:77;16604:159;;;-1:-1:-1;16716:19:1;;;16748:5;;16604:159;16795:34;16820:8;16814:4;16795:34;:::i;:::-;16865:6;16861:1;16857:6;16853:19;16844:7;16841:32;16838:58;;;16876:18;;:::i;:::-;16914:20;;16134:806;-1:-1:-1;;;16134:806:1:o;16945:168::-;16985:7;17051:1;17047;17043:6;17039:14;17036:1;17033:21;17028:1;17021:9;17014:17;17010:45;17007:71;;;17058:18;;:::i;:::-;-1:-1:-1;17098:9:1;;16945:168::o;17118:125::-;17158:4;17186:1;17183;17180:8;17177:34;;;17191:18;;:::i;:::-;-1:-1:-1;17228:9:1;;17118:125::o;17248:380::-;17327:1;17323:12;;;;17370;;;17391:61;;17445:4;17437:6;17433:17;17423:27;;17391:61;17498:2;17490:6;17487:14;17467:18;17464:38;17461:161;;;17544:10;17539:3;17535:20;17532:1;17525:31;17579:4;17576:1;17569:15;17607:4;17604:1;17597:15;17461:161;;17248:380;;;:::o;17633:135::-;17672:3;-1:-1:-1;;17693:17:1;;17690:43;;;17713:18;;:::i;:::-;-1:-1:-1;17760:1:1;17749:13;;17633:135::o;17773:127::-;17834:10;17829:3;17825:20;17822:1;17815:31;17865:4;17862:1;17855:15;17889:4;17886:1;17879:15;17905:127;17966:10;17961:3;17957:20;17954:1;17947:31;17997:4;17994:1;17987:15;18021:4;18018:1;18011:15;18037:127;18098:10;18093:3;18089:20;18086:1;18079:31;18129:4;18126:1;18119:15;18153:4;18150:1;18143:15;18169:131;-1:-1:-1;;;;;18244:31:1;;18234:42;;18224:70;;18290:1;18287;18280:12;18305:118;18391:5;18384:13;18377:21;18370:5;18367:32;18357:60;;18413:1;18410;18403:12

Swarm Source

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