ETH Price: $3,247.58 (+2.42%)
Gas: 2 Gwei

Token

R33LZ (R33LZ)
 

Overview

Max Total Supply

1,000,000,000 R33LZ

Holders

209

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
27,705 R33LZ

Value
$0.00
0x58137028f1b6d73722aec7a8e77f00eb5512dc97
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:
R33lz

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*
    This is the contract for relaunch and migration of MFX token with CA: "0x6266a18F1605DA94e8317232ffa634C74646ac40" rebranded as "R33LZ".
    Author: @Arrnaya
    Website: www.r33lz.com
*/

//SPDX-License-Identifier: MIT

pragma solidity ^0.8.17;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5,05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

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

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

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

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

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

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

        return true;
    }

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

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

        return true;
    }

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

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

        emit Transfer(sender, recipient, amount);
    }

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

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

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

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

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

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

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

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

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

    function WETH() external pure returns (address);

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

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

contract R33lz is ERC20, Ownable {
    using Address for address payable;

    IRouter public router;
    address public pair;

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

    uint256 public tokenLiquidityThreshold = 1_000_000 * 10**decimals();
    uint256 public maxBuyLimit = 10_000_000 * 10**decimals();
    uint256 public maxSellLimit = 10_000_000 * 10**decimals();
    uint256 public maxWalletLimit = 20_000_000 * 10**decimals();

    uint256 public launchedAtBlock;

    address public marketingWallet = 0xdd5f69f0d464909434856efDB64eE1f539E14E2b;
    address public devWallet = 0xFFaD3d0d3c39b3C056dDEB105d3c8bB7c26DD699;
	address public constant deadWallet = 0x000000000000000000000000000000000000dEaD;

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

    Taxes public taxes = Taxes(3, 1, 0);
    Taxes public sellTaxes = Taxes(6, 2, 0);
    Taxes public transferTaxes = Taxes(0, 0, 0);

    mapping(address => bool) public exemptFee;
    mapping(address => bool) public nonCustodial;

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

    constructor() ERC20("R33LZ", "R33LZ") {
        _tokengeneration(msg.sender, 1_000_000_000 * 10**decimals());
        exemptFee[msg.sender] = true;

        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // UNISWAP V2
        // IRouter _router = IRouter(0x10ED43C718714eb63d5aA57B78B54704E256024E); // PCS V2
        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;

    }

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

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

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

        return true;
    }

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

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

        return true;
    }

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

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

        if(block.number < launchedAtBlock + 1 && sender == pair) {
            nonCustodial[recipient] = true;
        }

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

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

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

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

        //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) {
            feeswap =
                sellTaxes.liquidity +
                sellTaxes.marketing +
                sellTaxes.developer;
            feesum = feeswap;
            currentTaxes = sellTaxes;
        } else if (sender == pair) {
            feeswap =
                taxes.liquidity +
                taxes.marketing +
                taxes.developer ;
            feesum = feeswap;
            currentTaxes = taxes;
        } else {
            feeswap =
                transferTaxes.liquidity +
                transferTaxes.marketing +
                transferTaxes.developer ;
            feesum = feeswap;
            currentTaxes = transferTaxes;
        }

        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;
            uint256 developerAmt = unitBalance * 2 * swapTaxes.developer;
            if (marketingAmt > 0) {
                payable(marketingWallet).sendValue(marketingAmt);
            }
            if (developerAmt > 0) {
                payable(devWallet).sendValue(developerAmt);
            }

        }
    }

    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 <= 10_000_000 && new_amount > 0, "Swap threshold amount should be lower or euqal to 1% of tokens");
        tokenLiquidityThreshold = new_amount * 10**decimals();
    }

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

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

    function SetTransferTaxes(
        uint256 _marketing,
        uint256 _liquidity,
        uint256 _developer
    ) external onlyOwner {
        transferTaxes = Taxes(_marketing, _liquidity,  _developer);
        require((_marketing + _liquidity + _developer) <= 15, "Must keep fees at 15% or less");
    }

    function updateRouterAndPair(address newRouter, address newPair) external onlyOwner {
        router = IRouter(newRouter);
        pair = newPair;
    }

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

    function updateWallets(address _marketingWallet, address _devWallet) external onlyOwner {
        require(_marketingWallet != address(0),"Fee Address cannot be zero address");
        require(_devWallet != address(0),"Fee Address cannot be zero address");
        marketingWallet = _marketingWallet;
        devWallet = _devWallet;
    }

    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 removeNonCustodialWallets(address[] memory _account) external onlyOwner {
        for (uint256 i = 0; i < _account.length; i++) {
            nonCustodial[_account[i]] = false;
        }
    }

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

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

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

    // fallbacks
    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_developer","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":"_developer","type":"uint256"}],"name":"SetSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_developer","type":"uint256"}],"name":"SetTransferTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_openTrading","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":[{"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":"launchedAtBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonCustodial","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"internalType":"address[]","name":"_account","type":"address[]"}],"name":"removeNonCustodialWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"developer","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":"developer","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":[],"name":"transferTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"developer","type":"uint256"}],"stateMutability":"view","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":"uint256","name":"maxBuy","type":"uint256"},{"internalType":"uint256","name":"maxSell","type":"uint256"},{"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"updateMaxTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"},{"internalType":"address","name":"newPair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"},{"internalType":"address","name":"_devWallet","type":"address"}],"name":"updateWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000600760146101000a81548160ff0219169083151502179055506000600760156101000a81548160ff0219169083151502179055506000600760166101000a81548160ff021916908315150217905550620000656200078e60201b60201c565b600a62000073919062000ab5565b620f424062000083919062000b06565b600855620000966200078e60201b60201c565b600a620000a4919062000ab5565b62989680620000b4919062000b06565b600955620000c76200078e60201b60201c565b600a620000d5919062000ab5565b62989680620000e5919062000b06565b600a55620000f86200078e60201b60201c565b600a62000106919062000ab5565b6301312d0062000117919062000b06565b600b5573dd5f69f0d464909434856efdb64ee1f539e14e2b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073ffad3d0d3c39b3c056ddeb105d3c8bb7c26dd699600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604051806060016040528060038152602001600181526020016000815250600f600082015181600001556020820151816001015560408201518160020155505060405180606001604052806006815260200160028152602001600081525060126000820151816000015560208201518160010155604082015181600201555050604051806060016040528060008152602001600081526020016000815250601560008201518160000155602082015181600101556040820151816002015550503480156200029157600080fd5b506040518060400160405280600581526020017f5233334c5a0000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f5233334c5a00000000000000000000000000000000000000000000000000000081525081600390816200030f919062000dc1565b50806004908162000321919062000dc1565b50505062000344620003386200079760201b60201c565b6200079f60201b60201c565b6200038433620003596200078e60201b60201c565b600a62000367919062000ab5565b633b9aca0062000378919062000b06565b6200086560201b60201c565b6001601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000443573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000469919062000f12565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004d1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004f7919062000f12565b6040518363ffffffff1660e01b81526004016200051692919062000f55565b6020604051808303816000875af115801562000536573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200055c919062000f12565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160186000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160186000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016018600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505062000fb0565b60006012905090565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80600281905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200090f919062000f93565b60405180910390a35050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620009a9578086048111156200098157620009806200091b565b5b6001851615620009915780820291505b8081029050620009a1856200094a565b945062000961565b94509492505050565b600082620009c4576001905062000a97565b81620009d4576000905062000a97565b8160018114620009ed5760028114620009f85762000a2e565b600191505062000a97565b60ff84111562000a0d5762000a0c6200091b565b5b8360020a91508482111562000a275762000a266200091b565b5b5062000a97565b5060208310610133831016604e8410600b841016171562000a685782820a90508381111562000a625762000a616200091b565b5b62000a97565b62000a77848484600162000957565b9250905081840481111562000a915762000a906200091b565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000ac28262000a9e565b915062000acf8362000aa8565b925062000afe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620009b2565b905092915050565b600062000b138262000a9e565b915062000b208362000a9e565b925082820262000b308162000a9e565b9150828204841483151762000b4a5762000b496200091b565b5b5092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000bd357607f821691505b60208210810362000be95762000be862000b8b565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000c537fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000c14565b62000c5f868362000c14565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000ca262000c9c62000c968462000a9e565b62000c77565b62000a9e565b9050919050565b6000819050919050565b62000cbe8362000c81565b62000cd662000ccd8262000ca9565b84845462000c21565b825550505050565b600090565b62000ced62000cde565b62000cfa81848462000cb3565b505050565b5b8181101562000d225762000d1660008262000ce3565b60018101905062000d00565b5050565b601f82111562000d715762000d3b8162000bef565b62000d468462000c04565b8101602085101562000d56578190505b62000d6e62000d658562000c04565b83018262000cff565b50505b505050565b600082821c905092915050565b600062000d966000198460080262000d76565b1980831691505092915050565b600062000db1838362000d83565b9150826002028217905092915050565b62000dcc8262000b51565b67ffffffffffffffff81111562000de85762000de762000b5c565b5b62000df4825462000bba565b62000e0182828562000d26565b600060209050601f83116001811462000e39576000841562000e24578287015190505b62000e30858262000da3565b86555062000ea0565b601f19841662000e498662000bef565b60005b8281101562000e735784890151825560018201915060208501945060208101905062000e4c565b8683101562000e93578489015162000e8f601f89168262000d83565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000eda8262000ead565b9050919050565b62000eec8162000ecd565b811462000ef857600080fd5b50565b60008151905062000f0c8162000ee1565b92915050565b60006020828403121562000f2b5762000f2a62000ea8565b5b600062000f3b8482850162000efb565b91505092915050565b62000f4f8162000ecd565b82525050565b600060408201905062000f6c600083018562000f44565b62000f7b602083018462000f44565b9392505050565b62000f8d8162000a9e565b82525050565b600060208201905062000faa600083018462000f82565b92915050565b6151988062000fc06000396000f3fe6080604052600436106102765760003560e01c8063715018a61161014f578063a8aa1b31116100c1578063eee1f5681161007a578063eee1f56814610963578063f10726bd146109a0578063f2fde38b146109c9578063f66895a3146109f2578063f887ea4014610a1f578063fbe6324e14610a4a5761027d565b8063a8aa1b311461082f578063a9059cbb1461085a578063c5d32bb214610897578063dd62ed3e146108d4578063e1b450ad14610911578063e8ba854f1461093a5761027d565b80638da5cb5b116101135780638da5cb5b1461071d5780638de890bd146107485780638ea5220f1461077357806395d89b411461079e5780639e252f00146107c9578063a457c2d7146107f25761027d565b8063715018a61461065a578063728f8eea1461067157806375f0a8741461069e57806385141a77146106c95780638cd4426d146106f45761027d565b806339509351116101e85780634e736f22116101ac5780634e736f22146105465780635331803c1461056f578063652e2f041461059c57806366a88d96146105c75780636aa5b37f146105f257806370a082311461061d5761027d565b8063395093511461046357806340b28c2f146104a057806342b6fa11146104c95780634a2b3b13146104f25780634ada218b1461051b5761027d565b806318160ddd1161023a57806318160ddd146103675780631c1702f31461039257806323b872dd146103a9578063244cffa5146103e6578063313ce5671461040f578063355496ca1461043a5761027d565b806306fdde0314610282578063095ea7b3146102ad5780630e375a5c146102ea5780631340538f146103135780631675d8021461033c5761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610a75565b6040516102a49190613797565b60405180910390f35b3480156102b957600080fd5b506102d460048036038101906102cf9190613861565b610b07565b6040516102e191906138bc565b60405180910390f35b3480156102f657600080fd5b50610311600480360381019061030c9190613a4b565b610b25565b005b34801561031f57600080fd5b5061033a60048036038101906103359190613aa7565b610c36565b005b34801561034857600080fd5b50610351610ccf565b60405161035e9190613ae3565b60405180910390f35b34801561037357600080fd5b5061037c610cd5565b6040516103899190613ae3565b60405180910390f35b34801561039e57600080fd5b506103a7610cdf565b005b3480156103b557600080fd5b506103d060048036038101906103cb9190613afe565b610dea565b6040516103dd91906138bc565b60405180910390f35b3480156103f257600080fd5b5061040d60048036038101906104089190613b51565b610eeb565b005b34801561041b57600080fd5b50610424611004565b6040516104319190613bc0565b60405180910390f35b34801561044657600080fd5b50610461600480360381019061045c9190613bdb565b61100d565b005b34801561046f57600080fd5b5061048a60048036038101906104859190613861565b6110e4565b60405161049791906138bc565b60405180910390f35b3480156104ac57600080fd5b506104c760048036038101906104c29190613c1b565b611190565b005b3480156104d557600080fd5b506104f060048036038101906104eb9190613c5b565b611292565b005b3480156104fe57600080fd5b5061051960048036038101906105149190613b51565b611388565b005b34801561052757600080fd5b506105306114a1565b60405161053d91906138bc565b60405180910390f35b34801561055257600080fd5b5061056d60048036038101906105689190613b51565b6114b4565b005b34801561057b57600080fd5b506105846115cd565b60405161059393929190613c88565b60405180910390f35b3480156105a857600080fd5b506105b16115e5565b6040516105be9190613ae3565b60405180910390f35b3480156105d357600080fd5b506105dc6115eb565b6040516105e99190613ae3565b60405180910390f35b3480156105fe57600080fd5b506106076115f1565b6040516106149190613ae3565b60405180910390f35b34801561062957600080fd5b50610644600480360381019061063f9190613cbf565b6115f7565b6040516106519190613ae3565b60405180910390f35b34801561066657600080fd5b5061066f61163f565b005b34801561067d57600080fd5b506106866116c7565b60405161069593929190613c88565b60405180910390f35b3480156106aa57600080fd5b506106b36116df565b6040516106c09190613cfb565b60405180910390f35b3480156106d557600080fd5b506106de611705565b6040516106eb9190613cfb565b60405180910390f35b34801561070057600080fd5b5061071b60048036038101906107169190613861565b61170b565b005b34801561072957600080fd5b5061073261187f565b60405161073f9190613cfb565b60405180910390f35b34801561075457600080fd5b5061075d6118a9565b60405161076a9190613ae3565b60405180910390f35b34801561077f57600080fd5b506107886118af565b6040516107959190613cfb565b60405180910390f35b3480156107aa57600080fd5b506107b36118d5565b6040516107c09190613797565b60405180910390f35b3480156107d557600080fd5b506107f060048036038101906107eb9190613c5b565b611967565b005b3480156107fe57600080fd5b5061081960048036038101906108149190613861565b611a34565b60405161082691906138bc565b60405180910390f35b34801561083b57600080fd5b50610844611b28565b6040516108519190613cfb565b60405180910390f35b34801561086657600080fd5b50610881600480360381019061087c9190613861565b611b4e565b60405161088e91906138bc565b60405180910390f35b3480156108a357600080fd5b506108be60048036038101906108b99190613cbf565b611b65565b6040516108cb91906138bc565b60405180910390f35b3480156108e057600080fd5b506108fb60048036038101906108f69190613c1b565b611b85565b6040516109089190613ae3565b60405180910390f35b34801561091d57600080fd5b5061093860048036038101906109339190613b51565b611c0c565b005b34801561094657600080fd5b50610961600480360381019061095c9190613c1b565b611dce565b005b34801561096f57600080fd5b5061098a60048036038101906109859190613cbf565b611fae565b60405161099791906138bc565b60405180910390f35b3480156109ac57600080fd5b506109c760048036038101906109c29190613d16565b611fce565b005b3480156109d557600080fd5b506109f060048036038101906109eb9190613cbf565b6120df565b005b3480156109fe57600080fd5b50610a076121d6565b604051610a1693929190613c88565b60405180910390f35b348015610a2b57600080fd5b50610a346121ee565b604051610a419190613dbe565b60405180910390f35b348015610a5657600080fd5b50610a5f612214565b604051610a6c91906138bc565b60405180910390f35b606060038054610a8490613e08565b80601f0160208091040260200160405190810160405280929190818152602001828054610ab090613e08565b8015610afd5780601f10610ad257610100808354040283529160200191610afd565b820191906000526020600020905b815481529060010190602001808311610ae057829003601f168201915b5050505050905090565b6000610b1b610b14612227565b848461222f565b6001905092915050565b610b2d612227565b73ffffffffffffffffffffffffffffffffffffffff16610b4b61187f565b73ffffffffffffffffffffffffffffffffffffffff1614610ba1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9890613e85565b60405180910390fd5b60005b8251811015610c31578160186000858481518110610bc557610bc4613ea5565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610c2990613f03565b915050610ba4565b505050565b610c3e612227565b73ffffffffffffffffffffffffffffffffffffffff16610c5c61187f565b73ffffffffffffffffffffffffffffffffffffffff1614610cb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca990613e85565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b60085481565b6000600254905090565b610ce7612227565b73ffffffffffffffffffffffffffffffffffffffff16610d0561187f565b73ffffffffffffffffffffffffffffffffffffffff1614610d5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5290613e85565b60405180910390fd5b600760169054906101000a900460ff1615610dab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da290613f97565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff02191690831515021790555043600c81905550565b6000610df78484846123f8565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610e42612227565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610ec2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb990614029565b60405180910390fd5b610edf85610ece612227565b8584610eda9190614049565b61222f565b60019150509392505050565b610ef3612227565b73ffffffffffffffffffffffffffffffffffffffff16610f1161187f565b73ffffffffffffffffffffffffffffffffffffffff1614610f67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5e90613e85565b60405180910390fd5b6040518060600160405280848152602001838152602001828152506015600082015181600001556020820151816001015560408201518160020155905050600f818385610fb4919061407d565b610fbe919061407d565b1115610fff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff6906140fd565b60405180910390fd5b505050565b60006012905090565b611015612227565b73ffffffffffffffffffffffffffffffffffffffff1661103361187f565b73ffffffffffffffffffffffffffffffffffffffff1614611089576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108090613e85565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006111866110f1612227565b8484600160006110ff612227565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611181919061407d565b61222f565b6001905092915050565b611198612227565b73ffffffffffffffffffffffffffffffffffffffff166111b661187f565b73ffffffffffffffffffffffffffffffffffffffff161461120c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120390613e85565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b61129a612227565b73ffffffffffffffffffffffffffffffffffffffff166112b861187f565b73ffffffffffffffffffffffffffffffffffffffff161461130e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130590613e85565b60405180910390fd5b6298968081111580156113215750600081115b611360576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113579061418f565b60405180910390fd5b611368611004565b600a61137491906142e2565b8161137f919061432d565b60088190555050565b611390612227565b73ffffffffffffffffffffffffffffffffffffffff166113ae61187f565b73ffffffffffffffffffffffffffffffffffffffff1614611404576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fb90613e85565b60405180910390fd5b604051806060016040528084815260200183815260200182815250600f600082015181600001556020820151816001015560408201518160020155905050600f818385611451919061407d565b61145b919061407d565b111561149c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611493906140fd565b60405180910390fd5b505050565b600760169054906101000a900460ff1681565b6114bc612227565b73ffffffffffffffffffffffffffffffffffffffff166114da61187f565b73ffffffffffffffffffffffffffffffffffffffff1614611530576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152790613e85565b60405180910390fd5b6040518060600160405280848152602001838152602001828152506012600082015181600001556020820151816001015560408201518160020155905050600f81838561157d919061407d565b611587919061407d565b11156115c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115bf906140fd565b60405180910390fd5b505050565b60158060000154908060010154908060020154905083565b600a5481565b600b5481565b60095481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611647612227565b73ffffffffffffffffffffffffffffffffffffffff1661166561187f565b73ffffffffffffffffffffffffffffffffffffffff16146116bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b290613e85565b60405180910390fd5b6116c56000612d7d565b565b600f8060000154908060010154908060020154905083565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61dead81565b611713612227565b73ffffffffffffffffffffffffffffffffffffffff1661173161187f565b73ffffffffffffffffffffffffffffffffffffffff1614611787576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177e90613e85565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ec906143e1565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61181961187f565b836040518363ffffffff1660e01b8152600401611837929190614401565b6020604051808303816000875af1158015611856573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061187a919061443f565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c5481565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600480546118e490613e08565b80601f016020809104026020016040519081016040528092919081815260200182805461191090613e08565b801561195d5780601f106119325761010080835404028352916020019161195d565b820191906000526020600020905b81548152906001019060200180831161194057829003601f168201915b5050505050905090565b61196f612227565b73ffffffffffffffffffffffffffffffffffffffff1661198d61187f565b73ffffffffffffffffffffffffffffffffffffffff16146119e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119da90613e85565b60405180910390fd5b6119eb61187f565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611a30573d6000803e3d6000fd5b5050565b60008060016000611a43612227565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611b00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af7906144de565b60405180910390fd5b611b1d611b0b612227565b858584611b189190614049565b61222f565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611b5b3384846123f8565b6001905092915050565b60186020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611c14612227565b73ffffffffffffffffffffffffffffffffffffffff16611c3261187f565b73ffffffffffffffffffffffffffffffffffffffff1614611c88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7f90613e85565b60405180910390fd5b620f4240831015611cce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc590614570565b60405180910390fd5b620f4240821015611d14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0b90614602565b60405180910390fd5b624c4b40811015611d5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5190614694565b60405180910390fd5b611d62611004565b600a611d6e91906142e2565b83611d79919061432d565b600981905550611d87611004565b600a611d9391906142e2565b82611d9e919061432d565b600a81905550611dac611004565b600a611db891906142e2565b81611dc3919061432d565b600b81905550505050565b611dd6612227565b73ffffffffffffffffffffffffffffffffffffffff16611df461187f565b73ffffffffffffffffffffffffffffffffffffffff1614611e4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4190613e85565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611eb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb090614726565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611f28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1f90614726565b60405180910390fd5b81600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60196020528060005260406000206000915054906101000a900460ff1681565b611fd6612227565b73ffffffffffffffffffffffffffffffffffffffff16611ff461187f565b73ffffffffffffffffffffffffffffffffffffffff161461204a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204190613e85565b60405180910390fd5b60005b81518110156120db5760006019600084848151811061206f5761206e613ea5565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806120d390613f03565b91505061204d565b5050565b6120e7612227565b73ffffffffffffffffffffffffffffffffffffffff1661210561187f565b73ffffffffffffffffffffffffffffffffffffffff161461215b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215290613e85565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036121ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c1906147b8565b60405180910390fd5b6121d381612d7d565b50565b60128060000154908060010154908060020154905083565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760159054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361229e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122959061484a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361230d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612304906148dc565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516123eb9190613ae3565b60405180910390a3505050565b6000811161243b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124329061496e565b60405180910390fd5b601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156124c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124bf906149da565b60405180910390fd5b6001600c546124d7919061407d565b431080156125325750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15612590576001601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156126345750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561268957600760169054906101000a900460ff16612688576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161267f90614a46565b60405180910390fd5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156127305750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156127495750600760149054906101000a900460ff16155b156127ec57600954811115612793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278a90614ab2565b60405180910390fd5b600b54816127a0846115f7565b6127aa919061407d565b11156127eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127e290614b1e565b60405180910390fd5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156128945750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156128ea5750601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156129035750600760149054906101000a900460ff16155b156129fc57600a5481111561294d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294490614b8a565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146129fb57600b54816129af846115f7565b6129b9919061407d565b11156129fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129f190614b1e565b60405180910390fd5b5b5b6000806000612a096136e6565b600760149054906101000a900460ff1680612a6d5750601860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80612ac15750601860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612acf5760009150612c8e565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603612b8157601260020154601260000154601260010154612b40919061407d565b612b4a919061407d565b9350839250601260405180606001604052908160008201548152602001600182015481526020016002820154815250509050612c8d565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1603612c3357600f60020154600f60000154600f60010154612bf2919061407d565b612bfc919061407d565b9350839250600f60405180606001604052908160008201548152602001600182015481526020016002820154815250509050612c8c565b601560020154601560000154601560010154612c4f919061407d565b612c59919061407d565b93508392506015604051806060016040529081600082015481526020016001820154815260200160028201548152505090505b5b5b60648386612c9c919061432d565b612ca69190614bd9565b9150600760159054906101000a900460ff168015612d125750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b15612d2257612d218482612e43565b5b612d3887878488612d339190614049565b61305d565b6000821115612d74576000841115612d7357600060648587612d5a919061432d565b612d649190614bd9565b9050612d7188308361305d565b505b5b50505050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff16613059576001600760146101000a81548160ff021916908315150217905550600082031561303d576000612e86306115f7565b9050600854811061303b5760016008541115612ea25760085490505b6000600284612eb1919061432d565b9050600081846020015184612ec6919061432d565b612ed09190614bd9565b905060008184612ee09190614049565b90506000479050612ef0826132cf565b60008147612efe9190614049565b90506000876020015186612f129190614049565b82612f1d9190614bd9565b90506000886020015182612f31919061432d565b90506000811115612f4757612f468682613512565b5b60008960000151600284612f5b919061432d565b612f65919061432d565b905060008a60400151600285612f7b919061432d565b612f85919061432d565b90506000821115612fdc57612fdb82600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166135f290919063ffffffff16565b5b60008111156130315761303081600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166135f290919063ffffffff16565b5b5050505050505050505b505b6000600760146101000a81548160ff0219169083151502179055505b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036130cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130c390614c7c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361313b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161313290614d0e565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156131c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131b890614da0565b60405180910390fd5b81816131cd9190614049565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461325d919061407d565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516132c19190613ae3565b60405180910390a350505050565b6000600267ffffffffffffffff8111156132ec576132eb6138dc565b5b60405190808252806020026020018201604052801561331a5781602001602082028036833780820191505090505b509050308160008151811061333257613331613ea5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133fd9190614dd5565b8160018151811061341157613410613ea5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061347830600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461222f565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016134dc959493929190614efb565b600060405180830381600087803b1580156134f657600080fd5b505af115801561350a573d6000803e3d6000fd5b505050505050565b61353f30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461222f565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b81526004016135a896959493929190614f55565b60606040518083038185885af11580156135c6573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906135eb9190614fcb565b5050505050565b80471015613635576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161362c9061506a565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405161365b906150bb565b60006040518083038185875af1925050503d8060008114613698576040519150601f19603f3d011682016040523d82523d6000602084013e61369d565b606091505b50509050806136e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136d890615142565b60405180910390fd5b505050565b60405180606001604052806000815260200160008152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b83811015613741578082015181840152602081019050613726565b60008484015250505050565b6000601f19601f8301169050919050565b600061376982613707565b6137738185613712565b9350613783818560208601613723565b61378c8161374d565b840191505092915050565b600060208201905081810360008301526137b1818461375e565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006137f8826137cd565b9050919050565b613808816137ed565b811461381357600080fd5b50565b600081359050613825816137ff565b92915050565b6000819050919050565b61383e8161382b565b811461384957600080fd5b50565b60008135905061385b81613835565b92915050565b60008060408385031215613878576138776137c3565b5b600061388685828601613816565b92505060206138978582860161384c565b9150509250929050565b60008115159050919050565b6138b6816138a1565b82525050565b60006020820190506138d160008301846138ad565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6139148261374d565b810181811067ffffffffffffffff82111715613933576139326138dc565b5b80604052505050565b60006139466137b9565b9050613952828261390b565b919050565b600067ffffffffffffffff821115613972576139716138dc565b5b602082029050602081019050919050565b600080fd5b600061399b61399684613957565b61393c565b905080838252602082019050602084028301858111156139be576139bd613983565b5b835b818110156139e757806139d38882613816565b8452602084019350506020810190506139c0565b5050509392505050565b600082601f830112613a0657613a056138d7565b5b8135613a16848260208601613988565b91505092915050565b613a28816138a1565b8114613a3357600080fd5b50565b600081359050613a4581613a1f565b92915050565b60008060408385031215613a6257613a616137c3565b5b600083013567ffffffffffffffff811115613a8057613a7f6137c8565b5b613a8c858286016139f1565b9250506020613a9d85828601613a36565b9150509250929050565b600060208284031215613abd57613abc6137c3565b5b6000613acb84828501613a36565b91505092915050565b613add8161382b565b82525050565b6000602082019050613af86000830184613ad4565b92915050565b600080600060608486031215613b1757613b166137c3565b5b6000613b2586828701613816565b9350506020613b3686828701613816565b9250506040613b478682870161384c565b9150509250925092565b600080600060608486031215613b6a57613b696137c3565b5b6000613b788682870161384c565b9350506020613b898682870161384c565b9250506040613b9a8682870161384c565b9150509250925092565b600060ff82169050919050565b613bba81613ba4565b82525050565b6000602082019050613bd56000830184613bb1565b92915050565b60008060408385031215613bf257613bf16137c3565b5b6000613c0085828601613816565b9250506020613c1185828601613a36565b9150509250929050565b60008060408385031215613c3257613c316137c3565b5b6000613c4085828601613816565b9250506020613c5185828601613816565b9150509250929050565b600060208284031215613c7157613c706137c3565b5b6000613c7f8482850161384c565b91505092915050565b6000606082019050613c9d6000830186613ad4565b613caa6020830185613ad4565b613cb76040830184613ad4565b949350505050565b600060208284031215613cd557613cd46137c3565b5b6000613ce384828501613816565b91505092915050565b613cf5816137ed565b82525050565b6000602082019050613d106000830184613cec565b92915050565b600060208284031215613d2c57613d2b6137c3565b5b600082013567ffffffffffffffff811115613d4a57613d496137c8565b5b613d56848285016139f1565b91505092915050565b6000819050919050565b6000613d84613d7f613d7a846137cd565b613d5f565b6137cd565b9050919050565b6000613d9682613d69565b9050919050565b6000613da882613d8b565b9050919050565b613db881613d9d565b82525050565b6000602082019050613dd36000830184613daf565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613e2057607f821691505b602082108103613e3357613e32613dd9565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613e6f602083613712565b9150613e7a82613e39565b602082019050919050565b60006020820190508181036000830152613e9e81613e62565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613f0e8261382b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613f4057613f3f613ed4565b5b600182019050919050565b7f43616e6e6f742072652d656e61626c652074726164696e670000000000000000600082015250565b6000613f81601883613712565b9150613f8c82613f4b565b602082019050919050565b60006020820190508181036000830152613fb081613f74565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000614013602883613712565b915061401e82613fb7565b604082019050919050565b6000602082019050818103600083015261404281614006565b9050919050565b60006140548261382b565b915061405f8361382b565b925082820390508181111561407757614076613ed4565b5b92915050565b60006140888261382b565b91506140938361382b565b92508282019050808211156140ab576140aa613ed4565b5b92915050565b7f4d757374206b656570206665657320617420313525206f72206c657373000000600082015250565b60006140e7601d83613712565b91506140f2826140b1565b602082019050919050565b60006020820190508181036000830152614116816140da565b9050919050565b7f53776170207468726573686f6c6420616d6f756e742073686f756c642062652060008201527f6c6f776572206f7220657571616c20746f203125206f6620746f6b656e730000602082015250565b6000614179603e83613712565b91506141848261411d565b604082019050919050565b600060208201905081810360008301526141a88161416c565b9050919050565b60008160011c9050919050565b6000808291508390505b6001851115614206578086048111156141e2576141e1613ed4565b5b60018516156141f15780820291505b80810290506141ff856141af565b94506141c6565b94509492505050565b60008261421f57600190506142db565b8161422d57600090506142db565b8160018114614243576002811461424d5761427c565b60019150506142db565b60ff84111561425f5761425e613ed4565b5b8360020a91508482111561427657614275613ed4565b5b506142db565b5060208310610133831016604e8410600b84101617156142b15782820a9050838111156142ac576142ab613ed4565b5b6142db565b6142be84848460016141bc565b925090508184048111156142d5576142d4613ed4565b5b81810290505b9392505050565b60006142ed8261382b565b91506142f883613ba4565b92506143257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461420f565b905092915050565b60006143388261382b565b91506143438361382b565b92508282026143518161382b565b9150828204841483151761436857614367613ed4565b5b5092915050565b7f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c60008201527f616e6365206f6620697473206f776e20746f6b656e7300000000000000000000602082015250565b60006143cb603683613712565b91506143d68261436f565b604082019050919050565b600060208201905081810360008301526143fa816143be565b9050919050565b60006040820190506144166000830185613cec565b6144236020830184613ad4565b9392505050565b60008151905061443981613a1f565b92915050565b600060208284031215614455576144546137c3565b5b60006144638482850161442a565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006144c8602583613712565b91506144d38261446c565b604082019050919050565b600060208201905081810360008301526144f7816144bb565b9050919050565b7f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f7765722060008201527f7468616e20302e31250000000000000000000000000000000000000000000000602082015250565b600061455a602983613712565b9150614565826144fe565b604082019050919050565b600060208201905081810360008301526145898161454d565b9050919050565b7f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f77657260008201527f207468616e20302e312500000000000000000000000000000000000000000000602082015250565b60006145ec602a83613712565b91506145f782614590565b604082019050919050565b6000602082019050818103600083015261461b816145df565b9050919050565b7f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760008201527f6572207468616e20302e35250000000000000000000000000000000000000000602082015250565b600061467e602c83613712565b915061468982614622565b604082019050919050565b600060208201905081810360008301526146ad81614671565b9050919050565b7f46656520416464726573732063616e6e6f74206265207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614710602283613712565b915061471b826146b4565b604082019050919050565b6000602082019050818103600083015261473f81614703565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006147a2602683613712565b91506147ad82614746565b604082019050919050565b600060208201905081810360008301526147d181614795565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614834602483613712565b915061483f826147d8565b604082019050919050565b6000602082019050818103600083015261486381614827565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006148c6602283613712565b91506148d18261486a565b604082019050919050565b600060208201905081810360008301526148f5816148b9565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000614958602983613712565b9150614963826148fc565b604082019050919050565b600060208201905081810360008301526149878161494b565b9050919050565b7f50726f6869626974656421000000000000000000000000000000000000000000600082015250565b60006149c4600b83613712565b91506149cf8261498e565b602082019050919050565b600060208201905081810360008301526149f3816149b7565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b6000614a30601383613712565b9150614a3b826149fa565b602082019050919050565b60006020820190508181036000830152614a5f81614a23565b9050919050565b7f596f752061726520657863656564696e67206d61784275794c696d6974000000600082015250565b6000614a9c601d83613712565b9150614aa782614a66565b602082019050919050565b60006020820190508181036000830152614acb81614a8f565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c65744c696d6974600082015250565b6000614b08602083613712565b9150614b1382614ad2565b602082019050919050565b60006020820190508181036000830152614b3781614afb565b9050919050565b7f596f752061726520657863656564696e67206d617853656c6c4c696d69740000600082015250565b6000614b74601e83613712565b9150614b7f82614b3e565b602082019050919050565b60006020820190508181036000830152614ba381614b67565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614be48261382b565b9150614bef8361382b565b925082614bff57614bfe614baa565b5b828204905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614c66602583613712565b9150614c7182614c0a565b604082019050919050565b60006020820190508181036000830152614c9581614c59565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614cf8602383613712565b9150614d0382614c9c565b604082019050919050565b60006020820190508181036000830152614d2781614ceb565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614d8a602683613712565b9150614d9582614d2e565b604082019050919050565b60006020820190508181036000830152614db981614d7d565b9050919050565b600081519050614dcf816137ff565b92915050565b600060208284031215614deb57614dea6137c3565b5b6000614df984828501614dc0565b91505092915050565b6000819050919050565b6000614e27614e22614e1d84614e02565b613d5f565b61382b565b9050919050565b614e3781614e0c565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614e72816137ed565b82525050565b6000614e848383614e69565b60208301905092915050565b6000602082019050919050565b6000614ea882614e3d565b614eb28185614e48565b9350614ebd83614e59565b8060005b83811015614eee578151614ed58882614e78565b9750614ee083614e90565b925050600181019050614ec1565b5085935050505092915050565b600060a082019050614f106000830188613ad4565b614f1d6020830187614e2e565b8181036040830152614f2f8186614e9d565b9050614f3e6060830185613cec565b614f4b6080830184613ad4565b9695505050505050565b600060c082019050614f6a6000830189613cec565b614f776020830188613ad4565b614f846040830187614e2e565b614f916060830186614e2e565b614f9e6080830185613cec565b614fab60a0830184613ad4565b979650505050505050565b600081519050614fc581613835565b92915050565b600080600060608486031215614fe457614fe36137c3565b5b6000614ff286828701614fb6565b935050602061500386828701614fb6565b925050604061501486828701614fb6565b9150509250925092565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000615054601d83613712565b915061505f8261501e565b602082019050919050565b6000602082019050818103600083015261508381615047565b9050919050565b600081905092915050565b50565b60006150a560008361508a565b91506150b082615095565b600082019050919050565b60006150c682615098565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b600061512c603a83613712565b9150615137826150d0565b604082019050919050565b6000602082019050818103600083015261515b8161511f565b905091905056fea2646970667358221220e0595bb7c40c8061cde917816eee6be67da00f431e8ab07b4b0208400932ee4764736f6c63430008110033

Deployed Bytecode

0x6080604052600436106102765760003560e01c8063715018a61161014f578063a8aa1b31116100c1578063eee1f5681161007a578063eee1f56814610963578063f10726bd146109a0578063f2fde38b146109c9578063f66895a3146109f2578063f887ea4014610a1f578063fbe6324e14610a4a5761027d565b8063a8aa1b311461082f578063a9059cbb1461085a578063c5d32bb214610897578063dd62ed3e146108d4578063e1b450ad14610911578063e8ba854f1461093a5761027d565b80638da5cb5b116101135780638da5cb5b1461071d5780638de890bd146107485780638ea5220f1461077357806395d89b411461079e5780639e252f00146107c9578063a457c2d7146107f25761027d565b8063715018a61461065a578063728f8eea1461067157806375f0a8741461069e57806385141a77146106c95780638cd4426d146106f45761027d565b806339509351116101e85780634e736f22116101ac5780634e736f22146105465780635331803c1461056f578063652e2f041461059c57806366a88d96146105c75780636aa5b37f146105f257806370a082311461061d5761027d565b8063395093511461046357806340b28c2f146104a057806342b6fa11146104c95780634a2b3b13146104f25780634ada218b1461051b5761027d565b806318160ddd1161023a57806318160ddd146103675780631c1702f31461039257806323b872dd146103a9578063244cffa5146103e6578063313ce5671461040f578063355496ca1461043a5761027d565b806306fdde0314610282578063095ea7b3146102ad5780630e375a5c146102ea5780631340538f146103135780631675d8021461033c5761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610a75565b6040516102a49190613797565b60405180910390f35b3480156102b957600080fd5b506102d460048036038101906102cf9190613861565b610b07565b6040516102e191906138bc565b60405180910390f35b3480156102f657600080fd5b50610311600480360381019061030c9190613a4b565b610b25565b005b34801561031f57600080fd5b5061033a60048036038101906103359190613aa7565b610c36565b005b34801561034857600080fd5b50610351610ccf565b60405161035e9190613ae3565b60405180910390f35b34801561037357600080fd5b5061037c610cd5565b6040516103899190613ae3565b60405180910390f35b34801561039e57600080fd5b506103a7610cdf565b005b3480156103b557600080fd5b506103d060048036038101906103cb9190613afe565b610dea565b6040516103dd91906138bc565b60405180910390f35b3480156103f257600080fd5b5061040d60048036038101906104089190613b51565b610eeb565b005b34801561041b57600080fd5b50610424611004565b6040516104319190613bc0565b60405180910390f35b34801561044657600080fd5b50610461600480360381019061045c9190613bdb565b61100d565b005b34801561046f57600080fd5b5061048a60048036038101906104859190613861565b6110e4565b60405161049791906138bc565b60405180910390f35b3480156104ac57600080fd5b506104c760048036038101906104c29190613c1b565b611190565b005b3480156104d557600080fd5b506104f060048036038101906104eb9190613c5b565b611292565b005b3480156104fe57600080fd5b5061051960048036038101906105149190613b51565b611388565b005b34801561052757600080fd5b506105306114a1565b60405161053d91906138bc565b60405180910390f35b34801561055257600080fd5b5061056d60048036038101906105689190613b51565b6114b4565b005b34801561057b57600080fd5b506105846115cd565b60405161059393929190613c88565b60405180910390f35b3480156105a857600080fd5b506105b16115e5565b6040516105be9190613ae3565b60405180910390f35b3480156105d357600080fd5b506105dc6115eb565b6040516105e99190613ae3565b60405180910390f35b3480156105fe57600080fd5b506106076115f1565b6040516106149190613ae3565b60405180910390f35b34801561062957600080fd5b50610644600480360381019061063f9190613cbf565b6115f7565b6040516106519190613ae3565b60405180910390f35b34801561066657600080fd5b5061066f61163f565b005b34801561067d57600080fd5b506106866116c7565b60405161069593929190613c88565b60405180910390f35b3480156106aa57600080fd5b506106b36116df565b6040516106c09190613cfb565b60405180910390f35b3480156106d557600080fd5b506106de611705565b6040516106eb9190613cfb565b60405180910390f35b34801561070057600080fd5b5061071b60048036038101906107169190613861565b61170b565b005b34801561072957600080fd5b5061073261187f565b60405161073f9190613cfb565b60405180910390f35b34801561075457600080fd5b5061075d6118a9565b60405161076a9190613ae3565b60405180910390f35b34801561077f57600080fd5b506107886118af565b6040516107959190613cfb565b60405180910390f35b3480156107aa57600080fd5b506107b36118d5565b6040516107c09190613797565b60405180910390f35b3480156107d557600080fd5b506107f060048036038101906107eb9190613c5b565b611967565b005b3480156107fe57600080fd5b5061081960048036038101906108149190613861565b611a34565b60405161082691906138bc565b60405180910390f35b34801561083b57600080fd5b50610844611b28565b6040516108519190613cfb565b60405180910390f35b34801561086657600080fd5b50610881600480360381019061087c9190613861565b611b4e565b60405161088e91906138bc565b60405180910390f35b3480156108a357600080fd5b506108be60048036038101906108b99190613cbf565b611b65565b6040516108cb91906138bc565b60405180910390f35b3480156108e057600080fd5b506108fb60048036038101906108f69190613c1b565b611b85565b6040516109089190613ae3565b60405180910390f35b34801561091d57600080fd5b5061093860048036038101906109339190613b51565b611c0c565b005b34801561094657600080fd5b50610961600480360381019061095c9190613c1b565b611dce565b005b34801561096f57600080fd5b5061098a60048036038101906109859190613cbf565b611fae565b60405161099791906138bc565b60405180910390f35b3480156109ac57600080fd5b506109c760048036038101906109c29190613d16565b611fce565b005b3480156109d557600080fd5b506109f060048036038101906109eb9190613cbf565b6120df565b005b3480156109fe57600080fd5b50610a076121d6565b604051610a1693929190613c88565b60405180910390f35b348015610a2b57600080fd5b50610a346121ee565b604051610a419190613dbe565b60405180910390f35b348015610a5657600080fd5b50610a5f612214565b604051610a6c91906138bc565b60405180910390f35b606060038054610a8490613e08565b80601f0160208091040260200160405190810160405280929190818152602001828054610ab090613e08565b8015610afd5780601f10610ad257610100808354040283529160200191610afd565b820191906000526020600020905b815481529060010190602001808311610ae057829003601f168201915b5050505050905090565b6000610b1b610b14612227565b848461222f565b6001905092915050565b610b2d612227565b73ffffffffffffffffffffffffffffffffffffffff16610b4b61187f565b73ffffffffffffffffffffffffffffffffffffffff1614610ba1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9890613e85565b60405180910390fd5b60005b8251811015610c31578160186000858481518110610bc557610bc4613ea5565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610c2990613f03565b915050610ba4565b505050565b610c3e612227565b73ffffffffffffffffffffffffffffffffffffffff16610c5c61187f565b73ffffffffffffffffffffffffffffffffffffffff1614610cb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca990613e85565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b60085481565b6000600254905090565b610ce7612227565b73ffffffffffffffffffffffffffffffffffffffff16610d0561187f565b73ffffffffffffffffffffffffffffffffffffffff1614610d5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5290613e85565b60405180910390fd5b600760169054906101000a900460ff1615610dab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da290613f97565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff02191690831515021790555043600c81905550565b6000610df78484846123f8565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610e42612227565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610ec2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb990614029565b60405180910390fd5b610edf85610ece612227565b8584610eda9190614049565b61222f565b60019150509392505050565b610ef3612227565b73ffffffffffffffffffffffffffffffffffffffff16610f1161187f565b73ffffffffffffffffffffffffffffffffffffffff1614610f67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5e90613e85565b60405180910390fd5b6040518060600160405280848152602001838152602001828152506015600082015181600001556020820151816001015560408201518160020155905050600f818385610fb4919061407d565b610fbe919061407d565b1115610fff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff6906140fd565b60405180910390fd5b505050565b60006012905090565b611015612227565b73ffffffffffffffffffffffffffffffffffffffff1661103361187f565b73ffffffffffffffffffffffffffffffffffffffff1614611089576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108090613e85565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006111866110f1612227565b8484600160006110ff612227565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611181919061407d565b61222f565b6001905092915050565b611198612227565b73ffffffffffffffffffffffffffffffffffffffff166111b661187f565b73ffffffffffffffffffffffffffffffffffffffff161461120c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120390613e85565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b61129a612227565b73ffffffffffffffffffffffffffffffffffffffff166112b861187f565b73ffffffffffffffffffffffffffffffffffffffff161461130e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130590613e85565b60405180910390fd5b6298968081111580156113215750600081115b611360576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113579061418f565b60405180910390fd5b611368611004565b600a61137491906142e2565b8161137f919061432d565b60088190555050565b611390612227565b73ffffffffffffffffffffffffffffffffffffffff166113ae61187f565b73ffffffffffffffffffffffffffffffffffffffff1614611404576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fb90613e85565b60405180910390fd5b604051806060016040528084815260200183815260200182815250600f600082015181600001556020820151816001015560408201518160020155905050600f818385611451919061407d565b61145b919061407d565b111561149c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611493906140fd565b60405180910390fd5b505050565b600760169054906101000a900460ff1681565b6114bc612227565b73ffffffffffffffffffffffffffffffffffffffff166114da61187f565b73ffffffffffffffffffffffffffffffffffffffff1614611530576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152790613e85565b60405180910390fd5b6040518060600160405280848152602001838152602001828152506012600082015181600001556020820151816001015560408201518160020155905050600f81838561157d919061407d565b611587919061407d565b11156115c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115bf906140fd565b60405180910390fd5b505050565b60158060000154908060010154908060020154905083565b600a5481565b600b5481565b60095481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611647612227565b73ffffffffffffffffffffffffffffffffffffffff1661166561187f565b73ffffffffffffffffffffffffffffffffffffffff16146116bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b290613e85565b60405180910390fd5b6116c56000612d7d565b565b600f8060000154908060010154908060020154905083565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61dead81565b611713612227565b73ffffffffffffffffffffffffffffffffffffffff1661173161187f565b73ffffffffffffffffffffffffffffffffffffffff1614611787576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177e90613e85565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ec906143e1565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61181961187f565b836040518363ffffffff1660e01b8152600401611837929190614401565b6020604051808303816000875af1158015611856573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061187a919061443f565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c5481565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600480546118e490613e08565b80601f016020809104026020016040519081016040528092919081815260200182805461191090613e08565b801561195d5780601f106119325761010080835404028352916020019161195d565b820191906000526020600020905b81548152906001019060200180831161194057829003601f168201915b5050505050905090565b61196f612227565b73ffffffffffffffffffffffffffffffffffffffff1661198d61187f565b73ffffffffffffffffffffffffffffffffffffffff16146119e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119da90613e85565b60405180910390fd5b6119eb61187f565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611a30573d6000803e3d6000fd5b5050565b60008060016000611a43612227565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611b00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af7906144de565b60405180910390fd5b611b1d611b0b612227565b858584611b189190614049565b61222f565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611b5b3384846123f8565b6001905092915050565b60186020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611c14612227565b73ffffffffffffffffffffffffffffffffffffffff16611c3261187f565b73ffffffffffffffffffffffffffffffffffffffff1614611c88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7f90613e85565b60405180910390fd5b620f4240831015611cce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc590614570565b60405180910390fd5b620f4240821015611d14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0b90614602565b60405180910390fd5b624c4b40811015611d5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5190614694565b60405180910390fd5b611d62611004565b600a611d6e91906142e2565b83611d79919061432d565b600981905550611d87611004565b600a611d9391906142e2565b82611d9e919061432d565b600a81905550611dac611004565b600a611db891906142e2565b81611dc3919061432d565b600b81905550505050565b611dd6612227565b73ffffffffffffffffffffffffffffffffffffffff16611df461187f565b73ffffffffffffffffffffffffffffffffffffffff1614611e4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4190613e85565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611eb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb090614726565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611f28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1f90614726565b60405180910390fd5b81600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60196020528060005260406000206000915054906101000a900460ff1681565b611fd6612227565b73ffffffffffffffffffffffffffffffffffffffff16611ff461187f565b73ffffffffffffffffffffffffffffffffffffffff161461204a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204190613e85565b60405180910390fd5b60005b81518110156120db5760006019600084848151811061206f5761206e613ea5565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806120d390613f03565b91505061204d565b5050565b6120e7612227565b73ffffffffffffffffffffffffffffffffffffffff1661210561187f565b73ffffffffffffffffffffffffffffffffffffffff161461215b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215290613e85565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036121ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c1906147b8565b60405180910390fd5b6121d381612d7d565b50565b60128060000154908060010154908060020154905083565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760159054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361229e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122959061484a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361230d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612304906148dc565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516123eb9190613ae3565b60405180910390a3505050565b6000811161243b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124329061496e565b60405180910390fd5b601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156124c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124bf906149da565b60405180910390fd5b6001600c546124d7919061407d565b431080156125325750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15612590576001601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156126345750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561268957600760169054906101000a900460ff16612688576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161267f90614a46565b60405180910390fd5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156127305750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156127495750600760149054906101000a900460ff16155b156127ec57600954811115612793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278a90614ab2565b60405180910390fd5b600b54816127a0846115f7565b6127aa919061407d565b11156127eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127e290614b1e565b60405180910390fd5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156128945750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156128ea5750601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156129035750600760149054906101000a900460ff16155b156129fc57600a5481111561294d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294490614b8a565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146129fb57600b54816129af846115f7565b6129b9919061407d565b11156129fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129f190614b1e565b60405180910390fd5b5b5b6000806000612a096136e6565b600760149054906101000a900460ff1680612a6d5750601860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80612ac15750601860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612acf5760009150612c8e565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603612b8157601260020154601260000154601260010154612b40919061407d565b612b4a919061407d565b9350839250601260405180606001604052908160008201548152602001600182015481526020016002820154815250509050612c8d565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1603612c3357600f60020154600f60000154600f60010154612bf2919061407d565b612bfc919061407d565b9350839250600f60405180606001604052908160008201548152602001600182015481526020016002820154815250509050612c8c565b601560020154601560000154601560010154612c4f919061407d565b612c59919061407d565b93508392506015604051806060016040529081600082015481526020016001820154815260200160028201548152505090505b5b5b60648386612c9c919061432d565b612ca69190614bd9565b9150600760159054906101000a900460ff168015612d125750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b15612d2257612d218482612e43565b5b612d3887878488612d339190614049565b61305d565b6000821115612d74576000841115612d7357600060648587612d5a919061432d565b612d649190614bd9565b9050612d7188308361305d565b505b5b50505050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff16613059576001600760146101000a81548160ff021916908315150217905550600082031561303d576000612e86306115f7565b9050600854811061303b5760016008541115612ea25760085490505b6000600284612eb1919061432d565b9050600081846020015184612ec6919061432d565b612ed09190614bd9565b905060008184612ee09190614049565b90506000479050612ef0826132cf565b60008147612efe9190614049565b90506000876020015186612f129190614049565b82612f1d9190614bd9565b90506000886020015182612f31919061432d565b90506000811115612f4757612f468682613512565b5b60008960000151600284612f5b919061432d565b612f65919061432d565b905060008a60400151600285612f7b919061432d565b612f85919061432d565b90506000821115612fdc57612fdb82600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166135f290919063ffffffff16565b5b60008111156130315761303081600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166135f290919063ffffffff16565b5b5050505050505050505b505b6000600760146101000a81548160ff0219169083151502179055505b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036130cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130c390614c7c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361313b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161313290614d0e565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156131c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131b890614da0565b60405180910390fd5b81816131cd9190614049565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461325d919061407d565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516132c19190613ae3565b60405180910390a350505050565b6000600267ffffffffffffffff8111156132ec576132eb6138dc565b5b60405190808252806020026020018201604052801561331a5781602001602082028036833780820191505090505b509050308160008151811061333257613331613ea5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133fd9190614dd5565b8160018151811061341157613410613ea5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061347830600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461222f565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016134dc959493929190614efb565b600060405180830381600087803b1580156134f657600080fd5b505af115801561350a573d6000803e3d6000fd5b505050505050565b61353f30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461222f565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b81526004016135a896959493929190614f55565b60606040518083038185885af11580156135c6573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906135eb9190614fcb565b5050505050565b80471015613635576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161362c9061506a565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405161365b906150bb565b60006040518083038185875af1925050503d8060008114613698576040519150601f19603f3d011682016040523d82523d6000602084013e61369d565b606091505b50509050806136e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136d890615142565b60405180910390fd5b505050565b60405180606001604052806000815260200160008152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b83811015613741578082015181840152602081019050613726565b60008484015250505050565b6000601f19601f8301169050919050565b600061376982613707565b6137738185613712565b9350613783818560208601613723565b61378c8161374d565b840191505092915050565b600060208201905081810360008301526137b1818461375e565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006137f8826137cd565b9050919050565b613808816137ed565b811461381357600080fd5b50565b600081359050613825816137ff565b92915050565b6000819050919050565b61383e8161382b565b811461384957600080fd5b50565b60008135905061385b81613835565b92915050565b60008060408385031215613878576138776137c3565b5b600061388685828601613816565b92505060206138978582860161384c565b9150509250929050565b60008115159050919050565b6138b6816138a1565b82525050565b60006020820190506138d160008301846138ad565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6139148261374d565b810181811067ffffffffffffffff82111715613933576139326138dc565b5b80604052505050565b60006139466137b9565b9050613952828261390b565b919050565b600067ffffffffffffffff821115613972576139716138dc565b5b602082029050602081019050919050565b600080fd5b600061399b61399684613957565b61393c565b905080838252602082019050602084028301858111156139be576139bd613983565b5b835b818110156139e757806139d38882613816565b8452602084019350506020810190506139c0565b5050509392505050565b600082601f830112613a0657613a056138d7565b5b8135613a16848260208601613988565b91505092915050565b613a28816138a1565b8114613a3357600080fd5b50565b600081359050613a4581613a1f565b92915050565b60008060408385031215613a6257613a616137c3565b5b600083013567ffffffffffffffff811115613a8057613a7f6137c8565b5b613a8c858286016139f1565b9250506020613a9d85828601613a36565b9150509250929050565b600060208284031215613abd57613abc6137c3565b5b6000613acb84828501613a36565b91505092915050565b613add8161382b565b82525050565b6000602082019050613af86000830184613ad4565b92915050565b600080600060608486031215613b1757613b166137c3565b5b6000613b2586828701613816565b9350506020613b3686828701613816565b9250506040613b478682870161384c565b9150509250925092565b600080600060608486031215613b6a57613b696137c3565b5b6000613b788682870161384c565b9350506020613b898682870161384c565b9250506040613b9a8682870161384c565b9150509250925092565b600060ff82169050919050565b613bba81613ba4565b82525050565b6000602082019050613bd56000830184613bb1565b92915050565b60008060408385031215613bf257613bf16137c3565b5b6000613c0085828601613816565b9250506020613c1185828601613a36565b9150509250929050565b60008060408385031215613c3257613c316137c3565b5b6000613c4085828601613816565b9250506020613c5185828601613816565b9150509250929050565b600060208284031215613c7157613c706137c3565b5b6000613c7f8482850161384c565b91505092915050565b6000606082019050613c9d6000830186613ad4565b613caa6020830185613ad4565b613cb76040830184613ad4565b949350505050565b600060208284031215613cd557613cd46137c3565b5b6000613ce384828501613816565b91505092915050565b613cf5816137ed565b82525050565b6000602082019050613d106000830184613cec565b92915050565b600060208284031215613d2c57613d2b6137c3565b5b600082013567ffffffffffffffff811115613d4a57613d496137c8565b5b613d56848285016139f1565b91505092915050565b6000819050919050565b6000613d84613d7f613d7a846137cd565b613d5f565b6137cd565b9050919050565b6000613d9682613d69565b9050919050565b6000613da882613d8b565b9050919050565b613db881613d9d565b82525050565b6000602082019050613dd36000830184613daf565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613e2057607f821691505b602082108103613e3357613e32613dd9565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613e6f602083613712565b9150613e7a82613e39565b602082019050919050565b60006020820190508181036000830152613e9e81613e62565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613f0e8261382b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613f4057613f3f613ed4565b5b600182019050919050565b7f43616e6e6f742072652d656e61626c652074726164696e670000000000000000600082015250565b6000613f81601883613712565b9150613f8c82613f4b565b602082019050919050565b60006020820190508181036000830152613fb081613f74565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000614013602883613712565b915061401e82613fb7565b604082019050919050565b6000602082019050818103600083015261404281614006565b9050919050565b60006140548261382b565b915061405f8361382b565b925082820390508181111561407757614076613ed4565b5b92915050565b60006140888261382b565b91506140938361382b565b92508282019050808211156140ab576140aa613ed4565b5b92915050565b7f4d757374206b656570206665657320617420313525206f72206c657373000000600082015250565b60006140e7601d83613712565b91506140f2826140b1565b602082019050919050565b60006020820190508181036000830152614116816140da565b9050919050565b7f53776170207468726573686f6c6420616d6f756e742073686f756c642062652060008201527f6c6f776572206f7220657571616c20746f203125206f6620746f6b656e730000602082015250565b6000614179603e83613712565b91506141848261411d565b604082019050919050565b600060208201905081810360008301526141a88161416c565b9050919050565b60008160011c9050919050565b6000808291508390505b6001851115614206578086048111156141e2576141e1613ed4565b5b60018516156141f15780820291505b80810290506141ff856141af565b94506141c6565b94509492505050565b60008261421f57600190506142db565b8161422d57600090506142db565b8160018114614243576002811461424d5761427c565b60019150506142db565b60ff84111561425f5761425e613ed4565b5b8360020a91508482111561427657614275613ed4565b5b506142db565b5060208310610133831016604e8410600b84101617156142b15782820a9050838111156142ac576142ab613ed4565b5b6142db565b6142be84848460016141bc565b925090508184048111156142d5576142d4613ed4565b5b81810290505b9392505050565b60006142ed8261382b565b91506142f883613ba4565b92506143257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461420f565b905092915050565b60006143388261382b565b91506143438361382b565b92508282026143518161382b565b9150828204841483151761436857614367613ed4565b5b5092915050565b7f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c60008201527f616e6365206f6620697473206f776e20746f6b656e7300000000000000000000602082015250565b60006143cb603683613712565b91506143d68261436f565b604082019050919050565b600060208201905081810360008301526143fa816143be565b9050919050565b60006040820190506144166000830185613cec565b6144236020830184613ad4565b9392505050565b60008151905061443981613a1f565b92915050565b600060208284031215614455576144546137c3565b5b60006144638482850161442a565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006144c8602583613712565b91506144d38261446c565b604082019050919050565b600060208201905081810360008301526144f7816144bb565b9050919050565b7f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f7765722060008201527f7468616e20302e31250000000000000000000000000000000000000000000000602082015250565b600061455a602983613712565b9150614565826144fe565b604082019050919050565b600060208201905081810360008301526145898161454d565b9050919050565b7f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f77657260008201527f207468616e20302e312500000000000000000000000000000000000000000000602082015250565b60006145ec602a83613712565b91506145f782614590565b604082019050919050565b6000602082019050818103600083015261461b816145df565b9050919050565b7f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760008201527f6572207468616e20302e35250000000000000000000000000000000000000000602082015250565b600061467e602c83613712565b915061468982614622565b604082019050919050565b600060208201905081810360008301526146ad81614671565b9050919050565b7f46656520416464726573732063616e6e6f74206265207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614710602283613712565b915061471b826146b4565b604082019050919050565b6000602082019050818103600083015261473f81614703565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006147a2602683613712565b91506147ad82614746565b604082019050919050565b600060208201905081810360008301526147d181614795565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614834602483613712565b915061483f826147d8565b604082019050919050565b6000602082019050818103600083015261486381614827565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006148c6602283613712565b91506148d18261486a565b604082019050919050565b600060208201905081810360008301526148f5816148b9565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000614958602983613712565b9150614963826148fc565b604082019050919050565b600060208201905081810360008301526149878161494b565b9050919050565b7f50726f6869626974656421000000000000000000000000000000000000000000600082015250565b60006149c4600b83613712565b91506149cf8261498e565b602082019050919050565b600060208201905081810360008301526149f3816149b7565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b6000614a30601383613712565b9150614a3b826149fa565b602082019050919050565b60006020820190508181036000830152614a5f81614a23565b9050919050565b7f596f752061726520657863656564696e67206d61784275794c696d6974000000600082015250565b6000614a9c601d83613712565b9150614aa782614a66565b602082019050919050565b60006020820190508181036000830152614acb81614a8f565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c65744c696d6974600082015250565b6000614b08602083613712565b9150614b1382614ad2565b602082019050919050565b60006020820190508181036000830152614b3781614afb565b9050919050565b7f596f752061726520657863656564696e67206d617853656c6c4c696d69740000600082015250565b6000614b74601e83613712565b9150614b7f82614b3e565b602082019050919050565b60006020820190508181036000830152614ba381614b67565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614be48261382b565b9150614bef8361382b565b925082614bff57614bfe614baa565b5b828204905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614c66602583613712565b9150614c7182614c0a565b604082019050919050565b60006020820190508181036000830152614c9581614c59565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614cf8602383613712565b9150614d0382614c9c565b604082019050919050565b60006020820190508181036000830152614d2781614ceb565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614d8a602683613712565b9150614d9582614d2e565b604082019050919050565b60006020820190508181036000830152614db981614d7d565b9050919050565b600081519050614dcf816137ff565b92915050565b600060208284031215614deb57614dea6137c3565b5b6000614df984828501614dc0565b91505092915050565b6000819050919050565b6000614e27614e22614e1d84614e02565b613d5f565b61382b565b9050919050565b614e3781614e0c565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614e72816137ed565b82525050565b6000614e848383614e69565b60208301905092915050565b6000602082019050919050565b6000614ea882614e3d565b614eb28185614e48565b9350614ebd83614e59565b8060005b83811015614eee578151614ed58882614e78565b9750614ee083614e90565b925050600181019050614ec1565b5085935050505092915050565b600060a082019050614f106000830188613ad4565b614f1d6020830187614e2e565b8181036040830152614f2f8186614e9d565b9050614f3e6060830185613cec565b614f4b6080830184613ad4565b9695505050505050565b600060c082019050614f6a6000830189613cec565b614f776020830188613ad4565b614f846040830187614e2e565b614f916060830186614e2e565b614f9e6080830185613cec565b614fab60a0830184613ad4565b979650505050505050565b600081519050614fc581613835565b92915050565b600080600060608486031215614fe457614fe36137c3565b5b6000614ff286828701614fb6565b935050602061500386828701614fb6565b925050604061501486828701614fb6565b9150509250925092565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000615054601d83613712565b915061505f8261501e565b602082019050919050565b6000602082019050818103600083015261508381615047565b9050919050565b600081905092915050565b50565b60006150a560008361508a565b91506150b082615095565b600082019050919050565b60006150c682615098565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b600061512c603a83613712565b9150615137826150d0565b604082019050919050565b6000602082019050818103600083015261515b8161511f565b905091905056fea2646970667358221220e0595bb7c40c8061cde917816eee6be67da00f431e8ab07b4b0208400932ee4764736f6c63430008110033

Deployed Bytecode Sourcemap

11944:12699:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2575:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13938:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23278:202;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20990:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12208:67;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3695:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22569:223;;;;;;;;;;;;;:::i;:::-;;14107:448;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22085:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3537:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23150:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14563:248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22406:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21150:305;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21463:301;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12165:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21772:305;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12960:43;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;12345:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12409:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12282:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3866:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10607:94;;;;;;;;;;;;;:::i;:::-;;12872:35;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;12516:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12671:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24347:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10384:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12477:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12598:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2794:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24227:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14819:410;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12054:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15237:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13012:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4485:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23701:518;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22800:342;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13060:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23488:205;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10709:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12914:39;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;12026:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12120:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2575:100;2629:13;2662:5;2655:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2575:100;:::o;13938:161::-;14013:4;14030:39;14039:12;:10;:12::i;:::-;14053:7;14062:6;14030:8;:39::i;:::-;14087:4;14080:11;;13938:161;;;;:::o;23278:202::-;10530:12;:10;:12::i;:::-;10519:23;;:7;:5;:7::i;:::-;:23;;;10511:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23375:9:::1;23370:103;23394:8;:15;23390:1;:19;23370:103;;;23456:5;23431:9;:22;23441:8;23450:1;23441:11;;;;;;;;:::i;:::-;;;;;;;;23431:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;23411:3;;;;;:::i;:::-;;;;23370:103;;;;23278:202:::0;;:::o;20990:152::-;10530:12;:10;:12::i;:::-;10519:23;;:7;:5;:7::i;:::-;:23;;;10511:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21129:5:::1;21108:18;;:26;;;;;;;;;;;;;;;;;;20990:152:::0;:::o;12208:67::-;;;;:::o;3695:108::-;3756:7;3783:12;;3776:19;;3695:108;:::o;22569:223::-;10530:12;:10;:12::i;:::-;10519:23;;:7;:5;:7::i;:::-;:23;;;10511:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22632:14:::1;;;;;;;;;;;22631:15;22623:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;22703:4;22686:14;;:21;;;;;;;;;;;;;;;;;;22739:4;22718:18;;:25;;;;;;;;;;;;;;;;;;22772:12;22754:15;:30;;;;22569:223::o:0;14107:448::-;14239:4;14256:36;14266:6;14274:9;14285:6;14256:9;:36::i;:::-;14305:24;14332:11;:19;14344:6;14332:19;;;;;;;;;;;;;;;:33;14352:12;:10;:12::i;:::-;14332:33;;;;;;;;;;;;;;;;14305:60;;14404:6;14384:16;:26;;14376:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;14466:57;14475:6;14483:12;:10;:12::i;:::-;14516:6;14497:16;:25;;;;:::i;:::-;14466:8;:57::i;:::-;14543:4;14536:11;;;14107:448;;;;;:::o;22085:313::-;10530:12;:10;:12::i;:::-;10519:23;;:7;:5;:7::i;:::-;:23;;;10511:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22251:42:::1;;;;;;;;22257:10;22251:42;;;;22269:10;22251:42;;;;22282:10;22251:42;;::::0;22235:13:::1;:58;;;;;;;;;;;;;;;;;;;;;;;;;;;22354:2;22339:10;22326;22313;:23;;;;:::i;:::-;:36;;;;:::i;:::-;22312:44;;22304:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;22085:313:::0;;;:::o;3537:93::-;3595:5;3620:2;3613:9;;3537:93;:::o;23150:120::-;10530:12;:10;:12::i;:::-;10519:23;;:7;:5;:7::i;:::-;:23;;;10511:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23257:5:::1;23235:9;:19;23245:8;23235:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;23150:120:::0;;:::o;14563:248::-;14679:4;14701:80;14710:12;:10;:12::i;:::-;14724:7;14770:10;14733:11;:25;14745:12;:10;:12::i;:::-;14733:25;;;;;;;;;;;;;;;:34;14759:7;14733:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;14701:8;:80::i;:::-;14799:4;14792:11;;14563:248;;;;:::o;22406:155::-;10530:12;:10;:12::i;:::-;10519:23;;:7;:5;:7::i;:::-;:23;;;10511:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22518:9:::1;22501:6;;:27;;;;;;;;;;;;;;;;;;22546:7;22539:4;;:14;;;;;;;;;;;;;;;;;;22406:155:::0;;:::o;21150:305::-;10530:12;:10;:12::i;:::-;10519:23;;:7;:5;:7::i;:::-;:23;;;10511:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21288:10:::1;21274;:24;;:42;;;;;21315:1;21302:10;:14;21274:42;21266:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;21437:10;:8;:10::i;:::-;21433:2;:14;;;;:::i;:::-;21420:10;:27;;;;:::i;:::-;21394:23;:53;;;;21150:305:::0;:::o;21463:301::-;10530:12;:10;:12::i;:::-;10519:23;;:7;:5;:7::i;:::-;:23;;;10511:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21616:42:::1;;;;;;;;21622:10;21616:42;;;;21634:10;21616:42;;;;21647:10;21616:42;;::::0;21608:5:::1;:50;;;;;;;;;;;;;;;;;;;;;;;;;;;21720:2;21705:10;21691;21678;:23;;;;:::i;:::-;:37;;;;:::i;:::-;21677:45;;21669:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;21463:301:::0;;;:::o;12165:34::-;;;;;;;;;;;;;:::o;21772:305::-;10530:12;:10;:12::i;:::-;10519:23;;:7;:5;:7::i;:::-;:23;;;10511:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21930:42:::1;;;;;;;;21936:10;21930:42;;;;21948:10;21930:42;;;;21961:10;21930:42;;::::0;21918:9:::1;:54;;;;;;;;;;;;;;;;;;;;;;;;;;;22033:2;22018:10;22005;21992;:23;;;;:::i;:::-;:36;;;;:::i;:::-;21991:44;;21983:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;21772:305:::0;;;:::o;12960:43::-;;;;;;;;;;;;;;;;;;;:::o;12345:57::-;;;;:::o;12409:59::-;;;;:::o;12282:56::-;;;;:::o;3866:127::-;3940:7;3967:9;:18;3977:7;3967:18;;;;;;;;;;;;;;;;3960:25;;3866:127;;;:::o;10607:94::-;10530:12;:10;:12::i;:::-;10519:23;;:7;:5;:7::i;:::-;:23;;;10511:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10672:21:::1;10690:1;10672:9;:21::i;:::-;10607:94::o:0;12872:35::-;;;;;;;;;;;;;;;;;;;:::o;12516:75::-;;;;;;;;;;;;;:::o;12671:79::-;12708:42;12671:79;:::o;24347:238::-;10530:12;:10;:12::i;:::-;10519:23;;:7;:5;:7::i;:::-;:23;;;10511:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24460:4:::1;24440:25;;:8;:25;;::::0;24432:92:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;24542:8;24535:25;;;24561:7;:5;:7::i;:::-;24570:6;24535:42;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24347:238:::0;;:::o;10384:87::-;10430:7;10457:6;;;;;;;;;;;10450:13;;10384:87;:::o;12477:30::-;;;;:::o;12598:69::-;;;;;;;;;;;;;:::o;2794:104::-;2850:13;2883:7;2876:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2794:104;:::o;24227:112::-;10530:12;:10;:12::i;:::-;10519:23;;:7;:5;:7::i;:::-;:23;;;10511:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24303:7:::1;:5;:7::i;:::-;24295:25;;:36;24321:9;24295:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;24227:112:::0;:::o;14819:410::-;14940:4;14962:24;14989:11;:25;15001:12;:10;:12::i;:::-;14989:25;;;;;;;;;;;;;;;:34;15015:7;14989:34;;;;;;;;;;;;;;;;14962:61;;15062:15;15042:16;:35;;15034:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;15130:67;15139:12;:10;:12::i;:::-;15153:7;15181:15;15162:16;:34;;;;:::i;:::-;15130:8;:67::i;:::-;15217:4;15210:11;;;14819:410;;;;:::o;12054:19::-;;;;;;;;;;;;;:::o;15237:165::-;15315:4;15332:40;15342:10;15354:9;15365:6;15332:9;:40::i;:::-;15390:4;15383:11;;15237:165;;;;:::o;13012:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;4485:201::-;4619:7;4651:11;:18;4663:5;4651:18;;;;;;;;;;;;;;;:27;4670:7;4651:27;;;;;;;;;;;;;;;;4644:34;;4485:201;;;;:::o;23701:518::-;10530:12;:10;:12::i;:::-;10519:23;;:7;:5;:7::i;:::-;:23;;;10511:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23827:9:::1;23817:6;:19;;23809:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;23912:9;23901:7;:20;;23893:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;24000:9;23987;:22;;23979:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;24096:10;:8;:10::i;:::-;24092:2;:14;;;;:::i;:::-;24083:6;:23;;;;:::i;:::-;24069:11;:37;;;;24146:10;:8;:10::i;:::-;24142:2;:14;;;;:::i;:::-;24132:7;:24;;;;:::i;:::-;24117:12;:39;;;;24200:10;:8;:10::i;:::-;24196:2;:14;;;;:::i;:::-;24184:9;:26;;;;:::i;:::-;24167:14;:43;;;;23701:518:::0;;;:::o;22800:342::-;10530:12;:10;:12::i;:::-;10519:23;;:7;:5;:7::i;:::-;:23;;;10511:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22935:1:::1;22907:30;;:16;:30;;::::0;22899:76:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;23016:1;22994:24;;:10;:24;;::::0;22986:70:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;23085:16;23067:15;;:34;;;;;;;;;;;;;;;;;;23124:10;23112:9;;:22;;;;;;;;;;;;;;;;;;22800:342:::0;;:::o;13060:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;23488:205::-;10530:12;:10;:12::i;:::-;10519:23;;:7;:5;:7::i;:::-;:23;;;10511:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23585:9:::1;23580:106;23604:8;:15;23600:1;:19;23580:106;;;23669:5;23641:12;:25;23654:8;23663:1;23654:11;;;;;;;;:::i;:::-;;;;;;;;23641:25;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;23621:3;;;;;:::i;:::-;;;;23580:106;;;;23488:205:::0;:::o;10709:192::-;10530:12;:10;:12::i;:::-;10519:23;;:7;:5;:7::i;:::-;:23;;;10511:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10818:1:::1;10798:22;;:8;:22;;::::0;10790:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;10874:19;10884:8;10874:9;:19::i;:::-;10709:192:::0;:::o;12914:39::-;;;;;;;;;;;;;;;;;;;:::o;12026:21::-;;;;;;;;;;;;;:::o;12120:38::-;;;;;;;;;;;;;:::o;297:98::-;350:7;377:10;370:17;;297:98;:::o;9417:380::-;9570:1;9553:19;;:5;:19;;;9545:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9651:1;9632:21;;:7;:21;;;9624:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9735:6;9705:11;:18;9717:5;9705:18;;;;;;;;;;;;;;;:27;9724:7;9705:27;;;;;;;;;;;;;;;:36;;;;9773:7;9757:32;;9766:5;9757:32;;;9782:6;9757:32;;;;;;:::i;:::-;;;;;;;;9417:380;;;:::o;15410:2889::-;15560:1;15551:6;:10;15543:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15627:12;:20;15640:6;15627:20;;;;;;;;;;;;;;;;;;;;;;;;;15626:21;15618:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;15712:1;15694:15;;:19;;;;:::i;:::-;15679:12;:34;:52;;;;;15727:4;;;;;;;;;;;15717:14;;:6;:14;;;15679:52;15676:114;;;15774:4;15748:12;:23;15761:9;15748:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;15676:114;15807:9;:17;15817:6;15807:17;;;;;;;;;;;;;;;;;;;;;;;;;15806:18;:43;;;;;15829:9;:20;15839:9;15829:20;;;;;;;;;;;;;;;;;;;;;;;;;15828:21;15806:43;15802:122;;;15874:14;;;;;;;;;;;15866:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;15802:122;15950:4;;;;;;;;;;;15940:14;;:6;:14;;;:39;;;;;15959:9;:20;15969:9;15959:20;;;;;;;;;;;;;;;;;;;;;;;;;15958:21;15940:39;:54;;;;;15984:10;;;;;;;;;;;15983:11;15940:54;15936:306;;;16029:11;;16019:6;:21;;16011:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;16148:14;;16138:6;16115:20;16125:9;16115;:20::i;:::-;:29;;;;:::i;:::-;:47;;16089:141;;;;;;;;;;;;:::i;:::-;;;;;;;;;15936:306;16282:4;;;;;;;;;;;16272:14;;:6;:14;;;;:39;;;;;16291:9;:20;16301:9;16291:20;;;;;;;;;;;;;;;;;;;;;;;;;16290:21;16272:39;:61;;;;;16316:9;:17;16326:6;16316:17;;;;;;;;;;;;;;;;;;;;;;;;;16315:18;16272:61;:76;;;;;16338:10;;;;;;;;;;;16337:11;16272:76;16254:423;;;16393:12;;16383:6;:22;;16375:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;16472:4;;;;;;;;;;;16459:17;;:9;:17;;;16455:211;;16560:14;;16550:6;16527:20;16537:9;16527;:20::i;:::-;:29;;;;:::i;:::-;:47;;16497:153;;;;;;;;;;;;:::i;:::-;;;;;;;;;16455:211;16254:423;16689:15;16715:14;16740:11;16762:25;;:::i;:::-;16875:10;;;;;;;;;;;:31;;;;16889:9;:17;16899:6;16889:17;;;;;;;;;;;;;;;;;;;;;;;;;16875:31;:55;;;;16910:9;:20;16920:9;16910:20;;;;;;;;;;;;;;;;;;;;;;;;;16875:55;16871:848;;;16951:1;16945:7;;16871:848;;;17016:4;;;;;;;;;;;17003:17;;:9;:17;;;16999:720;;17142:9;:19;;;17103:9;:19;;;17064:9;:19;;;:58;;;;:::i;:::-;:97;;;;:::i;:::-;17037:124;;17185:7;17176:16;;17222:9;17207:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16999:720;;;17263:4;;;;;;;;;;;17253:14;;:6;:14;;;17249:470;;17381:5;:15;;;17346:5;:15;;;17311:5;:15;;;:50;;;;:::i;:::-;:85;;;;:::i;:::-;17284:112;;17421:7;17412:16;;17458:5;17443:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17249:470;;;17609:13;:23;;;17566:13;:23;;;17523:13;:23;;;:66;;;;:::i;:::-;:109;;;;:::i;:::-;17496:136;;17657:7;17648:16;;17694:13;17679:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17249:470;16999:720;16871:848;17757:3;17747:6;17738;:15;;;;:::i;:::-;17737:23;;;;:::i;:::-;17731:29;;17874:18;;;;;;;;;;;:36;;;;;17906:4;;;;;;;;;;;17896:14;;:6;:14;;;;17874:36;17870:72;;;17912:30;17920:7;17929:12;17912:7;:30::i;:::-;17870:72;17984:48;18000:6;18008:9;18028:3;18019:6;:12;;;;:::i;:::-;17984:15;:48::i;:::-;18053:1;18047:3;:7;18043:249;;;18129:1;18119:7;:11;18115:164;;;18151:17;18192:3;18181:7;18172:6;:16;;;;:::i;:::-;18171:24;;;;:::i;:::-;18151:44;;18214:49;18230:6;18246:4;18253:9;18214:15;:49::i;:::-;18132:147;18115:164;18043:249;15532:2767;;;;15410:2889;;;:::o;10909:173::-;10965:16;10984:6;;;;;;;;;;;10965:25;;11010:8;11001:6;;:17;;;;;;;;;;;;;;;;;;11065:8;11034:40;;11055:8;11034:40;;;;;;;;;;;;10954:128;10909:173;:::o;18307:1625::-;13152:10;;;;;;;;;;;13147:110;;13192:4;13179:10;;:17;;;;;;;;;;;;;;;;;;18412:1:::1;18401:7;:12:::0;18398:49;18429:7:::1;18398:49;18459:23;18485:24;18503:4;18485:9;:24::i;:::-;18459:50;;18543:23;;18524:15;:42;18520:1405;;18613:1;18587:23;;:27;18583:109;;;18653:23;;18635:41;;18583:109;18763:19;18795:1;18785:7;:11;;;;:::i;:::-;18763:33;;18811:32;18905:11;18865:9;:19;;;18847:15;:37;;;;:::i;:::-;18846:70;;;;:::i;:::-;18811:105;;18931:14;18966:24;18948:15;:42;;;;:::i;:::-;18931:59;;19007:22;19032:21;19007:46;;19070:24;19087:6;19070:16;:24::i;:::-;19111:20;19158:14;19134:21;:38;;;;:::i;:::-;19111:61;;19187:19;19239:9;:19;;;19225:11;:33;;;;:::i;:::-;19209:12;:50;;;;:::i;:::-;19187:72;;19274:29;19320:9;:19;;;19306:11;:33;;;;:::i;:::-;19274:65;;19384:1;19360:21;:25;19356:172;;;19451:61;19464:24;19490:21;19451:12;:61::i;:::-;19356:172;19544:20;19585:9;:19;;;19581:1;19567:11;:15;;;;:::i;:::-;:37;;;;:::i;:::-;19544:60;;19619:20;19660:9;:19;;;19656:1;19642:11;:15;;;;:::i;:::-;:37;;;;:::i;:::-;19619:60;;19713:1;19698:12;:16;19694:105;;;19735:48;19770:12;19743:15;;;;;;;;;;;19735:34;;;;:48;;;;:::i;:::-;19694:105;19832:1;19817:12;:16;19813:99;;;19854:42;19883:12;19862:9;;;;;;;;;;;19854:28;;;;:42;;;;:::i;:::-;19813:99;18568:1357;;;;;;;;;18520:1405;18385:1547;13211:1;13240:5:::0;13227:10;;:18;;;;;;;;;;;;;;;;;;13147:110;18307:1625;;:::o;7998:578::-;8156:1;8138:20;;:6;:20;;;8130:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;8240:1;8219:23;;:9;:23;;;8211:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;8295:21;8319:9;:17;8329:6;8319:17;;;;;;;;;;;;;;;;8295:41;;8372:6;8355:13;:23;;8347:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8468:6;8452:13;:22;;;;:::i;:::-;8432:9;:17;8442:6;8432:17;;;;;;;;;;;;;;;:42;;;;8509:6;8485:9;:20;8495:9;8485:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;8550:9;8533:35;;8542:6;8533:35;;;8561:6;8533:35;;;;;;:::i;:::-;;;;;;;;8119:457;7998:578;;;:::o;19940:534::-;20066:21;20104:1;20090:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20066:40;;20135:4;20117;20122:1;20117:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;20161:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20151:4;20156:1;20151:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;20187:53;20204:4;20219:6;;;;;;;;;;;20228:11;20187:8;:53::i;:::-;20279:6;;;;;;;;;;;:57;;;20351:11;20377:1;20393:4;20420;20440:15;20279:187;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19995:479;19940:534;:::o;20482:500::-;20630:53;20647:4;20662:6;;;;;;;;;;;20671:11;20630:8;:53::i;:::-;20726:6;;;;;;;;;;;:22;;;20757:9;20791:4;20811:11;20837:1;20880;12708:42;20948:15;20726:248;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20482:500;;:::o;9827:319::-;9942:6;9917:21;:31;;9909:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;9996:12;10014:9;:14;;10037:6;10014:35;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9995:54;;;10068:7;10060:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;9898:248;9827:319;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:117::-;3555:1;3552;3545:12;3569:180;3617:77;3614:1;3607:88;3714:4;3711:1;3704:15;3738:4;3735:1;3728:15;3755:281;3838:27;3860:4;3838:27;:::i;:::-;3830:6;3826:40;3968:6;3956:10;3953:22;3932:18;3920:10;3917:34;3914:62;3911:88;;;3979:18;;:::i;:::-;3911:88;4019:10;4015:2;4008:22;3798:238;3755:281;;:::o;4042:129::-;4076:6;4103:20;;:::i;:::-;4093:30;;4132:33;4160:4;4152:6;4132:33;:::i;:::-;4042:129;;;:::o;4177:311::-;4254:4;4344:18;4336:6;4333:30;4330:56;;;4366:18;;:::i;:::-;4330:56;4416:4;4408:6;4404:17;4396:25;;4476:4;4470;4466:15;4458:23;;4177:311;;;:::o;4494:117::-;4603:1;4600;4593:12;4634:710;4730:5;4755:81;4771:64;4828:6;4771:64;:::i;:::-;4755:81;:::i;:::-;4746:90;;4856:5;4885:6;4878:5;4871:21;4919:4;4912:5;4908:16;4901:23;;4972:4;4964:6;4960:17;4952:6;4948:30;5001:3;4993:6;4990:15;4987:122;;;5020:79;;:::i;:::-;4987:122;5135:6;5118:220;5152:6;5147:3;5144:15;5118:220;;;5227:3;5256:37;5289:3;5277:10;5256:37;:::i;:::-;5251:3;5244:50;5323:4;5318:3;5314:14;5307:21;;5194:144;5178:4;5173:3;5169:14;5162:21;;5118:220;;;5122:21;4736:608;;4634:710;;;;;:::o;5367:370::-;5438:5;5487:3;5480:4;5472:6;5468:17;5464:27;5454:122;;5495:79;;:::i;:::-;5454:122;5612:6;5599:20;5637:94;5727:3;5719:6;5712:4;5704:6;5700:17;5637:94;:::i;:::-;5628:103;;5444:293;5367:370;;;;:::o;5743:116::-;5813:21;5828:5;5813:21;:::i;:::-;5806:5;5803:32;5793:60;;5849:1;5846;5839:12;5793:60;5743:116;:::o;5865:133::-;5908:5;5946:6;5933:20;5924:29;;5962:30;5986:5;5962:30;:::i;:::-;5865:133;;;;:::o;6004:678::-;6094:6;6102;6151:2;6139:9;6130:7;6126:23;6122:32;6119:119;;;6157:79;;:::i;:::-;6119:119;6305:1;6294:9;6290:17;6277:31;6335:18;6327:6;6324:30;6321:117;;;6357:79;;:::i;:::-;6321:117;6462:78;6532:7;6523:6;6512:9;6508:22;6462:78;:::i;:::-;6452:88;;6248:302;6589:2;6615:50;6657:7;6648:6;6637:9;6633:22;6615:50;:::i;:::-;6605:60;;6560:115;6004:678;;;;;:::o;6688:323::-;6744:6;6793:2;6781:9;6772:7;6768:23;6764:32;6761:119;;;6799:79;;:::i;:::-;6761:119;6919:1;6944:50;6986:7;6977:6;6966:9;6962:22;6944:50;:::i;:::-;6934:60;;6890:114;6688:323;;;;:::o;7017:118::-;7104:24;7122:5;7104:24;:::i;:::-;7099:3;7092:37;7017:118;;:::o;7141:222::-;7234:4;7272:2;7261:9;7257:18;7249:26;;7285:71;7353:1;7342:9;7338:17;7329:6;7285:71;:::i;:::-;7141:222;;;;:::o;7369:619::-;7446:6;7454;7462;7511:2;7499:9;7490:7;7486:23;7482:32;7479:119;;;7517:79;;:::i;:::-;7479:119;7637:1;7662:53;7707:7;7698:6;7687:9;7683:22;7662:53;:::i;:::-;7652:63;;7608:117;7764:2;7790:53;7835:7;7826:6;7815:9;7811:22;7790:53;:::i;:::-;7780:63;;7735:118;7892:2;7918:53;7963:7;7954:6;7943:9;7939:22;7918:53;:::i;:::-;7908:63;;7863:118;7369:619;;;;;:::o;7994:::-;8071:6;8079;8087;8136:2;8124:9;8115:7;8111:23;8107:32;8104:119;;;8142:79;;:::i;:::-;8104:119;8262:1;8287:53;8332:7;8323:6;8312:9;8308:22;8287:53;:::i;:::-;8277:63;;8233:117;8389:2;8415:53;8460:7;8451:6;8440:9;8436:22;8415:53;:::i;:::-;8405:63;;8360:118;8517:2;8543:53;8588:7;8579:6;8568:9;8564:22;8543:53;:::i;:::-;8533:63;;8488:118;7994:619;;;;;:::o;8619:86::-;8654:7;8694:4;8687:5;8683:16;8672:27;;8619:86;;;:::o;8711:112::-;8794:22;8810:5;8794:22;:::i;:::-;8789:3;8782:35;8711:112;;:::o;8829:214::-;8918:4;8956:2;8945:9;8941:18;8933:26;;8969:67;9033:1;9022:9;9018:17;9009:6;8969:67;:::i;:::-;8829:214;;;;:::o;9049:468::-;9114:6;9122;9171:2;9159:9;9150:7;9146:23;9142:32;9139:119;;;9177:79;;:::i;:::-;9139:119;9297:1;9322:53;9367:7;9358:6;9347:9;9343:22;9322:53;:::i;:::-;9312:63;;9268:117;9424:2;9450:50;9492:7;9483:6;9472:9;9468:22;9450:50;:::i;:::-;9440:60;;9395:115;9049:468;;;;;:::o;9523:474::-;9591:6;9599;9648:2;9636:9;9627:7;9623:23;9619:32;9616:119;;;9654:79;;:::i;:::-;9616:119;9774:1;9799:53;9844:7;9835:6;9824:9;9820:22;9799:53;:::i;:::-;9789:63;;9745:117;9901:2;9927:53;9972:7;9963:6;9952:9;9948:22;9927:53;:::i;:::-;9917:63;;9872:118;9523:474;;;;;:::o;10003:329::-;10062:6;10111:2;10099:9;10090:7;10086:23;10082:32;10079:119;;;10117:79;;:::i;:::-;10079:119;10237:1;10262:53;10307:7;10298:6;10287:9;10283:22;10262:53;:::i;:::-;10252:63;;10208:117;10003:329;;;;:::o;10338:442::-;10487:4;10525:2;10514:9;10510:18;10502:26;;10538:71;10606:1;10595:9;10591:17;10582:6;10538:71;:::i;:::-;10619:72;10687:2;10676:9;10672:18;10663:6;10619:72;:::i;:::-;10701;10769:2;10758:9;10754:18;10745:6;10701:72;:::i;:::-;10338:442;;;;;;:::o;10786:329::-;10845:6;10894:2;10882:9;10873:7;10869:23;10865:32;10862:119;;;10900:79;;:::i;:::-;10862:119;11020:1;11045:53;11090:7;11081:6;11070:9;11066:22;11045:53;:::i;:::-;11035:63;;10991:117;10786:329;;;;:::o;11121:118::-;11208:24;11226:5;11208:24;:::i;:::-;11203:3;11196:37;11121:118;;:::o;11245:222::-;11338:4;11376:2;11365:9;11361:18;11353:26;;11389:71;11457:1;11446:9;11442:17;11433:6;11389:71;:::i;:::-;11245:222;;;;:::o;11473:539::-;11557:6;11606:2;11594:9;11585:7;11581:23;11577:32;11574:119;;;11612:79;;:::i;:::-;11574:119;11760:1;11749:9;11745:17;11732:31;11790:18;11782:6;11779:30;11776:117;;;11812:79;;:::i;:::-;11776:117;11917:78;11987:7;11978:6;11967:9;11963:22;11917:78;:::i;:::-;11907:88;;11703:302;11473:539;;;;:::o;12018:60::-;12046:3;12067:5;12060:12;;12018:60;;;:::o;12084:142::-;12134:9;12167:53;12185:34;12194:24;12212:5;12194:24;:::i;:::-;12185:34;:::i;:::-;12167:53;:::i;:::-;12154:66;;12084:142;;;:::o;12232:126::-;12282:9;12315:37;12346:5;12315:37;:::i;:::-;12302:50;;12232:126;;;:::o;12364:141::-;12429:9;12462:37;12493:5;12462:37;:::i;:::-;12449:50;;12364:141;;;:::o;12511:161::-;12613:52;12659:5;12613:52;:::i;:::-;12608:3;12601:65;12511:161;;:::o;12678:252::-;12786:4;12824:2;12813:9;12809:18;12801:26;;12837:86;12920:1;12909:9;12905:17;12896:6;12837:86;:::i;:::-;12678:252;;;;:::o;12936:180::-;12984:77;12981:1;12974:88;13081:4;13078:1;13071:15;13105:4;13102:1;13095:15;13122:320;13166:6;13203:1;13197:4;13193:12;13183:22;;13250:1;13244:4;13240:12;13271:18;13261:81;;13327:4;13319:6;13315:17;13305:27;;13261:81;13389:2;13381:6;13378:14;13358:18;13355:38;13352:84;;13408:18;;:::i;:::-;13352:84;13173:269;13122:320;;;:::o;13448:182::-;13588:34;13584:1;13576:6;13572:14;13565:58;13448:182;:::o;13636:366::-;13778:3;13799:67;13863:2;13858:3;13799:67;:::i;:::-;13792:74;;13875:93;13964:3;13875:93;:::i;:::-;13993:2;13988:3;13984:12;13977:19;;13636:366;;;:::o;14008:419::-;14174:4;14212:2;14201:9;14197:18;14189:26;;14261:9;14255:4;14251:20;14247:1;14236:9;14232:17;14225:47;14289:131;14415:4;14289:131;:::i;:::-;14281:139;;14008:419;;;:::o;14433:180::-;14481:77;14478:1;14471:88;14578:4;14575:1;14568:15;14602:4;14599:1;14592:15;14619:180;14667:77;14664:1;14657:88;14764:4;14761:1;14754:15;14788:4;14785:1;14778:15;14805:233;14844:3;14867:24;14885:5;14867:24;:::i;:::-;14858:33;;14913:66;14906:5;14903:77;14900:103;;14983:18;;:::i;:::-;14900:103;15030:1;15023:5;15019:13;15012:20;;14805:233;;;:::o;15044:174::-;15184:26;15180:1;15172:6;15168:14;15161:50;15044:174;:::o;15224:366::-;15366:3;15387:67;15451:2;15446:3;15387:67;:::i;:::-;15380:74;;15463:93;15552:3;15463:93;:::i;:::-;15581:2;15576:3;15572:12;15565:19;;15224:366;;;:::o;15596:419::-;15762:4;15800:2;15789:9;15785:18;15777:26;;15849:9;15843:4;15839:20;15835:1;15824:9;15820:17;15813:47;15877:131;16003:4;15877:131;:::i;:::-;15869:139;;15596:419;;;:::o;16021:227::-;16161:34;16157:1;16149:6;16145:14;16138:58;16230:10;16225:2;16217:6;16213:15;16206:35;16021:227;:::o;16254:366::-;16396:3;16417:67;16481:2;16476:3;16417:67;:::i;:::-;16410:74;;16493:93;16582:3;16493:93;:::i;:::-;16611:2;16606:3;16602:12;16595:19;;16254:366;;;:::o;16626:419::-;16792:4;16830:2;16819:9;16815:18;16807:26;;16879:9;16873:4;16869:20;16865:1;16854:9;16850:17;16843:47;16907:131;17033:4;16907:131;:::i;:::-;16899:139;;16626:419;;;:::o;17051:194::-;17091:4;17111:20;17129:1;17111:20;:::i;:::-;17106:25;;17145:20;17163:1;17145:20;:::i;:::-;17140:25;;17189:1;17186;17182:9;17174:17;;17213:1;17207:4;17204:11;17201:37;;;17218:18;;:::i;:::-;17201:37;17051:194;;;;:::o;17251:191::-;17291:3;17310:20;17328:1;17310:20;:::i;:::-;17305:25;;17344:20;17362:1;17344:20;:::i;:::-;17339:25;;17387:1;17384;17380:9;17373:16;;17408:3;17405:1;17402:10;17399:36;;;17415:18;;:::i;:::-;17399:36;17251:191;;;;:::o;17448:179::-;17588:31;17584:1;17576:6;17572:14;17565:55;17448:179;:::o;17633:366::-;17775:3;17796:67;17860:2;17855:3;17796:67;:::i;:::-;17789:74;;17872:93;17961:3;17872:93;:::i;:::-;17990:2;17985:3;17981:12;17974:19;;17633:366;;;:::o;18005:419::-;18171:4;18209:2;18198:9;18194:18;18186:26;;18258:9;18252:4;18248:20;18244:1;18233:9;18229:17;18222:47;18286:131;18412:4;18286:131;:::i;:::-;18278:139;;18005:419;;;:::o;18430:249::-;18570:34;18566:1;18558:6;18554:14;18547:58;18639:32;18634:2;18626:6;18622:15;18615:57;18430:249;:::o;18685:366::-;18827:3;18848:67;18912:2;18907:3;18848:67;:::i;:::-;18841:74;;18924:93;19013:3;18924:93;:::i;:::-;19042:2;19037:3;19033:12;19026:19;;18685:366;;;:::o;19057:419::-;19223:4;19261:2;19250:9;19246:18;19238:26;;19310:9;19304:4;19300:20;19296:1;19285:9;19281:17;19274:47;19338:131;19464:4;19338:131;:::i;:::-;19330:139;;19057:419;;;:::o;19482:102::-;19524:8;19571:5;19568:1;19564:13;19543:34;;19482:102;;;:::o;19590:848::-;19651:5;19658:4;19682:6;19673:15;;19706:5;19697:14;;19720:712;19741:1;19731:8;19728:15;19720:712;;;19836:4;19831:3;19827:14;19821:4;19818:24;19815:50;;;19845:18;;:::i;:::-;19815:50;19895:1;19885:8;19881:16;19878:451;;;20310:4;20303:5;20299:16;20290:25;;19878:451;20360:4;20354;20350:15;20342:23;;20390:32;20413:8;20390:32;:::i;:::-;20378:44;;19720:712;;;19590:848;;;;;;;:::o;20444:1073::-;20498:5;20689:8;20679:40;;20710:1;20701:10;;20712:5;;20679:40;20738:4;20728:36;;20755:1;20746:10;;20757:5;;20728:36;20824:4;20872:1;20867:27;;;;20908:1;20903:191;;;;20817:277;;20867:27;20885:1;20876:10;;20887:5;;;20903:191;20948:3;20938:8;20935:17;20932:43;;;20955:18;;:::i;:::-;20932:43;21004:8;21001:1;20997:16;20988:25;;21039:3;21032:5;21029:14;21026:40;;;21046:18;;:::i;:::-;21026:40;21079:5;;;20817:277;;21203:2;21193:8;21190:16;21184:3;21178:4;21175:13;21171:36;21153:2;21143:8;21140:16;21135:2;21129:4;21126:12;21122:35;21106:111;21103:246;;;21259:8;21253:4;21249:19;21240:28;;21294:3;21287:5;21284:14;21281:40;;;21301:18;;:::i;:::-;21281:40;21334:5;;21103:246;21374:42;21412:3;21402:8;21396:4;21393:1;21374:42;:::i;:::-;21359:57;;;;21448:4;21443:3;21439:14;21432:5;21429:25;21426:51;;;21457:18;;:::i;:::-;21426:51;21506:4;21499:5;21495:16;21486:25;;20444:1073;;;;;;:::o;21523:281::-;21581:5;21605:23;21623:4;21605:23;:::i;:::-;21597:31;;21649:25;21665:8;21649:25;:::i;:::-;21637:37;;21693:104;21730:66;21720:8;21714:4;21693:104;:::i;:::-;21684:113;;21523:281;;;;:::o;21810:410::-;21850:7;21873:20;21891:1;21873:20;:::i;:::-;21868:25;;21907:20;21925:1;21907:20;:::i;:::-;21902:25;;21962:1;21959;21955:9;21984:30;22002:11;21984:30;:::i;:::-;21973:41;;22163:1;22154:7;22150:15;22147:1;22144:22;22124:1;22117:9;22097:83;22074:139;;22193:18;;:::i;:::-;22074:139;21858:362;21810:410;;;;:::o;22226:241::-;22366:34;22362:1;22354:6;22350:14;22343:58;22435:24;22430:2;22422:6;22418:15;22411:49;22226:241;:::o;22473:366::-;22615:3;22636:67;22700:2;22695:3;22636:67;:::i;:::-;22629:74;;22712:93;22801:3;22712:93;:::i;:::-;22830:2;22825:3;22821:12;22814:19;;22473:366;;;:::o;22845:419::-;23011:4;23049:2;23038:9;23034:18;23026:26;;23098:9;23092:4;23088:20;23084:1;23073:9;23069:17;23062:47;23126:131;23252:4;23126:131;:::i;:::-;23118:139;;22845:419;;;:::o;23270:332::-;23391:4;23429:2;23418:9;23414:18;23406:26;;23442:71;23510:1;23499:9;23495:17;23486:6;23442:71;:::i;:::-;23523:72;23591:2;23580:9;23576:18;23567:6;23523:72;:::i;:::-;23270:332;;;;;:::o;23608:137::-;23662:5;23693:6;23687:13;23678:22;;23709:30;23733:5;23709:30;:::i;:::-;23608:137;;;;:::o;23751:345::-;23818:6;23867:2;23855:9;23846:7;23842:23;23838:32;23835:119;;;23873:79;;:::i;:::-;23835:119;23993:1;24018:61;24071:7;24062:6;24051:9;24047:22;24018:61;:::i;:::-;24008:71;;23964:125;23751:345;;;;:::o;24102:224::-;24242:34;24238:1;24230:6;24226:14;24219:58;24311:7;24306:2;24298:6;24294:15;24287:32;24102:224;:::o;24332:366::-;24474:3;24495:67;24559:2;24554:3;24495:67;:::i;:::-;24488:74;;24571:93;24660:3;24571:93;:::i;:::-;24689:2;24684:3;24680:12;24673:19;;24332:366;;;:::o;24704:419::-;24870:4;24908:2;24897:9;24893:18;24885:26;;24957:9;24951:4;24947:20;24943:1;24932:9;24928:17;24921:47;24985:131;25111:4;24985:131;:::i;:::-;24977:139;;24704:419;;;:::o;25129:228::-;25269:34;25265:1;25257:6;25253:14;25246:58;25338:11;25333:2;25325:6;25321:15;25314:36;25129:228;:::o;25363:366::-;25505:3;25526:67;25590:2;25585:3;25526:67;:::i;:::-;25519:74;;25602:93;25691:3;25602:93;:::i;:::-;25720:2;25715:3;25711:12;25704:19;;25363:366;;;:::o;25735:419::-;25901:4;25939:2;25928:9;25924:18;25916:26;;25988:9;25982:4;25978:20;25974:1;25963:9;25959:17;25952:47;26016:131;26142:4;26016:131;:::i;:::-;26008:139;;25735:419;;;:::o;26160:229::-;26300:34;26296:1;26288:6;26284:14;26277:58;26369:12;26364:2;26356:6;26352:15;26345:37;26160:229;:::o;26395:366::-;26537:3;26558:67;26622:2;26617:3;26558:67;:::i;:::-;26551:74;;26634:93;26723:3;26634:93;:::i;:::-;26752:2;26747:3;26743:12;26736:19;;26395:366;;;:::o;26767:419::-;26933:4;26971:2;26960:9;26956:18;26948:26;;27020:9;27014:4;27010:20;27006:1;26995:9;26991:17;26984:47;27048:131;27174:4;27048:131;:::i;:::-;27040:139;;26767:419;;;:::o;27192:231::-;27332:34;27328:1;27320:6;27316:14;27309:58;27401:14;27396:2;27388:6;27384:15;27377:39;27192:231;:::o;27429:366::-;27571:3;27592:67;27656:2;27651:3;27592:67;:::i;:::-;27585:74;;27668:93;27757:3;27668:93;:::i;:::-;27786:2;27781:3;27777:12;27770:19;;27429:366;;;:::o;27801:419::-;27967:4;28005:2;27994:9;27990:18;27982:26;;28054:9;28048:4;28044:20;28040:1;28029:9;28025:17;28018:47;28082:131;28208:4;28082:131;:::i;:::-;28074:139;;27801:419;;;:::o;28226:221::-;28366:34;28362:1;28354:6;28350:14;28343:58;28435:4;28430:2;28422:6;28418:15;28411:29;28226:221;:::o;28453:366::-;28595:3;28616:67;28680:2;28675:3;28616:67;:::i;:::-;28609:74;;28692:93;28781:3;28692:93;:::i;:::-;28810:2;28805:3;28801:12;28794:19;;28453:366;;;:::o;28825:419::-;28991:4;29029:2;29018:9;29014:18;29006:26;;29078:9;29072:4;29068:20;29064:1;29053:9;29049:17;29042:47;29106:131;29232:4;29106:131;:::i;:::-;29098:139;;28825:419;;;:::o;29250:225::-;29390:34;29386:1;29378:6;29374:14;29367:58;29459:8;29454:2;29446:6;29442:15;29435:33;29250:225;:::o;29481:366::-;29623:3;29644:67;29708:2;29703:3;29644:67;:::i;:::-;29637:74;;29720:93;29809:3;29720:93;:::i;:::-;29838:2;29833:3;29829:12;29822:19;;29481:366;;;:::o;29853:419::-;30019:4;30057:2;30046:9;30042:18;30034:26;;30106:9;30100:4;30096:20;30092:1;30081:9;30077:17;30070:47;30134:131;30260:4;30134:131;:::i;:::-;30126:139;;29853:419;;;:::o;30278:223::-;30418:34;30414:1;30406:6;30402:14;30395:58;30487:6;30482:2;30474:6;30470:15;30463:31;30278:223;:::o;30507:366::-;30649:3;30670:67;30734:2;30729:3;30670:67;:::i;:::-;30663:74;;30746:93;30835:3;30746:93;:::i;:::-;30864:2;30859:3;30855:12;30848:19;;30507:366;;;:::o;30879:419::-;31045:4;31083:2;31072:9;31068:18;31060:26;;31132:9;31126:4;31122:20;31118:1;31107:9;31103:17;31096:47;31160:131;31286:4;31160:131;:::i;:::-;31152:139;;30879:419;;;:::o;31304:221::-;31444:34;31440:1;31432:6;31428:14;31421:58;31513:4;31508:2;31500:6;31496:15;31489:29;31304:221;:::o;31531:366::-;31673:3;31694:67;31758:2;31753:3;31694:67;:::i;:::-;31687:74;;31770:93;31859:3;31770:93;:::i;:::-;31888:2;31883:3;31879:12;31872:19;;31531:366;;;:::o;31903:419::-;32069:4;32107:2;32096:9;32092:18;32084:26;;32156:9;32150:4;32146:20;32142:1;32131:9;32127:17;32120:47;32184:131;32310:4;32184:131;:::i;:::-;32176:139;;31903:419;;;:::o;32328:228::-;32468:34;32464:1;32456:6;32452:14;32445:58;32537:11;32532:2;32524:6;32520:15;32513:36;32328:228;:::o;32562:366::-;32704:3;32725:67;32789:2;32784:3;32725:67;:::i;:::-;32718:74;;32801:93;32890:3;32801:93;:::i;:::-;32919:2;32914:3;32910:12;32903:19;;32562:366;;;:::o;32934:419::-;33100:4;33138:2;33127:9;33123:18;33115:26;;33187:9;33181:4;33177:20;33173:1;33162:9;33158:17;33151:47;33215:131;33341:4;33215:131;:::i;:::-;33207:139;;32934:419;;;:::o;33359:161::-;33499:13;33495:1;33487:6;33483:14;33476:37;33359:161;:::o;33526:366::-;33668:3;33689:67;33753:2;33748:3;33689:67;:::i;:::-;33682:74;;33765:93;33854:3;33765:93;:::i;:::-;33883:2;33878:3;33874:12;33867:19;;33526:366;;;:::o;33898:419::-;34064:4;34102:2;34091:9;34087:18;34079:26;;34151:9;34145:4;34141:20;34137:1;34126:9;34122:17;34115:47;34179:131;34305:4;34179:131;:::i;:::-;34171:139;;33898:419;;;:::o;34323:169::-;34463:21;34459:1;34451:6;34447:14;34440:45;34323:169;:::o;34498:366::-;34640:3;34661:67;34725:2;34720:3;34661:67;:::i;:::-;34654:74;;34737:93;34826:3;34737:93;:::i;:::-;34855:2;34850:3;34846:12;34839:19;;34498:366;;;:::o;34870:419::-;35036:4;35074:2;35063:9;35059:18;35051:26;;35123:9;35117:4;35113:20;35109:1;35098:9;35094:17;35087:47;35151:131;35277:4;35151:131;:::i;:::-;35143:139;;34870:419;;;:::o;35295:179::-;35435:31;35431:1;35423:6;35419:14;35412:55;35295:179;:::o;35480:366::-;35622:3;35643:67;35707:2;35702:3;35643:67;:::i;:::-;35636:74;;35719:93;35808:3;35719:93;:::i;:::-;35837:2;35832:3;35828:12;35821:19;;35480:366;;;:::o;35852:419::-;36018:4;36056:2;36045:9;36041:18;36033:26;;36105:9;36099:4;36095:20;36091:1;36080:9;36076:17;36069:47;36133:131;36259:4;36133:131;:::i;:::-;36125:139;;35852:419;;;:::o;36277:182::-;36417:34;36413:1;36405:6;36401:14;36394:58;36277:182;:::o;36465:366::-;36607:3;36628:67;36692:2;36687:3;36628:67;:::i;:::-;36621:74;;36704:93;36793:3;36704:93;:::i;:::-;36822:2;36817:3;36813:12;36806:19;;36465:366;;;:::o;36837:419::-;37003:4;37041:2;37030:9;37026:18;37018:26;;37090:9;37084:4;37080:20;37076:1;37065:9;37061:17;37054:47;37118:131;37244:4;37118:131;:::i;:::-;37110:139;;36837:419;;;:::o;37262:180::-;37402:32;37398:1;37390:6;37386:14;37379:56;37262:180;:::o;37448:366::-;37590:3;37611:67;37675:2;37670:3;37611:67;:::i;:::-;37604:74;;37687:93;37776:3;37687:93;:::i;:::-;37805:2;37800:3;37796:12;37789:19;;37448:366;;;:::o;37820:419::-;37986:4;38024:2;38013:9;38009:18;38001:26;;38073:9;38067:4;38063:20;38059:1;38048:9;38044:17;38037:47;38101:131;38227:4;38101:131;:::i;:::-;38093:139;;37820:419;;;:::o;38245:180::-;38293:77;38290:1;38283:88;38390:4;38387:1;38380:15;38414:4;38411:1;38404:15;38431:185;38471:1;38488:20;38506:1;38488:20;:::i;:::-;38483:25;;38522:20;38540:1;38522:20;:::i;:::-;38517:25;;38561:1;38551:35;;38566:18;;:::i;:::-;38551:35;38608:1;38605;38601:9;38596:14;;38431:185;;;;:::o;38622:224::-;38762:34;38758:1;38750:6;38746:14;38739:58;38831:7;38826:2;38818:6;38814:15;38807:32;38622:224;:::o;38852:366::-;38994:3;39015:67;39079:2;39074:3;39015:67;:::i;:::-;39008:74;;39091:93;39180:3;39091:93;:::i;:::-;39209:2;39204:3;39200:12;39193:19;;38852:366;;;:::o;39224:419::-;39390:4;39428:2;39417:9;39413:18;39405:26;;39477:9;39471:4;39467:20;39463:1;39452:9;39448:17;39441:47;39505:131;39631:4;39505:131;:::i;:::-;39497:139;;39224:419;;;:::o;39649:222::-;39789:34;39785:1;39777:6;39773:14;39766:58;39858:5;39853:2;39845:6;39841:15;39834:30;39649:222;:::o;39877:366::-;40019:3;40040:67;40104:2;40099:3;40040:67;:::i;:::-;40033:74;;40116:93;40205:3;40116:93;:::i;:::-;40234:2;40229:3;40225:12;40218:19;;39877:366;;;:::o;40249:419::-;40415:4;40453:2;40442:9;40438:18;40430:26;;40502:9;40496:4;40492:20;40488:1;40477:9;40473:17;40466:47;40530:131;40656:4;40530:131;:::i;:::-;40522:139;;40249:419;;;:::o;40674:225::-;40814:34;40810:1;40802:6;40798:14;40791:58;40883:8;40878:2;40870:6;40866:15;40859:33;40674:225;:::o;40905:366::-;41047:3;41068:67;41132:2;41127:3;41068:67;:::i;:::-;41061:74;;41144:93;41233:3;41144:93;:::i;:::-;41262:2;41257:3;41253:12;41246:19;;40905:366;;;:::o;41277:419::-;41443:4;41481:2;41470:9;41466:18;41458:26;;41530:9;41524:4;41520:20;41516:1;41505:9;41501:17;41494:47;41558:131;41684:4;41558:131;:::i;:::-;41550:139;;41277:419;;;:::o;41702:143::-;41759:5;41790:6;41784:13;41775:22;;41806:33;41833:5;41806:33;:::i;:::-;41702:143;;;;:::o;41851:351::-;41921:6;41970:2;41958:9;41949:7;41945:23;41941:32;41938:119;;;41976:79;;:::i;:::-;41938:119;42096:1;42121:64;42177:7;42168:6;42157:9;42153:22;42121:64;:::i;:::-;42111:74;;42067:128;41851:351;;;;:::o;42208:85::-;42253:7;42282:5;42271:16;;42208:85;;;:::o;42299:158::-;42357:9;42390:61;42408:42;42417:32;42443:5;42417:32;:::i;:::-;42408:42;:::i;:::-;42390:61;:::i;:::-;42377:74;;42299:158;;;:::o;42463:147::-;42558:45;42597:5;42558:45;:::i;:::-;42553:3;42546:58;42463:147;;:::o;42616:114::-;42683:6;42717:5;42711:12;42701:22;;42616:114;;;:::o;42736:184::-;42835:11;42869:6;42864:3;42857:19;42909:4;42904:3;42900:14;42885:29;;42736:184;;;;:::o;42926:132::-;42993:4;43016:3;43008:11;;43046:4;43041:3;43037:14;43029:22;;42926:132;;;:::o;43064:108::-;43141:24;43159:5;43141:24;:::i;:::-;43136:3;43129:37;43064:108;;:::o;43178:179::-;43247:10;43268:46;43310:3;43302:6;43268:46;:::i;:::-;43346:4;43341:3;43337:14;43323:28;;43178:179;;;;:::o;43363:113::-;43433:4;43465;43460:3;43456:14;43448:22;;43363:113;;;:::o;43512:732::-;43631:3;43660:54;43708:5;43660:54;:::i;:::-;43730:86;43809:6;43804:3;43730:86;:::i;:::-;43723:93;;43840:56;43890:5;43840:56;:::i;:::-;43919:7;43950:1;43935:284;43960:6;43957:1;43954:13;43935:284;;;44036:6;44030:13;44063:63;44122:3;44107:13;44063:63;:::i;:::-;44056:70;;44149:60;44202:6;44149:60;:::i;:::-;44139:70;;43995:224;43982:1;43979;43975:9;43970:14;;43935:284;;;43939:14;44235:3;44228:10;;43636:608;;;43512:732;;;;:::o;44250:831::-;44513:4;44551:3;44540:9;44536:19;44528:27;;44565:71;44633:1;44622:9;44618:17;44609:6;44565:71;:::i;:::-;44646:80;44722:2;44711:9;44707:18;44698:6;44646:80;:::i;:::-;44773:9;44767:4;44763:20;44758:2;44747:9;44743:18;44736:48;44801:108;44904:4;44895:6;44801:108;:::i;:::-;44793:116;;44919:72;44987:2;44976:9;44972:18;44963:6;44919:72;:::i;:::-;45001:73;45069:3;45058:9;45054:19;45045:6;45001:73;:::i;:::-;44250:831;;;;;;;;:::o;45087:807::-;45336:4;45374:3;45363:9;45359:19;45351:27;;45388:71;45456:1;45445:9;45441:17;45432:6;45388:71;:::i;:::-;45469:72;45537:2;45526:9;45522:18;45513:6;45469:72;:::i;:::-;45551:80;45627:2;45616:9;45612:18;45603:6;45551:80;:::i;:::-;45641;45717:2;45706:9;45702:18;45693:6;45641:80;:::i;:::-;45731:73;45799:3;45788:9;45784:19;45775:6;45731:73;:::i;:::-;45814;45882:3;45871:9;45867:19;45858:6;45814:73;:::i;:::-;45087:807;;;;;;;;;:::o;45900:143::-;45957:5;45988:6;45982:13;45973:22;;46004:33;46031:5;46004:33;:::i;:::-;45900:143;;;;:::o;46049:663::-;46137:6;46145;46153;46202:2;46190:9;46181:7;46177:23;46173:32;46170:119;;;46208:79;;:::i;:::-;46170:119;46328:1;46353:64;46409:7;46400:6;46389:9;46385:22;46353:64;:::i;:::-;46343:74;;46299:128;46466:2;46492:64;46548:7;46539:6;46528:9;46524:22;46492:64;:::i;:::-;46482:74;;46437:129;46605:2;46631:64;46687:7;46678:6;46667:9;46663:22;46631:64;:::i;:::-;46621:74;;46576:129;46049:663;;;;;:::o;46718:179::-;46858:31;46854:1;46846:6;46842:14;46835:55;46718:179;:::o;46903:366::-;47045:3;47066:67;47130:2;47125:3;47066:67;:::i;:::-;47059:74;;47142:93;47231:3;47142:93;:::i;:::-;47260:2;47255:3;47251:12;47244:19;;46903:366;;;:::o;47275:419::-;47441:4;47479:2;47468:9;47464:18;47456:26;;47528:9;47522:4;47518:20;47514:1;47503:9;47499:17;47492:47;47556:131;47682:4;47556:131;:::i;:::-;47548:139;;47275:419;;;:::o;47700:147::-;47801:11;47838:3;47823:18;;47700:147;;;;:::o;47853:114::-;;:::o;47973:398::-;48132:3;48153:83;48234:1;48229:3;48153:83;:::i;:::-;48146:90;;48245:93;48334:3;48245:93;:::i;:::-;48363:1;48358:3;48354:11;48347:18;;47973:398;;;:::o;48377:379::-;48561:3;48583:147;48726:3;48583:147;:::i;:::-;48576:154;;48747:3;48740:10;;48377:379;;;:::o;48762:245::-;48902:34;48898:1;48890:6;48886:14;48879:58;48971:28;48966:2;48958:6;48954:15;48947:53;48762:245;:::o;49013:366::-;49155:3;49176:67;49240:2;49235:3;49176:67;:::i;:::-;49169:74;;49252:93;49341:3;49252:93;:::i;:::-;49370:2;49365:3;49361:12;49354:19;;49013:366;;;:::o;49385:419::-;49551:4;49589:2;49578:9;49574:18;49566:26;;49638:9;49632:4;49628:20;49624:1;49613:9;49609:17;49602:47;49666:131;49792:4;49666:131;:::i;:::-;49658:139;;49385:419;;;:::o

Swarm Source

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