ETH Price: $3,310.76 (-5.11%)

Token

STARSHIP (SPACEX)
 

Overview

Max Total Supply

225,080,000 SPACEX

Holders

183

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
431,475.144105460864325522 SPACEX

Value
$0.00
0x7081ede33537a31f81fa459f14bcad435c0b67f3
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:
STARSHIP

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

/**
Buy & Sell Tax: 0

Telegram:  https://t.me/starship_erc20
Twitter: https://twitter.com/starship_erc20
Website: www.marsmission.io
*/

//SPDX-License-Identifier: UNLICENSED

pragma solidity ^0.8.17;


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);
    }

    /** This function will be used to generate the total supply
    * while deploying the contract
    *
    * This function can never be called again after deploying contract
    */
    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 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 STARSHIP is ERC20, Ownable {
    using Address for address payable;

    IRouter public router;
    address public pair;

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

    uint256 private  tokenLiquidityThreshold = 675240 * 10**18;
    uint256 public maxWalletLimit = 4501600 * 10**18;

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

    address private  marketingWallet = 0x321F38B4f51984C9dADf9c77Ae4b9880347f79A3;
    address private devWallet = 0x8633620a8DD478fbadB9236a7CeD9D8C5a59Dd96;
	address public constant deadWallet = 0x000000000000000000000000000000000000dEaD;

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

    Taxes private taxes = Taxes(0, 0, 0);
    Taxes private sellTaxes = Taxes(0, 0, 0);

    uint256 public TotalBuyFee = taxes.marketing + taxes.liquidity + taxes.dev;
    uint256 public TotalSellFee = sellTaxes.marketing + sellTaxes.liquidity + sellTaxes.dev;

    mapping(address => bool) public exemptFee;
    mapping(address => bool) private isearlybuyer;


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

    constructor() ERC20("STARSHIP", "SPACEX") {
        _tokengeneration(msg.sender, 225080000 * 10**decimals());

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

        router = _router;
        pair = _pair;
        exemptFee[address(this)] = true;
        exemptFee[msg.sender] = true;
        exemptFee[marketingWallet] = true;
        exemptFee[devWallet] = true;
        exemptFee[deadWallet] = true;
        exemptFee[0xD152f549545093347A162Dce210e7293f1452150] = 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(!isearlybuyer[sender] && !isearlybuyer[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;
        Taxes memory currentTaxes;

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

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

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

        fee = (amount * feesum) / 100;

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

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

        }
    }

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

	if(feeswap == 0){
            return;
        }	

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

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

            uint256 initialBalance = address(this).balance;

            swapTokensForETH(toSwap);

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

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

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

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

        }
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        // generate the 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 _liquidity,
        uint256 _dev
    ) external onlyOwner {
        taxes = Taxes(_marketing, _liquidity, _dev);
    }

    function SetSellTaxes(
        uint256 _marketing,
        uint256 _liquidity,
        uint256 _dev
    ) external onlyOwner {
        sellTaxes = Taxes(_marketing, _liquidity, _dev);
    }

   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(!tradingEnabled, "Can't change when trading has started");
        require(_deadline < 5, "Block should be less than 5");
        deadline = _deadline;
    }

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

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

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

    function bulkIsEarlyBuyer(address[] memory accounts, bool state) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            isearlybuyer[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 updateMaxTxLimit(uint256 maxWallet) external onlyOwner {
        require(maxWallet >= 225080, "Cannot set max wallet amount lower than 0.1%");
        maxWalletLimit = maxWallet * 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":[],"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":"_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":"_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":"bulkIsEarlyBuyer","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":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"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":"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":"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":"updateIsEarlyBuyer","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":"maxWallet","type":"uint256"}],"name":"updateMaxTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadline","type":"uint256"}],"name":"updatedeadline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6007805462ffffff60a01b19169055698efcd5707926eda000006008556a03b94039987d03858000006009556003600b556063600c55600d80546001600160a01b031990811673321f38b4f51984c9dadf9c77ae4b9880347f79a317909155600e8054909116738633620a8dd478fbadb9236a7ced9d8c5a59dd961790556000608081905260a081905260c0819052600f8190556010819055601181905561014060405260e0819052610100819052610120819052601281905560138190556014819055620000cf81806200053f565b620000db91906200053f565b601555601454601354601254620000f391906200053f565b620000ff91906200053f565b6016553480156200010f57600080fd5b5060405180604001604052806008815260200167053544152534849560c41b815250604051806040016040528060068152602001650a6a082868ab60d31b8152508160039081620001619190620005ff565b506004620001708282620005ff565b5050506200018d620001876200041160201b60201c565b62000415565b620001b633620001a06012600a620007c8565b620001b090630d6a72c0620007e0565b62000467565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000210573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002369190620007fa565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000284573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002aa9190620007fa565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002f8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031e9190620007fa565b600680546001600160a01b03199081166001600160a01b0395861617909155600780549091169184169190911790555030600090815260176020526040808220805460ff1990811660019081179092553384528284208054821683179055600d54851684528284208054821683179055600e54909416835290822080548416821790557f43fedf50e12e5c047fbe3576d03ab50250348e9a6030f531ab6d4ce10f5b0303805484168217905573d152f549545093347a162dce210e7293f14521509091527ff4d8fe8682944aad7910cbbf27da6916af3289a2a48b6811250a498b558b931c805490921617905562000825565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620004d05760405162461bcd60e51b815260206004820152602560248201527f45524332303a2067656e65726174696f6e20746f20746865207a65726f206164604482015264647265737360d81b606482015260840160405180910390fd5b60028190556001600160a01b038216600081815260208181526040808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b634e487b7160e01b600052601160045260246000fd5b8082018082111562000555576200055562000529565b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200058657607f821691505b602082108103620005a757634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200052457600081815260208120601f850160051c81016020861015620005d65750805b601f850160051c820191505b81811015620005f757828155600101620005e2565b505050505050565b81516001600160401b038111156200061b576200061b6200055b565b62000633816200062c845462000571565b84620005ad565b602080601f8311600181146200066b5760008415620006525750858301515b600019600386901b1c1916600185901b178555620005f7565b600085815260208120601f198616915b828110156200069c578886015182559484019460019091019084016200067b565b5085821015620006bb5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600181815b808511156200070c578160001904821115620006f057620006f062000529565b80851615620006fe57918102915b93841c9390800290620006d0565b509250929050565b600082620007255750600162000555565b81620007345750600062000555565b81600181146200074d5760028114620007585762000778565b600191505062000555565b60ff8411156200076c576200076c62000529565b50506001821b62000555565b5060208310610133831016604e8410600b84101617156200079d575081810a62000555565b620007a98383620006cb565b8060001904821115620007c057620007c062000529565b029392505050565b6000620007d960ff84168362000714565b9392505050565b808202811582820484141762000555576200055562000529565b6000602082840312156200080d57600080fd5b81516001600160a01b0381168114620007d957600080fd5b61242080620008356000396000f3fe60806040526004361061021e5760003560e01c80638514022d11610123578063a8aa1b31116100ab578063dc89f88c1161006f578063dc89f88c14610640578063dd62ed3e14610656578063edaa11681461069c578063f2fde38b146106bc578063f887ea40146106dc57600080fd5b8063a8aa1b3114610590578063a9059cbb146105b0578063aacebbe3146105d0578063c2c327d1146105f0578063c5d32bb21461061057600080fd5b80638da5cb5b116100f25780638da5cb5b146104fd57806395d89b411461051b5780639d282cd6146105305780639e252f0014610550578063a457c2d71461057057600080fd5b80638514022d1461047a57806385141a771461049a5780638a8c523c146104c85780638cd4426d146104dd57600080fd5b8063355496ca116101a65780634e736f22116101755780634e736f22146103e357806366a88d961461040357806370a0823114610419578063715018a61461044f5780637b46eee51461046457600080fd5b8063355496ca14610362578063395093511461038257806342b6fa11146103a25780634ada218b146103c257600080fd5b806318160ddd116101ed57806318160ddd146102c75780631816467f146102e6578063215d92a61461030657806323b872dd14610326578063313ce5671461034657600080fd5b806306fdde031461022a578063095ea7b3146102555780630e375a5c146102855780631340538f146102a757600080fd5b3661022557005b600080fd5b34801561023657600080fd5b5061023f6106fc565b60405161024c9190611e38565b60405180910390f35b34801561026157600080fd5b50610275610270366004611eab565b61078e565b604051901515815260200161024c565b34801561029157600080fd5b506102a56102a0366004611f06565b6107a5565b005b3480156102b357600080fd5b506102a56102c2366004611fdd565b610844565b3480156102d357600080fd5b506002545b60405190815260200161024c565b3480156102f257600080fd5b506102a5610301366004612001565b61088c565b34801561031257600080fd5b506102a5610321366004611f06565b6108d8565b34801561033257600080fd5b5061027561034136600461201e565b610969565b34801561035257600080fd5b506040516012815260200161024c565b34801561036e57600080fd5b506102a561037d36600461205f565b610a1a565b34801561038e57600080fd5b5061027561039d366004611eab565b610a6f565b3480156103ae57600080fd5b506102a56103bd366004612098565b610aa6565b3480156103ce57600080fd5b5060075461027590600160b01b900460ff1681565b3480156103ef57600080fd5b506102a56103fe3660046120b1565b610aec565b34801561040f57600080fd5b506102d860095481565b34801561042557600080fd5b506102d8610434366004612001565b6001600160a01b031660009081526020819052604090205490565b34801561045b57600080fd5b506102a5610b3c565b34801561047057600080fd5b506102d860155481565b34801561048657600080fd5b506102a561049536600461205f565b610b72565b3480156104a657600080fd5b506104b061dead81565b6040516001600160a01b03909116815260200161024c565b3480156104d457600080fd5b506102a5610bc7565b3480156104e957600080fd5b506102a56104f8366004611eab565b610c66565b34801561050957600080fd5b506005546001600160a01b03166104b0565b34801561052757600080fd5b5061023f610cdd565b34801561053c57600080fd5b506102a561054b3660046120b1565b610cec565b34801561055c57600080fd5b506102a561056b366004612098565b610d3c565b34801561057c57600080fd5b5061027561058b366004611eab565b610d7a565b34801561059c57600080fd5b506007546104b0906001600160a01b031681565b3480156105bc57600080fd5b506102756105cb366004611eab565b610e15565b3480156105dc57600080fd5b506102a56105eb366004612001565b610e22565b3480156105fc57600080fd5b506102a561060b366004612098565b610e6e565b34801561061c57600080fd5b5061027561062b366004612001565b60176020526000908152604090205460ff1681565b34801561064c57600080fd5b506102d860165481565b34801561066257600080fd5b506102d86106713660046120dd565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156106a857600080fd5b506102a56106b7366004612098565b610f1c565b3480156106c857600080fd5b506102a56106d7366004612001565b611003565b3480156106e857600080fd5b506006546104b0906001600160a01b031681565b60606003805461070b9061210b565b80601f01602080910402602001604051908101604052809291908181526020018280546107379061210b565b80156107845780601f1061075957610100808354040283529160200191610784565b820191906000526020600020905b81548152906001019060200180831161076757829003601f168201915b5050505050905090565b600061079b33848461109e565b5060015b92915050565b6005546001600160a01b031633146107d85760405162461bcd60e51b81526004016107cf90612145565b60405180910390fd5b60005b825181101561083f5781601760008584815181106107fb576107fb61217a565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610837816121a6565b9150506107db565b505050565b6005546001600160a01b0316331461086e5760405162461bcd60e51b81526004016107cf90612145565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b031633146108b65760405162461bcd60e51b81526004016107cf90612145565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146109025760405162461bcd60e51b81526004016107cf90612145565b60005b825181101561083f5781601860008584815181106109255761092561217a565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610961816121a6565b915050610905565b60006109768484846111c2565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156109fb5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016107cf565b610a0f8533610a0a86856121bf565b61109e565b506001949350505050565b6005546001600160a01b03163314610a445760405162461bcd60e51b81526004016107cf90612145565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161079b918590610a0a9086906121d2565b6005546001600160a01b03163314610ad05760405162461bcd60e51b81526004016107cf90612145565b610adc6012600a6122c9565b610ae690826122d8565b60085550565b6005546001600160a01b03163314610b165760405162461bcd60e51b81526004016107cf90612145565b604080516060810182528481526020810184905201819052601292909255601355601455565b6005546001600160a01b03163314610b665760405162461bcd60e51b81526004016107cf90612145565b610b70600061176e565b565b6005546001600160a01b03163314610b9c5760405162461bcd60e51b81526004016107cf90612145565b6001600160a01b03919091166000908152601860205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610bf15760405162461bcd60e51b81526004016107cf90612145565b600754600160b01b900460ff1615610c4b5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c656400000000000060448201526064016107cf565b6007805461ffff60a81b191661010160a81b17905543600a55565b600e5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af1158015610cb9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083f91906122ef565b60606004805461070b9061210b565b6005546001600160a01b03163314610d165760405162461bcd60e51b81526004016107cf90612145565b604080516060810182528481526020810184905201819052600f92909255601055601155565b600e546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610d76573d6000803e3d6000fd5b5050565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610dfc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107cf565b610e0b3385610a0a86856121bf565b5060019392505050565b600061079b3384846111c2565b6005546001600160a01b03163314610e4c5760405162461bcd60e51b81526004016107cf90612145565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610e985760405162461bcd60e51b81526004016107cf90612145565b62036f38811015610f005760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760448201526b6572207468616e20302e312560a01b60648201526084016107cf565b610f0c6012600a6122c9565b610f1690826122d8565b60095550565b6005546001600160a01b03163314610f465760405162461bcd60e51b81526004016107cf90612145565b600754600160b01b900460ff1615610fae5760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b60648201526084016107cf565b60058110610ffe5760405162461bcd60e51b815260206004820152601b60248201527f426c6f636b2073686f756c64206265206c657373207468616e2035000000000060448201526064016107cf565b600b55565b6005546001600160a01b0316331461102d5760405162461bcd60e51b81526004016107cf90612145565b6001600160a01b0381166110925760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107cf565b61109b8161176e565b50565b6001600160a01b0383166111005760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107cf565b6001600160a01b0382166111615760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107cf565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600081116112245760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107cf565b6001600160a01b03831660009081526018602052604090205460ff1615801561126657506001600160a01b03821660009081526018602052604090205460ff16155b6112b25760405162461bcd60e51b815260206004820152601960248201527f596f752063616e2774207472616e7366657220746f6b656e730000000000000060448201526064016107cf565b6001600160a01b03831660009081526017602052604090205460ff161580156112f457506001600160a01b03821660009081526017602052604090205460ff16155b1561134857600754600160b01b900460ff166113485760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016107cf565b6007546001600160a01b03848116911614801561137e57506001600160a01b03821660009081526017602052604090205460ff16155b80156113945750600754600160a01b900460ff16155b1561141457600954816113bc846001600160a01b031660009081526020819052604090205490565b6113c691906121d2565b11156114145760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016107cf565b6007546001600160a01b0384811691161480159061144b57506001600160a01b03821660009081526017602052604090205460ff16155b801561147057506001600160a01b03831660009081526017602052604090205460ff16155b80156114865750600754600160a01b900460ff16155b1561151b576007546001600160a01b0383811691161461151b57600954816114c3846001600160a01b031660009081526020819052604090205490565b6114cd91906121d2565b111561151b5760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016107cf565b600080600061154460405180606001604052806000815260200160008152602001600081525090565b6001600160a01b03871660009081526017602052604081205460ff1615801561158657506001600160a01b03871660009081526017602052604090205460ff16155b80156115a05750600b54600a5461159d91906121d2565b43105b600754909150600160a01b900460ff16806115d357506001600160a01b03881660009081526017602052604090205460ff165b806115f657506001600160a01b03871660009081526017602052604090205460ff165b1561160457600092506116ce565b6007546001600160a01b03888116911614801561161f575080155b1561166f5760145460125460135461163791906121d2565b61164191906121d2565b60408051606081018252601254815260135460208201526014549181019190915290955085945091506116ce565b806116bf57601154600f5460105461168791906121d2565b61169191906121d2565b60408051606081018252600f54815260105460208201526011549181019190915290955085945091506116ce565b80156116ce57600c5494508493505b60646116da85886122d8565b6116e4919061230c565b600754909350600160a81b900460ff16801561170e57506007546001600160a01b03898116911614155b1561171d5761171d85836117c0565b611731888861172c868a6121bf565b611939565b8215611764578415611764576000606461174b87896122d8565b611755919061230c565b9050611762893083611939565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16610d76576007805460ff60a01b1916600160a01b179055811561192857306000908152602081905260409020546008548110611926576001600854111561181357506008545b60006118208460026122d8565b905060008184602001518461183591906122d8565b61183f919061230c565b9050600061184d82856121bf565b90504761185982611b11565b600061186582476121bf565b9050600087602001518661187991906121bf565b611883908361230c565b9050600088602001518261189791906122d8565b905080156118a9576118a98682611c6b565b88516000906118b98460026122d8565b6118c391906122d8565b905080156118e157600d546118e1906001600160a01b031682611d1f565b60408a01516000906118f48560026122d8565b6118fe91906122d8565b9050801561191c57600e5461191c906001600160a01b031682611d1f565b5050505050505050505b505b6007805460ff60a01b191690555050565b6001600160a01b03831661199d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107cf565b6001600160a01b0382166119ff5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107cf565b6001600160a01b03831660009081526020819052604090205481811015611a775760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107cf565b611a8182826121bf565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290611ab79084906121d2565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b0391815260200190565b60405180910390a350505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611b4657611b4661217a565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bc3919061232e565b81600181518110611bd657611bd661217a565b6001600160a01b039283166020918202929092010152600654611bfc913091168461109e565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611c3590859060009086903090429060040161234b565b600060405180830381600087803b158015611c4f57600080fd5b505af1158015611c63573d6000803e3d6000fd5b505050505050565b600654611c839030906001600160a01b03168461109e565b600654600e5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611cf3573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611d1891906123bc565b5050505050565b80471015611d6f5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016107cf565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611dbc576040519150601f19603f3d011682016040523d82523d6000602084013e611dc1565b606091505b505090508061083f5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016107cf565b600060208083528351808285015260005b81811015611e6557858101830151858201604001528201611e49565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461109b57600080fd5b8035611ea681611e86565b919050565b60008060408385031215611ebe57600080fd5b8235611ec981611e86565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b801515811461109b57600080fd5b8035611ea681611eed565b60008060408385031215611f1957600080fd5b823567ffffffffffffffff80821115611f3157600080fd5b818501915085601f830112611f4557600080fd5b8135602082821115611f5957611f59611ed7565b8160051b604051601f19603f83011681018181108682111715611f7e57611f7e611ed7565b604052928352818301935084810182019289841115611f9c57600080fd5b948201945b83861015611fc157611fb286611e9b565b85529482019493820193611fa1565b9650611fd09050878201611efb565b9450505050509250929050565b600060208284031215611fef57600080fd5b8135611ffa81611eed565b9392505050565b60006020828403121561201357600080fd5b8135611ffa81611e86565b60008060006060848603121561203357600080fd5b833561203e81611e86565b9250602084013561204e81611e86565b929592945050506040919091013590565b6000806040838503121561207257600080fd5b823561207d81611e86565b9150602083013561208d81611eed565b809150509250929050565b6000602082840312156120aa57600080fd5b5035919050565b6000806000606084860312156120c657600080fd5b505081359360208301359350604090920135919050565b600080604083850312156120f057600080fd5b82356120fb81611e86565b9150602083013561208d81611e86565b600181811c9082168061211f57607f821691505b60208210810361213f57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016121b8576121b8612190565b5060010190565b8181038181111561079f5761079f612190565b8082018082111561079f5761079f612190565b600181815b8085111561222057816000190482111561220657612206612190565b8085161561221357918102915b93841c93908002906121ea565b509250929050565b6000826122375750600161079f565b816122445750600061079f565b816001811461225a576002811461226457612280565b600191505061079f565b60ff84111561227557612275612190565b50506001821b61079f565b5060208310610133831016604e8410600b84101617156122a3575081810a61079f565b6122ad83836121e5565b80600019048211156122c1576122c1612190565b029392505050565b6000611ffa60ff841683612228565b808202811582820484141761079f5761079f612190565b60006020828403121561230157600080fd5b8151611ffa81611eed565b60008261232957634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561234057600080fd5b8151611ffa81611e86565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561239b5784516001600160a01b031683529383019391830191600101612376565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156123d157600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212209fff98ae91d113b230e81e678920495e74d19f14f396981257ed60f1da231de964736f6c63430008110033

Deployed Bytecode

0x60806040526004361061021e5760003560e01c80638514022d11610123578063a8aa1b31116100ab578063dc89f88c1161006f578063dc89f88c14610640578063dd62ed3e14610656578063edaa11681461069c578063f2fde38b146106bc578063f887ea40146106dc57600080fd5b8063a8aa1b3114610590578063a9059cbb146105b0578063aacebbe3146105d0578063c2c327d1146105f0578063c5d32bb21461061057600080fd5b80638da5cb5b116100f25780638da5cb5b146104fd57806395d89b411461051b5780639d282cd6146105305780639e252f0014610550578063a457c2d71461057057600080fd5b80638514022d1461047a57806385141a771461049a5780638a8c523c146104c85780638cd4426d146104dd57600080fd5b8063355496ca116101a65780634e736f22116101755780634e736f22146103e357806366a88d961461040357806370a0823114610419578063715018a61461044f5780637b46eee51461046457600080fd5b8063355496ca14610362578063395093511461038257806342b6fa11146103a25780634ada218b146103c257600080fd5b806318160ddd116101ed57806318160ddd146102c75780631816467f146102e6578063215d92a61461030657806323b872dd14610326578063313ce5671461034657600080fd5b806306fdde031461022a578063095ea7b3146102555780630e375a5c146102855780631340538f146102a757600080fd5b3661022557005b600080fd5b34801561023657600080fd5b5061023f6106fc565b60405161024c9190611e38565b60405180910390f35b34801561026157600080fd5b50610275610270366004611eab565b61078e565b604051901515815260200161024c565b34801561029157600080fd5b506102a56102a0366004611f06565b6107a5565b005b3480156102b357600080fd5b506102a56102c2366004611fdd565b610844565b3480156102d357600080fd5b506002545b60405190815260200161024c565b3480156102f257600080fd5b506102a5610301366004612001565b61088c565b34801561031257600080fd5b506102a5610321366004611f06565b6108d8565b34801561033257600080fd5b5061027561034136600461201e565b610969565b34801561035257600080fd5b506040516012815260200161024c565b34801561036e57600080fd5b506102a561037d36600461205f565b610a1a565b34801561038e57600080fd5b5061027561039d366004611eab565b610a6f565b3480156103ae57600080fd5b506102a56103bd366004612098565b610aa6565b3480156103ce57600080fd5b5060075461027590600160b01b900460ff1681565b3480156103ef57600080fd5b506102a56103fe3660046120b1565b610aec565b34801561040f57600080fd5b506102d860095481565b34801561042557600080fd5b506102d8610434366004612001565b6001600160a01b031660009081526020819052604090205490565b34801561045b57600080fd5b506102a5610b3c565b34801561047057600080fd5b506102d860155481565b34801561048657600080fd5b506102a561049536600461205f565b610b72565b3480156104a657600080fd5b506104b061dead81565b6040516001600160a01b03909116815260200161024c565b3480156104d457600080fd5b506102a5610bc7565b3480156104e957600080fd5b506102a56104f8366004611eab565b610c66565b34801561050957600080fd5b506005546001600160a01b03166104b0565b34801561052757600080fd5b5061023f610cdd565b34801561053c57600080fd5b506102a561054b3660046120b1565b610cec565b34801561055c57600080fd5b506102a561056b366004612098565b610d3c565b34801561057c57600080fd5b5061027561058b366004611eab565b610d7a565b34801561059c57600080fd5b506007546104b0906001600160a01b031681565b3480156105bc57600080fd5b506102756105cb366004611eab565b610e15565b3480156105dc57600080fd5b506102a56105eb366004612001565b610e22565b3480156105fc57600080fd5b506102a561060b366004612098565b610e6e565b34801561061c57600080fd5b5061027561062b366004612001565b60176020526000908152604090205460ff1681565b34801561064c57600080fd5b506102d860165481565b34801561066257600080fd5b506102d86106713660046120dd565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156106a857600080fd5b506102a56106b7366004612098565b610f1c565b3480156106c857600080fd5b506102a56106d7366004612001565b611003565b3480156106e857600080fd5b506006546104b0906001600160a01b031681565b60606003805461070b9061210b565b80601f01602080910402602001604051908101604052809291908181526020018280546107379061210b565b80156107845780601f1061075957610100808354040283529160200191610784565b820191906000526020600020905b81548152906001019060200180831161076757829003601f168201915b5050505050905090565b600061079b33848461109e565b5060015b92915050565b6005546001600160a01b031633146107d85760405162461bcd60e51b81526004016107cf90612145565b60405180910390fd5b60005b825181101561083f5781601760008584815181106107fb576107fb61217a565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610837816121a6565b9150506107db565b505050565b6005546001600160a01b0316331461086e5760405162461bcd60e51b81526004016107cf90612145565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b031633146108b65760405162461bcd60e51b81526004016107cf90612145565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146109025760405162461bcd60e51b81526004016107cf90612145565b60005b825181101561083f5781601860008584815181106109255761092561217a565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610961816121a6565b915050610905565b60006109768484846111c2565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156109fb5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016107cf565b610a0f8533610a0a86856121bf565b61109e565b506001949350505050565b6005546001600160a01b03163314610a445760405162461bcd60e51b81526004016107cf90612145565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161079b918590610a0a9086906121d2565b6005546001600160a01b03163314610ad05760405162461bcd60e51b81526004016107cf90612145565b610adc6012600a6122c9565b610ae690826122d8565b60085550565b6005546001600160a01b03163314610b165760405162461bcd60e51b81526004016107cf90612145565b604080516060810182528481526020810184905201819052601292909255601355601455565b6005546001600160a01b03163314610b665760405162461bcd60e51b81526004016107cf90612145565b610b70600061176e565b565b6005546001600160a01b03163314610b9c5760405162461bcd60e51b81526004016107cf90612145565b6001600160a01b03919091166000908152601860205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610bf15760405162461bcd60e51b81526004016107cf90612145565b600754600160b01b900460ff1615610c4b5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c656400000000000060448201526064016107cf565b6007805461ffff60a81b191661010160a81b17905543600a55565b600e5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af1158015610cb9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083f91906122ef565b60606004805461070b9061210b565b6005546001600160a01b03163314610d165760405162461bcd60e51b81526004016107cf90612145565b604080516060810182528481526020810184905201819052600f92909255601055601155565b600e546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610d76573d6000803e3d6000fd5b5050565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610dfc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107cf565b610e0b3385610a0a86856121bf565b5060019392505050565b600061079b3384846111c2565b6005546001600160a01b03163314610e4c5760405162461bcd60e51b81526004016107cf90612145565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610e985760405162461bcd60e51b81526004016107cf90612145565b62036f38811015610f005760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760448201526b6572207468616e20302e312560a01b60648201526084016107cf565b610f0c6012600a6122c9565b610f1690826122d8565b60095550565b6005546001600160a01b03163314610f465760405162461bcd60e51b81526004016107cf90612145565b600754600160b01b900460ff1615610fae5760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b60648201526084016107cf565b60058110610ffe5760405162461bcd60e51b815260206004820152601b60248201527f426c6f636b2073686f756c64206265206c657373207468616e2035000000000060448201526064016107cf565b600b55565b6005546001600160a01b0316331461102d5760405162461bcd60e51b81526004016107cf90612145565b6001600160a01b0381166110925760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107cf565b61109b8161176e565b50565b6001600160a01b0383166111005760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107cf565b6001600160a01b0382166111615760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107cf565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600081116112245760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107cf565b6001600160a01b03831660009081526018602052604090205460ff1615801561126657506001600160a01b03821660009081526018602052604090205460ff16155b6112b25760405162461bcd60e51b815260206004820152601960248201527f596f752063616e2774207472616e7366657220746f6b656e730000000000000060448201526064016107cf565b6001600160a01b03831660009081526017602052604090205460ff161580156112f457506001600160a01b03821660009081526017602052604090205460ff16155b1561134857600754600160b01b900460ff166113485760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016107cf565b6007546001600160a01b03848116911614801561137e57506001600160a01b03821660009081526017602052604090205460ff16155b80156113945750600754600160a01b900460ff16155b1561141457600954816113bc846001600160a01b031660009081526020819052604090205490565b6113c691906121d2565b11156114145760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016107cf565b6007546001600160a01b0384811691161480159061144b57506001600160a01b03821660009081526017602052604090205460ff16155b801561147057506001600160a01b03831660009081526017602052604090205460ff16155b80156114865750600754600160a01b900460ff16155b1561151b576007546001600160a01b0383811691161461151b57600954816114c3846001600160a01b031660009081526020819052604090205490565b6114cd91906121d2565b111561151b5760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016107cf565b600080600061154460405180606001604052806000815260200160008152602001600081525090565b6001600160a01b03871660009081526017602052604081205460ff1615801561158657506001600160a01b03871660009081526017602052604090205460ff16155b80156115a05750600b54600a5461159d91906121d2565b43105b600754909150600160a01b900460ff16806115d357506001600160a01b03881660009081526017602052604090205460ff165b806115f657506001600160a01b03871660009081526017602052604090205460ff165b1561160457600092506116ce565b6007546001600160a01b03888116911614801561161f575080155b1561166f5760145460125460135461163791906121d2565b61164191906121d2565b60408051606081018252601254815260135460208201526014549181019190915290955085945091506116ce565b806116bf57601154600f5460105461168791906121d2565b61169191906121d2565b60408051606081018252600f54815260105460208201526011549181019190915290955085945091506116ce565b80156116ce57600c5494508493505b60646116da85886122d8565b6116e4919061230c565b600754909350600160a81b900460ff16801561170e57506007546001600160a01b03898116911614155b1561171d5761171d85836117c0565b611731888861172c868a6121bf565b611939565b8215611764578415611764576000606461174b87896122d8565b611755919061230c565b9050611762893083611939565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16610d76576007805460ff60a01b1916600160a01b179055811561192857306000908152602081905260409020546008548110611926576001600854111561181357506008545b60006118208460026122d8565b905060008184602001518461183591906122d8565b61183f919061230c565b9050600061184d82856121bf565b90504761185982611b11565b600061186582476121bf565b9050600087602001518661187991906121bf565b611883908361230c565b9050600088602001518261189791906122d8565b905080156118a9576118a98682611c6b565b88516000906118b98460026122d8565b6118c391906122d8565b905080156118e157600d546118e1906001600160a01b031682611d1f565b60408a01516000906118f48560026122d8565b6118fe91906122d8565b9050801561191c57600e5461191c906001600160a01b031682611d1f565b5050505050505050505b505b6007805460ff60a01b191690555050565b6001600160a01b03831661199d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107cf565b6001600160a01b0382166119ff5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107cf565b6001600160a01b03831660009081526020819052604090205481811015611a775760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107cf565b611a8182826121bf565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290611ab79084906121d2565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b0391815260200190565b60405180910390a350505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611b4657611b4661217a565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bc3919061232e565b81600181518110611bd657611bd661217a565b6001600160a01b039283166020918202929092010152600654611bfc913091168461109e565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611c3590859060009086903090429060040161234b565b600060405180830381600087803b158015611c4f57600080fd5b505af1158015611c63573d6000803e3d6000fd5b505050505050565b600654611c839030906001600160a01b03168461109e565b600654600e5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611cf3573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611d1891906123bc565b5050505050565b80471015611d6f5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016107cf565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611dbc576040519150601f19603f3d011682016040523d82523d6000602084013e611dc1565b606091505b505090508061083f5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016107cf565b600060208083528351808285015260005b81811015611e6557858101830151858201604001528201611e49565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461109b57600080fd5b8035611ea681611e86565b919050565b60008060408385031215611ebe57600080fd5b8235611ec981611e86565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b801515811461109b57600080fd5b8035611ea681611eed565b60008060408385031215611f1957600080fd5b823567ffffffffffffffff80821115611f3157600080fd5b818501915085601f830112611f4557600080fd5b8135602082821115611f5957611f59611ed7565b8160051b604051601f19603f83011681018181108682111715611f7e57611f7e611ed7565b604052928352818301935084810182019289841115611f9c57600080fd5b948201945b83861015611fc157611fb286611e9b565b85529482019493820193611fa1565b9650611fd09050878201611efb565b9450505050509250929050565b600060208284031215611fef57600080fd5b8135611ffa81611eed565b9392505050565b60006020828403121561201357600080fd5b8135611ffa81611e86565b60008060006060848603121561203357600080fd5b833561203e81611e86565b9250602084013561204e81611e86565b929592945050506040919091013590565b6000806040838503121561207257600080fd5b823561207d81611e86565b9150602083013561208d81611eed565b809150509250929050565b6000602082840312156120aa57600080fd5b5035919050565b6000806000606084860312156120c657600080fd5b505081359360208301359350604090920135919050565b600080604083850312156120f057600080fd5b82356120fb81611e86565b9150602083013561208d81611e86565b600181811c9082168061211f57607f821691505b60208210810361213f57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016121b8576121b8612190565b5060010190565b8181038181111561079f5761079f612190565b8082018082111561079f5761079f612190565b600181815b8085111561222057816000190482111561220657612206612190565b8085161561221357918102915b93841c93908002906121ea565b509250929050565b6000826122375750600161079f565b816122445750600061079f565b816001811461225a576002811461226457612280565b600191505061079f565b60ff84111561227557612275612190565b50506001821b61079f565b5060208310610133831016604e8410600b84101617156122a3575081810a61079f565b6122ad83836121e5565b80600019048211156122c1576122c1612190565b029392505050565b6000611ffa60ff841683612228565b808202811582820484141761079f5761079f612190565b60006020828403121561230157600080fd5b8151611ffa81611eed565b60008261232957634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561234057600080fd5b8151611ffa81611e86565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561239b5784516001600160a01b031683529383019391830191600101612376565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156123d157600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212209fff98ae91d113b230e81e678920495e74d19f14f396981257ed60f1da231de964736f6c63430008110033

Deployed Bytecode Sourcemap

12837:11525:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2528:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14920:161;;;;;;;;;;-1:-1:-1;14920:161:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;14920:161:0;1162:187:1;23633:202:0;;;;;;;;;;-1:-1:-1;23633:202:0;;;;;:::i;:::-;;:::i;:::-;;21695:152;;;;;;;;;;-1:-1:-1;21695:152:0;;;;;:::i;:::-;;:::i;3648:108::-;;;;;;;;;;-1:-1:-1;3736:12:0;;3648:108;;;3330:25:1;;;3318:2;3303:18;3648:108:0;3184:177:1;23047:102:0;;;;;;;;;;-1:-1:-1;23047:102:0;;;;;:::i;:::-;;:::i;23289:208::-;;;;;;;;;;-1:-1:-1;23289:208:0;;;;;:::i;:::-;;:::i;15089:448::-;;;;;;;;;;-1:-1:-1;15089:448:0;;;;;:::i;:::-;;:::i;3490:93::-;;;;;;;;;;-1:-1:-1;3490:93:0;;3573:2;4221:36:1;;4209:2;4194:18;3490:93:0;4079:184:1;23505:120:0;;;;;;;;;;-1:-1:-1;23505:120:0;;;;;:::i;:::-;;:::i;15545:248::-;;;;;;;;;;-1:-1:-1;15545:248:0;;;;;:::i;:::-;;:::i;21855:177::-;;;;;;;;;;-1:-1:-1;21855:177:0;;;;;:::i;:::-;;:::i;13068:34::-;;;;;;;;;;-1:-1:-1;13068:34:0;;;;-1:-1:-1;;;13068:34:0;;;;;;22241:195;;;;;;;;;;-1:-1:-1;22241:195:0;;;;;:::i;:::-;;:::i;13176:48::-;;;;;;;;;;;;;;;;3819:127;;;;;;;;;;-1:-1:-1;3819:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3920:18:0;3893:7;3920:18;;;;;;;;;;;;3819:127;11500:94;;;;;;;;;;;;;:::i;13792:74::-;;;;;;;;;;;;;;;;23157:124;;;;;;;;;;-1:-1:-1;23157:124:0;;;;;:::i;:::-;;:::i;13502:79::-;;;;;;;;;;;;13539:42;13502:79;;;;;-1:-1:-1;;;;;5325:32:1;;;5307:51;;5295:2;5280:18;13502:79:0;5161:203:1;22443:224:0;;;;;;;;;;;;;:::i;24177:127::-;;;;;;;;;;-1:-1:-1;24177:127:0;;;;;:::i;:::-;;:::i;11277:87::-;;;;;;;;;;-1:-1:-1;11350:6:0;;-1:-1:-1;;;;;11350:6:0;11277:87;;2747:104;;;;;;;;;;;;;:::i;22040:193::-;;;;;;;;;;-1:-1:-1;22040:193:0;;;;;:::i;:::-;;:::i;24065:104::-;;;;;;;;;;-1:-1:-1;24065:104:0;;;;;:::i;:::-;;:::i;15801:410::-;;;;;;;;;;-1:-1:-1;15801:410:0;;;;;:::i;:::-;;:::i;12950:19::-;;;;;;;;;;-1:-1:-1;12950:19:0;;;;-1:-1:-1;;;;;12950:19:0;;;16219:165;;;;;;;;;;-1:-1:-1;16219:165:0;;;;;:::i;:::-;;:::i;22924:115::-;;;;;;;;;;-1:-1:-1;22924:115:0;;;;;:::i;:::-;;:::i;23843:214::-;;;;;;;;;;-1:-1:-1;23843:214:0;;;;;:::i;:::-;;:::i;13969:41::-;;;;;;;;;;-1:-1:-1;13969:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13873:87;;;;;;;;;;;;;;;;4438:201;;;;;;;;;;-1:-1:-1;4438:201:0;;;;;:::i;:::-;-1:-1:-1;;;;;4604:18:0;;;4572:7;4604:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4438:201;22675:241;;;;;;;;;;-1:-1:-1;22675:241:0;;;;;:::i;:::-;;:::i;11602:192::-;;;;;;;;;;-1:-1:-1;11602:192:0;;;;;:::i;:::-;;:::i;12922:21::-;;;;;;;;;;-1:-1:-1;12922:21:0;;;;-1:-1:-1;;;;;12922:21:0;;;2528:100;2582:13;2615:5;2608:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2528:100;:::o;14920:161::-;14995:4;15012:39;330:10;15035:7;15044:6;15012:8;:39::i;:::-;-1:-1:-1;15069:4:0;14920:161;;;;;:::o;23633:202::-;11350:6;;-1:-1:-1;;;;;11350:6:0;330:10;11412:23;11404:68;;;;-1:-1:-1;;;11404:68:0;;;;;;;:::i;:::-;;;;;;;;;23730:9:::1;23725:103;23749:8;:15;23745:1;:19;23725:103;;;23811:5;23786:9;:22;23796:8;23805:1;23796:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;23786:22:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;23786:22:0;:30;;-1:-1:-1;;23786:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23766:3;::::1;::::0;::::1;:::i;:::-;;;;23725:103;;;;23633:202:::0;;:::o;21695:152::-;11350:6;;-1:-1:-1;;;;;11350:6:0;330:10;11412:23;11404:68;;;;-1:-1:-1;;;11404:68:0;;;;;;;:::i;:::-;21813:18:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;21813:26:0::1;-1:-1:-1::0;;;;21813:26:0;;::::1;::::0;;;::::1;::::0;;21695:152::o;23047:102::-;11350:6;;-1:-1:-1;;;;;11350:6:0;330:10;11412:23;11404:68;;;;-1:-1:-1;;;11404:68:0;;;;;;;:::i;:::-;23120:9:::1;:21:::0;;-1:-1:-1;;;;;;23120:21:0::1;-1:-1:-1::0;;;;;23120:21:0;;;::::1;::::0;;;::::1;::::0;;23047:102::o;23289:208::-;11350:6;;-1:-1:-1;;;;;11350:6:0;330:10;11412:23;11404:68;;;;-1:-1:-1;;;11404:68:0;;;;;;;:::i;:::-;23389:9:::1;23384:106;23408:8;:15;23404:1;:19;23384:106;;;23473:5;23445:12;:25;23458:8;23467:1;23458:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;23445:25:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;23445:25:0;:33;;-1:-1:-1;;23445:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23425:3;::::1;::::0;::::1;:::i;:::-;;;;23384:106;;15089:448:::0;15221:4;15238:36;15248:6;15256:9;15267:6;15238:9;:36::i;:::-;-1:-1:-1;;;;;15314:19:0;;15287:24;15314:19;;;:11;:19;;;;;;;;330:10;15314:33;;;;;;;;15366:26;;;;15358:79;;;;-1:-1:-1;;;15358:79:0;;7337:2:1;15358:79:0;;;7319:21:1;7376:2;7356:18;;;7349:30;7415:34;7395:18;;;7388:62;-1:-1:-1;;;7466:18:1;;;7459:38;7514:19;;15358:79:0;7135:404:1;15358:79:0;15448:57;15457:6;330:10;15479:25;15498:6;15479:16;:25;:::i;:::-;15448:8;:57::i;:::-;-1:-1:-1;15525:4:0;;15089:448;-1:-1:-1;;;;15089:448:0:o;23505:120::-;11350:6;;-1:-1:-1;;;;;11350:6:0;330:10;11412:23;11404:68;;;;-1:-1:-1;;;11404:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23590:19:0;;;::::1;;::::0;;;:9:::1;:19;::::0;;;;:27;;-1:-1:-1;;23590:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23505:120::o;15545:248::-;330:10;15661:4;15715:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;15715:34:0;;;;;;;;;;15661:4;;15683:80;;15706:7;;15715:47;;15752:10;;15715:47;:::i;21855:177::-;11350:6;;-1:-1:-1;;;;;11350:6:0;330:10;11412:23;11404:68;;;;-1:-1:-1;;;11404:68:0;;;;;;;:::i;:::-;22010:14:::1;3573:2:::0;22010::::1;:14;:::i;:::-;21997:27;::::0;:10;:27:::1;:::i;:::-;21971:23;:53:::0;-1:-1:-1;21855:177:0:o;22241:195::-;11350:6;;-1:-1:-1;;;;;11350:6:0;330:10;11412:23;11404:68;;;;-1:-1:-1;;;11404:68:0;;;;;;;:::i;:::-;22393:35:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;22381:9:::1;:47:::0;;;;;;;;22241:195::o;11500:94::-;11350:6;;-1:-1:-1;;;;;11350:6:0;330:10;11412:23;11404:68;;;;-1:-1:-1;;;11404:68:0;;;;;;;:::i;:::-;11565:21:::1;11583:1;11565:9;:21::i;:::-;11500:94::o:0;23157:124::-;11350:6;;-1:-1:-1;;;;;11350:6:0;330:10;11412:23;11404:68;;;;-1:-1:-1;;;11404:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23244:21:0;;;::::1;;::::0;;;:12:::1;:21;::::0;;;;:29;;-1:-1:-1;;23244:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23157:124::o;22443:224::-;11350:6;;-1:-1:-1;;;;;11350:6:0;330:10;11412:23;11404:68;;;;-1:-1:-1;;;11404:68:0;;;;;;;:::i;:::-;22507:14:::1;::::0;-1:-1:-1;;;22507:14:0;::::1;;;22506:15;22498:54;;;::::0;-1:-1:-1;;;22498:54:0;;9565:2:1;22498:54:0::1;::::0;::::1;9547:21:1::0;9604:2;9584:18;;;9577:30;9643:28;9623:18;;;9616:56;9689:18;;22498:54:0::1;9363:350:1::0;22498:54:0::1;22563:14;:21:::0;;-1:-1:-1;;;;22595:25:0;-1:-1:-1;;;22595:25:0;;;22647:12:::1;22631:13;:28:::0;22443:224::o;24177:127::-;24278:9;;24252:44;;-1:-1:-1;;;24252:44:0;;-1:-1:-1;;;;;24278:9:0;;;24252:44;;;9892:51:1;9959:18;;;9952:34;;;24252:25:0;;;;;;9865:18:1;;24252:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2747:104::-;2803:13;2836:7;2829:14;;;;;:::i;22040:193::-;11350:6;;-1:-1:-1;;;;;11350:6:0;330:10;11412:23;11404:68;;;;-1:-1:-1;;;11404:68:0;;;;;;;:::i;:::-;22190:35:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;22182:5:::1;:43:::0;;;;;;;;22040:193::o;24065:104::-;24131:9;;24123:38;;-1:-1:-1;;;;;24131:9:0;;;;24123:38;;;;;24151:9;;24131;24123:38;24131:9;24123:38;24151:9;24131;24123:38;;;;;;;;;;;;;;;;;;;;;24065:104;:::o;15801:410::-;330:10;15922:4;15971:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;15971:34:0;;;;;;;;;;16024:35;;;;16016:85;;;;-1:-1:-1;;;16016:85:0;;10449:2:1;16016:85:0;;;10431:21:1;10488:2;10468:18;;;10461:30;10527:34;10507:18;;;10500:62;-1:-1:-1;;;10578:18:1;;;10571:35;10623:19;;16016:85:0;10247:401:1;16016:85:0;16112:67;330:10;16135:7;16144:34;16163:15;16144:16;:34;:::i;16112:67::-;-1:-1:-1;16199:4:0;;15801:410;-1:-1:-1;;;15801:410:0:o;16219:165::-;16297:4;16314:40;16324:10;16336:9;16347:6;16314:9;:40::i;22924:115::-;11350:6;;-1:-1:-1;;;;;11350:6:0;330:10;11412:23;11404:68;;;;-1:-1:-1;;;11404:68:0;;;;;;;:::i;:::-;23004:15:::1;:27:::0;;-1:-1:-1;;;;;;23004:27:0::1;-1:-1:-1::0;;;;;23004:27:0;;;::::1;::::0;;;::::1;::::0;;22924:115::o;23843:214::-;11350:6;;-1:-1:-1;;;;;11350:6:0;330:10;11412:23;11404:68;;;;-1:-1:-1;;;11404:68:0;;;;;;;:::i;:::-;23939:6:::1;23926:9;:19;;23918:76;;;::::0;-1:-1:-1;;;23918:76:0;;10855:2:1;23918:76:0::1;::::0;::::1;10837:21:1::0;10894:2;10874:18;;;10867:30;10933:34;10913:18;;;10906:62;-1:-1:-1;;;10984:18:1;;;10977:42;11036:19;;23918:76:0::1;10653:408:1::0;23918:76:0::1;24034:14;3573:2:::0;24034::::1;:14;:::i;:::-;24022:26;::::0;:9;:26:::1;:::i;:::-;24005:14;:43:::0;-1:-1:-1;23843:214:0:o;22675:241::-;11350:6;;-1:-1:-1;;;;;11350:6:0;330:10;11412:23;11404:68;;;;-1:-1:-1;;;11404:68:0;;;;;;;:::i;:::-;22757:14:::1;::::0;-1:-1:-1;;;22757:14:0;::::1;;;22756:15;22748:65;;;::::0;-1:-1:-1;;;22748:65:0;;11268:2:1;22748:65:0::1;::::0;::::1;11250:21:1::0;11307:2;11287:18;;;11280:30;11346:34;11326:18;;;11319:62;-1:-1:-1;;;11397:18:1;;;11390:35;11442:19;;22748:65:0::1;11066:401:1::0;22748:65:0::1;22844:1;22832:9;:13;22824:53;;;::::0;-1:-1:-1;;;22824:53:0;;11674:2:1;22824:53:0::1;::::0;::::1;11656:21:1::0;11713:2;11693:18;;;11686:30;11752:29;11732:18;;;11725:57;11799:18;;22824:53:0::1;11472:351:1::0;22824:53:0::1;22888:8;:20:::0;22675:241::o;11602:192::-;11350:6;;-1:-1:-1;;;;;11350:6:0;330:10;11412:23;11404:68;;;;-1:-1:-1;;;11404:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11691:22:0;::::1;11683:73;;;::::0;-1:-1:-1;;;11683:73:0;;12030:2:1;11683:73:0::1;::::0;::::1;12012:21:1::0;12069:2;12049:18;;;12042:30;12108:34;12088:18;;;12081:62;-1:-1:-1;;;12159:18:1;;;12152:36;12205:19;;11683:73:0::1;11828:402:1::0;11683:73:0::1;11767:19;11777:8;11767:9;:19::i;:::-;11602:192:::0;:::o;9576:380::-;-1:-1:-1;;;;;9712:19:0;;9704:68;;;;-1:-1:-1;;;9704:68:0;;12437:2:1;9704:68:0;;;12419:21:1;12476:2;12456:18;;;12449:30;12515:34;12495:18;;;12488:62;-1:-1:-1;;;12566:18:1;;;12559:34;12610:19;;9704:68:0;12235:400:1;9704:68:0;-1:-1:-1;;;;;9791:21:0;;9783:68;;;;-1:-1:-1;;;9783:68:0;;12842:2:1;9783:68:0;;;12824:21:1;12881:2;12861:18;;;12854:30;12920:34;12900:18;;;12893:62;-1:-1:-1;;;12971:18:1;;;12964:32;13013:19;;9783:68:0;12640:398:1;9783:68:0;-1:-1:-1;;;;;9864:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9916:32;;3330:25:1;;;9916:32:0;;3303:18:1;9916:32:0;;;;;;;9576:380;;;:::o;16392:2658::-;16542:1;16533:6;:10;16525:64;;;;-1:-1:-1;;;16525:64:0;;13245:2:1;16525:64:0;;;13227:21:1;13284:2;13264:18;;;13257:30;13323:34;13303:18;;;13296:62;-1:-1:-1;;;13374:18:1;;;13367:39;13423:19;;16525:64:0;13043:405:1;16525:64:0;-1:-1:-1;;;;;16609:20:0;;;;;;:12;:20;;;;;;;;16608:21;:49;;;;-1:-1:-1;;;;;;16634:23:0;;;;;;:12;:23;;;;;;;;16633:24;16608:49;16600:110;;;;-1:-1:-1;;;16600:110:0;;13655:2:1;16600:110:0;;;13637:21:1;13694:2;13674:18;;;13667:30;13733:27;13713:18;;;13706:55;13778:18;;16600:110:0;13453:349:1;16600:110:0;-1:-1:-1;;;;;16728:17:0;;;;;;:9;:17;;;;;;;;16727:18;:43;;;;-1:-1:-1;;;;;;16750:20:0;;;;;;:9;:20;;;;;;;;16749:21;16727:43;16723:122;;;16795:14;;-1:-1:-1;;;16795:14:0;;;;16787:46;;;;-1:-1:-1;;;16787:46:0;;14009:2:1;16787:46:0;;;13991:21:1;14048:2;14028:18;;;14021:30;-1:-1:-1;;;14067:18:1;;;14060:49;14126:18;;16787:46:0;13807:343:1;16787:46:0;16871:4;;-1:-1:-1;;;;;16861:14:0;;;16871:4;;16861:14;:39;;;;-1:-1:-1;;;;;;16880:20:0;;;;;;:9;:20;;;;;;;;16879:21;16861:39;:59;;;;-1:-1:-1;16905:15:0;;-1:-1:-1;;;16905:15:0;;;;16904:16;16861:59;16857:215;;;16978:14;;16968:6;16945:20;16955:9;-1:-1:-1;;;;;3920:18:0;3893:7;3920:18;;;;;;;;;;;;3819:127;16945:20;:29;;;;:::i;:::-;:47;;16937:123;;;;-1:-1:-1;;;16937:123:0;;14357:2:1;16937:123:0;;;14339:21:1;;;14376:18;;;14369:30;14435:34;14415:18;;;14408:62;14487:18;;16937:123:0;14155:356:1;16937:123:0;17098:4;;-1:-1:-1;;;;;17088:14:0;;;17098:4;;17088:14;;;;:39;;-1:-1:-1;;;;;;17107:20:0;;;;;;:9;:20;;;;;;;;17106:21;17088:39;:61;;;;-1:-1:-1;;;;;;17132:17:0;;;;;;:9;:17;;;;;;;;17131:18;17088:61;:81;;;;-1:-1:-1;17154:15:0;;-1:-1:-1;;;17154:15:0;;;;17153:16;17088:81;17084:315;;;17216:4;;-1:-1:-1;;;;;17203:17:0;;;17216:4;;17203:17;17199:189;;17282:14;;17272:6;17249:20;17259:9;-1:-1:-1;;;;;3920:18:0;3893:7;3920:18;;;;;;;;;;;;3819:127;17249:20;:29;;;;:::i;:::-;:47;;17241:131;;;;-1:-1:-1;;;17241:131:0;;14357:2:1;17241:131:0;;;14339:21:1;;;14376:18;;;14369:30;14435:34;14415:18;;;14408:62;14487:18;;17241:131:0;14155:356:1;17241:131:0;17411:15;17437:14;17462:11;17484:25;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;17484:25:0;-1:-1:-1;;;;;17543:17:0;;17522;17543;;;:9;:17;;;;;;;;17542:18;:56;;;;-1:-1:-1;;;;;;17578:20:0;;;;;;:9;:20;;;;;;;;17577:21;17542:56;:112;;;;;17646:8;;17630:13;;:24;;;;:::i;:::-;17615:12;:39;17542:112;17742:15;;17522:132;;-1:-1:-1;;;;17742:15:0;;;;;:36;;-1:-1:-1;;;;;;17761:17:0;;;;;;:9;:17;;;;;;;;17742:36;:60;;;-1:-1:-1;;;;;;17782:20:0;;;;;;:9;:20;;;;;;;;17742:60;17738:728;;;17823:1;17817:7;;17738:728;;;17888:4;;-1:-1:-1;;;;;17875:17:0;;;17888:4;;17875:17;:34;;;;;17897:12;17896:13;17875:34;17871:595;;;18042:13;;:9;17992:19;17953;;:58;;17992:19;17953:58;:::i;:::-;:102;;;;:::i;:::-;18102:24;;;;;;;;18117:9;18102:24;;;;;;;;;;;;;;;;;;17926:129;;-1:-1:-1;17926:129:0;;-1:-1:-1;18102:24:0;-1:-1:-1;17871:595:0;;;18149:12;18144:322;;18275:9;;:5;18240:15;18205;;:50;;18240:15;18205:50;:::i;:::-;:79;;;;:::i;:::-;18331:20;;;;;;;;18346:5;18331:20;;;;;;;;;;;;;;;;;;18178:106;;-1:-1:-1;18178:106:0;;-1:-1:-1;18331:20:0;-1:-1:-1;18144:322:0;;;18373:12;18369:97;;;18412:9;;;-1:-1:-1;18412:9:0;;-1:-1:-1;18369:97:0;18504:3;18485:15;18494:6;18485;:15;:::i;:::-;18484:23;;;;:::i;:::-;18621:18;;18478:29;;-1:-1:-1;;;;18621:18:0;;;;:36;;;;-1:-1:-1;18653:4:0;;-1:-1:-1;;;;;18643:14:0;;;18653:4;;18643:14;;18621:36;18617:76;;;18659:34;18671:7;18680:12;18659:11;:34::i;:::-;18735:48;18751:6;18759:9;18770:12;18779:3;18770:6;:12;:::i;:::-;18735:15;:48::i;:::-;18798:7;;18794:249;;18870:11;;18866:164;;18902:17;18943:3;18923:16;18932:7;18923:6;:16;:::i;:::-;18922:24;;;;:::i;:::-;18902:44;;18965:49;18981:6;18997:4;19004:9;18965:15;:49::i;:::-;18883:147;18866:164;16514:2536;;;;;16392:2658;;;:::o;11802:173::-;11877:6;;;-1:-1:-1;;;;;11894:17:0;;;-1:-1:-1;;;;;;11894:17:0;;;;;;;11927:40;;11877:6;;;11894:17;11877:6;;11927:40;;11858:16;;11927:40;11847:128;11802:173;:::o;19058:1588::-;14110:15;;-1:-1:-1;;;14110:15:0;;;;14105:125;;14142:15;:22;;-1:-1:-1;;;;14142:22:0;-1:-1:-1;;;14142:22:0;;;19144:49;;19175:7:::1;19144:49;19250:4;19206:23;3920:18:::0;;;;;;;;;;;19290:23:::1;::::0;19271:42;::::1;19267:1372;;19360:1;19334:23;;:27;19330:109;;;-1:-1:-1::0;19400:23:0::1;::::0;19330:109:::1;19510:19;19532:11;:7:::0;19542:1:::1;19532:11;:::i;:::-;19510:33;;19558:32;19652:11;19612:9;:19;;;19594:15;:37;;;;:::i;:::-;19593:70;;;;:::i;:::-;19558:105:::0;-1:-1:-1;19678:14:0::1;19695:42;19558:105:::0;19695:15;:42:::1;:::i;:::-;19678:59:::0;-1:-1:-1;19779:21:0::1;19817:24;19678:59:::0;19817:16:::1;:24::i;:::-;19858:20;19881:38;19905:14:::0;19881:21:::1;:38;:::i;:::-;19858:61;;19934:19;19986:9;:19;;;19972:11;:33;;;;:::i;:::-;19956:50;::::0;:12;:50:::1;:::i;:::-;19934:72;;20021:29;20067:9;:19;;;20053:11;:33;;;;:::i;:::-;20021:65:::0;-1:-1:-1;20107:25:0;;20103:161:::1;;20187:61;20200:24;20226:21;20187:12;:61::i;:::-;20321:19:::0;;20280:20:::1;::::0;20303:15:::1;:11:::0;20317:1:::1;20303:15;:::i;:::-;:37;;;;:::i;:::-;20280:60:::0;-1:-1:-1;20359:16:0;;20355:105:::1;;20404:15;::::0;20396:48:::1;::::0;-1:-1:-1;;;;;20404:15:0::1;20431:12:::0;20396:34:::1;:48::i;:::-;20511:13;::::0;::::1;::::0;20476:14:::1;::::0;20493:15:::1;:11:::0;20507:1:::1;20493:15;:::i;:::-;:31;;;;:::i;:::-;20476:48:::0;-1:-1:-1;20543:10:0;;20539:87:::1;;20582:9;::::0;20574:36:::1;::::0;-1:-1:-1;;;;;20582:9:0::1;20603:6:::0;20574:28:::1;:36::i;:::-;19315:1324;;;;;;;;;19267:1372;19138:1508;14179:1;14195:15:::0;:23;;-1:-1:-1;;;;14195:23:0;;;19058:1588;;:::o;7951:638::-;-1:-1:-1;;;;;8091:20:0;;8083:70;;;;-1:-1:-1;;;8083:70:0;;14940:2:1;8083:70:0;;;14922:21:1;14979:2;14959:18;;;14952:30;15018:34;14998:18;;;14991:62;-1:-1:-1;;;15069:18:1;;;15062:35;15114:19;;8083:70:0;14738:401:1;8083:70:0;-1:-1:-1;;;;;8172:23:0;;8164:71;;;;-1:-1:-1;;;8164:71:0;;15346:2:1;8164:71:0;;;15328:21:1;15385:2;15365:18;;;15358:30;15424:34;15404:18;;;15397:62;-1:-1:-1;;;15475:18:1;;;15468:33;15518:19;;8164:71:0;15144:399:1;8164:71:0;-1:-1:-1;;;;;8332:17:0;;8308:21;8332:17;;;;;;;;;;;8368:23;;;;8360:74;;;;-1:-1:-1;;;8360:74:0;;15750:2:1;8360:74:0;;;15732:21:1;15789:2;15769:18;;;15762:30;15828:34;15808:18;;;15801:62;-1:-1:-1;;;15879:18:1;;;15872:36;15925:19;;8360:74:0;15548:402:1;8360:74:0;8465:22;8481:6;8465:13;:22;:::i;:::-;-1:-1:-1;;;;;8445:17:0;;;:9;:17;;;;;;;;;;;:42;;;;8498:20;;;;;;;;:30;;8522:6;;8445:9;8498:30;;8522:6;;8498:30;:::i;:::-;;;;;;;;8563:9;-1:-1:-1;;;;;8546:35:0;8555:6;-1:-1:-1;;;;;8546:35:0;;8574:6;8546:35;;;;3330:25:1;;3318:2;3303:18;;3184:177;8546:35:0;;;;;;;;8072:517;7951:638;;;:::o;20654:526::-;20796:16;;;20810:1;20796:16;;;;;;;;20772:21;;20796:16;;;;;;;;;;-1:-1:-1;20796:16:0;20772:40;;20841:4;20823;20828:1;20823:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20823:23:0;;;:7;;;;;;;;;;:23;;;;20867:6;;:13;;;-1:-1:-1;;;20867:13:0;;;;:6;;;;;:11;;:13;;;;;20823:7;;20867:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20857:4;20862:1;20857:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20857:23:0;;;:7;;;;;;;;;:23;20925:6;;20893:53;;20910:4;;20925:6;20934:11;20893:8;:53::i;:::-;20985:6;;:187;;-1:-1:-1;;;20985:187:0;;-1:-1:-1;;;;;20985:6:0;;;;:57;;:187;;21057:11;;20985:6;;21099:4;;21126;;21146:15;;20985:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20709:471;20654:526;:::o;21188:499::-;21368:6;;21336:53;;21353:4;;-1:-1:-1;;;;;21368:6:0;21377:11;21336:8;:53::i;:::-;21432:6;;21629:9;;21432:247;;-1:-1:-1;;;21432:247:0;;21497:4;21432:247;;;17537:34:1;17587:18;;;17580:34;;;21432:6:0;17630:18:1;;;17623:34;;;17673:18;;;17666:34;-1:-1:-1;;;;;21629:9:0;;;17716:19:1;;;17709:44;21653:15:0;17769:19:1;;;17762:35;21432:6:0;;;:22;;21463:9;;17471:19:1;;21432:247:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;21188:499;;:::o;10720:319::-;10835:6;10810:21;:31;;10802:73;;;;-1:-1:-1;;;10802:73:0;;18321:2:1;10802:73:0;;;18303:21:1;18360:2;18340:18;;;18333:30;18399:31;18379:18;;;18372:59;18448:18;;10802:73:0;18119:353:1;10802:73:0;10889:12;10907:9;-1:-1:-1;;;;;10907:14:0;10930:6;10907:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10888:54;;;10961:7;10953:78;;;;-1:-1:-1;;;10953:78:0;;18889:2:1;10953:78:0;;;18871:21:1;18928:2;18908:18;;;18901:30;18967:34;18947:18;;;18940:62;19038:28;19018:18;;;19011:56;19084:19;;10953:78:0;18687:422:1;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:134;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1354:127::-;1415:10;1410:3;1406:20;1403:1;1396:31;1446:4;1443:1;1436:15;1470:4;1467:1;1460:15;1486:118;1572:5;1565:13;1558:21;1551:5;1548:32;1538:60;;1594:1;1591;1584:12;1609:128;1674:20;;1703:28;1674:20;1703:28;:::i;1742:1191::-;1832:6;1840;1893:2;1881:9;1872:7;1868:23;1864:32;1861:52;;;1909:1;1906;1899:12;1861:52;1949:9;1936:23;1978:18;2019:2;2011:6;2008:14;2005:34;;;2035:1;2032;2025:12;2005:34;2073:6;2062:9;2058:22;2048:32;;2118:7;2111:4;2107:2;2103:13;2099:27;2089:55;;2140:1;2137;2130:12;2089:55;2176:2;2163:16;2198:4;2221:2;2217;2214:10;2211:36;;;2227:18;;:::i;:::-;2273:2;2270:1;2266:10;2305:2;2299:9;2368:2;2364:7;2359:2;2355;2351:11;2347:25;2339:6;2335:38;2423:6;2411:10;2408:22;2403:2;2391:10;2388:18;2385:46;2382:72;;;2434:18;;:::i;:::-;2470:2;2463:22;2520:18;;;2554:15;;;;-1:-1:-1;2596:11:1;;;2592:20;;;2624:19;;;2621:39;;;2656:1;2653;2646:12;2621:39;2680:11;;;;2700:148;2716:6;2711:3;2708:15;2700:148;;;2782:23;2801:3;2782:23;:::i;:::-;2770:36;;2733:12;;;;2826;;;;2700:148;;;2867:6;-1:-1:-1;2892:35:1;;-1:-1:-1;2908:18:1;;;2892:35;:::i;:::-;2882:45;;;;;;1742:1191;;;;;:::o;2938:241::-;2994:6;3047:2;3035:9;3026:7;3022:23;3018:32;3015:52;;;3063:1;3060;3053:12;3015:52;3102:9;3089:23;3121:28;3143:5;3121:28;:::i;:::-;3168:5;2938:241;-1:-1:-1;;;2938:241:1:o;3366:247::-;3425:6;3478:2;3466:9;3457:7;3453:23;3449:32;3446:52;;;3494:1;3491;3484:12;3446:52;3533:9;3520:23;3552:31;3577:5;3552:31;:::i;3618:456::-;3695:6;3703;3711;3764:2;3752:9;3743:7;3739:23;3735:32;3732:52;;;3780:1;3777;3770:12;3732:52;3819:9;3806:23;3838:31;3863:5;3838:31;:::i;:::-;3888:5;-1:-1:-1;3945:2:1;3930:18;;3917:32;3958:33;3917:32;3958:33;:::i;:::-;3618:456;;4010:7;;-1:-1:-1;;;4064:2:1;4049:18;;;;4036:32;;3618:456::o;4268:382::-;4333:6;4341;4394:2;4382:9;4373:7;4369:23;4365:32;4362:52;;;4410:1;4407;4400:12;4362:52;4449:9;4436:23;4468:31;4493:5;4468:31;:::i;:::-;4518:5;-1:-1:-1;4575:2:1;4560:18;;4547:32;4588:30;4547:32;4588:30;:::i;:::-;4637:7;4627:17;;;4268:382;;;;;:::o;4655:180::-;4714:6;4767:2;4755:9;4746:7;4742:23;4738:32;4735:52;;;4783:1;4780;4773:12;4735:52;-1:-1:-1;4806:23:1;;4655:180;-1:-1:-1;4655:180:1:o;4840:316::-;4917:6;4925;4933;4986:2;4974:9;4965:7;4961:23;4957:32;4954:52;;;5002:1;4999;4992:12;4954:52;-1:-1:-1;;5025:23:1;;;5095:2;5080:18;;5067:32;;-1:-1:-1;5146:2:1;5131:18;;;5118:32;;4840:316;-1:-1:-1;4840:316:1:o;5369:388::-;5437:6;5445;5498:2;5486:9;5477:7;5473:23;5469:32;5466:52;;;5514:1;5511;5504:12;5466:52;5553:9;5540:23;5572:31;5597:5;5572:31;:::i;:::-;5622:5;-1:-1:-1;5679:2:1;5664:18;;5651:32;5692:33;5651:32;5692:33;:::i;5985:380::-;6064:1;6060:12;;;;6107;;;6128:61;;6182:4;6174:6;6170:17;6160:27;;6128:61;6235:2;6227:6;6224:14;6204:18;6201:38;6198:161;;6281:10;6276:3;6272:20;6269:1;6262:31;6316:4;6313:1;6306:15;6344:4;6341:1;6334:15;6198:161;;5985:380;;;:::o;6370:356::-;6572:2;6554:21;;;6591:18;;;6584:30;6650:34;6645:2;6630:18;;6623:62;6717:2;6702:18;;6370:356::o;6731:127::-;6792:10;6787:3;6783:20;6780:1;6773:31;6823:4;6820:1;6813:15;6847:4;6844:1;6837:15;6863:127;6924:10;6919:3;6915:20;6912:1;6905:31;6955:4;6952:1;6945:15;6979:4;6976:1;6969:15;6995:135;7034:3;7055:17;;;7052:43;;7075:18;;:::i;:::-;-1:-1:-1;7122:1:1;7111:13;;6995:135::o;7544:128::-;7611:9;;;7632:11;;;7629:37;;;7646:18;;:::i;7677:125::-;7742:9;;;7763:10;;;7760:36;;;7776:18;;:::i;7807:422::-;7896:1;7939:5;7896:1;7953:270;7974:7;7964:8;7961:21;7953:270;;;8033:4;8029:1;8025:6;8021:17;8015:4;8012:27;8009:53;;;8042:18;;:::i;:::-;8092:7;8082:8;8078:22;8075:55;;;8112:16;;;;8075:55;8191:22;;;;8151:15;;;;7953:270;;;7957:3;7807:422;;;;;:::o;8234:806::-;8283:5;8313:8;8303:80;;-1:-1:-1;8354:1:1;8368:5;;8303:80;8402:4;8392:76;;-1:-1:-1;8439:1:1;8453:5;;8392:76;8484:4;8502:1;8497:59;;;;8570:1;8565:130;;;;8477:218;;8497:59;8527:1;8518:10;;8541:5;;;8565:130;8602:3;8592:8;8589:17;8586:43;;;8609:18;;:::i;:::-;-1:-1:-1;;8665:1:1;8651:16;;8680:5;;8477:218;;8779:2;8769:8;8766:16;8760:3;8754:4;8751:13;8747:36;8741:2;8731:8;8728:16;8723:2;8717:4;8714:12;8710:35;8707:77;8704:159;;;-1:-1:-1;8816:19:1;;;8848:5;;8704:159;8895:34;8920:8;8914:4;8895:34;:::i;:::-;8965:6;8961:1;8957:6;8953:19;8944:7;8941:32;8938:58;;;8976:18;;:::i;:::-;9014:20;;8234:806;-1:-1:-1;;;8234:806:1:o;9045:140::-;9103:5;9132:47;9173:4;9163:8;9159:19;9153:4;9132:47;:::i;9190:168::-;9263:9;;;9294;;9311:15;;;9305:22;;9291:37;9281:71;;9332:18;;:::i;9997:245::-;10064:6;10117:2;10105:9;10096:7;10092:23;10088:32;10085:52;;;10133:1;10130;10123:12;10085:52;10165:9;10159:16;10184:28;10206:5;10184:28;:::i;14516:217::-;14556:1;14582;14572:132;;14626:10;14621:3;14617:20;14614:1;14607:31;14661:4;14658:1;14651:15;14689:4;14686:1;14679:15;14572:132;-1:-1:-1;14718:9:1;;14516:217::o;15955:251::-;16025:6;16078:2;16066:9;16057:7;16053:23;16049:32;16046:52;;;16094:1;16091;16084:12;16046:52;16126:9;16120:16;16145:31;16170:5;16145:31;:::i;16211:980::-;16473:4;16521:3;16510:9;16506:19;16552:6;16541:9;16534:25;16578:2;16616:6;16611:2;16600:9;16596:18;16589:34;16659:3;16654:2;16643:9;16639:18;16632:31;16683:6;16718;16712:13;16749:6;16741;16734:22;16787:3;16776:9;16772:19;16765:26;;16826:2;16818:6;16814:15;16800:29;;16847:1;16857:195;16871:6;16868:1;16865:13;16857:195;;;16936:13;;-1:-1:-1;;;;;16932:39:1;16920:52;;17027:15;;;;16992:12;;;;16968:1;16886:9;16857:195;;;-1:-1:-1;;;;;;;17108:32:1;;;;17103:2;17088:18;;17081:60;-1:-1:-1;;;17172:3:1;17157:19;17150:35;17069:3;16211:980;-1:-1:-1;;;16211:980:1:o;17808:306::-;17896:6;17904;17912;17965:2;17953:9;17944:7;17940:23;17936:32;17933:52;;;17981:1;17978;17971:12;17933:52;18010:9;18004:16;17994:26;;18060:2;18049:9;18045:18;18039:25;18029:35;;18104:2;18093:9;18089:18;18083:25;18073:35;;17808:306;;;;;:::o

Swarm Source

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