ETH Price: $3,501.73 (+2.12%)
Gas: 2 Gwei

Token

Wen Refund ($WENRFD)
 

Overview

Max Total Supply

420,000,000,000 $WENRFD

Holders

135

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
2,872,957,366.467199692743900078 $WENRFD

Value
$0.00
0xcfde70e8f55f1654211bb2618b75a3b839bf2a80
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:
Refund

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**
 Website : Wenrefund.vip
 Twitter : http://Twitter.com/WENRFD
 Telegram :  https://t.me/wen_refund
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

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

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

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

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

    /**
     * @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() external view virtual override returns (uint256) {
        return _totalSupply;
    }

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

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

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

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * NOTE: Does not update the allowance if the current allowance
     * is the maximum `uint256`.
     *
     * Requirements:
     *
     * - `from` and `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        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
    ) external virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(
            currentAllowance >= subtractedValue,
            "ERC20: decreased allowance below zero"
        );
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        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
    ) external virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

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

        _totalSupply += amount;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);
    }

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

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _totalSupply -= amount;
        }

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

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

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

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

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

        uint256 fromBalance = _balances[from];
        require(
            fromBalance >= amount,
            "ERC20: transfer amount exceeds balance"
        );
        unchecked {
            _balances[from] = fromBalance - amount;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);
    }
}

contract Refund is ERC20, Ownable {
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) private _sniper;

    address public _marketingWallet = 0x8f2Ed001f92fd4507E352C931DF4b62A82275B0f;
    address public _devWallet = 0x8f2Ed001f92fd4507E352C931DF4b62A82275B0f;

    uint256 public feesBuy = 2000;

    uint256 public _feesM = 5000;
    uint256 public _feesLp = 0;
    uint256 public _feesDev = 0;
    uint256 public feesSellTotal = _feesLp + _feesM + _feesDev;

    uint256 public _maxWallet;
    uint256 public _minTokensBeforeSwapping = 600;

    IUniswapV2Router public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;
   
    bool public started;
    bool inSwapAndLiquify;

    modifier lockTheSwap() {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor() ERC20("Wen Refund", "$WENRFD") {
        uint256 startSupply = 420e9 * 10 ** decimals();
        _mint(msg.sender, (startSupply));

        IUniswapV2Router _uniswapV2Router = IUniswapV2Router(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;

        _isExcludedFromFee[address(uniswapV2Router)] = true;
        _isExcludedFromFee[msg.sender] = true;

        _maxWallet = startSupply / 100;
        
        _approve(msg.sender, address(uniswapV2Router), type(uint256).max);
        _approve(address(this), address(uniswapV2Router), type(uint256).max);
    }

    function openTrading() external onlyOwner {
        started = true;
    }

    function removeSnipers(address[] calldata accounts) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            _sniper[accounts[i]] = false;
        }
    }

    function addSnipers(address[] calldata accounts) external onlyOwner {
        uint256 len = accounts.length;
        for(uint256 i = 0; i < len;) {
            _sniper[accounts[i]] = true;
            unchecked {
                i++;
            }
        }
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(!_sniper[from], "Sniper rejected");
        if (
            _isExcludedFromFee[from] ||
            _isExcludedFromFee[to] ||
            inSwapAndLiquify
        ) {
            super._transfer(from, to, amount);
        } else {
            require(started, "Not open yet");
            uint taxAmount;
            if (to == uniswapV2Pair) {
                uint256 bal = balanceOf(address(this));
                uint256 threshold = balanceOf(uniswapV2Pair) * _minTokensBeforeSwapping / 10000;
                if (
                    bal >= threshold
                ) {
                    if (bal >= 3 * threshold) bal = 3 * threshold;
                    _swapAndLiquify(bal);
                }
                taxAmount = amount * feesSellTotal / 10000;
            } else if (from == uniswapV2Pair) {
                taxAmount = amount * feesBuy / 10000;
                require(
                    balanceOf(to) + amount - taxAmount <= _maxWallet,
                    "Transfer amount exceeds max wallet"
                );
            } else {
                require(
                    balanceOf(to) + amount <= _maxWallet,
                    "Transfer amount exceeds max wallet"
                );
            }
            super._transfer(from, to, amount - taxAmount);
            if (taxAmount > 0) {
                super._transfer(from, address(this), taxAmount);
            }
        }
    }

    function _swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {
        uint256 _feesSellTotal = feesSellTotal;
        if (_feesSellTotal == 0) return;
        uint256 feeTotal = _feesSellTotal - _feesLp / 2;
        uint256 toSell = contractTokenBalance * feeTotal / _feesSellTotal;

        _swapTokensForEth(toSell);
        uint256 balance = address(this).balance;

        uint256 toDev = balance * _feesDev / feeTotal;
        uint256 toMarketing = balance * _feesM / feeTotal;
        
        if (_feesLp > 0) {
            _addLiquidity(
                contractTokenBalance - toSell,
                balance - toDev - toMarketing
            );
        }
        if (toMarketing > 0) {
            payable(_marketingWallet).transfer(toMarketing);
        }

        if (address(this).balance > 0) {
            payable(_devWallet).transfer(address(this).balance);
        }
    }

    function _swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            (block.timestamp)
        );
    }

    function _addLiquidity(
        uint256 tokenAmount,
        uint256 ethAmount
    ) private lockTheSwap {
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            owner(),
            block.timestamp
        );
    }

    function getStatus(address a) external view returns(bool) {
        return _sniper[a];
    }

    function setDevWallet(address newWallet) external onlyOwner {
        _devWallet = newWallet;
    }

    function setMarketingWallet(address newWallet) external onlyOwner {
        _marketingWallet = newWallet;
    }

    function setMinTokens(uint256 newValue) external onlyOwner {
        _minTokensBeforeSwapping = newValue;
    }

    function excludeFromFees(address[] calldata addresses)
        external
        onlyOwner
    {
        for (uint256 i = 0; i < addresses.length; i++) {
            _isExcludedFromFee[addresses[i]] = true;
        }
    }

    function includeInFees(address[] calldata addresses)
        external
        onlyOwner
    {
        for (uint256 i = 0; i < addresses.length; i++) {
            _isExcludedFromFee[addresses[i]] = false;
        }
    }

    function editBuyFees(uint256 newValue) external onlyOwner {
        feesBuy = newValue;
    }

    function editSellFees(
        uint256 __feesDev,
        uint256 __feesLp,
        uint256 __feesM
    ) external onlyOwner {
        _feesDev = __feesDev;
        _feesLp = __feesLp;
        _feesM = __feesM;
        feesSellTotal = __feesDev + __feesLp + __feesM;
    }

    function setMaxWallet(uint256 __maxWallet) external onlyOwner {
        _maxWallet = __maxWallet;
    }

    function getStuckETH() external onlyOwner {
        payable(msg.sender).transfer(address(this).balance);
    }

    function getStuckTokens(
        IERC20 tokenAddress,
        address walletAddress,
        uint256 amt
    ) external onlyOwner {
        uint256 bal = tokenAddress.balanceOf(address(this));
        IERC20(tokenAddress).transfer(
            walletAddress,
            amt > bal ? bal : amt
        );
    }

    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":"_devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_feesDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_feesLp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_feesM","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_minTokensBeforeSwapping","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"addSnipers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"editBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"__feesDev","type":"uint256"},{"internalType":"uint256","name":"__feesLp","type":"uint256"},{"internalType":"uint256","name":"__feesM","type":"uint256"}],"name":"editSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feesBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feesSellTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"getStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"tokenAddress","type":"address"},{"internalType":"address","name":"walletAddress","type":"address"},{"internalType":"uint256","name":"amt","type":"uint256"}],"name":"getStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"includeInFees","outputs":[],"stateMutability":"nonpayable","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":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"removeSnipers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"setDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"__maxWallet","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setMinTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"started","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052738f2ed001f92fd4507e352c931df4b62a82275b0f600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550738f2ed001f92fd4507e352c931df4b62a82275b0f600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506107d0600a55611388600b556000600c556000600d55600d54600b54600c54620000d9919062000938565b620000e5919062000938565b600e55610258601055348015620000fb57600080fd5b506040518060400160405280600a81526020017f57656e20526566756e64000000000000000000000000000000000000000000008152506040518060400160405280600781526020017f2457454e52464400000000000000000000000000000000000000000000000000815250816003908162000179919062000be3565b5080600490816200018b919062000be3565b505050620001ae620001a26200051260201b60201c565b6200051a60201b60201c565b6000620001c0620005e060201b60201c565b600a620001ce919062000e2b565b6461c9f36800620001e0919062000e7c565b9050620001f43382620005e960201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000259573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027f919062000f31565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002e7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030d919062000f31565b6040518363ffffffff1660e01b81526004016200032c92919062000f74565b6020604051808303816000875af11580156200034c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000372919062000f31565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060016006600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506064826200049a919062000fd0565b600f81905550620004d5336080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6200072e60201b60201c565b6200050a306080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6200072e60201b60201c565b5050620011e9565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200065b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006529062001069565b60405180910390fd5b80600260008282546200066f919062000938565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200072291906200109c565b60405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620007a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000797906200112f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000812576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200080990620011c7565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051620008f291906200109c565b60405180910390a3505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200094582620008ff565b91506200095283620008ff565b92508282019050808211156200096d576200096c62000909565b5b92915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620009f557607f821691505b60208210810362000a0b5762000a0a620009ad565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000a757fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000a36565b62000a81868362000a36565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000ac462000abe62000ab884620008ff565b62000a99565b620008ff565b9050919050565b6000819050919050565b62000ae08362000aa3565b62000af862000aef8262000acb565b84845462000a43565b825550505050565b600090565b62000b0f62000b00565b62000b1c81848462000ad5565b505050565b5b8181101562000b445762000b3860008262000b05565b60018101905062000b22565b5050565b601f82111562000b935762000b5d8162000a11565b62000b688462000a26565b8101602085101562000b78578190505b62000b9062000b878562000a26565b83018262000b21565b50505b505050565b600082821c905092915050565b600062000bb86000198460080262000b98565b1980831691505092915050565b600062000bd3838362000ba5565b9150826002028217905092915050565b62000bee8262000973565b67ffffffffffffffff81111562000c0a5762000c096200097e565b5b62000c168254620009dc565b62000c2382828562000b48565b600060209050601f83116001811462000c5b576000841562000c46578287015190505b62000c52858262000bc5565b86555062000cc2565b601f19841662000c6b8662000a11565b60005b8281101562000c955784890151825560018201915060208501945060208101905062000c6e565b8683101562000cb5578489015162000cb1601f89168262000ba5565b8355505b6001600288020188555050505b505050505050565b60008160011c9050919050565b6000808291508390505b600185111562000d295780860481111562000d015762000d0062000909565b5b600185161562000d115780820291505b808102905062000d218562000cca565b945062000ce1565b94509492505050565b60008262000d44576001905062000e17565b8162000d54576000905062000e17565b816001811462000d6d576002811462000d785762000dae565b600191505062000e17565b60ff84111562000d8d5762000d8c62000909565b5b8360020a91508482111562000da75762000da662000909565b5b5062000e17565b5060208310610133831016604e8410600b841016171562000de85782820a90508381111562000de25762000de162000909565b5b62000e17565b62000df7848484600162000cd7565b9250905081840481111562000e115762000e1062000909565b5b81810290505b9392505050565b600060ff82169050919050565b600062000e3882620008ff565b915062000e458362000e1e565b925062000e747fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000d32565b905092915050565b600062000e8982620008ff565b915062000e9683620008ff565b925082820262000ea681620008ff565b9150828204841483151762000ec05762000ebf62000909565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000ef98262000ecc565b9050919050565b62000f0b8162000eec565b811462000f1757600080fd5b50565b60008151905062000f2b8162000f00565b92915050565b60006020828403121562000f4a5762000f4962000ec7565b5b600062000f5a8482850162000f1a565b91505092915050565b62000f6e8162000eec565b82525050565b600060408201905062000f8b600083018562000f63565b62000f9a602083018462000f63565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000fdd82620008ff565b915062000fea83620008ff565b92508262000ffd5762000ffc62000fa1565b5b828204905092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062001051601f8362001008565b91506200105e8262001019565b602082019050919050565b60006020820190508181036000830152620010848162001042565b9050919050565b6200109681620008ff565b82525050565b6000602082019050620010b360008301846200108b565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006200111760248362001008565b91506200112482620010b9565b604082019050919050565b600060208201905081810360008301526200114a8162001108565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000620011af60228362001008565b9150620011bc8262001151565b604082019050919050565b60006020820190508181036000830152620011e281620011a0565b9050919050565b60805160a0516133e66200123960003960008181610b8601528181611828015281816118930152611927015260008181610a2e0152818161205c01528181612139015261220701526133e66000f3fe60806040526004361061023f5760003560e01c806370a082311161012e578063a9059cbb116100ab578063d3208b131161006f578063d3208b131461085a578063dd62ed3e14610885578063e6991e2d146108c2578063f2fde38b146108eb578063f476b8a41461091457610246565b8063a9059cbb14610789578063b41150c5146107c6578063c9567bf9146107ef578063ca1dd6d414610806578063ce3b9aa31461083157610246565b8063923ffc14116100f2578063923ffc14146106a457806392f42870146106cd57806395d89b41146106f6578063962dfc7514610721578063a457c2d71461074c57610246565b806370a08231146105cf578063713f9cfd1461060c578063715018a61461063757806382247ec01461064e5780638da5cb5b1461067957610246565b8063313ce567116101bc5780635b28b246116101805780635b28b246146105125780635d0044ca1461053b5780635d098b3814610564578063606208041461058d5780636b996150146105b857610246565b8063313ce5671461042b57806333f82cea14610456578063395093511461048157806349bd5a5e146104be57806349f2c4ae146104e957610246565b806318160ddd1161020357806318160ddd146103325780631f2698ab1461035d5780631f53ac021461038857806323b872dd146103b157806330ccebb5146103ee57610246565b806306fdde031461024b578063095ea7b3146102765780630e7e573f146102b357806311a63e17146102dc5780631694505e1461030757610246565b3661024657005b600080fd5b34801561025757600080fd5b5061026061093f565b60405161026d9190612366565b60405180910390f35b34801561028257600080fd5b5061029d60048036038101906102989190612426565b6109d1565b6040516102aa9190612481565b60405180910390f35b3480156102bf57600080fd5b506102da60048036038101906102d5919061249c565b6109f4565b005b3480156102e857600080fd5b506102f1610a06565b6040516102fe91906124d8565b60405180910390f35b34801561031357600080fd5b5061031c610a2c565b6040516103299190612552565b60405180910390f35b34801561033e57600080fd5b50610347610a50565b604051610354919061257c565b60405180910390f35b34801561036957600080fd5b50610372610a5a565b60405161037f9190612481565b60405180910390f35b34801561039457600080fd5b506103af60048036038101906103aa9190612597565b610a6d565b005b3480156103bd57600080fd5b506103d860048036038101906103d391906125c4565b610ab9565b6040516103e59190612481565b60405180910390f35b3480156103fa57600080fd5b5061041560048036038101906104109190612597565b610ae8565b6040516104229190612481565b60405180910390f35b34801561043757600080fd5b50610440610b3e565b60405161044d9190612633565b60405180910390f35b34801561046257600080fd5b5061046b610b47565b604051610478919061257c565b60405180910390f35b34801561048d57600080fd5b506104a860048036038101906104a39190612426565b610b4d565b6040516104b59190612481565b60405180910390f35b3480156104ca57600080fd5b506104d3610b84565b6040516104e091906124d8565b60405180910390f35b3480156104f557600080fd5b50610510600480360381019061050b91906126b3565b610ba8565b005b34801561051e57600080fd5b506105396004803603810190610534919061273e565b610c55565b005b34801561054757600080fd5b50610562600480360381019061055d919061249c565b610d6e565b005b34801561057057600080fd5b5061058b60048036038101906105869190612597565b610d80565b005b34801561059957600080fd5b506105a2610dcc565b6040516105af919061257c565b60405180910390f35b3480156105c457600080fd5b506105cd610dd2565b005b3480156105db57600080fd5b506105f660048036038101906105f19190612597565b610e23565b604051610603919061257c565b60405180910390f35b34801561061857600080fd5b50610621610e6b565b60405161062e919061257c565b60405180910390f35b34801561064357600080fd5b5061064c610e71565b005b34801561065a57600080fd5b50610663610e85565b604051610670919061257c565b60405180910390f35b34801561068557600080fd5b5061068e610e8b565b60405161069b91906124d8565b60405180910390f35b3480156106b057600080fd5b506106cb60048036038101906106c691906126b3565b610eb5565b005b3480156106d957600080fd5b506106f460048036038101906106ef91906126b3565b610f62565b005b34801561070257600080fd5b5061070b61100f565b6040516107189190612366565b60405180910390f35b34801561072d57600080fd5b506107366110a1565b60405161074391906124d8565b60405180910390f35b34801561075857600080fd5b50610773600480360381019061076e9190612426565b6110c7565b6040516107809190612481565b60405180910390f35b34801561079557600080fd5b506107b060048036038101906107ab9190612426565b61113e565b6040516107bd9190612481565b60405180910390f35b3480156107d257600080fd5b506107ed60048036038101906107e89190612791565b611161565b005b3480156107fb57600080fd5b506108046111a0565b005b34801561081257600080fd5b5061081b6111c5565b604051610828919061257c565b60405180910390f35b34801561083d57600080fd5b50610858600480360381019061085391906126b3565b6111cb565b005b34801561086657600080fd5b5061086f611278565b60405161087c919061257c565b60405180910390f35b34801561089157600080fd5b506108ac60048036038101906108a791906127e4565b61127e565b6040516108b9919061257c565b60405180910390f35b3480156108ce57600080fd5b506108e960048036038101906108e4919061249c565b611305565b005b3480156108f757600080fd5b50610912600480360381019061090d9190612597565b611317565b005b34801561092057600080fd5b5061092961139a565b604051610936919061257c565b60405180910390f35b60606003805461094e90612853565b80601f016020809104026020016040519081016040528092919081815260200182805461097a90612853565b80156109c75780601f1061099c576101008083540402835291602001916109c7565b820191906000526020600020905b8154815290600101906020018083116109aa57829003601f168201915b5050505050905090565b6000806109dc6113a0565b90506109e98185856113a8565b600191505092915050565b6109fc611571565b8060108190555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b601160009054906101000a900460ff1681565b610a75611571565b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080610ac46113a0565b9050610ad18582856115ef565b610adc85858561167b565b60019150509392505050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60006012905090565b600b5481565b600080610b586113a0565b9050610b79818585610b6a858961127e565b610b7491906128b3565b6113a8565b600191505092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b610bb0611571565b60005b82829050811015610c5057600060076000858585818110610bd757610bd66128e7565b5b9050602002016020810190610bec9190612597565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610c4890612916565b915050610bb3565b505050565b610c5d611571565b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c9891906124d8565b602060405180830381865afa158015610cb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd99190612973565b90508373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84838511610d055784610d07565b835b6040518363ffffffff1660e01b8152600401610d249291906129a0565b6020604051808303816000875af1158015610d43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6791906129f5565b5050505050565b610d76611571565b80600f8190555050565b610d88611571565b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60105481565b610dda611571565b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610e20573d6000803e3d6000fd5b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a5481565b610e79611571565b610e836000611a89565b565b600f5481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610ebd611571565b60005b82829050811015610f5d57600060066000858585818110610ee457610ee36128e7565b5b9050602002016020810190610ef99190612597565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f5590612916565b915050610ec0565b505050565b610f6a611571565b60005b8282905081101561100a57600160066000858585818110610f9157610f906128e7565b5b9050602002016020810190610fa69190612597565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061100290612916565b915050610f6d565b505050565b60606004805461101e90612853565b80601f016020809104026020016040519081016040528092919081815260200182805461104a90612853565b80156110975780601f1061106c57610100808354040283529160200191611097565b820191906000526020600020905b81548152906001019060200180831161107a57829003601f168201915b5050505050905090565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806110d26113a0565b905060006110e0828661127e565b905083811015611125576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111c90612a94565b60405180910390fd5b61113282868684036113a8565b60019250505092915050565b6000806111496113a0565b905061115681858561167b565b600191505092915050565b611169611571565b82600d8190555081600c8190555080600b8190555080828461118b91906128b3565b61119591906128b3565b600e81905550505050565b6111a8611571565b6001601160006101000a81548160ff021916908315150217905550565b600e5481565b6111d3611571565b600082829050905060005b81811015611272576001600760008686858181106111ff576111fe6128e7565b5b90506020020160208101906112149190612597565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806001019150506111de565b50505050565b600d5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61130d611571565b80600a8190555050565b61131f611571565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361138e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138590612b26565b60405180910390fd5b61139781611a89565b50565b600c5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611417576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140e90612bb8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611486576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147d90612c4a565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611564919061257c565b60405180910390a3505050565b6115796113a0565b73ffffffffffffffffffffffffffffffffffffffff16611597610e8b565b73ffffffffffffffffffffffffffffffffffffffff16146115ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e490612cb6565b60405180910390fd5b565b60006115fb848461127e565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146116755781811015611667576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165e90612d22565b60405180910390fd5b61167484848484036113a8565b5b50505050565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611708576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ff90612d8e565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117a95750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806117c05750601160019054906101000a900460ff165b156117d5576117d0838383611b4f565b611a84565b601160009054906101000a900460ff16611824576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181b90612dfa565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361192557600061188430610e23565b905060006127106010546118b77f0000000000000000000000000000000000000000000000000000000000000000610e23565b6118c19190612e1a565b6118cb9190612e8b565b9050808210611901578060036118e19190612e1a565b82106118f7578060036118f49190612e1a565b91505b61190082611daf565b5b612710600e54856119129190612e1a565b61191c9190612e8b565b92505050611a57565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036119fd57612710600a54836119899190612e1a565b6119939190612e8b565b9050600f5481836119a386610e23565b6119ad91906128b3565b6119b79190612ebc565b11156119f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ef90612f62565b60405180910390fd5b611a56565b600f5482611a0a85610e23565b611a1491906128b3565b1115611a55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4c90612f62565b60405180910390fd5b5b5b611a6d84848385611a689190612ebc565b611b4f565b6000811115611a8257611a81843083611b4f565b5b505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb590612ff4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2490613086565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611cb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611caa90613118565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611da1919061257c565b60405180910390a350505050565b6001601160016101000a81548160ff0219169083151502179055506000600e54905060008103611ddf5750611f84565b60006002600c54611df09190612e8b565b82611dfb9190612ebc565b90506000828285611e0c9190612e1a565b611e169190612e8b565b9050611e2181611fa2565b6000479050600083600d5483611e379190612e1a565b611e419190612e8b565b9050600084600b5484611e549190612e1a565b611e5e9190612e8b565b90506000600c541115611e9757611e968488611e7a9190612ebc565b828486611e879190612ebc565b611e919190612ebc565b6121ea565b5b6000811115611f0a57600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f08573d6000803e3d6000fd5b505b6000471115611f7d57600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611f7b573d6000803e3d6000fd5b505b5050505050505b6000601160016101000a81548160ff02191690831515021790555050565b6001601160016101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611fda57611fd9613138565b5b6040519080825280602002602001820160405280156120085781602001602082028036833780820191505090505b50905030816000815181106120205761201f6128e7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120e9919061317c565b816001815181106120fd576120fc6128e7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121999594939291906132a2565b600060405180830381600087803b1580156121b357600080fd5b505af11580156121c7573d6000803e3d6000fd5b50505050506000601160016101000a81548160ff02191690831515021790555050565b6001601160016101000a81548160ff0219169083151502179055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061224f610e8b565b426040518863ffffffff1660e01b8152600401612271969594939291906132fc565b60606040518083038185885af115801561228f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906122b4919061335d565b5050506000601160016101000a81548160ff0219169083151502179055505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156123105780820151818401526020810190506122f5565b60008484015250505050565b6000601f19601f8301169050919050565b6000612338826122d6565b61234281856122e1565b93506123528185602086016122f2565b61235b8161231c565b840191505092915050565b60006020820190508181036000830152612380818461232d565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123bd82612392565b9050919050565b6123cd816123b2565b81146123d857600080fd5b50565b6000813590506123ea816123c4565b92915050565b6000819050919050565b612403816123f0565b811461240e57600080fd5b50565b600081359050612420816123fa565b92915050565b6000806040838503121561243d5761243c612388565b5b600061244b858286016123db565b925050602061245c85828601612411565b9150509250929050565b60008115159050919050565b61247b81612466565b82525050565b60006020820190506124966000830184612472565b92915050565b6000602082840312156124b2576124b1612388565b5b60006124c084828501612411565b91505092915050565b6124d2816123b2565b82525050565b60006020820190506124ed60008301846124c9565b92915050565b6000819050919050565b600061251861251361250e84612392565b6124f3565b612392565b9050919050565b600061252a826124fd565b9050919050565b600061253c8261251f565b9050919050565b61254c81612531565b82525050565b60006020820190506125676000830184612543565b92915050565b612576816123f0565b82525050565b6000602082019050612591600083018461256d565b92915050565b6000602082840312156125ad576125ac612388565b5b60006125bb848285016123db565b91505092915050565b6000806000606084860312156125dd576125dc612388565b5b60006125eb868287016123db565b93505060206125fc868287016123db565b925050604061260d86828701612411565b9150509250925092565b600060ff82169050919050565b61262d81612617565b82525050565b60006020820190506126486000830184612624565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126126735761267261264e565b5b8235905067ffffffffffffffff8111156126905761268f612653565b5b6020830191508360208202830111156126ac576126ab612658565b5b9250929050565b600080602083850312156126ca576126c9612388565b5b600083013567ffffffffffffffff8111156126e8576126e761238d565b5b6126f48582860161265d565b92509250509250929050565b600061270b826123b2565b9050919050565b61271b81612700565b811461272657600080fd5b50565b60008135905061273881612712565b92915050565b60008060006060848603121561275757612756612388565b5b600061276586828701612729565b9350506020612776868287016123db565b925050604061278786828701612411565b9150509250925092565b6000806000606084860312156127aa576127a9612388565b5b60006127b886828701612411565b93505060206127c986828701612411565b92505060406127da86828701612411565b9150509250925092565b600080604083850312156127fb576127fa612388565b5b6000612809858286016123db565b925050602061281a858286016123db565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061286b57607f821691505b60208210810361287e5761287d612824565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006128be826123f0565b91506128c9836123f0565b92508282019050808211156128e1576128e0612884565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612921826123f0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361295357612952612884565b5b600182019050919050565b60008151905061296d816123fa565b92915050565b60006020828403121561298957612988612388565b5b60006129978482850161295e565b91505092915050565b60006040820190506129b560008301856124c9565b6129c2602083018461256d565b9392505050565b6129d281612466565b81146129dd57600080fd5b50565b6000815190506129ef816129c9565b92915050565b600060208284031215612a0b57612a0a612388565b5b6000612a19848285016129e0565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612a7e6025836122e1565b9150612a8982612a22565b604082019050919050565b60006020820190508181036000830152612aad81612a71565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612b106026836122e1565b9150612b1b82612ab4565b604082019050919050565b60006020820190508181036000830152612b3f81612b03565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612ba26024836122e1565b9150612bad82612b46565b604082019050919050565b60006020820190508181036000830152612bd181612b95565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c346022836122e1565b9150612c3f82612bd8565b604082019050919050565b60006020820190508181036000830152612c6381612c27565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612ca06020836122e1565b9150612cab82612c6a565b602082019050919050565b60006020820190508181036000830152612ccf81612c93565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000612d0c601d836122e1565b9150612d1782612cd6565b602082019050919050565b60006020820190508181036000830152612d3b81612cff565b9050919050565b7f536e697065722072656a65637465640000000000000000000000000000000000600082015250565b6000612d78600f836122e1565b9150612d8382612d42565b602082019050919050565b60006020820190508181036000830152612da781612d6b565b9050919050565b7f4e6f74206f70656e207965740000000000000000000000000000000000000000600082015250565b6000612de4600c836122e1565b9150612def82612dae565b602082019050919050565b60006020820190508181036000830152612e1381612dd7565b9050919050565b6000612e25826123f0565b9150612e30836123f0565b9250828202612e3e816123f0565b91508282048414831517612e5557612e54612884565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612e96826123f0565b9150612ea1836123f0565b925082612eb157612eb0612e5c565b5b828204905092915050565b6000612ec7826123f0565b9150612ed2836123f0565b9250828203905081811115612eea57612ee9612884565b5b92915050565b7f5472616e7366657220616d6f756e742065786365656473206d61782077616c6c60008201527f6574000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f4c6022836122e1565b9150612f5782612ef0565b604082019050919050565b60006020820190508181036000830152612f7b81612f3f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612fde6025836122e1565b9150612fe982612f82565b604082019050919050565b6000602082019050818103600083015261300d81612fd1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006130706023836122e1565b915061307b82613014565b604082019050919050565b6000602082019050818103600083015261309f81613063565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006131026026836122e1565b915061310d826130a6565b604082019050919050565b60006020820190508181036000830152613131816130f5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050613176816123c4565b92915050565b60006020828403121561319257613191612388565b5b60006131a084828501613167565b91505092915050565b6000819050919050565b60006131ce6131c96131c4846131a9565b6124f3565b6123f0565b9050919050565b6131de816131b3565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613219816123b2565b82525050565b600061322b8383613210565b60208301905092915050565b6000602082019050919050565b600061324f826131e4565b61325981856131ef565b935061326483613200565b8060005b8381101561329557815161327c888261321f565b975061328783613237565b925050600181019050613268565b5085935050505092915050565b600060a0820190506132b7600083018861256d565b6132c460208301876131d5565b81810360408301526132d68186613244565b90506132e560608301856124c9565b6132f2608083018461256d565b9695505050505050565b600060c08201905061331160008301896124c9565b61331e602083018861256d565b61332b60408301876131d5565b61333860608301866131d5565b61334560808301856124c9565b61335260a083018461256d565b979650505050505050565b60008060006060848603121561337657613375612388565b5b60006133848682870161295e565b93505060206133958682870161295e565b92505060406133a68682870161295e565b915050925092509256fea264697066735822122002ca7573b8bdfc1e3ad3cf8584256b299ac0552102c583888a5085a167d48d2c64736f6c63430008130033

Deployed Bytecode

0x60806040526004361061023f5760003560e01c806370a082311161012e578063a9059cbb116100ab578063d3208b131161006f578063d3208b131461085a578063dd62ed3e14610885578063e6991e2d146108c2578063f2fde38b146108eb578063f476b8a41461091457610246565b8063a9059cbb14610789578063b41150c5146107c6578063c9567bf9146107ef578063ca1dd6d414610806578063ce3b9aa31461083157610246565b8063923ffc14116100f2578063923ffc14146106a457806392f42870146106cd57806395d89b41146106f6578063962dfc7514610721578063a457c2d71461074c57610246565b806370a08231146105cf578063713f9cfd1461060c578063715018a61461063757806382247ec01461064e5780638da5cb5b1461067957610246565b8063313ce567116101bc5780635b28b246116101805780635b28b246146105125780635d0044ca1461053b5780635d098b3814610564578063606208041461058d5780636b996150146105b857610246565b8063313ce5671461042b57806333f82cea14610456578063395093511461048157806349bd5a5e146104be57806349f2c4ae146104e957610246565b806318160ddd1161020357806318160ddd146103325780631f2698ab1461035d5780631f53ac021461038857806323b872dd146103b157806330ccebb5146103ee57610246565b806306fdde031461024b578063095ea7b3146102765780630e7e573f146102b357806311a63e17146102dc5780631694505e1461030757610246565b3661024657005b600080fd5b34801561025757600080fd5b5061026061093f565b60405161026d9190612366565b60405180910390f35b34801561028257600080fd5b5061029d60048036038101906102989190612426565b6109d1565b6040516102aa9190612481565b60405180910390f35b3480156102bf57600080fd5b506102da60048036038101906102d5919061249c565b6109f4565b005b3480156102e857600080fd5b506102f1610a06565b6040516102fe91906124d8565b60405180910390f35b34801561031357600080fd5b5061031c610a2c565b6040516103299190612552565b60405180910390f35b34801561033e57600080fd5b50610347610a50565b604051610354919061257c565b60405180910390f35b34801561036957600080fd5b50610372610a5a565b60405161037f9190612481565b60405180910390f35b34801561039457600080fd5b506103af60048036038101906103aa9190612597565b610a6d565b005b3480156103bd57600080fd5b506103d860048036038101906103d391906125c4565b610ab9565b6040516103e59190612481565b60405180910390f35b3480156103fa57600080fd5b5061041560048036038101906104109190612597565b610ae8565b6040516104229190612481565b60405180910390f35b34801561043757600080fd5b50610440610b3e565b60405161044d9190612633565b60405180910390f35b34801561046257600080fd5b5061046b610b47565b604051610478919061257c565b60405180910390f35b34801561048d57600080fd5b506104a860048036038101906104a39190612426565b610b4d565b6040516104b59190612481565b60405180910390f35b3480156104ca57600080fd5b506104d3610b84565b6040516104e091906124d8565b60405180910390f35b3480156104f557600080fd5b50610510600480360381019061050b91906126b3565b610ba8565b005b34801561051e57600080fd5b506105396004803603810190610534919061273e565b610c55565b005b34801561054757600080fd5b50610562600480360381019061055d919061249c565b610d6e565b005b34801561057057600080fd5b5061058b60048036038101906105869190612597565b610d80565b005b34801561059957600080fd5b506105a2610dcc565b6040516105af919061257c565b60405180910390f35b3480156105c457600080fd5b506105cd610dd2565b005b3480156105db57600080fd5b506105f660048036038101906105f19190612597565b610e23565b604051610603919061257c565b60405180910390f35b34801561061857600080fd5b50610621610e6b565b60405161062e919061257c565b60405180910390f35b34801561064357600080fd5b5061064c610e71565b005b34801561065a57600080fd5b50610663610e85565b604051610670919061257c565b60405180910390f35b34801561068557600080fd5b5061068e610e8b565b60405161069b91906124d8565b60405180910390f35b3480156106b057600080fd5b506106cb60048036038101906106c691906126b3565b610eb5565b005b3480156106d957600080fd5b506106f460048036038101906106ef91906126b3565b610f62565b005b34801561070257600080fd5b5061070b61100f565b6040516107189190612366565b60405180910390f35b34801561072d57600080fd5b506107366110a1565b60405161074391906124d8565b60405180910390f35b34801561075857600080fd5b50610773600480360381019061076e9190612426565b6110c7565b6040516107809190612481565b60405180910390f35b34801561079557600080fd5b506107b060048036038101906107ab9190612426565b61113e565b6040516107bd9190612481565b60405180910390f35b3480156107d257600080fd5b506107ed60048036038101906107e89190612791565b611161565b005b3480156107fb57600080fd5b506108046111a0565b005b34801561081257600080fd5b5061081b6111c5565b604051610828919061257c565b60405180910390f35b34801561083d57600080fd5b50610858600480360381019061085391906126b3565b6111cb565b005b34801561086657600080fd5b5061086f611278565b60405161087c919061257c565b60405180910390f35b34801561089157600080fd5b506108ac60048036038101906108a791906127e4565b61127e565b6040516108b9919061257c565b60405180910390f35b3480156108ce57600080fd5b506108e960048036038101906108e4919061249c565b611305565b005b3480156108f757600080fd5b50610912600480360381019061090d9190612597565b611317565b005b34801561092057600080fd5b5061092961139a565b604051610936919061257c565b60405180910390f35b60606003805461094e90612853565b80601f016020809104026020016040519081016040528092919081815260200182805461097a90612853565b80156109c75780601f1061099c576101008083540402835291602001916109c7565b820191906000526020600020905b8154815290600101906020018083116109aa57829003601f168201915b5050505050905090565b6000806109dc6113a0565b90506109e98185856113a8565b600191505092915050565b6109fc611571565b8060108190555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600254905090565b601160009054906101000a900460ff1681565b610a75611571565b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080610ac46113a0565b9050610ad18582856115ef565b610adc85858561167b565b60019150509392505050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60006012905090565b600b5481565b600080610b586113a0565b9050610b79818585610b6a858961127e565b610b7491906128b3565b6113a8565b600191505092915050565b7f000000000000000000000000ffb06593c7eb7382b6e1dda3807c1b5a50bb496781565b610bb0611571565b60005b82829050811015610c5057600060076000858585818110610bd757610bd66128e7565b5b9050602002016020810190610bec9190612597565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610c4890612916565b915050610bb3565b505050565b610c5d611571565b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c9891906124d8565b602060405180830381865afa158015610cb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd99190612973565b90508373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84838511610d055784610d07565b835b6040518363ffffffff1660e01b8152600401610d249291906129a0565b6020604051808303816000875af1158015610d43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6791906129f5565b5050505050565b610d76611571565b80600f8190555050565b610d88611571565b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60105481565b610dda611571565b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610e20573d6000803e3d6000fd5b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a5481565b610e79611571565b610e836000611a89565b565b600f5481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610ebd611571565b60005b82829050811015610f5d57600060066000858585818110610ee457610ee36128e7565b5b9050602002016020810190610ef99190612597565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f5590612916565b915050610ec0565b505050565b610f6a611571565b60005b8282905081101561100a57600160066000858585818110610f9157610f906128e7565b5b9050602002016020810190610fa69190612597565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061100290612916565b915050610f6d565b505050565b60606004805461101e90612853565b80601f016020809104026020016040519081016040528092919081815260200182805461104a90612853565b80156110975780601f1061106c57610100808354040283529160200191611097565b820191906000526020600020905b81548152906001019060200180831161107a57829003601f168201915b5050505050905090565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806110d26113a0565b905060006110e0828661127e565b905083811015611125576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111c90612a94565b60405180910390fd5b61113282868684036113a8565b60019250505092915050565b6000806111496113a0565b905061115681858561167b565b600191505092915050565b611169611571565b82600d8190555081600c8190555080600b8190555080828461118b91906128b3565b61119591906128b3565b600e81905550505050565b6111a8611571565b6001601160006101000a81548160ff021916908315150217905550565b600e5481565b6111d3611571565b600082829050905060005b81811015611272576001600760008686858181106111ff576111fe6128e7565b5b90506020020160208101906112149190612597565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806001019150506111de565b50505050565b600d5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61130d611571565b80600a8190555050565b61131f611571565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361138e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138590612b26565b60405180910390fd5b61139781611a89565b50565b600c5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611417576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140e90612bb8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611486576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147d90612c4a565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611564919061257c565b60405180910390a3505050565b6115796113a0565b73ffffffffffffffffffffffffffffffffffffffff16611597610e8b565b73ffffffffffffffffffffffffffffffffffffffff16146115ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e490612cb6565b60405180910390fd5b565b60006115fb848461127e565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146116755781811015611667576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165e90612d22565b60405180910390fd5b61167484848484036113a8565b5b50505050565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611708576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ff90612d8e565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117a95750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806117c05750601160019054906101000a900460ff165b156117d5576117d0838383611b4f565b611a84565b601160009054906101000a900460ff16611824576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181b90612dfa565b60405180910390fd5b60007f000000000000000000000000ffb06593c7eb7382b6e1dda3807c1b5a50bb496773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361192557600061188430610e23565b905060006127106010546118b77f000000000000000000000000ffb06593c7eb7382b6e1dda3807c1b5a50bb4967610e23565b6118c19190612e1a565b6118cb9190612e8b565b9050808210611901578060036118e19190612e1a565b82106118f7578060036118f49190612e1a565b91505b61190082611daf565b5b612710600e54856119129190612e1a565b61191c9190612e8b565b92505050611a57565b7f000000000000000000000000ffb06593c7eb7382b6e1dda3807c1b5a50bb496773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036119fd57612710600a54836119899190612e1a565b6119939190612e8b565b9050600f5481836119a386610e23565b6119ad91906128b3565b6119b79190612ebc565b11156119f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ef90612f62565b60405180910390fd5b611a56565b600f5482611a0a85610e23565b611a1491906128b3565b1115611a55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4c90612f62565b60405180910390fd5b5b5b611a6d84848385611a689190612ebc565b611b4f565b6000811115611a8257611a81843083611b4f565b5b505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb590612ff4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2490613086565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611cb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611caa90613118565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611da1919061257c565b60405180910390a350505050565b6001601160016101000a81548160ff0219169083151502179055506000600e54905060008103611ddf5750611f84565b60006002600c54611df09190612e8b565b82611dfb9190612ebc565b90506000828285611e0c9190612e1a565b611e169190612e8b565b9050611e2181611fa2565b6000479050600083600d5483611e379190612e1a565b611e419190612e8b565b9050600084600b5484611e549190612e1a565b611e5e9190612e8b565b90506000600c541115611e9757611e968488611e7a9190612ebc565b828486611e879190612ebc565b611e919190612ebc565b6121ea565b5b6000811115611f0a57600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f08573d6000803e3d6000fd5b505b6000471115611f7d57600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611f7b573d6000803e3d6000fd5b505b5050505050505b6000601160016101000a81548160ff02191690831515021790555050565b6001601160016101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611fda57611fd9613138565b5b6040519080825280602002602001820160405280156120085781602001602082028036833780820191505090505b50905030816000815181106120205761201f6128e7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120e9919061317c565b816001815181106120fd576120fc6128e7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121999594939291906132a2565b600060405180830381600087803b1580156121b357600080fd5b505af11580156121c7573d6000803e3d6000fd5b50505050506000601160016101000a81548160ff02191690831515021790555050565b6001601160016101000a81548160ff0219169083151502179055507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061224f610e8b565b426040518863ffffffff1660e01b8152600401612271969594939291906132fc565b60606040518083038185885af115801561228f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906122b4919061335d565b5050506000601160016101000a81548160ff0219169083151502179055505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156123105780820151818401526020810190506122f5565b60008484015250505050565b6000601f19601f8301169050919050565b6000612338826122d6565b61234281856122e1565b93506123528185602086016122f2565b61235b8161231c565b840191505092915050565b60006020820190508181036000830152612380818461232d565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123bd82612392565b9050919050565b6123cd816123b2565b81146123d857600080fd5b50565b6000813590506123ea816123c4565b92915050565b6000819050919050565b612403816123f0565b811461240e57600080fd5b50565b600081359050612420816123fa565b92915050565b6000806040838503121561243d5761243c612388565b5b600061244b858286016123db565b925050602061245c85828601612411565b9150509250929050565b60008115159050919050565b61247b81612466565b82525050565b60006020820190506124966000830184612472565b92915050565b6000602082840312156124b2576124b1612388565b5b60006124c084828501612411565b91505092915050565b6124d2816123b2565b82525050565b60006020820190506124ed60008301846124c9565b92915050565b6000819050919050565b600061251861251361250e84612392565b6124f3565b612392565b9050919050565b600061252a826124fd565b9050919050565b600061253c8261251f565b9050919050565b61254c81612531565b82525050565b60006020820190506125676000830184612543565b92915050565b612576816123f0565b82525050565b6000602082019050612591600083018461256d565b92915050565b6000602082840312156125ad576125ac612388565b5b60006125bb848285016123db565b91505092915050565b6000806000606084860312156125dd576125dc612388565b5b60006125eb868287016123db565b93505060206125fc868287016123db565b925050604061260d86828701612411565b9150509250925092565b600060ff82169050919050565b61262d81612617565b82525050565b60006020820190506126486000830184612624565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126126735761267261264e565b5b8235905067ffffffffffffffff8111156126905761268f612653565b5b6020830191508360208202830111156126ac576126ab612658565b5b9250929050565b600080602083850312156126ca576126c9612388565b5b600083013567ffffffffffffffff8111156126e8576126e761238d565b5b6126f48582860161265d565b92509250509250929050565b600061270b826123b2565b9050919050565b61271b81612700565b811461272657600080fd5b50565b60008135905061273881612712565b92915050565b60008060006060848603121561275757612756612388565b5b600061276586828701612729565b9350506020612776868287016123db565b925050604061278786828701612411565b9150509250925092565b6000806000606084860312156127aa576127a9612388565b5b60006127b886828701612411565b93505060206127c986828701612411565b92505060406127da86828701612411565b9150509250925092565b600080604083850312156127fb576127fa612388565b5b6000612809858286016123db565b925050602061281a858286016123db565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061286b57607f821691505b60208210810361287e5761287d612824565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006128be826123f0565b91506128c9836123f0565b92508282019050808211156128e1576128e0612884565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612921826123f0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361295357612952612884565b5b600182019050919050565b60008151905061296d816123fa565b92915050565b60006020828403121561298957612988612388565b5b60006129978482850161295e565b91505092915050565b60006040820190506129b560008301856124c9565b6129c2602083018461256d565b9392505050565b6129d281612466565b81146129dd57600080fd5b50565b6000815190506129ef816129c9565b92915050565b600060208284031215612a0b57612a0a612388565b5b6000612a19848285016129e0565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612a7e6025836122e1565b9150612a8982612a22565b604082019050919050565b60006020820190508181036000830152612aad81612a71565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612b106026836122e1565b9150612b1b82612ab4565b604082019050919050565b60006020820190508181036000830152612b3f81612b03565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612ba26024836122e1565b9150612bad82612b46565b604082019050919050565b60006020820190508181036000830152612bd181612b95565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c346022836122e1565b9150612c3f82612bd8565b604082019050919050565b60006020820190508181036000830152612c6381612c27565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612ca06020836122e1565b9150612cab82612c6a565b602082019050919050565b60006020820190508181036000830152612ccf81612c93565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000612d0c601d836122e1565b9150612d1782612cd6565b602082019050919050565b60006020820190508181036000830152612d3b81612cff565b9050919050565b7f536e697065722072656a65637465640000000000000000000000000000000000600082015250565b6000612d78600f836122e1565b9150612d8382612d42565b602082019050919050565b60006020820190508181036000830152612da781612d6b565b9050919050565b7f4e6f74206f70656e207965740000000000000000000000000000000000000000600082015250565b6000612de4600c836122e1565b9150612def82612dae565b602082019050919050565b60006020820190508181036000830152612e1381612dd7565b9050919050565b6000612e25826123f0565b9150612e30836123f0565b9250828202612e3e816123f0565b91508282048414831517612e5557612e54612884565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612e96826123f0565b9150612ea1836123f0565b925082612eb157612eb0612e5c565b5b828204905092915050565b6000612ec7826123f0565b9150612ed2836123f0565b9250828203905081811115612eea57612ee9612884565b5b92915050565b7f5472616e7366657220616d6f756e742065786365656473206d61782077616c6c60008201527f6574000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f4c6022836122e1565b9150612f5782612ef0565b604082019050919050565b60006020820190508181036000830152612f7b81612f3f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612fde6025836122e1565b9150612fe982612f82565b604082019050919050565b6000602082019050818103600083015261300d81612fd1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006130706023836122e1565b915061307b82613014565b604082019050919050565b6000602082019050818103600083015261309f81613063565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006131026026836122e1565b915061310d826130a6565b604082019050919050565b60006020820190508181036000830152613131816130f5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050613176816123c4565b92915050565b60006020828403121561319257613191612388565b5b60006131a084828501613167565b91505092915050565b6000819050919050565b60006131ce6131c96131c4846131a9565b6124f3565b6123f0565b9050919050565b6131de816131b3565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613219816123b2565b82525050565b600061322b8383613210565b60208301905092915050565b6000602082019050919050565b600061324f826131e4565b61325981856131ef565b935061326483613200565b8060005b8381101561329557815161327c888261321f565b975061328783613237565b925050600181019050613268565b5085935050505092915050565b600060a0820190506132b7600083018861256d565b6132c460208301876131d5565b81810360408301526132d68186613244565b90506132e560608301856124c9565b6132f2608083018461256d565b9695505050505050565b600060c08201905061331160008301896124c9565b61331e602083018861256d565b61332b60408301876131d5565b61333860608301866131d5565b61334560808301856124c9565b61335260a083018461256d565b979650505050505050565b60008060006060848603121561337657613375612388565b5b60006133848682870161295e565b93505060206133958682870161295e565b92505060406133a68682870161295e565b915050925092509256fea264697066735822122002ca7573b8bdfc1e3ad3cf8584256b299ac0552102c583888a5085a167d48d2c64736f6c63430008130033

Deployed Bytecode Sourcemap

16025:7434:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7044:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9244:228;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21883:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16256:70;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16628:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8149:110;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16734:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21653:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10052:297;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21551:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7991:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16373:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11761:265;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16684:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17791:190;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23100:319;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22867:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21762:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16574:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22980:112;;;;;;;;;;;;;:::i;:::-;;7209:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16335:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5499:103;;;;;;;;;;;;;:::i;:::-;;16542:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4851:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22240:227;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22004:228;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6868:106;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16173:76;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10852:500;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8704:220;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22578:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17708:75;;;;;;;;;;;;;:::i;:::-;;16475:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17989:271;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16441:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8322:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22475:95;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5757:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16408:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7044:102;7100:13;7133:5;7126:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7044:102;:::o;9244:228::-;9354:4;9371:13;9387:12;:10;:12::i;:::-;9371:28;;9410:32;9419:5;9426:7;9435:6;9410:8;:32::i;:::-;9460:4;9453:11;;;9244:228;;;;:::o;21883:113::-;4737:13;:11;:13::i;:::-;21980:8:::1;21953:24;:35;;;;21883:113:::0;:::o;16256:70::-;;;;;;;;;;;;;:::o;16628:49::-;;;:::o;8149:110::-;8212:7;8239:12;;8232:19;;8149:110;:::o;16734:19::-;;;;;;;;;;;;;:::o;21653:101::-;4737:13;:11;:13::i;:::-;21737:9:::1;21724:10;;:22;;;;;;;;;;;;;;;;;;21653:101:::0;:::o;10052:297::-;10185:4;10202:15;10220:12;:10;:12::i;:::-;10202:30;;10243:38;10259:4;10265:7;10274:6;10243:15;:38::i;:::-;10292:27;10302:4;10308:2;10312:6;10292:9;:27::i;:::-;10337:4;10330:11;;;10052:297;;;;;:::o;21551:94::-;21603:4;21627:7;:10;21635:1;21627:10;;;;;;;;;;;;;;;;;;;;;;;;;21620:17;;21551:94;;;:::o;7991:93::-;8049:5;8074:2;8067:9;;7991:93;:::o;16373:28::-;;;;:::o;11761:265::-;11876:4;11893:13;11909:12;:10;:12::i;:::-;11893:28;;11932:64;11941:5;11948:7;11985:10;11957:25;11967:5;11974:7;11957:9;:25::i;:::-;:38;;;;:::i;:::-;11932:8;:64::i;:::-;12014:4;12007:11;;;11761:265;;;;:::o;16684:38::-;;;:::o;17791:190::-;4737:13;:11;:13::i;:::-;17878:9:::1;17873:101;17897:8;;:15;;17893:1;:19;17873:101;;;17957:5;17934:7;:20;17942:8;;17951:1;17942:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17934:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;17914:3;;;;;:::i;:::-;;;;17873:101;;;;17791:190:::0;;:::o;23100:319::-;4737:13;:11;:13::i;:::-;23245:11:::1;23259:12;:22;;;23290:4;23259:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23245:51;;23314:12;23307:29;;;23351:13;23385:3;23379;:9;:21;;23397:3;23379:21;;;23391:3;23379:21;23307:104;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23234:185;23100:319:::0;;;:::o;22867:105::-;4737:13;:11;:13::i;:::-;22953:11:::1;22940:10;:24;;;;22867:105:::0;:::o;21762:113::-;4737:13;:11;:13::i;:::-;21858:9:::1;21839:16;;:28;;;;;;;;;;;;;;;;;;21762:113:::0;:::o;16574:45::-;;;;:::o;22980:112::-;4737:13;:11;:13::i;:::-;23041:10:::1;23033:28;;:51;23062:21;23033:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;22980:112::o:0;7209:143::-;7299:7;7326:9;:18;7336:7;7326:18;;;;;;;;;;;;;;;;7319:25;;7209:143;;;:::o;16335:29::-;;;;:::o;5499:103::-;4737:13;:11;:13::i;:::-;5564:30:::1;5591:1;5564:18;:30::i;:::-;5499:103::o:0;16542:25::-;;;;:::o;4851:87::-;4897:7;4924:6;;;;;;;;;;;4917:13;;4851:87;:::o;22240:227::-;4737:13;:11;:13::i;:::-;22351:9:::1;22346:114;22370:9;;:16;;22366:1;:20;22346:114;;;22443:5;22408:18;:32;22427:9;;22437:1;22427:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;22408:32;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;22388:3;;;;;:::i;:::-;;;;22346:114;;;;22240:227:::0;;:::o;22004:228::-;4737:13;:11;:13::i;:::-;22117:9:::1;22112:113;22136:9;;:16;;22132:1;:20;22112:113;;;22209:4;22174:18;:32;22193:9;;22203:1;22193:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;22174:32;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;22154:3;;;;;:::i;:::-;;;;22112:113;;;;22004:228:::0;;:::o;6868:106::-;6926:13;6959:7;6952:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6868:106;:::o;16173:76::-;;;;;;;;;;;;;:::o;10852:500::-;10972:4;10989:13;11005:12;:10;:12::i;:::-;10989:28;;11028:24;11055:25;11065:5;11072:7;11055:9;:25::i;:::-;11028:52;;11133:15;11113:16;:35;;11091:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;11249:60;11258:5;11265:7;11293:15;11274:16;:34;11249:8;:60::i;:::-;11340:4;11333:11;;;;10852:500;;;;:::o;8704:220::-;8810:4;8827:13;8843:12;:10;:12::i;:::-;8827:28;;8866;8876:5;8883:2;8887:6;8866:9;:28::i;:::-;8912:4;8905:11;;;8704:220;;;;:::o;22578:281::-;4737:13;:11;:13::i;:::-;22729:9:::1;22718:8;:20;;;;22759:8;22749:7;:18;;;;22787:7;22778:6;:16;;;;22844:7;22833:8;22821:9;:20;;;;:::i;:::-;:30;;;;:::i;:::-;22805:13;:46;;;;22578:281:::0;;;:::o;17708:75::-;4737:13;:11;:13::i;:::-;17771:4:::1;17761:7;;:14;;;;;;;;;;;;;;;;;;17708:75::o:0;16475:58::-;;;;:::o;17989:271::-;4737:13;:11;:13::i;:::-;18068:11:::1;18082:8;;:15;;18068:29;;18112:9;18108:145;18131:3;18127:1;:7;18108:145;;;18175:4;18152:7;:20;18160:8;;18169:1;18160:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18152:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;18223:3;;;;;;;18108:145;;;;18057:203;17989:271:::0;;:::o;16441:27::-;;;;:::o;8322:176::-;8436:7;8463:11;:18;8475:5;8463:18;;;;;;;;;;;;;;;:27;8482:7;8463:27;;;;;;;;;;;;;;;;8456:34;;8322:176;;;;:::o;22475:95::-;4737:13;:11;:13::i;:::-;22554:8:::1;22544:7;:18;;;;22475:95:::0;:::o;5757:238::-;4737:13;:11;:13::i;:::-;5880:1:::1;5860:22;;:8;:22;;::::0;5838:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;5959:28;5978:8;5959:18;:28::i;:::-;5757:238:::0;:::o;16408:26::-;;;;:::o;4151:98::-;4204:7;4231:10;4224:17;;4151:98;:::o;14061:380::-;14214:1;14197:19;;:5;:19;;;14189:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14295:1;14276:21;;:7;:21;;;14268:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14379:6;14349:11;:18;14361:5;14349:18;;;;;;;;;;;;;;;:27;14368:7;14349:27;;;;;;;;;;;;;;;:36;;;;14417:7;14401:32;;14410:5;14401:32;;;14426:6;14401:32;;;;;;:::i;:::-;;;;;;;;14061:380;;;:::o;5016:132::-;5091:12;:10;:12::i;:::-;5080:23;;:7;:5;:7::i;:::-;:23;;;5072:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5016:132::o;14732:502::-;14867:24;14894:25;14904:5;14911:7;14894:9;:25::i;:::-;14867:52;;14954:17;14934:16;:37;14930:297;;15034:6;15014:16;:26;;14988:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;15149:51;15158:5;15165:7;15193:6;15174:16;:25;15149:8;:51::i;:::-;14930:297;14856:378;14732:502;;;:::o;18268:1585::-;18401:7;:13;18409:4;18401:13;;;;;;;;;;;;;;;;;;;;;;;;;18400:14;18392:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;18463:18;:24;18482:4;18463:24;;;;;;;;;;;;;;;;;;;;;;;;;:63;;;;18504:18;:22;18523:2;18504:22;;;;;;;;;;;;;;;;;;;;;;;;;18463:63;:96;;;;18543:16;;;;;;;;;;;18463:96;18445:1401;;;18586:33;18602:4;18608:2;18612:6;18586:15;:33::i;:::-;18445:1401;;;18660:7;;;;;;;;;;;18652:32;;;;;;;;;;;;:::i;:::-;;;;;;;;;18699:14;18738:13;18732:19;;:2;:19;;;18728:932;;18772:11;18786:24;18804:4;18786:9;:24::i;:::-;18772:38;;18829:17;18903:5;18876:24;;18849;18859:13;18849:9;:24::i;:::-;:51;;;;:::i;:::-;:59;;;;:::i;:::-;18829:79;;18960:9;18953:3;:16;18927:193;;19027:9;19023:1;:13;;;;:::i;:::-;19016:3;:20;19012:45;;19048:9;19044:1;:13;;;;:::i;:::-;19038:19;;19012:45;19080:20;19096:3;19080:15;:20::i;:::-;18927:193;19175:5;19159:13;;19150:6;:22;;;;:::i;:::-;:30;;;;:::i;:::-;19138:42;;18753:443;;18728:932;;;19214:13;19206:21;;:4;:21;;;19202:458;;19279:5;19269:7;;19260:6;:16;;;;:::i;:::-;:24;;;;:::i;:::-;19248:36;;19371:10;;19358:9;19349:6;19333:13;19343:2;19333:9;:13::i;:::-;:22;;;;:::i;:::-;:34;;;;:::i;:::-;:48;;19303:156;;;;;;;;;;;;:::i;:::-;;;;;;;;;19202:458;;;19556:10;;19546:6;19530:13;19540:2;19530:9;:13::i;:::-;:22;;;;:::i;:::-;:36;;19500:144;;;;;;;;;;;;:::i;:::-;;;;;;;;;19202:458;18728:932;19674:45;19690:4;19696:2;19709:9;19700:6;:18;;;;:::i;:::-;19674:15;:45::i;:::-;19750:1;19738:9;:13;19734:101;;;19772:47;19788:4;19802;19809:9;19772:15;:47::i;:::-;19734:101;18637:1209;18445:1401;18268:1585;;;:::o;6155:191::-;6229:16;6248:6;;;;;;;;;;;6229:25;;6274:8;6265:6;;:17;;;;;;;;;;;;;;;;;;6329:8;6298:40;;6319:8;6298:40;;;;;;;;;;;;6218:128;6155:191;:::o;15242:776::-;15389:1;15373:18;;:4;:18;;;15365:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15466:1;15452:16;;:2;:16;;;15444:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15521:19;15543:9;:15;15553:4;15543:15;;;;;;;;;;;;;;;;15521:37;;15606:6;15591:11;:21;;15569:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;15746:6;15732:11;:20;15714:9;:15;15724:4;15714:15;;;;;;;;;;;;;;;:38;;;;15949:6;15932:9;:13;15942:2;15932:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;15999:2;15984:26;;15993:4;15984:26;;;16003:6;15984:26;;;;;;:::i;:::-;;;;;;;;15354:664;15242:776;;;:::o;19861:928::-;16843:4;16824:16;;:23;;;;;;;;;;;;;;;;;;19947:22:::1;19972:13;;19947:38;;20018:1;20000:14;:19:::0;19996:32:::1;;20021:7;;;19996:32;20038:16;20084:1;20074:7;;:11;;;;:::i;:::-;20057:14;:28;;;;:::i;:::-;20038:47;;20096:14;20147;20136:8;20113:20;:31;;;;:::i;:::-;:48;;;;:::i;:::-;20096:65;;20174:25;20192:6;20174:17;:25::i;:::-;20210:15;20228:21;20210:39;;20262:13;20299:8;20288;;20278:7;:18;;;;:::i;:::-;:29;;;;:::i;:::-;20262:45;;20318:19;20359:8;20350:6;;20340:7;:16;;;;:::i;:::-;:27;;;;:::i;:::-;20318:49;;20402:1;20392:7;;:11;20388:168;;;20420:124;20475:6;20452:20;:29;;;;:::i;:::-;20518:11;20510:5;20500:7;:15;;;;:::i;:::-;:29;;;;:::i;:::-;20420:13;:124::i;:::-;20388:168;20584:1;20570:11;:15;20566:95;;;20610:16;;;;;;;;;;;20602:34;;:47;20637:11;20602:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;20566:95;20701:1;20677:21;:25;20673:109;;;20727:10;;;;;;;;;;;20719:28;;:51;20748:21;20719:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;20673:109;19936:853;;;;;;16858:1;16889:5:::0;16870:16;;:24;;;;;;;;;;;;;;;;;;19861:928;:::o;20797:413::-;16843:4;16824:16;;:23;;;;;;;;;;;;;;;;;;20876:21:::1;20914:1;20900:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20876:40;;20945:4;20927;20932:1;20927:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;20971:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20961:4;20966:1;20961:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;21004:15;:66;;;21085:11;21111:1;21127:4;21154;21175:15;21004:198;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;20865:345;16889:5:::0;16870:16;;:24;;;;;;;;;;;;;;;;;;20797:413;:::o;21218:325::-;16843:4;16824:16;;:23;;;;;;;;;;;;;;;;;;21337:15:::1;:31;;;21376:9;21409:4;21429:11;21455:1;21471::::0;21487:7:::1;:5;:7::i;:::-;21509:15;21337:198;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16889:5:::0;16870:16;;:24;;;;;;;;;;;;;;;;;;21218:325;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:60::-;4161:3;4182:5;4175:12;;4133:60;;;:::o;4199:142::-;4249:9;4282:53;4300:34;4309:24;4327:5;4309:24;:::i;:::-;4300:34;:::i;:::-;4282:53;:::i;:::-;4269:66;;4199:142;;;:::o;4347:126::-;4397:9;4430:37;4461:5;4430:37;:::i;:::-;4417:50;;4347:126;;;:::o;4479:150::-;4553:9;4586:37;4617:5;4586:37;:::i;:::-;4573:50;;4479:150;;;:::o;4635:179::-;4746:61;4801:5;4746:61;:::i;:::-;4741:3;4734:74;4635:179;;:::o;4820:270::-;4937:4;4975:2;4964:9;4960:18;4952:26;;4988:95;5080:1;5069:9;5065:17;5056:6;4988:95;:::i;:::-;4820:270;;;;:::o;5096:118::-;5183:24;5201:5;5183:24;:::i;:::-;5178:3;5171:37;5096:118;;:::o;5220:222::-;5313:4;5351:2;5340:9;5336:18;5328:26;;5364:71;5432:1;5421:9;5417:17;5408:6;5364:71;:::i;:::-;5220:222;;;;:::o;5448:329::-;5507:6;5556:2;5544:9;5535:7;5531:23;5527:32;5524:119;;;5562:79;;:::i;:::-;5524:119;5682:1;5707:53;5752:7;5743:6;5732:9;5728:22;5707:53;:::i;:::-;5697:63;;5653:117;5448:329;;;;:::o;5783:619::-;5860:6;5868;5876;5925:2;5913:9;5904:7;5900:23;5896:32;5893:119;;;5931:79;;:::i;:::-;5893:119;6051:1;6076:53;6121:7;6112:6;6101:9;6097:22;6076:53;:::i;:::-;6066:63;;6022:117;6178:2;6204:53;6249:7;6240:6;6229:9;6225:22;6204:53;:::i;:::-;6194:63;;6149:118;6306:2;6332:53;6377:7;6368:6;6357:9;6353:22;6332:53;:::i;:::-;6322:63;;6277:118;5783:619;;;;;:::o;6408:86::-;6443:7;6483:4;6476:5;6472:16;6461:27;;6408:86;;;:::o;6500:112::-;6583:22;6599:5;6583:22;:::i;:::-;6578:3;6571:35;6500:112;;:::o;6618:214::-;6707:4;6745:2;6734:9;6730:18;6722:26;;6758:67;6822:1;6811:9;6807:17;6798:6;6758:67;:::i;:::-;6618:214;;;;:::o;6838:117::-;6947:1;6944;6937:12;6961:117;7070:1;7067;7060:12;7084:117;7193:1;7190;7183:12;7224:568;7297:8;7307:6;7357:3;7350:4;7342:6;7338:17;7334:27;7324:122;;7365:79;;:::i;:::-;7324:122;7478:6;7465:20;7455:30;;7508:18;7500:6;7497:30;7494:117;;;7530:79;;:::i;:::-;7494:117;7644:4;7636:6;7632:17;7620:29;;7698:3;7690:4;7682:6;7678:17;7668:8;7664:32;7661:41;7658:128;;;7705:79;;:::i;:::-;7658:128;7224:568;;;;;:::o;7798:559::-;7884:6;7892;7941:2;7929:9;7920:7;7916:23;7912:32;7909:119;;;7947:79;;:::i;:::-;7909:119;8095:1;8084:9;8080:17;8067:31;8125:18;8117:6;8114:30;8111:117;;;8147:79;;:::i;:::-;8111:117;8260:80;8332:7;8323:6;8312:9;8308:22;8260:80;:::i;:::-;8242:98;;;;8038:312;7798:559;;;;;:::o;8363:109::-;8413:7;8442:24;8460:5;8442:24;:::i;:::-;8431:35;;8363:109;;;:::o;8478:148::-;8564:37;8595:5;8564:37;:::i;:::-;8557:5;8554:48;8544:76;;8616:1;8613;8606:12;8544:76;8478:148;:::o;8632:165::-;8691:5;8729:6;8716:20;8707:29;;8745:46;8785:5;8745:46;:::i;:::-;8632:165;;;;:::o;8803:645::-;8893:6;8901;8909;8958:2;8946:9;8937:7;8933:23;8929:32;8926:119;;;8964:79;;:::i;:::-;8926:119;9084:1;9109:66;9167:7;9158:6;9147:9;9143:22;9109:66;:::i;:::-;9099:76;;9055:130;9224:2;9250:53;9295:7;9286:6;9275:9;9271:22;9250:53;:::i;:::-;9240:63;;9195:118;9352:2;9378:53;9423:7;9414:6;9403:9;9399:22;9378:53;:::i;:::-;9368:63;;9323:118;8803:645;;;;;:::o;9454:619::-;9531:6;9539;9547;9596:2;9584:9;9575:7;9571:23;9567:32;9564:119;;;9602:79;;:::i;:::-;9564:119;9722:1;9747:53;9792:7;9783:6;9772:9;9768:22;9747:53;:::i;:::-;9737:63;;9693:117;9849:2;9875:53;9920:7;9911:6;9900:9;9896:22;9875:53;:::i;:::-;9865:63;;9820:118;9977:2;10003:53;10048:7;10039:6;10028:9;10024:22;10003:53;:::i;:::-;9993:63;;9948:118;9454:619;;;;;:::o;10079:474::-;10147:6;10155;10204:2;10192:9;10183:7;10179:23;10175:32;10172:119;;;10210:79;;:::i;:::-;10172:119;10330:1;10355:53;10400:7;10391:6;10380:9;10376:22;10355:53;:::i;:::-;10345:63;;10301:117;10457:2;10483:53;10528:7;10519:6;10508:9;10504:22;10483:53;:::i;:::-;10473:63;;10428:118;10079:474;;;;;:::o;10559:180::-;10607:77;10604:1;10597:88;10704:4;10701:1;10694:15;10728:4;10725:1;10718:15;10745:320;10789:6;10826:1;10820:4;10816:12;10806:22;;10873:1;10867:4;10863:12;10894:18;10884:81;;10950:4;10942:6;10938:17;10928:27;;10884:81;11012:2;11004:6;11001:14;10981:18;10978:38;10975:84;;11031:18;;:::i;:::-;10975:84;10796:269;10745:320;;;:::o;11071:180::-;11119:77;11116:1;11109:88;11216:4;11213:1;11206:15;11240:4;11237:1;11230:15;11257:191;11297:3;11316:20;11334:1;11316:20;:::i;:::-;11311:25;;11350:20;11368:1;11350:20;:::i;:::-;11345:25;;11393:1;11390;11386:9;11379:16;;11414:3;11411:1;11408:10;11405:36;;;11421:18;;:::i;:::-;11405:36;11257:191;;;;:::o;11454:180::-;11502:77;11499:1;11492:88;11599:4;11596:1;11589:15;11623:4;11620:1;11613:15;11640:233;11679:3;11702:24;11720:5;11702:24;:::i;:::-;11693:33;;11748:66;11741:5;11738:77;11735:103;;11818:18;;:::i;:::-;11735:103;11865:1;11858:5;11854:13;11847:20;;11640:233;;;:::o;11879:143::-;11936:5;11967:6;11961:13;11952:22;;11983:33;12010:5;11983:33;:::i;:::-;11879:143;;;;:::o;12028:351::-;12098:6;12147:2;12135:9;12126:7;12122:23;12118:32;12115:119;;;12153:79;;:::i;:::-;12115:119;12273:1;12298:64;12354:7;12345:6;12334:9;12330:22;12298:64;:::i;:::-;12288:74;;12244:128;12028:351;;;;:::o;12385:332::-;12506:4;12544:2;12533:9;12529:18;12521:26;;12557:71;12625:1;12614:9;12610:17;12601:6;12557:71;:::i;:::-;12638:72;12706:2;12695:9;12691:18;12682:6;12638:72;:::i;:::-;12385:332;;;;;:::o;12723:116::-;12793:21;12808:5;12793:21;:::i;:::-;12786:5;12783:32;12773:60;;12829:1;12826;12819:12;12773:60;12723:116;:::o;12845:137::-;12899:5;12930:6;12924:13;12915:22;;12946:30;12970:5;12946:30;:::i;:::-;12845:137;;;;:::o;12988:345::-;13055:6;13104:2;13092:9;13083:7;13079:23;13075:32;13072:119;;;13110:79;;:::i;:::-;13072:119;13230:1;13255:61;13308:7;13299:6;13288:9;13284:22;13255:61;:::i;:::-;13245:71;;13201:125;12988:345;;;;:::o;13339:224::-;13479:34;13475:1;13467:6;13463:14;13456:58;13548:7;13543:2;13535:6;13531:15;13524:32;13339:224;:::o;13569:366::-;13711:3;13732:67;13796:2;13791:3;13732:67;:::i;:::-;13725:74;;13808:93;13897:3;13808:93;:::i;:::-;13926:2;13921:3;13917:12;13910:19;;13569:366;;;:::o;13941:419::-;14107:4;14145:2;14134:9;14130:18;14122:26;;14194:9;14188:4;14184:20;14180:1;14169:9;14165:17;14158:47;14222:131;14348:4;14222:131;:::i;:::-;14214:139;;13941:419;;;:::o;14366:225::-;14506:34;14502:1;14494:6;14490:14;14483:58;14575:8;14570:2;14562:6;14558:15;14551:33;14366:225;:::o;14597:366::-;14739:3;14760:67;14824:2;14819:3;14760:67;:::i;:::-;14753:74;;14836:93;14925:3;14836:93;:::i;:::-;14954:2;14949:3;14945:12;14938:19;;14597:366;;;:::o;14969:419::-;15135:4;15173:2;15162:9;15158:18;15150:26;;15222:9;15216:4;15212:20;15208:1;15197:9;15193:17;15186:47;15250:131;15376:4;15250:131;:::i;:::-;15242:139;;14969:419;;;:::o;15394:223::-;15534:34;15530:1;15522:6;15518:14;15511:58;15603:6;15598:2;15590:6;15586:15;15579:31;15394:223;:::o;15623:366::-;15765:3;15786:67;15850:2;15845:3;15786:67;:::i;:::-;15779:74;;15862:93;15951:3;15862:93;:::i;:::-;15980:2;15975:3;15971:12;15964:19;;15623:366;;;:::o;15995:419::-;16161:4;16199:2;16188:9;16184:18;16176:26;;16248:9;16242:4;16238:20;16234:1;16223:9;16219:17;16212:47;16276:131;16402:4;16276:131;:::i;:::-;16268:139;;15995:419;;;:::o;16420:221::-;16560:34;16556:1;16548:6;16544:14;16537:58;16629:4;16624:2;16616:6;16612:15;16605:29;16420:221;:::o;16647:366::-;16789:3;16810:67;16874:2;16869:3;16810:67;:::i;:::-;16803:74;;16886:93;16975:3;16886:93;:::i;:::-;17004:2;16999:3;16995:12;16988:19;;16647:366;;;:::o;17019:419::-;17185:4;17223:2;17212:9;17208:18;17200:26;;17272:9;17266:4;17262:20;17258:1;17247:9;17243:17;17236:47;17300:131;17426:4;17300:131;:::i;:::-;17292:139;;17019:419;;;:::o;17444:182::-;17584:34;17580:1;17572:6;17568:14;17561:58;17444:182;:::o;17632:366::-;17774:3;17795:67;17859:2;17854:3;17795:67;:::i;:::-;17788:74;;17871:93;17960:3;17871:93;:::i;:::-;17989:2;17984:3;17980:12;17973:19;;17632:366;;;:::o;18004:419::-;18170:4;18208:2;18197:9;18193:18;18185:26;;18257:9;18251:4;18247:20;18243:1;18232:9;18228:17;18221:47;18285:131;18411:4;18285:131;:::i;:::-;18277:139;;18004:419;;;:::o;18429:179::-;18569:31;18565:1;18557:6;18553:14;18546:55;18429:179;:::o;18614:366::-;18756:3;18777:67;18841:2;18836:3;18777:67;:::i;:::-;18770:74;;18853:93;18942:3;18853:93;:::i;:::-;18971:2;18966:3;18962:12;18955:19;;18614:366;;;:::o;18986:419::-;19152:4;19190:2;19179:9;19175:18;19167:26;;19239:9;19233:4;19229:20;19225:1;19214:9;19210:17;19203:47;19267:131;19393:4;19267:131;:::i;:::-;19259:139;;18986:419;;;:::o;19411:165::-;19551:17;19547:1;19539:6;19535:14;19528:41;19411:165;:::o;19582:366::-;19724:3;19745:67;19809:2;19804:3;19745:67;:::i;:::-;19738:74;;19821:93;19910:3;19821:93;:::i;:::-;19939:2;19934:3;19930:12;19923:19;;19582:366;;;:::o;19954:419::-;20120:4;20158:2;20147:9;20143:18;20135:26;;20207:9;20201:4;20197:20;20193:1;20182:9;20178:17;20171:47;20235:131;20361:4;20235:131;:::i;:::-;20227:139;;19954:419;;;:::o;20379:162::-;20519:14;20515:1;20507:6;20503:14;20496:38;20379:162;:::o;20547:366::-;20689:3;20710:67;20774:2;20769:3;20710:67;:::i;:::-;20703:74;;20786:93;20875:3;20786:93;:::i;:::-;20904:2;20899:3;20895:12;20888:19;;20547:366;;;:::o;20919:419::-;21085:4;21123:2;21112:9;21108:18;21100:26;;21172:9;21166:4;21162:20;21158:1;21147:9;21143:17;21136:47;21200:131;21326:4;21200:131;:::i;:::-;21192:139;;20919:419;;;:::o;21344:410::-;21384:7;21407:20;21425:1;21407:20;:::i;:::-;21402:25;;21441:20;21459:1;21441:20;:::i;:::-;21436:25;;21496:1;21493;21489:9;21518:30;21536:11;21518:30;:::i;:::-;21507:41;;21697:1;21688:7;21684:15;21681:1;21678:22;21658:1;21651:9;21631:83;21608:139;;21727:18;;:::i;:::-;21608:139;21392:362;21344:410;;;;:::o;21760:180::-;21808:77;21805:1;21798:88;21905:4;21902:1;21895:15;21929:4;21926:1;21919:15;21946:185;21986:1;22003:20;22021:1;22003:20;:::i;:::-;21998:25;;22037:20;22055:1;22037:20;:::i;:::-;22032:25;;22076:1;22066:35;;22081:18;;:::i;:::-;22066:35;22123:1;22120;22116:9;22111:14;;21946:185;;;;:::o;22137:194::-;22177:4;22197:20;22215:1;22197:20;:::i;:::-;22192:25;;22231:20;22249:1;22231:20;:::i;:::-;22226:25;;22275:1;22272;22268:9;22260:17;;22299:1;22293:4;22290:11;22287:37;;;22304:18;;:::i;:::-;22287:37;22137:194;;;;:::o;22337:221::-;22477:34;22473:1;22465:6;22461:14;22454:58;22546:4;22541:2;22533:6;22529:15;22522:29;22337:221;:::o;22564:366::-;22706:3;22727:67;22791:2;22786:3;22727:67;:::i;:::-;22720:74;;22803:93;22892:3;22803:93;:::i;:::-;22921:2;22916:3;22912:12;22905:19;;22564:366;;;:::o;22936:419::-;23102:4;23140:2;23129:9;23125:18;23117:26;;23189:9;23183:4;23179:20;23175:1;23164:9;23160:17;23153:47;23217:131;23343:4;23217:131;:::i;:::-;23209:139;;22936:419;;;:::o;23361:224::-;23501:34;23497:1;23489:6;23485:14;23478:58;23570:7;23565:2;23557:6;23553:15;23546:32;23361:224;:::o;23591:366::-;23733:3;23754:67;23818:2;23813:3;23754:67;:::i;:::-;23747:74;;23830:93;23919:3;23830:93;:::i;:::-;23948:2;23943:3;23939:12;23932:19;;23591:366;;;:::o;23963:419::-;24129:4;24167:2;24156:9;24152:18;24144:26;;24216:9;24210:4;24206:20;24202:1;24191:9;24187:17;24180:47;24244:131;24370:4;24244:131;:::i;:::-;24236:139;;23963:419;;;:::o;24388:222::-;24528:34;24524:1;24516:6;24512:14;24505:58;24597:5;24592:2;24584:6;24580:15;24573:30;24388:222;:::o;24616:366::-;24758:3;24779:67;24843:2;24838:3;24779:67;:::i;:::-;24772:74;;24855:93;24944:3;24855:93;:::i;:::-;24973:2;24968:3;24964:12;24957:19;;24616:366;;;:::o;24988:419::-;25154:4;25192:2;25181:9;25177:18;25169:26;;25241:9;25235:4;25231:20;25227:1;25216:9;25212:17;25205:47;25269:131;25395:4;25269:131;:::i;:::-;25261:139;;24988:419;;;:::o;25413:225::-;25553:34;25549:1;25541:6;25537:14;25530:58;25622:8;25617:2;25609:6;25605:15;25598:33;25413:225;:::o;25644:366::-;25786:3;25807:67;25871:2;25866:3;25807:67;:::i;:::-;25800:74;;25883:93;25972:3;25883:93;:::i;:::-;26001:2;25996:3;25992:12;25985:19;;25644:366;;;:::o;26016:419::-;26182:4;26220:2;26209:9;26205:18;26197:26;;26269:9;26263:4;26259:20;26255:1;26244:9;26240:17;26233:47;26297:131;26423:4;26297:131;:::i;:::-;26289:139;;26016:419;;;:::o;26441:180::-;26489:77;26486:1;26479:88;26586:4;26583:1;26576:15;26610:4;26607:1;26600:15;26627:143;26684:5;26715:6;26709:13;26700:22;;26731:33;26758:5;26731:33;:::i;:::-;26627:143;;;;:::o;26776:351::-;26846:6;26895:2;26883:9;26874:7;26870:23;26866:32;26863:119;;;26901:79;;:::i;:::-;26863:119;27021:1;27046:64;27102:7;27093:6;27082:9;27078:22;27046:64;:::i;:::-;27036:74;;26992:128;26776:351;;;;:::o;27133:85::-;27178:7;27207:5;27196:16;;27133:85;;;:::o;27224:158::-;27282:9;27315:61;27333:42;27342:32;27368:5;27342:32;:::i;:::-;27333:42;:::i;:::-;27315:61;:::i;:::-;27302:74;;27224:158;;;:::o;27388:147::-;27483:45;27522:5;27483:45;:::i;:::-;27478:3;27471:58;27388:147;;:::o;27541:114::-;27608:6;27642:5;27636:12;27626:22;;27541:114;;;:::o;27661:184::-;27760:11;27794:6;27789:3;27782:19;27834:4;27829:3;27825:14;27810:29;;27661:184;;;;:::o;27851:132::-;27918:4;27941:3;27933:11;;27971:4;27966:3;27962:14;27954:22;;27851:132;;;:::o;27989:108::-;28066:24;28084:5;28066:24;:::i;:::-;28061:3;28054:37;27989:108;;:::o;28103:179::-;28172:10;28193:46;28235:3;28227:6;28193:46;:::i;:::-;28271:4;28266:3;28262:14;28248:28;;28103:179;;;;:::o;28288:113::-;28358:4;28390;28385:3;28381:14;28373:22;;28288:113;;;:::o;28437:732::-;28556:3;28585:54;28633:5;28585:54;:::i;:::-;28655:86;28734:6;28729:3;28655:86;:::i;:::-;28648:93;;28765:56;28815:5;28765:56;:::i;:::-;28844:7;28875:1;28860:284;28885:6;28882:1;28879:13;28860:284;;;28961:6;28955:13;28988:63;29047:3;29032:13;28988:63;:::i;:::-;28981:70;;29074:60;29127:6;29074:60;:::i;:::-;29064:70;;28920:224;28907:1;28904;28900:9;28895:14;;28860:284;;;28864:14;29160:3;29153:10;;28561:608;;;28437:732;;;;:::o;29175:831::-;29438:4;29476:3;29465:9;29461:19;29453:27;;29490:71;29558:1;29547:9;29543:17;29534:6;29490:71;:::i;:::-;29571:80;29647:2;29636:9;29632:18;29623:6;29571:80;:::i;:::-;29698:9;29692:4;29688:20;29683:2;29672:9;29668:18;29661:48;29726:108;29829:4;29820:6;29726:108;:::i;:::-;29718:116;;29844:72;29912:2;29901:9;29897:18;29888:6;29844:72;:::i;:::-;29926:73;29994:3;29983:9;29979:19;29970:6;29926:73;:::i;:::-;29175:831;;;;;;;;:::o;30012:807::-;30261:4;30299:3;30288:9;30284:19;30276:27;;30313:71;30381:1;30370:9;30366:17;30357:6;30313:71;:::i;:::-;30394:72;30462:2;30451:9;30447:18;30438:6;30394:72;:::i;:::-;30476:80;30552:2;30541:9;30537:18;30528:6;30476:80;:::i;:::-;30566;30642:2;30631:9;30627:18;30618:6;30566:80;:::i;:::-;30656:73;30724:3;30713:9;30709:19;30700:6;30656:73;:::i;:::-;30739;30807:3;30796:9;30792:19;30783:6;30739:73;:::i;:::-;30012:807;;;;;;;;;:::o;30825:663::-;30913:6;30921;30929;30978:2;30966:9;30957:7;30953:23;30949:32;30946:119;;;30984:79;;:::i;:::-;30946:119;31104:1;31129:64;31185:7;31176:6;31165:9;31161:22;31129:64;:::i;:::-;31119:74;;31075:128;31242:2;31268:64;31324:7;31315:6;31304:9;31300:22;31268:64;:::i;:::-;31258:74;;31213:129;31381:2;31407:64;31463:7;31454:6;31443:9;31439:22;31407:64;:::i;:::-;31397:74;;31352:129;30825:663;;;;;:::o

Swarm Source

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