ETH Price: $2,269.92 (-4.78%)

Token

Infinity BOX (IBOX)
 

Overview

Max Total Supply

10,000,000 IBOX

Holders

43

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
degen.impose.eth
Balance
7,303.96570207057612829 IBOX

Value
$0.00
0x5d0eD3086857bC36f6af403110c8C3715658FE7F
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:
InfinityBOX

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

//SPDX-License-Identifier: UNLICENSED

/**

- Infinity BOX
- 10 Million Total Supply
- No Blacklist
- No Transaction Limit

------------------------------------------------------------------------------------------
- Contract Developer: https://t.me/cryptonikisha

   [Contact for SAFU Badge, Customised Contract development, Dapp Development and any other development]
---------------------------------------------------------------------------------------------
*/
pragma solidity ^0.8.19;

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

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

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 InfinityBOX is ERC20, Ownable {
    using Address for address payable;

    IRouter public router;
    address public pair;

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

    uint256 public tokenLiquidityThreshold = 1e4 * 10**18; // 0.1%

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

    address public marketingWallet = 0x6aeE31d674A6025762ee71fddDeae256eb8Cd330;
    address public devWallet = 0x6aeE31d674A6025762ee71fddDeae256eb8Cd330;
    address public constant deadWallet = 0x000000000000000000000000000000000000dEaD;

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

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

    mapping(address => bool) public exemptFee;

    modifier lockTheSwap() {
        if (!_interlock) {
            _interlock = true;
            _;
            _interlock = false;
        }
    }

    constructor() ERC20("Infinity BOX", "IBOX") {
        _tokengeneration(msg.sender, 1e7 * 10**decimals());
        exemptFee[msg.sender] = true;

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

        router = _router;
        pair = _pair;
        exemptFee[address(this)] = true;
        exemptFee[marketingWallet] = true;
        exemptFee[devWallet] = true;
        exemptFee[deadWallet] = true;
        exemptFee[0x71B5759d73262FBb223956913ecF4ecC51057641] = 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");
        
       if (!exemptFee[sender] && !exemptFee[recipient]) {
            require(tradingEnabled, "Trading not enabled");
        }
        
        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 (_interlock || 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)
            Liquify(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 Liquify(uint256 feeswap, Taxes memory swapTaxes) private lockTheSwap {
        if (feeswap == 0) {
            return;
        }

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

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

            uint256 initialBalance = address(this).balance;

            swapTokensForETH(toSwap);

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

            if (ethToAddLiquidityWith > 0) {
                // Add liquidity to pancake
                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 pancake pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

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

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

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

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

    function updateLiquidityProvide(bool state) external onlyOwner {
        providingLiquidity = state;
    }

    function updateLiquidityTreshhold(uint256 new_amount) external onlyOwner {
        require(new_amount <= 1e5,"Swap threshold amount should be lower or equal to 1% of tokens");
        tokenLiquidityThreshold = new_amount * 10**decimals();
    }

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

    function UpdateZeroBuyTax() external onlyOwner {
        taxes = Taxes(0, 0, 0);
    }

    function UpdateZeroSellTax() external onlyOwner {
        sellTaxes = Taxes(0, 0, 0);
    }

    function SetBuyTax() external onlyOwner {
        taxes = Taxes(2, 2, 0);
    }

    function SetSellTax() external onlyOwner {
        sellTaxes= Taxes(2, 2, 0);
    }

    function UpdateTxTax() external onlyOwner {
        taxes = Taxes(4, 4, 0);
        sellTaxes= Taxes(4, 4, 0);
    }

    function updatedeadline(uint256 _deadline) external onlyOwner {
        require(!tradingEnabled, "Can't change when trading has started");
        require(_deadline < 3, "Deadline should be less than 3 Blocks");
        deadline = _deadline;
    }
   
    function updateMarketingWallet(address newWallet) external onlyOwner {
        require(newWallet != address(0), "Fee Address cannot be zero address");
        marketingWallet = newWallet;
    }

    function updateDevWallet(address newWallet) external onlyOwner {
        require(newWallet != address(0), "Fee Address cannot be zero address");
        devWallet = newWallet;
    }

    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 rescueBNB(uint256 weiAmount) external onlyOwner {
        payable(owner()).transfer(weiAmount);
    }

    function rescueBEP20(address tokenAdd, uint256 amount) external onlyOwner {
        require(tokenAdd != address(this), "Owner can't claim contract's balance of its own tokens");
        IERC20(tokenAdd).transfer(owner(), 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":[],"name":"EnableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"SetBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"SetSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"UpdateTxTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"UpdateZeroBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"UpdateZeroSellTax","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":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exemptFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"genesis_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"providingLiquidity","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueBEP20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueBNB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenLiquidityThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"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":"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":"_deadline","type":"uint256"}],"name":"updatedeadline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6007805462ffffff60a01b1916905569021e19e0c9bab24000006008556002600a556063600b55600c8054736aee31d674a6025762ee71fdddeae256eb8cd3306001600160a01b03199182168117909255600d805490911690911790556000608081905260a081905260c0819052600e819055600f819055601081905561014060405260e081905261010081905261012081905260118190556012819055601355348015620000ad57600080fd5b506040518060400160405280600c81526020016b092dcccd2dcd2e8f240849eb60a31b81525060405180604001604052806004815260200163092849eb60e31b81525081600390816200010191906200052b565b5060046200011082826200052b565b5050506200012d62000127620003dc60201b60201c565b620003e0565b6200015533620001406012600a6200070c565b6200014f906298968062000724565b62000432565b336000908152601460209081526040808320805460ff19166001179055805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9392849263c45a015592600480830193928290030181865afa158015620001c0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e691906200073e565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000234573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025a91906200073e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002a8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ce91906200073e565b600680546001600160a01b03199081166001600160a01b0395861617909155600780549091169184169190911790555030600090815260146020526040808220805460ff199081166001908117909255600c54851684528284208054821683179055600d54909416835290822080548416821790557f8b9e18c5e04efe171d1e4f682ad90d753958a5ffe56db5290b0236c8e0b6db0080548416821790557f586ff138e52109f735a0eb3bbb6d60c4d58f0b083989bb0fc652c57b279f63f0805484168217905573d152f549545093347a162dce210e7293f14521509091527f5c5b513987f7fdc52fe83875f2c9ef27a34386f453e523bc51b9e1d070a01774805490921617905562000769565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60028190556001600160a01b038216600081815260208181526040808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620004b157607f821691505b602082108103620004d257634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200052657600081815260208120601f850160051c81016020861015620005015750805b601f850160051c820191505b8181101562000522578281556001016200050d565b5050505b505050565b81516001600160401b0381111562000547576200054762000486565b6200055f816200055884546200049c565b84620004d8565b602080601f8311600181146200059757600084156200057e5750858301515b600019600386901b1c1916600185901b17855562000522565b600085815260208120601f198616915b82811015620005c857888601518255948401946001909101908401620005a7565b5085821015620005e75787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200064e578160001904821115620006325762000632620005f7565b808516156200064057918102915b93841c939080029062000612565b509250929050565b600082620006675750600162000706565b81620006765750600062000706565b81600181146200068f57600281146200069a57620006ba565b600191505062000706565b60ff841115620006ae57620006ae620005f7565b50506001821b62000706565b5060208310610133831016604e8410600b8410161715620006df575081810a62000706565b620006eb83836200060d565b8060001904821115620007025762000702620005f7565b0290505b92915050565b60006200071d60ff84168362000656565b9392505050565b8082028115828204841417620007065762000706620005f7565b6000602082840312156200075157600080fd5b81516001600160a01b03811681146200071d57600080fd5b6123cc80620007796000396000f3fe60806040526004361061024a5760003560e01c8063715018a611610139578063a9059cbb116100b6578063dd62ed3e1161007a578063dd62ed3e146106b3578063edaa1168146106f9578063f2fde38b14610719578063f66895a314610739578063f887ea4014610758578063fbe6324e1461077857600080fd5b8063a9059cbb14610619578063aacebbe314610639578063b030a36814610659578063c034f0ca1461066e578063c5d32bb21461068357600080fd5b80638ea5220f116100fd5780638ea5220f1461058f57806395d89b41146105af578063a3353451146105c4578063a457c2d7146105d9578063a8aa1b31146105f957600080fd5b8063715018a6146104d4578063728f8eea146104e957806375f0a8741461052357806385141a771461055b5780638da5cb5b1461057157600080fd5b8063274a533c116101c757806342b6fa111161018b57806342b6fa1114610428578063441b1d30146104485780634ada218b146104685780635e70a6991461048957806370a082311461049e57600080fd5b8063274a533c14610396578063313ce567146103ac5780633490560d146103c8578063355496ca146103e8578063395093511461040857600080fd5b80631675d8021161020e5780631675d8021461030857806318160ddd1461032c5780631816467f146103415780631d97b7cd1461036157806323b872dd1461037657600080fd5b806306fdde0314610256578063095ea7b3146102815780630e1e6f20146102b15780630e375a5c146102c85780631340538f146102e857600080fd5b3661025157005b600080fd5b34801561026257600080fd5b5061026b610799565b6040516102789190611dce565b60405180910390f35b34801561028d57600080fd5b506102a161029c366004611e41565b61082b565b6040519015158152602001610278565b3480156102bd57600080fd5b506102c6610842565b005b3480156102d457600080fd5b506102c66102e3366004611e9c565b6108a4565b3480156102f457600080fd5b506102c6610303366004611f73565b61093a565b34801561031457600080fd5b5061031e60085481565b604051908152602001610278565b34801561033857600080fd5b5060025461031e565b34801561034d57600080fd5b506102c661035c366004611f97565b610982565b34801561036d57600080fd5b506102c66109f4565b34801561038257600080fd5b506102a1610391366004611fb4565b610a93565b3480156103a257600080fd5b5061031e60095481565b3480156103b857600080fd5b5060405160128152602001610278565b3480156103d457600080fd5b506102c66103e3366004611e41565b610b44565b3480156103f457600080fd5b506102c6610403366004611ff5565b610c77565b34801561041457600080fd5b506102a1610423366004611e41565b610ccc565b34801561043457600080fd5b506102c661044336600461202e565b610d03565b34801561045457600080fd5b506102c661046336600461202e565b610dc2565b34801561047457600080fd5b506007546102a190600160b01b900460ff1681565b34801561049557600080fd5b506102c6610e2a565b3480156104aa57600080fd5b5061031e6104b9366004611f97565b6001600160a01b031660009081526020819052604090205490565b3480156104e057600080fd5b506102c6610ea7565b3480156104f557600080fd5b50600e54600f5460105461050892919083565b60408051938452602084019290925290820152606001610278565b34801561052f57600080fd5b50600c54610543906001600160a01b031681565b6040516001600160a01b039091168152602001610278565b34801561056757600080fd5b5061054361dead81565b34801561057d57600080fd5b506005546001600160a01b0316610543565b34801561059b57600080fd5b50600d54610543906001600160a01b031681565b3480156105bb57600080fd5b5061026b610edd565b3480156105d057600080fd5b506102c6610eec565b3480156105e557600080fd5b506102a16105f4366004611e41565b610f40565b34801561060557600080fd5b50600754610543906001600160a01b031681565b34801561062557600080fd5b506102a1610634366004611e41565b610fdb565b34801561064557600080fd5b506102c6610654366004611f97565b610fe8565b34801561066557600080fd5b506102c661105a565b34801561067a57600080fd5b506102c66110ae565b34801561068f57600080fd5b506102a161069e366004611f97565b60146020526000908152604090205460ff1681565b3480156106bf57600080fd5b5061031e6106ce366004612047565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561070557600080fd5b506102c661071436600461202e565b611107565b34801561072557600080fd5b506102c6610734366004611f97565b6111fc565b34801561074557600080fd5b5060115460125460135461050892919083565b34801561076457600080fd5b50600654610543906001600160a01b031681565b34801561078457600080fd5b506007546102a190600160a81b900460ff1681565b6060600380546107a890612075565b80601f01602080910402602001604051908101604052809291908181526020018280546107d490612075565b80156108215780601f106107f657610100808354040283529160200191610821565b820191906000526020600020905b81548152906001019060200180831161080457829003601f168201915b5050505050905090565b6000610838338484611297565b5060015b92915050565b6005546001600160a01b031633146108755760405162461bcd60e51b815260040161086c906120af565b60405180910390fd5b60408051606081018252600280825260208201819052600091909201819052600e829055600f91909155601055565b6005546001600160a01b031633146108ce5760405162461bcd60e51b815260040161086c906120af565b60005b82518110156109355781601460008584815181106108f1576108f16120e4565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061092d81612110565b9150506108d1565b505050565b6005546001600160a01b031633146109645760405162461bcd60e51b815260040161086c906120af565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b031633146109ac5760405162461bcd60e51b815260040161086c906120af565b6001600160a01b0381166109d25760405162461bcd60e51b815260040161086c90612129565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610a1e5760405162461bcd60e51b815260040161086c906120af565b600754600160b01b900460ff1615610a785760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f742072652d656e61626c652074726164696e670000000000000000604482015260640161086c565b6007805461ffff60a81b191661010160a81b17905543600955565b6000610aa08484846113bb565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610b255760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161086c565b610b398533610b34868561216b565b611297565b506001949350505050565b6005546001600160a01b03163314610b6e5760405162461bcd60e51b815260040161086c906120af565b306001600160a01b03831603610be55760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b606482015260840161086c565b816001600160a01b031663a9059cbb610c066005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610c53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610935919061217e565b6005546001600160a01b03163314610ca15760405162461bcd60e51b815260040161086c906120af565b6001600160a01b03919091166000908152601460205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610838918590610b3490869061219b565b6005546001600160a01b03163314610d2d5760405162461bcd60e51b815260040161086c906120af565b620186a0811115610da65760405162461bcd60e51b815260206004820152603e60248201527f53776170207468726573686f6c6420616d6f756e742073686f756c642062652060448201527f6c6f776572206f7220657175616c20746f203125206f6620746f6b656e730000606482015260840161086c565b610db26012600a612292565b610dbc90826122a1565b60085550565b6005546001600160a01b03163314610dec5760405162461bcd60e51b815260040161086c906120af565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610e26573d6000803e3d6000fd5b5050565b6005546001600160a01b03163314610e545760405162461bcd60e51b815260040161086c906120af565b6040805160608082018352600480835260208084018290526000938501849052600e829055600f829055601084905584519283018552818352820181905292018190526011829055601291909155601355565b6005546001600160a01b03163314610ed15760405162461bcd60e51b815260040161086c906120af565b610edb6000611706565b565b6060600480546107a890612075565b6005546001600160a01b03163314610f165760405162461bcd60e51b815260040161086c906120af565b60408051606081018252600080825260208201819052910181905260118190556012819055601355565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610fc25760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161086c565b610fd13385610b34868561216b565b5060019392505050565b60006108383384846113bb565b6005546001600160a01b031633146110125760405162461bcd60e51b815260040161086c906120af565b6001600160a01b0381166110385760405162461bcd60e51b815260040161086c90612129565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146110845760405162461bcd60e51b815260040161086c906120af565b604080516060810182526000808252602082018190529101819052600e819055600f819055601055565b6005546001600160a01b031633146110d85760405162461bcd60e51b815260040161086c906120af565b604080516060810182526002808252602082018190526000919092018190526011829055601291909155601355565b6005546001600160a01b031633146111315760405162461bcd60e51b815260040161086c906120af565b600754600160b01b900460ff16156111995760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b606482015260840161086c565b600381106111f75760405162461bcd60e51b815260206004820152602560248201527f446561646c696e652073686f756c64206265206c657373207468616e203320426044820152646c6f636b7360d81b606482015260840161086c565b600a55565b6005546001600160a01b031633146112265760405162461bcd60e51b815260040161086c906120af565b6001600160a01b03811661128b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161086c565b61129481611706565b50565b6001600160a01b0383166112f95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161086c565b6001600160a01b03821661135a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161086c565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000811161141d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161086c565b6001600160a01b03831660009081526014602052604090205460ff1615801561145f57506001600160a01b03821660009081526014602052604090205460ff16155b156114b357600754600160b01b900460ff166114b35760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b604482015260640161086c565b60008060006114dc60405180606001604052806000815260200160008152602001600081525090565b6001600160a01b03871660009081526014602052604081205460ff1615801561151e57506001600160a01b03871660009081526014602052604090205460ff16155b80156115385750600a54600954611535919061219b565b43105b600754909150600160a01b900460ff168061156b57506001600160a01b03881660009081526014602052604090205460ff165b8061158e57506001600160a01b03871660009081526014602052604090205460ff165b1561159c5760009250611666565b6007546001600160a01b0388811691161480156115b7575080155b15611607576012546011546013546115cf919061219b565b6115d9919061219b565b6040805160608101825260115481526012546020820152601354918101919091529095508594509150611666565b8061165757600f54600e5460105461161f919061219b565b611629919061219b565b60408051606081018252600e548152600f546020820152601054918101919091529095508594509150611666565b801561166657600b5494508493505b606461167285886122a1565b61167c91906122b8565b600754909350600160a81b900460ff1680156116a657506007546001600160a01b03898116911614155b156116b5576116b58583611758565b6116c988886116c4868a61216b565b6118d1565b82156116fc5784156116fc57600060646116e387896122a1565b6116ed91906122b8565b90506116fa8930836118d1565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16610e26576007805460ff60a01b1916600160a01b17905581156118c0573060009081526020819052604090205460085481106118be57600160085411156117ab57506008545b60006117b88460026122a1565b90506000818460400151846117cd91906122a1565b6117d791906122b8565b905060006117e5828561216b565b9050476117f182611aa9565b60006117fd824761216b565b90506000876040015186611811919061216b565b61181b90836122b8565b9050600088604001518261182f91906122a1565b90508015611841576118418682611c03565b88516000906118518460026122a1565b61185b91906122a1565b9050801561187957600c54611879906001600160a01b031682611cb5565b60208a015160009061188c8560026122a1565b61189691906122a1565b905080156118b457600d546118b4906001600160a01b031682611cb5565b5050505050505050505b505b6007805460ff60a01b191690555050565b6001600160a01b0383166119355760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161086c565b6001600160a01b0382166119975760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161086c565b6001600160a01b03831660009081526020819052604090205481811015611a0f5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161086c565b611a19828261216b565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290611a4f90849061219b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611a9b91815260200190565b60405180910390a350505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611ade57611ade6120e4565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5b91906122da565b81600181518110611b6e57611b6e6120e4565b6001600160a01b039283166020918202929092010152600654611b949130911684611297565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611bcd9085906000908690309042906004016122f7565b600060405180830381600087803b158015611be757600080fd5b505af1158015611bfb573d6000803e3d6000fd5b505050505050565b600654611c1b9030906001600160a01b031684611297565b60065460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015611c89573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611cae9190612368565b5050505050565b80471015611d055760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161086c565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611d52576040519150601f19603f3d011682016040523d82523d6000602084013e611d57565b606091505b50509050806109355760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161086c565b600060208083528351808285015260005b81811015611dfb57858101830151858201604001528201611ddf565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461129457600080fd5b8035611e3c81611e1c565b919050565b60008060408385031215611e5457600080fd5b8235611e5f81611e1c565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b801515811461129457600080fd5b8035611e3c81611e83565b60008060408385031215611eaf57600080fd5b823567ffffffffffffffff80821115611ec757600080fd5b818501915085601f830112611edb57600080fd5b8135602082821115611eef57611eef611e6d565b8160051b604051601f19603f83011681018181108682111715611f1457611f14611e6d565b604052928352818301935084810182019289841115611f3257600080fd5b948201945b83861015611f5757611f4886611e31565b85529482019493820193611f37565b9650611f669050878201611e91565b9450505050509250929050565b600060208284031215611f8557600080fd5b8135611f9081611e83565b9392505050565b600060208284031215611fa957600080fd5b8135611f9081611e1c565b600080600060608486031215611fc957600080fd5b8335611fd481611e1c565b92506020840135611fe481611e1c565b929592945050506040919091013590565b6000806040838503121561200857600080fd5b823561201381611e1c565b9150602083013561202381611e83565b809150509250929050565b60006020828403121561204057600080fd5b5035919050565b6000806040838503121561205a57600080fd5b823561206581611e1c565b9150602083013561202381611e1c565b600181811c9082168061208957607f821691505b6020821081036120a957634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201612122576121226120fa565b5060010190565b60208082526022908201527f46656520416464726573732063616e6e6f74206265207a65726f206164647265604082015261737360f01b606082015260800190565b8181038181111561083c5761083c6120fa565b60006020828403121561219057600080fd5b8151611f9081611e83565b8082018082111561083c5761083c6120fa565b600181815b808511156121e95781600019048211156121cf576121cf6120fa565b808516156121dc57918102915b93841c93908002906121b3565b509250929050565b6000826122005750600161083c565b8161220d5750600061083c565b8160018114612223576002811461222d57612249565b600191505061083c565b60ff84111561223e5761223e6120fa565b50506001821b61083c565b5060208310610133831016604e8410600b841016171561226c575081810a61083c565b61227683836121ae565b806000190482111561228a5761228a6120fa565b029392505050565b6000611f9060ff8416836121f1565b808202811582820484141761083c5761083c6120fa565b6000826122d557634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156122ec57600080fd5b8151611f9081611e1c565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123475784516001600160a01b031683529383019391830191600101612322565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561237d57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220e82a7d300a836f0923ff9d079edbb3cd71b6292906a649db29613b7fd353ec6664736f6c63430008130033

Deployed Bytecode

0x60806040526004361061024a5760003560e01c8063715018a611610139578063a9059cbb116100b6578063dd62ed3e1161007a578063dd62ed3e146106b3578063edaa1168146106f9578063f2fde38b14610719578063f66895a314610739578063f887ea4014610758578063fbe6324e1461077857600080fd5b8063a9059cbb14610619578063aacebbe314610639578063b030a36814610659578063c034f0ca1461066e578063c5d32bb21461068357600080fd5b80638ea5220f116100fd5780638ea5220f1461058f57806395d89b41146105af578063a3353451146105c4578063a457c2d7146105d9578063a8aa1b31146105f957600080fd5b8063715018a6146104d4578063728f8eea146104e957806375f0a8741461052357806385141a771461055b5780638da5cb5b1461057157600080fd5b8063274a533c116101c757806342b6fa111161018b57806342b6fa1114610428578063441b1d30146104485780634ada218b146104685780635e70a6991461048957806370a082311461049e57600080fd5b8063274a533c14610396578063313ce567146103ac5780633490560d146103c8578063355496ca146103e8578063395093511461040857600080fd5b80631675d8021161020e5780631675d8021461030857806318160ddd1461032c5780631816467f146103415780631d97b7cd1461036157806323b872dd1461037657600080fd5b806306fdde0314610256578063095ea7b3146102815780630e1e6f20146102b15780630e375a5c146102c85780631340538f146102e857600080fd5b3661025157005b600080fd5b34801561026257600080fd5b5061026b610799565b6040516102789190611dce565b60405180910390f35b34801561028d57600080fd5b506102a161029c366004611e41565b61082b565b6040519015158152602001610278565b3480156102bd57600080fd5b506102c6610842565b005b3480156102d457600080fd5b506102c66102e3366004611e9c565b6108a4565b3480156102f457600080fd5b506102c6610303366004611f73565b61093a565b34801561031457600080fd5b5061031e60085481565b604051908152602001610278565b34801561033857600080fd5b5060025461031e565b34801561034d57600080fd5b506102c661035c366004611f97565b610982565b34801561036d57600080fd5b506102c66109f4565b34801561038257600080fd5b506102a1610391366004611fb4565b610a93565b3480156103a257600080fd5b5061031e60095481565b3480156103b857600080fd5b5060405160128152602001610278565b3480156103d457600080fd5b506102c66103e3366004611e41565b610b44565b3480156103f457600080fd5b506102c6610403366004611ff5565b610c77565b34801561041457600080fd5b506102a1610423366004611e41565b610ccc565b34801561043457600080fd5b506102c661044336600461202e565b610d03565b34801561045457600080fd5b506102c661046336600461202e565b610dc2565b34801561047457600080fd5b506007546102a190600160b01b900460ff1681565b34801561049557600080fd5b506102c6610e2a565b3480156104aa57600080fd5b5061031e6104b9366004611f97565b6001600160a01b031660009081526020819052604090205490565b3480156104e057600080fd5b506102c6610ea7565b3480156104f557600080fd5b50600e54600f5460105461050892919083565b60408051938452602084019290925290820152606001610278565b34801561052f57600080fd5b50600c54610543906001600160a01b031681565b6040516001600160a01b039091168152602001610278565b34801561056757600080fd5b5061054361dead81565b34801561057d57600080fd5b506005546001600160a01b0316610543565b34801561059b57600080fd5b50600d54610543906001600160a01b031681565b3480156105bb57600080fd5b5061026b610edd565b3480156105d057600080fd5b506102c6610eec565b3480156105e557600080fd5b506102a16105f4366004611e41565b610f40565b34801561060557600080fd5b50600754610543906001600160a01b031681565b34801561062557600080fd5b506102a1610634366004611e41565b610fdb565b34801561064557600080fd5b506102c6610654366004611f97565b610fe8565b34801561066557600080fd5b506102c661105a565b34801561067a57600080fd5b506102c66110ae565b34801561068f57600080fd5b506102a161069e366004611f97565b60146020526000908152604090205460ff1681565b3480156106bf57600080fd5b5061031e6106ce366004612047565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561070557600080fd5b506102c661071436600461202e565b611107565b34801561072557600080fd5b506102c6610734366004611f97565b6111fc565b34801561074557600080fd5b5060115460125460135461050892919083565b34801561076457600080fd5b50600654610543906001600160a01b031681565b34801561078457600080fd5b506007546102a190600160a81b900460ff1681565b6060600380546107a890612075565b80601f01602080910402602001604051908101604052809291908181526020018280546107d490612075565b80156108215780601f106107f657610100808354040283529160200191610821565b820191906000526020600020905b81548152906001019060200180831161080457829003601f168201915b5050505050905090565b6000610838338484611297565b5060015b92915050565b6005546001600160a01b031633146108755760405162461bcd60e51b815260040161086c906120af565b60405180910390fd5b60408051606081018252600280825260208201819052600091909201819052600e829055600f91909155601055565b6005546001600160a01b031633146108ce5760405162461bcd60e51b815260040161086c906120af565b60005b82518110156109355781601460008584815181106108f1576108f16120e4565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061092d81612110565b9150506108d1565b505050565b6005546001600160a01b031633146109645760405162461bcd60e51b815260040161086c906120af565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b031633146109ac5760405162461bcd60e51b815260040161086c906120af565b6001600160a01b0381166109d25760405162461bcd60e51b815260040161086c90612129565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610a1e5760405162461bcd60e51b815260040161086c906120af565b600754600160b01b900460ff1615610a785760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f742072652d656e61626c652074726164696e670000000000000000604482015260640161086c565b6007805461ffff60a81b191661010160a81b17905543600955565b6000610aa08484846113bb565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610b255760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161086c565b610b398533610b34868561216b565b611297565b506001949350505050565b6005546001600160a01b03163314610b6e5760405162461bcd60e51b815260040161086c906120af565b306001600160a01b03831603610be55760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b606482015260840161086c565b816001600160a01b031663a9059cbb610c066005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610c53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610935919061217e565b6005546001600160a01b03163314610ca15760405162461bcd60e51b815260040161086c906120af565b6001600160a01b03919091166000908152601460205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610838918590610b3490869061219b565b6005546001600160a01b03163314610d2d5760405162461bcd60e51b815260040161086c906120af565b620186a0811115610da65760405162461bcd60e51b815260206004820152603e60248201527f53776170207468726573686f6c6420616d6f756e742073686f756c642062652060448201527f6c6f776572206f7220657175616c20746f203125206f6620746f6b656e730000606482015260840161086c565b610db26012600a612292565b610dbc90826122a1565b60085550565b6005546001600160a01b03163314610dec5760405162461bcd60e51b815260040161086c906120af565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610e26573d6000803e3d6000fd5b5050565b6005546001600160a01b03163314610e545760405162461bcd60e51b815260040161086c906120af565b6040805160608082018352600480835260208084018290526000938501849052600e829055600f829055601084905584519283018552818352820181905292018190526011829055601291909155601355565b6005546001600160a01b03163314610ed15760405162461bcd60e51b815260040161086c906120af565b610edb6000611706565b565b6060600480546107a890612075565b6005546001600160a01b03163314610f165760405162461bcd60e51b815260040161086c906120af565b60408051606081018252600080825260208201819052910181905260118190556012819055601355565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610fc25760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161086c565b610fd13385610b34868561216b565b5060019392505050565b60006108383384846113bb565b6005546001600160a01b031633146110125760405162461bcd60e51b815260040161086c906120af565b6001600160a01b0381166110385760405162461bcd60e51b815260040161086c90612129565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146110845760405162461bcd60e51b815260040161086c906120af565b604080516060810182526000808252602082018190529101819052600e819055600f819055601055565b6005546001600160a01b031633146110d85760405162461bcd60e51b815260040161086c906120af565b604080516060810182526002808252602082018190526000919092018190526011829055601291909155601355565b6005546001600160a01b031633146111315760405162461bcd60e51b815260040161086c906120af565b600754600160b01b900460ff16156111995760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b606482015260840161086c565b600381106111f75760405162461bcd60e51b815260206004820152602560248201527f446561646c696e652073686f756c64206265206c657373207468616e203320426044820152646c6f636b7360d81b606482015260840161086c565b600a55565b6005546001600160a01b031633146112265760405162461bcd60e51b815260040161086c906120af565b6001600160a01b03811661128b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161086c565b61129481611706565b50565b6001600160a01b0383166112f95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161086c565b6001600160a01b03821661135a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161086c565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000811161141d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161086c565b6001600160a01b03831660009081526014602052604090205460ff1615801561145f57506001600160a01b03821660009081526014602052604090205460ff16155b156114b357600754600160b01b900460ff166114b35760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b604482015260640161086c565b60008060006114dc60405180606001604052806000815260200160008152602001600081525090565b6001600160a01b03871660009081526014602052604081205460ff1615801561151e57506001600160a01b03871660009081526014602052604090205460ff16155b80156115385750600a54600954611535919061219b565b43105b600754909150600160a01b900460ff168061156b57506001600160a01b03881660009081526014602052604090205460ff165b8061158e57506001600160a01b03871660009081526014602052604090205460ff165b1561159c5760009250611666565b6007546001600160a01b0388811691161480156115b7575080155b15611607576012546011546013546115cf919061219b565b6115d9919061219b565b6040805160608101825260115481526012546020820152601354918101919091529095508594509150611666565b8061165757600f54600e5460105461161f919061219b565b611629919061219b565b60408051606081018252600e548152600f546020820152601054918101919091529095508594509150611666565b801561166657600b5494508493505b606461167285886122a1565b61167c91906122b8565b600754909350600160a81b900460ff1680156116a657506007546001600160a01b03898116911614155b156116b5576116b58583611758565b6116c988886116c4868a61216b565b6118d1565b82156116fc5784156116fc57600060646116e387896122a1565b6116ed91906122b8565b90506116fa8930836118d1565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16610e26576007805460ff60a01b1916600160a01b17905581156118c0573060009081526020819052604090205460085481106118be57600160085411156117ab57506008545b60006117b88460026122a1565b90506000818460400151846117cd91906122a1565b6117d791906122b8565b905060006117e5828561216b565b9050476117f182611aa9565b60006117fd824761216b565b90506000876040015186611811919061216b565b61181b90836122b8565b9050600088604001518261182f91906122a1565b90508015611841576118418682611c03565b88516000906118518460026122a1565b61185b91906122a1565b9050801561187957600c54611879906001600160a01b031682611cb5565b60208a015160009061188c8560026122a1565b61189691906122a1565b905080156118b457600d546118b4906001600160a01b031682611cb5565b5050505050505050505b505b6007805460ff60a01b191690555050565b6001600160a01b0383166119355760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161086c565b6001600160a01b0382166119975760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161086c565b6001600160a01b03831660009081526020819052604090205481811015611a0f5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161086c565b611a19828261216b565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290611a4f90849061219b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611a9b91815260200190565b60405180910390a350505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611ade57611ade6120e4565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5b91906122da565b81600181518110611b6e57611b6e6120e4565b6001600160a01b039283166020918202929092010152600654611b949130911684611297565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611bcd9085906000908690309042906004016122f7565b600060405180830381600087803b158015611be757600080fd5b505af1158015611bfb573d6000803e3d6000fd5b505050505050565b600654611c1b9030906001600160a01b031684611297565b60065460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015611c89573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611cae9190612368565b5050505050565b80471015611d055760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161086c565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611d52576040519150601f19603f3d011682016040523d82523d6000602084013e611d57565b606091505b50509050806109355760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161086c565b600060208083528351808285015260005b81811015611dfb57858101830151858201604001528201611ddf565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461129457600080fd5b8035611e3c81611e1c565b919050565b60008060408385031215611e5457600080fd5b8235611e5f81611e1c565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b801515811461129457600080fd5b8035611e3c81611e83565b60008060408385031215611eaf57600080fd5b823567ffffffffffffffff80821115611ec757600080fd5b818501915085601f830112611edb57600080fd5b8135602082821115611eef57611eef611e6d565b8160051b604051601f19603f83011681018181108682111715611f1457611f14611e6d565b604052928352818301935084810182019289841115611f3257600080fd5b948201945b83861015611f5757611f4886611e31565b85529482019493820193611f37565b9650611f669050878201611e91565b9450505050509250929050565b600060208284031215611f8557600080fd5b8135611f9081611e83565b9392505050565b600060208284031215611fa957600080fd5b8135611f9081611e1c565b600080600060608486031215611fc957600080fd5b8335611fd481611e1c565b92506020840135611fe481611e1c565b929592945050506040919091013590565b6000806040838503121561200857600080fd5b823561201381611e1c565b9150602083013561202381611e83565b809150509250929050565b60006020828403121561204057600080fd5b5035919050565b6000806040838503121561205a57600080fd5b823561206581611e1c565b9150602083013561202381611e1c565b600181811c9082168061208957607f821691505b6020821081036120a957634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201612122576121226120fa565b5060010190565b60208082526022908201527f46656520416464726573732063616e6e6f74206265207a65726f206164647265604082015261737360f01b606082015260800190565b8181038181111561083c5761083c6120fa565b60006020828403121561219057600080fd5b8151611f9081611e83565b8082018082111561083c5761083c6120fa565b600181815b808511156121e95781600019048211156121cf576121cf6120fa565b808516156121dc57918102915b93841c93908002906121b3565b509250929050565b6000826122005750600161083c565b8161220d5750600061083c565b8160018114612223576002811461222d57612249565b600191505061083c565b60ff84111561223e5761223e6120fa565b50506001821b61083c565b5060208310610133831016604e8410600b841016171561226c575081810a61083c565b61227683836121ae565b806000190482111561228a5761228a6120fa565b029392505050565b6000611f9060ff8416836121f1565b808202811582820484141761083c5761083c6120fa565b6000826122d557634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156122ec57600080fd5b8151611f9081611e1c565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123475784516001600160a01b031683529383019391830191600101612322565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561237d57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220e82a7d300a836f0923ff9d079edbb3cd71b6292906a649db29613b7fd353ec6664736f6c63430008130033

Deployed Bytecode Sourcemap

12700:10520:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2900:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14548:193;;;;;;;;;;-1:-1:-1;14548:193:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;14548:193:0;1162:187:1;21499:81:0;;;;;;;;;;;;;:::i;:::-;;22594:202;;;;;;;;;;-1:-1:-1;22594:202:0;;;;;:::i;:::-;;:::i;20701:108::-;;;;;;;;;;-1:-1:-1;20701:108:0;;;;;:::i;:::-;;:::i;12970:53::-;;;;;;;;;;;;;;;;;;;3330:25:1;;;3318:2;3303:18;12970:53:0;3184:177:1;4020:108:0;;;;;;;;;;-1:-1:-1;4108:12:0;;4020:108;;22274:184;;;;;;;;;;-1:-1:-1;22274:184:0;;;;;:::i;:::-;;:::i;21072:222::-;;;;;;;;;;;;;:::i;14749:485::-;;;;;;;;;;-1:-1:-1;14749:485:0;;;;;:::i;:::-;;:::i;13040:28::-;;;;;;;;;;;;;;;;3862:93;;;;;;;;;;-1:-1:-1;3862:93:0;;3945:2;4221:36:1;;4209:2;4194:18;3862:93:0;4079:184:1;22924:238:0;;;;;;;;;;-1:-1:-1;22924:238:0;;;;;:::i;:::-;;:::i;22466:120::-;;;;;;;;;;-1:-1:-1;22466:120:0;;;;;:::i;:::-;;:::i;15242:298::-;;;;;;;;;;-1:-1:-1;15242:298:0;;;;;:::i;:::-;;:::i;20817:247::-;;;;;;;;;;-1:-1:-1;20817:247:0;;;;;:::i;:::-;;:::i;22804:112::-;;;;;;;;;;-1:-1:-1;22804:112:0;;;;;:::i;:::-;;:::i;12927:34::-;;;;;;;;;;-1:-1:-1;12927:34:0;;;;-1:-1:-1;;;12927:34:0;;;;;;21681:119;;;;;;;;;;;;;:::i;4191:177::-;;;;;;;;;;-1:-1:-1;4191:177:0;;;;;:::i;:::-;-1:-1:-1;;;;;4342:18:0;4310:7;4342:18;;;;;;;;;;;;4191:177;11308:94;;;;;;;;;;;;;:::i;13502:35::-;;;;;;;;;;-1:-1:-1;13502:35:0;;;;;;;;;;;;;;;;5042:25:1;;;5098:2;5083:18;;5076:34;;;;5126:18;;;5119:34;5030:2;5015:18;13502:35:0;4840:319:1;13149:75:0;;;;;;;;;;-1:-1:-1;13149:75:0;;;;-1:-1:-1;;;;;13149:75:0;;;;;;-1:-1:-1;;;;;5328:32:1;;;5310:51;;5298:2;5283:18;13149:75:0;5164:203:1;13307:79:0;;;;;;;;;;;;13344:42;13307:79;;11085:87;;;;;;;;;;-1:-1:-1;11158:6:0;;-1:-1:-1;;;;;11158:6:0;11085:87;;13231:69;;;;;;;;;;-1:-1:-1;13231:69:0;;;;-1:-1:-1;;;;;13231:69:0;;;3119:104;;;;;;;;;;;;;:::i;21398:93::-;;;;;;;;;;;;;:::i;15548:409::-;;;;;;;;;;-1:-1:-1;15548:409:0;;;;;:::i;:::-;;:::i;12816:19::-;;;;;;;;;;-1:-1:-1;12816:19:0;;;;-1:-1:-1;;;;;12816:19:0;;;15965:197;;;;;;;;;;-1:-1:-1;15965:197:0;;;;;:::i;:::-;;:::i;22070:196::-;;;;;;;;;;-1:-1:-1;22070:196:0;;;;;:::i;:::-;;:::i;21302:88::-;;;;;;;;;;;;;:::i;21588:85::-;;;;;;;;;;;;;:::i;13592:41::-;;;;;;;;;;-1:-1:-1;13592:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4860:201;;;;;;;;;;-1:-1:-1;4860:201:0;;;;;:::i;:::-;-1:-1:-1;;;;;5026:18:0;;;4994:7;5026:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4860:201;21808:251;;;;;;;;;;-1:-1:-1;21808:251:0;;;;;:::i;:::-;;:::i;11410:229::-;;;;;;;;;;-1:-1:-1;11410:229:0;;;;;:::i;:::-;;:::i;13544:39::-;;;;;;;;;;-1:-1:-1;13544:39:0;;;;;;;;;;;;12788:21;;;;;;;;;;-1:-1:-1;12788:21:0;;;;-1:-1:-1;;;;;12788:21:0;;;12882:38;;;;;;;;;;-1:-1:-1;12882:38:0;;;;-1:-1:-1;;;12882:38:0;;;;;;2900:100;2954:13;2987:5;2980:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2900:100;:::o;14548:193::-;14650:4;14672:39;623:10;14695:7;14704:6;14672:8;:39::i;:::-;-1:-1:-1;14729:4:0;14548:193;;;;;:::o;21499:81::-;11158:6;;-1:-1:-1;;;;;11158:6:0;623:10;11220:23;11212:68;;;;-1:-1:-1;;;11212:68:0;;;;;;;:::i;:::-;;;;;;;;;21558:14:::1;::::0;;::::1;::::0;::::1;::::0;;21564:1:::1;21558:14:::0;;;::::1;::::0;::::1;::::0;;;-1:-1:-1;21558:14:0;;;;;;;21550:5:::1;:22:::0;;;;;;;;;;21499:81::o;22594:202::-;11158:6;;-1:-1:-1;;;;;11158:6:0;623:10;11220:23;11212:68;;;;-1:-1:-1;;;11212:68:0;;;;;;;:::i;:::-;22691:9:::1;22686:103;22710:8;:15;22706:1;:19;22686:103;;;22772:5;22747:9;:22;22757:8;22766:1;22757:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;22747:22:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;22747:22:0;:30;;-1:-1:-1;;22747:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22727:3;::::1;::::0;::::1;:::i;:::-;;;;22686:103;;;;22594:202:::0;;:::o;20701:108::-;11158:6;;-1:-1:-1;;;;;11158:6:0;623:10;11220:23;11212:68;;;;-1:-1:-1;;;11212:68:0;;;;;;;:::i;:::-;20775:18:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;20775:26:0::1;-1:-1:-1::0;;;;20775:26:0;;::::1;::::0;;;::::1;::::0;;20701:108::o;22274:184::-;11158:6;;-1:-1:-1;;;;;11158:6:0;623:10;11220:23;11212:68;;;;-1:-1:-1;;;11212:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22356:23:0;::::1;22348:70;;;;-1:-1:-1::0;;;22348:70:0::1;;;;;;;:::i;:::-;22429:9;:21:::0;;-1:-1:-1;;;;;;22429:21:0::1;-1:-1:-1::0;;;;;22429:21:0;;;::::1;::::0;;;::::1;::::0;;22274:184::o;21072:222::-;11158:6;;-1:-1:-1;;;;;11158:6:0;623:10;11220:23;11212:68;;;;-1:-1:-1;;;11212:68:0;;;;;;;:::i;:::-;21136:14:::1;::::0;-1:-1:-1;;;21136:14:0;::::1;;;21135:15;21127:52;;;::::0;-1:-1:-1;;;21127:52:0;;7743:2:1;21127:52:0::1;::::0;::::1;7725:21:1::0;7782:2;7762:18;;;7755:30;7821:26;7801:18;;;7794:54;7865:18;;21127:52:0::1;7541:348:1::0;21127:52:0::1;21190:14;:21:::0;;-1:-1:-1;;;;21222:25:0;-1:-1:-1;;;21222:25:0;;;21274:12:::1;21258:13;:28:::0;21072:222::o;14749:485::-;14881:4;14898:36;14908:6;14916:9;14927:6;14898:9;:36::i;:::-;-1:-1:-1;;;;;14974:19:0;;14947:24;14974:19;;;:11;:19;;;;;;;;623:10;14974:33;;;;;;;;15040:26;;;;15018:116;;;;-1:-1:-1;;;15018:116:0;;8096:2:1;15018:116:0;;;8078:21:1;8135:2;8115:18;;;8108:30;8174:34;8154:18;;;8147:62;-1:-1:-1;;;8225:18:1;;;8218:38;8273:19;;15018:116:0;7894:404:1;15018:116:0;15145:57;15154:6;623:10;15176:25;15195:6;15176:16;:25;:::i;:::-;15145:8;:57::i;:::-;-1:-1:-1;15222:4:0;;14749:485;-1:-1:-1;;;;14749:485:0:o;22924:238::-;11158:6;;-1:-1:-1;;;;;11158:6:0;623:10;11220:23;11212:68;;;;-1:-1:-1;;;11212:68:0;;;;;;;:::i;:::-;23037:4:::1;-1:-1:-1::0;;;;;23017:25:0;::::1;::::0;23009:92:::1;;;::::0;-1:-1:-1;;;23009:92:0;;8638:2:1;23009:92:0::1;::::0;::::1;8620:21:1::0;8677:2;8657:18;;;8650:30;8716:34;8696:18;;;8689:62;-1:-1:-1;;;8767:18:1;;;8760:52;8829:19;;23009:92:0::1;8436:418:1::0;23009:92:0::1;23119:8;-1:-1:-1::0;;;;;23112:25:0::1;;23138:7;11158:6:::0;;-1:-1:-1;;;;;11158:6:0;;11085:87;23138:7:::1;23112:42;::::0;-1:-1:-1;;;;;;23112:42:0::1;::::0;;;;;;-1:-1:-1;;;;;9051:32:1;;;23112:42:0::1;::::0;::::1;9033:51:1::0;9100:18;;;9093:34;;;9006:18;;23112:42:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;22466:120::-:0;11158:6;;-1:-1:-1;;;;;11158:6:0;623:10;11220:23;11212:68;;;;-1:-1:-1;;;11212:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22551:19:0;;;::::1;;::::0;;;:9:::1;:19;::::0;;;;:27;;-1:-1:-1;;22551:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22466:120::o;15242:298::-;623:10;15358:4;15452:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;15452:34:0;;;;;;;;;;15358:4;;15380:130;;15430:7;;15452:47;;15489:10;;15452:47;:::i;20817:247::-;11158:6;;-1:-1:-1;;;;;11158:6:0;623:10;11220:23;11212:68;;;;-1:-1:-1;;;11212:68:0;;;;;;;:::i;:::-;20923:3:::1;20909:10;:17;;20901:91;;;::::0;-1:-1:-1;;;20901:91:0;;9720:2:1;20901:91:0::1;::::0;::::1;9702:21:1::0;9759:2;9739:18;;;9732:30;9798:34;9778:18;;;9771:62;9869:32;9849:18;;;9842:60;9919:19;;20901:91:0::1;9518:426:1::0;20901:91:0::1;21042:14;3945:2:::0;21042::::1;:14;:::i;:::-;21029:27;::::0;:10;:27:::1;:::i;:::-;21003:23;:53:::0;-1:-1:-1;20817:247:0:o;22804:112::-;11158:6;;-1:-1:-1;;;;;11158:6:0;623:10;11220:23;11212:68;;;;-1:-1:-1;;;11212:68:0;;;;;;;:::i;:::-;11158:6;;22872:36:::1;::::0;-1:-1:-1;;;;;11158:6:0;;;;22872:36;::::1;;;::::0;22898:9;;22872:36:::1;::::0;;;22898:9;11158:6;22872:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;22804:112:::0;:::o;21681:119::-;11158:6;;-1:-1:-1;;;;;11158:6:0;623:10;11220:23;11212:68;;;;-1:-1:-1;;;11212:68:0;;;;;;;:::i;:::-;21742:14:::1;::::0;;::::1;::::0;;::::1;::::0;;21748:1:::1;21742:14:::0;;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;21742:14:0;;;;;;21734:5:::1;:22:::0;;;;;;;;;;;21778:14;;;;::::1;::::0;;;;;;::::1;::::0;;;;;;;;21767:9:::1;:25:::0;;;;;;;;;;21681:119::o;11308:94::-;11158:6;;-1:-1:-1;;;;;11158:6:0;623:10;11220:23;11212:68;;;;-1:-1:-1;;;11212:68:0;;;;;;;:::i;:::-;11373:21:::1;11391:1;11373:9;:21::i;:::-;11308:94::o:0;3119:104::-;3175:13;3208:7;3201:14;;;;;:::i;21398:93::-;11158:6;;-1:-1:-1;;;;;11158:6:0;623:10;11220:23;11212:68;;;;-1:-1:-1;;;11212:68:0;;;;;;;:::i;:::-;21469:14:::1;::::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;21469:14:0;;;::::1;::::0;::::1;::::0;;;;;;;;21457:9:::1;:26:::0;;;;;;;;;21398:93::o;15548:409::-;623:10;15669:4;15718:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;15718:34:0;;;;;;;;;;15771:35;;;;15763:84;;;;-1:-1:-1;;;15763:84:0;;11707:2:1;15763:84:0;;;11689:21:1;11746:2;11726:18;;;11719:30;11785:34;11765:18;;;11758:62;-1:-1:-1;;;11836:18:1;;;11829:35;11881:19;;15763:84:0;11505:401:1;15763:84:0;15858:67;623:10;15881:7;15890:34;15909:15;15890:16;:34;:::i;15858:67::-;-1:-1:-1;15945:4:0;;15548:409;-1:-1:-1;;;15548:409:0:o;15965:197::-;16070:4;16092:40;16102:10;16114:9;16125:6;16092:9;:40::i;22070:196::-;11158:6;;-1:-1:-1;;;;;11158:6:0;623:10;11220:23;11212:68;;;;-1:-1:-1;;;11212:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22158:23:0;::::1;22150:70;;;;-1:-1:-1::0;;;22150:70:0::1;;;;;;;:::i;:::-;22231:15;:27:::0;;-1:-1:-1;;;;;;22231:27:0::1;-1:-1:-1::0;;;;;22231:27:0;;;::::1;::::0;;;::::1;::::0;;22070:196::o;21302:88::-;11158:6;;-1:-1:-1;;;;;11158:6:0;623:10;11220:23;11212:68;;;;-1:-1:-1;;;11212:68:0;;;;;;;:::i;:::-;21368:14:::1;::::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;21368:14:0;;;::::1;::::0;::::1;::::0;;;;;;;;21360:5:::1;:22:::0;;;;;;;;;21302:88::o;21588:85::-;11158:6;;-1:-1:-1;;;;;11158:6:0;623:10;11220:23;11212:68;;;;-1:-1:-1;;;11212:68:0;;;;;;;:::i;:::-;21651:14:::1;::::0;;::::1;::::0;::::1;::::0;;21657:1:::1;21651:14:::0;;;::::1;::::0;::::1;::::0;;;-1:-1:-1;21651:14:0;;;;;;;21640:9:::1;:25:::0;;;;;;;;;;21588:85::o;21808:251::-;11158:6;;-1:-1:-1;;;;;11158:6:0;623:10;11220:23;11212:68;;;;-1:-1:-1;;;11212:68:0;;;;;;;:::i;:::-;21890:14:::1;::::0;-1:-1:-1;;;21890:14:0;::::1;;;21889:15;21881:65;;;::::0;-1:-1:-1;;;21881:65:0;;12113:2:1;21881:65:0::1;::::0;::::1;12095:21:1::0;12152:2;12132:18;;;12125:30;12191:34;12171:18;;;12164:62;-1:-1:-1;;;12242:18:1;;;12235:35;12287:19;;21881:65:0::1;11911:401:1::0;21881:65:0::1;21977:1;21965:9;:13;21957:63;;;::::0;-1:-1:-1;;;21957:63:0;;12519:2:1;21957:63:0::1;::::0;::::1;12501:21:1::0;12558:2;12538:18;;;12531:30;12597:34;12577:18;;;12570:62;-1:-1:-1;;;12648:18:1;;;12641:35;12693:19;;21957:63:0::1;12317:401:1::0;21957:63:0::1;22031:8;:20:::0;21808:251::o;11410:229::-;11158:6;;-1:-1:-1;;;;;11158:6:0;623:10;11220:23;11212:68;;;;-1:-1:-1;;;11212:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11513:22:0;::::1;11491:110;;;::::0;-1:-1:-1;;;11491:110:0;;12925:2:1;11491:110:0::1;::::0;::::1;12907:21:1::0;12964:2;12944:18;;;12937:30;13003:34;12983:18;;;12976:62;-1:-1:-1;;;13054:18:1;;;13047:36;13100:19;;11491:110:0::1;12723:402:1::0;11491:110:0::1;11612:19;11622:8;11612:9;:19::i;:::-;11410:229:::0;:::o;10021:380::-;-1:-1:-1;;;;;10157:19:0;;10149:68;;;;-1:-1:-1;;;10149:68:0;;13332:2:1;10149:68:0;;;13314:21:1;13371:2;13351:18;;;13344:30;13410:34;13390:18;;;13383:62;-1:-1:-1;;;13461:18:1;;;13454:34;13505:19;;10149:68:0;13130:400:1;10149:68:0;-1:-1:-1;;;;;10236:21:0;;10228:68;;;;-1:-1:-1;;;10228:68:0;;13737:2:1;10228:68:0;;;13719:21:1;13776:2;13756:18;;;13749:30;13815:34;13795:18;;;13788:62;-1:-1:-1;;;13866:18:1;;;13859:32;13908:19;;10228:68:0;13535:398:1;10228:68:0;-1:-1:-1;;;;;10309:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10361:32;;3330:25:1;;;10361:32:0;;3303:18:1;10361:32:0;;;;;;;10021:380;;;:::o;16170:1883::-;16320:1;16311:6;:10;16303:64;;;;-1:-1:-1;;;16303:64:0;;14140:2:1;16303:64:0;;;14122:21:1;14179:2;14159:18;;;14152:30;14218:34;14198:18;;;14191:62;-1:-1:-1;;;14269:18:1;;;14262:39;14318:19;;16303:64:0;13938:405:1;16303:64:0;-1:-1:-1;;;;;16392:17:0;;;;;;:9;:17;;;;;;;;16391:18;:43;;;;-1:-1:-1;;;;;;16414:20:0;;;;;;:9;:20;;;;;;;;16413:21;16391:43;16387:122;;;16459:14;;-1:-1:-1;;;16459:14:0;;;;16451:46;;;;-1:-1:-1;;;16451:46:0;;14550:2:1;16451:46:0;;;14532:21:1;14589:2;14569:18;;;14562:30;-1:-1:-1;;;14608:18:1;;;14601:49;14667:18;;16451:46:0;14348:343:1;16451:46:0;16529:15;16555:14;16580:11;16602:25;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;16602:25:0;-1:-1:-1;;;;;16661:17:0;;16640;16661;;;:9;:17;;;;;;;;16660:18;:56;;;;-1:-1:-1;;;;;;16696:20:0;;;;;;:9;:20;;;;;;;;16695:21;16660:56;:112;;;;;16764:8;;16748:13;;:24;;;;:::i;:::-;16733:12;:39;16660:112;16860:10;;16640:132;;-1:-1:-1;;;;16860:10:0;;;;;:31;;-1:-1:-1;;;;;;16874:17:0;;;;;;:9;:17;;;;;;;;16860:31;:55;;;-1:-1:-1;;;;;;16895:20:0;;;;;;:9;:20;;;;;;;;16860:55;16856:608;;;16936:1;16930:7;;16856:608;;;17001:4;;-1:-1:-1;;;;;16988:17:0;;;17001:4;;16988:17;:34;;;;;17010:12;17009:13;16988:34;16984:480;;;17093:13;;:9;17071:19;17049;;:41;;17071:19;17049:41;:::i;:::-;:57;;;;:::i;:::-;17152:24;;;;;;;;17167:9;17152:24;;;;;;;;;;;;;;;;;;17039:67;;-1:-1:-1;17039:67:0;;-1:-1:-1;17152:24:0;-1:-1:-1;16984:480:0;;;17199:12;17194:270;;17274:9;;:5;17256:15;17238;;:33;;17256:15;17238:33;:::i;:::-;:45;;;;:::i;:::-;17329:20;;;;;;;;17344:5;17329:20;;;;;;;;;;;;;;;;;;17228:55;;-1:-1:-1;17228:55:0;;-1:-1:-1;17329:20:0;-1:-1:-1;17194:270:0;;;17371:12;17367:97;;;17410:9;;;-1:-1:-1;17410:9:0;;-1:-1:-1;17367:97:0;17502:3;17483:15;17492:6;17483;:15;:::i;:::-;17482:23;;;;:::i;:::-;17619:18;;17476:29;;-1:-1:-1;;;;17619:18:0;;;;:36;;;;-1:-1:-1;17651:4:0;;-1:-1:-1;;;;;17641:14:0;;;17651:4;;17641:14;;17619:36;17615:85;;;17670:30;17678:7;17687:12;17670:7;:30::i;:::-;17742:48;17758:6;17766:9;17777:12;17786:3;17777:6;:12;:::i;:::-;17742:15;:48::i;:::-;17805:7;;17801:247;;17877:11;;17873:164;;17909:17;17950:3;17930:16;17939:7;17930:6;:16;:::i;:::-;17929:24;;;;:::i;:::-;17909:44;;17972:49;17988:6;18004:4;18011:9;17972:15;:49::i;:::-;17890:147;17873:164;16292:1761;;;;;16170:1883;;;:::o;11647:173::-;11722:6;;;-1:-1:-1;;;;;11739:17:0;;;-1:-1:-1;;;;;;11739:17:0;;;;;;;11772:40;;11722:6;;;11739:17;11722:6;;11772:40;;11703:16;;11772:40;11692:128;11647:173;:::o;18061:1584::-;13681:10;;-1:-1:-1;;;13681:10:0;;;;13676:110;;13708:10;:17;;-1:-1:-1;;;;13708:17:0;-1:-1:-1;;;13708:17:0;;;18150:51;;18183:7:::1;18150:51;18257:4;18213:23;4342:18:::0;;;;;;;;;;;18297:23:::1;::::0;18278:42;::::1;18274:1364;;18367:1;18341:23;;:27;18337:109;;;-1:-1:-1::0;18407:23:0::1;::::0;18337:109:::1;18517:19;18539:11;:7:::0;18549:1:::1;18539:11;:::i;:::-;18517:33;;18565:32;18642:11;18619:9;:19;;;18601:15;:37;;;;:::i;:::-;18600:53;;;;:::i;:::-;18565:88:::0;-1:-1:-1;18668:14:0::1;18685:42;18565:88:::0;18685:15;:42:::1;:::i;:::-;18668:59:::0;-1:-1:-1;18769:21:0::1;18807:24;18668:59:::0;18807:16:::1;:24::i;:::-;18848:20;18871:38;18895:14:::0;18871:21:::1;:38;:::i;:::-;18848:61;;18924:19;18976:9;:19;;;18962:11;:33;;;;:::i;:::-;18946:50;::::0;:12;:50:::1;:::i;:::-;18924:72;;19011:29;19057:9;:19;;;19043:11;:33;;;;:::i;:::-;19011:65:::0;-1:-1:-1;19097:25:0;;19093:172:::1;;19188:61;19201:24;19227:21;19188:12;:61::i;:::-;19322:19:::0;;19281:20:::1;::::0;19304:15:::1;:11:::0;19318:1:::1;19304:15;:::i;:::-;:37;;;;:::i;:::-;19281:60:::0;-1:-1:-1;19360:16:0;;19356:105:::1;;19405:15;::::0;19397:48:::1;::::0;-1:-1:-1;;;;;19405:15:0::1;19432:12:::0;19397:34:::1;:48::i;:::-;19512:13;::::0;::::1;::::0;19477:14:::1;::::0;19494:15:::1;:11:::0;19508:1:::1;19494:15;:::i;:::-;:31;;;;:::i;:::-;19477:48:::0;-1:-1:-1;19544:10:0;;19540:87:::1;;19583:9;::::0;19575:36:::1;::::0;-1:-1:-1;;;;;19583:9:0::1;19604:6:::0;19575:28:::1;:36::i;:::-;18322:1316;;;;;;;;;18274:1364;18139:1506;13740:1;13756:10:::0;:18;;-1:-1:-1;;;;13756:18:0;;;18061:1584;;:::o;8538:615::-;-1:-1:-1;;;;;8678:20:0;;8670:70;;;;-1:-1:-1;;;8670:70:0;;15120:2:1;8670:70:0;;;15102:21:1;15159:2;15139:18;;;15132:30;15198:34;15178:18;;;15171:62;-1:-1:-1;;;15249:18:1;;;15242:35;15294:19;;8670:70:0;14918:401:1;8670:70:0;-1:-1:-1;;;;;8759:23:0;;8751:71;;;;-1:-1:-1;;;8751:71:0;;15526:2:1;8751:71:0;;;15508:21:1;15565:2;15545:18;;;15538:30;15604:34;15584:18;;;15577:62;-1:-1:-1;;;15655:18:1;;;15648:33;15698:19;;8751:71:0;15324:399:1;8751:71:0;-1:-1:-1;;;;;8859:17:0;;8835:21;8859:17;;;;;;;;;;;8909:23;;;;8887:111;;;;-1:-1:-1;;;8887:111:0;;15930:2:1;8887:111:0;;;15912:21:1;15969:2;15949:18;;;15942:30;16008:34;15988:18;;;15981:62;-1:-1:-1;;;16059:18:1;;;16052:36;16105:19;;8887:111:0;15728:402:1;8887:111:0;9029:22;9045:6;9029:13;:22;:::i;:::-;-1:-1:-1;;;;;9009:17:0;;;:9;:17;;;;;;;;;;;:42;;;;9062:20;;;;;;;;:30;;9086:6;;9009:9;9062:30;;9086:6;;9062:30;:::i;:::-;;;;;;;;9127:9;-1:-1:-1;;;;;9110:35:0;9119:6;-1:-1:-1;;;;;9110:35:0;;9138:6;9110:35;;;;3330:25:1;;3318:2;3303:18;;3184:177;9110:35:0;;;;;;;;8659:494;8538:615;;;:::o;19653:534::-;19803:16;;;19817:1;19803:16;;;;;;;;19779:21;;19803:16;;;;;;;;;;-1:-1:-1;19803:16:0;19779:40;;19848:4;19830;19835:1;19830:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19830:23:0;;;:7;;;;;;;;;;:23;;;;19874:6;;:13;;;-1:-1:-1;;;19874:13:0;;;;:6;;;;;:11;;:13;;;;;19830:7;;19874:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19864:4;19869:1;19864:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19864:23:0;;;:7;;;;;;;;;:23;19932:6;;19900:53;;19917:4;;19932:6;19941:11;19900:8;:53::i;:::-;19992:6;;:187;;-1:-1:-1;;;19992:187:0;;-1:-1:-1;;;;;19992:6:0;;;;:57;;:187;;20064:11;;19992:6;;20106:4;;20133;;20153:15;;19992:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19708:479;19653:534;:::o;20195:498::-;20375:6;;20343:53;;20360:4;;-1:-1:-1;;;;;20375:6:0;20384:11;20343:8;:53::i;:::-;20439:6;;:246;;-1:-1:-1;;;20439:246:0;;20502:4;20439:246;;;17717:34:1;17767:18;;;17760:34;;;20439:6:0;17810:18:1;;;17803:34;;;17853:18;;;17846:34;13344:42:0;17896:19:1;;;17889:44;20659:15:0;17949:19:1;;;17942:35;-1:-1:-1;;;;;20439:6:0;;;;:22;;20469:9;;17651:19:1;;20439:246:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20195:498;;:::o;10431:391::-;10560:6;10535:21;:31;;10513:110;;;;-1:-1:-1;;;10513:110:0;;18501:2:1;10513:110:0;;;18483:21:1;18540:2;18520:18;;;18513:30;18579:31;18559:18;;;18552:59;18628:18;;10513:110:0;18299:353:1;10513:110:0;10637:12;10655:9;-1:-1:-1;;;;;10655:14:0;10677:6;10655:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10636:52;;;10721:7;10699:115;;;;-1:-1:-1;;;10699:115:0;;19069:2:1;10699:115:0;;;19051:21:1;19108:2;19088:18;;;19081:30;19147:34;19127:18;;;19120:62;19218:28;19198:18;;;19191:56;19264:19;;10699:115:0;18867: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;5372:388::-;5440:6;5448;5501:2;5489:9;5480:7;5476:23;5472:32;5469:52;;;5517:1;5514;5507:12;5469:52;5556:9;5543:23;5575:31;5600:5;5575:31;:::i;:::-;5625:5;-1:-1:-1;5682:2:1;5667:18;;5654:32;5695:33;5654:32;5695:33;:::i;5988:380::-;6067:1;6063:12;;;;6110;;;6131:61;;6185:4;6177:6;6173:17;6163:27;;6131:61;6238:2;6230:6;6227:14;6207:18;6204:38;6201:161;;6284:10;6279:3;6275:20;6272:1;6265:31;6319:4;6316:1;6309:15;6347:4;6344:1;6337:15;6201:161;;5988:380;;;:::o;6373:356::-;6575:2;6557:21;;;6594:18;;;6587:30;6653:34;6648:2;6633:18;;6626:62;6720:2;6705:18;;6373:356::o;6734:127::-;6795:10;6790:3;6786:20;6783:1;6776:31;6826:4;6823:1;6816:15;6850:4;6847:1;6840:15;6866:127;6927:10;6922:3;6918:20;6915:1;6908:31;6958:4;6955:1;6948:15;6982:4;6979:1;6972:15;6998:135;7037:3;7058:17;;;7055:43;;7078:18;;:::i;:::-;-1:-1:-1;7125:1:1;7114:13;;6998:135::o;7138:398::-;7340:2;7322:21;;;7379:2;7359:18;;;7352:30;7418:34;7413:2;7398:18;;7391:62;-1:-1:-1;;;7484:2:1;7469:18;;7462:32;7526:3;7511:19;;7138:398::o;8303:128::-;8370:9;;;8391:11;;;8388:37;;;8405:18;;:::i;9138:245::-;9205:6;9258:2;9246:9;9237:7;9233:23;9229:32;9226:52;;;9274:1;9271;9264:12;9226:52;9306:9;9300:16;9325:28;9347:5;9325:28;:::i;9388:125::-;9453:9;;;9474:10;;;9471:36;;;9487:18;;:::i;9949:422::-;10038:1;10081:5;10038:1;10095:270;10116:7;10106:8;10103:21;10095:270;;;10175:4;10171:1;10167:6;10163:17;10157:4;10154:27;10151:53;;;10184:18;;:::i;:::-;10234:7;10224:8;10220:22;10217:55;;;10254:16;;;;10217:55;10333:22;;;;10293:15;;;;10095:270;;;10099:3;9949:422;;;;;:::o;10376:806::-;10425:5;10455:8;10445:80;;-1:-1:-1;10496:1:1;10510:5;;10445:80;10544:4;10534:76;;-1:-1:-1;10581:1:1;10595:5;;10534:76;10626:4;10644:1;10639:59;;;;10712:1;10707:130;;;;10619:218;;10639:59;10669:1;10660:10;;10683:5;;;10707:130;10744:3;10734:8;10731:17;10728:43;;;10751:18;;:::i;:::-;-1:-1:-1;;10807:1:1;10793:16;;10822:5;;10619:218;;10921:2;10911:8;10908:16;10902:3;10896:4;10893:13;10889:36;10883:2;10873:8;10870:16;10865:2;10859:4;10856:12;10852:35;10849:77;10846:159;;;-1:-1:-1;10958:19:1;;;10990:5;;10846:159;11037:34;11062:8;11056:4;11037:34;:::i;:::-;11107:6;11103:1;11099:6;11095:19;11086:7;11083:32;11080:58;;;11118:18;;:::i;:::-;11156:20;;10376:806;-1:-1:-1;;;10376:806:1:o;11187:140::-;11245:5;11274:47;11315:4;11305:8;11301:19;11295:4;11274:47;:::i;11332:168::-;11405:9;;;11436;;11453:15;;;11447:22;;11433:37;11423:71;;11474:18;;:::i;14696:217::-;14736:1;14762;14752:132;;14806:10;14801:3;14797:20;14794:1;14787:31;14841:4;14838:1;14831:15;14869:4;14866:1;14859:15;14752:132;-1:-1:-1;14898:9:1;;14696:217::o;16135:251::-;16205:6;16258:2;16246:9;16237:7;16233:23;16229:32;16226:52;;;16274:1;16271;16264:12;16226:52;16306:9;16300:16;16325:31;16350:5;16325:31;:::i;16391:980::-;16653:4;16701:3;16690:9;16686:19;16732:6;16721:9;16714:25;16758:2;16796:6;16791:2;16780:9;16776:18;16769:34;16839:3;16834:2;16823:9;16819:18;16812:31;16863:6;16898;16892:13;16929:6;16921;16914:22;16967:3;16956:9;16952:19;16945:26;;17006:2;16998:6;16994:15;16980:29;;17027:1;17037:195;17051:6;17048:1;17045:13;17037:195;;;17116:13;;-1:-1:-1;;;;;17112:39:1;17100:52;;17207:15;;;;17172:12;;;;17148:1;17066:9;17037:195;;;-1:-1:-1;;;;;;;17288:32:1;;;;17283:2;17268:18;;17261:60;-1:-1:-1;;;17352:3:1;17337:19;17330:35;17249:3;16391:980;-1:-1:-1;;;16391:980:1:o;17988:306::-;18076:6;18084;18092;18145:2;18133:9;18124:7;18120:23;18116:32;18113:52;;;18161:1;18158;18151:12;18113:52;18190:9;18184:16;18174:26;;18240:2;18229:9;18225:18;18219:25;18209:35;;18284:2;18273:9;18269:18;18263:25;18253:35;;17988:306;;;;;:::o

Swarm Source

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