ETH Price: $3,097.18 (+0.93%)
Gas: 7 Gwei

Token

APG (APG)
 

Overview

Max Total Supply

10,000,000 APG

Holders

16

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
190,000 APG

Value
$0.00
0x77783fc8bbfcd3edd605488fa8a7b572e4bb45a5
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:
APG

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-09-29
*/

//SPDX-License-Identifier: UNLICENSED

pragma solidity ^0.8.8;

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

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

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

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

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

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

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

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

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

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

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

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

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

contract BEP20 is Context, IBEP20, IBEP20Metadata {
    mapping(address => uint256) internal _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The defaut value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5,05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {BEP20} 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
     * {IBEP20-balanceOf} and {IBEP20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IBEP20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

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

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

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

    /**
     * @dev See {IBEP20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev See {IBEP20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {BEP20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

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

        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IBEP20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue)
        public
        virtual
        returns (bool)
    {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IBEP20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        virtual
        returns (bool)
    {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "BEP20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "BEP20: transfer from the zero address");
        require(recipient != address(0), "BEP20: transfer to the zero address");

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

        emit Transfer(sender, recipient, amount);
    }

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

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

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

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

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

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

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

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

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

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

    function WETH() external pure returns (address);

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

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

contract APG is BEP20, Ownable {
    using Address for address payable;

    IRouter public router;
    address public pair;

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

    uint256 public tokenLiquidityThreshold = 10000 * 10**18;

    uint256 public genesis_block;
    uint256 private deadline = 0;
    uint256 private launchtax = 11;
    uint256 public maxWalletLimit = 200000 * 10**18;
    uint256 public maxBuyLimit = 200000 * 10**18;
    uint256 public maxSellLimit = 200000 * 10**18;

    address public marketingWallet =0x18f9820B6f092BfC3Ae8bE678B8ADBE7A33af514;
    address public constant deadWallet = 0x000000000000000000000000000000000000dEaD;
    address public constant zeroWallet = 0x0000000000000000000000000000000000000000;


    struct Taxes {
        uint256 marketing;
        uint256 liquidity;
    }

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

    mapping(address => bool) public exemptFee;

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


    constructor() BEP20("APG", "APG") {
        _tokengeneration(msg.sender, 10000000 * 10**decimals());
        exemptFee[msg.sender] = true;

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

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

    }


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


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

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

        return true;
    }

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

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

        return true;
    }

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

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

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

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

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

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

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

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

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

        fee = (amount * feesum) / 100;

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

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

        }
    }

    function Liquify(uint256 feeswap, Taxes memory swapTaxes) private lockTheSwap {

        if(feeswap == 0){
            return;
        }

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

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

            uint256 initialBalance = address(this).balance;

            swapTokensForETH(toSwap);

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

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

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

        }
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        // generate the pancake pair path of token -> weth

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

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

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

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

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

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

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

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

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

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

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

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

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

    function getCirculatingSupply() public view returns (uint256) {
        return (totalSupply() - balanceOf(deadWallet) - balanceOf(zeroWallet));
    }

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

    function rescueBNB(uint256 weiAmount) external onlyOwner {
        payable(owner()).transfer(weiAmount);
    }

    function rescueBSC20(address tokenAdd, uint256 amount) external onlyOwner {
        require(tokenAdd != address(this), "Owner can't claim contract's balance of its own tokens");
        IBEP20(tokenAdd).transfer(owner(), amount);
    }

    // fallbacks
    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"EnableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"SetSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exemptFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"genesis_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"providingLiquidity","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueBNB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueBSC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenLiquidityThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"updateLiquidityProvide","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"updateLiquidityTreshhold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxBuy","type":"uint256"},{"internalType":"uint256","name":"maxSell","type":"uint256"},{"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"updateMaxTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadline","type":"uint256"}],"name":"updatedeadline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"zeroWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000600760146101000a81548160ff0219169083151502179055506000600760156101000a81548160ff0219169083151502179055506000600760166101000a81548160ff02191690831515021790555069021e19e0c9bab24000006008556000600a55600b8055692a5a058fc295ed000000600c55692a5a058fc295ed000000600d55692a5a058fc295ed000000600e557318f9820b6f092bfc3ae8be678b8adbe7a33af514600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604051806040016040528060058152602001600081525060106000820151816000015560208201518160010155505060405180604001604052806005815260200160008152506012600082015181600001556020820151816001015550503480156200015657600080fd5b506040518060400160405280600381526020017f41504700000000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f41504700000000000000000000000000000000000000000000000000000000008152508160039081620001d4919062000a79565b508060049081620001e6919062000a79565b50505062000209620001fd620005d860201b60201c565b620005e060201b60201c565b62000248336200021e620006a660201b60201c565b600a6200022c919062000cf0565b629896806200023c919062000d41565b620006af60201b60201c565b6001601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000307573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032d919062000df6565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000395573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003bb919062000df6565b6040518363ffffffff1660e01b8152600401620003da92919062000e39565b6020604051808303816000875af1158015620003fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000420919062000df6565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160146000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016014600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505062000f78565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000721576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007189062000eed565b60405180910390fd5b806002600082825462000735919062000f0f565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200078c919062000f0f565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620007f3919062000f5b565b60405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200088157607f821691505b60208210810362000897576200089662000839565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620009017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620008c2565b6200090d8683620008c2565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200095a620009546200094e8462000925565b6200092f565b62000925565b9050919050565b6000819050919050565b620009768362000939565b6200098e620009858262000961565b848454620008cf565b825550505050565b600090565b620009a562000996565b620009b28184846200096b565b505050565b5b81811015620009da57620009ce6000826200099b565b600181019050620009b8565b5050565b601f82111562000a2957620009f3816200089d565b620009fe84620008b2565b8101602085101562000a0e578190505b62000a2662000a1d85620008b2565b830182620009b7565b50505b505050565b600082821c905092915050565b600062000a4e6000198460080262000a2e565b1980831691505092915050565b600062000a69838362000a3b565b9150826002028217905092915050565b62000a8482620007ff565b67ffffffffffffffff81111562000aa05762000a9f6200080a565b5b62000aac825462000868565b62000ab9828285620009de565b600060209050601f83116001811462000af1576000841562000adc578287015190505b62000ae8858262000a5b565b86555062000b58565b601f19841662000b01866200089d565b60005b8281101562000b2b5784890151825560018201915060208501945060208101905062000b04565b8683101562000b4b578489015162000b47601f89168262000a3b565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000bee5780860481111562000bc65762000bc562000b60565b5b600185161562000bd65780820291505b808102905062000be68562000b8f565b945062000ba6565b94509492505050565b60008262000c09576001905062000cdc565b8162000c19576000905062000cdc565b816001811462000c32576002811462000c3d5762000c73565b600191505062000cdc565b60ff84111562000c525762000c5162000b60565b5b8360020a91508482111562000c6c5762000c6b62000b60565b5b5062000cdc565b5060208310610133831016604e8410600b841016171562000cad5782820a90508381111562000ca75762000ca662000b60565b5b62000cdc565b62000cbc848484600162000b9c565b9250905081840481111562000cd65762000cd562000b60565b5b81810290505b9392505050565b600060ff82169050919050565b600062000cfd8262000925565b915062000d0a8362000ce3565b925062000d397fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000bf7565b905092915050565b600062000d4e8262000925565b915062000d5b8362000925565b925082820262000d6b8162000925565b9150828204841483151762000d855762000d8462000b60565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000dbe8262000d91565b9050919050565b62000dd08162000db1565b811462000ddc57600080fd5b50565b60008151905062000df08162000dc5565b92915050565b60006020828403121562000e0f5762000e0e62000d8c565b5b600062000e1f8482850162000ddf565b91505092915050565b62000e338162000db1565b82525050565b600060408201905062000e50600083018562000e28565b62000e5f602083018462000e28565b9392505050565b600082825260208201905092915050565b7f45524332303a2067656e65726174696f6e20746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600062000ed560258362000e66565b915062000ee28262000e77565b604082019050919050565b6000602082019050818103600083015262000f088162000ec6565b9050919050565b600062000f1c8262000925565b915062000f298362000925565b925082820190508082111562000f445762000f4362000b60565b5b92915050565b62000f558162000925565b82525050565b600060208201905062000f72600083018462000f4a565b92915050565b614b558062000f886000396000f3fe60806040526004361061024a5760003560e01c8063715018a611610139578063aacebbe3116100b6578063edaa11681161007a578063edaa116814610890578063f2fde38b146108b9578063f52be97c146108e2578063f66895a31461090b578063f887ea4014610937578063fbe6324e1461096257610251565b8063aacebbe31461079b578063c5d32bb2146107c4578063c9300ed514610801578063dd62ed3e1461082a578063e1b450ad1461086757610251565b80638da5cb5b116100fd5780638da5cb5b146106a057806395d89b41146106cb578063a457c2d7146106f6578063a8aa1b3114610733578063a9059cbb1461075e57610251565b8063715018a6146105dc578063728f8eea146105f357806375f0a8741461061f57806385141a771461064a5780638a33e8811461067557610251565b8063313ce567116101c75780634ada218b1161018b5780634ada218b146104f3578063652e2f041461051e57806366a88d96146105495780636aa5b37f1461057457806370a082311461059f57610251565b8063313ce56714610410578063355496ca1461043b578063395093511461046457806342b6fa11146104a1578063441b1d30146104ca57610251565b806318160ddd1161020e57806318160ddd1461033b5780631d97b7cd1461036657806323b872dd1461037d578063274a533c146103ba5780632b112e49146103e557610251565b806306fdde0314610256578063095ea7b3146102815780630e375a5c146102be5780631340538f146102e75780631675d8021461031057610251565b3661025157005b600080fd5b34801561026257600080fd5b5061026b61098d565b60405161027891906130b3565b60405180910390f35b34801561028d57600080fd5b506102a860048036038101906102a3919061317d565b610a1f565b6040516102b591906131d8565b60405180910390f35b3480156102ca57600080fd5b506102e560048036038101906102e09190613367565b610a3d565b005b3480156102f357600080fd5b5061030e600480360381019061030991906133c3565b610b4e565b005b34801561031c57600080fd5b50610325610be7565b60405161033291906133ff565b60405180910390f35b34801561034757600080fd5b50610350610bed565b60405161035d91906133ff565b60405180910390f35b34801561037257600080fd5b5061037b610bf7565b005b34801561038957600080fd5b506103a4600480360381019061039f919061341a565b610d02565b6040516103b191906131d8565b60405180910390f35b3480156103c657600080fd5b506103cf610e03565b6040516103dc91906133ff565b60405180910390f35b3480156103f157600080fd5b506103fa610e09565b60405161040791906133ff565b60405180910390f35b34801561041c57600080fd5b50610425610e41565b6040516104329190613489565b60405180910390f35b34801561044757600080fd5b50610462600480360381019061045d91906134a4565b610e4a565b005b34801561047057600080fd5b5061048b6004803603810190610486919061317d565b610f21565b60405161049891906131d8565b60405180910390f35b3480156104ad57600080fd5b506104c860048036038101906104c391906134e4565b610fcd565b005b3480156104d657600080fd5b506104f160048036038101906104ec91906134e4565b6110b7565b005b3480156104ff57600080fd5b50610508611184565b60405161051591906131d8565b60405180910390f35b34801561052a57600080fd5b50610533611197565b60405161054091906133ff565b60405180910390f35b34801561055557600080fd5b5061055e61119d565b60405161056b91906133ff565b60405180910390f35b34801561058057600080fd5b506105896111a3565b60405161059691906133ff565b60405180910390f35b3480156105ab57600080fd5b506105c660048036038101906105c19190613511565b6111a9565b6040516105d391906133ff565b60405180910390f35b3480156105e857600080fd5b506105f16111f1565b005b3480156105ff57600080fd5b50610608611279565b60405161061692919061353e565b60405180910390f35b34801561062b57600080fd5b5061063461128b565b6040516106419190613576565b60405180910390f35b34801561065657600080fd5b5061065f6112b1565b60405161066c9190613576565b60405180910390f35b34801561068157600080fd5b5061068a6112b7565b6040516106979190613576565b60405180910390f35b3480156106ac57600080fd5b506106b56112bc565b6040516106c29190613576565b60405180910390f35b3480156106d757600080fd5b506106e06112e6565b6040516106ed91906130b3565b60405180910390f35b34801561070257600080fd5b5061071d6004803603810190610718919061317d565b611378565b60405161072a91906131d8565b60405180910390f35b34801561073f57600080fd5b5061074861146c565b6040516107559190613576565b60405180910390f35b34801561076a57600080fd5b506107856004803603810190610780919061317d565b611492565b60405161079291906131d8565b60405180910390f35b3480156107a757600080fd5b506107c260048036038101906107bd9190613511565b6114a9565b005b3480156107d057600080fd5b506107eb60048036038101906107e69190613511565b6115d8565b6040516107f891906131d8565b60405180910390f35b34801561080d57600080fd5b506108286004803603810190610823919061317d565b6115f8565b005b34801561083657600080fd5b50610851600480360381019061084c9190613591565b61176c565b60405161085e91906133ff565b60405180910390f35b34801561087357600080fd5b5061088e600480360381019061088991906135d1565b6117f3565b005b34801561089c57600080fd5b506108b760048036038101906108b291906134e4565b6119b5565b005b3480156108c557600080fd5b506108e060048036038101906108db9190613511565b611ace565b005b3480156108ee57600080fd5b5061090960048036038101906109049190613624565b611bc5565b005b34801561091757600080fd5b50610920611cc2565b60405161092e92919061353e565b60405180910390f35b34801561094357600080fd5b5061094c611cd4565b60405161095991906136c3565b60405180910390f35b34801561096e57600080fd5b50610977611cfa565b60405161098491906131d8565b60405180910390f35b60606003805461099c9061370d565b80601f01602080910402602001604051908101604052809291908181526020018280546109c89061370d565b8015610a155780601f106109ea57610100808354040283529160200191610a15565b820191906000526020600020905b8154815290600101906020018083116109f857829003601f168201915b5050505050905090565b6000610a33610a2c611d0d565b8484611d15565b6001905092915050565b610a45611d0d565b73ffffffffffffffffffffffffffffffffffffffff16610a636112bc565b73ffffffffffffffffffffffffffffffffffffffff1614610ab9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab09061378a565b60405180910390fd5b60005b8251811015610b49578160146000858481518110610add57610adc6137aa565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610b4190613808565b915050610abc565b505050565b610b56611d0d565b73ffffffffffffffffffffffffffffffffffffffff16610b746112bc565b73ffffffffffffffffffffffffffffffffffffffff1614610bca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc19061378a565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b60085481565b6000600254905090565b610bff611d0d565b73ffffffffffffffffffffffffffffffffffffffff16610c1d6112bc565b73ffffffffffffffffffffffffffffffffffffffff1614610c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6a9061378a565b60405180910390fd5b600760169054906101000a900460ff1615610cc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cba9061389c565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff02191690831515021790555043600981905550565b6000610d0f848484611ede565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d5a611d0d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610dda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd19061392e565b60405180910390fd5b610df785610de6611d0d565b8584610df2919061394e565b611d15565b60019150509392505050565b60095481565b6000610e1560006111a9565b610e2061dead6111a9565b610e28610bed565b610e32919061394e565b610e3c919061394e565b905090565b60006012905090565b610e52611d0d565b73ffffffffffffffffffffffffffffffffffffffff16610e706112bc565b73ffffffffffffffffffffffffffffffffffffffff1614610ec6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebd9061378a565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000610fc3610f2e611d0d565b848460016000610f3c611d0d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fbe9190613982565b611d15565b6001905092915050565b610fd5611d0d565b73ffffffffffffffffffffffffffffffffffffffff16610ff36112bc565b73ffffffffffffffffffffffffffffffffffffffff1614611049576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110409061378a565b60405180910390fd5b620186a081111561108f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108690613a28565b60405180910390fd5b611097610e41565b600a6110a39190613b7b565b816110ae9190613bc6565b60088190555050565b6110bf611d0d565b73ffffffffffffffffffffffffffffffffffffffff166110dd6112bc565b73ffffffffffffffffffffffffffffffffffffffff1614611133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112a9061378a565b60405180910390fd5b61113b6112bc565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611180573d6000803e3d6000fd5b5050565b600760169054906101000a900460ff1681565b600e5481565b600c5481565b600d5481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111f9611d0d565b73ffffffffffffffffffffffffffffffffffffffff166112176112bc565b73ffffffffffffffffffffffffffffffffffffffff161461126d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112649061378a565b60405180910390fd5b6112776000612711565b565b60108060000154908060010154905082565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61dead81565b600081565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546112f59061370d565b80601f01602080910402602001604051908101604052809291908181526020018280546113219061370d565b801561136e5780601f106113435761010080835404028352916020019161136e565b820191906000526020600020905b81548152906001019060200180831161135157829003601f168201915b5050505050905090565b60008060016000611387611d0d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611444576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143b90613c7a565b60405180910390fd5b61146161144f611d0d565b85858461145c919061394e565b611d15565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061149f338484611ede565b6001905092915050565b6114b1611d0d565b73ffffffffffffffffffffffffffffffffffffffff166114cf6112bc565b73ffffffffffffffffffffffffffffffffffffffff1614611525576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151c9061378a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611594576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158b90613d0c565b60405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60146020528060005260406000206000915054906101000a900460ff1681565b611600611d0d565b73ffffffffffffffffffffffffffffffffffffffff1661161e6112bc565b73ffffffffffffffffffffffffffffffffffffffff1614611674576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166b9061378a565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d990613d9e565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6117066112bc565b836040518363ffffffff1660e01b8152600401611724929190613dbe565b6020604051808303816000875af1158015611743573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117679190613dfc565b505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6117fb611d0d565b73ffffffffffffffffffffffffffffffffffffffff166118196112bc565b73ffffffffffffffffffffffffffffffffffffffff161461186f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118669061378a565b60405180910390fd5b620bdb288310156118b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ac90613e9b565b60405180910390fd5b620bdb288210156118fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f290613f2d565b60405180910390fd5b62768f90811015611941576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193890613fbf565b60405180910390fd5b611949610e41565b600a6119559190613b7b565b836119609190613bc6565b600d8190555061196e610e41565b600a61197a9190613b7b565b826119859190613bc6565b600e81905550611993610e41565b600a61199f9190613b7b565b816119aa9190613bc6565b600c81905550505050565b6119bd611d0d565b73ffffffffffffffffffffffffffffffffffffffff166119db6112bc565b73ffffffffffffffffffffffffffffffffffffffff1614611a31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a289061378a565b60405180910390fd5b600760169054906101000a900460ff1615611a81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7890614051565b60405180910390fd5b60058110611ac4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611abb906140e3565b60405180910390fd5b80600a8190555050565b611ad6611d0d565b73ffffffffffffffffffffffffffffffffffffffff16611af46112bc565b73ffffffffffffffffffffffffffffffffffffffff1614611b4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b419061378a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611bb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb090614175565b60405180910390fd5b611bc281612711565b50565b611bcd611d0d565b73ffffffffffffffffffffffffffffffffffffffff16611beb6112bc565b73ffffffffffffffffffffffffffffffffffffffff1614611c41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c389061378a565b60405180910390fd5b6040518060400160405280838152602001828152506012600082015181600001556020820151816001015590505060098183611c7d9190613982565b1115611cbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb5906141e1565b60405180910390fd5b5050565b60128060000154908060010154905082565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760159054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7b90614273565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611df3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dea90614305565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ed191906133ff565b60405180910390a3505050565b60008111611f21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1890614397565b60405180910390fd5b601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611fc55750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561201a57600760169054906101000a900460ff16612019576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201090614403565b60405180910390fd5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156120c15750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120da5750600760149054906101000a900460ff16155b1561217d57600d54811115612124576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211b9061446f565b60405180910390fd5b600c5481612131846111a9565b61213b9190613982565b111561217c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612173906144db565b60405180910390fd5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156122255750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561227b5750601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156122945750600760149054906101000a900460ff16155b1561238d57600e548111156122de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d590614547565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461238c57600c5481612340846111a9565b61234a9190613982565b111561238b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612382906144db565b60405180910390fd5b5b5b600080600061239a613009565b6000601460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156124405750601460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561245a5750600a546009546124579190613982565b43105b9050600760149054906101000a900460ff16806124c05750601460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806125145750601460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156125225760009250612621565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614801561257d575080155b156125c5576012600001546012600101546125989190613982565b94508493506012604051806040016040529081600082015481526020016001820154815250509150612620565b8061260d576010600001546010600101546125e09190613982565b9450849350601060405180604001604052908160008201548152602001600182015481525050915061261f565b801561261e57600b549450600b5493505b5b5b5b6064848761262f9190613bc6565b6126399190614596565b9250600760159054906101000a900460ff1680156126a55750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b156126b5576126b485836127d7565b5b6126cb888885896126c6919061394e565b61297b565b6000831115612707576000851115612706576000606486886126ed9190613bc6565b6126f79190614596565b905061270489308361297b565b505b5b5050505050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff16612977576001600760146101000a81548160ff021916908315150217905550600082031561295b57600061281a306111a9565b9050600854811061295957600160085411156128365760085490505b60006002846128459190613bc6565b905060008184602001518461285a9190613bc6565b6128649190614596565b905060008184612874919061394e565b9050600047905061288482612bed565b60008147612892919061394e565b905060008760200151866128a6919061394e565b826128b19190614596565b905060008860200151826128c59190613bc6565b905060008111156128db576128da8682612e30565b5b600089600001516002846128ef9190613bc6565b6128f99190613bc6565b905060008111156129505761294f81600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612f1590919063ffffffff16565b5b50505050505050505b505b6000600760146101000a81548160ff0219169083151502179055505b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036129ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129e190614639565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a50906146cb565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612adf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ad69061475d565b60405180910390fd5b8181612aeb919061394e565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612b7b9190613982565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612bdf91906133ff565b60405180910390a350505050565b6000600267ffffffffffffffff811115612c0a57612c096131f8565b5b604051908082528060200260200182016040528015612c385781602001602082028036833780820191505090505b5090503081600081518110612c5057612c4f6137aa565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612cf7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d1b9190614792565b81600181518110612d2f57612d2e6137aa565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612d9630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d15565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612dfa9594939291906148b8565b600060405180830381600087803b158015612e1457600080fd5b505af1158015612e28573d6000803e3d6000fd5b505050505050565b612e5d30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d15565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080612ea96112bc565b426040518863ffffffff1660e01b8152600401612ecb96959493929190614912565b60606040518083038185885af1158015612ee9573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612f0e9190614988565b5050505050565b80471015612f58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f4f90614a27565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612f7e90614a78565b60006040518083038185875af1925050503d8060008114612fbb576040519150601f19603f3d011682016040523d82523d6000602084013e612fc0565b606091505b5050905080613004576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ffb90614aff565b60405180910390fd5b505050565b604051806040016040528060008152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b8381101561305d578082015181840152602081019050613042565b60008484015250505050565b6000601f19601f8301169050919050565b600061308582613023565b61308f818561302e565b935061309f81856020860161303f565b6130a881613069565b840191505092915050565b600060208201905081810360008301526130cd818461307a565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613114826130e9565b9050919050565b61312481613109565b811461312f57600080fd5b50565b6000813590506131418161311b565b92915050565b6000819050919050565b61315a81613147565b811461316557600080fd5b50565b60008135905061317781613151565b92915050565b60008060408385031215613194576131936130df565b5b60006131a285828601613132565b92505060206131b385828601613168565b9150509250929050565b60008115159050919050565b6131d2816131bd565b82525050565b60006020820190506131ed60008301846131c9565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61323082613069565b810181811067ffffffffffffffff8211171561324f5761324e6131f8565b5b80604052505050565b60006132626130d5565b905061326e8282613227565b919050565b600067ffffffffffffffff82111561328e5761328d6131f8565b5b602082029050602081019050919050565b600080fd5b60006132b76132b284613273565b613258565b905080838252602082019050602084028301858111156132da576132d961329f565b5b835b8181101561330357806132ef8882613132565b8452602084019350506020810190506132dc565b5050509392505050565b600082601f830112613322576133216131f3565b5b81356133328482602086016132a4565b91505092915050565b613344816131bd565b811461334f57600080fd5b50565b6000813590506133618161333b565b92915050565b6000806040838503121561337e5761337d6130df565b5b600083013567ffffffffffffffff81111561339c5761339b6130e4565b5b6133a88582860161330d565b92505060206133b985828601613352565b9150509250929050565b6000602082840312156133d9576133d86130df565b5b60006133e784828501613352565b91505092915050565b6133f981613147565b82525050565b600060208201905061341460008301846133f0565b92915050565b600080600060608486031215613433576134326130df565b5b600061344186828701613132565b935050602061345286828701613132565b925050604061346386828701613168565b9150509250925092565b600060ff82169050919050565b6134838161346d565b82525050565b600060208201905061349e600083018461347a565b92915050565b600080604083850312156134bb576134ba6130df565b5b60006134c985828601613132565b92505060206134da85828601613352565b9150509250929050565b6000602082840312156134fa576134f96130df565b5b600061350884828501613168565b91505092915050565b600060208284031215613527576135266130df565b5b600061353584828501613132565b91505092915050565b600060408201905061355360008301856133f0565b61356060208301846133f0565b9392505050565b61357081613109565b82525050565b600060208201905061358b6000830184613567565b92915050565b600080604083850312156135a8576135a76130df565b5b60006135b685828601613132565b92505060206135c785828601613132565b9150509250929050565b6000806000606084860312156135ea576135e96130df565b5b60006135f886828701613168565b935050602061360986828701613168565b925050604061361a86828701613168565b9150509250925092565b6000806040838503121561363b5761363a6130df565b5b600061364985828601613168565b925050602061365a85828601613168565b9150509250929050565b6000819050919050565b600061368961368461367f846130e9565b613664565b6130e9565b9050919050565b600061369b8261366e565b9050919050565b60006136ad82613690565b9050919050565b6136bd816136a2565b82525050565b60006020820190506136d860008301846136b4565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061372557607f821691505b602082108103613738576137376136de565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061377460208361302e565b915061377f8261373e565b602082019050919050565b600060208201905081810360008301526137a381613767565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061381382613147565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613845576138446137d9565b5b600182019050919050565b7f43616e6e6f742072652d656e61626c652074726164696e670000000000000000600082015250565b600061388660188361302e565b915061389182613850565b602082019050919050565b600060208201905081810360008301526138b581613879565b9050919050565b7f42455032303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061391860288361302e565b9150613923826138bc565b604082019050919050565b600060208201905081810360008301526139478161390b565b9050919050565b600061395982613147565b915061396483613147565b925082820390508181111561397c5761397b6137d9565b5b92915050565b600061398d82613147565b915061399883613147565b92508282019050808211156139b0576139af6137d9565b5b92915050565b7f53776170207468726573686f6c6420616d6f756e742073686f756c642062652060008201527f6c6f776572206f7220657175616c20746f203125206f6620746f6b656e730000602082015250565b6000613a12603e8361302e565b9150613a1d826139b6565b604082019050919050565b60006020820190508181036000830152613a4181613a05565b9050919050565b60008160011c9050919050565b6000808291508390505b6001851115613a9f57808604811115613a7b57613a7a6137d9565b5b6001851615613a8a5780820291505b8081029050613a9885613a48565b9450613a5f565b94509492505050565b600082613ab85760019050613b74565b81613ac65760009050613b74565b8160018114613adc5760028114613ae657613b15565b6001915050613b74565b60ff841115613af857613af76137d9565b5b8360020a915084821115613b0f57613b0e6137d9565b5b50613b74565b5060208310610133831016604e8410600b8410161715613b4a5782820a905083811115613b4557613b446137d9565b5b613b74565b613b578484846001613a55565b92509050818404811115613b6e57613b6d6137d9565b5b81810290505b9392505050565b6000613b8682613147565b9150613b918361346d565b9250613bbe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613aa8565b905092915050565b6000613bd182613147565b9150613bdc83613147565b9250828202613bea81613147565b91508282048414831517613c0157613c006137d9565b5b5092915050565b7f42455032303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613c6460258361302e565b9150613c6f82613c08565b604082019050919050565b60006020820190508181036000830152613c9381613c57565b9050919050565b7f46656520416464726573732063616e6e6f74206265207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613cf660228361302e565b9150613d0182613c9a565b604082019050919050565b60006020820190508181036000830152613d2581613ce9565b9050919050565b7f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c60008201527f616e6365206f6620697473206f776e20746f6b656e7300000000000000000000602082015250565b6000613d8860368361302e565b9150613d9382613d2c565b604082019050919050565b60006020820190508181036000830152613db781613d7b565b9050919050565b6000604082019050613dd36000830185613567565b613de060208301846133f0565b9392505050565b600081519050613df68161333b565b92915050565b600060208284031215613e1257613e116130df565b5b6000613e2084828501613de7565b91505092915050565b7f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f7765722060008201527f7468616e20302e31250000000000000000000000000000000000000000000000602082015250565b6000613e8560298361302e565b9150613e9082613e29565b604082019050919050565b60006020820190508181036000830152613eb481613e78565b9050919050565b7f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f77657260008201527f207468616e20302e312500000000000000000000000000000000000000000000602082015250565b6000613f17602a8361302e565b9150613f2282613ebb565b604082019050919050565b60006020820190508181036000830152613f4681613f0a565b9050919050565b7f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760008201527f6572207468616e20312500000000000000000000000000000000000000000000602082015250565b6000613fa9602a8361302e565b9150613fb482613f4d565b604082019050919050565b60006020820190508181036000830152613fd881613f9c565b9050919050565b7f43616e2774206368616e6765207768656e2074726164696e672068617320737460008201527f6172746564000000000000000000000000000000000000000000000000000000602082015250565b600061403b60258361302e565b915061404682613fdf565b604082019050919050565b6000602082019050818103600083015261406a8161402e565b9050919050565b7f446561646c696e652073686f756c64206265206c657373207468616e2035204260008201527f6c6f636b73000000000000000000000000000000000000000000000000000000602082015250565b60006140cd60258361302e565b91506140d882614071565b604082019050919050565b600060208201905081810360008301526140fc816140c0565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061415f60268361302e565b915061416a82614103565b604082019050919050565b6000602082019050818103600083015261418e81614152565b9050919050565b7f4d757374206b6565702066656573206174203925206f72206c65737300000000600082015250565b60006141cb601c8361302e565b91506141d682614195565b602082019050919050565b600060208201905081810360008301526141fa816141be565b9050919050565b7f42455032303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061425d60248361302e565b915061426882614201565b604082019050919050565b6000602082019050818103600083015261428c81614250565b9050919050565b7f42455032303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006142ef60228361302e565b91506142fa82614293565b604082019050919050565b6000602082019050818103600083015261431e816142e2565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061438160298361302e565b915061438c82614325565b604082019050919050565b600060208201905081810360008301526143b081614374565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b60006143ed60138361302e565b91506143f8826143b7565b602082019050919050565b6000602082019050818103600083015261441c816143e0565b9050919050565b7f596f752061726520657863656564696e67206d61784275794c696d6974000000600082015250565b6000614459601d8361302e565b915061446482614423565b602082019050919050565b600060208201905081810360008301526144888161444c565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c65744c696d6974600082015250565b60006144c560208361302e565b91506144d08261448f565b602082019050919050565b600060208201905081810360008301526144f4816144b8565b9050919050565b7f596f752061726520657863656564696e67206d617853656c6c4c696d69740000600082015250565b6000614531601e8361302e565b915061453c826144fb565b602082019050919050565b6000602082019050818103600083015261456081614524565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006145a182613147565b91506145ac83613147565b9250826145bc576145bb614567565b5b828204905092915050565b7f42455032303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061462360258361302e565b915061462e826145c7565b604082019050919050565b6000602082019050818103600083015261465281614616565b9050919050565b7f42455032303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006146b560238361302e565b91506146c082614659565b604082019050919050565b600060208201905081810360008301526146e4816146a8565b9050919050565b7f42455032303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061474760268361302e565b9150614752826146eb565b604082019050919050565b600060208201905081810360008301526147768161473a565b9050919050565b60008151905061478c8161311b565b92915050565b6000602082840312156147a8576147a76130df565b5b60006147b68482850161477d565b91505092915050565b6000819050919050565b60006147e46147df6147da846147bf565b613664565b613147565b9050919050565b6147f4816147c9565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61482f81613109565b82525050565b60006148418383614826565b60208301905092915050565b6000602082019050919050565b6000614865826147fa565b61486f8185614805565b935061487a83614816565b8060005b838110156148ab5781516148928882614835565b975061489d8361484d565b92505060018101905061487e565b5085935050505092915050565b600060a0820190506148cd60008301886133f0565b6148da60208301876147eb565b81810360408301526148ec818661485a565b90506148fb6060830185613567565b61490860808301846133f0565b9695505050505050565b600060c0820190506149276000830189613567565b61493460208301886133f0565b61494160408301876147eb565b61494e60608301866147eb565b61495b6080830185613567565b61496860a08301846133f0565b979650505050505050565b60008151905061498281613151565b92915050565b6000806000606084860312156149a1576149a06130df565b5b60006149af86828701614973565b93505060206149c086828701614973565b92505060406149d186828701614973565b9150509250925092565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000614a11601d8361302e565b9150614a1c826149db565b602082019050919050565b60006020820190508181036000830152614a4081614a04565b9050919050565b600081905092915050565b50565b6000614a62600083614a47565b9150614a6d82614a52565b600082019050919050565b6000614a8382614a55565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000614ae9603a8361302e565b9150614af482614a8d565b604082019050919050565b60006020820190508181036000830152614b1881614adc565b905091905056fea2646970667358221220178271690005d0cae6a7ad7558f71219cd18d7f3fa9a47b9271c5295a1a598b364736f6c63430008110033

Deployed Bytecode

0x60806040526004361061024a5760003560e01c8063715018a611610139578063aacebbe3116100b6578063edaa11681161007a578063edaa116814610890578063f2fde38b146108b9578063f52be97c146108e2578063f66895a31461090b578063f887ea4014610937578063fbe6324e1461096257610251565b8063aacebbe31461079b578063c5d32bb2146107c4578063c9300ed514610801578063dd62ed3e1461082a578063e1b450ad1461086757610251565b80638da5cb5b116100fd5780638da5cb5b146106a057806395d89b41146106cb578063a457c2d7146106f6578063a8aa1b3114610733578063a9059cbb1461075e57610251565b8063715018a6146105dc578063728f8eea146105f357806375f0a8741461061f57806385141a771461064a5780638a33e8811461067557610251565b8063313ce567116101c75780634ada218b1161018b5780634ada218b146104f3578063652e2f041461051e57806366a88d96146105495780636aa5b37f1461057457806370a082311461059f57610251565b8063313ce56714610410578063355496ca1461043b578063395093511461046457806342b6fa11146104a1578063441b1d30146104ca57610251565b806318160ddd1161020e57806318160ddd1461033b5780631d97b7cd1461036657806323b872dd1461037d578063274a533c146103ba5780632b112e49146103e557610251565b806306fdde0314610256578063095ea7b3146102815780630e375a5c146102be5780631340538f146102e75780631675d8021461031057610251565b3661025157005b600080fd5b34801561026257600080fd5b5061026b61098d565b60405161027891906130b3565b60405180910390f35b34801561028d57600080fd5b506102a860048036038101906102a3919061317d565b610a1f565b6040516102b591906131d8565b60405180910390f35b3480156102ca57600080fd5b506102e560048036038101906102e09190613367565b610a3d565b005b3480156102f357600080fd5b5061030e600480360381019061030991906133c3565b610b4e565b005b34801561031c57600080fd5b50610325610be7565b60405161033291906133ff565b60405180910390f35b34801561034757600080fd5b50610350610bed565b60405161035d91906133ff565b60405180910390f35b34801561037257600080fd5b5061037b610bf7565b005b34801561038957600080fd5b506103a4600480360381019061039f919061341a565b610d02565b6040516103b191906131d8565b60405180910390f35b3480156103c657600080fd5b506103cf610e03565b6040516103dc91906133ff565b60405180910390f35b3480156103f157600080fd5b506103fa610e09565b60405161040791906133ff565b60405180910390f35b34801561041c57600080fd5b50610425610e41565b6040516104329190613489565b60405180910390f35b34801561044757600080fd5b50610462600480360381019061045d91906134a4565b610e4a565b005b34801561047057600080fd5b5061048b6004803603810190610486919061317d565b610f21565b60405161049891906131d8565b60405180910390f35b3480156104ad57600080fd5b506104c860048036038101906104c391906134e4565b610fcd565b005b3480156104d657600080fd5b506104f160048036038101906104ec91906134e4565b6110b7565b005b3480156104ff57600080fd5b50610508611184565b60405161051591906131d8565b60405180910390f35b34801561052a57600080fd5b50610533611197565b60405161054091906133ff565b60405180910390f35b34801561055557600080fd5b5061055e61119d565b60405161056b91906133ff565b60405180910390f35b34801561058057600080fd5b506105896111a3565b60405161059691906133ff565b60405180910390f35b3480156105ab57600080fd5b506105c660048036038101906105c19190613511565b6111a9565b6040516105d391906133ff565b60405180910390f35b3480156105e857600080fd5b506105f16111f1565b005b3480156105ff57600080fd5b50610608611279565b60405161061692919061353e565b60405180910390f35b34801561062b57600080fd5b5061063461128b565b6040516106419190613576565b60405180910390f35b34801561065657600080fd5b5061065f6112b1565b60405161066c9190613576565b60405180910390f35b34801561068157600080fd5b5061068a6112b7565b6040516106979190613576565b60405180910390f35b3480156106ac57600080fd5b506106b56112bc565b6040516106c29190613576565b60405180910390f35b3480156106d757600080fd5b506106e06112e6565b6040516106ed91906130b3565b60405180910390f35b34801561070257600080fd5b5061071d6004803603810190610718919061317d565b611378565b60405161072a91906131d8565b60405180910390f35b34801561073f57600080fd5b5061074861146c565b6040516107559190613576565b60405180910390f35b34801561076a57600080fd5b506107856004803603810190610780919061317d565b611492565b60405161079291906131d8565b60405180910390f35b3480156107a757600080fd5b506107c260048036038101906107bd9190613511565b6114a9565b005b3480156107d057600080fd5b506107eb60048036038101906107e69190613511565b6115d8565b6040516107f891906131d8565b60405180910390f35b34801561080d57600080fd5b506108286004803603810190610823919061317d565b6115f8565b005b34801561083657600080fd5b50610851600480360381019061084c9190613591565b61176c565b60405161085e91906133ff565b60405180910390f35b34801561087357600080fd5b5061088e600480360381019061088991906135d1565b6117f3565b005b34801561089c57600080fd5b506108b760048036038101906108b291906134e4565b6119b5565b005b3480156108c557600080fd5b506108e060048036038101906108db9190613511565b611ace565b005b3480156108ee57600080fd5b5061090960048036038101906109049190613624565b611bc5565b005b34801561091757600080fd5b50610920611cc2565b60405161092e92919061353e565b60405180910390f35b34801561094357600080fd5b5061094c611cd4565b60405161095991906136c3565b60405180910390f35b34801561096e57600080fd5b50610977611cfa565b60405161098491906131d8565b60405180910390f35b60606003805461099c9061370d565b80601f01602080910402602001604051908101604052809291908181526020018280546109c89061370d565b8015610a155780601f106109ea57610100808354040283529160200191610a15565b820191906000526020600020905b8154815290600101906020018083116109f857829003601f168201915b5050505050905090565b6000610a33610a2c611d0d565b8484611d15565b6001905092915050565b610a45611d0d565b73ffffffffffffffffffffffffffffffffffffffff16610a636112bc565b73ffffffffffffffffffffffffffffffffffffffff1614610ab9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab09061378a565b60405180910390fd5b60005b8251811015610b49578160146000858481518110610add57610adc6137aa565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610b4190613808565b915050610abc565b505050565b610b56611d0d565b73ffffffffffffffffffffffffffffffffffffffff16610b746112bc565b73ffffffffffffffffffffffffffffffffffffffff1614610bca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc19061378a565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b60085481565b6000600254905090565b610bff611d0d565b73ffffffffffffffffffffffffffffffffffffffff16610c1d6112bc565b73ffffffffffffffffffffffffffffffffffffffff1614610c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6a9061378a565b60405180910390fd5b600760169054906101000a900460ff1615610cc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cba9061389c565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff02191690831515021790555043600981905550565b6000610d0f848484611ede565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d5a611d0d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610dda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd19061392e565b60405180910390fd5b610df785610de6611d0d565b8584610df2919061394e565b611d15565b60019150509392505050565b60095481565b6000610e1560006111a9565b610e2061dead6111a9565b610e28610bed565b610e32919061394e565b610e3c919061394e565b905090565b60006012905090565b610e52611d0d565b73ffffffffffffffffffffffffffffffffffffffff16610e706112bc565b73ffffffffffffffffffffffffffffffffffffffff1614610ec6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebd9061378a565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000610fc3610f2e611d0d565b848460016000610f3c611d0d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fbe9190613982565b611d15565b6001905092915050565b610fd5611d0d565b73ffffffffffffffffffffffffffffffffffffffff16610ff36112bc565b73ffffffffffffffffffffffffffffffffffffffff1614611049576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110409061378a565b60405180910390fd5b620186a081111561108f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108690613a28565b60405180910390fd5b611097610e41565b600a6110a39190613b7b565b816110ae9190613bc6565b60088190555050565b6110bf611d0d565b73ffffffffffffffffffffffffffffffffffffffff166110dd6112bc565b73ffffffffffffffffffffffffffffffffffffffff1614611133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112a9061378a565b60405180910390fd5b61113b6112bc565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611180573d6000803e3d6000fd5b5050565b600760169054906101000a900460ff1681565b600e5481565b600c5481565b600d5481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111f9611d0d565b73ffffffffffffffffffffffffffffffffffffffff166112176112bc565b73ffffffffffffffffffffffffffffffffffffffff161461126d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112649061378a565b60405180910390fd5b6112776000612711565b565b60108060000154908060010154905082565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61dead81565b600081565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546112f59061370d565b80601f01602080910402602001604051908101604052809291908181526020018280546113219061370d565b801561136e5780601f106113435761010080835404028352916020019161136e565b820191906000526020600020905b81548152906001019060200180831161135157829003601f168201915b5050505050905090565b60008060016000611387611d0d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611444576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143b90613c7a565b60405180910390fd5b61146161144f611d0d565b85858461145c919061394e565b611d15565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061149f338484611ede565b6001905092915050565b6114b1611d0d565b73ffffffffffffffffffffffffffffffffffffffff166114cf6112bc565b73ffffffffffffffffffffffffffffffffffffffff1614611525576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151c9061378a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611594576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158b90613d0c565b60405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60146020528060005260406000206000915054906101000a900460ff1681565b611600611d0d565b73ffffffffffffffffffffffffffffffffffffffff1661161e6112bc565b73ffffffffffffffffffffffffffffffffffffffff1614611674576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166b9061378a565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d990613d9e565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6117066112bc565b836040518363ffffffff1660e01b8152600401611724929190613dbe565b6020604051808303816000875af1158015611743573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117679190613dfc565b505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6117fb611d0d565b73ffffffffffffffffffffffffffffffffffffffff166118196112bc565b73ffffffffffffffffffffffffffffffffffffffff161461186f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118669061378a565b60405180910390fd5b620bdb288310156118b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ac90613e9b565b60405180910390fd5b620bdb288210156118fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f290613f2d565b60405180910390fd5b62768f90811015611941576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193890613fbf565b60405180910390fd5b611949610e41565b600a6119559190613b7b565b836119609190613bc6565b600d8190555061196e610e41565b600a61197a9190613b7b565b826119859190613bc6565b600e81905550611993610e41565b600a61199f9190613b7b565b816119aa9190613bc6565b600c81905550505050565b6119bd611d0d565b73ffffffffffffffffffffffffffffffffffffffff166119db6112bc565b73ffffffffffffffffffffffffffffffffffffffff1614611a31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a289061378a565b60405180910390fd5b600760169054906101000a900460ff1615611a81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7890614051565b60405180910390fd5b60058110611ac4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611abb906140e3565b60405180910390fd5b80600a8190555050565b611ad6611d0d565b73ffffffffffffffffffffffffffffffffffffffff16611af46112bc565b73ffffffffffffffffffffffffffffffffffffffff1614611b4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b419061378a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611bb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb090614175565b60405180910390fd5b611bc281612711565b50565b611bcd611d0d565b73ffffffffffffffffffffffffffffffffffffffff16611beb6112bc565b73ffffffffffffffffffffffffffffffffffffffff1614611c41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c389061378a565b60405180910390fd5b6040518060400160405280838152602001828152506012600082015181600001556020820151816001015590505060098183611c7d9190613982565b1115611cbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb5906141e1565b60405180910390fd5b5050565b60128060000154908060010154905082565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760159054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7b90614273565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611df3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dea90614305565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ed191906133ff565b60405180910390a3505050565b60008111611f21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1890614397565b60405180910390fd5b601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611fc55750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561201a57600760169054906101000a900460ff16612019576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201090614403565b60405180910390fd5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156120c15750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120da5750600760149054906101000a900460ff16155b1561217d57600d54811115612124576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211b9061446f565b60405180910390fd5b600c5481612131846111a9565b61213b9190613982565b111561217c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612173906144db565b60405180910390fd5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156122255750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561227b5750601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156122945750600760149054906101000a900460ff16155b1561238d57600e548111156122de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d590614547565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461238c57600c5481612340846111a9565b61234a9190613982565b111561238b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612382906144db565b60405180910390fd5b5b5b600080600061239a613009565b6000601460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156124405750601460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561245a5750600a546009546124579190613982565b43105b9050600760149054906101000a900460ff16806124c05750601460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806125145750601460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156125225760009250612621565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614801561257d575080155b156125c5576012600001546012600101546125989190613982565b94508493506012604051806040016040529081600082015481526020016001820154815250509150612620565b8061260d576010600001546010600101546125e09190613982565b9450849350601060405180604001604052908160008201548152602001600182015481525050915061261f565b801561261e57600b549450600b5493505b5b5b5b6064848761262f9190613bc6565b6126399190614596565b9250600760159054906101000a900460ff1680156126a55750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b156126b5576126b485836127d7565b5b6126cb888885896126c6919061394e565b61297b565b6000831115612707576000851115612706576000606486886126ed9190613bc6565b6126f79190614596565b905061270489308361297b565b505b5b5050505050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff16612977576001600760146101000a81548160ff021916908315150217905550600082031561295b57600061281a306111a9565b9050600854811061295957600160085411156128365760085490505b60006002846128459190613bc6565b905060008184602001518461285a9190613bc6565b6128649190614596565b905060008184612874919061394e565b9050600047905061288482612bed565b60008147612892919061394e565b905060008760200151866128a6919061394e565b826128b19190614596565b905060008860200151826128c59190613bc6565b905060008111156128db576128da8682612e30565b5b600089600001516002846128ef9190613bc6565b6128f99190613bc6565b905060008111156129505761294f81600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612f1590919063ffffffff16565b5b50505050505050505b505b6000600760146101000a81548160ff0219169083151502179055505b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036129ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129e190614639565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a50906146cb565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612adf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ad69061475d565b60405180910390fd5b8181612aeb919061394e565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612b7b9190613982565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612bdf91906133ff565b60405180910390a350505050565b6000600267ffffffffffffffff811115612c0a57612c096131f8565b5b604051908082528060200260200182016040528015612c385781602001602082028036833780820191505090505b5090503081600081518110612c5057612c4f6137aa565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612cf7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d1b9190614792565b81600181518110612d2f57612d2e6137aa565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612d9630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d15565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612dfa9594939291906148b8565b600060405180830381600087803b158015612e1457600080fd5b505af1158015612e28573d6000803e3d6000fd5b505050505050565b612e5d30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d15565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080612ea96112bc565b426040518863ffffffff1660e01b8152600401612ecb96959493929190614912565b60606040518083038185885af1158015612ee9573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612f0e9190614988565b5050505050565b80471015612f58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f4f90614a27565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612f7e90614a78565b60006040518083038185875af1925050503d8060008114612fbb576040519150601f19603f3d011682016040523d82523d6000602084013e612fc0565b606091505b5050905080613004576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ffb90614aff565b60405180910390fd5b505050565b604051806040016040528060008152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b8381101561305d578082015181840152602081019050613042565b60008484015250505050565b6000601f19601f8301169050919050565b600061308582613023565b61308f818561302e565b935061309f81856020860161303f565b6130a881613069565b840191505092915050565b600060208201905081810360008301526130cd818461307a565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613114826130e9565b9050919050565b61312481613109565b811461312f57600080fd5b50565b6000813590506131418161311b565b92915050565b6000819050919050565b61315a81613147565b811461316557600080fd5b50565b60008135905061317781613151565b92915050565b60008060408385031215613194576131936130df565b5b60006131a285828601613132565b92505060206131b385828601613168565b9150509250929050565b60008115159050919050565b6131d2816131bd565b82525050565b60006020820190506131ed60008301846131c9565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61323082613069565b810181811067ffffffffffffffff8211171561324f5761324e6131f8565b5b80604052505050565b60006132626130d5565b905061326e8282613227565b919050565b600067ffffffffffffffff82111561328e5761328d6131f8565b5b602082029050602081019050919050565b600080fd5b60006132b76132b284613273565b613258565b905080838252602082019050602084028301858111156132da576132d961329f565b5b835b8181101561330357806132ef8882613132565b8452602084019350506020810190506132dc565b5050509392505050565b600082601f830112613322576133216131f3565b5b81356133328482602086016132a4565b91505092915050565b613344816131bd565b811461334f57600080fd5b50565b6000813590506133618161333b565b92915050565b6000806040838503121561337e5761337d6130df565b5b600083013567ffffffffffffffff81111561339c5761339b6130e4565b5b6133a88582860161330d565b92505060206133b985828601613352565b9150509250929050565b6000602082840312156133d9576133d86130df565b5b60006133e784828501613352565b91505092915050565b6133f981613147565b82525050565b600060208201905061341460008301846133f0565b92915050565b600080600060608486031215613433576134326130df565b5b600061344186828701613132565b935050602061345286828701613132565b925050604061346386828701613168565b9150509250925092565b600060ff82169050919050565b6134838161346d565b82525050565b600060208201905061349e600083018461347a565b92915050565b600080604083850312156134bb576134ba6130df565b5b60006134c985828601613132565b92505060206134da85828601613352565b9150509250929050565b6000602082840312156134fa576134f96130df565b5b600061350884828501613168565b91505092915050565b600060208284031215613527576135266130df565b5b600061353584828501613132565b91505092915050565b600060408201905061355360008301856133f0565b61356060208301846133f0565b9392505050565b61357081613109565b82525050565b600060208201905061358b6000830184613567565b92915050565b600080604083850312156135a8576135a76130df565b5b60006135b685828601613132565b92505060206135c785828601613132565b9150509250929050565b6000806000606084860312156135ea576135e96130df565b5b60006135f886828701613168565b935050602061360986828701613168565b925050604061361a86828701613168565b9150509250925092565b6000806040838503121561363b5761363a6130df565b5b600061364985828601613168565b925050602061365a85828601613168565b9150509250929050565b6000819050919050565b600061368961368461367f846130e9565b613664565b6130e9565b9050919050565b600061369b8261366e565b9050919050565b60006136ad82613690565b9050919050565b6136bd816136a2565b82525050565b60006020820190506136d860008301846136b4565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061372557607f821691505b602082108103613738576137376136de565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061377460208361302e565b915061377f8261373e565b602082019050919050565b600060208201905081810360008301526137a381613767565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061381382613147565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613845576138446137d9565b5b600182019050919050565b7f43616e6e6f742072652d656e61626c652074726164696e670000000000000000600082015250565b600061388660188361302e565b915061389182613850565b602082019050919050565b600060208201905081810360008301526138b581613879565b9050919050565b7f42455032303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061391860288361302e565b9150613923826138bc565b604082019050919050565b600060208201905081810360008301526139478161390b565b9050919050565b600061395982613147565b915061396483613147565b925082820390508181111561397c5761397b6137d9565b5b92915050565b600061398d82613147565b915061399883613147565b92508282019050808211156139b0576139af6137d9565b5b92915050565b7f53776170207468726573686f6c6420616d6f756e742073686f756c642062652060008201527f6c6f776572206f7220657175616c20746f203125206f6620746f6b656e730000602082015250565b6000613a12603e8361302e565b9150613a1d826139b6565b604082019050919050565b60006020820190508181036000830152613a4181613a05565b9050919050565b60008160011c9050919050565b6000808291508390505b6001851115613a9f57808604811115613a7b57613a7a6137d9565b5b6001851615613a8a5780820291505b8081029050613a9885613a48565b9450613a5f565b94509492505050565b600082613ab85760019050613b74565b81613ac65760009050613b74565b8160018114613adc5760028114613ae657613b15565b6001915050613b74565b60ff841115613af857613af76137d9565b5b8360020a915084821115613b0f57613b0e6137d9565b5b50613b74565b5060208310610133831016604e8410600b8410161715613b4a5782820a905083811115613b4557613b446137d9565b5b613b74565b613b578484846001613a55565b92509050818404811115613b6e57613b6d6137d9565b5b81810290505b9392505050565b6000613b8682613147565b9150613b918361346d565b9250613bbe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613aa8565b905092915050565b6000613bd182613147565b9150613bdc83613147565b9250828202613bea81613147565b91508282048414831517613c0157613c006137d9565b5b5092915050565b7f42455032303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613c6460258361302e565b9150613c6f82613c08565b604082019050919050565b60006020820190508181036000830152613c9381613c57565b9050919050565b7f46656520416464726573732063616e6e6f74206265207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613cf660228361302e565b9150613d0182613c9a565b604082019050919050565b60006020820190508181036000830152613d2581613ce9565b9050919050565b7f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c60008201527f616e6365206f6620697473206f776e20746f6b656e7300000000000000000000602082015250565b6000613d8860368361302e565b9150613d9382613d2c565b604082019050919050565b60006020820190508181036000830152613db781613d7b565b9050919050565b6000604082019050613dd36000830185613567565b613de060208301846133f0565b9392505050565b600081519050613df68161333b565b92915050565b600060208284031215613e1257613e116130df565b5b6000613e2084828501613de7565b91505092915050565b7f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f7765722060008201527f7468616e20302e31250000000000000000000000000000000000000000000000602082015250565b6000613e8560298361302e565b9150613e9082613e29565b604082019050919050565b60006020820190508181036000830152613eb481613e78565b9050919050565b7f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f77657260008201527f207468616e20302e312500000000000000000000000000000000000000000000602082015250565b6000613f17602a8361302e565b9150613f2282613ebb565b604082019050919050565b60006020820190508181036000830152613f4681613f0a565b9050919050565b7f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760008201527f6572207468616e20312500000000000000000000000000000000000000000000602082015250565b6000613fa9602a8361302e565b9150613fb482613f4d565b604082019050919050565b60006020820190508181036000830152613fd881613f9c565b9050919050565b7f43616e2774206368616e6765207768656e2074726164696e672068617320737460008201527f6172746564000000000000000000000000000000000000000000000000000000602082015250565b600061403b60258361302e565b915061404682613fdf565b604082019050919050565b6000602082019050818103600083015261406a8161402e565b9050919050565b7f446561646c696e652073686f756c64206265206c657373207468616e2035204260008201527f6c6f636b73000000000000000000000000000000000000000000000000000000602082015250565b60006140cd60258361302e565b91506140d882614071565b604082019050919050565b600060208201905081810360008301526140fc816140c0565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061415f60268361302e565b915061416a82614103565b604082019050919050565b6000602082019050818103600083015261418e81614152565b9050919050565b7f4d757374206b6565702066656573206174203925206f72206c65737300000000600082015250565b60006141cb601c8361302e565b91506141d682614195565b602082019050919050565b600060208201905081810360008301526141fa816141be565b9050919050565b7f42455032303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061425d60248361302e565b915061426882614201565b604082019050919050565b6000602082019050818103600083015261428c81614250565b9050919050565b7f42455032303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006142ef60228361302e565b91506142fa82614293565b604082019050919050565b6000602082019050818103600083015261431e816142e2565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061438160298361302e565b915061438c82614325565b604082019050919050565b600060208201905081810360008301526143b081614374565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b60006143ed60138361302e565b91506143f8826143b7565b602082019050919050565b6000602082019050818103600083015261441c816143e0565b9050919050565b7f596f752061726520657863656564696e67206d61784275794c696d6974000000600082015250565b6000614459601d8361302e565b915061446482614423565b602082019050919050565b600060208201905081810360008301526144888161444c565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c65744c696d6974600082015250565b60006144c560208361302e565b91506144d08261448f565b602082019050919050565b600060208201905081810360008301526144f4816144b8565b9050919050565b7f596f752061726520657863656564696e67206d617853656c6c4c696d69740000600082015250565b6000614531601e8361302e565b915061453c826144fb565b602082019050919050565b6000602082019050818103600083015261456081614524565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006145a182613147565b91506145ac83613147565b9250826145bc576145bb614567565b5b828204905092915050565b7f42455032303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061462360258361302e565b915061462e826145c7565b604082019050919050565b6000602082019050818103600083015261465281614616565b9050919050565b7f42455032303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006146b560238361302e565b91506146c082614659565b604082019050919050565b600060208201905081810360008301526146e4816146a8565b9050919050565b7f42455032303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061474760268361302e565b9150614752826146eb565b604082019050919050565b600060208201905081810360008301526147768161473a565b9050919050565b60008151905061478c8161311b565b92915050565b6000602082840312156147a8576147a76130df565b5b60006147b68482850161477d565b91505092915050565b6000819050919050565b60006147e46147df6147da846147bf565b613664565b613147565b9050919050565b6147f4816147c9565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61482f81613109565b82525050565b60006148418383614826565b60208301905092915050565b6000602082019050919050565b6000614865826147fa565b61486f8185614805565b935061487a83614816565b8060005b838110156148ab5781516148928882614835565b975061489d8361484d565b92505060018101905061487e565b5085935050505092915050565b600060a0820190506148cd60008301886133f0565b6148da60208301876147eb565b81810360408301526148ec818661485a565b90506148fb6060830185613567565b61490860808301846133f0565b9695505050505050565b600060c0820190506149276000830189613567565b61493460208301886133f0565b61494160408301876147eb565b61494e60608301866147eb565b61495b6080830185613567565b61496860a08301846133f0565b979650505050505050565b60008151905061498281613151565b92915050565b6000806000606084860312156149a1576149a06130df565b5b60006149af86828701614973565b93505060206149c086828701614973565b92505060406149d186828701614973565b9150509250925092565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000614a11601d8361302e565b9150614a1c826149db565b602082019050919050565b60006020820190508181036000830152614a4081614a04565b9050919050565b600081905092915050565b50565b6000614a62600083614a47565b9150614a6d82614a52565b600082019050919050565b6000614a8382614a55565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000614ae9603a8361302e565b9150614af482614a8d565b604082019050919050565b60006020820190508181036000830152614b1881614adc565b905091905056fea2646970667358221220178271690005d0cae6a7ad7558f71219cd18d7f3fa9a47b9271c5295a1a598b364736f6c63430008110033

Deployed Bytecode Sourcemap

11920:11251:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2379:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13716:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21870:202;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20344:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12182:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3499:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21051:222;;;;;;;;;;;;;:::i;:::-;;13887:448;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12246:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22080:151;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3341:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21742:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14343:248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20504:283;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22755:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12139:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12458:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12353:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12407:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3670:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10583:94;;;;;;;;;;;;;:::i;:::-;;12854:32;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;12512:74;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12593:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12679;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10360:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2598:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14599:410;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12028:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15017:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21539:195;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12938:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22875:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4289:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22239:508;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21281:250;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10685:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20795:248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12893:36;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;12000:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12094:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2379:100;2433:13;2466:5;2459:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2379:100;:::o;13716:161::-;13791:4;13808:39;13817:12;:10;:12::i;:::-;13831:7;13840:6;13808:8;:39::i;:::-;13865:4;13858:11;;13716:161;;;;:::o;21870:202::-;10506:12;:10;:12::i;:::-;10495:23;;:7;:5;:7::i;:::-;:23;;;10487:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21967:9:::1;21962:103;21986:8;:15;21982:1;:19;21962:103;;;22048:5;22023:9;:22;22033:8;22042:1;22033:11;;;;;;;;:::i;:::-;;;;;;;;22023:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;22003:3;;;;;:::i;:::-;;;;21962:103;;;;21870:202:::0;;:::o;20344:152::-;10506:12;:10;:12::i;:::-;10495:23;;:7;:5;:7::i;:::-;:23;;;10487:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20483:5:::1;20462:18;;:26;;;;;;;;;;;;;;;;;;20344:152:::0;:::o;12182:55::-;;;;:::o;3499:108::-;3560:7;3587:12;;3580:19;;3499:108;:::o;21051:222::-;10506:12;:10;:12::i;:::-;10495:23;;:7;:5;:7::i;:::-;:23;;;10487:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21115:14:::1;;;;;;;;;;;21114:15;21106:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;21186:4;21169:14;;:21;;;;;;;;;;;;;;;;;;21222:4;21201:18;;:25;;;;;;;;;;;;;;;;;;21253:12;21237:13;:28;;;;21051:222::o:0;13887:448::-;14019:4;14036:36;14046:6;14054:9;14065:6;14036:9;:36::i;:::-;14085:24;14112:11;:19;14124:6;14112:19;;;;;;;;;;;;;;;:33;14132:12;:10;:12::i;:::-;14112:33;;;;;;;;;;;;;;;;14085:60;;14184:6;14164:16;:26;;14156:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;14246:57;14255:6;14263:12;:10;:12::i;:::-;14296:6;14277:16;:25;;;;:::i;:::-;14246:8;:57::i;:::-;14323:4;14316:11;;;13887:448;;;;;:::o;12246:28::-;;;;:::o;22080:151::-;22133:7;22201:21;12716:42;22201:9;:21::i;:::-;22177;12630:42;22177:9;:21::i;:::-;22161:13;:11;:13::i;:::-;:37;;;;:::i;:::-;:61;;;;:::i;:::-;22153:70;;22080:151;:::o;3341:93::-;3399:5;3424:2;3417:9;;3341:93;:::o;21742:120::-;10506:12;:10;:12::i;:::-;10495:23;;:7;:5;:7::i;:::-;:23;;;10487:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21849:5:::1;21827:9;:19;21837:8;21827:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;21742:120:::0;;:::o;14343:248::-;14459:4;14481:80;14490:12;:10;:12::i;:::-;14504:7;14550:10;14513:11;:25;14525:12;:10;:12::i;:::-;14513:25;;;;;;;;;;;;;;;:34;14539:7;14513:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;14481:8;:80::i;:::-;14579:4;14572:11;;14343:248;;;;:::o;20504:283::-;10506:12;:10;:12::i;:::-;10495:23;;:7;:5;:7::i;:::-;:23;;;10487:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20642:6:::1;20628:10;:20;;20620:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;20769:10;:8;:10::i;:::-;20765:2;:14;;;;:::i;:::-;20752:10;:27;;;;:::i;:::-;20726:23;:53;;;;20504:283:::0;:::o;22755:112::-;10506:12;:10;:12::i;:::-;10495:23;;:7;:5;:7::i;:::-;:23;;;10487:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22831:7:::1;:5;:7::i;:::-;22823:25;;:36;22849:9;22823:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;22755:112:::0;:::o;12139:34::-;;;;;;;;;;;;;:::o;12458:45::-;;;;:::o;12353:47::-;;;;:::o;12407:44::-;;;;:::o;3670:127::-;3744:7;3771:9;:18;3781:7;3771:18;;;;;;;;;;;;;;;;3764:25;;3670:127;;;:::o;10583:94::-;10506:12;:10;:12::i;:::-;10495:23;;:7;:5;:7::i;:::-;:23;;;10487:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10648:21:::1;10666:1;10648:9;:21::i;:::-;10583:94::o:0;12854:32::-;;;;;;;;;;;;;;:::o;12512:74::-;;;;;;;;;;;;;:::o;12593:79::-;12630:42;12593:79;:::o;12679:::-;12716:42;12679:79;:::o;10360:87::-;10406:7;10433:6;;;;;;;;;;;10426:13;;10360:87;:::o;2598:104::-;2654:13;2687:7;2680:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2598:104;:::o;14599:410::-;14720:4;14742:24;14769:11;:25;14781:12;:10;:12::i;:::-;14769:25;;;;;;;;;;;;;;;:34;14795:7;14769:34;;;;;;;;;;;;;;;;14742:61;;14842:15;14822:16;:35;;14814:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;14910:67;14919:12;:10;:12::i;:::-;14933:7;14961:15;14942:16;:34;;;;:::i;:::-;14910:8;:67::i;:::-;14997:4;14990:11;;;14599:410;;;;:::o;12028:19::-;;;;;;;;;;;;;:::o;15017:165::-;15095:4;15112:40;15122:10;15134:9;15145:6;15112:9;:40::i;:::-;15170:4;15163:11;;15017:165;;;;:::o;21539:195::-;10506:12;:10;:12::i;:::-;10495:23;;:7;:5;:7::i;:::-;:23;;;10487:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21648:1:::1;21627:23;;:9;:23;;::::0;21619:69:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;21717:9;21699:15;;:27;;;;;;;;;;;;;;;;;;21539:195:::0;:::o;12938:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;22875:238::-;10506:12;:10;:12::i;:::-;10495:23;;:7;:5;:7::i;:::-;:23;;;10487:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22988:4:::1;22968:25;;:8;:25;;::::0;22960:92:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;23070:8;23063:25;;;23089:7;:5;:7::i;:::-;23098:6;23063:42;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22875:238:::0;;:::o;4289:201::-;4423:7;4455:11;:18;4467:5;4455:18;;;;;;;;;;;;;;;:27;4474:7;4455:27;;;;;;;;;;;;;;;;4448:34;;4289:201;;;;:::o;22239:508::-;10506:12;:10;:12::i;:::-;10495:23;;:7;:5;:7::i;:::-;:23;;;10487:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22365:6:::1;22355;:16;;22347:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;22447:6;22436:7;:17;;22428:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;22532:7;22519:9;:20;;22511:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;22624:10;:8;:10::i;:::-;22620:2;:14;;;;:::i;:::-;22611:6;:23;;;;:::i;:::-;22597:11;:37;;;;22674:10;:8;:10::i;:::-;22670:2;:14;;;;:::i;:::-;22660:7;:24;;;;:::i;:::-;22645:12;:39;;;;22728:10;:8;:10::i;:::-;22724:2;:14;;;;:::i;:::-;22712:9;:26;;;;:::i;:::-;22695:14;:43;;;;22239:508:::0;;;:::o;21281:250::-;10506:12;:10;:12::i;:::-;10495:23;;:7;:5;:7::i;:::-;:23;;;10487:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21363:14:::1;;;;;;;;;;;21362:15;21354:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;21450:1;21438:9;:13;21430:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;21514:9;21503:8;:20;;;;21281:250:::0;:::o;10685:192::-;10506:12;:10;:12::i;:::-;10495:23;;:7;:5;:7::i;:::-;:23;;;10487:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10794:1:::1;10774:22;;:8;:22;;::::0;10766:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;10850:19;10860:8;10850:9;:19::i;:::-;10685:192:::0;:::o;20795:248::-;10506:12;:10;:12::i;:::-;10495:23;;:7;:5;:7::i;:::-;:23;;;10487:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20924:29:::1;;;;;;;;20930:10;20924:29;;;;20942:10;20924:29;;::::0;20912:9:::1;:41;;;;;;;;;;;;;;;;;;;21001:1;20986:10;20973;:23;;;;:::i;:::-;20972:30;;20964:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;20795:248:::0;;:::o;12893:36::-;;;;;;;;;;;;;;:::o;12000:21::-;;;;;;;;;;;;;:::o;12094:38::-;;;;;;;;;;;;;:::o;101:98::-;154:7;181:10;174:17;;101:98;:::o;9393:380::-;9546:1;9529:19;;:5;:19;;;9521:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9627:1;9608:21;;:7;:21;;;9600:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9711:6;9681:11;:18;9693:5;9681:18;;;;;;;;;;;;;;;:27;9700:7;9681:27;;;;;;;;;;;;;;;:36;;;;9749:7;9733:32;;9742:5;9733:32;;;9758:6;9733:32;;;;;;:::i;:::-;;;;;;;;9393:380;;;:::o;15190:2652::-;15340:1;15331:6;:10;15323:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15405:9;:17;15415:6;15405:17;;;;;;;;;;;;;;;;;;;;;;;;;15404:18;:43;;;;;15427:9;:20;15437:9;15427:20;;;;;;;;;;;;;;;;;;;;;;;;;15426:21;15404:43;15400:122;;;15472:14;;;;;;;;;;;15464:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;15400:122;15548:4;;;;;;;;;;;15538:14;;:6;:14;;;:39;;;;;15557:9;:20;15567:9;15557:20;;;;;;;;;;;;;;;;;;;;;;;;;15556:21;15538:39;:54;;;;;15582:10;;;;;;;;;;;15581:11;15538:54;15534:306;;;15627:11;;15617:6;:21;;15609:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;15746:14;;15736:6;15713:20;15723:9;15713;:20::i;:::-;:29;;;;:::i;:::-;:47;;15687:141;;;;;;;;;;;;:::i;:::-;;;;;;;;;15534:306;15880:4;;;;;;;;;;;15870:14;;:6;:14;;;;:39;;;;;15889:9;:20;15899:9;15889:20;;;;;;;;;;;;;;;;;;;;;;;;;15888:21;15870:39;:61;;;;;15914:9;:17;15924:6;15914:17;;;;;;;;;;;;;;;;;;;;;;;;;15913:18;15870:61;:76;;;;;15936:10;;;;;;;;;;;15935:11;15870:76;15852:423;;;15991:12;;15981:6;:22;;15973:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;16070:4;;;;;;;;;;;16057:17;;:9;:17;;;16053:211;;16158:14;;16148:6;16125:20;16135:9;16125;:20::i;:::-;:29;;;;:::i;:::-;:47;;16095:153;;;;;;;;;;;;:::i;:::-;;;;;;;;;16053:211;15852:423;16287:15;16313:14;16338:11;16360:25;;:::i;:::-;16398:17;16419:9;:17;16429:6;16419:17;;;;;;;;;;;;;;;;;;;;;;;;;16418:18;:56;;;;;16454:9;:20;16464:9;16454:20;;;;;;;;;;;;;;;;;;;;;;;;;16453:21;16418:56;:112;;;;;16522:8;;16506:13;;:24;;;;:::i;:::-;16491:12;:39;16418:112;16398:132;;16618:10;;;;;;;;;;;:31;;;;16632:9;:17;16642:6;16632:17;;;;;;;;;;;;;;;;;;;;;;;;;16618:31;:55;;;;16653:9;:20;16663:9;16653:20;;;;;;;;;;;;;;;;;;;;;;;;;16618:55;16614:648;;;16694:1;16688:7;;16614:648;;;16759:4;;;;;;;;;;;16746:17;;:9;:17;;;:34;;;;;16768:12;16767:13;16746:34;16742:520;;;16863:9;:19;;;16824:9;:19;;;:58;;;;:::i;:::-;16797:85;;16906:7;16897:16;;16943:9;16928:24;;;;;;;;;;;;;;;;;;;;;;;;;;;16742:520;;;16975:12;16970:292;;17066:5;:15;;;17031:5;:15;;;:50;;;;:::i;:::-;17004:77;;17105:7;17096:16;;17142:5;17127:20;;;;;;;;;;;;;;;;;;;;;;;;;;;16970:292;;;17169:12;17165:97;;;17208:9;;17198:19;;17241:9;;17232:18;;17165:97;16970:292;16742:520;16614:648;17300:3;17290:6;17281;:15;;;;:::i;:::-;17280:23;;;;:::i;:::-;17274:29;;17417:18;;;;;;;;;;;:36;;;;;17449:4;;;;;;;;;;;17439:14;;:6;:14;;;;17417:36;17413:72;;;17455:30;17463:7;17472:12;17455:7;:30::i;:::-;17413:72;17527:48;17543:6;17551:9;17571:3;17562:6;:12;;;;:::i;:::-;17527:15;:48::i;:::-;17596:1;17590:3;:7;17586:249;;;17672:1;17662:7;:11;17658:164;;;17694:17;17735:3;17724:7;17715:6;:16;;;;:::i;:::-;17714:24;;;;:::i;:::-;17694:44;;17757:49;17773:6;17789:4;17796:9;17757:15;:49::i;:::-;17675:147;17658:164;17586:249;15312:2530;;;;;15190:2652;;;:::o;10885:173::-;10941:16;10960:6;;;;;;;;;;;10941:25;;10986:8;10977:6;;:17;;;;;;;;;;;;;;;;;;11041:8;11010:40;;11031:8;11010:40;;;;;;;;;;;;10930:128;10885:173;:::o;17850:1437::-;13027:10;;;;;;;;;;;13022:110;;13067:4;13054:10;;:17;;;;;;;;;;;;;;;;;;17955:1:::1;17944:7;:12:::0;17941:49;17972:7:::1;17941:49;18002:23;18028:24;18046:4;18028:9;:24::i;:::-;18002:50;;18086:23;;18067:15;:42;18063:1217;;18156:1;18130:23;;:27;18126:109;;;18196:23;;18178:41;;18126:109;18306:19;18338:1;18328:7;:11;;;;:::i;:::-;18306:33;;18354:32;18448:11;18408:9;:19;;;18390:15;:37;;;;:::i;:::-;18389:70;;;;:::i;:::-;18354:105;;18474:14;18509:24;18491:15;:42;;;;:::i;:::-;18474:59;;18550:22;18575:21;18550:46;;18613:24;18630:6;18613:16;:24::i;:::-;18654:20;18701:14;18677:21;:38;;;;:::i;:::-;18654:61;;18730:19;18782:9;:19;;;18768:11;:33;;;;:::i;:::-;18752:12;:50;;;;:::i;:::-;18730:72;;18817:29;18863:9;:19;;;18849:11;:33;;;;:::i;:::-;18817:65;;18927:1;18903:21;:25;18899:172;;;18994:61;19007:24;19033:21;18994:12;:61::i;:::-;18899:172;19087:20;19128:9;:19;;;19124:1;19110:11;:15;;;;:::i;:::-;:37;;;;:::i;:::-;19087:60;;19181:1;19166:12;:16;19162:105;;;19203:48;19238:12;19211:15;;;;;;;;;;;19203:34;;;;:48;;;;:::i;:::-;19162:105;18111:1169;;;;;;;;18063:1217;17928:1359;13086:1;13115:5:::0;13102:10;;:18;;;;;;;;;;;;;;;;;;13022:110;17850:1437;;:::o;7802:578::-;7960:1;7942:20;;:6;:20;;;7934:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;8044:1;8023:23;;:9;:23;;;8015:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;8099:21;8123:9;:17;8133:6;8123:17;;;;;;;;;;;;;;;;8099:41;;8176:6;8159:13;:23;;8151:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8272:6;8256:13;:22;;;;:::i;:::-;8236:9;:17;8246:6;8236:17;;;;;;;;;;;;;;;:42;;;;8313:6;8289:9;:20;8299:9;8289:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;8354:9;8337:35;;8346:6;8337:35;;;8365:6;8337:35;;;;;;:::i;:::-;;;;;;;;7923:457;7802:578;;;:::o;19295:536::-;19423:21;19461:1;19447:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19423:40;;19492:4;19474;19479:1;19474:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19518:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19508:4;19513:1;19508:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19544:53;19561:4;19576:6;;;;;;;;;;;19585:11;19544:8;:53::i;:::-;19636:6;;;;;;;;;;;:57;;;19708:11;19734:1;19750:4;19777;19797:15;19636:187;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19350:481;19295:536;:::o;19839:497::-;19987:53;20004:4;20019:6;;;;;;;;;;;20028:11;19987:8;:53::i;:::-;20083:6;;;;;;;;;;;:22;;;20114:9;20148:4;20168:11;20194:1;20237;20280:7;:5;:7::i;:::-;20302:15;20083:245;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19839:497;;:::o;9803:319::-;9918:6;9893:21;:31;;9885:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;9972:12;9990:9;:14;;10013:6;9990:35;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9971:54;;;10044:7;10036:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;9874:248;9803:319;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;:::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;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::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:117::-;3555:1;3552;3545:12;3569:180;3617:77;3614:1;3607:88;3714:4;3711:1;3704:15;3738:4;3735:1;3728:15;3755:281;3838:27;3860:4;3838:27;:::i;:::-;3830:6;3826:40;3968:6;3956:10;3953:22;3932:18;3920:10;3917:34;3914:62;3911:88;;;3979:18;;:::i;:::-;3911:88;4019:10;4015:2;4008:22;3798:238;3755:281;;:::o;4042:129::-;4076:6;4103:20;;:::i;:::-;4093:30;;4132:33;4160:4;4152:6;4132:33;:::i;:::-;4042:129;;;:::o;4177:311::-;4254:4;4344:18;4336:6;4333:30;4330:56;;;4366:18;;:::i;:::-;4330:56;4416:4;4408:6;4404:17;4396:25;;4476:4;4470;4466:15;4458:23;;4177:311;;;:::o;4494:117::-;4603:1;4600;4593:12;4634:710;4730:5;4755:81;4771:64;4828:6;4771:64;:::i;:::-;4755:81;:::i;:::-;4746:90;;4856:5;4885:6;4878:5;4871:21;4919:4;4912:5;4908:16;4901:23;;4972:4;4964:6;4960:17;4952:6;4948:30;5001:3;4993:6;4990:15;4987:122;;;5020:79;;:::i;:::-;4987:122;5135:6;5118:220;5152:6;5147:3;5144:15;5118:220;;;5227:3;5256:37;5289:3;5277:10;5256:37;:::i;:::-;5251:3;5244:50;5323:4;5318:3;5314:14;5307:21;;5194:144;5178:4;5173:3;5169:14;5162:21;;5118:220;;;5122:21;4736:608;;4634:710;;;;;:::o;5367:370::-;5438:5;5487:3;5480:4;5472:6;5468:17;5464:27;5454:122;;5495:79;;:::i;:::-;5454:122;5612:6;5599:20;5637:94;5727:3;5719:6;5712:4;5704:6;5700:17;5637:94;:::i;:::-;5628:103;;5444:293;5367:370;;;;:::o;5743:116::-;5813:21;5828:5;5813:21;:::i;:::-;5806:5;5803:32;5793:60;;5849:1;5846;5839:12;5793:60;5743:116;:::o;5865:133::-;5908:5;5946:6;5933:20;5924:29;;5962:30;5986:5;5962:30;:::i;:::-;5865:133;;;;:::o;6004:678::-;6094:6;6102;6151:2;6139:9;6130:7;6126:23;6122:32;6119:119;;;6157:79;;:::i;:::-;6119:119;6305:1;6294:9;6290:17;6277:31;6335:18;6327:6;6324:30;6321:117;;;6357:79;;:::i;:::-;6321:117;6462:78;6532:7;6523:6;6512:9;6508:22;6462:78;:::i;:::-;6452:88;;6248:302;6589:2;6615:50;6657:7;6648:6;6637:9;6633:22;6615:50;:::i;:::-;6605:60;;6560:115;6004:678;;;;;:::o;6688:323::-;6744:6;6793:2;6781:9;6772:7;6768:23;6764:32;6761:119;;;6799:79;;:::i;:::-;6761:119;6919:1;6944:50;6986:7;6977:6;6966:9;6962:22;6944:50;:::i;:::-;6934:60;;6890:114;6688:323;;;;:::o;7017:118::-;7104:24;7122:5;7104:24;:::i;:::-;7099:3;7092:37;7017:118;;:::o;7141:222::-;7234:4;7272:2;7261:9;7257:18;7249:26;;7285:71;7353:1;7342:9;7338:17;7329:6;7285:71;:::i;:::-;7141:222;;;;:::o;7369:619::-;7446:6;7454;7462;7511:2;7499:9;7490:7;7486:23;7482:32;7479:119;;;7517:79;;:::i;:::-;7479:119;7637:1;7662:53;7707:7;7698:6;7687:9;7683:22;7662:53;:::i;:::-;7652:63;;7608:117;7764:2;7790:53;7835:7;7826:6;7815:9;7811:22;7790:53;:::i;:::-;7780:63;;7735:118;7892:2;7918:53;7963:7;7954:6;7943:9;7939:22;7918:53;:::i;:::-;7908:63;;7863:118;7369:619;;;;;:::o;7994:86::-;8029:7;8069:4;8062:5;8058:16;8047:27;;7994:86;;;:::o;8086:112::-;8169:22;8185:5;8169:22;:::i;:::-;8164:3;8157:35;8086:112;;:::o;8204:214::-;8293:4;8331:2;8320:9;8316:18;8308:26;;8344:67;8408:1;8397:9;8393:17;8384:6;8344:67;:::i;:::-;8204:214;;;;:::o;8424:468::-;8489:6;8497;8546:2;8534:9;8525:7;8521:23;8517:32;8514:119;;;8552:79;;:::i;:::-;8514:119;8672:1;8697:53;8742:7;8733:6;8722:9;8718:22;8697:53;:::i;:::-;8687:63;;8643:117;8799:2;8825:50;8867:7;8858:6;8847:9;8843:22;8825:50;:::i;:::-;8815:60;;8770:115;8424:468;;;;;:::o;8898:329::-;8957:6;9006:2;8994:9;8985:7;8981:23;8977:32;8974:119;;;9012:79;;:::i;:::-;8974:119;9132:1;9157:53;9202:7;9193:6;9182:9;9178:22;9157:53;:::i;:::-;9147:63;;9103:117;8898:329;;;;:::o;9233:::-;9292:6;9341:2;9329:9;9320:7;9316:23;9312:32;9309:119;;;9347:79;;:::i;:::-;9309:119;9467:1;9492:53;9537:7;9528:6;9517:9;9513:22;9492:53;:::i;:::-;9482:63;;9438:117;9233:329;;;;:::o;9568:332::-;9689:4;9727:2;9716:9;9712:18;9704:26;;9740:71;9808:1;9797:9;9793:17;9784:6;9740:71;:::i;:::-;9821:72;9889:2;9878:9;9874:18;9865:6;9821:72;:::i;:::-;9568:332;;;;;:::o;9906:118::-;9993:24;10011:5;9993:24;:::i;:::-;9988:3;9981:37;9906:118;;:::o;10030:222::-;10123:4;10161:2;10150:9;10146:18;10138:26;;10174:71;10242:1;10231:9;10227:17;10218:6;10174:71;:::i;:::-;10030:222;;;;:::o;10258:474::-;10326:6;10334;10383:2;10371:9;10362:7;10358:23;10354:32;10351:119;;;10389:79;;:::i;:::-;10351:119;10509:1;10534:53;10579:7;10570:6;10559:9;10555:22;10534:53;:::i;:::-;10524:63;;10480:117;10636:2;10662:53;10707:7;10698:6;10687:9;10683:22;10662:53;:::i;:::-;10652:63;;10607:118;10258:474;;;;;:::o;10738:619::-;10815:6;10823;10831;10880:2;10868:9;10859:7;10855:23;10851:32;10848:119;;;10886:79;;:::i;:::-;10848:119;11006:1;11031:53;11076:7;11067:6;11056:9;11052:22;11031:53;:::i;:::-;11021:63;;10977:117;11133:2;11159:53;11204:7;11195:6;11184:9;11180:22;11159:53;:::i;:::-;11149:63;;11104:118;11261:2;11287:53;11332:7;11323:6;11312:9;11308:22;11287:53;:::i;:::-;11277:63;;11232:118;10738:619;;;;;:::o;11363:474::-;11431:6;11439;11488:2;11476:9;11467:7;11463:23;11459:32;11456:119;;;11494:79;;:::i;:::-;11456:119;11614:1;11639:53;11684:7;11675:6;11664:9;11660:22;11639:53;:::i;:::-;11629:63;;11585:117;11741:2;11767:53;11812:7;11803:6;11792:9;11788:22;11767:53;:::i;:::-;11757:63;;11712:118;11363:474;;;;;:::o;11843:60::-;11871:3;11892:5;11885:12;;11843:60;;;:::o;11909:142::-;11959:9;11992:53;12010:34;12019:24;12037:5;12019:24;:::i;:::-;12010:34;:::i;:::-;11992:53;:::i;:::-;11979:66;;11909:142;;;:::o;12057:126::-;12107:9;12140:37;12171:5;12140:37;:::i;:::-;12127:50;;12057:126;;;:::o;12189:141::-;12254:9;12287:37;12318:5;12287:37;:::i;:::-;12274:50;;12189:141;;;:::o;12336:161::-;12438:52;12484:5;12438:52;:::i;:::-;12433:3;12426:65;12336:161;;:::o;12503:252::-;12611:4;12649:2;12638:9;12634:18;12626:26;;12662:86;12745:1;12734:9;12730:17;12721:6;12662:86;:::i;:::-;12503:252;;;;:::o;12761:180::-;12809:77;12806:1;12799:88;12906:4;12903:1;12896:15;12930:4;12927:1;12920:15;12947:320;12991:6;13028:1;13022:4;13018:12;13008:22;;13075:1;13069:4;13065:12;13096:18;13086:81;;13152:4;13144:6;13140:17;13130:27;;13086:81;13214:2;13206:6;13203:14;13183:18;13180:38;13177:84;;13233:18;;:::i;:::-;13177:84;12998:269;12947:320;;;:::o;13273:182::-;13413:34;13409:1;13401:6;13397:14;13390:58;13273:182;:::o;13461:366::-;13603:3;13624:67;13688:2;13683:3;13624:67;:::i;:::-;13617:74;;13700:93;13789:3;13700:93;:::i;:::-;13818:2;13813:3;13809:12;13802:19;;13461:366;;;:::o;13833:419::-;13999:4;14037:2;14026:9;14022:18;14014:26;;14086:9;14080:4;14076:20;14072:1;14061:9;14057:17;14050:47;14114:131;14240:4;14114:131;:::i;:::-;14106:139;;13833:419;;;:::o;14258:180::-;14306:77;14303:1;14296:88;14403:4;14400:1;14393:15;14427:4;14424:1;14417:15;14444:180;14492:77;14489:1;14482:88;14589:4;14586:1;14579:15;14613:4;14610:1;14603:15;14630:233;14669:3;14692:24;14710:5;14692:24;:::i;:::-;14683:33;;14738:66;14731:5;14728:77;14725:103;;14808:18;;:::i;:::-;14725:103;14855:1;14848:5;14844:13;14837:20;;14630:233;;;:::o;14869:174::-;15009:26;15005:1;14997:6;14993:14;14986:50;14869:174;:::o;15049:366::-;15191:3;15212:67;15276:2;15271:3;15212:67;:::i;:::-;15205:74;;15288:93;15377:3;15288:93;:::i;:::-;15406:2;15401:3;15397:12;15390:19;;15049:366;;;:::o;15421:419::-;15587:4;15625:2;15614:9;15610:18;15602:26;;15674:9;15668:4;15664:20;15660:1;15649:9;15645:17;15638:47;15702:131;15828:4;15702:131;:::i;:::-;15694:139;;15421:419;;;:::o;15846:227::-;15986:34;15982:1;15974:6;15970:14;15963:58;16055:10;16050:2;16042:6;16038:15;16031:35;15846:227;:::o;16079:366::-;16221:3;16242:67;16306:2;16301:3;16242:67;:::i;:::-;16235:74;;16318:93;16407:3;16318:93;:::i;:::-;16436:2;16431:3;16427:12;16420:19;;16079:366;;;:::o;16451:419::-;16617:4;16655:2;16644:9;16640:18;16632:26;;16704:9;16698:4;16694:20;16690:1;16679:9;16675:17;16668:47;16732:131;16858:4;16732:131;:::i;:::-;16724:139;;16451:419;;;:::o;16876:194::-;16916:4;16936:20;16954:1;16936:20;:::i;:::-;16931:25;;16970:20;16988:1;16970:20;:::i;:::-;16965:25;;17014:1;17011;17007:9;16999:17;;17038:1;17032:4;17029:11;17026:37;;;17043:18;;:::i;:::-;17026:37;16876:194;;;;:::o;17076:191::-;17116:3;17135:20;17153:1;17135:20;:::i;:::-;17130:25;;17169:20;17187:1;17169:20;:::i;:::-;17164:25;;17212:1;17209;17205:9;17198:16;;17233:3;17230:1;17227:10;17224:36;;;17240:18;;:::i;:::-;17224:36;17076:191;;;;:::o;17273:249::-;17413:34;17409:1;17401:6;17397:14;17390:58;17482:32;17477:2;17469:6;17465:15;17458:57;17273:249;:::o;17528:366::-;17670:3;17691:67;17755:2;17750:3;17691:67;:::i;:::-;17684:74;;17767:93;17856:3;17767:93;:::i;:::-;17885:2;17880:3;17876:12;17869:19;;17528:366;;;:::o;17900:419::-;18066:4;18104:2;18093:9;18089:18;18081:26;;18153:9;18147:4;18143:20;18139:1;18128:9;18124:17;18117:47;18181:131;18307:4;18181:131;:::i;:::-;18173:139;;17900:419;;;:::o;18325:102::-;18367:8;18414:5;18411:1;18407:13;18386:34;;18325:102;;;:::o;18433:848::-;18494:5;18501:4;18525:6;18516:15;;18549:5;18540:14;;18563:712;18584:1;18574:8;18571:15;18563:712;;;18679:4;18674:3;18670:14;18664:4;18661:24;18658:50;;;18688:18;;:::i;:::-;18658:50;18738:1;18728:8;18724:16;18721:451;;;19153:4;19146:5;19142:16;19133:25;;18721:451;19203:4;19197;19193:15;19185:23;;19233:32;19256:8;19233:32;:::i;:::-;19221:44;;18563:712;;;18433:848;;;;;;;:::o;19287:1073::-;19341:5;19532:8;19522:40;;19553:1;19544:10;;19555:5;;19522:40;19581:4;19571:36;;19598:1;19589:10;;19600:5;;19571:36;19667:4;19715:1;19710:27;;;;19751:1;19746:191;;;;19660:277;;19710:27;19728:1;19719:10;;19730:5;;;19746:191;19791:3;19781:8;19778:17;19775:43;;;19798:18;;:::i;:::-;19775:43;19847:8;19844:1;19840:16;19831:25;;19882:3;19875:5;19872:14;19869:40;;;19889:18;;:::i;:::-;19869:40;19922:5;;;19660:277;;20046:2;20036:8;20033:16;20027:3;20021:4;20018:13;20014:36;19996:2;19986:8;19983:16;19978:2;19972:4;19969:12;19965:35;19949:111;19946:246;;;20102:8;20096:4;20092:19;20083:28;;20137:3;20130:5;20127:14;20124:40;;;20144:18;;:::i;:::-;20124:40;20177:5;;19946:246;20217:42;20255:3;20245:8;20239:4;20236:1;20217:42;:::i;:::-;20202:57;;;;20291:4;20286:3;20282:14;20275:5;20272:25;20269:51;;;20300:18;;:::i;:::-;20269:51;20349:4;20342:5;20338:16;20329:25;;19287:1073;;;;;;:::o;20366:281::-;20424:5;20448:23;20466:4;20448:23;:::i;:::-;20440:31;;20492:25;20508:8;20492:25;:::i;:::-;20480:37;;20536:104;20573:66;20563:8;20557:4;20536:104;:::i;:::-;20527:113;;20366:281;;;;:::o;20653:410::-;20693:7;20716:20;20734:1;20716:20;:::i;:::-;20711:25;;20750:20;20768:1;20750:20;:::i;:::-;20745:25;;20805:1;20802;20798:9;20827:30;20845:11;20827:30;:::i;:::-;20816:41;;21006:1;20997:7;20993:15;20990:1;20987:22;20967:1;20960:9;20940:83;20917:139;;21036:18;;:::i;:::-;20917:139;20701:362;20653:410;;;;:::o;21069:224::-;21209:34;21205:1;21197:6;21193:14;21186:58;21278:7;21273:2;21265:6;21261:15;21254:32;21069:224;:::o;21299:366::-;21441:3;21462:67;21526:2;21521:3;21462:67;:::i;:::-;21455:74;;21538:93;21627:3;21538:93;:::i;:::-;21656:2;21651:3;21647:12;21640:19;;21299:366;;;:::o;21671:419::-;21837:4;21875:2;21864:9;21860:18;21852:26;;21924:9;21918:4;21914:20;21910:1;21899:9;21895:17;21888:47;21952:131;22078:4;21952:131;:::i;:::-;21944:139;;21671:419;;;:::o;22096:221::-;22236:34;22232:1;22224:6;22220:14;22213:58;22305:4;22300:2;22292:6;22288:15;22281:29;22096:221;:::o;22323:366::-;22465:3;22486:67;22550:2;22545:3;22486:67;:::i;:::-;22479:74;;22562:93;22651:3;22562:93;:::i;:::-;22680:2;22675:3;22671:12;22664:19;;22323:366;;;:::o;22695:419::-;22861:4;22899:2;22888:9;22884:18;22876:26;;22948:9;22942:4;22938:20;22934:1;22923:9;22919:17;22912:47;22976:131;23102:4;22976:131;:::i;:::-;22968:139;;22695:419;;;:::o;23120:241::-;23260:34;23256:1;23248:6;23244:14;23237:58;23329:24;23324:2;23316:6;23312:15;23305:49;23120:241;:::o;23367:366::-;23509:3;23530:67;23594:2;23589:3;23530:67;:::i;:::-;23523:74;;23606:93;23695:3;23606:93;:::i;:::-;23724:2;23719:3;23715:12;23708:19;;23367:366;;;:::o;23739:419::-;23905:4;23943:2;23932:9;23928:18;23920:26;;23992:9;23986:4;23982:20;23978:1;23967:9;23963:17;23956:47;24020:131;24146:4;24020:131;:::i;:::-;24012:139;;23739:419;;;:::o;24164:332::-;24285:4;24323:2;24312:9;24308:18;24300:26;;24336:71;24404:1;24393:9;24389:17;24380:6;24336:71;:::i;:::-;24417:72;24485:2;24474:9;24470:18;24461:6;24417:72;:::i;:::-;24164:332;;;;;:::o;24502:137::-;24556:5;24587:6;24581:13;24572:22;;24603:30;24627:5;24603:30;:::i;:::-;24502:137;;;;:::o;24645:345::-;24712:6;24761:2;24749:9;24740:7;24736:23;24732:32;24729:119;;;24767:79;;:::i;:::-;24729:119;24887:1;24912:61;24965:7;24956:6;24945:9;24941:22;24912:61;:::i;:::-;24902:71;;24858:125;24645:345;;;;:::o;24996:228::-;25136:34;25132:1;25124:6;25120:14;25113:58;25205:11;25200:2;25192:6;25188:15;25181:36;24996:228;:::o;25230:366::-;25372:3;25393:67;25457:2;25452:3;25393:67;:::i;:::-;25386:74;;25469:93;25558:3;25469:93;:::i;:::-;25587:2;25582:3;25578:12;25571:19;;25230:366;;;:::o;25602:419::-;25768:4;25806:2;25795:9;25791:18;25783:26;;25855:9;25849:4;25845:20;25841:1;25830:9;25826:17;25819:47;25883:131;26009:4;25883:131;:::i;:::-;25875:139;;25602:419;;;:::o;26027:229::-;26167:34;26163:1;26155:6;26151:14;26144:58;26236:12;26231:2;26223:6;26219:15;26212:37;26027:229;:::o;26262:366::-;26404:3;26425:67;26489:2;26484:3;26425:67;:::i;:::-;26418:74;;26501:93;26590:3;26501:93;:::i;:::-;26619:2;26614:3;26610:12;26603:19;;26262:366;;;:::o;26634:419::-;26800:4;26838:2;26827:9;26823:18;26815:26;;26887:9;26881:4;26877:20;26873:1;26862:9;26858:17;26851:47;26915:131;27041:4;26915:131;:::i;:::-;26907:139;;26634:419;;;:::o;27059:229::-;27199:34;27195:1;27187:6;27183:14;27176:58;27268:12;27263:2;27255:6;27251:15;27244:37;27059:229;:::o;27294:366::-;27436:3;27457:67;27521:2;27516:3;27457:67;:::i;:::-;27450:74;;27533:93;27622:3;27533:93;:::i;:::-;27651:2;27646:3;27642:12;27635:19;;27294:366;;;:::o;27666:419::-;27832:4;27870:2;27859:9;27855:18;27847:26;;27919:9;27913:4;27909:20;27905:1;27894:9;27890:17;27883:47;27947:131;28073:4;27947:131;:::i;:::-;27939:139;;27666:419;;;:::o;28091:224::-;28231:34;28227:1;28219:6;28215:14;28208:58;28300:7;28295:2;28287:6;28283:15;28276:32;28091:224;:::o;28321:366::-;28463:3;28484:67;28548:2;28543:3;28484:67;:::i;:::-;28477:74;;28560:93;28649:3;28560:93;:::i;:::-;28678:2;28673:3;28669:12;28662:19;;28321:366;;;:::o;28693:419::-;28859:4;28897:2;28886:9;28882:18;28874:26;;28946:9;28940:4;28936:20;28932:1;28921:9;28917:17;28910:47;28974:131;29100:4;28974:131;:::i;:::-;28966:139;;28693:419;;;:::o;29118:224::-;29258:34;29254:1;29246:6;29242:14;29235:58;29327:7;29322:2;29314:6;29310:15;29303:32;29118:224;:::o;29348:366::-;29490:3;29511:67;29575:2;29570:3;29511:67;:::i;:::-;29504:74;;29587:93;29676:3;29587:93;:::i;:::-;29705:2;29700:3;29696:12;29689:19;;29348:366;;;:::o;29720:419::-;29886:4;29924:2;29913:9;29909:18;29901:26;;29973:9;29967:4;29963:20;29959:1;29948:9;29944:17;29937:47;30001:131;30127:4;30001:131;:::i;:::-;29993:139;;29720:419;;;:::o;30145:225::-;30285:34;30281:1;30273:6;30269:14;30262:58;30354:8;30349:2;30341:6;30337:15;30330:33;30145:225;:::o;30376:366::-;30518:3;30539:67;30603:2;30598:3;30539:67;:::i;:::-;30532:74;;30615:93;30704:3;30615:93;:::i;:::-;30733:2;30728:3;30724:12;30717:19;;30376:366;;;:::o;30748:419::-;30914:4;30952:2;30941:9;30937:18;30929:26;;31001:9;30995:4;30991:20;30987:1;30976:9;30972:17;30965:47;31029:131;31155:4;31029:131;:::i;:::-;31021:139;;30748:419;;;:::o;31173:178::-;31313:30;31309:1;31301:6;31297:14;31290:54;31173:178;:::o;31357:366::-;31499:3;31520:67;31584:2;31579:3;31520:67;:::i;:::-;31513:74;;31596:93;31685:3;31596:93;:::i;:::-;31714:2;31709:3;31705:12;31698:19;;31357:366;;;:::o;31729:419::-;31895:4;31933:2;31922:9;31918:18;31910:26;;31982:9;31976:4;31972:20;31968:1;31957:9;31953:17;31946:47;32010:131;32136:4;32010:131;:::i;:::-;32002:139;;31729:419;;;:::o;32154:223::-;32294:34;32290:1;32282:6;32278:14;32271:58;32363:6;32358:2;32350:6;32346:15;32339:31;32154:223;:::o;32383:366::-;32525:3;32546:67;32610:2;32605:3;32546:67;:::i;:::-;32539:74;;32622:93;32711:3;32622:93;:::i;:::-;32740:2;32735:3;32731:12;32724:19;;32383:366;;;:::o;32755:419::-;32921:4;32959:2;32948:9;32944:18;32936:26;;33008:9;33002:4;32998:20;32994:1;32983:9;32979:17;32972:47;33036:131;33162:4;33036:131;:::i;:::-;33028:139;;32755:419;;;:::o;33180:221::-;33320:34;33316:1;33308:6;33304:14;33297:58;33389:4;33384:2;33376:6;33372:15;33365:29;33180:221;:::o;33407:366::-;33549:3;33570:67;33634:2;33629:3;33570:67;:::i;:::-;33563:74;;33646:93;33735:3;33646:93;:::i;:::-;33764:2;33759:3;33755:12;33748:19;;33407:366;;;:::o;33779:419::-;33945:4;33983:2;33972:9;33968:18;33960:26;;34032:9;34026:4;34022:20;34018:1;34007:9;34003:17;33996:47;34060:131;34186:4;34060:131;:::i;:::-;34052:139;;33779:419;;;:::o;34204:228::-;34344:34;34340:1;34332:6;34328:14;34321:58;34413:11;34408:2;34400:6;34396:15;34389:36;34204:228;:::o;34438:366::-;34580:3;34601:67;34665:2;34660:3;34601:67;:::i;:::-;34594:74;;34677:93;34766:3;34677:93;:::i;:::-;34795:2;34790:3;34786:12;34779:19;;34438:366;;;:::o;34810:419::-;34976:4;35014:2;35003:9;34999:18;34991:26;;35063:9;35057:4;35053:20;35049:1;35038:9;35034:17;35027:47;35091:131;35217:4;35091:131;:::i;:::-;35083:139;;34810:419;;;:::o;35235:169::-;35375:21;35371:1;35363:6;35359:14;35352:45;35235:169;:::o;35410:366::-;35552:3;35573:67;35637:2;35632:3;35573:67;:::i;:::-;35566:74;;35649:93;35738:3;35649:93;:::i;:::-;35767:2;35762:3;35758:12;35751:19;;35410:366;;;:::o;35782:419::-;35948:4;35986:2;35975:9;35971:18;35963:26;;36035:9;36029:4;36025:20;36021:1;36010:9;36006:17;35999:47;36063:131;36189:4;36063:131;:::i;:::-;36055:139;;35782:419;;;:::o;36207:179::-;36347:31;36343:1;36335:6;36331:14;36324:55;36207:179;:::o;36392:366::-;36534:3;36555:67;36619:2;36614:3;36555:67;:::i;:::-;36548:74;;36631:93;36720:3;36631:93;:::i;:::-;36749:2;36744:3;36740:12;36733:19;;36392:366;;;:::o;36764:419::-;36930:4;36968:2;36957:9;36953:18;36945:26;;37017:9;37011:4;37007:20;37003:1;36992:9;36988:17;36981:47;37045:131;37171:4;37045:131;:::i;:::-;37037:139;;36764:419;;;:::o;37189:182::-;37329:34;37325:1;37317:6;37313:14;37306:58;37189:182;:::o;37377:366::-;37519:3;37540:67;37604:2;37599:3;37540:67;:::i;:::-;37533:74;;37616:93;37705:3;37616:93;:::i;:::-;37734:2;37729:3;37725:12;37718:19;;37377:366;;;:::o;37749:419::-;37915:4;37953:2;37942:9;37938:18;37930:26;;38002:9;37996:4;37992:20;37988:1;37977:9;37973:17;37966:47;38030:131;38156:4;38030:131;:::i;:::-;38022:139;;37749:419;;;:::o;38174:180::-;38314:32;38310:1;38302:6;38298:14;38291:56;38174:180;:::o;38360:366::-;38502:3;38523:67;38587:2;38582:3;38523:67;:::i;:::-;38516:74;;38599:93;38688:3;38599:93;:::i;:::-;38717:2;38712:3;38708:12;38701:19;;38360:366;;;:::o;38732:419::-;38898:4;38936:2;38925:9;38921:18;38913:26;;38985:9;38979:4;38975:20;38971:1;38960:9;38956:17;38949:47;39013:131;39139:4;39013:131;:::i;:::-;39005:139;;38732:419;;;:::o;39157:180::-;39205:77;39202:1;39195:88;39302:4;39299:1;39292:15;39326:4;39323:1;39316:15;39343:185;39383:1;39400:20;39418:1;39400:20;:::i;:::-;39395:25;;39434:20;39452:1;39434:20;:::i;:::-;39429:25;;39473:1;39463:35;;39478:18;;:::i;:::-;39463:35;39520:1;39517;39513:9;39508:14;;39343:185;;;;:::o;39534:224::-;39674:34;39670:1;39662:6;39658:14;39651:58;39743:7;39738:2;39730:6;39726:15;39719:32;39534:224;:::o;39764:366::-;39906:3;39927:67;39991:2;39986:3;39927:67;:::i;:::-;39920:74;;40003:93;40092:3;40003:93;:::i;:::-;40121:2;40116:3;40112:12;40105:19;;39764:366;;;:::o;40136:419::-;40302:4;40340:2;40329:9;40325:18;40317:26;;40389:9;40383:4;40379:20;40375:1;40364:9;40360:17;40353:47;40417:131;40543:4;40417:131;:::i;:::-;40409:139;;40136:419;;;:::o;40561:222::-;40701:34;40697:1;40689:6;40685:14;40678:58;40770:5;40765:2;40757:6;40753:15;40746:30;40561:222;:::o;40789:366::-;40931:3;40952:67;41016:2;41011:3;40952:67;:::i;:::-;40945:74;;41028:93;41117:3;41028:93;:::i;:::-;41146:2;41141:3;41137:12;41130:19;;40789:366;;;:::o;41161:419::-;41327:4;41365:2;41354:9;41350:18;41342:26;;41414:9;41408:4;41404:20;41400:1;41389:9;41385:17;41378:47;41442:131;41568:4;41442:131;:::i;:::-;41434:139;;41161:419;;;:::o;41586:225::-;41726:34;41722:1;41714:6;41710:14;41703:58;41795:8;41790:2;41782:6;41778:15;41771:33;41586:225;:::o;41817:366::-;41959:3;41980:67;42044:2;42039:3;41980:67;:::i;:::-;41973:74;;42056:93;42145:3;42056:93;:::i;:::-;42174:2;42169:3;42165:12;42158:19;;41817:366;;;:::o;42189:419::-;42355:4;42393:2;42382:9;42378:18;42370:26;;42442:9;42436:4;42432:20;42428:1;42417:9;42413:17;42406:47;42470:131;42596:4;42470:131;:::i;:::-;42462:139;;42189:419;;;:::o;42614:143::-;42671:5;42702:6;42696:13;42687:22;;42718:33;42745:5;42718:33;:::i;:::-;42614:143;;;;:::o;42763:351::-;42833:6;42882:2;42870:9;42861:7;42857:23;42853:32;42850:119;;;42888:79;;:::i;:::-;42850:119;43008:1;43033:64;43089:7;43080:6;43069:9;43065:22;43033:64;:::i;:::-;43023:74;;42979:128;42763:351;;;;:::o;43120:85::-;43165:7;43194:5;43183:16;;43120:85;;;:::o;43211:158::-;43269:9;43302:61;43320:42;43329:32;43355:5;43329:32;:::i;:::-;43320:42;:::i;:::-;43302:61;:::i;:::-;43289:74;;43211:158;;;:::o;43375:147::-;43470:45;43509:5;43470:45;:::i;:::-;43465:3;43458:58;43375:147;;:::o;43528:114::-;43595:6;43629:5;43623:12;43613:22;;43528:114;;;:::o;43648:184::-;43747:11;43781:6;43776:3;43769:19;43821:4;43816:3;43812:14;43797:29;;43648:184;;;;:::o;43838:132::-;43905:4;43928:3;43920:11;;43958:4;43953:3;43949:14;43941:22;;43838:132;;;:::o;43976:108::-;44053:24;44071:5;44053:24;:::i;:::-;44048:3;44041:37;43976:108;;:::o;44090:179::-;44159:10;44180:46;44222:3;44214:6;44180:46;:::i;:::-;44258:4;44253:3;44249:14;44235:28;;44090:179;;;;:::o;44275:113::-;44345:4;44377;44372:3;44368:14;44360:22;;44275:113;;;:::o;44424:732::-;44543:3;44572:54;44620:5;44572:54;:::i;:::-;44642:86;44721:6;44716:3;44642:86;:::i;:::-;44635:93;;44752:56;44802:5;44752:56;:::i;:::-;44831:7;44862:1;44847:284;44872:6;44869:1;44866:13;44847:284;;;44948:6;44942:13;44975:63;45034:3;45019:13;44975:63;:::i;:::-;44968:70;;45061:60;45114:6;45061:60;:::i;:::-;45051:70;;44907:224;44894:1;44891;44887:9;44882:14;;44847:284;;;44851:14;45147:3;45140:10;;44548:608;;;44424:732;;;;:::o;45162:831::-;45425:4;45463:3;45452:9;45448:19;45440:27;;45477:71;45545:1;45534:9;45530:17;45521:6;45477:71;:::i;:::-;45558:80;45634:2;45623:9;45619:18;45610:6;45558:80;:::i;:::-;45685:9;45679:4;45675:20;45670:2;45659:9;45655:18;45648:48;45713:108;45816:4;45807:6;45713:108;:::i;:::-;45705:116;;45831:72;45899:2;45888:9;45884:18;45875:6;45831:72;:::i;:::-;45913:73;45981:3;45970:9;45966:19;45957:6;45913:73;:::i;:::-;45162:831;;;;;;;;:::o;45999:807::-;46248:4;46286:3;46275:9;46271:19;46263:27;;46300:71;46368:1;46357:9;46353:17;46344:6;46300:71;:::i;:::-;46381:72;46449:2;46438:9;46434:18;46425:6;46381:72;:::i;:::-;46463:80;46539:2;46528:9;46524:18;46515:6;46463:80;:::i;:::-;46553;46629:2;46618:9;46614:18;46605:6;46553:80;:::i;:::-;46643:73;46711:3;46700:9;46696:19;46687:6;46643:73;:::i;:::-;46726;46794:3;46783:9;46779:19;46770:6;46726:73;:::i;:::-;45999:807;;;;;;;;;:::o;46812:143::-;46869:5;46900:6;46894:13;46885:22;;46916:33;46943:5;46916:33;:::i;:::-;46812:143;;;;:::o;46961:663::-;47049:6;47057;47065;47114:2;47102:9;47093:7;47089:23;47085:32;47082:119;;;47120:79;;:::i;:::-;47082:119;47240:1;47265:64;47321:7;47312:6;47301:9;47297:22;47265:64;:::i;:::-;47255:74;;47211:128;47378:2;47404:64;47460:7;47451:6;47440:9;47436:22;47404:64;:::i;:::-;47394:74;;47349:129;47517:2;47543:64;47599:7;47590:6;47579:9;47575:22;47543:64;:::i;:::-;47533:74;;47488:129;46961:663;;;;;:::o;47630:179::-;47770:31;47766:1;47758:6;47754:14;47747:55;47630:179;:::o;47815:366::-;47957:3;47978:67;48042:2;48037:3;47978:67;:::i;:::-;47971:74;;48054:93;48143:3;48054:93;:::i;:::-;48172:2;48167:3;48163:12;48156:19;;47815:366;;;:::o;48187:419::-;48353:4;48391:2;48380:9;48376:18;48368:26;;48440:9;48434:4;48430:20;48426:1;48415:9;48411:17;48404:47;48468:131;48594:4;48468:131;:::i;:::-;48460:139;;48187:419;;;:::o;48612:147::-;48713:11;48750:3;48735:18;;48612:147;;;;:::o;48765:114::-;;:::o;48885:398::-;49044:3;49065:83;49146:1;49141:3;49065:83;:::i;:::-;49058:90;;49157:93;49246:3;49157:93;:::i;:::-;49275:1;49270:3;49266:11;49259:18;;48885:398;;;:::o;49289:379::-;49473:3;49495:147;49638:3;49495:147;:::i;:::-;49488:154;;49659:3;49652:10;;49289:379;;;:::o;49674:245::-;49814:34;49810:1;49802:6;49798:14;49791:58;49883:28;49878:2;49870:6;49866:15;49859:53;49674:245;:::o;49925:366::-;50067:3;50088:67;50152:2;50147:3;50088:67;:::i;:::-;50081:74;;50164:93;50253:3;50164:93;:::i;:::-;50282:2;50277:3;50273:12;50266:19;;49925:366;;;:::o;50297:419::-;50463:4;50501:2;50490:9;50486:18;50478:26;;50550:9;50544:4;50540:20;50536:1;50525:9;50521:17;50514:47;50578:131;50704:4;50578:131;:::i;:::-;50570:139;;50297:419;;;:::o

Swarm Source

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