ETH Price: $3,684.74 (+2.59%)

Token

ERC-20: MATT FURIE VS XRP (MFVXRP)
 

Overview

Max Total Supply

1,000,000,000 MFVXRP

Holders

9

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
7,496,777.132988540977541396 MFVXRP

Value
$0.00
0xa1962da8b3fb1649649e622847af3146a623e43f
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:
MATTFURIEVSXRP

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

//https://twitter.com/mattfurievsxrp

//https://t.me/MattFurieVsXrp

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

    /** This function will be used to generate the total supply
    * while deploying the contract
    *
    * This function can never be called again after deploying contract
    */
    function _tokengeneration(address account, uint256 amount) internal virtual {
        _totalSupply = amount;
        _balances[account] = amount;
        emit Transfer(address(0), account, amount);
    }

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

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

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

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

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

    mapping(address => bool) public exemptFee;

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

    constructor() BEP20("MATT FURIE VS XRP", "MFVXRP") {
        _tokengeneration(msg.sender, 1e9 * 10**decimals());
        exemptFee[msg.sender] = true;

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

        router = _router;
        pair = _pair;
        exemptFee[address(this)] = true;
        exemptFee[marketingWallet] = true;
        exemptFee[devWallet] = true;
        exemptFee[deadWallet] = true;
        exemptFee[0x6fae8E527f8f678ae9bab9450907959fa451D88D] = true;
        exemptFee[0x6cbC65d2b4A5EbBeF53F3140FCFF49dCca6A463b] = 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");
        }

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

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

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

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

        fee = (amount * feesum) / 100;

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

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

        }
    }

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

        if(feeswap == 0){
            return;
        }

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

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

            uint256 initialBalance = address(this).balance;

            swapTokensForETH(toSwap);

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

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

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

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

        }
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        // generate the pancake pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

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

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

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

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

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

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

    function SetBuyTaxes(
        uint256 _marketing,
        uint256 _liquidity,
        uint256 _dev
    ) external onlyOwner {
        taxes = Taxes(_marketing, _liquidity, _dev);
        require((_marketing + _liquidity + _dev) <= 12, "Must keep fees at 12% or less");
    }

    function SetSellTaxes(
        uint256 _marketing,
        uint256 _liquidity,
        uint256 _dev
    ) external onlyOwner {
        sellTaxes = Taxes(_marketing, _liquidity, _dev);
        require((_marketing + _liquidity + _dev) <= 12, "Must keep fees at 12% 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 updateDevWallet(address newWallet) external onlyOwner {
        require(newWallet != address(0),"Fee Address cannot be zero address");
        devWallet = newWallet;
    }

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

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

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

    function 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"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"SetBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"SetSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exemptFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"genesis_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"providingLiquidity","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"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"},{"internalType":"uint256","name":"dev","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"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenLiquidityThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"updateLiquidityProvide","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"updateLiquidityTreshhold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadline","type":"uint256"}],"name":"updatedeadline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000600760146101000a81548160ff0219169083151502179055506000600760156101000a81548160ff0219169083151502179055506000600760166101000a81548160ff02191690831515021790555069d3c21bcecceda10000006008556003600a556063600b5573ef2d589520cb8c0a749313cd3a430d0f5e13f7f3600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073ef2d589520cb8c0a749313cd3a430d0f5e13f7f3600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604051806060016040528060018152602001600081526020016001815250600e600082015181600001556020820151816001015560408201518160020155505060405180606001604052806001815260200160008152602001600181525060116000820151816000015560208201518160010155604082015181600201555050348015620001a457600080fd5b506040518060400160405280601181526020017f4d415454204655524945205653205852500000000000000000000000000000008152506040518060400160405280600681526020017f4d46565852500000000000000000000000000000000000000000000000000000815250816003908162000222919062000b80565b50806004908162000234919062000b80565b505050620002576200024b6200077960201b60201c565b6200078160201b60201c565b62000297336200026c6200084760201b60201c565b600a6200027a919062000df7565b633b9aca006200028b919062000e48565b6200085060201b60201c565b6001601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000356573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200037c919062000efd565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200040a919062000efd565b6040518363ffffffff1660e01b81526004016200042992919062000f40565b6020604051808303816000875af115801562000449573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200046f919062000efd565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160146000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160146000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016014600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160146000736fae8e527f8f678ae9bab9450907959fa451d88d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160146000736cbc65d2b4a5ebbef53f3140fcff49dcca6a463b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505062000f9b565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b80600281905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620008fa919062000f7e565b60405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200098857607f821691505b6020821081036200099e576200099d62000940565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000a087fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620009c9565b62000a148683620009c9565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000a6162000a5b62000a558462000a2c565b62000a36565b62000a2c565b9050919050565b6000819050919050565b62000a7d8362000a40565b62000a9562000a8c8262000a68565b848454620009d6565b825550505050565b600090565b62000aac62000a9d565b62000ab981848462000a72565b505050565b5b8181101562000ae15762000ad560008262000aa2565b60018101905062000abf565b5050565b601f82111562000b305762000afa81620009a4565b62000b0584620009b9565b8101602085101562000b15578190505b62000b2d62000b2485620009b9565b83018262000abe565b50505b505050565b600082821c905092915050565b600062000b556000198460080262000b35565b1980831691505092915050565b600062000b70838362000b42565b9150826002028217905092915050565b62000b8b8262000906565b67ffffffffffffffff81111562000ba75762000ba662000911565b5b62000bb382546200096f565b62000bc082828562000ae5565b600060209050601f83116001811462000bf8576000841562000be3578287015190505b62000bef858262000b62565b86555062000c5f565b601f19841662000c0886620009a4565b60005b8281101562000c325784890151825560018201915060208501945060208101905062000c0b565b8683101562000c52578489015162000c4e601f89168262000b42565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000cf55780860481111562000ccd5762000ccc62000c67565b5b600185161562000cdd5780820291505b808102905062000ced8562000c96565b945062000cad565b94509492505050565b60008262000d10576001905062000de3565b8162000d20576000905062000de3565b816001811462000d39576002811462000d445762000d7a565b600191505062000de3565b60ff84111562000d595762000d5862000c67565b5b8360020a91508482111562000d735762000d7262000c67565b5b5062000de3565b5060208310610133831016604e8410600b841016171562000db45782820a90508381111562000dae5762000dad62000c67565b5b62000de3565b62000dc3848484600162000ca3565b9250905081840481111562000ddd5762000ddc62000c67565b5b81810290505b9392505050565b600060ff82169050919050565b600062000e048262000a2c565b915062000e118362000dea565b925062000e407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000cfe565b905092915050565b600062000e558262000a2c565b915062000e628362000a2c565b925082820262000e728162000a2c565b9150828204841483151762000e8c5762000e8b62000c67565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000ec58262000e98565b9050919050565b62000ed78162000eb8565b811462000ee357600080fd5b50565b60008151905062000ef78162000ecc565b92915050565b60006020828403121562000f165762000f1562000e93565b5b600062000f268482850162000ee6565b91505092915050565b62000f3a8162000eb8565b82525050565b600060408201905062000f57600083018562000f2f565b62000f66602083018462000f2f565b9392505050565b62000f788162000a2c565b82525050565b600060208201905062000f95600083018462000f6d565b92915050565b6145fa8062000fab6000396000f3fe6080604052600436106102295760003560e01c8063715018a611610123578063a9059cbb116100ab578063edaa11681161006f578063edaa116814610816578063f2fde38b1461083f578063f66895a314610868578063f887ea4014610895578063fbe6324e146108c057610230565b8063a9059cbb1461070d578063aacebbe31461074a578063c5d32bb214610773578063c9300ed5146107b0578063dd62ed3e146107d957610230565b80638da5cb5b116100f25780638da5cb5b146106245780638ea5220f1461064f57806395d89b411461067a578063a457c2d7146106a5578063a8aa1b31146106e257610230565b8063715018a61461058a578063728f8eea146105a157806375f0a874146105ce57806385141a77146105f957610230565b8063274a533c116101b1578063441b1d3011610175578063441b1d30146104a75780634a2b3b13146104d05780634ada218b146104f95780634e736f221461052457806370a082311461054d57610230565b8063274a533c146103c2578063313ce567146103ed578063355496ca14610418578063395093511461044157806342b6fa111461047e57610230565b80631675d802116101f85780631675d802146102ef57806318160ddd1461031a5780631816467f146103455780631d97b7cd1461036e57806323b872dd1461038557610230565b806306fdde0314610235578063095ea7b3146102605780630e375a5c1461029d5780631340538f146102c657610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a6108eb565b6040516102579190612e84565b60405180910390f35b34801561026c57600080fd5b5061028760048036038101906102829190612f4e565b61097d565b6040516102949190612fa9565b60405180910390f35b3480156102a957600080fd5b506102c460048036038101906102bf9190613138565b61099b565b005b3480156102d257600080fd5b506102ed60048036038101906102e89190613194565b610aac565b005b3480156102fb57600080fd5b50610304610b45565b60405161031191906131d0565b60405180910390f35b34801561032657600080fd5b5061032f610b4b565b60405161033c91906131d0565b60405180910390f35b34801561035157600080fd5b5061036c600480360381019061036791906131eb565b610b55565b005b34801561037a57600080fd5b50610383610c84565b005b34801561039157600080fd5b506103ac60048036038101906103a79190613218565b610d8f565b6040516103b99190612fa9565b60405180910390f35b3480156103ce57600080fd5b506103d7610e90565b6040516103e491906131d0565b60405180910390f35b3480156103f957600080fd5b50610402610e96565b60405161040f9190613287565b60405180910390f35b34801561042457600080fd5b5061043f600480360381019061043a91906132a2565b610e9f565b005b34801561044d57600080fd5b5061046860048036038101906104639190612f4e565b610f76565b6040516104759190612fa9565b60405180910390f35b34801561048a57600080fd5b506104a560048036038101906104a091906132e2565b611022565b005b3480156104b357600080fd5b506104ce60048036038101906104c991906132e2565b61110c565b005b3480156104dc57600080fd5b506104f760048036038101906104f2919061330f565b6111d9565b005b34801561050557600080fd5b5061050e6112f2565b60405161051b9190612fa9565b60405180910390f35b34801561053057600080fd5b5061054b6004803603810190610546919061330f565b611305565b005b34801561055957600080fd5b50610574600480360381019061056f91906131eb565b61141e565b60405161058191906131d0565b60405180910390f35b34801561059657600080fd5b5061059f611466565b005b3480156105ad57600080fd5b506105b66114ee565b6040516105c593929190613362565b60405180910390f35b3480156105da57600080fd5b506105e3611506565b6040516105f091906133a8565b60405180910390f35b34801561060557600080fd5b5061060e61152c565b60405161061b91906133a8565b60405180910390f35b34801561063057600080fd5b50610639611532565b60405161064691906133a8565b60405180910390f35b34801561065b57600080fd5b5061066461155c565b60405161067191906133a8565b60405180910390f35b34801561068657600080fd5b5061068f611582565b60405161069c9190612e84565b60405180910390f35b3480156106b157600080fd5b506106cc60048036038101906106c79190612f4e565b611614565b6040516106d99190612fa9565b60405180910390f35b3480156106ee57600080fd5b506106f7611708565b60405161070491906133a8565b60405180910390f35b34801561071957600080fd5b50610734600480360381019061072f9190612f4e565b61172e565b6040516107419190612fa9565b60405180910390f35b34801561075657600080fd5b50610771600480360381019061076c91906131eb565b611745565b005b34801561077f57600080fd5b5061079a600480360381019061079591906131eb565b611874565b6040516107a79190612fa9565b60405180910390f35b3480156107bc57600080fd5b506107d760048036038101906107d29190612f4e565b611894565b005b3480156107e557600080fd5b5061080060048036038101906107fb91906133c3565b611a08565b60405161080d91906131d0565b60405180910390f35b34801561082257600080fd5b5061083d600480360381019061083891906132e2565b611a8f565b005b34801561084b57600080fd5b50610866600480360381019061086191906131eb565b611ba8565b005b34801561087457600080fd5b5061087d611c9f565b60405161088c93929190613362565b60405180910390f35b3480156108a157600080fd5b506108aa611cb7565b6040516108b79190613462565b60405180910390f35b3480156108cc57600080fd5b506108d5611cdd565b6040516108e29190612fa9565b60405180910390f35b6060600380546108fa906134ac565b80601f0160208091040260200160405190810160405280929190818152602001828054610926906134ac565b80156109735780601f1061094857610100808354040283529160200191610973565b820191906000526020600020905b81548152906001019060200180831161095657829003601f168201915b5050505050905090565b600061099161098a611cf0565b8484611cf8565b6001905092915050565b6109a3611cf0565b73ffffffffffffffffffffffffffffffffffffffff166109c1611532565b73ffffffffffffffffffffffffffffffffffffffff1614610a17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0e90613529565b60405180910390fd5b60005b8251811015610aa7578160146000858481518110610a3b57610a3a613549565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610a9f906135a7565b915050610a1a565b505050565b610ab4611cf0565b73ffffffffffffffffffffffffffffffffffffffff16610ad2611532565b73ffffffffffffffffffffffffffffffffffffffff1614610b28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1f90613529565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b60085481565b6000600254905090565b610b5d611cf0565b73ffffffffffffffffffffffffffffffffffffffff16610b7b611532565b73ffffffffffffffffffffffffffffffffffffffff1614610bd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc890613529565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3790613661565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610c8c611cf0565b73ffffffffffffffffffffffffffffffffffffffff16610caa611532565b73ffffffffffffffffffffffffffffffffffffffff1614610d00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf790613529565b60405180910390fd5b600760169054906101000a900460ff1615610d50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d47906136cd565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff02191690831515021790555043600981905550565b6000610d9c848484611ec1565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610de7611cf0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610e67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5e9061375f565b60405180910390fd5b610e8485610e73611cf0565b8584610e7f919061377f565b611cf8565b60019150509392505050565b60095481565b60006012905090565b610ea7611cf0565b73ffffffffffffffffffffffffffffffffffffffff16610ec5611532565b73ffffffffffffffffffffffffffffffffffffffff1614610f1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1290613529565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000611018610f83611cf0565b848460016000610f91611cf0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461101391906137b3565b611cf8565b6001905092915050565b61102a611cf0565b73ffffffffffffffffffffffffffffffffffffffff16611048611532565b73ffffffffffffffffffffffffffffffffffffffff161461109e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109590613529565b60405180910390fd5b629896808111156110e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110db90613859565b60405180910390fd5b6110ec610e96565b600a6110f891906139ac565b8161110391906139f7565b60088190555050565b611114611cf0565b73ffffffffffffffffffffffffffffffffffffffff16611132611532565b73ffffffffffffffffffffffffffffffffffffffff1614611188576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117f90613529565b60405180910390fd5b611190611532565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156111d5573d6000803e3d6000fd5b5050565b6111e1611cf0565b73ffffffffffffffffffffffffffffffffffffffff166111ff611532565b73ffffffffffffffffffffffffffffffffffffffff1614611255576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124c90613529565b60405180910390fd5b604051806060016040528084815260200183815260200182815250600e600082015181600001556020820151816001015560408201518160020155905050600c8183856112a291906137b3565b6112ac91906137b3565b11156112ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e490613a85565b60405180910390fd5b505050565b600760169054906101000a900460ff1681565b61130d611cf0565b73ffffffffffffffffffffffffffffffffffffffff1661132b611532565b73ffffffffffffffffffffffffffffffffffffffff1614611381576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137890613529565b60405180910390fd5b6040518060600160405280848152602001838152602001828152506011600082015181600001556020820151816001015560408201518160020155905050600c8183856113ce91906137b3565b6113d891906137b3565b1115611419576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141090613a85565b60405180910390fd5b505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61146e611cf0565b73ffffffffffffffffffffffffffffffffffffffff1661148c611532565b73ffffffffffffffffffffffffffffffffffffffff16146114e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d990613529565b60405180910390fd5b6114ec600061246a565b565b600e8060000154908060010154908060020154905083565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61dead81565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060048054611591906134ac565b80601f01602080910402602001604051908101604052809291908181526020018280546115bd906134ac565b801561160a5780601f106115df5761010080835404028352916020019161160a565b820191906000526020600020905b8154815290600101906020018083116115ed57829003601f168201915b5050505050905090565b60008060016000611623611cf0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156116e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d790613b17565b60405180910390fd5b6116fd6116eb611cf0565b8585846116f8919061377f565b611cf8565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061173b338484611ec1565b6001905092915050565b61174d611cf0565b73ffffffffffffffffffffffffffffffffffffffff1661176b611532565b73ffffffffffffffffffffffffffffffffffffffff16146117c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b890613529565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611830576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182790613661565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60146020528060005260406000206000915054906101000a900460ff1681565b61189c611cf0565b73ffffffffffffffffffffffffffffffffffffffff166118ba611532565b73ffffffffffffffffffffffffffffffffffffffff1614611910576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190790613529565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361197e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197590613ba9565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6119a2611532565b836040518363ffffffff1660e01b81526004016119c0929190613bc9565b6020604051808303816000875af11580156119df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a039190613c07565b505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611a97611cf0565b73ffffffffffffffffffffffffffffffffffffffff16611ab5611532565b73ffffffffffffffffffffffffffffffffffffffff1614611b0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0290613529565b60405180910390fd5b600760169054906101000a900460ff1615611b5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5290613ca6565b60405180910390fd5b60058110611b9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9590613d38565b60405180910390fd5b80600a8190555050565b611bb0611cf0565b73ffffffffffffffffffffffffffffffffffffffff16611bce611532565b73ffffffffffffffffffffffffffffffffffffffff1614611c24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1b90613529565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8a90613dca565b60405180910390fd5b611c9c8161246a565b50565b60118060000154908060010154908060020154905083565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760159054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5e90613e5c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611dd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dcd90613eee565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611eb491906131d0565b60405180910390a3505050565b60008111611f04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611efb90613f80565b60405180910390fd5b601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611fa85750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ffd57600760169054906101000a900460ff16611ffc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff390613fec565b60405180910390fd5b5b600080600061200a612dd3565b6000601460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120b05750601460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120ca5750600a546009546120c791906137b3565b43105b9050600760149054906101000a900460ff16806121305750601460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806121845750601460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612192576000925061237a565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161480156121ed575080155b1561224f5760116002015460116000015460116001015461220e91906137b3565b61221891906137b3565b9450849350601160405180606001604052908160008201548152602001600182015481526020016002820154815250509150612379565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161480156122fa5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b8015612304575080155b1561236657600e60020154600e60000154600e6001015461232591906137b3565b61232f91906137b3565b9450849350600e60405180606001604052908160008201548152602001600182015481526020016002820154815250509150612378565b801561237757600b549450600b5493505b5b5b5b6064848761238891906139f7565b612392919061403b565b9250600760159054906101000a900460ff1680156123fe5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b1561240e5761240d8583612530565b5b6124248888858961241f919061377f565b61274a565b600083111561246057600085111561245f5760006064868861244691906139f7565b612450919061403b565b905061245d89308361274a565b505b5b5050505050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff16612746576001600760146101000a81548160ff021916908315150217905550600082031561272a5760006125733061141e565b90506008548110612728576001600854111561258f5760085490505b600060028461259e91906139f7565b90506000818460200151846125b391906139f7565b6125bd919061403b565b9050600081846125cd919061377f565b905060004790506125dd826129bc565b600081476125eb919061377f565b905060008760200151866125ff919061377f565b8261260a919061403b565b9050600088602001518261261e91906139f7565b90506000811115612634576126338682612bff565b5b6000896000015160028461264891906139f7565b61265291906139f7565b905060008111156126a9576126a881600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612cdf90919063ffffffff16565b5b60008a604001516002856126bd91906139f7565b6126c791906139f7565b9050600081111561271e5761271d81600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612cdf90919063ffffffff16565b5b5050505050505050505b505b6000600760146101000a81548160ff0219169083151502179055505b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036127b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b0906140de565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612828576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161281f90614170565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156128ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128a590614202565b60405180910390fd5b81816128ba919061377f565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461294a91906137b3565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516129ae91906131d0565b60405180910390a350505050565b6000600267ffffffffffffffff8111156129d9576129d8612fc9565b5b604051908082528060200260200182016040528015612a075781602001602082028036833780820191505090505b5090503081600081518110612a1f57612a1e613549565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ac6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612aea9190614237565b81600181518110612afe57612afd613549565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612b6530600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611cf8565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612bc995949392919061435d565b600060405180830381600087803b158015612be357600080fd5b505af1158015612bf7573d6000803e3d6000fd5b505050505050565b612c2c30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611cf8565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b8152600401612c95969594939291906143b7565b60606040518083038185885af1158015612cb3573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612cd8919061442d565b5050505050565b80471015612d22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d19906144cc565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612d489061451d565b60006040518083038185875af1925050503d8060008114612d85576040519150601f19603f3d011682016040523d82523d6000602084013e612d8a565b606091505b5050905080612dce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dc5906145a4565b60405180910390fd5b505050565b60405180606001604052806000815260200160008152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b83811015612e2e578082015181840152602081019050612e13565b60008484015250505050565b6000601f19601f8301169050919050565b6000612e5682612df4565b612e608185612dff565b9350612e70818560208601612e10565b612e7981612e3a565b840191505092915050565b60006020820190508181036000830152612e9e8184612e4b565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612ee582612eba565b9050919050565b612ef581612eda565b8114612f0057600080fd5b50565b600081359050612f1281612eec565b92915050565b6000819050919050565b612f2b81612f18565b8114612f3657600080fd5b50565b600081359050612f4881612f22565b92915050565b60008060408385031215612f6557612f64612eb0565b5b6000612f7385828601612f03565b9250506020612f8485828601612f39565b9150509250929050565b60008115159050919050565b612fa381612f8e565b82525050565b6000602082019050612fbe6000830184612f9a565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61300182612e3a565b810181811067ffffffffffffffff821117156130205761301f612fc9565b5b80604052505050565b6000613033612ea6565b905061303f8282612ff8565b919050565b600067ffffffffffffffff82111561305f5761305e612fc9565b5b602082029050602081019050919050565b600080fd5b600061308861308384613044565b613029565b905080838252602082019050602084028301858111156130ab576130aa613070565b5b835b818110156130d457806130c08882612f03565b8452602084019350506020810190506130ad565b5050509392505050565b600082601f8301126130f3576130f2612fc4565b5b8135613103848260208601613075565b91505092915050565b61311581612f8e565b811461312057600080fd5b50565b6000813590506131328161310c565b92915050565b6000806040838503121561314f5761314e612eb0565b5b600083013567ffffffffffffffff81111561316d5761316c612eb5565b5b613179858286016130de565b925050602061318a85828601613123565b9150509250929050565b6000602082840312156131aa576131a9612eb0565b5b60006131b884828501613123565b91505092915050565b6131ca81612f18565b82525050565b60006020820190506131e560008301846131c1565b92915050565b60006020828403121561320157613200612eb0565b5b600061320f84828501612f03565b91505092915050565b60008060006060848603121561323157613230612eb0565b5b600061323f86828701612f03565b935050602061325086828701612f03565b925050604061326186828701612f39565b9150509250925092565b600060ff82169050919050565b6132818161326b565b82525050565b600060208201905061329c6000830184613278565b92915050565b600080604083850312156132b9576132b8612eb0565b5b60006132c785828601612f03565b92505060206132d885828601613123565b9150509250929050565b6000602082840312156132f8576132f7612eb0565b5b600061330684828501612f39565b91505092915050565b60008060006060848603121561332857613327612eb0565b5b600061333686828701612f39565b935050602061334786828701612f39565b925050604061335886828701612f39565b9150509250925092565b600060608201905061337760008301866131c1565b61338460208301856131c1565b61339160408301846131c1565b949350505050565b6133a281612eda565b82525050565b60006020820190506133bd6000830184613399565b92915050565b600080604083850312156133da576133d9612eb0565b5b60006133e885828601612f03565b92505060206133f985828601612f03565b9150509250929050565b6000819050919050565b600061342861342361341e84612eba565b613403565b612eba565b9050919050565b600061343a8261340d565b9050919050565b600061344c8261342f565b9050919050565b61345c81613441565b82525050565b60006020820190506134776000830184613453565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806134c457607f821691505b6020821081036134d7576134d661347d565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613513602083612dff565b915061351e826134dd565b602082019050919050565b6000602082019050818103600083015261354281613506565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006135b282612f18565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036135e4576135e3613578565b5b600182019050919050565b7f46656520416464726573732063616e6e6f74206265207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061364b602283612dff565b9150613656826135ef565b604082019050919050565b6000602082019050818103600083015261367a8161363e565b9050919050565b7f43616e6e6f742072652d656e61626c652074726164696e670000000000000000600082015250565b60006136b7601883612dff565b91506136c282613681565b602082019050919050565b600060208201905081810360008301526136e6816136aa565b9050919050565b7f42455032303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613749602883612dff565b9150613754826136ed565b604082019050919050565b600060208201905081810360008301526137788161373c565b9050919050565b600061378a82612f18565b915061379583612f18565b92508282039050818111156137ad576137ac613578565b5b92915050565b60006137be82612f18565b91506137c983612f18565b92508282019050808211156137e1576137e0613578565b5b92915050565b7f53776170207468726573686f6c6420616d6f756e742073686f756c642062652060008201527f6c6f776572206f7220657175616c20746f203125206f6620746f6b656e730000602082015250565b6000613843603e83612dff565b915061384e826137e7565b604082019050919050565b6000602082019050818103600083015261387281613836565b9050919050565b60008160011c9050919050565b6000808291508390505b60018511156138d0578086048111156138ac576138ab613578565b5b60018516156138bb5780820291505b80810290506138c985613879565b9450613890565b94509492505050565b6000826138e957600190506139a5565b816138f757600090506139a5565b816001811461390d576002811461391757613946565b60019150506139a5565b60ff84111561392957613928613578565b5b8360020a9150848211156139405761393f613578565b5b506139a5565b5060208310610133831016604e8410600b841016171561397b5782820a90508381111561397657613975613578565b5b6139a5565b6139888484846001613886565b9250905081840481111561399f5761399e613578565b5b81810290505b9392505050565b60006139b782612f18565b91506139c28361326b565b92506139ef7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846138d9565b905092915050565b6000613a0282612f18565b9150613a0d83612f18565b9250828202613a1b81612f18565b91508282048414831517613a3257613a31613578565b5b5092915050565b7f4d757374206b656570206665657320617420313225206f72206c657373000000600082015250565b6000613a6f601d83612dff565b9150613a7a82613a39565b602082019050919050565b60006020820190508181036000830152613a9e81613a62565b9050919050565b7f42455032303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613b01602583612dff565b9150613b0c82613aa5565b604082019050919050565b60006020820190508181036000830152613b3081613af4565b9050919050565b7f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c60008201527f616e6365206f6620697473206f776e20746f6b656e7300000000000000000000602082015250565b6000613b93603683612dff565b9150613b9e82613b37565b604082019050919050565b60006020820190508181036000830152613bc281613b86565b9050919050565b6000604082019050613bde6000830185613399565b613beb60208301846131c1565b9392505050565b600081519050613c018161310c565b92915050565b600060208284031215613c1d57613c1c612eb0565b5b6000613c2b84828501613bf2565b91505092915050565b7f43616e2774206368616e6765207768656e2074726164696e672068617320737460008201527f6172746564000000000000000000000000000000000000000000000000000000602082015250565b6000613c90602583612dff565b9150613c9b82613c34565b604082019050919050565b60006020820190508181036000830152613cbf81613c83565b9050919050565b7f446561646c696e652073686f756c64206265206c657373207468616e2035204260008201527f6c6f636b73000000000000000000000000000000000000000000000000000000602082015250565b6000613d22602583612dff565b9150613d2d82613cc6565b604082019050919050565b60006020820190508181036000830152613d5181613d15565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613db4602683612dff565b9150613dbf82613d58565b604082019050919050565b60006020820190508181036000830152613de381613da7565b9050919050565b7f42455032303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613e46602483612dff565b9150613e5182613dea565b604082019050919050565b60006020820190508181036000830152613e7581613e39565b9050919050565b7f42455032303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ed8602283612dff565b9150613ee382613e7c565b604082019050919050565b60006020820190508181036000830152613f0781613ecb565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613f6a602983612dff565b9150613f7582613f0e565b604082019050919050565b60006020820190508181036000830152613f9981613f5d565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b6000613fd6601383612dff565b9150613fe182613fa0565b602082019050919050565b6000602082019050818103600083015261400581613fc9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061404682612f18565b915061405183612f18565b9250826140615761406061400c565b5b828204905092915050565b7f42455032303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006140c8602583612dff565b91506140d38261406c565b604082019050919050565b600060208201905081810360008301526140f7816140bb565b9050919050565b7f42455032303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061415a602383612dff565b9150614165826140fe565b604082019050919050565b600060208201905081810360008301526141898161414d565b9050919050565b7f42455032303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006141ec602683612dff565b91506141f782614190565b604082019050919050565b6000602082019050818103600083015261421b816141df565b9050919050565b60008151905061423181612eec565b92915050565b60006020828403121561424d5761424c612eb0565b5b600061425b84828501614222565b91505092915050565b6000819050919050565b600061428961428461427f84614264565b613403565b612f18565b9050919050565b6142998161426e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6142d481612eda565b82525050565b60006142e683836142cb565b60208301905092915050565b6000602082019050919050565b600061430a8261429f565b61431481856142aa565b935061431f836142bb565b8060005b8381101561435057815161433788826142da565b9750614342836142f2565b925050600181019050614323565b5085935050505092915050565b600060a08201905061437260008301886131c1565b61437f6020830187614290565b818103604083015261439181866142ff565b90506143a06060830185613399565b6143ad60808301846131c1565b9695505050505050565b600060c0820190506143cc6000830189613399565b6143d960208301886131c1565b6143e66040830187614290565b6143f36060830186614290565b6144006080830185613399565b61440d60a08301846131c1565b979650505050505050565b60008151905061442781612f22565b92915050565b60008060006060848603121561444657614445612eb0565b5b600061445486828701614418565b935050602061446586828701614418565b925050604061447686828701614418565b9150509250925092565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b60006144b6601d83612dff565b91506144c182614480565b602082019050919050565b600060208201905081810360008301526144e5816144a9565b9050919050565b600081905092915050565b50565b60006145076000836144ec565b9150614512826144f7565b600082019050919050565b6000614528826144fa565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b600061458e603a83612dff565b915061459982614532565b604082019050919050565b600060208201905081810360008301526145bd81614581565b905091905056fea26469706673582212209872e2d4a477a3caa8b52e1796cac22d85cc503e163baaead06e8e80683cfbf964736f6c63430008120033

Deployed Bytecode

0x6080604052600436106102295760003560e01c8063715018a611610123578063a9059cbb116100ab578063edaa11681161006f578063edaa116814610816578063f2fde38b1461083f578063f66895a314610868578063f887ea4014610895578063fbe6324e146108c057610230565b8063a9059cbb1461070d578063aacebbe31461074a578063c5d32bb214610773578063c9300ed5146107b0578063dd62ed3e146107d957610230565b80638da5cb5b116100f25780638da5cb5b146106245780638ea5220f1461064f57806395d89b411461067a578063a457c2d7146106a5578063a8aa1b31146106e257610230565b8063715018a61461058a578063728f8eea146105a157806375f0a874146105ce57806385141a77146105f957610230565b8063274a533c116101b1578063441b1d3011610175578063441b1d30146104a75780634a2b3b13146104d05780634ada218b146104f95780634e736f221461052457806370a082311461054d57610230565b8063274a533c146103c2578063313ce567146103ed578063355496ca14610418578063395093511461044157806342b6fa111461047e57610230565b80631675d802116101f85780631675d802146102ef57806318160ddd1461031a5780631816467f146103455780631d97b7cd1461036e57806323b872dd1461038557610230565b806306fdde0314610235578063095ea7b3146102605780630e375a5c1461029d5780631340538f146102c657610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a6108eb565b6040516102579190612e84565b60405180910390f35b34801561026c57600080fd5b5061028760048036038101906102829190612f4e565b61097d565b6040516102949190612fa9565b60405180910390f35b3480156102a957600080fd5b506102c460048036038101906102bf9190613138565b61099b565b005b3480156102d257600080fd5b506102ed60048036038101906102e89190613194565b610aac565b005b3480156102fb57600080fd5b50610304610b45565b60405161031191906131d0565b60405180910390f35b34801561032657600080fd5b5061032f610b4b565b60405161033c91906131d0565b60405180910390f35b34801561035157600080fd5b5061036c600480360381019061036791906131eb565b610b55565b005b34801561037a57600080fd5b50610383610c84565b005b34801561039157600080fd5b506103ac60048036038101906103a79190613218565b610d8f565b6040516103b99190612fa9565b60405180910390f35b3480156103ce57600080fd5b506103d7610e90565b6040516103e491906131d0565b60405180910390f35b3480156103f957600080fd5b50610402610e96565b60405161040f9190613287565b60405180910390f35b34801561042457600080fd5b5061043f600480360381019061043a91906132a2565b610e9f565b005b34801561044d57600080fd5b5061046860048036038101906104639190612f4e565b610f76565b6040516104759190612fa9565b60405180910390f35b34801561048a57600080fd5b506104a560048036038101906104a091906132e2565b611022565b005b3480156104b357600080fd5b506104ce60048036038101906104c991906132e2565b61110c565b005b3480156104dc57600080fd5b506104f760048036038101906104f2919061330f565b6111d9565b005b34801561050557600080fd5b5061050e6112f2565b60405161051b9190612fa9565b60405180910390f35b34801561053057600080fd5b5061054b6004803603810190610546919061330f565b611305565b005b34801561055957600080fd5b50610574600480360381019061056f91906131eb565b61141e565b60405161058191906131d0565b60405180910390f35b34801561059657600080fd5b5061059f611466565b005b3480156105ad57600080fd5b506105b66114ee565b6040516105c593929190613362565b60405180910390f35b3480156105da57600080fd5b506105e3611506565b6040516105f091906133a8565b60405180910390f35b34801561060557600080fd5b5061060e61152c565b60405161061b91906133a8565b60405180910390f35b34801561063057600080fd5b50610639611532565b60405161064691906133a8565b60405180910390f35b34801561065b57600080fd5b5061066461155c565b60405161067191906133a8565b60405180910390f35b34801561068657600080fd5b5061068f611582565b60405161069c9190612e84565b60405180910390f35b3480156106b157600080fd5b506106cc60048036038101906106c79190612f4e565b611614565b6040516106d99190612fa9565b60405180910390f35b3480156106ee57600080fd5b506106f7611708565b60405161070491906133a8565b60405180910390f35b34801561071957600080fd5b50610734600480360381019061072f9190612f4e565b61172e565b6040516107419190612fa9565b60405180910390f35b34801561075657600080fd5b50610771600480360381019061076c91906131eb565b611745565b005b34801561077f57600080fd5b5061079a600480360381019061079591906131eb565b611874565b6040516107a79190612fa9565b60405180910390f35b3480156107bc57600080fd5b506107d760048036038101906107d29190612f4e565b611894565b005b3480156107e557600080fd5b5061080060048036038101906107fb91906133c3565b611a08565b60405161080d91906131d0565b60405180910390f35b34801561082257600080fd5b5061083d600480360381019061083891906132e2565b611a8f565b005b34801561084b57600080fd5b50610866600480360381019061086191906131eb565b611ba8565b005b34801561087457600080fd5b5061087d611c9f565b60405161088c93929190613362565b60405180910390f35b3480156108a157600080fd5b506108aa611cb7565b6040516108b79190613462565b60405180910390f35b3480156108cc57600080fd5b506108d5611cdd565b6040516108e29190612fa9565b60405180910390f35b6060600380546108fa906134ac565b80601f0160208091040260200160405190810160405280929190818152602001828054610926906134ac565b80156109735780601f1061094857610100808354040283529160200191610973565b820191906000526020600020905b81548152906001019060200180831161095657829003601f168201915b5050505050905090565b600061099161098a611cf0565b8484611cf8565b6001905092915050565b6109a3611cf0565b73ffffffffffffffffffffffffffffffffffffffff166109c1611532565b73ffffffffffffffffffffffffffffffffffffffff1614610a17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0e90613529565b60405180910390fd5b60005b8251811015610aa7578160146000858481518110610a3b57610a3a613549565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610a9f906135a7565b915050610a1a565b505050565b610ab4611cf0565b73ffffffffffffffffffffffffffffffffffffffff16610ad2611532565b73ffffffffffffffffffffffffffffffffffffffff1614610b28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1f90613529565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b60085481565b6000600254905090565b610b5d611cf0565b73ffffffffffffffffffffffffffffffffffffffff16610b7b611532565b73ffffffffffffffffffffffffffffffffffffffff1614610bd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc890613529565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3790613661565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610c8c611cf0565b73ffffffffffffffffffffffffffffffffffffffff16610caa611532565b73ffffffffffffffffffffffffffffffffffffffff1614610d00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf790613529565b60405180910390fd5b600760169054906101000a900460ff1615610d50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d47906136cd565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff02191690831515021790555043600981905550565b6000610d9c848484611ec1565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610de7611cf0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610e67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5e9061375f565b60405180910390fd5b610e8485610e73611cf0565b8584610e7f919061377f565b611cf8565b60019150509392505050565b60095481565b60006012905090565b610ea7611cf0565b73ffffffffffffffffffffffffffffffffffffffff16610ec5611532565b73ffffffffffffffffffffffffffffffffffffffff1614610f1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1290613529565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000611018610f83611cf0565b848460016000610f91611cf0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461101391906137b3565b611cf8565b6001905092915050565b61102a611cf0565b73ffffffffffffffffffffffffffffffffffffffff16611048611532565b73ffffffffffffffffffffffffffffffffffffffff161461109e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109590613529565b60405180910390fd5b629896808111156110e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110db90613859565b60405180910390fd5b6110ec610e96565b600a6110f891906139ac565b8161110391906139f7565b60088190555050565b611114611cf0565b73ffffffffffffffffffffffffffffffffffffffff16611132611532565b73ffffffffffffffffffffffffffffffffffffffff1614611188576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117f90613529565b60405180910390fd5b611190611532565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156111d5573d6000803e3d6000fd5b5050565b6111e1611cf0565b73ffffffffffffffffffffffffffffffffffffffff166111ff611532565b73ffffffffffffffffffffffffffffffffffffffff1614611255576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124c90613529565b60405180910390fd5b604051806060016040528084815260200183815260200182815250600e600082015181600001556020820151816001015560408201518160020155905050600c8183856112a291906137b3565b6112ac91906137b3565b11156112ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e490613a85565b60405180910390fd5b505050565b600760169054906101000a900460ff1681565b61130d611cf0565b73ffffffffffffffffffffffffffffffffffffffff1661132b611532565b73ffffffffffffffffffffffffffffffffffffffff1614611381576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137890613529565b60405180910390fd5b6040518060600160405280848152602001838152602001828152506011600082015181600001556020820151816001015560408201518160020155905050600c8183856113ce91906137b3565b6113d891906137b3565b1115611419576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141090613a85565b60405180910390fd5b505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61146e611cf0565b73ffffffffffffffffffffffffffffffffffffffff1661148c611532565b73ffffffffffffffffffffffffffffffffffffffff16146114e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d990613529565b60405180910390fd5b6114ec600061246a565b565b600e8060000154908060010154908060020154905083565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61dead81565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060048054611591906134ac565b80601f01602080910402602001604051908101604052809291908181526020018280546115bd906134ac565b801561160a5780601f106115df5761010080835404028352916020019161160a565b820191906000526020600020905b8154815290600101906020018083116115ed57829003601f168201915b5050505050905090565b60008060016000611623611cf0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156116e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d790613b17565b60405180910390fd5b6116fd6116eb611cf0565b8585846116f8919061377f565b611cf8565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061173b338484611ec1565b6001905092915050565b61174d611cf0565b73ffffffffffffffffffffffffffffffffffffffff1661176b611532565b73ffffffffffffffffffffffffffffffffffffffff16146117c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b890613529565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611830576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182790613661565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60146020528060005260406000206000915054906101000a900460ff1681565b61189c611cf0565b73ffffffffffffffffffffffffffffffffffffffff166118ba611532565b73ffffffffffffffffffffffffffffffffffffffff1614611910576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190790613529565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361197e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197590613ba9565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6119a2611532565b836040518363ffffffff1660e01b81526004016119c0929190613bc9565b6020604051808303816000875af11580156119df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a039190613c07565b505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611a97611cf0565b73ffffffffffffffffffffffffffffffffffffffff16611ab5611532565b73ffffffffffffffffffffffffffffffffffffffff1614611b0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0290613529565b60405180910390fd5b600760169054906101000a900460ff1615611b5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5290613ca6565b60405180910390fd5b60058110611b9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9590613d38565b60405180910390fd5b80600a8190555050565b611bb0611cf0565b73ffffffffffffffffffffffffffffffffffffffff16611bce611532565b73ffffffffffffffffffffffffffffffffffffffff1614611c24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1b90613529565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8a90613dca565b60405180910390fd5b611c9c8161246a565b50565b60118060000154908060010154908060020154905083565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760159054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5e90613e5c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611dd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dcd90613eee565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611eb491906131d0565b60405180910390a3505050565b60008111611f04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611efb90613f80565b60405180910390fd5b601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611fa85750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ffd57600760169054906101000a900460ff16611ffc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff390613fec565b60405180910390fd5b5b600080600061200a612dd3565b6000601460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120b05750601460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120ca5750600a546009546120c791906137b3565b43105b9050600760149054906101000a900460ff16806121305750601460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806121845750601460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612192576000925061237a565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161480156121ed575080155b1561224f5760116002015460116000015460116001015461220e91906137b3565b61221891906137b3565b9450849350601160405180606001604052908160008201548152602001600182015481526020016002820154815250509150612379565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161480156122fa5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b8015612304575080155b1561236657600e60020154600e60000154600e6001015461232591906137b3565b61232f91906137b3565b9450849350600e60405180606001604052908160008201548152602001600182015481526020016002820154815250509150612378565b801561237757600b549450600b5493505b5b5b5b6064848761238891906139f7565b612392919061403b565b9250600760159054906101000a900460ff1680156123fe5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b1561240e5761240d8583612530565b5b6124248888858961241f919061377f565b61274a565b600083111561246057600085111561245f5760006064868861244691906139f7565b612450919061403b565b905061245d89308361274a565b505b5b5050505050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff16612746576001600760146101000a81548160ff021916908315150217905550600082031561272a5760006125733061141e565b90506008548110612728576001600854111561258f5760085490505b600060028461259e91906139f7565b90506000818460200151846125b391906139f7565b6125bd919061403b565b9050600081846125cd919061377f565b905060004790506125dd826129bc565b600081476125eb919061377f565b905060008760200151866125ff919061377f565b8261260a919061403b565b9050600088602001518261261e91906139f7565b90506000811115612634576126338682612bff565b5b6000896000015160028461264891906139f7565b61265291906139f7565b905060008111156126a9576126a881600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612cdf90919063ffffffff16565b5b60008a604001516002856126bd91906139f7565b6126c791906139f7565b9050600081111561271e5761271d81600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612cdf90919063ffffffff16565b5b5050505050505050505b505b6000600760146101000a81548160ff0219169083151502179055505b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036127b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b0906140de565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612828576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161281f90614170565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156128ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128a590614202565b60405180910390fd5b81816128ba919061377f565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461294a91906137b3565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516129ae91906131d0565b60405180910390a350505050565b6000600267ffffffffffffffff8111156129d9576129d8612fc9565b5b604051908082528060200260200182016040528015612a075781602001602082028036833780820191505090505b5090503081600081518110612a1f57612a1e613549565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ac6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612aea9190614237565b81600181518110612afe57612afd613549565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612b6530600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611cf8565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612bc995949392919061435d565b600060405180830381600087803b158015612be357600080fd5b505af1158015612bf7573d6000803e3d6000fd5b505050505050565b612c2c30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611cf8565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b8152600401612c95969594939291906143b7565b60606040518083038185885af1158015612cb3573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612cd8919061442d565b5050505050565b80471015612d22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d19906144cc565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612d489061451d565b60006040518083038185875af1925050503d8060008114612d85576040519150601f19603f3d011682016040523d82523d6000602084013e612d8a565b606091505b5050905080612dce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dc5906145a4565b60405180910390fd5b505050565b60405180606001604052806000815260200160008152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b83811015612e2e578082015181840152602081019050612e13565b60008484015250505050565b6000601f19601f8301169050919050565b6000612e5682612df4565b612e608185612dff565b9350612e70818560208601612e10565b612e7981612e3a565b840191505092915050565b60006020820190508181036000830152612e9e8184612e4b565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612ee582612eba565b9050919050565b612ef581612eda565b8114612f0057600080fd5b50565b600081359050612f1281612eec565b92915050565b6000819050919050565b612f2b81612f18565b8114612f3657600080fd5b50565b600081359050612f4881612f22565b92915050565b60008060408385031215612f6557612f64612eb0565b5b6000612f7385828601612f03565b9250506020612f8485828601612f39565b9150509250929050565b60008115159050919050565b612fa381612f8e565b82525050565b6000602082019050612fbe6000830184612f9a565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61300182612e3a565b810181811067ffffffffffffffff821117156130205761301f612fc9565b5b80604052505050565b6000613033612ea6565b905061303f8282612ff8565b919050565b600067ffffffffffffffff82111561305f5761305e612fc9565b5b602082029050602081019050919050565b600080fd5b600061308861308384613044565b613029565b905080838252602082019050602084028301858111156130ab576130aa613070565b5b835b818110156130d457806130c08882612f03565b8452602084019350506020810190506130ad565b5050509392505050565b600082601f8301126130f3576130f2612fc4565b5b8135613103848260208601613075565b91505092915050565b61311581612f8e565b811461312057600080fd5b50565b6000813590506131328161310c565b92915050565b6000806040838503121561314f5761314e612eb0565b5b600083013567ffffffffffffffff81111561316d5761316c612eb5565b5b613179858286016130de565b925050602061318a85828601613123565b9150509250929050565b6000602082840312156131aa576131a9612eb0565b5b60006131b884828501613123565b91505092915050565b6131ca81612f18565b82525050565b60006020820190506131e560008301846131c1565b92915050565b60006020828403121561320157613200612eb0565b5b600061320f84828501612f03565b91505092915050565b60008060006060848603121561323157613230612eb0565b5b600061323f86828701612f03565b935050602061325086828701612f03565b925050604061326186828701612f39565b9150509250925092565b600060ff82169050919050565b6132818161326b565b82525050565b600060208201905061329c6000830184613278565b92915050565b600080604083850312156132b9576132b8612eb0565b5b60006132c785828601612f03565b92505060206132d885828601613123565b9150509250929050565b6000602082840312156132f8576132f7612eb0565b5b600061330684828501612f39565b91505092915050565b60008060006060848603121561332857613327612eb0565b5b600061333686828701612f39565b935050602061334786828701612f39565b925050604061335886828701612f39565b9150509250925092565b600060608201905061337760008301866131c1565b61338460208301856131c1565b61339160408301846131c1565b949350505050565b6133a281612eda565b82525050565b60006020820190506133bd6000830184613399565b92915050565b600080604083850312156133da576133d9612eb0565b5b60006133e885828601612f03565b92505060206133f985828601612f03565b9150509250929050565b6000819050919050565b600061342861342361341e84612eba565b613403565b612eba565b9050919050565b600061343a8261340d565b9050919050565b600061344c8261342f565b9050919050565b61345c81613441565b82525050565b60006020820190506134776000830184613453565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806134c457607f821691505b6020821081036134d7576134d661347d565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613513602083612dff565b915061351e826134dd565b602082019050919050565b6000602082019050818103600083015261354281613506565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006135b282612f18565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036135e4576135e3613578565b5b600182019050919050565b7f46656520416464726573732063616e6e6f74206265207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061364b602283612dff565b9150613656826135ef565b604082019050919050565b6000602082019050818103600083015261367a8161363e565b9050919050565b7f43616e6e6f742072652d656e61626c652074726164696e670000000000000000600082015250565b60006136b7601883612dff565b91506136c282613681565b602082019050919050565b600060208201905081810360008301526136e6816136aa565b9050919050565b7f42455032303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613749602883612dff565b9150613754826136ed565b604082019050919050565b600060208201905081810360008301526137788161373c565b9050919050565b600061378a82612f18565b915061379583612f18565b92508282039050818111156137ad576137ac613578565b5b92915050565b60006137be82612f18565b91506137c983612f18565b92508282019050808211156137e1576137e0613578565b5b92915050565b7f53776170207468726573686f6c6420616d6f756e742073686f756c642062652060008201527f6c6f776572206f7220657175616c20746f203125206f6620746f6b656e730000602082015250565b6000613843603e83612dff565b915061384e826137e7565b604082019050919050565b6000602082019050818103600083015261387281613836565b9050919050565b60008160011c9050919050565b6000808291508390505b60018511156138d0578086048111156138ac576138ab613578565b5b60018516156138bb5780820291505b80810290506138c985613879565b9450613890565b94509492505050565b6000826138e957600190506139a5565b816138f757600090506139a5565b816001811461390d576002811461391757613946565b60019150506139a5565b60ff84111561392957613928613578565b5b8360020a9150848211156139405761393f613578565b5b506139a5565b5060208310610133831016604e8410600b841016171561397b5782820a90508381111561397657613975613578565b5b6139a5565b6139888484846001613886565b9250905081840481111561399f5761399e613578565b5b81810290505b9392505050565b60006139b782612f18565b91506139c28361326b565b92506139ef7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846138d9565b905092915050565b6000613a0282612f18565b9150613a0d83612f18565b9250828202613a1b81612f18565b91508282048414831517613a3257613a31613578565b5b5092915050565b7f4d757374206b656570206665657320617420313225206f72206c657373000000600082015250565b6000613a6f601d83612dff565b9150613a7a82613a39565b602082019050919050565b60006020820190508181036000830152613a9e81613a62565b9050919050565b7f42455032303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613b01602583612dff565b9150613b0c82613aa5565b604082019050919050565b60006020820190508181036000830152613b3081613af4565b9050919050565b7f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c60008201527f616e6365206f6620697473206f776e20746f6b656e7300000000000000000000602082015250565b6000613b93603683612dff565b9150613b9e82613b37565b604082019050919050565b60006020820190508181036000830152613bc281613b86565b9050919050565b6000604082019050613bde6000830185613399565b613beb60208301846131c1565b9392505050565b600081519050613c018161310c565b92915050565b600060208284031215613c1d57613c1c612eb0565b5b6000613c2b84828501613bf2565b91505092915050565b7f43616e2774206368616e6765207768656e2074726164696e672068617320737460008201527f6172746564000000000000000000000000000000000000000000000000000000602082015250565b6000613c90602583612dff565b9150613c9b82613c34565b604082019050919050565b60006020820190508181036000830152613cbf81613c83565b9050919050565b7f446561646c696e652073686f756c64206265206c657373207468616e2035204260008201527f6c6f636b73000000000000000000000000000000000000000000000000000000602082015250565b6000613d22602583612dff565b9150613d2d82613cc6565b604082019050919050565b60006020820190508181036000830152613d5181613d15565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613db4602683612dff565b9150613dbf82613d58565b604082019050919050565b60006020820190508181036000830152613de381613da7565b9050919050565b7f42455032303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613e46602483612dff565b9150613e5182613dea565b604082019050919050565b60006020820190508181036000830152613e7581613e39565b9050919050565b7f42455032303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ed8602283612dff565b9150613ee382613e7c565b604082019050919050565b60006020820190508181036000830152613f0781613ecb565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613f6a602983612dff565b9150613f7582613f0e565b604082019050919050565b60006020820190508181036000830152613f9981613f5d565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b6000613fd6601383612dff565b9150613fe182613fa0565b602082019050919050565b6000602082019050818103600083015261400581613fc9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061404682612f18565b915061405183612f18565b9250826140615761406061400c565b5b828204905092915050565b7f42455032303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006140c8602583612dff565b91506140d38261406c565b604082019050919050565b600060208201905081810360008301526140f7816140bb565b9050919050565b7f42455032303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061415a602383612dff565b9150614165826140fe565b604082019050919050565b600060208201905081810360008301526141898161414d565b9050919050565b7f42455032303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006141ec602683612dff565b91506141f782614190565b604082019050919050565b6000602082019050818103600083015261421b816141df565b9050919050565b60008151905061423181612eec565b92915050565b60006020828403121561424d5761424c612eb0565b5b600061425b84828501614222565b91505092915050565b6000819050919050565b600061428961428461427f84614264565b613403565b612f18565b9050919050565b6142998161426e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6142d481612eda565b82525050565b60006142e683836142cb565b60208301905092915050565b6000602082019050919050565b600061430a8261429f565b61431481856142aa565b935061431f836142bb565b8060005b8381101561435057815161433788826142da565b9750614342836142f2565b925050600181019050614323565b5085935050505092915050565b600060a08201905061437260008301886131c1565b61437f6020830187614290565b818103604083015261439181866142ff565b90506143a06060830185613399565b6143ad60808301846131c1565b9695505050505050565b600060c0820190506143cc6000830189613399565b6143d960208301886131c1565b6143e66040830187614290565b6143f36060830186614290565b6144006080830185613399565b61440d60a08301846131c1565b979650505050505050565b60008151905061442781612f22565b92915050565b60008060006060848603121561444657614445612eb0565b5b600061445486828701614418565b935050602061446586828701614418565b925050604061447686828701614418565b9150509250925092565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b60006144b6601d83612dff565b91506144c182614480565b602082019050919050565b600060208201905081810360008301526144e5816144a9565b9050919050565b600081905092915050565b50565b60006145076000836144ec565b9150614512826144f7565b600082019050919050565b6000614528826144fa565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b600061458e603a83612dff565b915061459982614532565b604082019050919050565b600060208201905081810360008301526145bd81614581565b905091905056fea26469706673582212209872e2d4a477a3caa8b52e1796cac22d85cc503e163baaead06e8e80683cfbf964736f6c63430008120033

Deployed Bytecode Sourcemap

11821:10680:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2452:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13675:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21875:202;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19834:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12094:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3572:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21556:183;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20865:222;;;;;;;;;;;;;:::i;:::-;;13844:448;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12156:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3414:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21747:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14300:248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19994:280;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22085:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20282:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12051:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20571:286;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3743:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10484:94;;;;;;;;;;;;;:::i;:::-;;12618:35;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;12265:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12423:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10261:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12347:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2671:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14556:410;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11940:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14974:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21353:195;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12708:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22205:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4362:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21095:250;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10586:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12660:39;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;11912:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12006:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2452:100;2506:13;2539:5;2532:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2452:100;:::o;13675:161::-;13750:4;13767:39;13776:12;:10;:12::i;:::-;13790:7;13799:6;13767:8;:39::i;:::-;13824:4;13817:11;;13675:161;;;;:::o;21875:202::-;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21972:9:::1;21967:103;21991:8;:15;21987:1;:19;21967:103;;;22053:5;22028:9;:22;22038:8;22047:1;22038:11;;;;;;;;:::i;:::-;;;;;;;;22028:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;22008:3;;;;;:::i;:::-;;;;21967:103;;;;21875:202:::0;;:::o;19834:152::-;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19973:5:::1;19952:18;;:26;;;;;;;;;;;;;;;;;;19834:152:::0;:::o;12094:53::-;;;;:::o;3572:108::-;3633:7;3660:12;;3653:19;;3572:108;:::o;21556:183::-;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21659:1:::1;21638:23;;:9;:23;;::::0;21630:69:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;21722:9;21710;;:21;;;;;;;;;;;;;;;;;;21556:183:::0;:::o;20865:222::-;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20929:14:::1;;;;;;;;;;;20928:15;20920:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;21000:4;20983:14;;:21;;;;;;;;;;;;;;;;;;21036:4;21015:18;;:25;;;;;;;;;;;;;;;;;;21067:12;21051:13;:28;;;;20865:222::o:0;13844:448::-;13976:4;13993:36;14003:6;14011:9;14022:6;13993:9;:36::i;:::-;14042:24;14069:11;:19;14081:6;14069:19;;;;;;;;;;;;;;;:33;14089:12;:10;:12::i;:::-;14069:33;;;;;;;;;;;;;;;;14042:60;;14141:6;14121:16;:26;;14113:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;14203:57;14212:6;14220:12;:10;:12::i;:::-;14253:6;14234:16;:25;;;;:::i;:::-;14203:8;:57::i;:::-;14280:4;14273:11;;;13844:448;;;;;:::o;12156:28::-;;;;:::o;3414:93::-;3472:5;3497:2;3490:9;;3414:93;:::o;21747:120::-;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21854:5:::1;21832:9;:19;21842:8;21832:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;21747:120:::0;;:::o;14300:248::-;14416:4;14438:80;14447:12;:10;:12::i;:::-;14461:7;14507:10;14470:11;:25;14482:12;:10;:12::i;:::-;14470:25;;;;;;;;;;;;;;;:34;14496:7;14470:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;14438:8;:80::i;:::-;14536:4;14529:11;;14300:248;;;;:::o;19994:280::-;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20132:3:::1;20118:10;:17;;20110:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;20256:10;:8;:10::i;:::-;20252:2;:14;;;;:::i;:::-;20239:10;:27;;;;:::i;:::-;20213:23;:53;;;;19994:280:::0;:::o;22085:112::-;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22161:7:::1;:5;:7::i;:::-;22153:25;;:36;22179:9;22153:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;22085:112:::0;:::o;20282:281::-;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20429:35:::1;;;;;;;;20435:10;20429:35;;;;20447:10;20429:35;;;;20459:4;20429:35;;::::0;20421:5:::1;:43;;;;;;;;;;;;;;;;;;;;;;;;;;;20519:2;20510:4;20497:10;20484;:23;;;;:::i;:::-;:30;;;;:::i;:::-;20483:38;;20475:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;20282:281:::0;;;:::o;12051:34::-;;;;;;;;;;;;;:::o;20571:286::-;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20723:35:::1;;;;;;;;20729:10;20723:35;;;;20741:10;20723:35;;;;20753:4;20723:35;;::::0;20711:9:::1;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;20813:2;20804:4;20791:10;20778;:23;;;;:::i;:::-;:30;;;;:::i;:::-;20777:38;;20769:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;20571:286:::0;;;:::o;3743:127::-;3817:7;3844:9;:18;3854:7;3844:18;;;;;;;;;;;;;;;;3837:25;;3743:127;;;:::o;10484:94::-;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10549:21:::1;10567:1;10549:9;:21::i;:::-;10484:94::o:0;12618:35::-;;;;;;;;;;;;;;;;;;;:::o;12265:75::-;;;;;;;;;;;;;:::o;12423:79::-;12460:42;12423:79;:::o;10261:87::-;10307:7;10334:6;;;;;;;;;;;10327:13;;10261:87;:::o;12347:69::-;;;;;;;;;;;;;:::o;2671:104::-;2727:13;2760:7;2753:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2671:104;:::o;14556:410::-;14677:4;14699:24;14726:11;:25;14738:12;:10;:12::i;:::-;14726:25;;;;;;;;;;;;;;;:34;14752:7;14726:34;;;;;;;;;;;;;;;;14699:61;;14799:15;14779:16;:35;;14771:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;14867:67;14876:12;:10;:12::i;:::-;14890:7;14918:15;14899:16;:34;;;;:::i;:::-;14867:8;:67::i;:::-;14954:4;14947:11;;;14556:410;;;;:::o;11940:19::-;;;;;;;;;;;;;:::o;14974:165::-;15052:4;15069:40;15079:10;15091:9;15102:6;15069:9;:40::i;:::-;15127:4;15120:11;;14974:165;;;;:::o;21353:195::-;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21462:1:::1;21441:23;;:9;:23;;::::0;21433:69:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;21531:9;21513:15;;:27;;;;;;;;;;;;;;;;;;21353:195:::0;:::o;12708:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;22205:238::-;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22318:4:::1;22298:25;;:8;:25;;::::0;22290:92:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;22400:8;22393:25;;;22419:7;:5;:7::i;:::-;22428:6;22393:42;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22205:238:::0;;:::o;4362:201::-;4496:7;4528:11;:18;4540:5;4528:18;;;;;;;;;;;;;;;:27;4547:7;4528:27;;;;;;;;;;;;;;;;4521:34;;4362:201;;;;:::o;21095:250::-;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21177:14:::1;;;;;;;;;;;21176:15;21168:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;21264:1;21252:9;:13;21244:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;21328:9;21317:8;:20;;;;21095:250:::0;:::o;10586:192::-;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10695:1:::1;10675:22;;:8;:22;;::::0;10667:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;10751:19;10761:8;10751:9;:19::i;:::-;10586:192:::0;:::o;12660:39::-;;;;;;;;;;;;;;;;;;;:::o;11912:21::-;;;;;;;;;;;;;:::o;12006:38::-;;;;;;;;;;;;;:::o;174:98::-;227:7;254:10;247:17;;174:98;:::o;9294:380::-;9447:1;9430:19;;:5;:19;;;9422:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9528:1;9509:21;;:7;:21;;;9501:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9612:6;9582:11;:18;9594:5;9582:18;;;;;;;;;;;;;;;:27;9601:7;9582:27;;;;;;;;;;;;;;;:36;;;;9650:7;9634:32;;9643:5;9634:32;;;9659:6;9634:32;;;;;;:::i;:::-;;;;;;;;9294:380;;;:::o;15147:2018::-;15297:1;15288:6;:10;15280:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15362:9;:17;15372:6;15362:17;;;;;;;;;;;;;;;;;;;;;;;;;15361:18;:43;;;;;15384:9;:20;15394:9;15384:20;;;;;;;;;;;;;;;;;;;;;;;;;15383:21;15361:43;15357:122;;;15429:14;;;;;;;;;;;15421:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;15357:122;15491:15;15517:14;15542:11;15564:25;;:::i;:::-;15602:17;15623:9;:17;15633:6;15623:17;;;;;;;;;;;;;;;;;;;;;;;;;15622:18;:56;;;;;15658:9;:20;15668:9;15658:20;;;;;;;;;;;;;;;;;;;;;;;;;15657:21;15622:56;:112;;;;;15726:8;;15710:13;;:24;;;;:::i;:::-;15695:12;:39;15622:112;15602:132;;15822:10;;;;;;;;;;;:31;;;;15836:9;:17;15846:6;15836:17;;;;;;;;;;;;;;;;;;;;;;;;;15822:31;:55;;;;15857:9;:20;15867:9;15857:20;;;;;;;;;;;;;;;;;;;;;;;;;15822:55;15818:767;;;15898:1;15892:7;;15818:767;;;15963:4;;;;;;;;;;;15950:17;;:9;:17;;;:34;;;;;15972:12;15971:13;15950:34;15946:639;;;16112:9;:13;;;16067:9;:19;;;16028:9;:19;;;:58;;;;:::i;:::-;:97;;;;:::i;:::-;16001:124;;16149:7;16140:16;;16186:9;16171:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15946:639;;;16227:4;;;;;;;;;;;16217:14;;:6;:14;;;:46;;;;;16256:6;;;;;;;;;;;16235:28;;:9;:28;;;;16217:46;:63;;;;;16268:12;16267:13;16217:63;16213:372;;;16394:5;:9;;;16359:5;:15;;;16324:5;:15;;;:50;;;;:::i;:::-;:79;;;;:::i;:::-;16297:106;;16428:7;16419:16;;16465:5;16450:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16213:372;;;16492:12;16488:97;;;16531:9;;16521:19;;16564:9;;16555:18;;16488:97;16213:372;15946:639;15818:767;16623:3;16613:6;16604;:15;;;;:::i;:::-;16603:23;;;;:::i;:::-;16597:29;;16740:18;;;;;;;;;;;:36;;;;;16772:4;;;;;;;;;;;16762:14;;:6;:14;;;;16740:36;16736:72;;;16778:30;16786:7;16795:12;16778:7;:30::i;:::-;16736:72;16850:48;16866:6;16874:9;16894:3;16885:6;:12;;;;:::i;:::-;16850:15;:48::i;:::-;16919:1;16913:3;:7;16909:249;;;16995:1;16985:7;:11;16981:164;;;17017:17;17058:3;17047:7;17038:6;:16;;;;:::i;:::-;17037:24;;;;:::i;:::-;17017:44;;17080:49;17096:6;17112:4;17119:9;17080:15;:49::i;:::-;16998:147;16981:164;16909:249;15269:1896;;;;;15147:2018;;;:::o;10786:173::-;10842:16;10861:6;;;;;;;;;;;10842:25;;10887:8;10878:6;;:17;;;;;;;;;;;;;;;;;;10942:8;10911:40;;10932:8;10911:40;;;;;;;;;;;;10831:128;10786:173;:::o;17173:1603::-;12797:10;;;;;;;;;;;12792:110;;12837:4;12824:10;;:17;;;;;;;;;;;;;;;;;;17278:1:::1;17267:7;:12:::0;17264:49;17295:7:::1;17264:49;17325:23;17351:24;17369:4;17351:9;:24::i;:::-;17325:50;;17409:23;;17390:15;:42;17386:1383;;17479:1;17453:23;;:27;17449:109;;;17519:23;;17501:41;;17449:109;17629:19;17661:1;17651:7;:11;;;;:::i;:::-;17629:33;;17677:32;17771:11;17731:9;:19;;;17713:15;:37;;;;:::i;:::-;17712:70;;;;:::i;:::-;17677:105;;17797:14;17832:24;17814:15;:42;;;;:::i;:::-;17797:59;;17873:22;17898:21;17873:46;;17936:24;17953:6;17936:16;:24::i;:::-;17977:20;18024:14;18000:21;:38;;;;:::i;:::-;17977:61;;18053:19;18105:9;:19;;;18091:11;:33;;;;:::i;:::-;18075:12;:50;;;;:::i;:::-;18053:72;;18140:29;18186:9;:19;;;18172:11;:33;;;;:::i;:::-;18140:65;;18250:1;18226:21;:25;18222:172;;;18317:61;18330:24;18356:21;18317:12;:61::i;:::-;18222:172;18410:20;18451:9;:19;;;18447:1;18433:11;:15;;;;:::i;:::-;:37;;;;:::i;:::-;18410:60;;18504:1;18489:12;:16;18485:105;;;18526:48;18561:12;18534:15;;;;;;;;;;;18526:34;;;;:48;;;;:::i;:::-;18485:105;18606:14;18641:9;:13;;;18637:1;18623:11;:15;;;;:::i;:::-;:31;;;;:::i;:::-;18606:48;;18682:1;18673:6;:10;18669:87;;;18704:36;18733:6;18712:9;;;;;;;;;;;18704:28;;;;:36;;;;:::i;:::-;18669:87;17434:1335;;;;;;;;;17386:1383;17251:1525;12856:1;12885:5:::0;12872:10;;:18;;;;;;;;;;;;;;;;;;12792:110;17173:1603;;:::o;7875:578::-;8033:1;8015:20;;:6;:20;;;8007:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;8117:1;8096:23;;:9;:23;;;8088:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;8172:21;8196:9;:17;8206:6;8196:17;;;;;;;;;;;;;;;;8172:41;;8249:6;8232:13;:23;;8224:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8345:6;8329:13;:22;;;;:::i;:::-;8309:9;:17;8319:6;8309:17;;;;;;;;;;;;;;;:42;;;;8386:6;8362:9;:20;8372:9;8362:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;8427:9;8410:35;;8419:6;8410:35;;;8438:6;8410:35;;;;;;:::i;:::-;;;;;;;;7996:457;7875:578;;;:::o;18784:534::-;18910:21;18948:1;18934:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18910:40;;18979:4;18961;18966:1;18961:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19005:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18995:4;19000:1;18995:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19031:53;19048:4;19063:6;;;;;;;;;;;19072:11;19031:8;:53::i;:::-;19123:6;;;;;;;;;;;:57;;;19195:11;19221:1;19237:4;19264;19284:15;19123:187;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18839:479;18784:534;:::o;19326:500::-;19474:53;19491:4;19506:6;;;;;;;;;;;19515:11;19474:8;:53::i;:::-;19570:6;;;;;;;;;;;:22;;;19601:9;19635:4;19655:11;19681:1;19724;12460:42;19792:15;19570:248;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19326:500;;:::o;9704:319::-;9819:6;9794:21;:31;;9786:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;9873:12;9891:9;:14;;9914:6;9891:35;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9872:54;;;9945:7;9937:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;9775:248;9704: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:329::-;7428:6;7477:2;7465:9;7456:7;7452:23;7448:32;7445:119;;;7483:79;;:::i;:::-;7445:119;7603:1;7628:53;7673:7;7664:6;7653:9;7649:22;7628:53;:::i;:::-;7618:63;;7574:117;7369:329;;;;:::o;7704:619::-;7781:6;7789;7797;7846:2;7834:9;7825:7;7821:23;7817:32;7814:119;;;7852:79;;:::i;:::-;7814:119;7972:1;7997:53;8042:7;8033:6;8022:9;8018:22;7997:53;:::i;:::-;7987:63;;7943:117;8099:2;8125:53;8170:7;8161:6;8150:9;8146:22;8125:53;:::i;:::-;8115:63;;8070:118;8227:2;8253:53;8298:7;8289:6;8278:9;8274:22;8253:53;:::i;:::-;8243:63;;8198:118;7704:619;;;;;:::o;8329:86::-;8364:7;8404:4;8397:5;8393:16;8382:27;;8329:86;;;:::o;8421:112::-;8504:22;8520:5;8504:22;:::i;:::-;8499:3;8492:35;8421:112;;:::o;8539:214::-;8628:4;8666:2;8655:9;8651:18;8643:26;;8679:67;8743:1;8732:9;8728:17;8719:6;8679:67;:::i;:::-;8539:214;;;;:::o;8759:468::-;8824:6;8832;8881:2;8869:9;8860:7;8856:23;8852:32;8849:119;;;8887:79;;:::i;:::-;8849:119;9007:1;9032:53;9077:7;9068:6;9057:9;9053:22;9032:53;:::i;:::-;9022:63;;8978:117;9134:2;9160:50;9202:7;9193:6;9182:9;9178:22;9160:50;:::i;:::-;9150:60;;9105:115;8759:468;;;;;:::o;9233:329::-;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:619::-;9645:6;9653;9661;9710:2;9698:9;9689:7;9685:23;9681:32;9678:119;;;9716:79;;:::i;:::-;9678:119;9836:1;9861:53;9906:7;9897:6;9886:9;9882:22;9861:53;:::i;:::-;9851:63;;9807:117;9963:2;9989:53;10034:7;10025:6;10014:9;10010:22;9989:53;:::i;:::-;9979:63;;9934:118;10091:2;10117:53;10162:7;10153:6;10142:9;10138:22;10117:53;:::i;:::-;10107:63;;10062:118;9568:619;;;;;:::o;10193:442::-;10342:4;10380:2;10369:9;10365:18;10357:26;;10393:71;10461:1;10450:9;10446:17;10437:6;10393:71;:::i;:::-;10474:72;10542:2;10531:9;10527:18;10518:6;10474:72;:::i;:::-;10556;10624:2;10613:9;10609:18;10600:6;10556:72;:::i;:::-;10193:442;;;;;;:::o;10641:118::-;10728:24;10746:5;10728:24;:::i;:::-;10723:3;10716:37;10641:118;;:::o;10765:222::-;10858:4;10896:2;10885:9;10881:18;10873:26;;10909:71;10977:1;10966:9;10962:17;10953:6;10909:71;:::i;:::-;10765:222;;;;:::o;10993:474::-;11061:6;11069;11118:2;11106:9;11097:7;11093:23;11089:32;11086:119;;;11124:79;;:::i;:::-;11086:119;11244:1;11269:53;11314:7;11305:6;11294:9;11290:22;11269:53;:::i;:::-;11259:63;;11215:117;11371:2;11397:53;11442:7;11433:6;11422:9;11418:22;11397:53;:::i;:::-;11387:63;;11342:118;10993:474;;;;;:::o;11473:60::-;11501:3;11522:5;11515:12;;11473:60;;;:::o;11539:142::-;11589:9;11622:53;11640:34;11649:24;11667:5;11649:24;:::i;:::-;11640:34;:::i;:::-;11622:53;:::i;:::-;11609:66;;11539:142;;;:::o;11687:126::-;11737:9;11770:37;11801:5;11770:37;:::i;:::-;11757:50;;11687:126;;;:::o;11819:141::-;11884:9;11917:37;11948:5;11917:37;:::i;:::-;11904:50;;11819:141;;;:::o;11966:161::-;12068:52;12114:5;12068:52;:::i;:::-;12063:3;12056:65;11966:161;;:::o;12133:252::-;12241:4;12279:2;12268:9;12264:18;12256:26;;12292:86;12375:1;12364:9;12360:17;12351:6;12292:86;:::i;:::-;12133:252;;;;:::o;12391:180::-;12439:77;12436:1;12429:88;12536:4;12533:1;12526:15;12560:4;12557:1;12550:15;12577:320;12621:6;12658:1;12652:4;12648:12;12638:22;;12705:1;12699:4;12695:12;12726:18;12716:81;;12782:4;12774:6;12770:17;12760:27;;12716:81;12844:2;12836:6;12833:14;12813:18;12810:38;12807:84;;12863:18;;:::i;:::-;12807:84;12628:269;12577:320;;;:::o;12903:182::-;13043:34;13039:1;13031:6;13027:14;13020:58;12903:182;:::o;13091:366::-;13233:3;13254:67;13318:2;13313:3;13254:67;:::i;:::-;13247:74;;13330:93;13419:3;13330:93;:::i;:::-;13448:2;13443:3;13439:12;13432:19;;13091:366;;;:::o;13463:419::-;13629:4;13667:2;13656:9;13652:18;13644:26;;13716:9;13710:4;13706:20;13702:1;13691:9;13687:17;13680:47;13744:131;13870:4;13744:131;:::i;:::-;13736:139;;13463:419;;;:::o;13888:180::-;13936:77;13933:1;13926:88;14033:4;14030:1;14023:15;14057:4;14054:1;14047:15;14074:180;14122:77;14119:1;14112:88;14219:4;14216:1;14209:15;14243:4;14240:1;14233:15;14260:233;14299:3;14322:24;14340:5;14322:24;:::i;:::-;14313:33;;14368:66;14361:5;14358:77;14355:103;;14438:18;;:::i;:::-;14355:103;14485:1;14478:5;14474:13;14467:20;;14260:233;;;:::o;14499:221::-;14639:34;14635:1;14627:6;14623:14;14616:58;14708:4;14703:2;14695:6;14691:15;14684:29;14499:221;:::o;14726:366::-;14868:3;14889:67;14953:2;14948:3;14889:67;:::i;:::-;14882:74;;14965:93;15054:3;14965:93;:::i;:::-;15083:2;15078:3;15074:12;15067:19;;14726:366;;;:::o;15098:419::-;15264:4;15302:2;15291:9;15287:18;15279:26;;15351:9;15345:4;15341:20;15337:1;15326:9;15322:17;15315:47;15379:131;15505:4;15379:131;:::i;:::-;15371:139;;15098:419;;;:::o;15523:174::-;15663:26;15659:1;15651:6;15647:14;15640:50;15523:174;:::o;15703:366::-;15845:3;15866:67;15930:2;15925:3;15866:67;:::i;:::-;15859:74;;15942:93;16031:3;15942:93;:::i;:::-;16060:2;16055:3;16051:12;16044:19;;15703:366;;;:::o;16075:419::-;16241:4;16279:2;16268:9;16264:18;16256:26;;16328:9;16322:4;16318:20;16314:1;16303:9;16299:17;16292:47;16356:131;16482:4;16356:131;:::i;:::-;16348:139;;16075:419;;;:::o;16500:227::-;16640:34;16636:1;16628:6;16624:14;16617:58;16709:10;16704:2;16696:6;16692:15;16685:35;16500:227;:::o;16733:366::-;16875:3;16896:67;16960:2;16955:3;16896:67;:::i;:::-;16889:74;;16972:93;17061:3;16972:93;:::i;:::-;17090:2;17085:3;17081:12;17074:19;;16733:366;;;:::o;17105:419::-;17271:4;17309:2;17298:9;17294:18;17286:26;;17358:9;17352:4;17348:20;17344:1;17333:9;17329:17;17322:47;17386:131;17512:4;17386:131;:::i;:::-;17378:139;;17105:419;;;:::o;17530:194::-;17570:4;17590:20;17608:1;17590:20;:::i;:::-;17585:25;;17624:20;17642:1;17624:20;:::i;:::-;17619:25;;17668:1;17665;17661:9;17653:17;;17692:1;17686:4;17683:11;17680:37;;;17697:18;;:::i;:::-;17680:37;17530:194;;;;:::o;17730:191::-;17770:3;17789:20;17807:1;17789:20;:::i;:::-;17784:25;;17823:20;17841:1;17823:20;:::i;:::-;17818:25;;17866:1;17863;17859:9;17852:16;;17887:3;17884:1;17881:10;17878:36;;;17894:18;;:::i;:::-;17878:36;17730:191;;;;:::o;17927:249::-;18067:34;18063:1;18055:6;18051:14;18044:58;18136:32;18131:2;18123:6;18119:15;18112:57;17927:249;:::o;18182:366::-;18324:3;18345:67;18409:2;18404:3;18345:67;:::i;:::-;18338:74;;18421:93;18510:3;18421:93;:::i;:::-;18539:2;18534:3;18530:12;18523:19;;18182:366;;;:::o;18554:419::-;18720:4;18758:2;18747:9;18743:18;18735:26;;18807:9;18801:4;18797:20;18793:1;18782:9;18778:17;18771:47;18835:131;18961:4;18835:131;:::i;:::-;18827:139;;18554:419;;;:::o;18979:102::-;19021:8;19068:5;19065:1;19061:13;19040:34;;18979:102;;;:::o;19087:848::-;19148:5;19155:4;19179:6;19170:15;;19203:5;19194:14;;19217:712;19238:1;19228:8;19225:15;19217:712;;;19333:4;19328:3;19324:14;19318:4;19315:24;19312:50;;;19342:18;;:::i;:::-;19312:50;19392:1;19382:8;19378:16;19375:451;;;19807:4;19800:5;19796:16;19787:25;;19375:451;19857:4;19851;19847:15;19839:23;;19887:32;19910:8;19887:32;:::i;:::-;19875:44;;19217:712;;;19087:848;;;;;;;:::o;19941:1073::-;19995:5;20186:8;20176:40;;20207:1;20198:10;;20209:5;;20176:40;20235:4;20225:36;;20252:1;20243:10;;20254:5;;20225:36;20321:4;20369:1;20364:27;;;;20405:1;20400:191;;;;20314:277;;20364:27;20382:1;20373:10;;20384:5;;;20400:191;20445:3;20435:8;20432:17;20429:43;;;20452:18;;:::i;:::-;20429:43;20501:8;20498:1;20494:16;20485:25;;20536:3;20529:5;20526:14;20523:40;;;20543:18;;:::i;:::-;20523:40;20576:5;;;20314:277;;20700:2;20690:8;20687:16;20681:3;20675:4;20672:13;20668:36;20650:2;20640:8;20637:16;20632:2;20626:4;20623:12;20619:35;20603:111;20600:246;;;20756:8;20750:4;20746:19;20737:28;;20791:3;20784:5;20781:14;20778:40;;;20798:18;;:::i;:::-;20778:40;20831:5;;20600:246;20871:42;20909:3;20899:8;20893:4;20890:1;20871:42;:::i;:::-;20856:57;;;;20945:4;20940:3;20936:14;20929:5;20926:25;20923:51;;;20954:18;;:::i;:::-;20923:51;21003:4;20996:5;20992:16;20983:25;;19941:1073;;;;;;:::o;21020:281::-;21078:5;21102:23;21120:4;21102:23;:::i;:::-;21094:31;;21146:25;21162:8;21146:25;:::i;:::-;21134:37;;21190:104;21227:66;21217:8;21211:4;21190:104;:::i;:::-;21181:113;;21020:281;;;;:::o;21307:410::-;21347:7;21370:20;21388:1;21370:20;:::i;:::-;21365:25;;21404:20;21422:1;21404:20;:::i;:::-;21399:25;;21459:1;21456;21452:9;21481:30;21499:11;21481:30;:::i;:::-;21470:41;;21660:1;21651:7;21647:15;21644:1;21641:22;21621:1;21614:9;21594:83;21571:139;;21690:18;;:::i;:::-;21571:139;21355:362;21307:410;;;;:::o;21723:179::-;21863:31;21859:1;21851:6;21847:14;21840:55;21723:179;:::o;21908:366::-;22050:3;22071:67;22135:2;22130:3;22071:67;:::i;:::-;22064:74;;22147:93;22236:3;22147:93;:::i;:::-;22265:2;22260:3;22256:12;22249:19;;21908:366;;;:::o;22280:419::-;22446:4;22484:2;22473:9;22469:18;22461:26;;22533:9;22527:4;22523:20;22519:1;22508:9;22504:17;22497:47;22561:131;22687:4;22561:131;:::i;:::-;22553:139;;22280:419;;;:::o;22705:224::-;22845:34;22841:1;22833:6;22829:14;22822:58;22914:7;22909:2;22901:6;22897:15;22890:32;22705:224;:::o;22935:366::-;23077:3;23098:67;23162:2;23157:3;23098:67;:::i;:::-;23091:74;;23174:93;23263:3;23174:93;:::i;:::-;23292:2;23287:3;23283:12;23276:19;;22935:366;;;:::o;23307:419::-;23473:4;23511:2;23500:9;23496:18;23488:26;;23560:9;23554:4;23550:20;23546:1;23535:9;23531:17;23524:47;23588:131;23714:4;23588:131;:::i;:::-;23580:139;;23307:419;;;:::o;23732:241::-;23872:34;23868:1;23860:6;23856:14;23849:58;23941:24;23936:2;23928:6;23924:15;23917:49;23732:241;:::o;23979:366::-;24121:3;24142:67;24206:2;24201:3;24142:67;:::i;:::-;24135:74;;24218:93;24307:3;24218:93;:::i;:::-;24336:2;24331:3;24327:12;24320:19;;23979:366;;;:::o;24351:419::-;24517:4;24555:2;24544:9;24540:18;24532:26;;24604:9;24598:4;24594:20;24590:1;24579:9;24575:17;24568:47;24632:131;24758:4;24632:131;:::i;:::-;24624:139;;24351:419;;;:::o;24776:332::-;24897:4;24935:2;24924:9;24920:18;24912:26;;24948:71;25016:1;25005:9;25001:17;24992:6;24948:71;:::i;:::-;25029:72;25097:2;25086:9;25082:18;25073:6;25029:72;:::i;:::-;24776:332;;;;;:::o;25114:137::-;25168:5;25199:6;25193:13;25184:22;;25215:30;25239:5;25215:30;:::i;:::-;25114:137;;;;:::o;25257:345::-;25324:6;25373:2;25361:9;25352:7;25348:23;25344:32;25341:119;;;25379:79;;:::i;:::-;25341:119;25499:1;25524:61;25577:7;25568:6;25557:9;25553:22;25524:61;:::i;:::-;25514:71;;25470:125;25257:345;;;;:::o;25608:224::-;25748:34;25744:1;25736:6;25732:14;25725:58;25817:7;25812:2;25804:6;25800:15;25793:32;25608:224;:::o;25838:366::-;25980:3;26001:67;26065:2;26060:3;26001:67;:::i;:::-;25994:74;;26077:93;26166:3;26077:93;:::i;:::-;26195:2;26190:3;26186:12;26179:19;;25838:366;;;:::o;26210:419::-;26376:4;26414:2;26403:9;26399:18;26391:26;;26463:9;26457:4;26453:20;26449:1;26438:9;26434:17;26427:47;26491:131;26617:4;26491:131;:::i;:::-;26483:139;;26210:419;;;:::o;26635:224::-;26775:34;26771:1;26763:6;26759:14;26752:58;26844:7;26839:2;26831:6;26827:15;26820:32;26635:224;:::o;26865:366::-;27007:3;27028:67;27092:2;27087:3;27028:67;:::i;:::-;27021:74;;27104:93;27193:3;27104:93;:::i;:::-;27222:2;27217:3;27213:12;27206:19;;26865:366;;;:::o;27237:419::-;27403:4;27441:2;27430:9;27426:18;27418:26;;27490:9;27484:4;27480:20;27476:1;27465:9;27461:17;27454:47;27518:131;27644:4;27518:131;:::i;:::-;27510:139;;27237:419;;;:::o;27662:225::-;27802:34;27798:1;27790:6;27786:14;27779:58;27871:8;27866:2;27858:6;27854:15;27847:33;27662:225;:::o;27893:366::-;28035:3;28056:67;28120:2;28115:3;28056:67;:::i;:::-;28049:74;;28132:93;28221:3;28132:93;:::i;:::-;28250:2;28245:3;28241:12;28234:19;;27893:366;;;:::o;28265:419::-;28431:4;28469:2;28458:9;28454:18;28446:26;;28518:9;28512:4;28508:20;28504:1;28493:9;28489:17;28482:47;28546:131;28672:4;28546:131;:::i;:::-;28538:139;;28265:419;;;:::o;28690:223::-;28830:34;28826:1;28818:6;28814:14;28807:58;28899:6;28894:2;28886:6;28882:15;28875:31;28690:223;:::o;28919:366::-;29061:3;29082:67;29146:2;29141:3;29082:67;:::i;:::-;29075:74;;29158:93;29247:3;29158:93;:::i;:::-;29276:2;29271:3;29267:12;29260:19;;28919:366;;;:::o;29291:419::-;29457:4;29495:2;29484:9;29480:18;29472:26;;29544:9;29538:4;29534:20;29530:1;29519:9;29515:17;29508:47;29572:131;29698:4;29572:131;:::i;:::-;29564:139;;29291:419;;;:::o;29716:221::-;29856:34;29852:1;29844:6;29840:14;29833:58;29925:4;29920:2;29912:6;29908:15;29901:29;29716:221;:::o;29943:366::-;30085:3;30106:67;30170:2;30165:3;30106:67;:::i;:::-;30099:74;;30182:93;30271:3;30182:93;:::i;:::-;30300:2;30295:3;30291:12;30284:19;;29943:366;;;:::o;30315:419::-;30481:4;30519:2;30508:9;30504:18;30496:26;;30568:9;30562:4;30558:20;30554:1;30543:9;30539:17;30532:47;30596:131;30722:4;30596:131;:::i;:::-;30588:139;;30315:419;;;:::o;30740:228::-;30880:34;30876:1;30868:6;30864:14;30857:58;30949:11;30944:2;30936:6;30932:15;30925:36;30740:228;:::o;30974:366::-;31116:3;31137:67;31201:2;31196:3;31137:67;:::i;:::-;31130:74;;31213:93;31302:3;31213:93;:::i;:::-;31331:2;31326:3;31322:12;31315:19;;30974:366;;;:::o;31346:419::-;31512:4;31550:2;31539:9;31535:18;31527:26;;31599:9;31593:4;31589:20;31585:1;31574:9;31570:17;31563:47;31627:131;31753:4;31627:131;:::i;:::-;31619:139;;31346:419;;;:::o;31771:169::-;31911:21;31907:1;31899:6;31895:14;31888:45;31771:169;:::o;31946:366::-;32088:3;32109:67;32173:2;32168:3;32109:67;:::i;:::-;32102:74;;32185:93;32274:3;32185:93;:::i;:::-;32303:2;32298:3;32294:12;32287:19;;31946:366;;;:::o;32318:419::-;32484:4;32522:2;32511:9;32507:18;32499:26;;32571:9;32565:4;32561:20;32557:1;32546:9;32542:17;32535:47;32599:131;32725:4;32599:131;:::i;:::-;32591:139;;32318:419;;;:::o;32743:180::-;32791:77;32788:1;32781:88;32888:4;32885:1;32878:15;32912:4;32909:1;32902:15;32929:185;32969:1;32986:20;33004:1;32986:20;:::i;:::-;32981:25;;33020:20;33038:1;33020:20;:::i;:::-;33015:25;;33059:1;33049:35;;33064:18;;:::i;:::-;33049:35;33106:1;33103;33099:9;33094:14;;32929:185;;;;:::o;33120:224::-;33260:34;33256:1;33248:6;33244:14;33237:58;33329:7;33324:2;33316:6;33312:15;33305:32;33120:224;:::o;33350:366::-;33492:3;33513:67;33577:2;33572:3;33513:67;:::i;:::-;33506:74;;33589:93;33678:3;33589:93;:::i;:::-;33707:2;33702:3;33698:12;33691:19;;33350:366;;;:::o;33722:419::-;33888:4;33926:2;33915:9;33911:18;33903:26;;33975:9;33969:4;33965:20;33961:1;33950:9;33946:17;33939:47;34003:131;34129:4;34003:131;:::i;:::-;33995:139;;33722:419;;;:::o;34147:222::-;34287:34;34283:1;34275:6;34271:14;34264:58;34356:5;34351:2;34343:6;34339:15;34332:30;34147:222;:::o;34375:366::-;34517:3;34538:67;34602:2;34597:3;34538:67;:::i;:::-;34531:74;;34614:93;34703:3;34614:93;:::i;:::-;34732:2;34727:3;34723:12;34716:19;;34375:366;;;:::o;34747:419::-;34913:4;34951:2;34940:9;34936:18;34928:26;;35000:9;34994:4;34990:20;34986:1;34975:9;34971:17;34964:47;35028:131;35154:4;35028:131;:::i;:::-;35020:139;;34747:419;;;:::o;35172:225::-;35312:34;35308:1;35300:6;35296:14;35289:58;35381:8;35376:2;35368:6;35364:15;35357:33;35172:225;:::o;35403:366::-;35545:3;35566:67;35630:2;35625:3;35566:67;:::i;:::-;35559:74;;35642:93;35731:3;35642:93;:::i;:::-;35760:2;35755:3;35751:12;35744:19;;35403:366;;;:::o;35775:419::-;35941:4;35979:2;35968:9;35964:18;35956:26;;36028:9;36022:4;36018:20;36014:1;36003:9;35999:17;35992:47;36056:131;36182:4;36056:131;:::i;:::-;36048:139;;35775:419;;;:::o;36200:143::-;36257:5;36288:6;36282:13;36273:22;;36304:33;36331:5;36304:33;:::i;:::-;36200:143;;;;:::o;36349:351::-;36419:6;36468:2;36456:9;36447:7;36443:23;36439:32;36436:119;;;36474:79;;:::i;:::-;36436:119;36594:1;36619:64;36675:7;36666:6;36655:9;36651:22;36619:64;:::i;:::-;36609:74;;36565:128;36349:351;;;;:::o;36706:85::-;36751:7;36780:5;36769:16;;36706:85;;;:::o;36797:158::-;36855:9;36888:61;36906:42;36915:32;36941:5;36915:32;:::i;:::-;36906:42;:::i;:::-;36888:61;:::i;:::-;36875:74;;36797:158;;;:::o;36961:147::-;37056:45;37095:5;37056:45;:::i;:::-;37051:3;37044:58;36961:147;;:::o;37114:114::-;37181:6;37215:5;37209:12;37199:22;;37114:114;;;:::o;37234:184::-;37333:11;37367:6;37362:3;37355:19;37407:4;37402:3;37398:14;37383:29;;37234:184;;;;:::o;37424:132::-;37491:4;37514:3;37506:11;;37544:4;37539:3;37535:14;37527:22;;37424:132;;;:::o;37562:108::-;37639:24;37657:5;37639:24;:::i;:::-;37634:3;37627:37;37562:108;;:::o;37676:179::-;37745:10;37766:46;37808:3;37800:6;37766:46;:::i;:::-;37844:4;37839:3;37835:14;37821:28;;37676:179;;;;:::o;37861:113::-;37931:4;37963;37958:3;37954:14;37946:22;;37861:113;;;:::o;38010:732::-;38129:3;38158:54;38206:5;38158:54;:::i;:::-;38228:86;38307:6;38302:3;38228:86;:::i;:::-;38221:93;;38338:56;38388:5;38338:56;:::i;:::-;38417:7;38448:1;38433:284;38458:6;38455:1;38452:13;38433:284;;;38534:6;38528:13;38561:63;38620:3;38605:13;38561:63;:::i;:::-;38554:70;;38647:60;38700:6;38647:60;:::i;:::-;38637:70;;38493:224;38480:1;38477;38473:9;38468:14;;38433:284;;;38437:14;38733:3;38726:10;;38134:608;;;38010:732;;;;:::o;38748:831::-;39011:4;39049:3;39038:9;39034:19;39026:27;;39063:71;39131:1;39120:9;39116:17;39107:6;39063:71;:::i;:::-;39144:80;39220:2;39209:9;39205:18;39196:6;39144:80;:::i;:::-;39271:9;39265:4;39261:20;39256:2;39245:9;39241:18;39234:48;39299:108;39402:4;39393:6;39299:108;:::i;:::-;39291:116;;39417:72;39485:2;39474:9;39470:18;39461:6;39417:72;:::i;:::-;39499:73;39567:3;39556:9;39552:19;39543:6;39499:73;:::i;:::-;38748:831;;;;;;;;:::o;39585:807::-;39834:4;39872:3;39861:9;39857:19;39849:27;;39886:71;39954:1;39943:9;39939:17;39930:6;39886:71;:::i;:::-;39967:72;40035:2;40024:9;40020:18;40011:6;39967:72;:::i;:::-;40049:80;40125:2;40114:9;40110:18;40101:6;40049:80;:::i;:::-;40139;40215:2;40204:9;40200:18;40191:6;40139:80;:::i;:::-;40229:73;40297:3;40286:9;40282:19;40273:6;40229:73;:::i;:::-;40312;40380:3;40369:9;40365:19;40356:6;40312:73;:::i;:::-;39585:807;;;;;;;;;:::o;40398:143::-;40455:5;40486:6;40480:13;40471:22;;40502:33;40529:5;40502:33;:::i;:::-;40398:143;;;;:::o;40547:663::-;40635:6;40643;40651;40700:2;40688:9;40679:7;40675:23;40671:32;40668:119;;;40706:79;;:::i;:::-;40668:119;40826:1;40851:64;40907:7;40898:6;40887:9;40883:22;40851:64;:::i;:::-;40841:74;;40797:128;40964:2;40990:64;41046:7;41037:6;41026:9;41022:22;40990:64;:::i;:::-;40980:74;;40935:129;41103:2;41129:64;41185:7;41176:6;41165:9;41161:22;41129:64;:::i;:::-;41119:74;;41074:129;40547:663;;;;;:::o;41216:179::-;41356:31;41352:1;41344:6;41340:14;41333:55;41216:179;:::o;41401:366::-;41543:3;41564:67;41628:2;41623:3;41564:67;:::i;:::-;41557:74;;41640:93;41729:3;41640:93;:::i;:::-;41758:2;41753:3;41749:12;41742:19;;41401:366;;;:::o;41773:419::-;41939:4;41977:2;41966:9;41962:18;41954:26;;42026:9;42020:4;42016:20;42012:1;42001:9;41997:17;41990:47;42054:131;42180:4;42054:131;:::i;:::-;42046:139;;41773:419;;;:::o;42198:147::-;42299:11;42336:3;42321:18;;42198:147;;;;:::o;42351:114::-;;:::o;42471:398::-;42630:3;42651:83;42732:1;42727:3;42651:83;:::i;:::-;42644:90;;42743:93;42832:3;42743:93;:::i;:::-;42861:1;42856:3;42852:11;42845:18;;42471:398;;;:::o;42875:379::-;43059:3;43081:147;43224:3;43081:147;:::i;:::-;43074:154;;43245:3;43238:10;;42875:379;;;:::o;43260:245::-;43400:34;43396:1;43388:6;43384:14;43377:58;43469:28;43464:2;43456:6;43452:15;43445:53;43260:245;:::o;43511:366::-;43653:3;43674:67;43738:2;43733:3;43674:67;:::i;:::-;43667:74;;43750:93;43839:3;43750:93;:::i;:::-;43868:2;43863:3;43859:12;43852:19;;43511:366;;;:::o;43883:419::-;44049:4;44087:2;44076:9;44072:18;44064:26;;44136:9;44130:4;44126:20;44122:1;44111:9;44107:17;44100:47;44164:131;44290:4;44164:131;:::i;:::-;44156:139;;43883:419;;;:::o

Swarm Source

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