ETH Price: $2,526.27 (-0.25%)

Token

MXRC (MXRC)
 

Overview

Max Total Supply

1,000,000,000 MXRC

Holders

22

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
3,478,427.456899267935211105 MXRC

Value
$0.00
0xBcC482C1108790E4B2B682F2430d1cafFcB8418D
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:
MXRC

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

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

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this;
        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 {
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

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

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

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(
        address account
    ) public view virtual override returns (uint256) {
        return _balances[account];
    }

    function transfer(
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(
        address owner,
        address spender
    ) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

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

    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"
        );
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

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

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

        return true;
    }

    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"
        );
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    function _createInitialSupply(
        address account,
        uint256 amount
    ) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

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

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

contract Ownable is Context {
    address private _owner;

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

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

    function renounceOwnership() external virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

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

    function WETH() external pure returns (address);

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

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

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

contract MXRC is ERC20, Ownable {
    uint256 public maxBuyAmount;
    uint256 public maxSellAmount;
    uint256 public maxWalletAmount;

    IDexRouter public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;

    bool private swapping;
    uint256 public swapTokensAtAmount;

    address public TreasuryAddress;

    bool public limitsInEffect = true;
    bool public tradingActive = false;
    bool public swapEnabled = false;

    uint256 public buyTotalFees;
    uint256 public buyTreasuryFee;
    uint256 public buyLiquidityFee;

    uint256 public sellTotalFees;
    uint256 public sellTreasuryFee;
    uint256 public sellLiquidityFee;

    uint256 public tokensForTreasury;
    uint256 public tokensForLiquidity;

    // exlcude from fees and max transaction amount
    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) public _isExcludedMaxTransactionAmount;

    // store addresses that a automatic market maker pairs. Any transfer *to* these addresses
    // could be subject to a maximum transfer amount
    mapping(address => bool) public automatedMarketMakerPairs;

    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);
    event EnabledTrading(bool tradingActive);
    event RemovedLimits();
    event ExcludeFromFees(address indexed account, bool isExcluded);
    event UpdatedMaxBuyAmount(uint256 newAmount);
    event UpdatedMaxSellAmount(uint256 newAmount);
    event UpdatedMaxWalletAmount(uint256 newAmount);
    event UpdatedTreasuryAddress(address indexed newWallet);
    event UpdatedRewardsAddress(address indexed newWallet);
    event MaxTransactionExclusion(address _address, bool excluded);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiquidity
    );

    constructor() ERC20("MXRC", "MXRC") {
        address newOwner = msg.sender;

        IDexRouter _uniswapV2Router = IDexRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        _excludeFromMaxTransaction(address(_uniswapV2Router), true);
        uniswapV2Router = _uniswapV2Router;

        uniswapV2Pair = IDexFactory(_uniswapV2Router.factory()).createPair(
            address(this),
            _uniswapV2Router.WETH()
        );
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);

        uint256 totalSupply = 1000000000 * 1e18;

        maxBuyAmount = (totalSupply * 20) / 1000;
        maxSellAmount = (totalSupply * 20) / 1000;
        maxWalletAmount = (totalSupply * 20) / 1000;
        swapTokensAtAmount = (totalSupply * 50) / 100000;

        buyTreasuryFee = 2;
        buyLiquidityFee = 1;
        buyTotalFees = buyTreasuryFee + buyLiquidityFee;

        sellTreasuryFee = 2;
        sellLiquidityFee = 1;
        sellTotalFees = sellTreasuryFee + sellLiquidityFee;

        _excludeFromMaxTransaction(newOwner, true);
        _excludeFromMaxTransaction(address(this), true);
        _excludeFromMaxTransaction(address(0xdead), true);

        TreasuryAddress = address(msg.sender);

        excludeFromFees(newOwner, true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);

        _createInitialSupply(newOwner, totalSupply);
        transferOwnership(newOwner);
    }

    receive() external payable {}

    function updateMaxBuyAmount(uint256 newNum) external onlyOwner {
        require(
            newNum >= ((totalSupply() * 1) / 1000) / 1e18,
            "Cannot set max buy amount lower than 0.1%"
        );
        maxBuyAmount = newNum * (10 ** 18);
        emit UpdatedMaxBuyAmount(maxBuyAmount);
    }

    function updateMaxSellAmount(uint256 newNum) external onlyOwner {
        require(
            newNum >= ((totalSupply() * 1) / 1000) / 1e18,
            "Cannot set max sell amount lower than 0.1%"
        );
        maxSellAmount = newNum * (10 ** 18);
        emit UpdatedMaxSellAmount(maxSellAmount);
    }

    // remove limits after token is stable
    function removeLimits() external onlyOwner {
        limitsInEffect = false;
        emit RemovedLimits();
    }

    function _excludeFromMaxTransaction(
        address updAds,
        bool isExcluded
    ) private {
        _isExcludedMaxTransactionAmount[updAds] = isExcluded;
        emit MaxTransactionExclusion(updAds, isExcluded);
    }

    function excludeFromMaxTransaction(
        address updAds,
        bool isEx
    ) external onlyOwner {
        if (!isEx) {
            require(
                updAds != uniswapV2Pair,
                "Cannot remove uniswap pair from max txn"
            );
        }
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

    function updateMaxWalletAmount(uint256 newNum) external onlyOwner {
        require(
            newNum >= ((totalSupply() * 3) / 1000) / 1e18,
            "Cannot set max wallet amount lower than 0.3%"
        );
        maxWalletAmount = newNum * (10 ** 18);
        emit UpdatedMaxWalletAmount(maxWalletAmount);
    }

    // change the minimum amount of tokens to sell from fees
    function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner {
        require(
            newAmount >= (totalSupply() * 1) / 100000,
            "Swap amount cannot be lower than 0.001% total supply."
        );
        require(
            newAmount <= (totalSupply() * 1) / 1000,
            "Swap amount cannot be higher than 0.1% total supply."
        );
        swapTokensAtAmount = newAmount;
    }

    function updateBuyFees(
        uint256 _treasuryFee,
        uint256 _liquidityFee
    ) external onlyOwner {
        buyTreasuryFee = _treasuryFee;
        buyLiquidityFee = _liquidityFee;
        buyTotalFees = buyTreasuryFee + buyLiquidityFee;
        require(buyTotalFees <= 15, "Must keep fees at 15% or less");
    }

    function updateSellFees(
        uint256 _treasuryFee,
        uint256 _liquidityFee
    ) external onlyOwner {
        sellTreasuryFee = _treasuryFee;
        sellLiquidityFee = _liquidityFee;
        sellTotalFees = sellTreasuryFee + sellLiquidityFee;
        require(sellTotalFees <= 30, "Must keep fees at 30% or less");
    }

    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
        emit ExcludeFromFees(account, excluded);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "amount must be greater than 0");

        if (limitsInEffect) {
            if (
                from != owner() &&
                to != owner() &&
                to != address(0) &&
                to != address(0xdead)
            ) {
                if (!tradingActive) {
                    require(
                        _isExcludedMaxTransactionAmount[from] ||
                            _isExcludedMaxTransactionAmount[to],
                        "Trading is not active."
                    );
                    require(from == owner(), "Trading is enabled");
                }

                //when buy
                if (
                    automatedMarketMakerPairs[from] &&
                    !_isExcludedMaxTransactionAmount[to]
                ) {
                    require(
                        amount <= maxBuyAmount,
                        "Buy transfer amount exceeds the max buy."
                    );
                    require(
                        amount + balanceOf(to) <= maxWalletAmount,
                        "Cannot Exceed max wallet"
                    );
                }
                //when sell
                else if (
                    automatedMarketMakerPairs[to] &&
                    !_isExcludedMaxTransactionAmount[from]
                ) {
                    require(
                        amount <= maxSellAmount,
                        "Sell transfer amount exceeds the max sell."
                    );
                } else if (
                    !_isExcludedMaxTransactionAmount[to] &&
                    !_isExcludedMaxTransactionAmount[from]
                ) {
                    require(
                        amount + balanceOf(to) <= maxWalletAmount,
                        "Cannot Exceed max wallet"
                    );
                }
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if (
            canSwap &&
            swapEnabled &&
            !swapping &&
            !automatedMarketMakerPairs[from] &&
            !_isExcludedFromFees[from] &&
            !_isExcludedFromFees[to]
        ) {
            swapping = true;
            swapBack();
            swapping = false;
        }

        bool takeFee = true;
        // if any account belongs to _isExcludedFromFee account then remove the fee
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;
        // only take fees on Trades, not on wallet transfers

        if (takeFee) {
            // on sell
            if (automatedMarketMakerPairs[to] && sellTotalFees > 0) {
                fees = (amount * sellTotalFees) / 100;
                tokensForLiquidity += (fees * sellLiquidityFee) / sellTotalFees;
                tokensForTreasury += (fees * sellTreasuryFee) / sellTotalFees;
            }
            // on buy
            else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                fees = (amount * buyTotalFees) / 100;
                tokensForLiquidity += (fees * buyLiquidityFee) / buyTotalFees;
                tokensForTreasury += (fees * buyTreasuryFee) / buyTotalFees;
            }

            if (fees > 0) {
                super._transfer(from, address(this), fees);
            }

            amount -= fees;
        }

        super._transfer(from, to, amount);
    }

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

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

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

    function setAutomatedMarketMakerPair(
        address pair,
        bool value
    ) external onlyOwner {
        require(
            pair != uniswapV2Pair,
            "The pair cannot be removed from automatedMarketMakerPairs"
        );

        _setAutomatedMarketMakerPair(pair, value);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;

        _excludeFromMaxTransaction(pair, value);

        emit SetAutomatedMarketMakerPair(pair, value);
    }

    // once enabled, can never be turned off
    function enableTrading(bool _status) external onlyOwner {
        require(!tradingActive, "Cannot re enable trading");
        tradingActive = _status;
        swapEnabled = true;
        emit EnabledTrading(tradingActive);
    }

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

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

    function setTreasuryAddress(address _TreasuryAddress) external onlyOwner {
        require(
            _TreasuryAddress != address(0),
            "_TreasuryAddress address cannot be 0"
        );
        TreasuryAddress = payable(_TreasuryAddress);
        emit UpdatedTreasuryAddress(_TreasuryAddress);
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = tokensForLiquidity + tokensForTreasury;

        if (contractBalance == 0 || totalTokensToSwap == 0) {
            return;
        }

        if (contractBalance > swapTokensAtAmount * 10) {
            contractBalance = swapTokensAtAmount * 10;
        }

        bool success;

        // Halve the amount of liquidity tokens
        uint256 liquidityTokens = (contractBalance * tokensForLiquidity) /
            totalTokensToSwap /
            2;

        swapTokensForEth(contractBalance - liquidityTokens);

        uint256 ethBalance = address(this).balance;
        uint256 ethForLiquidity = ethBalance;

        uint256 ethForTreasury = (ethBalance * tokensForTreasury) /
            (totalTokensToSwap - (tokensForLiquidity / 2));

        ethForLiquidity -= ethForTreasury;

        tokensForLiquidity = 0;
        tokensForTreasury = 0;

        if (liquidityTokens > 0 && ethForLiquidity > 0) {
            addLiquidity(liquidityTokens, ethForLiquidity);
        }

        (success, ) = address(TreasuryAddress).call{
            value: address(this).balance
        }("");
    }

    function claimStuckTokens(address _token) external onlyOwner {
        if (_token == address(0x0)) {
            payable(owner()).transfer(address(this).balance);
            return;
        }
        IERC20 erc20token = IERC20(_token);
        uint256 balance = erc20token.balanceOf(address(this));
        erc20token.transfer(owner(), balance);
    }
}

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":false,"internalType":"bool","name":"tradingActive","type":"bool"}],"name":"EnabledTrading","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"excluded","type":"bool"}],"name":"MaxTransactionExclusion","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":[],"name":"RemovedLimits","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxBuyAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxSellAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxWalletAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"}],"name":"UpdatedRewardsAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"}],"name":"UpdatedTreasuryAddress","type":"event"},{"inputs":[],"name":"TreasuryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTreasuryFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"claimStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTreasuryFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_TreasuryAddress","type":"address"}],"name":"setTreasuryAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForTreasury","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":"tradingActive","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":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_treasuryFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxBuyAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxSellAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_treasuryFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526001600b60146101000a81548160ff0219169083151502179055506000600b60156101000a81548160ff0219169083151502179055506000600b60166101000a81548160ff0219169083151502179055503480156200006257600080fd5b506040518060400160405280600481526020017f4d585243000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4d585243000000000000000000000000000000000000000000000000000000008152508160039081620000e0919062000dc9565b508060049081620000f2919062000dc9565b5050506000620001076200058d60201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060003390506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050620001d78160016200059560201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000257573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027d919062000f1a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030b919062000f1a565b6040518363ffffffff1660e01b81526004016200032a92919062000f5d565b6020604051808303816000875af11580156200034a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000370919062000f1a565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1681525050620003b860a05160016200062b60201b60201c565b60006b033b2e3c9fd0803ce800000090506103e8601482620003db919062000fb9565b620003e7919062001033565b6006819055506103e8601482620003ff919062000fb9565b6200040b919062001033565b6007819055506103e860148262000423919062000fb9565b6200042f919062001033565b600881905550620186a060328262000448919062000fb9565b62000454919062001033565b600a819055506002600d819055506001600e81905550600e54600d546200047c91906200106b565b600c8190555060026010819055506001601181905550601154601054620004a491906200106b565b600f81905550620004bd8360016200059560201b60201c565b620004d03060016200059560201b60201c565b620004e561dead60016200059560201b60201c565b33600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000539836001620006de60201b60201c565b6200054c306001620006de60201b60201c565b6200056161dead6001620006de60201b60201c565b6200057383826200082b60201b60201c565b62000584836200097b60201b60201c565b505050620012c8565b600033905090565b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd674682826040516200061f929190620010c3565b60405180910390a15050565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200069482826200059560201b60201c565b8015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b620006ee6200058d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000780576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007779062001151565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516200081f919062001173565b60405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200089d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200089490620011e0565b60405180910390fd5b8060026000828254620008b191906200106b565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200090891906200106b565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200096f919062001213565b60405180910390a35050565b6200098b6200058d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000a1d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a149062001151565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000a8f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a8690620012a6565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000bd157607f821691505b60208210810362000be75762000be662000b89565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000c517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000c12565b62000c5d868362000c12565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000caa62000ca462000c9e8462000c75565b62000c7f565b62000c75565b9050919050565b6000819050919050565b62000cc68362000c89565b62000cde62000cd58262000cb1565b84845462000c1f565b825550505050565b600090565b62000cf562000ce6565b62000d0281848462000cbb565b505050565b5b8181101562000d2a5762000d1e60008262000ceb565b60018101905062000d08565b5050565b601f82111562000d795762000d438162000bed565b62000d4e8462000c02565b8101602085101562000d5e578190505b62000d7662000d6d8562000c02565b83018262000d07565b50505b505050565b600082821c905092915050565b600062000d9e6000198460080262000d7e565b1980831691505092915050565b600062000db9838362000d8b565b9150826002028217905092915050565b62000dd48262000b4f565b67ffffffffffffffff81111562000df05762000def62000b5a565b5b62000dfc825462000bb8565b62000e0982828562000d2e565b600060209050601f83116001811462000e41576000841562000e2c578287015190505b62000e38858262000dab565b86555062000ea8565b601f19841662000e518662000bed565b60005b8281101562000e7b5784890151825560018201915060208501945060208101905062000e54565b8683101562000e9b578489015162000e97601f89168262000d8b565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000ee28262000eb5565b9050919050565b62000ef48162000ed5565b811462000f0057600080fd5b50565b60008151905062000f148162000ee9565b92915050565b60006020828403121562000f335762000f3262000eb0565b5b600062000f438482850162000f03565b91505092915050565b62000f578162000ed5565b82525050565b600060408201905062000f74600083018562000f4c565b62000f83602083018462000f4c565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000fc68262000c75565b915062000fd38362000c75565b925082820262000fe38162000c75565b9150828204841483151762000ffd5762000ffc62000f8a565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620010408262000c75565b91506200104d8362000c75565b92508262001060576200105f62001004565b5b828204905092915050565b6000620010788262000c75565b9150620010858362000c75565b9250828201905080821115620010a0576200109f62000f8a565b5b92915050565b60008115159050919050565b620010bd81620010a6565b82525050565b6000604082019050620010da600083018562000f4c565b620010e96020830184620010b2565b9392505050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062001139602083620010f0565b9150620011468262001101565b602082019050919050565b600060208201905081810360008301526200116c816200112a565b9050919050565b60006020820190506200118a6000830184620010b2565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620011c8601f83620010f0565b9150620011d58262001190565b602082019050919050565b60006020820190508181036000830152620011fb81620011b9565b9050919050565b6200120d8162000c75565b82525050565b60006020820190506200122a600083018462001202565b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006200128e602683620010f0565b91506200129b8262001230565b604082019050919050565b60006020820190508181036000830152620012c1816200127f565b9050919050565b60805160a0516152e26200131f60003960008181610ff80152818161162e0152611871015260008181610cb4015281816138a101528181613982015281816139a901528181613a450152613a6c01526152e26000f3fe60806040526004361061028c5760003560e01c8063751039fc1161015a578063c18bc195116100c1578063e2f456051161007a578063e2f45605146109e1578063f11a24d314610a0c578063f275f64b14610a37578063f2fde38b14610a60578063f637434214610a89578063f9d0831a14610ab457610293565b8063c18bc195146108d3578063cc2ffe7c146108fc578063d257b34f14610927578063d85ba06314610950578063dc3f0d0f1461097b578063dd62ed3e146109a457610293565b8063a457c2d711610113578063a457c2d71461079d578063a9059cbb146107da578063aa4bde2814610817578063b62496f514610842578063bbc0c7421461087f578063c0246668146108aa57610293565b8063751039fc146106b35780637571336a146106ca57806388e765ff146106f35780638da5cb5b1461071e57806395d89b41146107495780639a7a23d61461077457610293565b806349bd5a5e116101fe57806366d602ae116101b757806366d602ae146105b35780636a486a8e146105de5780636b2fb124146106095780636ddd17131461063457806370a082311461065f578063715018a61461069c57610293565b806349bd5a5e146104b55780634a62bb65146104e05780635b5c251f1461050b5780635c068a8c146105365780636605bfda1461056157806366ca9b831461058a57610293565b806318160ddd1161025057806318160ddd146103915780631a8145bb146103bc57806323b872dd146103e75780632be32b6114610424578063313ce5671461044d578063395093511461047857610293565b806302dbd8f81461029857806306fdde03146102c1578063095ea7b3146102ec57806310d5de53146103295780631694505e1461036657610293565b3661029357005b600080fd5b3480156102a457600080fd5b506102bf60048036038101906102ba9190613b5b565b610add565b005b3480156102cd57600080fd5b506102d6610be2565b6040516102e39190613c2b565b60405180910390f35b3480156102f857600080fd5b50610313600480360381019061030e9190613cab565b610c74565b6040516103209190613d06565b60405180910390f35b34801561033557600080fd5b50610350600480360381019061034b9190613d21565b610c92565b60405161035d9190613d06565b60405180910390f35b34801561037257600080fd5b5061037b610cb2565b6040516103889190613dad565b60405180910390f35b34801561039d57600080fd5b506103a6610cd6565b6040516103b39190613dd7565b60405180910390f35b3480156103c857600080fd5b506103d1610ce0565b6040516103de9190613dd7565b60405180910390f35b3480156103f357600080fd5b5061040e60048036038101906104099190613df2565b610ce6565b60405161041b9190613d06565b60405180910390f35b34801561043057600080fd5b5061044b60048036038101906104469190613e45565b610dde565b005b34801561045957600080fd5b50610462610f41565b60405161046f9190613e8e565b60405180910390f35b34801561048457600080fd5b5061049f600480360381019061049a9190613cab565b610f4a565b6040516104ac9190613d06565b60405180910390f35b3480156104c157600080fd5b506104ca610ff6565b6040516104d79190613eb8565b60405180910390f35b3480156104ec57600080fd5b506104f561101a565b6040516105029190613d06565b60405180910390f35b34801561051757600080fd5b5061052061102d565b60405161052d9190613eb8565b60405180910390f35b34801561054257600080fd5b5061054b611053565b6040516105589190613dd7565b60405180910390f35b34801561056d57600080fd5b5061058860048036038101906105839190613d21565b611059565b005b34801561059657600080fd5b506105b160048036038101906105ac9190613b5b565b6111e6565b005b3480156105bf57600080fd5b506105c86112eb565b6040516105d59190613dd7565b60405180910390f35b3480156105ea57600080fd5b506105f36112f1565b6040516106009190613dd7565b60405180910390f35b34801561061557600080fd5b5061061e6112f7565b60405161062b9190613dd7565b60405180910390f35b34801561064057600080fd5b506106496112fd565b6040516106569190613d06565b60405180910390f35b34801561066b57600080fd5b5061068660048036038101906106819190613d21565b611310565b6040516106939190613dd7565b60405180910390f35b3480156106a857600080fd5b506106b1611358565b005b3480156106bf57600080fd5b506106c86114b0565b005b3480156106d657600080fd5b506106f160048036038101906106ec9190613eff565b611590565b005b3480156106ff57600080fd5b50610708611716565b6040516107159190613dd7565b60405180910390f35b34801561072a57600080fd5b5061073361171c565b6040516107409190613eb8565b60405180910390f35b34801561075557600080fd5b5061075e611746565b60405161076b9190613c2b565b60405180910390f35b34801561078057600080fd5b5061079b60048036038101906107969190613eff565b6117d8565b005b3480156107a957600080fd5b506107c460048036038101906107bf9190613cab565b61190b565b6040516107d19190613d06565b60405180910390f35b3480156107e657600080fd5b5061080160048036038101906107fc9190613cab565b6119f6565b60405161080e9190613d06565b60405180910390f35b34801561082357600080fd5b5061082c611a14565b6040516108399190613dd7565b60405180910390f35b34801561084e57600080fd5b5061086960048036038101906108649190613d21565b611a1a565b6040516108769190613d06565b60405180910390f35b34801561088b57600080fd5b50610894611a3a565b6040516108a19190613d06565b60405180910390f35b3480156108b657600080fd5b506108d160048036038101906108cc9190613eff565b611a4d565b005b3480156108df57600080fd5b506108fa60048036038101906108f59190613e45565b611b8d565b005b34801561090857600080fd5b50610911611cf0565b60405161091e9190613dd7565b60405180910390f35b34801561093357600080fd5b5061094e60048036038101906109499190613e45565b611cf6565b005b34801561095c57600080fd5b50610965611e5e565b6040516109729190613dd7565b60405180910390f35b34801561098757600080fd5b506109a2600480360381019061099d9190613e45565b611e64565b005b3480156109b057600080fd5b506109cb60048036038101906109c69190613f3f565b611fc7565b6040516109d89190613dd7565b60405180910390f35b3480156109ed57600080fd5b506109f661204e565b604051610a039190613dd7565b60405180910390f35b348015610a1857600080fd5b50610a21612054565b604051610a2e9190613dd7565b60405180910390f35b348015610a4357600080fd5b50610a5e6004803603810190610a599190613f7f565b61205a565b005b348015610a6c57600080fd5b50610a876004803603810190610a829190613d21565b6121bf565b005b348015610a9557600080fd5b50610a9e612385565b604051610aab9190613dd7565b60405180910390f35b348015610ac057600080fd5b50610adb6004803603810190610ad69190613d21565b61238b565b005b610ae56125b8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6b90613ff8565b60405180910390fd5b8160108190555080601181905550601154601054610b929190614047565b600f81905550601e600f541115610bde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd5906140c7565b60405180910390fd5b5050565b606060038054610bf190614116565b80601f0160208091040260200160405190810160405280929190818152602001828054610c1d90614116565b8015610c6a5780601f10610c3f57610100808354040283529160200191610c6a565b820191906000526020600020905b815481529060010190602001808311610c4d57829003601f168201915b5050505050905090565b6000610c88610c816125b8565b84846125c0565b6001905092915050565b60156020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b60135481565b6000610cf3848484612789565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d3e6125b8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610dbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db5906141b9565b60405180910390fd5b610dd285610dca6125b8565b8584036125c0565b60019150509392505050565b610de66125b8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6c90613ff8565b60405180910390fd5b670de0b6b3a76400006103e86001610e8b610cd6565b610e9591906141d9565b610e9f919061424a565b610ea9919061424a565b811015610eeb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee2906142ed565b60405180910390fd5b670de0b6b3a764000081610eff91906141d9565b6006819055507ffcc0366804aaa8dbf88a2924100c733b70dec8445957a5d5f8ff92898de41009600654604051610f369190613dd7565b60405180910390a150565b60006012905090565b6000610fec610f576125b8565b848460016000610f656125b8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fe79190614047565b6125c0565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600b60149054906101000a900460ff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b6110616125b8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e790613ff8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361115f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111569061437f565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f2e1e696cfb265fa16e1170d24ef04cb2262772bde00ecf34d80bae6722487b7f60405160405180910390a250565b6111ee6125b8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461127d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127490613ff8565b60405180910390fd5b81600d8190555080600e81905550600e54600d5461129b9190614047565b600c81905550600f600c5411156112e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112de906143eb565b60405180910390fd5b5050565b60075481565b600f5481565b60105481565b600b60169054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6113606125b8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e690613ff8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6114b86125b8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611547576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153e90613ff8565b60405180910390fd5b6000600b60146101000a81548160ff0219169083151502179055507fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c60405160405180910390a1565b6115986125b8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611627576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161e90613ff8565b60405180910390fd5b806116bb577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b19061447d565b60405180910390fd5b5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60065481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461175590614116565b80601f016020809104026020016040519081016040528092919081815260200182805461178190614116565b80156117ce5780601f106117a3576101008083540402835291602001916117ce565b820191906000526020600020905b8154815290600101906020018083116117b157829003601f168201915b5050505050905090565b6117e06125b8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461186f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186690613ff8565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f49061450f565b60405180910390fd5b61190782826132a4565b5050565b6000806001600061191a6125b8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156119d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ce906145a1565b60405180910390fd5b6119eb6119e26125b8565b858584036125c0565b600191505092915050565b6000611a0a611a036125b8565b8484612789565b6001905092915050565b60085481565b60166020528060005260406000206000915054906101000a900460ff1681565b600b60159054906101000a900460ff1681565b611a556125b8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ae4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611adb90613ff8565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611b819190613d06565b60405180910390a25050565b611b956125b8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1b90613ff8565b60405180910390fd5b670de0b6b3a76400006103e86003611c3a610cd6565b611c4491906141d9565b611c4e919061424a565b611c58919061424a565b811015611c9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9190614633565b60405180910390fd5b670de0b6b3a764000081611cae91906141d9565b6008819055507fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc600854604051611ce59190613dd7565b60405180910390a150565b60125481565b611cfe6125b8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8490613ff8565b60405180910390fd5b620186a06001611d9b610cd6565b611da591906141d9565b611daf919061424a565b811015611df1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de8906146c5565b60405180910390fd5b6103e86001611dfe610cd6565b611e0891906141d9565b611e12919061424a565b811115611e54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4b90614757565b60405180910390fd5b80600a8190555050565b600c5481565b611e6c6125b8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611efb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef290613ff8565b60405180910390fd5b670de0b6b3a76400006103e86001611f11610cd6565b611f1b91906141d9565b611f25919061424a565b611f2f919061424a565b811015611f71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f68906147e9565b60405180910390fd5b670de0b6b3a764000081611f8591906141d9565b6007819055507f53c4eb831d8cfeb750f1c62590d8cd30f4c6f0380d29a05caa09f0d92588560e600754604051611fbc9190613dd7565b60405180910390a150565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a5481565b600e5481565b6120626125b8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e890613ff8565b60405180910390fd5b600b60159054906101000a900460ff1615612141576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213890614855565b60405180910390fd5b80600b60156101000a81548160ff0219169083151502179055506001600b60166101000a81548160ff0219169083151502179055507fe8a59d3db38e5220ac9d0f72590b7ac876e0916dc8f4db3e7614e6f91fe52089600b60159054906101000a900460ff166040516121b49190613d06565b60405180910390a150565b6121c76125b8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612256576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224d90613ff8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036122c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122bc906148e7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60115481565b6123936125b8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612422576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241990613ff8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036124a95761245e61171c565b73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156124a3573d6000803e3d6000fd5b506125b5565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016124e99190613eb8565b602060405180830381865afa158015612506573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061252a919061491c565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61255061171c565b836040518363ffffffff1660e01b815260040161256e929190614949565b6020604051808303816000875af115801561258d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125b19190614987565b5050505b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361262f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161262690614a26565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361269e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161269590614ab8565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161277c9190613dd7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036127f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ef90614b4a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612867576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285e90614bdc565b60405180910390fd5b600081116128aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128a190614c48565b60405180910390fd5b600b60149054906101000a900460ff1615612e59576128c761171c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612935575061290561171c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561296e5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156129a8575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612e5857600b60159054906101000a900460ff16612b1757601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612a625750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612aa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a9890614cb4565b60405180910390fd5b612aa961171c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612b16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b0d90614d20565b60405180910390fd5b5b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612bba5750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612c6157600654811115612c04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bfb90614db2565b60405180910390fd5b600854612c1083611310565b82612c1b9190614047565b1115612c5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c5390614e1e565b60405180910390fd5b612e57565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612d045750601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612d5357600754811115612d4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d4590614eb0565b60405180910390fd5b612e56565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612df75750601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612e5557600854612e0883611310565b82612e139190614047565b1115612e54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e4b90614e1e565b60405180910390fd5b5b5b5b5b5b6000612e6430611310565b90506000600a548210159050808015612e895750600b60169054906101000a900460ff165b8015612ea25750600960009054906101000a900460ff16155b8015612ef85750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612f4e5750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612fa45750601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612fe8576001600960006101000a81548160ff021916908315150217905550612fcc61334f565b6000600960006101000a81548160ff0219169083151502179055505b600060019050601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061308f5750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561309957600090505b6000811561329057601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156130fc57506000600f54115b15613188576064600f548661311191906141d9565b61311b919061424a565b9050600f546011548261312e91906141d9565b613138919061424a565b601360008282546131499190614047565b92505081905550600f546010548261316191906141d9565b61316b919061424a565b6012600082825461317c9190614047565b9250508190555061326c565b601660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156131e357506000600c54115b1561326b576064600c54866131f891906141d9565b613202919061424a565b9050600c54600e548261321591906141d9565b61321f919061424a565b601360008282546132309190614047565b92505081905550600c54600d548261324891906141d9565b613252919061424a565b601260008282546132639190614047565b925050819055505b5b600081111561328157613280873083613505565b5b808561328d9190614ed0565b94505b61329b878787613505565b50505050505050565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550613305828261376e565b8015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600061335a30611310565b9050600060125460135461336e9190614047565b9050600082148061337f5750600081145b1561338b575050613503565b600a805461339991906141d9565b8211156133b157600a80546133ae91906141d9565b91505b600080600283601354866133c591906141d9565b6133cf919061424a565b6133d9919061424a565b90506133ef81856133ea9190614ed0565b613802565b600047905060008190506000600260135461340a919061424a565b866134159190614ed0565b6012548461342391906141d9565b61342d919061424a565b9050808261343b9190614ed0565b91506000601381905550600060128190555060008411801561345d5750600082115b1561346d5761346c8483613a3f565b5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516134b390614f35565b60006040518083038185875af1925050503d80600081146134f0576040519150601f19603f3d011682016040523d82523d6000602084013e6134f5565b606091505b505080955050505050505050505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613574576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161356b90614b4a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036135e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135da90614bdc565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613669576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161366090614fbc565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546136fc9190614047565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516137609190613dd7565b60405180910390a350505050565b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd674682826040516137f6929190614fdc565b60405180910390a15050565b6000600267ffffffffffffffff81111561381f5761381e615005565b5b60405190808252806020026020018201604052801561384d5781602001602082028036833780820191505090505b509050308160008151811061386557613864615034565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561390a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061392e9190615078565b8160018151811061394257613941615034565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506139a7307f0000000000000000000000000000000000000000000000000000000000000000846125c0565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613a0995949392919061519e565b600060405180830381600087803b158015613a2357600080fd5b505af1158015613a37573d6000803e3d6000fd5b505050505050565b613a6a307f0000000000000000000000000000000000000000000000000000000000000000846125c0565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080613ab461171c565b426040518863ffffffff1660e01b8152600401613ad6969594939291906151f8565b60606040518083038185885af1158015613af4573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613b199190615259565b5050505050565b600080fd5b6000819050919050565b613b3881613b25565b8114613b4357600080fd5b50565b600081359050613b5581613b2f565b92915050565b60008060408385031215613b7257613b71613b20565b5b6000613b8085828601613b46565b9250506020613b9185828601613b46565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613bd5578082015181840152602081019050613bba565b60008484015250505050565b6000601f19601f8301169050919050565b6000613bfd82613b9b565b613c078185613ba6565b9350613c17818560208601613bb7565b613c2081613be1565b840191505092915050565b60006020820190508181036000830152613c458184613bf2565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613c7882613c4d565b9050919050565b613c8881613c6d565b8114613c9357600080fd5b50565b600081359050613ca581613c7f565b92915050565b60008060408385031215613cc257613cc1613b20565b5b6000613cd085828601613c96565b9250506020613ce185828601613b46565b9150509250929050565b60008115159050919050565b613d0081613ceb565b82525050565b6000602082019050613d1b6000830184613cf7565b92915050565b600060208284031215613d3757613d36613b20565b5b6000613d4584828501613c96565b91505092915050565b6000819050919050565b6000613d73613d6e613d6984613c4d565b613d4e565b613c4d565b9050919050565b6000613d8582613d58565b9050919050565b6000613d9782613d7a565b9050919050565b613da781613d8c565b82525050565b6000602082019050613dc26000830184613d9e565b92915050565b613dd181613b25565b82525050565b6000602082019050613dec6000830184613dc8565b92915050565b600080600060608486031215613e0b57613e0a613b20565b5b6000613e1986828701613c96565b9350506020613e2a86828701613c96565b9250506040613e3b86828701613b46565b9150509250925092565b600060208284031215613e5b57613e5a613b20565b5b6000613e6984828501613b46565b91505092915050565b600060ff82169050919050565b613e8881613e72565b82525050565b6000602082019050613ea36000830184613e7f565b92915050565b613eb281613c6d565b82525050565b6000602082019050613ecd6000830184613ea9565b92915050565b613edc81613ceb565b8114613ee757600080fd5b50565b600081359050613ef981613ed3565b92915050565b60008060408385031215613f1657613f15613b20565b5b6000613f2485828601613c96565b9250506020613f3585828601613eea565b9150509250929050565b60008060408385031215613f5657613f55613b20565b5b6000613f6485828601613c96565b9250506020613f7585828601613c96565b9150509250929050565b600060208284031215613f9557613f94613b20565b5b6000613fa384828501613eea565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613fe2602083613ba6565b9150613fed82613fac565b602082019050919050565b6000602082019050818103600083015261401181613fd5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061405282613b25565b915061405d83613b25565b925082820190508082111561407557614074614018565b5b92915050565b7f4d757374206b656570206665657320617420333025206f72206c657373000000600082015250565b60006140b1601d83613ba6565b91506140bc8261407b565b602082019050919050565b600060208201905081810360008301526140e0816140a4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061412e57607f821691505b602082108103614141576141406140e7565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006141a3602883613ba6565b91506141ae82614147565b604082019050919050565b600060208201905081810360008301526141d281614196565b9050919050565b60006141e482613b25565b91506141ef83613b25565b92508282026141fd81613b25565b9150828204841483151761421457614213614018565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061425582613b25565b915061426083613b25565b9250826142705761426f61421b565b5b828204905092915050565b7f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f7765722060008201527f7468616e20302e31250000000000000000000000000000000000000000000000602082015250565b60006142d7602983613ba6565b91506142e28261427b565b604082019050919050565b60006020820190508181036000830152614306816142ca565b9050919050565b7f5f54726561737572794164647265737320616464726573732063616e6e6f742060008201527f6265203000000000000000000000000000000000000000000000000000000000602082015250565b6000614369602483613ba6565b91506143748261430d565b604082019050919050565b600060208201905081810360008301526143988161435c565b9050919050565b7f4d757374206b656570206665657320617420313525206f72206c657373000000600082015250565b60006143d5601d83613ba6565b91506143e08261439f565b602082019050919050565b60006020820190508181036000830152614404816143c8565b9050919050565b7f43616e6e6f742072656d6f766520756e697377617020706169722066726f6d2060008201527f6d61782074786e00000000000000000000000000000000000000000000000000602082015250565b6000614467602783613ba6565b91506144728261440b565b604082019050919050565b600060208201905081810360008301526144968161445a565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b60006144f9603983613ba6565b91506145048261449d565b604082019050919050565b60006020820190508181036000830152614528816144ec565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061458b602583613ba6565b91506145968261452f565b604082019050919050565b600060208201905081810360008301526145ba8161457e565b9050919050565b7f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760008201527f6572207468616e20302e33250000000000000000000000000000000000000000602082015250565b600061461d602c83613ba6565b9150614628826145c1565b604082019050919050565b6000602082019050818103600083015261464c81614610565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b60006146af603583613ba6565b91506146ba82614653565b604082019050919050565b600060208201905081810360008301526146de816146a2565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e312520746f74616c20737570706c792e000000000000000000000000602082015250565b6000614741603483613ba6565b915061474c826146e5565b604082019050919050565b6000602082019050818103600083015261477081614734565b9050919050565b7f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f77657260008201527f207468616e20302e312500000000000000000000000000000000000000000000602082015250565b60006147d3602a83613ba6565b91506147de82614777565b604082019050919050565b60006020820190508181036000830152614802816147c6565b9050919050565b7f43616e6e6f7420726520656e61626c652074726164696e670000000000000000600082015250565b600061483f601883613ba6565b915061484a82614809565b602082019050919050565b6000602082019050818103600083015261486e81614832565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006148d1602683613ba6565b91506148dc82614875565b604082019050919050565b60006020820190508181036000830152614900816148c4565b9050919050565b60008151905061491681613b2f565b92915050565b60006020828403121561493257614931613b20565b5b600061494084828501614907565b91505092915050565b600060408201905061495e6000830185613ea9565b61496b6020830184613dc8565b9392505050565b60008151905061498181613ed3565b92915050565b60006020828403121561499d5761499c613b20565b5b60006149ab84828501614972565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614a10602483613ba6565b9150614a1b826149b4565b604082019050919050565b60006020820190508181036000830152614a3f81614a03565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614aa2602283613ba6565b9150614aad82614a46565b604082019050919050565b60006020820190508181036000830152614ad181614a95565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614b34602583613ba6565b9150614b3f82614ad8565b604082019050919050565b60006020820190508181036000830152614b6381614b27565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614bc6602383613ba6565b9150614bd182614b6a565b604082019050919050565b60006020820190508181036000830152614bf581614bb9565b9050919050565b7f616d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b6000614c32601d83613ba6565b9150614c3d82614bfc565b602082019050919050565b60006020820190508181036000830152614c6181614c25565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000614c9e601683613ba6565b9150614ca982614c68565b602082019050919050565b60006020820190508181036000830152614ccd81614c91565b9050919050565b7f54726164696e6720697320656e61626c65640000000000000000000000000000600082015250565b6000614d0a601283613ba6565b9150614d1582614cd4565b602082019050919050565b60006020820190508181036000830152614d3981614cfd565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d6178206275792e000000000000000000000000000000000000000000000000602082015250565b6000614d9c602883613ba6565b9150614da782614d40565b604082019050919050565b60006020820190508181036000830152614dcb81614d8f565b9050919050565b7f43616e6e6f7420457863656564206d61782077616c6c65740000000000000000600082015250565b6000614e08601883613ba6565b9150614e1382614dd2565b602082019050919050565b60006020820190508181036000830152614e3781614dfb565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61782073656c6c2e00000000000000000000000000000000000000000000602082015250565b6000614e9a602a83613ba6565b9150614ea582614e3e565b604082019050919050565b60006020820190508181036000830152614ec981614e8d565b9050919050565b6000614edb82613b25565b9150614ee683613b25565b9250828203905081811115614efe57614efd614018565b5b92915050565b600081905092915050565b50565b6000614f1f600083614f04565b9150614f2a82614f0f565b600082019050919050565b6000614f4082614f12565b9150819050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614fa6602683613ba6565b9150614fb182614f4a565b604082019050919050565b60006020820190508181036000830152614fd581614f99565b9050919050565b6000604082019050614ff16000830185613ea9565b614ffe6020830184613cf7565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061507281613c7f565b92915050565b60006020828403121561508e5761508d613b20565b5b600061509c84828501615063565b91505092915050565b6000819050919050565b60006150ca6150c56150c0846150a5565b613d4e565b613b25565b9050919050565b6150da816150af565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61511581613c6d565b82525050565b6000615127838361510c565b60208301905092915050565b6000602082019050919050565b600061514b826150e0565b61515581856150eb565b9350615160836150fc565b8060005b83811015615191578151615178888261511b565b975061518383615133565b925050600181019050615164565b5085935050505092915050565b600060a0820190506151b36000830188613dc8565b6151c060208301876150d1565b81810360408301526151d28186615140565b90506151e16060830185613ea9565b6151ee6080830184613dc8565b9695505050505050565b600060c08201905061520d6000830189613ea9565b61521a6020830188613dc8565b61522760408301876150d1565b61523460608301866150d1565b6152416080830185613ea9565b61524e60a0830184613dc8565b979650505050505050565b60008060006060848603121561527257615271613b20565b5b600061528086828701614907565b935050602061529186828701614907565b92505060406152a286828701614907565b915050925092509256fea2646970667358221220f8c495bf5ed2f91c1d746390118934b63f8578b1ddd454921e31893d3aef065364736f6c63430008120033

Deployed Bytecode

0x60806040526004361061028c5760003560e01c8063751039fc1161015a578063c18bc195116100c1578063e2f456051161007a578063e2f45605146109e1578063f11a24d314610a0c578063f275f64b14610a37578063f2fde38b14610a60578063f637434214610a89578063f9d0831a14610ab457610293565b8063c18bc195146108d3578063cc2ffe7c146108fc578063d257b34f14610927578063d85ba06314610950578063dc3f0d0f1461097b578063dd62ed3e146109a457610293565b8063a457c2d711610113578063a457c2d71461079d578063a9059cbb146107da578063aa4bde2814610817578063b62496f514610842578063bbc0c7421461087f578063c0246668146108aa57610293565b8063751039fc146106b35780637571336a146106ca57806388e765ff146106f35780638da5cb5b1461071e57806395d89b41146107495780639a7a23d61461077457610293565b806349bd5a5e116101fe57806366d602ae116101b757806366d602ae146105b35780636a486a8e146105de5780636b2fb124146106095780636ddd17131461063457806370a082311461065f578063715018a61461069c57610293565b806349bd5a5e146104b55780634a62bb65146104e05780635b5c251f1461050b5780635c068a8c146105365780636605bfda1461056157806366ca9b831461058a57610293565b806318160ddd1161025057806318160ddd146103915780631a8145bb146103bc57806323b872dd146103e75780632be32b6114610424578063313ce5671461044d578063395093511461047857610293565b806302dbd8f81461029857806306fdde03146102c1578063095ea7b3146102ec57806310d5de53146103295780631694505e1461036657610293565b3661029357005b600080fd5b3480156102a457600080fd5b506102bf60048036038101906102ba9190613b5b565b610add565b005b3480156102cd57600080fd5b506102d6610be2565b6040516102e39190613c2b565b60405180910390f35b3480156102f857600080fd5b50610313600480360381019061030e9190613cab565b610c74565b6040516103209190613d06565b60405180910390f35b34801561033557600080fd5b50610350600480360381019061034b9190613d21565b610c92565b60405161035d9190613d06565b60405180910390f35b34801561037257600080fd5b5061037b610cb2565b6040516103889190613dad565b60405180910390f35b34801561039d57600080fd5b506103a6610cd6565b6040516103b39190613dd7565b60405180910390f35b3480156103c857600080fd5b506103d1610ce0565b6040516103de9190613dd7565b60405180910390f35b3480156103f357600080fd5b5061040e60048036038101906104099190613df2565b610ce6565b60405161041b9190613d06565b60405180910390f35b34801561043057600080fd5b5061044b60048036038101906104469190613e45565b610dde565b005b34801561045957600080fd5b50610462610f41565b60405161046f9190613e8e565b60405180910390f35b34801561048457600080fd5b5061049f600480360381019061049a9190613cab565b610f4a565b6040516104ac9190613d06565b60405180910390f35b3480156104c157600080fd5b506104ca610ff6565b6040516104d79190613eb8565b60405180910390f35b3480156104ec57600080fd5b506104f561101a565b6040516105029190613d06565b60405180910390f35b34801561051757600080fd5b5061052061102d565b60405161052d9190613eb8565b60405180910390f35b34801561054257600080fd5b5061054b611053565b6040516105589190613dd7565b60405180910390f35b34801561056d57600080fd5b5061058860048036038101906105839190613d21565b611059565b005b34801561059657600080fd5b506105b160048036038101906105ac9190613b5b565b6111e6565b005b3480156105bf57600080fd5b506105c86112eb565b6040516105d59190613dd7565b60405180910390f35b3480156105ea57600080fd5b506105f36112f1565b6040516106009190613dd7565b60405180910390f35b34801561061557600080fd5b5061061e6112f7565b60405161062b9190613dd7565b60405180910390f35b34801561064057600080fd5b506106496112fd565b6040516106569190613d06565b60405180910390f35b34801561066b57600080fd5b5061068660048036038101906106819190613d21565b611310565b6040516106939190613dd7565b60405180910390f35b3480156106a857600080fd5b506106b1611358565b005b3480156106bf57600080fd5b506106c86114b0565b005b3480156106d657600080fd5b506106f160048036038101906106ec9190613eff565b611590565b005b3480156106ff57600080fd5b50610708611716565b6040516107159190613dd7565b60405180910390f35b34801561072a57600080fd5b5061073361171c565b6040516107409190613eb8565b60405180910390f35b34801561075557600080fd5b5061075e611746565b60405161076b9190613c2b565b60405180910390f35b34801561078057600080fd5b5061079b60048036038101906107969190613eff565b6117d8565b005b3480156107a957600080fd5b506107c460048036038101906107bf9190613cab565b61190b565b6040516107d19190613d06565b60405180910390f35b3480156107e657600080fd5b5061080160048036038101906107fc9190613cab565b6119f6565b60405161080e9190613d06565b60405180910390f35b34801561082357600080fd5b5061082c611a14565b6040516108399190613dd7565b60405180910390f35b34801561084e57600080fd5b5061086960048036038101906108649190613d21565b611a1a565b6040516108769190613d06565b60405180910390f35b34801561088b57600080fd5b50610894611a3a565b6040516108a19190613d06565b60405180910390f35b3480156108b657600080fd5b506108d160048036038101906108cc9190613eff565b611a4d565b005b3480156108df57600080fd5b506108fa60048036038101906108f59190613e45565b611b8d565b005b34801561090857600080fd5b50610911611cf0565b60405161091e9190613dd7565b60405180910390f35b34801561093357600080fd5b5061094e60048036038101906109499190613e45565b611cf6565b005b34801561095c57600080fd5b50610965611e5e565b6040516109729190613dd7565b60405180910390f35b34801561098757600080fd5b506109a2600480360381019061099d9190613e45565b611e64565b005b3480156109b057600080fd5b506109cb60048036038101906109c69190613f3f565b611fc7565b6040516109d89190613dd7565b60405180910390f35b3480156109ed57600080fd5b506109f661204e565b604051610a039190613dd7565b60405180910390f35b348015610a1857600080fd5b50610a21612054565b604051610a2e9190613dd7565b60405180910390f35b348015610a4357600080fd5b50610a5e6004803603810190610a599190613f7f565b61205a565b005b348015610a6c57600080fd5b50610a876004803603810190610a829190613d21565b6121bf565b005b348015610a9557600080fd5b50610a9e612385565b604051610aab9190613dd7565b60405180910390f35b348015610ac057600080fd5b50610adb6004803603810190610ad69190613d21565b61238b565b005b610ae56125b8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6b90613ff8565b60405180910390fd5b8160108190555080601181905550601154601054610b929190614047565b600f81905550601e600f541115610bde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd5906140c7565b60405180910390fd5b5050565b606060038054610bf190614116565b80601f0160208091040260200160405190810160405280929190818152602001828054610c1d90614116565b8015610c6a5780601f10610c3f57610100808354040283529160200191610c6a565b820191906000526020600020905b815481529060010190602001808311610c4d57829003601f168201915b5050505050905090565b6000610c88610c816125b8565b84846125c0565b6001905092915050565b60156020528060005260406000206000915054906101000a900460ff1681565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600254905090565b60135481565b6000610cf3848484612789565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d3e6125b8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610dbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db5906141b9565b60405180910390fd5b610dd285610dca6125b8565b8584036125c0565b60019150509392505050565b610de66125b8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6c90613ff8565b60405180910390fd5b670de0b6b3a76400006103e86001610e8b610cd6565b610e9591906141d9565b610e9f919061424a565b610ea9919061424a565b811015610eeb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee2906142ed565b60405180910390fd5b670de0b6b3a764000081610eff91906141d9565b6006819055507ffcc0366804aaa8dbf88a2924100c733b70dec8445957a5d5f8ff92898de41009600654604051610f369190613dd7565b60405180910390a150565b60006012905090565b6000610fec610f576125b8565b848460016000610f656125b8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fe79190614047565b6125c0565b6001905092915050565b7f0000000000000000000000006e2722e88a2bfb797847cc41287ba1e1587b77a881565b600b60149054906101000a900460ff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b6110616125b8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e790613ff8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361115f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111569061437f565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f2e1e696cfb265fa16e1170d24ef04cb2262772bde00ecf34d80bae6722487b7f60405160405180910390a250565b6111ee6125b8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461127d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127490613ff8565b60405180910390fd5b81600d8190555080600e81905550600e54600d5461129b9190614047565b600c81905550600f600c5411156112e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112de906143eb565b60405180910390fd5b5050565b60075481565b600f5481565b60105481565b600b60169054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6113606125b8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e690613ff8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6114b86125b8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611547576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153e90613ff8565b60405180910390fd5b6000600b60146101000a81548160ff0219169083151502179055507fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c60405160405180910390a1565b6115986125b8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611627576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161e90613ff8565b60405180910390fd5b806116bb577f0000000000000000000000006e2722e88a2bfb797847cc41287ba1e1587b77a873ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b19061447d565b60405180910390fd5b5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60065481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461175590614116565b80601f016020809104026020016040519081016040528092919081815260200182805461178190614116565b80156117ce5780601f106117a3576101008083540402835291602001916117ce565b820191906000526020600020905b8154815290600101906020018083116117b157829003601f168201915b5050505050905090565b6117e06125b8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461186f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186690613ff8565b60405180910390fd5b7f0000000000000000000000006e2722e88a2bfb797847cc41287ba1e1587b77a873ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f49061450f565b60405180910390fd5b61190782826132a4565b5050565b6000806001600061191a6125b8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156119d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ce906145a1565b60405180910390fd5b6119eb6119e26125b8565b858584036125c0565b600191505092915050565b6000611a0a611a036125b8565b8484612789565b6001905092915050565b60085481565b60166020528060005260406000206000915054906101000a900460ff1681565b600b60159054906101000a900460ff1681565b611a556125b8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ae4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611adb90613ff8565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611b819190613d06565b60405180910390a25050565b611b956125b8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1b90613ff8565b60405180910390fd5b670de0b6b3a76400006103e86003611c3a610cd6565b611c4491906141d9565b611c4e919061424a565b611c58919061424a565b811015611c9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9190614633565b60405180910390fd5b670de0b6b3a764000081611cae91906141d9565b6008819055507fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc600854604051611ce59190613dd7565b60405180910390a150565b60125481565b611cfe6125b8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8490613ff8565b60405180910390fd5b620186a06001611d9b610cd6565b611da591906141d9565b611daf919061424a565b811015611df1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de8906146c5565b60405180910390fd5b6103e86001611dfe610cd6565b611e0891906141d9565b611e12919061424a565b811115611e54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4b90614757565b60405180910390fd5b80600a8190555050565b600c5481565b611e6c6125b8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611efb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef290613ff8565b60405180910390fd5b670de0b6b3a76400006103e86001611f11610cd6565b611f1b91906141d9565b611f25919061424a565b611f2f919061424a565b811015611f71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f68906147e9565b60405180910390fd5b670de0b6b3a764000081611f8591906141d9565b6007819055507f53c4eb831d8cfeb750f1c62590d8cd30f4c6f0380d29a05caa09f0d92588560e600754604051611fbc9190613dd7565b60405180910390a150565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a5481565b600e5481565b6120626125b8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e890613ff8565b60405180910390fd5b600b60159054906101000a900460ff1615612141576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213890614855565b60405180910390fd5b80600b60156101000a81548160ff0219169083151502179055506001600b60166101000a81548160ff0219169083151502179055507fe8a59d3db38e5220ac9d0f72590b7ac876e0916dc8f4db3e7614e6f91fe52089600b60159054906101000a900460ff166040516121b49190613d06565b60405180910390a150565b6121c76125b8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612256576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224d90613ff8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036122c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122bc906148e7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60115481565b6123936125b8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612422576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241990613ff8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036124a95761245e61171c565b73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156124a3573d6000803e3d6000fd5b506125b5565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016124e99190613eb8565b602060405180830381865afa158015612506573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061252a919061491c565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61255061171c565b836040518363ffffffff1660e01b815260040161256e929190614949565b6020604051808303816000875af115801561258d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125b19190614987565b5050505b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361262f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161262690614a26565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361269e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161269590614ab8565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161277c9190613dd7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036127f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ef90614b4a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612867576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285e90614bdc565b60405180910390fd5b600081116128aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128a190614c48565b60405180910390fd5b600b60149054906101000a900460ff1615612e59576128c761171c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612935575061290561171c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561296e5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156129a8575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612e5857600b60159054906101000a900460ff16612b1757601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612a625750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612aa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a9890614cb4565b60405180910390fd5b612aa961171c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612b16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b0d90614d20565b60405180910390fd5b5b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612bba5750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612c6157600654811115612c04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bfb90614db2565b60405180910390fd5b600854612c1083611310565b82612c1b9190614047565b1115612c5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c5390614e1e565b60405180910390fd5b612e57565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612d045750601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612d5357600754811115612d4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d4590614eb0565b60405180910390fd5b612e56565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612df75750601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612e5557600854612e0883611310565b82612e139190614047565b1115612e54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e4b90614e1e565b60405180910390fd5b5b5b5b5b5b6000612e6430611310565b90506000600a548210159050808015612e895750600b60169054906101000a900460ff165b8015612ea25750600960009054906101000a900460ff16155b8015612ef85750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612f4e5750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612fa45750601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612fe8576001600960006101000a81548160ff021916908315150217905550612fcc61334f565b6000600960006101000a81548160ff0219169083151502179055505b600060019050601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061308f5750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561309957600090505b6000811561329057601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156130fc57506000600f54115b15613188576064600f548661311191906141d9565b61311b919061424a565b9050600f546011548261312e91906141d9565b613138919061424a565b601360008282546131499190614047565b92505081905550600f546010548261316191906141d9565b61316b919061424a565b6012600082825461317c9190614047565b9250508190555061326c565b601660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156131e357506000600c54115b1561326b576064600c54866131f891906141d9565b613202919061424a565b9050600c54600e548261321591906141d9565b61321f919061424a565b601360008282546132309190614047565b92505081905550600c54600d548261324891906141d9565b613252919061424a565b601260008282546132639190614047565b925050819055505b5b600081111561328157613280873083613505565b5b808561328d9190614ed0565b94505b61329b878787613505565b50505050505050565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550613305828261376e565b8015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600061335a30611310565b9050600060125460135461336e9190614047565b9050600082148061337f5750600081145b1561338b575050613503565b600a805461339991906141d9565b8211156133b157600a80546133ae91906141d9565b91505b600080600283601354866133c591906141d9565b6133cf919061424a565b6133d9919061424a565b90506133ef81856133ea9190614ed0565b613802565b600047905060008190506000600260135461340a919061424a565b866134159190614ed0565b6012548461342391906141d9565b61342d919061424a565b9050808261343b9190614ed0565b91506000601381905550600060128190555060008411801561345d5750600082115b1561346d5761346c8483613a3f565b5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516134b390614f35565b60006040518083038185875af1925050503d80600081146134f0576040519150601f19603f3d011682016040523d82523d6000602084013e6134f5565b606091505b505080955050505050505050505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613574576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161356b90614b4a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036135e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135da90614bdc565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613669576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161366090614fbc565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546136fc9190614047565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516137609190613dd7565b60405180910390a350505050565b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd674682826040516137f6929190614fdc565b60405180910390a15050565b6000600267ffffffffffffffff81111561381f5761381e615005565b5b60405190808252806020026020018201604052801561384d5781602001602082028036833780820191505090505b509050308160008151811061386557613864615034565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561390a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061392e9190615078565b8160018151811061394257613941615034565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506139a7307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846125c0565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613a0995949392919061519e565b600060405180830381600087803b158015613a2357600080fd5b505af1158015613a37573d6000803e3d6000fd5b505050505050565b613a6a307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846125c0565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080613ab461171c565b426040518863ffffffff1660e01b8152600401613ad6969594939291906151f8565b60606040518083038185885af1158015613af4573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613b199190615259565b5050505050565b600080fd5b6000819050919050565b613b3881613b25565b8114613b4357600080fd5b50565b600081359050613b5581613b2f565b92915050565b60008060408385031215613b7257613b71613b20565b5b6000613b8085828601613b46565b9250506020613b9185828601613b46565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613bd5578082015181840152602081019050613bba565b60008484015250505050565b6000601f19601f8301169050919050565b6000613bfd82613b9b565b613c078185613ba6565b9350613c17818560208601613bb7565b613c2081613be1565b840191505092915050565b60006020820190508181036000830152613c458184613bf2565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613c7882613c4d565b9050919050565b613c8881613c6d565b8114613c9357600080fd5b50565b600081359050613ca581613c7f565b92915050565b60008060408385031215613cc257613cc1613b20565b5b6000613cd085828601613c96565b9250506020613ce185828601613b46565b9150509250929050565b60008115159050919050565b613d0081613ceb565b82525050565b6000602082019050613d1b6000830184613cf7565b92915050565b600060208284031215613d3757613d36613b20565b5b6000613d4584828501613c96565b91505092915050565b6000819050919050565b6000613d73613d6e613d6984613c4d565b613d4e565b613c4d565b9050919050565b6000613d8582613d58565b9050919050565b6000613d9782613d7a565b9050919050565b613da781613d8c565b82525050565b6000602082019050613dc26000830184613d9e565b92915050565b613dd181613b25565b82525050565b6000602082019050613dec6000830184613dc8565b92915050565b600080600060608486031215613e0b57613e0a613b20565b5b6000613e1986828701613c96565b9350506020613e2a86828701613c96565b9250506040613e3b86828701613b46565b9150509250925092565b600060208284031215613e5b57613e5a613b20565b5b6000613e6984828501613b46565b91505092915050565b600060ff82169050919050565b613e8881613e72565b82525050565b6000602082019050613ea36000830184613e7f565b92915050565b613eb281613c6d565b82525050565b6000602082019050613ecd6000830184613ea9565b92915050565b613edc81613ceb565b8114613ee757600080fd5b50565b600081359050613ef981613ed3565b92915050565b60008060408385031215613f1657613f15613b20565b5b6000613f2485828601613c96565b9250506020613f3585828601613eea565b9150509250929050565b60008060408385031215613f5657613f55613b20565b5b6000613f6485828601613c96565b9250506020613f7585828601613c96565b9150509250929050565b600060208284031215613f9557613f94613b20565b5b6000613fa384828501613eea565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613fe2602083613ba6565b9150613fed82613fac565b602082019050919050565b6000602082019050818103600083015261401181613fd5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061405282613b25565b915061405d83613b25565b925082820190508082111561407557614074614018565b5b92915050565b7f4d757374206b656570206665657320617420333025206f72206c657373000000600082015250565b60006140b1601d83613ba6565b91506140bc8261407b565b602082019050919050565b600060208201905081810360008301526140e0816140a4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061412e57607f821691505b602082108103614141576141406140e7565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006141a3602883613ba6565b91506141ae82614147565b604082019050919050565b600060208201905081810360008301526141d281614196565b9050919050565b60006141e482613b25565b91506141ef83613b25565b92508282026141fd81613b25565b9150828204841483151761421457614213614018565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061425582613b25565b915061426083613b25565b9250826142705761426f61421b565b5b828204905092915050565b7f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f7765722060008201527f7468616e20302e31250000000000000000000000000000000000000000000000602082015250565b60006142d7602983613ba6565b91506142e28261427b565b604082019050919050565b60006020820190508181036000830152614306816142ca565b9050919050565b7f5f54726561737572794164647265737320616464726573732063616e6e6f742060008201527f6265203000000000000000000000000000000000000000000000000000000000602082015250565b6000614369602483613ba6565b91506143748261430d565b604082019050919050565b600060208201905081810360008301526143988161435c565b9050919050565b7f4d757374206b656570206665657320617420313525206f72206c657373000000600082015250565b60006143d5601d83613ba6565b91506143e08261439f565b602082019050919050565b60006020820190508181036000830152614404816143c8565b9050919050565b7f43616e6e6f742072656d6f766520756e697377617020706169722066726f6d2060008201527f6d61782074786e00000000000000000000000000000000000000000000000000602082015250565b6000614467602783613ba6565b91506144728261440b565b604082019050919050565b600060208201905081810360008301526144968161445a565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b60006144f9603983613ba6565b91506145048261449d565b604082019050919050565b60006020820190508181036000830152614528816144ec565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061458b602583613ba6565b91506145968261452f565b604082019050919050565b600060208201905081810360008301526145ba8161457e565b9050919050565b7f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760008201527f6572207468616e20302e33250000000000000000000000000000000000000000602082015250565b600061461d602c83613ba6565b9150614628826145c1565b604082019050919050565b6000602082019050818103600083015261464c81614610565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b60006146af603583613ba6565b91506146ba82614653565b604082019050919050565b600060208201905081810360008301526146de816146a2565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e312520746f74616c20737570706c792e000000000000000000000000602082015250565b6000614741603483613ba6565b915061474c826146e5565b604082019050919050565b6000602082019050818103600083015261477081614734565b9050919050565b7f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f77657260008201527f207468616e20302e312500000000000000000000000000000000000000000000602082015250565b60006147d3602a83613ba6565b91506147de82614777565b604082019050919050565b60006020820190508181036000830152614802816147c6565b9050919050565b7f43616e6e6f7420726520656e61626c652074726164696e670000000000000000600082015250565b600061483f601883613ba6565b915061484a82614809565b602082019050919050565b6000602082019050818103600083015261486e81614832565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006148d1602683613ba6565b91506148dc82614875565b604082019050919050565b60006020820190508181036000830152614900816148c4565b9050919050565b60008151905061491681613b2f565b92915050565b60006020828403121561493257614931613b20565b5b600061494084828501614907565b91505092915050565b600060408201905061495e6000830185613ea9565b61496b6020830184613dc8565b9392505050565b60008151905061498181613ed3565b92915050565b60006020828403121561499d5761499c613b20565b5b60006149ab84828501614972565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614a10602483613ba6565b9150614a1b826149b4565b604082019050919050565b60006020820190508181036000830152614a3f81614a03565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614aa2602283613ba6565b9150614aad82614a46565b604082019050919050565b60006020820190508181036000830152614ad181614a95565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614b34602583613ba6565b9150614b3f82614ad8565b604082019050919050565b60006020820190508181036000830152614b6381614b27565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614bc6602383613ba6565b9150614bd182614b6a565b604082019050919050565b60006020820190508181036000830152614bf581614bb9565b9050919050565b7f616d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b6000614c32601d83613ba6565b9150614c3d82614bfc565b602082019050919050565b60006020820190508181036000830152614c6181614c25565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000614c9e601683613ba6565b9150614ca982614c68565b602082019050919050565b60006020820190508181036000830152614ccd81614c91565b9050919050565b7f54726164696e6720697320656e61626c65640000000000000000000000000000600082015250565b6000614d0a601283613ba6565b9150614d1582614cd4565b602082019050919050565b60006020820190508181036000830152614d3981614cfd565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d6178206275792e000000000000000000000000000000000000000000000000602082015250565b6000614d9c602883613ba6565b9150614da782614d40565b604082019050919050565b60006020820190508181036000830152614dcb81614d8f565b9050919050565b7f43616e6e6f7420457863656564206d61782077616c6c65740000000000000000600082015250565b6000614e08601883613ba6565b9150614e1382614dd2565b602082019050919050565b60006020820190508181036000830152614e3781614dfb565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61782073656c6c2e00000000000000000000000000000000000000000000602082015250565b6000614e9a602a83613ba6565b9150614ea582614e3e565b604082019050919050565b60006020820190508181036000830152614ec981614e8d565b9050919050565b6000614edb82613b25565b9150614ee683613b25565b9250828203905081811115614efe57614efd614018565b5b92915050565b600081905092915050565b50565b6000614f1f600083614f04565b9150614f2a82614f0f565b600082019050919050565b6000614f4082614f12565b9150819050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614fa6602683613ba6565b9150614fb182614f4a565b604082019050919050565b60006020820190508181036000830152614fd581614f99565b9050919050565b6000604082019050614ff16000830185613ea9565b614ffe6020830184613cf7565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061507281613c7f565b92915050565b60006020828403121561508e5761508d613b20565b5b600061509c84828501615063565b91505092915050565b6000819050919050565b60006150ca6150c56150c0846150a5565b613d4e565b613b25565b9050919050565b6150da816150af565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61511581613c6d565b82525050565b6000615127838361510c565b60208301905092915050565b6000602082019050919050565b600061514b826150e0565b61515581856150eb565b9350615160836150fc565b8060005b83811015615191578151615178888261511b565b975061518383615133565b925050600181019050615164565b5085935050505092915050565b600060a0820190506151b36000830188613dc8565b6151c060208301876150d1565b81810360408301526151d28186615140565b90506151e16060830185613ea9565b6151ee6080830184613dc8565b9695505050505050565b600060c08201905061520d6000830189613ea9565b61521a6020830188613dc8565b61522760408301876150d1565b61523460608301866150d1565b6152416080830185613ea9565b61524e60a0830184613dc8565b979650505050505050565b60008060006060848603121561527257615271613b20565b5b600061528086828701614907565b935050602061529186828701614907565b92505060406152a286828701614907565b915050925092509256fea2646970667358221220f8c495bf5ed2f91c1d746390118934b63f8578b1ddd454921e31893d3aef065364736f6c63430008120033

Deployed Bytecode Sourcemap

7455:14388:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13478:338;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1754:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2734:194;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8342:63;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7602:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2075:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8188:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2936:529;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10903:312;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1974:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3473:290;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7652:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7808:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7769:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7962:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19889:318;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13139:331;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7528:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8037;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8072:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7888:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2191:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6182:150;;;;;;;;;;;;;:::i;:::-;;11592:115;;;;;;;;;;;;;:::i;:::-;;11955:343;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7494:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5968:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1862:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18507:308;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3771:475;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2342:200;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7563:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8563:57;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7848:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13824:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12306:327;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8149:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12703:428;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7928:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11223:317;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2550:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7727:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7998:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19117:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6340:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8109:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21480:360;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13478:338;6105:12;:10;:12::i;:::-;6095:22;;:6;;;;;;;;;;;:22;;;6087:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13620:12:::1;13602:15;:30;;;;13662:13;13643:16;:32;;;;13720:16;;13702:15;;:34;;;;:::i;:::-;13686:13;:50;;;;13772:2;13755:13;;:19;;13747:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;13478:338:::0;;:::o;1754:100::-;1808:13;1841:5;1834:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1754:100;:::o;2734:194::-;2842:4;2859:39;2868:12;:10;:12::i;:::-;2882:7;2891:6;2859:8;:39::i;:::-;2916:4;2909:11;;2734:194;;;;:::o;8342:63::-;;;;;;;;;;;;;;;;;;;;;;:::o;7602:43::-;;;:::o;2075:108::-;2136:7;2163:12;;2156:19;;2075:108;:::o;8188:33::-;;;;:::o;2936:529::-;3076:4;3093:36;3103:6;3111:9;3122:6;3093:9;:36::i;:::-;3142:24;3169:11;:19;3181:6;3169:19;;;;;;;;;;;;;;;:33;3189:12;:10;:12::i;:::-;3169:33;;;;;;;;;;;;;;;;3142:60;;3255:6;3235:16;:26;;3213:116;;;;;;;;;;;;:::i;:::-;;;;;;;;;3365:57;3374:6;3382:12;:10;:12::i;:::-;3415:6;3396:16;:25;3365:8;:57::i;:::-;3453:4;3446:11;;;2936:529;;;;;:::o;10903:312::-;6105:12;:10;:12::i;:::-;6095:22;;:6;;;;;;;;;;;:22;;;6087:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11040:4:::1;11032;11027:1;11011:13;:11;:13::i;:::-;:17;;;;:::i;:::-;11010:26;;;;:::i;:::-;11009:35;;;;:::i;:::-;10999:6;:45;;10977:136;;;;;;;;;;;;:::i;:::-;;;;;;;;;11149:8;11139:6;:19;;;;:::i;:::-;11124:12;:34;;;;11174:33;11194:12;;11174:33;;;;;;:::i;:::-;;;;;;;;10903:312:::0;:::o;1974:93::-;2032:5;2057:2;2050:9;;1974:93;:::o;3473:290::-;3586:4;3603:130;3626:12;:10;:12::i;:::-;3653:7;3712:10;3675:11;:25;3687:12;:10;:12::i;:::-;3675:25;;;;;;;;;;;;;;;:34;3701:7;3675:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;3603:8;:130::i;:::-;3751:4;3744:11;;3473:290;;;;:::o;7652:38::-;;;:::o;7808:33::-;;;;;;;;;;;;;:::o;7769:30::-;;;;;;;;;;;;;:::o;7962:29::-;;;;:::o;19889:318::-;6105:12;:10;:12::i;:::-;6095:22;;:6;;;;;;;;;;;:22;;;6087:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20023:1:::1;19995:30;;:16;:30;;::::0;19973:116:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;20126:16;20100:15;;:43;;;;;;;;;;;;;;;;;;20182:16;20159:40;;;;;;;;;;;;19889:318:::0;:::o;13139:331::-;6105:12;:10;:12::i;:::-;6095:22;;:6;;;;;;;;;;;:22;;;6087:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13279:12:::1;13262:14;:29;;;;13320:13;13302:15;:31;;;;13376:15;;13359:14;;:32;;;;:::i;:::-;13344:12;:47;;;;13426:2;13410:12;;:18;;13402:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;13139:331:::0;;:::o;7528:28::-;;;;:::o;8037:::-;;;;:::o;8072:30::-;;;;:::o;7888:31::-;;;;;;;;;;;;;:::o;2191:143::-;2281:7;2308:9;:18;2318:7;2308:18;;;;;;;;;;;;;;;;2301:25;;2191:143;;;:::o;6182:150::-;6105:12;:10;:12::i;:::-;6095:22;;:6;;;;;;;;;;;:22;;;6087:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6291:1:::1;6254:40;;6275:6;;;;;;;;;;;6254:40;;;;;;;;;;;;6322:1;6305:6;;:19;;;;;;;;;;;;;;;;;;6182:150::o:0;11592:115::-;6105:12;:10;:12::i;:::-;6095:22;;:6;;;;;;;;;;;:22;;;6087:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11663:5:::1;11646:14;;:22;;;;;;;;;;;;;;;;;;11684:15;;;;;;;;;;11592:115::o:0;11955:343::-;6105:12;:10;:12::i;:::-;6095:22;;:6;;;;;;;;;;;:22;;;6087:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12077:4:::1;12072:162;;12134:13;12124:23;;:6;:23;;::::0;12098:124:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;12072:162;12286:4;12244:31;:39;12276:6;12244:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;11955:343:::0;;:::o;7494:27::-;;;;:::o;5968:79::-;6006:7;6033:6;;;;;;;;;;;6026:13;;5968:79;:::o;1862:104::-;1918:13;1951:7;1944:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1862:104;:::o;18507:308::-;6105:12;:10;:12::i;:::-;6095:22;;:6;;;;;;;;;;;:22;;;6087:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18655:13:::1;18647:21;;:4;:21;;::::0;18625:128:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18766:41;18795:4;18801:5;18766:28;:41::i;:::-;18507:308:::0;;:::o;3771:475::-;3889:4;3906:24;3933:11;:25;3945:12;:10;:12::i;:::-;3933:25;;;;;;;;;;;;;;;:34;3959:7;3933:34;;;;;;;;;;;;;;;;3906:61;;4020:15;4000:16;:35;;3978:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;4136:67;4145:12;:10;:12::i;:::-;4159:7;4187:15;4168:16;:34;4136:8;:67::i;:::-;4234:4;4227:11;;;3771:475;;;;:::o;2342:200::-;2453:4;2470:42;2480:12;:10;:12::i;:::-;2494:9;2505:6;2470:9;:42::i;:::-;2530:4;2523:11;;2342:200;;;;:::o;7563:30::-;;;;:::o;8563:57::-;;;;;;;;;;;;;;;;;;;;;;:::o;7848:33::-;;;;;;;;;;;;;:::o;13824:182::-;6105:12;:10;:12::i;:::-;6095:22;;:6;;;;;;;;;;;:22;;;6087:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13940:8:::1;13909:19;:28;13929:7;13909:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;13980:7;13964:34;;;13989:8;13964:34;;;;;;:::i;:::-;;;;;;;;13824:182:::0;;:::o;12306:327::-;6105:12;:10;:12::i;:::-;6095:22;;:6;;;;;;;;;;;:22;;;6087:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12446:4:::1;12438;12433:1;12417:13;:11;:13::i;:::-;:17;;;;:::i;:::-;12416:26;;;;:::i;:::-;12415:35;;;;:::i;:::-;12405:6;:45;;12383:139;;;;;;;;;;;;:::i;:::-;;;;;;;;;12561:8;12551:6;:19;;;;:::i;:::-;12533:15;:37;;;;12586:39;12609:15;;12586:39;;;;;;:::i;:::-;;;;;;;;12306:327:::0;:::o;8149:32::-;;;;:::o;12703:428::-;6105:12;:10;:12::i;:::-;6095:22;;:6;;;;;;;;;;;:22;;;6087:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12843:6:::1;12838:1;12822:13;:11;:13::i;:::-;:17;;;;:::i;:::-;12821:28;;;;:::i;:::-;12808:9;:41;;12786:144;;;;;;;;;;;;:::i;:::-;;;;;;;;;12998:4;12993:1;12977:13;:11;:13::i;:::-;:17;;;;:::i;:::-;12976:26;;;;:::i;:::-;12963:9;:39;;12941:141;;;;;;;;;;;;:::i;:::-;;;;;;;;;13114:9;13093:18;:30;;;;12703:428:::0;:::o;7928:27::-;;;;:::o;11223:317::-;6105:12;:10;:12::i;:::-;6095:22;;:6;;;;;;;;;;;:22;;;6087:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11361:4:::1;11353;11348:1;11332:13;:11;:13::i;:::-;:17;;;;:::i;:::-;11331:26;;;;:::i;:::-;11330:35;;;;:::i;:::-;11320:6;:45;;11298:137;;;;;;;;;;;;:::i;:::-;;;;;;;;;11472:8;11462:6;:19;;;;:::i;:::-;11446:13;:35;;;;11497;11518:13;;11497:35;;;;;;:::i;:::-;;;;;;;;11223:317:::0;:::o;2550:176::-;2664:7;2691:11;:18;2703:5;2691:18;;;;;;;;;;;;;;;:27;2710:7;2691:27;;;;;;;;;;;;;;;;2684:34;;2550:176;;;;:::o;7727:33::-;;;;:::o;7998:30::-;;;;:::o;19117:234::-;6105:12;:10;:12::i;:::-;6095:22;;:6;;;;;;;;;;;:22;;;6087:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19193:13:::1;;;;;;;;;;;19192:14;19184:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;19262:7;19246:13;;:23;;;;;;;;;;;;;;;;;;19294:4;19280:11;;:18;;;;;;;;;;;;;;;;;;19314:29;19329:13;;;;;;;;;;;19314:29;;;;;;:::i;:::-;;;;;;;;19117:234:::0;:::o;6340:281::-;6105:12;:10;:12::i;:::-;6095:22;;:6;;;;;;;;;;;:22;;;6087:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6463:1:::1;6443:22;;:8;:22;;::::0;6421:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6576:8;6547:38;;6568:6;;;;;;;;;;;6547:38;;;;;;;;;;;;6605:8;6596:6;;:17;;;;;;;;;;;;;;;;;;6340:281:::0;:::o;8109:31::-;;;;:::o;21480:360::-;6105:12;:10;:12::i;:::-;6095:22;;:6;;;;;;;;;;;:22;;;6087:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21574:3:::1;21556:22;;:6;:22;;::::0;21552:124:::1;;21603:7;:5;:7::i;:::-;21595:25;;:48;21621:21;21595:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;21658:7;;21552:124;21686:17;21713:6;21686:34;;21731:15;21749:10;:20;;;21778:4;21749:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21731:53;;21795:10;:19;;;21815:7;:5;:7::i;:::-;21824;21795:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21541:299;;6165:1;21480:360:::0;:::o;93:98::-;146:7;173:10;166:17;;93:98;:::o;5237:380::-;5390:1;5373:19;;:5;:19;;;5365:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5471:1;5452:21;;:7;:21;;;5444:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5555:6;5525:11;:18;5537:5;5525:18;;;;;;;;;;;;;;;:27;5544:7;5525:27;;;;;;;;;;;;;;;:36;;;;5593:7;5577:32;;5586:5;5577:32;;;5602:6;5577:32;;;;;;:::i;:::-;;;;;;;;5237:380;;;:::o;14014:3888::-;14162:1;14146:18;;:4;:18;;;14138:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14239:1;14225:16;;:2;:16;;;14217:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;14309:1;14300:6;:10;14292:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;14361:14;;;;;;;;;;;14357:1871;;;14422:7;:5;:7::i;:::-;14414:15;;:4;:15;;;;:49;;;;;14456:7;:5;:7::i;:::-;14450:13;;:2;:13;;;;14414:49;:86;;;;;14498:1;14484:16;;:2;:16;;;;14414:86;:128;;;;;14535:6;14521:21;;:2;:21;;;;14414:128;14392:1825;;;14582:13;;;;;;;;;;;14577:345;;14654:31;:37;14686:4;14654:37;;;;;;;;;;;;;;;;;;;;;;;;;:105;;;;14724:31;:35;14756:2;14724:35;;;;;;;;;;;;;;;;;;;;;;;;;14654:105;14620:213;;;;;;;;;;;;:::i;:::-;;;;;;;;;14872:7;:5;:7::i;:::-;14864:15;;:4;:15;;;14856:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;14577:345;14996:25;:31;15022:4;14996:31;;;;;;;;;;;;;;;;;;;;;;;;;:92;;;;;15053:31;:35;15085:2;15053:35;;;;;;;;;;;;;;;;;;;;;;;;;15052:36;14996:92;14970:1232;;;15175:12;;15165:6;:22;;15131:148;;;;;;;;;;;;:::i;:::-;;;;;;;;;15362:15;;15345:13;15355:2;15345:9;:13::i;:::-;15336:6;:22;;;;:::i;:::-;:41;;15302:151;;;;;;;;;;;;:::i;:::-;;;;;;;;;14970:1232;;;15551:25;:29;15577:2;15551:29;;;;;;;;;;;;;;;;;;;;;;;;;:92;;;;;15606:31;:37;15638:4;15606:37;;;;;;;;;;;;;;;;;;;;;;;;;15605:38;15551:92;15525:677;;;15730:13;;15720:6;:23;;15686:151;;;;;;;;;;;;:::i;:::-;;;;;;;;;15525:677;;;15890:31;:35;15922:2;15890:35;;;;;;;;;;;;;;;;;;;;;;;;;15889:36;:99;;;;;15951:31;:37;15983:4;15951:37;;;;;;;;;;;;;;;;;;;;;;;;;15950:38;15889:99;15863:339;;;16091:15;;16074:13;16084:2;16074:9;:13::i;:::-;16065:6;:22;;;;:::i;:::-;:41;;16031:151;;;;;;;;;;;;:::i;:::-;;;;;;;;;15863:339;15525:677;14970:1232;14392:1825;14357:1871;16240:28;16271:24;16289:4;16271:9;:24::i;:::-;16240:55;;16308:12;16347:18;;16323:20;:42;;16308:57;;16396:7;:35;;;;;16420:11;;;;;;;;;;;16396:35;:61;;;;;16449:8;;;;;;;;;;;16448:9;16396:61;:110;;;;;16475:25;:31;16501:4;16475:31;;;;;;;;;;;;;;;;;;;;;;;;;16474:32;16396:110;:153;;;;;16524:19;:25;16544:4;16524:25;;;;;;;;;;;;;;;;;;;;;;;;;16523:26;16396:153;:194;;;;;16567:19;:23;16587:2;16567:23;;;;;;;;;;;;;;;;;;;;;;;;;16566:24;16396:194;16378:322;;;16628:4;16617:8;;:15;;;;;;;;;;;;;;;;;;16647:10;:8;:10::i;:::-;16683:5;16672:8;;:16;;;;;;;;;;;;;;;;;;16378:322;16712:12;16727:4;16712:19;;16831;:25;16851:4;16831:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;16860:19;:23;16880:2;16860:23;;;;;;;;;;;;;;;;;;;;;;;;;16831:52;16827:100;;;16910:5;16900:15;;16827:100;16939:12;17034:7;17030:819;;;17086:25;:29;17112:2;17086:29;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;17135:1;17119:13;;:17;17086:50;17082:618;;;17191:3;17174:13;;17165:6;:22;;;;:::i;:::-;17164:30;;;;:::i;:::-;17157:37;;17263:13;;17243:16;;17236:4;:23;;;;:::i;:::-;17235:41;;;;:::i;:::-;17213:18;;:63;;;;;;;:::i;:::-;;;;;;;;17343:13;;17324:15;;17317:4;:22;;;;:::i;:::-;17316:40;;;;:::i;:::-;17295:17;;:61;;;;;;;:::i;:::-;;;;;;;;17082:618;;;17418:25;:31;17444:4;17418:31;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;17468:1;17453:12;;:16;17418:51;17414:286;;;17523:3;17507:12;;17498:6;:21;;;;:::i;:::-;17497:29;;;;:::i;:::-;17490:36;;17594:12;;17575:15;;17568:4;:22;;;;:::i;:::-;17567:39;;;;:::i;:::-;17545:18;;:61;;;;;;;:::i;:::-;;;;;;;;17672:12;;17654:14;;17647:4;:21;;;;:::i;:::-;17646:38;;;;:::i;:::-;17625:17;;:59;;;;;;;:::i;:::-;;;;;;;;17414:286;17082:618;17727:1;17720:4;:8;17716:91;;;17749:42;17765:4;17779;17786;17749:15;:42::i;:::-;17716:91;17833:4;17823:14;;;;;:::i;:::-;;;17030:819;17861:33;17877:4;17883:2;17887:6;17861:15;:33::i;:::-;14127:3775;;;;14014:3888;;;:::o;18823:240::-;18940:5;18906:25;:31;18932:4;18906:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;18958;18985:4;18991:5;18958:26;:39::i;:::-;19049:5;19015:40;;19043:4;19015:40;;;;;;;;;;;;18823:240;;:::o;20215:1257::-;20254:23;20280:24;20298:4;20280:9;:24::i;:::-;20254:50;;20315:25;20364:17;;20343:18;;:38;;;;:::i;:::-;20315:66;;20417:1;20398:15;:20;:46;;;;20443:1;20422:17;:22;20398:46;20394:85;;;20461:7;;;;20394:85;20534:2;20513:18;;:23;;;;:::i;:::-;20495:15;:41;20491:115;;;20592:2;20571:18;;:23;;;;:::i;:::-;20553:41;;20491:115;20618:12;20692:23;20805:1;20772:17;20737:18;;20719:15;:36;;;;:::i;:::-;20718:71;;;;:::i;:::-;:88;;;;:::i;:::-;20692:114;;20819:51;20854:15;20836;:33;;;;:::i;:::-;20819:16;:51::i;:::-;20883:18;20904:21;20883:42;;20936:23;20962:10;20936:36;;20985:22;21101:1;21080:18;;:22;;;;:::i;:::-;21059:17;:44;;;;:::i;:::-;21024:17;;21011:10;:30;;;;:::i;:::-;21010:94;;;;:::i;:::-;20985:119;;21136:14;21117:33;;;;;:::i;:::-;;;21184:1;21163:18;:22;;;;21216:1;21196:17;:21;;;;21252:1;21234:15;:19;:42;;;;;21275:1;21257:15;:19;21234:42;21230:121;;;21293:46;21306:15;21323;21293:12;:46::i;:::-;21230:121;21385:15;;;;;;;;;;;21377:29;;21428:21;21377:87;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21363:101;;;;;20243:1229;;;;;;;20215:1257;:::o;4254:651::-;4412:1;4394:20;;:6;:20;;;4386:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;4496:1;4475:23;;:9;:23;;;4467:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;4551:21;4575:9;:17;4585:6;4575:17;;;;;;;;;;;;;;;;4551:41;;4642:6;4625:13;:23;;4603:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;4786:6;4770:13;:22;4750:9;:17;4760:6;4750:17;;;;;;;;;;;;;;;:42;;;;4838:6;4814:9;:20;4824:9;4814:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;4879:9;4862:35;;4871:6;4862:35;;;4890:6;4862:35;;;;;;:::i;:::-;;;;;;;;4375:530;4254:651;;;:::o;11715:232::-;11870:10;11828:31;:39;11860:6;11828:39;;;;;;;;;;;;;;;;:52;;;;;;;;;;;;;;;;;;11896:43;11920:6;11928:10;11896:43;;;;;;;:::i;:::-;;;;;;;;11715:232;;:::o;17910:589::-;18036:21;18074:1;18060:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18036:40;;18105:4;18087;18092:1;18087:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;18131:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18121:4;18126:1;18121:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;18166:62;18183:4;18198:15;18216:11;18166:8;:62::i;:::-;18267:15;:66;;;18348:11;18374:1;18418:4;18445;18465:15;18267:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17965:534;17910:589;:::o;19359:522::-;19507:62;19524:4;19539:15;19557:11;19507:8;:62::i;:::-;19612:15;:31;;;19651:9;19684:4;19704:11;19730:1;19773;19824:7;:5;:7::i;:::-;19847:15;19612:261;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19359:522;;:::o;88:117:1:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:474::-;758:6;766;815:2;803:9;794:7;790:23;786:32;783:119;;;821:79;;:::i;:::-;783:119;941:1;966:53;1011:7;1002:6;991:9;987:22;966:53;:::i;:::-;956:63;;912:117;1068:2;1094:53;1139:7;1130:6;1119:9;1115:22;1094:53;:::i;:::-;1084:63;;1039:118;690:474;;;;;:::o;1170:99::-;1222:6;1256:5;1250:12;1240:22;;1170:99;;;:::o;1275:169::-;1359:11;1393:6;1388:3;1381:19;1433:4;1428:3;1424:14;1409:29;;1275:169;;;;:::o;1450:246::-;1531:1;1541:113;1555:6;1552:1;1549:13;1541:113;;;1640:1;1635:3;1631:11;1625:18;1621:1;1616:3;1612:11;1605:39;1577:2;1574:1;1570:10;1565:15;;1541:113;;;1688:1;1679:6;1674:3;1670:16;1663:27;1512:184;1450:246;;;:::o;1702:102::-;1743:6;1794:2;1790:7;1785:2;1778:5;1774:14;1770:28;1760:38;;1702:102;;;:::o;1810:377::-;1898:3;1926:39;1959:5;1926:39;:::i;:::-;1981:71;2045:6;2040:3;1981:71;:::i;:::-;1974:78;;2061:65;2119:6;2114:3;2107:4;2100:5;2096:16;2061:65;:::i;:::-;2151:29;2173:6;2151:29;:::i;:::-;2146:3;2142:39;2135:46;;1902:285;1810:377;;;;:::o;2193:313::-;2306:4;2344:2;2333:9;2329:18;2321:26;;2393:9;2387:4;2383:20;2379:1;2368:9;2364:17;2357:47;2421:78;2494:4;2485:6;2421:78;:::i;:::-;2413:86;;2193:313;;;;:::o;2512:126::-;2549:7;2589:42;2582:5;2578:54;2567:65;;2512:126;;;:::o;2644:96::-;2681:7;2710:24;2728:5;2710:24;:::i;:::-;2699:35;;2644:96;;;:::o;2746:122::-;2819:24;2837:5;2819:24;:::i;:::-;2812:5;2809:35;2799:63;;2858:1;2855;2848:12;2799:63;2746:122;:::o;2874:139::-;2920:5;2958:6;2945:20;2936:29;;2974:33;3001:5;2974:33;:::i;:::-;2874:139;;;;:::o;3019:474::-;3087:6;3095;3144:2;3132:9;3123:7;3119:23;3115:32;3112:119;;;3150:79;;:::i;:::-;3112:119;3270:1;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3241:117;3397:2;3423:53;3468:7;3459:6;3448:9;3444:22;3423:53;:::i;:::-;3413:63;;3368:118;3019:474;;;;;:::o;3499:90::-;3533:7;3576:5;3569:13;3562:21;3551:32;;3499:90;;;:::o;3595:109::-;3676:21;3691:5;3676:21;:::i;:::-;3671:3;3664:34;3595:109;;:::o;3710:210::-;3797:4;3835:2;3824:9;3820:18;3812:26;;3848:65;3910:1;3899:9;3895:17;3886:6;3848:65;:::i;:::-;3710:210;;;;:::o;3926:329::-;3985:6;4034:2;4022:9;4013:7;4009:23;4005:32;4002:119;;;4040:79;;:::i;:::-;4002:119;4160:1;4185:53;4230:7;4221:6;4210:9;4206:22;4185:53;:::i;:::-;4175:63;;4131:117;3926:329;;;;:::o;4261:60::-;4289:3;4310:5;4303:12;;4261:60;;;:::o;4327:142::-;4377:9;4410:53;4428:34;4437:24;4455:5;4437:24;:::i;:::-;4428:34;:::i;:::-;4410:53;:::i;:::-;4397:66;;4327:142;;;:::o;4475:126::-;4525:9;4558:37;4589:5;4558:37;:::i;:::-;4545:50;;4475:126;;;:::o;4607:144::-;4675:9;4708:37;4739:5;4708:37;:::i;:::-;4695:50;;4607:144;;;:::o;4757:167::-;4862:55;4911:5;4862:55;:::i;:::-;4857:3;4850:68;4757:167;;:::o;4930:258::-;5041:4;5079:2;5068:9;5064:18;5056:26;;5092:89;5178:1;5167:9;5163:17;5154:6;5092:89;:::i;:::-;4930:258;;;;:::o;5194:118::-;5281:24;5299:5;5281:24;:::i;:::-;5276:3;5269:37;5194:118;;:::o;5318:222::-;5411:4;5449:2;5438:9;5434:18;5426:26;;5462:71;5530:1;5519:9;5515:17;5506:6;5462:71;:::i;:::-;5318:222;;;;:::o;5546:619::-;5623:6;5631;5639;5688:2;5676:9;5667:7;5663:23;5659:32;5656:119;;;5694:79;;:::i;:::-;5656:119;5814:1;5839:53;5884:7;5875:6;5864:9;5860:22;5839:53;:::i;:::-;5829:63;;5785:117;5941:2;5967:53;6012:7;6003:6;5992:9;5988:22;5967:53;:::i;:::-;5957:63;;5912:118;6069:2;6095:53;6140:7;6131:6;6120:9;6116:22;6095:53;:::i;:::-;6085:63;;6040:118;5546:619;;;;;:::o;6171:329::-;6230:6;6279:2;6267:9;6258:7;6254:23;6250:32;6247:119;;;6285:79;;:::i;:::-;6247:119;6405:1;6430:53;6475:7;6466:6;6455:9;6451:22;6430:53;:::i;:::-;6420:63;;6376:117;6171:329;;;;:::o;6506:86::-;6541:7;6581:4;6574:5;6570:16;6559:27;;6506:86;;;:::o;6598:112::-;6681:22;6697:5;6681:22;:::i;:::-;6676:3;6669:35;6598:112;;:::o;6716:214::-;6805:4;6843:2;6832:9;6828:18;6820:26;;6856:67;6920:1;6909:9;6905:17;6896:6;6856:67;:::i;:::-;6716:214;;;;:::o;6936:118::-;7023:24;7041:5;7023:24;:::i;:::-;7018:3;7011:37;6936:118;;:::o;7060:222::-;7153:4;7191:2;7180:9;7176:18;7168:26;;7204:71;7272:1;7261:9;7257:17;7248:6;7204:71;:::i;:::-;7060:222;;;;:::o;7288:116::-;7358:21;7373:5;7358:21;:::i;:::-;7351:5;7348:32;7338:60;;7394:1;7391;7384:12;7338:60;7288:116;:::o;7410:133::-;7453:5;7491:6;7478:20;7469:29;;7507:30;7531:5;7507:30;:::i;:::-;7410:133;;;;:::o;7549:468::-;7614:6;7622;7671:2;7659:9;7650:7;7646:23;7642:32;7639:119;;;7677:79;;:::i;:::-;7639:119;7797:1;7822:53;7867:7;7858:6;7847:9;7843:22;7822:53;:::i;:::-;7812:63;;7768:117;7924:2;7950:50;7992:7;7983:6;7972:9;7968:22;7950:50;:::i;:::-;7940:60;;7895:115;7549:468;;;;;:::o;8023:474::-;8091:6;8099;8148:2;8136:9;8127:7;8123:23;8119:32;8116:119;;;8154:79;;:::i;:::-;8116:119;8274:1;8299:53;8344:7;8335:6;8324:9;8320:22;8299:53;:::i;:::-;8289:63;;8245:117;8401:2;8427:53;8472:7;8463:6;8452:9;8448:22;8427:53;:::i;:::-;8417:63;;8372:118;8023:474;;;;;:::o;8503:323::-;8559:6;8608:2;8596:9;8587:7;8583:23;8579:32;8576:119;;;8614:79;;:::i;:::-;8576:119;8734:1;8759:50;8801:7;8792:6;8781:9;8777:22;8759:50;:::i;:::-;8749:60;;8705:114;8503:323;;;;:::o;8832:182::-;8972:34;8968:1;8960:6;8956:14;8949:58;8832:182;:::o;9020:366::-;9162:3;9183:67;9247:2;9242:3;9183:67;:::i;:::-;9176:74;;9259:93;9348:3;9259:93;:::i;:::-;9377:2;9372:3;9368:12;9361:19;;9020:366;;;:::o;9392:419::-;9558:4;9596:2;9585:9;9581:18;9573:26;;9645:9;9639:4;9635:20;9631:1;9620:9;9616:17;9609:47;9673:131;9799:4;9673:131;:::i;:::-;9665:139;;9392:419;;;:::o;9817:180::-;9865:77;9862:1;9855:88;9962:4;9959:1;9952:15;9986:4;9983:1;9976:15;10003:191;10043:3;10062:20;10080:1;10062:20;:::i;:::-;10057:25;;10096:20;10114:1;10096:20;:::i;:::-;10091:25;;10139:1;10136;10132:9;10125:16;;10160:3;10157:1;10154:10;10151:36;;;10167:18;;:::i;:::-;10151:36;10003:191;;;;:::o;10200:179::-;10340:31;10336:1;10328:6;10324:14;10317:55;10200:179;:::o;10385:366::-;10527:3;10548:67;10612:2;10607:3;10548:67;:::i;:::-;10541:74;;10624:93;10713:3;10624:93;:::i;:::-;10742:2;10737:3;10733:12;10726:19;;10385:366;;;:::o;10757:419::-;10923:4;10961:2;10950:9;10946:18;10938:26;;11010:9;11004:4;11000:20;10996:1;10985:9;10981:17;10974:47;11038:131;11164:4;11038:131;:::i;:::-;11030:139;;10757:419;;;:::o;11182:180::-;11230:77;11227:1;11220:88;11327:4;11324:1;11317:15;11351:4;11348:1;11341:15;11368:320;11412:6;11449:1;11443:4;11439:12;11429:22;;11496:1;11490:4;11486:12;11517:18;11507:81;;11573:4;11565:6;11561:17;11551:27;;11507:81;11635:2;11627:6;11624:14;11604:18;11601:38;11598:84;;11654:18;;:::i;:::-;11598:84;11419:269;11368:320;;;:::o;11694:227::-;11834:34;11830:1;11822:6;11818:14;11811:58;11903:10;11898:2;11890:6;11886:15;11879:35;11694:227;:::o;11927:366::-;12069:3;12090:67;12154:2;12149:3;12090:67;:::i;:::-;12083:74;;12166:93;12255:3;12166:93;:::i;:::-;12284:2;12279:3;12275:12;12268:19;;11927:366;;;:::o;12299:419::-;12465:4;12503:2;12492:9;12488:18;12480:26;;12552:9;12546:4;12542:20;12538:1;12527:9;12523:17;12516:47;12580:131;12706:4;12580:131;:::i;:::-;12572:139;;12299:419;;;:::o;12724:410::-;12764:7;12787:20;12805:1;12787:20;:::i;:::-;12782:25;;12821:20;12839:1;12821:20;:::i;:::-;12816:25;;12876:1;12873;12869:9;12898:30;12916:11;12898:30;:::i;:::-;12887:41;;13077:1;13068:7;13064:15;13061:1;13058:22;13038:1;13031:9;13011:83;12988:139;;13107:18;;:::i;:::-;12988:139;12772:362;12724:410;;;;:::o;13140:180::-;13188:77;13185:1;13178:88;13285:4;13282:1;13275:15;13309:4;13306:1;13299:15;13326:185;13366:1;13383:20;13401:1;13383:20;:::i;:::-;13378:25;;13417:20;13435:1;13417:20;:::i;:::-;13412:25;;13456:1;13446:35;;13461:18;;:::i;:::-;13446:35;13503:1;13500;13496:9;13491:14;;13326:185;;;;:::o;13517:228::-;13657:34;13653:1;13645:6;13641:14;13634:58;13726:11;13721:2;13713:6;13709:15;13702:36;13517:228;:::o;13751:366::-;13893:3;13914:67;13978:2;13973:3;13914:67;:::i;:::-;13907:74;;13990:93;14079:3;13990:93;:::i;:::-;14108:2;14103:3;14099:12;14092:19;;13751:366;;;:::o;14123:419::-;14289:4;14327:2;14316:9;14312:18;14304:26;;14376:9;14370:4;14366:20;14362:1;14351:9;14347:17;14340:47;14404:131;14530:4;14404:131;:::i;:::-;14396:139;;14123:419;;;:::o;14548:223::-;14688:34;14684:1;14676:6;14672:14;14665:58;14757:6;14752:2;14744:6;14740:15;14733:31;14548:223;:::o;14777:366::-;14919:3;14940:67;15004:2;14999:3;14940:67;:::i;:::-;14933:74;;15016:93;15105:3;15016:93;:::i;:::-;15134:2;15129:3;15125:12;15118:19;;14777:366;;;:::o;15149:419::-;15315:4;15353:2;15342:9;15338:18;15330:26;;15402:9;15396:4;15392:20;15388:1;15377:9;15373:17;15366:47;15430:131;15556:4;15430:131;:::i;:::-;15422:139;;15149:419;;;:::o;15574:179::-;15714:31;15710:1;15702:6;15698:14;15691:55;15574:179;:::o;15759:366::-;15901:3;15922:67;15986:2;15981:3;15922:67;:::i;:::-;15915:74;;15998:93;16087:3;15998:93;:::i;:::-;16116:2;16111:3;16107:12;16100:19;;15759:366;;;:::o;16131:419::-;16297:4;16335:2;16324:9;16320:18;16312:26;;16384:9;16378:4;16374:20;16370:1;16359:9;16355:17;16348:47;16412:131;16538:4;16412:131;:::i;:::-;16404:139;;16131:419;;;:::o;16556:226::-;16696:34;16692:1;16684:6;16680:14;16673:58;16765:9;16760:2;16752:6;16748:15;16741:34;16556:226;:::o;16788:366::-;16930:3;16951:67;17015:2;17010:3;16951:67;:::i;:::-;16944:74;;17027:93;17116:3;17027:93;:::i;:::-;17145:2;17140:3;17136:12;17129:19;;16788:366;;;:::o;17160:419::-;17326:4;17364:2;17353:9;17349:18;17341:26;;17413:9;17407:4;17403:20;17399:1;17388:9;17384:17;17377:47;17441:131;17567:4;17441:131;:::i;:::-;17433:139;;17160:419;;;:::o;17585:244::-;17725:34;17721:1;17713:6;17709:14;17702:58;17794:27;17789:2;17781:6;17777:15;17770:52;17585:244;:::o;17835:366::-;17977:3;17998:67;18062:2;18057:3;17998:67;:::i;:::-;17991:74;;18074:93;18163:3;18074:93;:::i;:::-;18192:2;18187:3;18183:12;18176:19;;17835:366;;;:::o;18207:419::-;18373:4;18411:2;18400:9;18396:18;18388:26;;18460:9;18454:4;18450:20;18446:1;18435:9;18431:17;18424:47;18488:131;18614:4;18488:131;:::i;:::-;18480:139;;18207:419;;;:::o;18632:224::-;18772:34;18768:1;18760:6;18756:14;18749:58;18841:7;18836:2;18828:6;18824:15;18817:32;18632:224;:::o;18862:366::-;19004:3;19025:67;19089:2;19084:3;19025:67;:::i;:::-;19018:74;;19101:93;19190:3;19101:93;:::i;:::-;19219:2;19214:3;19210:12;19203:19;;18862:366;;;:::o;19234:419::-;19400:4;19438:2;19427:9;19423:18;19415:26;;19487:9;19481:4;19477:20;19473:1;19462:9;19458:17;19451:47;19515:131;19641:4;19515:131;:::i;:::-;19507:139;;19234:419;;;:::o;19659:231::-;19799:34;19795:1;19787:6;19783:14;19776:58;19868:14;19863:2;19855:6;19851:15;19844:39;19659:231;:::o;19896:366::-;20038:3;20059:67;20123:2;20118:3;20059:67;:::i;:::-;20052:74;;20135:93;20224:3;20135:93;:::i;:::-;20253:2;20248:3;20244:12;20237:19;;19896:366;;;:::o;20268:419::-;20434:4;20472:2;20461:9;20457:18;20449:26;;20521:9;20515:4;20511:20;20507:1;20496:9;20492:17;20485:47;20549:131;20675:4;20549:131;:::i;:::-;20541:139;;20268:419;;;:::o;20693:240::-;20833:34;20829:1;20821:6;20817:14;20810:58;20902:23;20897:2;20889:6;20885:15;20878:48;20693:240;:::o;20939:366::-;21081:3;21102:67;21166:2;21161:3;21102:67;:::i;:::-;21095:74;;21178:93;21267:3;21178:93;:::i;:::-;21296:2;21291:3;21287:12;21280:19;;20939:366;;;:::o;21311:419::-;21477:4;21515:2;21504:9;21500:18;21492:26;;21564:9;21558:4;21554:20;21550:1;21539:9;21535:17;21528:47;21592:131;21718:4;21592:131;:::i;:::-;21584:139;;21311:419;;;:::o;21736:239::-;21876:34;21872:1;21864:6;21860:14;21853:58;21945:22;21940:2;21932:6;21928:15;21921:47;21736:239;:::o;21981:366::-;22123:3;22144:67;22208:2;22203:3;22144:67;:::i;:::-;22137:74;;22220:93;22309:3;22220:93;:::i;:::-;22338:2;22333:3;22329:12;22322:19;;21981:366;;;:::o;22353:419::-;22519:4;22557:2;22546:9;22542:18;22534:26;;22606:9;22600:4;22596:20;22592:1;22581:9;22577:17;22570:47;22634:131;22760:4;22634:131;:::i;:::-;22626:139;;22353:419;;;:::o;22778:229::-;22918:34;22914:1;22906:6;22902:14;22895:58;22987:12;22982:2;22974:6;22970:15;22963:37;22778:229;:::o;23013:366::-;23155:3;23176:67;23240:2;23235:3;23176:67;:::i;:::-;23169:74;;23252:93;23341:3;23252:93;:::i;:::-;23370:2;23365:3;23361:12;23354:19;;23013:366;;;:::o;23385:419::-;23551:4;23589:2;23578:9;23574:18;23566:26;;23638:9;23632:4;23628:20;23624:1;23613:9;23609:17;23602:47;23666:131;23792:4;23666:131;:::i;:::-;23658:139;;23385:419;;;:::o;23810:174::-;23950:26;23946:1;23938:6;23934:14;23927:50;23810:174;:::o;23990:366::-;24132:3;24153:67;24217:2;24212:3;24153:67;:::i;:::-;24146:74;;24229:93;24318:3;24229:93;:::i;:::-;24347:2;24342:3;24338:12;24331:19;;23990:366;;;:::o;24362:419::-;24528:4;24566:2;24555:9;24551:18;24543:26;;24615:9;24609:4;24605:20;24601:1;24590:9;24586:17;24579:47;24643:131;24769:4;24643:131;:::i;:::-;24635:139;;24362:419;;;:::o;24787:225::-;24927:34;24923:1;24915:6;24911:14;24904:58;24996:8;24991:2;24983:6;24979:15;24972:33;24787:225;:::o;25018:366::-;25160:3;25181:67;25245:2;25240:3;25181:67;:::i;:::-;25174:74;;25257:93;25346:3;25257:93;:::i;:::-;25375:2;25370:3;25366:12;25359:19;;25018:366;;;:::o;25390:419::-;25556:4;25594:2;25583:9;25579:18;25571:26;;25643:9;25637:4;25633:20;25629:1;25618:9;25614:17;25607:47;25671:131;25797:4;25671:131;:::i;:::-;25663:139;;25390:419;;;:::o;25815:143::-;25872:5;25903:6;25897:13;25888:22;;25919:33;25946:5;25919:33;:::i;:::-;25815:143;;;;:::o;25964:351::-;26034:6;26083:2;26071:9;26062:7;26058:23;26054:32;26051:119;;;26089:79;;:::i;:::-;26051:119;26209:1;26234:64;26290:7;26281:6;26270:9;26266:22;26234:64;:::i;:::-;26224:74;;26180:128;25964:351;;;;:::o;26321:332::-;26442:4;26480:2;26469:9;26465:18;26457:26;;26493:71;26561:1;26550:9;26546:17;26537:6;26493:71;:::i;:::-;26574:72;26642:2;26631:9;26627:18;26618:6;26574:72;:::i;:::-;26321:332;;;;;:::o;26659:137::-;26713:5;26744:6;26738:13;26729:22;;26760:30;26784:5;26760:30;:::i;:::-;26659:137;;;;:::o;26802:345::-;26869:6;26918:2;26906:9;26897:7;26893:23;26889:32;26886:119;;;26924:79;;:::i;:::-;26886:119;27044:1;27069:61;27122:7;27113:6;27102:9;27098:22;27069:61;:::i;:::-;27059:71;;27015:125;26802:345;;;;:::o;27153:223::-;27293:34;27289:1;27281:6;27277:14;27270:58;27362:6;27357:2;27349:6;27345:15;27338:31;27153:223;:::o;27382:366::-;27524:3;27545:67;27609:2;27604:3;27545:67;:::i;:::-;27538:74;;27621:93;27710:3;27621:93;:::i;:::-;27739:2;27734:3;27730:12;27723:19;;27382:366;;;:::o;27754:419::-;27920:4;27958:2;27947:9;27943:18;27935:26;;28007:9;28001:4;27997:20;27993:1;27982:9;27978:17;27971:47;28035:131;28161:4;28035:131;:::i;:::-;28027:139;;27754:419;;;:::o;28179:221::-;28319:34;28315:1;28307:6;28303:14;28296:58;28388:4;28383:2;28375:6;28371:15;28364:29;28179:221;:::o;28406:366::-;28548:3;28569:67;28633:2;28628:3;28569:67;:::i;:::-;28562:74;;28645:93;28734:3;28645:93;:::i;:::-;28763:2;28758:3;28754:12;28747:19;;28406:366;;;:::o;28778:419::-;28944:4;28982:2;28971:9;28967:18;28959:26;;29031:9;29025:4;29021:20;29017:1;29006:9;29002:17;28995:47;29059:131;29185:4;29059:131;:::i;:::-;29051:139;;28778:419;;;:::o;29203:224::-;29343:34;29339:1;29331:6;29327:14;29320:58;29412:7;29407:2;29399:6;29395:15;29388:32;29203:224;:::o;29433:366::-;29575:3;29596:67;29660:2;29655:3;29596:67;:::i;:::-;29589:74;;29672:93;29761:3;29672:93;:::i;:::-;29790:2;29785:3;29781:12;29774:19;;29433:366;;;:::o;29805:419::-;29971:4;30009:2;29998:9;29994:18;29986:26;;30058:9;30052:4;30048:20;30044:1;30033:9;30029:17;30022:47;30086:131;30212:4;30086:131;:::i;:::-;30078:139;;29805:419;;;:::o;30230:222::-;30370:34;30366:1;30358:6;30354:14;30347:58;30439:5;30434:2;30426:6;30422:15;30415:30;30230:222;:::o;30458:366::-;30600:3;30621:67;30685:2;30680:3;30621:67;:::i;:::-;30614:74;;30697:93;30786:3;30697:93;:::i;:::-;30815:2;30810:3;30806:12;30799:19;;30458:366;;;:::o;30830:419::-;30996:4;31034:2;31023:9;31019:18;31011:26;;31083:9;31077:4;31073:20;31069:1;31058:9;31054:17;31047:47;31111:131;31237:4;31111:131;:::i;:::-;31103:139;;30830:419;;;:::o;31255:179::-;31395:31;31391:1;31383:6;31379:14;31372:55;31255:179;:::o;31440:366::-;31582:3;31603:67;31667:2;31662:3;31603:67;:::i;:::-;31596:74;;31679:93;31768:3;31679:93;:::i;:::-;31797:2;31792:3;31788:12;31781:19;;31440:366;;;:::o;31812:419::-;31978:4;32016:2;32005:9;32001:18;31993:26;;32065:9;32059:4;32055:20;32051:1;32040:9;32036:17;32029:47;32093:131;32219:4;32093:131;:::i;:::-;32085:139;;31812:419;;;:::o;32237:172::-;32377:24;32373:1;32365:6;32361:14;32354:48;32237:172;:::o;32415:366::-;32557:3;32578:67;32642:2;32637:3;32578:67;:::i;:::-;32571:74;;32654:93;32743:3;32654:93;:::i;:::-;32772:2;32767:3;32763:12;32756:19;;32415:366;;;:::o;32787:419::-;32953:4;32991:2;32980:9;32976:18;32968:26;;33040:9;33034:4;33030:20;33026:1;33015:9;33011:17;33004:47;33068:131;33194:4;33068:131;:::i;:::-;33060:139;;32787:419;;;:::o;33212:168::-;33352:20;33348:1;33340:6;33336:14;33329:44;33212:168;:::o;33386:366::-;33528:3;33549:67;33613:2;33608:3;33549:67;:::i;:::-;33542:74;;33625:93;33714:3;33625:93;:::i;:::-;33743:2;33738:3;33734:12;33727:19;;33386:366;;;:::o;33758:419::-;33924:4;33962:2;33951:9;33947:18;33939:26;;34011:9;34005:4;34001:20;33997:1;33986:9;33982:17;33975:47;34039:131;34165:4;34039:131;:::i;:::-;34031:139;;33758:419;;;:::o;34183:227::-;34323:34;34319:1;34311:6;34307:14;34300:58;34392:10;34387:2;34379:6;34375:15;34368:35;34183:227;:::o;34416:366::-;34558:3;34579:67;34643:2;34638:3;34579:67;:::i;:::-;34572:74;;34655:93;34744:3;34655:93;:::i;:::-;34773:2;34768:3;34764:12;34757:19;;34416:366;;;:::o;34788:419::-;34954:4;34992:2;34981:9;34977:18;34969:26;;35041:9;35035:4;35031:20;35027:1;35016:9;35012:17;35005:47;35069:131;35195:4;35069:131;:::i;:::-;35061:139;;34788:419;;;:::o;35213:174::-;35353:26;35349:1;35341:6;35337:14;35330:50;35213:174;:::o;35393:366::-;35535:3;35556:67;35620:2;35615:3;35556:67;:::i;:::-;35549:74;;35632:93;35721:3;35632:93;:::i;:::-;35750:2;35745:3;35741:12;35734:19;;35393:366;;;:::o;35765:419::-;35931:4;35969:2;35958:9;35954:18;35946:26;;36018:9;36012:4;36008:20;36004:1;35993:9;35989:17;35982:47;36046:131;36172:4;36046:131;:::i;:::-;36038:139;;35765:419;;;:::o;36190:229::-;36330:34;36326:1;36318:6;36314:14;36307:58;36399:12;36394:2;36386:6;36382:15;36375:37;36190:229;:::o;36425:366::-;36567:3;36588:67;36652:2;36647:3;36588:67;:::i;:::-;36581:74;;36664:93;36753:3;36664:93;:::i;:::-;36782:2;36777:3;36773:12;36766:19;;36425:366;;;:::o;36797:419::-;36963:4;37001:2;36990:9;36986:18;36978:26;;37050:9;37044:4;37040:20;37036:1;37025:9;37021:17;37014:47;37078:131;37204:4;37078:131;:::i;:::-;37070:139;;36797:419;;;:::o;37222:194::-;37262:4;37282:20;37300:1;37282:20;:::i;:::-;37277:25;;37316:20;37334:1;37316:20;:::i;:::-;37311:25;;37360:1;37357;37353:9;37345:17;;37384:1;37378:4;37375:11;37372:37;;;37389:18;;:::i;:::-;37372:37;37222:194;;;;:::o;37422:147::-;37523:11;37560:3;37545:18;;37422:147;;;;:::o;37575:114::-;;:::o;37695:398::-;37854:3;37875:83;37956:1;37951:3;37875:83;:::i;:::-;37868:90;;37967:93;38056:3;37967:93;:::i;:::-;38085:1;38080:3;38076:11;38069:18;;37695:398;;;:::o;38099:379::-;38283:3;38305:147;38448:3;38305:147;:::i;:::-;38298:154;;38469:3;38462:10;;38099:379;;;:::o;38484:225::-;38624:34;38620:1;38612:6;38608:14;38601:58;38693:8;38688:2;38680:6;38676:15;38669:33;38484:225;:::o;38715:366::-;38857:3;38878:67;38942:2;38937:3;38878:67;:::i;:::-;38871:74;;38954:93;39043:3;38954:93;:::i;:::-;39072:2;39067:3;39063:12;39056:19;;38715:366;;;:::o;39087:419::-;39253:4;39291:2;39280:9;39276:18;39268:26;;39340:9;39334:4;39330:20;39326:1;39315:9;39311:17;39304:47;39368:131;39494:4;39368:131;:::i;:::-;39360:139;;39087:419;;;:::o;39512:320::-;39627:4;39665:2;39654:9;39650:18;39642:26;;39678:71;39746:1;39735:9;39731:17;39722:6;39678:71;:::i;:::-;39759:66;39821:2;39810:9;39806:18;39797:6;39759:66;:::i;:::-;39512:320;;;;;:::o;39838:180::-;39886:77;39883:1;39876:88;39983:4;39980:1;39973:15;40007:4;40004:1;39997:15;40024:180;40072:77;40069:1;40062:88;40169:4;40166:1;40159:15;40193:4;40190:1;40183:15;40210:143;40267:5;40298:6;40292:13;40283:22;;40314:33;40341:5;40314:33;:::i;:::-;40210:143;;;;:::o;40359:351::-;40429:6;40478:2;40466:9;40457:7;40453:23;40449:32;40446:119;;;40484:79;;:::i;:::-;40446:119;40604:1;40629:64;40685:7;40676:6;40665:9;40661:22;40629:64;:::i;:::-;40619:74;;40575:128;40359:351;;;;:::o;40716:85::-;40761:7;40790:5;40779:16;;40716:85;;;:::o;40807:158::-;40865:9;40898:61;40916:42;40925:32;40951:5;40925:32;:::i;:::-;40916:42;:::i;:::-;40898:61;:::i;:::-;40885:74;;40807:158;;;:::o;40971:147::-;41066:45;41105:5;41066:45;:::i;:::-;41061:3;41054:58;40971:147;;:::o;41124:114::-;41191:6;41225:5;41219:12;41209:22;;41124:114;;;:::o;41244:184::-;41343:11;41377:6;41372:3;41365:19;41417:4;41412:3;41408:14;41393:29;;41244:184;;;;:::o;41434:132::-;41501:4;41524:3;41516:11;;41554:4;41549:3;41545:14;41537:22;;41434:132;;;:::o;41572:108::-;41649:24;41667:5;41649:24;:::i;:::-;41644:3;41637:37;41572:108;;:::o;41686:179::-;41755:10;41776:46;41818:3;41810:6;41776:46;:::i;:::-;41854:4;41849:3;41845:14;41831:28;;41686:179;;;;:::o;41871:113::-;41941:4;41973;41968:3;41964:14;41956:22;;41871:113;;;:::o;42020:732::-;42139:3;42168:54;42216:5;42168:54;:::i;:::-;42238:86;42317:6;42312:3;42238:86;:::i;:::-;42231:93;;42348:56;42398:5;42348:56;:::i;:::-;42427:7;42458:1;42443:284;42468:6;42465:1;42462:13;42443:284;;;42544:6;42538:13;42571:63;42630:3;42615:13;42571:63;:::i;:::-;42564:70;;42657:60;42710:6;42657:60;:::i;:::-;42647:70;;42503:224;42490:1;42487;42483:9;42478:14;;42443:284;;;42447:14;42743:3;42736:10;;42144:608;;;42020:732;;;;:::o;42758:831::-;43021:4;43059:3;43048:9;43044:19;43036:27;;43073:71;43141:1;43130:9;43126:17;43117:6;43073:71;:::i;:::-;43154:80;43230:2;43219:9;43215:18;43206:6;43154:80;:::i;:::-;43281:9;43275:4;43271:20;43266:2;43255:9;43251:18;43244:48;43309:108;43412:4;43403:6;43309:108;:::i;:::-;43301:116;;43427:72;43495:2;43484:9;43480:18;43471:6;43427:72;:::i;:::-;43509:73;43577:3;43566:9;43562:19;43553:6;43509:73;:::i;:::-;42758:831;;;;;;;;:::o;43595:807::-;43844:4;43882:3;43871:9;43867:19;43859:27;;43896:71;43964:1;43953:9;43949:17;43940:6;43896:71;:::i;:::-;43977:72;44045:2;44034:9;44030:18;44021:6;43977:72;:::i;:::-;44059:80;44135:2;44124:9;44120:18;44111:6;44059:80;:::i;:::-;44149;44225:2;44214:9;44210:18;44201:6;44149:80;:::i;:::-;44239:73;44307:3;44296:9;44292:19;44283:6;44239:73;:::i;:::-;44322;44390:3;44379:9;44375:19;44366:6;44322:73;:::i;:::-;43595:807;;;;;;;;;:::o;44408:663::-;44496:6;44504;44512;44561:2;44549:9;44540:7;44536:23;44532:32;44529:119;;;44567:79;;:::i;:::-;44529:119;44687:1;44712:64;44768:7;44759:6;44748:9;44744:22;44712:64;:::i;:::-;44702:74;;44658:128;44825:2;44851:64;44907:7;44898:6;44887:9;44883:22;44851:64;:::i;:::-;44841:74;;44796:129;44964:2;44990:64;45046:7;45037:6;45026:9;45022:22;44990:64;:::i;:::-;44980:74;;44935:129;44408:663;;;;;:::o

Swarm Source

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