ETH Price: $3,474.63 (+0.31%)

Token

MoonChan (MC)
 

Overview

Max Total Supply

10,000,000,000,000,000,000,000,000,000,001,012,851.784581430710472148 MC

Holders

335

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
391.391497370130523627 MC

Value
$0.00
0x0A19cbF9272F3e2afb66e373C44411f41Ba80E1e
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:
MoonChan

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*                                         
MoonChan                                                                                                                  
*/

//SPDX-License-Identifier: MIT
pragma solidity ^0.8.6;

/**
 * SAFEMATH LIBRARY
 */
library SafeMath {
    function tryAdd(uint256 a, uint256 b)
        internal
        pure
        returns (bool, uint256)
    {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b)
        internal
        pure
        returns (bool, uint256)
    {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b)
        internal
        pure
        returns (bool, uint256)
    {
        unchecked {
            // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
            // benefit is lost if 'b' is also tested.
            // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b)
        internal
        pure
        returns (bool, uint256)
    {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b)
        internal
        pure
        returns (bool, uint256)
    {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

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

    function decimals() external view returns (uint8);

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

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

    function getOwner() external view returns (address);

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

abstract contract Ownable {
    address internal owner;

    constructor(address _owner) {
        owner = _owner;
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender), "NOT AN OWNER");
        _;
    }

    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

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

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

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )
        external
        returns (
            uint256 amountA,
            uint256 amountB,
            uint256 liquidity
        );

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

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

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

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

contract MoonChan is IERC20, Ownable {
    using SafeMath for uint256;

    address public WETH;
    address public staking;
    address DEAD = 0x000000000000000000000000000000000000dEaD;

    string constant _name = "MoonChan";
    string constant _symbol = "MC";
    uint8 constant _decimals = 18;

    uint256 _totalSupply = 1 * 10**6 * (10**_decimals);
    uint256 public maxTxAmount = _totalSupply.mul(10).div(1000); // 1%
    uint256 public maxHoldingLimit = _totalSupply.mul(10).div(1000); // 1%

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

    mapping(address => bool) isFeeExempt;
    mapping(address => bool) isTxLimitExempt;
    mapping(address => bool) isExcludedFromMaxHold;
    mapping(address => bool) isSniper;

    uint256 liquidityFee = 20;
    uint256 teamFee = 10;
    uint256 marketFee = 20;
    uint256 totalFee = 50;
    uint256 feeDenominator = 1000;
    uint256 maxFee = 150;
    bool public enableAutoBlacklist;
    uint256 public gasLimit = 200000000000; // gas limit threshold for blacklist / 1 GWEI = 1,000,000,000

    address public autoLiquidityReceiver;
    address public marketingFeeReceiver;
    address public teamFeeReceiver;

    uint256 targetLiquidity = 45;
    uint256 targetLiquidityDenominator = 100;

    Irouter public router;
    address public pair;

    uint256 public launchedAt;
    uint256 public launchedAtTimestamp;
    uint256 antiSnipingTime = 60 seconds;

    uint256 distributorGas = 500000;

    bool public swapEnabled;
    bool public tradingOpen;

    uint256 public swapThreshold = _totalSupply / 2000; // 0.005%
    bool inSwap;
    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor(
        address _router,
        address _market,
        address _teamFee,
        address newOwner
    ) Ownable(newOwner) {
        router = Irouter(_router);
        WETH = router.WETH();
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        _allowances[address(this)][address(router)] = _totalSupply;

        isFeeExempt[newOwner] = true;
        isExcludedFromMaxHold[newOwner] = true;
        isExcludedFromMaxHold[address(this)] = true;
        isExcludedFromMaxHold[pair] = true;
        isTxLimitExempt[newOwner] = true;
        autoLiquidityReceiver = newOwner;
        marketingFeeReceiver = _market;
        teamFeeReceiver = _teamFee;

        approve(_router, _totalSupply);
        approve(address(pair), _totalSupply);
        _balances[newOwner] = _totalSupply;

        emit Transfer(address(0), newOwner, _totalSupply);
    }

    receive() external payable {}

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

    function decimals() external pure override returns (uint8) {
        return _decimals;
    }

    function symbol() external pure override returns (string memory) {
        return _symbol;
    }

    function name() external pure override returns (string memory) {
        return _name;
    }

    function getOwner() external view override returns (address) {
        return owner;
    }

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

    function allowance(address holder, address spender)
        external
        view
        override
        returns (uint256)
    {
        return _allowances[holder][spender];
    }

    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, _totalSupply);
    }

    function transfer(address recipient, uint256 amount)
        external
        override
        returns (bool)
    {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        if (_allowances[sender][msg.sender] != _totalSupply) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender]
                .sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");
        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }

    function _transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        require(!isSniper[sender], "Sniper detected");
        require(!isSniper[recipient], "Sniper detected");
        if (!isTxLimitExempt[sender] && !isTxLimitExempt[recipient]) {
            // trading disable till launch
            if (!tradingOpen) {
                require(
                    sender != pair && recipient != pair,
                    "Trading is not enabled yet"
                );
            }
            // antibot
            if (
                block.timestamp < launchedAtTimestamp + antiSnipingTime &&
                sender != address(router)
            ) {
                if (sender == pair) {
                    isSniper[recipient] = true;
                } else if (recipient == pair) {
                    isSniper[sender] = true;
                }
            }

            require(amount <= maxTxAmount, "TX Limit Exceeded");
        }

        bool isBuy = sender == pair || sender == address(router);
        bool isSell = recipient == pair || recipient == address(router);

        if (isBuy || isSell) {
            if (tx.gasprice > gasLimit && enableAutoBlacklist) {
                if (isBuy) {
                    isSniper[recipient] = true;
                    emit antiBotBan(recipient);
                } else if (isSell) {
                    isSniper[sender] = true;
                    emit antiBotBan(sender);
                }
                return false;
            }
        }

        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }

        if (shouldSwapBack()) {
            swapBack();
        }

        _balances[sender] = _balances[sender].sub(
            amount,
            "Insufficient Balance"
        );
        uint256 amountReceived;
        if (
            isFeeExempt[sender] ||
            isFeeExempt[recipient] ||
            (sender != pair && recipient != pair)
        ) {
            amountReceived = amount;
        } else {
            amountReceived = takeFee(sender, amount);
        }

        // Check for max holding of receiver
        if (!isExcludedFromMaxHold[recipient]) {
            require(
                _balances[recipient] + amountReceived <= maxHoldingLimit,
                "Max holding limit exceeded"
            );
        }

        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }

    function stakingReward(address _to, uint256 _amount) external {
        require(msg.sender == staking, "Not authorized");
        _mint(_to, _amount);
    }

    function _basicTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(
            amount,
            "Insufficient Balance"
        );
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function takeFee(address sender, uint256 amount)
        internal
        returns (uint256)
    {
        uint256 feeAmount = amount.mul(totalFee).div(feeDenominator);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return
            msg.sender != pair &&
            !inSwap &&
            swapEnabled &&
            _balances[address(this)] >= swapThreshold;
    }

    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(
            targetLiquidity,
            targetLiquidityDenominator
        )
            ? 0
            : liquidityFee;
        uint256 amountToLiquify = swapThreshold
            .mul(dynamicLiquidityFee)
            .div(totalFee)
            .div(2);
        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);

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

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance.sub(balanceBefore);

        uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2));

        uint256 amountETHLiquidity = amountETH
            .mul(dynamicLiquidityFee)
            .div(totalETHFee)
            .div(2);
        uint256 amountETHMarketing = amountETH.mul(marketFee).div(totalETHFee);
        uint256 amountETHBuyback = amountETH.mul(teamFee).div(totalETHFee);

        payable(marketingFeeReceiver).transfer(amountETHMarketing);
        payable(teamFeeReceiver).transfer(amountETHBuyback);

        if (amountToLiquify > 0) {
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

    function launched() internal view returns (bool) {
        return launchedAt != 0;
    }

    function launch() public onlyOwner {
        require(launchedAt == 0, "Already launched boi");
        launchedAt = block.number;
        launchedAtTimestamp = block.timestamp;
        tradingOpen = true;
        swapEnabled = true;
    }

    function setTxLimit(uint256 amount) external onlyOwner {
        maxTxAmount = amount;
    }

    function withdrawFunds(address _user, uint256 _amount) external onlyOwner {
        require(_amount > 0, "Amount must be greater than 0");
        payable(_user).transfer(_amount);
    }

    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function setIsExcludedFromMaxHold(address holder, bool excluded)
        external
        onlyOwner
    {
        isExcludedFromMaxHold[holder] = excluded;
    }

    //Sets new gas limit threshold for blacklist.
    function setGasLimit(uint256 _limit) external onlyOwner {
        gasLimit = _limit;
    }

    function setEnableAutoBlacklist(bool _status) external onlyOwner {
        enableAutoBlacklist = _status;
    }

    function setIsTxLimitExempt(address holder, bool exempt)
        external
        onlyOwner
    {
        isTxLimitExempt[holder] = exempt;
    }

    function setFees(
        uint256 _liquidityFee,
        uint256 _teamFee,
        uint256 _marketFee
    ) external onlyOwner {
        liquidityFee = _liquidityFee;
        teamFee = _teamFee;
        marketFee = _marketFee;
        totalFee = _liquidityFee.add(_teamFee).add(_marketFee);
        require(totalFee <= maxFee, "can't set fee more than 25%");
    }

    function setFeeReceivers(
        address _autoLiquidityReceiver,
        address _marketingFeeReceiver,
        address _teamFeeReceiver
    ) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        teamFeeReceiver = _teamFeeReceiver;
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount)
        external
        onlyOwner
    {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }

    function setTargetLiquidity(uint256 _target, uint256 _denominator)
        external
        onlyOwner
    {
        targetLiquidity = _target;
        targetLiquidityDenominator = _denominator;
    }

    function setMaxHoldingLimit(uint256 _limit) external onlyOwner {
        maxHoldingLimit = _limit;
    }

    function setDistributorSettings(uint256 gas) external onlyOwner {
        require(gas < 750000);
        distributorGas = gas;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));
    }

    function getLiquidityBacking(uint256 accuracy)
        public
        view
        returns (uint256)
    {
        return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply());
    }

    function isOverLiquified(uint256 target, uint256 accuracy)
        public
        view
        returns (bool)
    {
        return getLiquidityBacking(accuracy) > target;
    }

    function setRoute(Irouter _router, address _pair) external onlyOwner {
        require(
            address(_router) != address(0),
            "Router adress cannot be address zero"
        );
        require(_pair != address(0), "Pair adress cannot be address zero");
        router = _router;
        pair = _pair;
    }

    function setStaking(address _stakingAddr) external onlyOwner {
        staking = _stakingAddr;
    }

    function addSniperInList(address _account) external onlyOwner {
        require(_account != address(router), "We can not blacklist router");
        require(!isSniper[_account], "Sniper already exist");
        isSniper[_account] = true;
    }

    function removeSniperFromList(address _account) external onlyOwner {
        require(isSniper[_account], "Not a sniper");
        isSniper[_account] = false;
    }

    event AutoLiquify(uint256 amountETH, uint256 amountBOG);
    event antiBotBan(address indexed value);
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_router","type":"address"},{"internalType":"address","name":"_market","type":"address"},{"internalType":"address","name":"_teamFee","type":"address"},{"internalType":"address","name":"newOwner","type":"address"}],"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":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"value","type":"address"}],"name":"antiBotBan","type":"event"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"addSniperInList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableAutoBlacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gasLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAtTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxHoldingLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"removeSniperFromList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract Irouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"setDistributorSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"setEnableAutoBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_marketFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_limit","type":"uint256"}],"name":"setGasLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setIsExcludedFromMaxHold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_limit","type":"uint256"}],"name":"setMaxHoldingLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract Irouter","name":"_router","type":"address"},{"internalType":"address","name":"_pair","type":"address"}],"name":"setRoute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_stakingAddr","type":"address"}],"name":"setStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"staking","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"stakingReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"teamFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a62000057919062000b8b565b620f424062000067919062000cc8565b600455620000a26103e86200008e600a600454620008ad60201b6200219c1790919060201c565b620008c560201b620021b21790919060201c565b600555620000dd6103e8620000c9600a600454620008ad60201b6200219c1790919060201c565b620008c560201b620021b21790919060201c565b6006556014600d55600a600e556014600f5560326010556103e86011556096601255642e90edd000601455602d6018556064601955603c601e556207a120601f556107d060045462000130919062000af8565b6021553480156200014057600080fd5b506040516200588a3803806200588a833981810160405281019062000166919062000a1a565b80806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505083601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200025257600080fd5b505afa15801562000267573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028d9190620009e8565b600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200033657600080fd5b505afa1580156200034b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003719190620009e8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b8152600401620003cf92919062000aae565b602060405180830381600087803b158015620003ea57600080fd5b505af1158015620003ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004259190620009e8565b601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600454600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620007bb84600454620008dd60201b60201c565b50620007f2601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600454620008dd60201b60201c565b50600454600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004546040516200089b919062000adb565b60405180910390a35050505062000dfe565b60008183620008bd919062000cc8565b905092915050565b60008183620008d5919062000af8565b905092915050565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051620009bf919062000adb565b60405180910390a36001905092915050565b600081519050620009e28162000de4565b92915050565b60006020828403121562000a015762000a0062000dd2565b5b600062000a1184828501620009d1565b91505092915050565b6000806000806080858703121562000a375762000a3662000dd2565b5b600062000a4787828801620009d1565b945050602062000a5a87828801620009d1565b935050604062000a6d87828801620009d1565b925050606062000a8087828801620009d1565b91505092959194509250565b62000a978162000d29565b82525050565b62000aa88162000d5d565b82525050565b600060408201905062000ac5600083018562000a8c565b62000ad4602083018462000a8c565b9392505050565b600060208201905062000af2600083018462000a9d565b92915050565b600062000b058262000d5d565b915062000b128362000d5d565b92508262000b255762000b2462000da3565b5b828204905092915050565b6000808291508390505b600185111562000b825780860481111562000b5a5762000b5962000d74565b5b600185161562000b6a5780820291505b808102905062000b7a8562000dd7565b945062000b3a565b94509492505050565b600062000b988262000d5d565b915062000ba58362000d67565b925062000bd47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000bdc565b905092915050565b60008262000bee576001905062000cc1565b8162000bfe576000905062000cc1565b816001811462000c17576002811462000c225762000c58565b600191505062000cc1565b60ff84111562000c375762000c3662000d74565b5b8360020a91508482111562000c515762000c5062000d74565b5b5062000cc1565b5060208310610133831016604e8410600b841016171562000c925782820a90508381111562000c8c5762000c8b62000d74565b5b62000cc1565b62000ca1848484600162000b30565b9250905081840481111562000cbb5762000cba62000d74565b5b81810290505b9392505050565b600062000cd58262000d5d565b915062000ce28362000d5d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000d1e5762000d1d62000d74565b5b828202905092915050565b600062000d368262000d3d565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b60008160011c9050919050565b62000def8162000d29565b811462000dfb57600080fd5b50565b614a7c8062000e0e6000396000f3fe6080604052600436106102e85760003560e01c80638ff3909911610190578063cec10c11116100dc578063e96fada211610095578063f68016b71161006f578063f68016b714610b43578063f84ba65d14610b6e578063f887ea4014610b97578063ffb54a9914610bc2576102ef565b8063e96fada214610ac6578063ee7d72b414610af1578063f2fde38b14610b1a576102ef565b8063cec10c11146109a8578063d51ed1c8146109d1578063d7c0103214610a0e578063dd62ed3e14610a37578063dd7bd77514610a74578063df20fd4914610a9d576102ef565b8063b4cde33411610149578063c107532911610123578063c107532914610900578063c6d2577d14610929578063c912ca5314610954578063ca33e64c1461097d576102ef565b8063b4cde33414610883578063bb4179fa146108ac578063bf56b371146108d5576102ef565b80638ff390991461077357806395d89b411461079c5780639d1944f5146107c7578063a8aa1b31146107f0578063a9059cbb1461081b578063ad5c464814610858576102ef565b806338d6f8471161024f5780635c85974f116102085780636ebb0be9116101e25780636ebb0be9146106b757806370a08231146106e0578063893d20e81461071d5780638c0b5e2214610748576102ef565b80635c85974f1461063a578063658d4b7f146106635780636ddd17131461068c576102ef565b806338d6f847146105285780633da56f1814610551578063402911431461057c5780634cf088d9146105a75780635154f136146105d2578063571ac8b0146105fd576102ef565b806318160ddd116102a157806318160ddd14610404578063201e79911461042f57806323b872dd146104585780632b112e49146104955780632f54bf6e146104c0578063313ce567146104fd576102ef565b806301339c21146102f45780630445b6671461030b5780630505e94d1461033657806306fdde031461035f578063095ea7b31461038a5780631161ae39146103c7576102ef565b366102ef57005b600080fd5b34801561030057600080fd5b50610309610bed565b005b34801561031757600080fd5b50610320610cc0565b60405161032d9190614313565b60405180910390f35b34801561034257600080fd5b5061035d60048036038101906103589190613bbd565b610cc6565b005b34801561036b57600080fd5b50610374610e74565b6040516103819190614111565b60405180910390f35b34801561039657600080fd5b506103b160048036038101906103ac9190613b10565b610eb1565b6040516103be91906140db565b60405180910390f35b3480156103d357600080fd5b506103ee60048036038101906103e99190613c2a565b610fa3565b6040516103fb91906140db565b60405180910390f35b34801561041057600080fd5b50610419610fb8565b6040516104269190614313565b60405180910390f35b34801561043b57600080fd5b5061045660048036038101906104519190613c2a565b610fc2565b005b34801561046457600080fd5b5061047f600480360381019061047a9190613a7d565b61101c565b60405161048c91906140db565b60405180910390f35b3480156104a157600080fd5b506104aa6111fe565b6040516104b79190614313565b60405180910390f35b3480156104cc57600080fd5b506104e760048036038101906104e29190613990565b61125f565b6040516104f491906140db565b60405180910390f35b34801561050957600080fd5b506105126112b8565b60405161051f91906143b1565b60405180910390f35b34801561053457600080fd5b5061054f600480360381019061054a9190613990565b6112c1565b005b34801561055d57600080fd5b50610566611482565b60405161057391906140db565b60405180910390f35b34801561058857600080fd5b50610591611495565b60405161059e9190614044565b60405180910390f35b3480156105b357600080fd5b506105bc6114bb565b6040516105c99190614044565b60405180910390f35b3480156105de57600080fd5b506105e76114e1565b6040516105f49190614313565b60405180910390f35b34801561060957600080fd5b50610624600480360381019061061f9190613990565b6114e7565b60405161063191906140db565b60405180910390f35b34801561064657600080fd5b50610661600480360381019061065c9190613bfd565b6114fc565b005b34801561066f57600080fd5b5061068a60048036038101906106859190613ad0565b61154e565b005b34801561069857600080fd5b506106a16115f1565b6040516106ae91906140db565b60405180910390f35b3480156106c357600080fd5b506106de60048036038101906106d99190613b10565b611604565b005b3480156106ec57600080fd5b5061070760048036038101906107029190613990565b6116a2565b6040516107149190614313565b60405180910390f35b34801561072957600080fd5b506107326116eb565b60405161073f9190614044565b60405180910390f35b34801561075457600080fd5b5061075d611714565b60405161076a9190614313565b60405180910390f35b34801561077f57600080fd5b5061079a60048036038101906107959190613990565b61171a565b005b3480156107a857600080fd5b506107b16117a6565b6040516107be9190614111565b60405180910390f35b3480156107d357600080fd5b506107ee60048036038101906107e99190613bfd565b6117e3565b005b3480156107fc57600080fd5b50610805611844565b6040516108129190614044565b60405180910390f35b34801561082757600080fd5b50610842600480360381019061083d9190613b10565b61186a565b60405161084f91906140db565b60405180910390f35b34801561086457600080fd5b5061086d61187f565b60405161087a9190614044565b60405180910390f35b34801561088f57600080fd5b506108aa60048036038101906108a59190613b50565b6118a5565b005b3480156108b857600080fd5b506108d360048036038101906108ce9190613ad0565b61190a565b005b3480156108e157600080fd5b506108ea6119ad565b6040516108f79190614313565b60405180910390f35b34801561090c57600080fd5b5061092760048036038101906109229190613b10565b6119b3565b005b34801561093557600080fd5b5061093e611a89565b60405161094b9190614313565b60405180910390f35b34801561096057600080fd5b5061097b60048036038101906109769190613bfd565b611a8f565b005b34801561098957600080fd5b50610992611ae1565b60405161099f9190614044565b60405180910390f35b3480156109b457600080fd5b506109cf60048036038101906109ca9190613c6a565b611b07565b005b3480156109dd57600080fd5b506109f860048036038101906109f39190613bfd565b611bdb565b604051610a059190614313565b60405180910390f35b348015610a1a57600080fd5b50610a356004803603810190610a309190613a2a565b611c4d565b005b348015610a4357600080fd5b50610a5e6004803603810190610a5991906139ea565b611d5d565b604051610a6b9190614313565b60405180910390f35b348015610a8057600080fd5b50610a9b6004803603810190610a969190613990565b611de4565b005b348015610aa957600080fd5b50610ac46004803603810190610abf9190613b7d565b611f13565b005b348015610ad257600080fd5b50610adb611f80565b604051610ae89190614044565b60405180910390f35b348015610afd57600080fd5b50610b186004803603810190610b139190613bfd565b611fa6565b005b348015610b2657600080fd5b50610b416004803603810190610b3c91906139bd565b611ff8565b005b348015610b4f57600080fd5b50610b586120ba565b604051610b659190614313565b60405180910390f35b348015610b7a57600080fd5b50610b956004803603810190610b909190613ad0565b6120c0565b005b348015610ba357600080fd5b50610bac612163565b604051610bb991906140f6565b60405180910390f35b348015610bce57600080fd5b50610bd7612189565b604051610be491906140db565b60405180910390f35b610bf63361125f565b610c35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2c906141f3565b60405180910390fd5b6000601c5414610c7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7190614293565b60405180910390fd5b43601c8190555042601d819055506001602060016101000a81548160ff0219169083151502179055506001602060006101000a81548160ff021916908315150217905550565b60215481565b610ccf3361125f565b610d0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d05906141f3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d75906141d3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610dee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de5906141b3565b60405180910390fd5b81601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60606040518060400160405280600881526020017f4d6f6f6e4368616e000000000000000000000000000000000000000000000000815250905090565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610f919190614313565b60405180910390a36001905092915050565b600082610faf83611bdb565b11905092915050565b6000600454905090565b610fcb3361125f565b61100a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611001906141f3565b60405180910390fd5b81601881905550806019819055505050565b6000600454600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146111ea57611169826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121c89092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6111f584848461221d565b90509392505050565b600061125a61120d60006116a2565b61124c61123b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166116a2565b600454612e4190919063ffffffff16565b612e4190919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b6112ca3361125f565b611309576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611300906141f3565b60405180910390fd5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561139a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139190614253565b60405180910390fd5b600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611427576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141e90614273565b60405180910390fd5b6001600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601360009054906101000a900460ff1681565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b60006114f582600454610eb1565b9050919050565b6115053361125f565b611544576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153b906141f3565b60405180910390fd5b8060058190555050565b6115573361125f565b611596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158d906141f3565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602060009054906101000a900460ff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611694576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168b906142d3565b60405180910390fd5b61169e8282612e57565b5050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60055481565b6117233361125f565b611762576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611759906141f3565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606040518060400160405280600281526020017f4d43000000000000000000000000000000000000000000000000000000000000815250905090565b6117ec3361125f565b61182b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611822906141f3565b60405180910390fd5b620b71b0811061183a57600080fd5b80601f8190555050565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061187733848461221d565b905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6118ae3361125f565b6118ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e4906141f3565b60405180910390fd5b80601360006101000a81548160ff02191690831515021790555050565b6119133361125f565b611952576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611949906141f3565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601c5481565b6119bc3361125f565b6119fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f2906141f3565b60405180910390fd5b60008111611a3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3590614193565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611a84573d6000803e3d6000fd5b505050565b601d5481565b611a983361125f565b611ad7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ace906141f3565b60405180910390fd5b8060068190555050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611b103361125f565b611b4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b46906141f3565b60405180910390fd5b82600d8190555081600e8190555080600f81905550611b8981611b7b8486612fe190919063ffffffff16565b612fe190919063ffffffff16565b6010819055506012546010541115611bd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcd90614233565b60405180910390fd5b505050565b6000611c46611be86111fe565b611c38611c296002611c1b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166116a2565b61219c90919063ffffffff16565b8561219c90919063ffffffff16565b6121b290919063ffffffff16565b9050919050565b611c563361125f565b611c95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8c906141f3565b60405180910390fd5b82601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611ded3361125f565b611e2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e23906141f3565b60405180910390fd5b600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611eb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eaf90614173565b60405180910390fd5b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611f1c3361125f565b611f5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f52906141f3565b60405180910390fd5b81602060006101000a81548160ff021916908315150217905550806021819055505050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611faf3361125f565b611fee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe5906141f3565b60405180910390fd5b8060148190555050565b6120013361125f565b612040576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612037906141f3565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516120af919061405f565b60405180910390a150565b60145481565b6120c93361125f565b612108576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ff906141f3565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602060019054906101000a900460ff1681565b600081836121aa91906144a8565b905092915050565b600081836121c09190614477565b905092915050565b6000838311158290612210576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122079190614111565b60405180910390fd5b5082840390509392505050565b6000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156122ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a3906142b3565b60405180910390fd5b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612339576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612330906142b3565b60405180910390fd5b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123dd5750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156126fd57602060019054906101000a900460ff166124e257601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156124a25750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b6124e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d890614153565b60405180910390fd5b5b601e54601d546124f29190614421565b4210801561254e5750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156126b757601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612606576001600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506126b6565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156126b5576001600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b5b6005548211156126fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f390614133565b60405180910390fd5b5b6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806127a85750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b90506000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806128555750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b905081806128605750805b156129dc576014543a1180156128825750601360009054906101000a900460ff165b156129db57811561292d576001600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508473ffffffffffffffffffffffffffffffffffffffff167f8c21268f4379683ad2b81c32b4357f44a17e83e73d741ba6e8c23e085e57135160405160405180910390a26129d0565b80156129cf576001600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508573ffffffffffffffffffffffffffffffffffffffff167f8c21268f4379683ad2b81c32b4357f44a17e83e73d741ba6e8c23e085e57135160405160405180910390a25b5b600092505050612e3a565b5b602260009054906101000a900460ff1615612a05576129fc868686612ff7565b92505050612e3a565b612a0d6131ca565b15612a1b57612a1a6132a1565b5b612aa4846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121c89092919063ffffffff16565b600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612b8a5750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80612c3d5750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614158015612c3c5750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b5b15612c4a57849050612c57565b612c5487866137ce565b90505b600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612d385760065481600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cf69190614421565b1115612d37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d2e90614213565b60405180910390fd5b5b612d8a81600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe190919063ffffffff16565b600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e2a9190614313565b60405180910390a3600193505050505b9392505050565b60008183612e4f9190614502565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612ec7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ebe906142f3565b60405180910390fd5b612edc81600454612fe190919063ffffffff16565b600481905550612f3481600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe190919063ffffffff16565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612fd59190614313565b60405180910390a35050565b60008183612fef9190614421565b905092915050565b6000613082826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121c89092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061311782600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe190919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516131b79190614313565b60405180910390a3600190509392505050565b6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156132375750602260009054906101000a900460ff16155b801561324f5750602060009054906101000a900460ff165b801561329c5750602154600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001602260006101000a81548160ff02191690831515021790555060006132cc601854601954610fa3565b6132d857600d546132db565b60005b9050600061331b600261330d6010546132ff8660215461219c90919063ffffffff16565b6121b290919063ffffffff16565b6121b290919063ffffffff16565b9050600061333482602154612e4190919063ffffffff16565b90506000600267ffffffffffffffff811115613353576133526146db565b5b6040519080825280602002602001820160405280156133815781602001602082028036833780820191505090505b5090503081600081518110613399576133986146ac565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061340a576134096146ac565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b81526004016134ad95949392919061432e565b600060405180830381600087803b1580156134c757600080fd5b505af11580156134db573d6000803e3d6000fd5b5050505060006134f48247612e4190919063ffffffff16565b9050600061352061350f6002896121b290919063ffffffff16565b601054612e4190919063ffffffff16565b9050600061355c600261354e846135408c8861219c90919063ffffffff16565b6121b290919063ffffffff16565b6121b290919063ffffffff16565b9050600061358783613579600f548761219c90919063ffffffff16565b6121b290919063ffffffff16565b905060006135b2846135a4600e548861219c90919063ffffffff16565b6121b290919063ffffffff16565b9050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015801561361c573d6000803e3d6000fd5b50601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613685573d6000803e3d6000fd5b5060008911156137a757601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c600080601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016137189695949392919061407a565b6060604051808303818588803b15801561373157600080fd5b505af1158015613745573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061376a9190613cbd565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a60405161379e929190614388565b60405180910390a15b505050505050505050506000602260006101000a81548160ff021916908315150217905550565b6000806137fa6011546137ec6010548661219c90919063ffffffff16565b6121b290919063ffffffff16565b905061384e81600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe190919063ffffffff16565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516138ee9190614313565b60405180910390a36139098184612e4190919063ffffffff16565b91505092915050565b600081359050613921816149d3565b92915050565b600081359050613936816149ea565b92915050565b60008135905061394b81614a01565b92915050565b60008135905061396081614a18565b92915050565b60008135905061397581614a2f565b92915050565b60008151905061398a81614a2f565b92915050565b6000602082840312156139a6576139a561470a565b5b60006139b484828501613912565b91505092915050565b6000602082840312156139d3576139d261470a565b5b60006139e184828501613927565b91505092915050565b60008060408385031215613a0157613a0061470a565b5b6000613a0f85828601613912565b9250506020613a2085828601613912565b9150509250929050565b600080600060608486031215613a4357613a4261470a565b5b6000613a5186828701613912565b9350506020613a6286828701613912565b9250506040613a7386828701613912565b9150509250925092565b600080600060608486031215613a9657613a9561470a565b5b6000613aa486828701613912565b9350506020613ab586828701613912565b9250506040613ac686828701613966565b9150509250925092565b60008060408385031215613ae757613ae661470a565b5b6000613af585828601613912565b9250506020613b068582860161393c565b9150509250929050565b60008060408385031215613b2757613b2661470a565b5b6000613b3585828601613912565b9250506020613b4685828601613966565b9150509250929050565b600060208284031215613b6657613b6561470a565b5b6000613b748482850161393c565b91505092915050565b60008060408385031215613b9457613b9361470a565b5b6000613ba28582860161393c565b9250506020613bb385828601613966565b9150509250929050565b60008060408385031215613bd457613bd361470a565b5b6000613be285828601613951565b9250506020613bf385828601613912565b9150509250929050565b600060208284031215613c1357613c1261470a565b5b6000613c2184828501613966565b91505092915050565b60008060408385031215613c4157613c4061470a565b5b6000613c4f85828601613966565b9250506020613c6085828601613966565b9150509250929050565b600080600060608486031215613c8357613c8261470a565b5b6000613c9186828701613966565b9350506020613ca286828701613966565b9250506040613cb386828701613966565b9150509250925092565b600080600060608486031215613cd657613cd561470a565b5b6000613ce48682870161397b565b9350506020613cf58682870161397b565b9250506040613d068682870161397b565b9150509250925092565b6000613d1c8383613d37565b60208301905092915050565b613d31816145af565b82525050565b613d4081614536565b82525050565b613d4f81614536565b82525050565b6000613d60826143dc565b613d6a81856143ff565b9350613d75836143cc565b8060005b83811015613da6578151613d8d8882613d10565b9750613d98836143f2565b925050600181019050613d79565b5085935050505092915050565b613dbc8161455a565b82525050565b613dcb816145c1565b82525050565b613dda816145e5565b82525050565b6000613deb826143e7565b613df58185614410565b9350613e0581856020860161461b565b613e0e8161470f565b840191505092915050565b6000613e26601183614410565b9150613e3182614720565b602082019050919050565b6000613e49601a83614410565b9150613e5482614749565b602082019050919050565b6000613e6c600c83614410565b9150613e7782614772565b602082019050919050565b6000613e8f601d83614410565b9150613e9a8261479b565b602082019050919050565b6000613eb2602283614410565b9150613ebd826147c4565b604082019050919050565b6000613ed5602483614410565b9150613ee082614813565b604082019050919050565b6000613ef8600c83614410565b9150613f0382614862565b602082019050919050565b6000613f1b601a83614410565b9150613f268261488b565b602082019050919050565b6000613f3e601b83614410565b9150613f49826148b4565b602082019050919050565b6000613f61601b83614410565b9150613f6c826148dd565b602082019050919050565b6000613f84601483614410565b9150613f8f82614906565b602082019050919050565b6000613fa7601483614410565b9150613fb28261492f565b602082019050919050565b6000613fca600f83614410565b9150613fd582614958565b602082019050919050565b6000613fed600e83614410565b9150613ff882614981565b602082019050919050565b6000614010601f83614410565b915061401b826149aa565b602082019050919050565b61402f81614598565b82525050565b61403e816145a2565b82525050565b60006020820190506140596000830184613d46565b92915050565b60006020820190506140746000830184613d28565b92915050565b600060c08201905061408f6000830189613d46565b61409c6020830188614026565b6140a96040830187613dd1565b6140b66060830186613dd1565b6140c36080830185613d46565b6140d060a0830184614026565b979650505050505050565b60006020820190506140f06000830184613db3565b92915050565b600060208201905061410b6000830184613dc2565b92915050565b6000602082019050818103600083015261412b8184613de0565b905092915050565b6000602082019050818103600083015261414c81613e19565b9050919050565b6000602082019050818103600083015261416c81613e3c565b9050919050565b6000602082019050818103600083015261418c81613e5f565b9050919050565b600060208201905081810360008301526141ac81613e82565b9050919050565b600060208201905081810360008301526141cc81613ea5565b9050919050565b600060208201905081810360008301526141ec81613ec8565b9050919050565b6000602082019050818103600083015261420c81613eeb565b9050919050565b6000602082019050818103600083015261422c81613f0e565b9050919050565b6000602082019050818103600083015261424c81613f31565b9050919050565b6000602082019050818103600083015261426c81613f54565b9050919050565b6000602082019050818103600083015261428c81613f77565b9050919050565b600060208201905081810360008301526142ac81613f9a565b9050919050565b600060208201905081810360008301526142cc81613fbd565b9050919050565b600060208201905081810360008301526142ec81613fe0565b9050919050565b6000602082019050818103600083015261430c81614003565b9050919050565b60006020820190506143286000830184614026565b92915050565b600060a0820190506143436000830188614026565b6143506020830187613dd1565b81810360408301526143628186613d55565b90506143716060830185613d46565b61437e6080830184614026565b9695505050505050565b600060408201905061439d6000830185614026565b6143aa6020830184614026565b9392505050565b60006020820190506143c66000830184614035565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061442c82614598565b915061443783614598565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561446c5761446b61464e565b5b828201905092915050565b600061448282614598565b915061448d83614598565b92508261449d5761449c61467d565b5b828204905092915050565b60006144b382614598565b91506144be83614598565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156144f7576144f661464e565b5b828202905092915050565b600061450d82614598565b915061451883614598565b92508282101561452b5761452a61464e565b5b828203905092915050565b600061454182614578565b9050919050565b600061455382614578565b9050919050565b60008115159050919050565b600061457182614536565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006145ba826145f7565b9050919050565b60006145cc826145d3565b9050919050565b60006145de82614578565b9050919050565b60006145f082614598565b9050919050565b600061460282614609565b9050919050565b600061461482614578565b9050919050565b60005b8381101561463957808201518184015260208101905061461e565b83811115614648576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f54726164696e67206973206e6f7420656e61626c656420796574000000000000600082015250565b7f4e6f74206120736e697065720000000000000000000000000000000000000000600082015250565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b7f50616972206164726573732063616e6e6f742062652061646472657373207a6560008201527f726f000000000000000000000000000000000000000000000000000000000000602082015250565b7f526f75746572206164726573732063616e6e6f7420626520616464726573732060008201527f7a65726f00000000000000000000000000000000000000000000000000000000602082015250565b7f4e4f5420414e204f574e45520000000000000000000000000000000000000000600082015250565b7f4d617820686f6c64696e67206c696d6974206578636565646564000000000000600082015250565b7f63616e27742073657420666565206d6f7265207468616e203235250000000000600082015250565b7f57652063616e206e6f7420626c61636b6c69737420726f757465720000000000600082015250565b7f536e6970657220616c7265616479206578697374000000000000000000000000600082015250565b7f416c7265616479206c61756e6368656420626f69000000000000000000000000600082015250565b7f536e697065722064657465637465640000000000000000000000000000000000600082015250565b7f4e6f7420617574686f72697a6564000000000000000000000000000000000000600082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6149dc81614536565b81146149e757600080fd5b50565b6149f381614548565b81146149fe57600080fd5b50565b614a0a8161455a565b8114614a1557600080fd5b50565b614a2181614566565b8114614a2c57600080fd5b50565b614a3881614598565b8114614a4357600080fd5b5056fea264697066735822122021fd4a43177b7bc8666b8acfbf202ddbe9a961f86198766bb7760e5dfacd1df564736f6c634300080600330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d00000000000000000000000002fa5dbe11e4271c38372155e799a9f1f2dc7fd60000000000000000000000009959ea0ea3bc489e2ddfc4436eede3101438c582000000000000000000000000506b102e2cea72476a41f3d4200cf3fa7a56dd3e

Deployed Bytecode

0x6080604052600436106102e85760003560e01c80638ff3909911610190578063cec10c11116100dc578063e96fada211610095578063f68016b71161006f578063f68016b714610b43578063f84ba65d14610b6e578063f887ea4014610b97578063ffb54a9914610bc2576102ef565b8063e96fada214610ac6578063ee7d72b414610af1578063f2fde38b14610b1a576102ef565b8063cec10c11146109a8578063d51ed1c8146109d1578063d7c0103214610a0e578063dd62ed3e14610a37578063dd7bd77514610a74578063df20fd4914610a9d576102ef565b8063b4cde33411610149578063c107532911610123578063c107532914610900578063c6d2577d14610929578063c912ca5314610954578063ca33e64c1461097d576102ef565b8063b4cde33414610883578063bb4179fa146108ac578063bf56b371146108d5576102ef565b80638ff390991461077357806395d89b411461079c5780639d1944f5146107c7578063a8aa1b31146107f0578063a9059cbb1461081b578063ad5c464814610858576102ef565b806338d6f8471161024f5780635c85974f116102085780636ebb0be9116101e25780636ebb0be9146106b757806370a08231146106e0578063893d20e81461071d5780638c0b5e2214610748576102ef565b80635c85974f1461063a578063658d4b7f146106635780636ddd17131461068c576102ef565b806338d6f847146105285780633da56f1814610551578063402911431461057c5780634cf088d9146105a75780635154f136146105d2578063571ac8b0146105fd576102ef565b806318160ddd116102a157806318160ddd14610404578063201e79911461042f57806323b872dd146104585780632b112e49146104955780632f54bf6e146104c0578063313ce567146104fd576102ef565b806301339c21146102f45780630445b6671461030b5780630505e94d1461033657806306fdde031461035f578063095ea7b31461038a5780631161ae39146103c7576102ef565b366102ef57005b600080fd5b34801561030057600080fd5b50610309610bed565b005b34801561031757600080fd5b50610320610cc0565b60405161032d9190614313565b60405180910390f35b34801561034257600080fd5b5061035d60048036038101906103589190613bbd565b610cc6565b005b34801561036b57600080fd5b50610374610e74565b6040516103819190614111565b60405180910390f35b34801561039657600080fd5b506103b160048036038101906103ac9190613b10565b610eb1565b6040516103be91906140db565b60405180910390f35b3480156103d357600080fd5b506103ee60048036038101906103e99190613c2a565b610fa3565b6040516103fb91906140db565b60405180910390f35b34801561041057600080fd5b50610419610fb8565b6040516104269190614313565b60405180910390f35b34801561043b57600080fd5b5061045660048036038101906104519190613c2a565b610fc2565b005b34801561046457600080fd5b5061047f600480360381019061047a9190613a7d565b61101c565b60405161048c91906140db565b60405180910390f35b3480156104a157600080fd5b506104aa6111fe565b6040516104b79190614313565b60405180910390f35b3480156104cc57600080fd5b506104e760048036038101906104e29190613990565b61125f565b6040516104f491906140db565b60405180910390f35b34801561050957600080fd5b506105126112b8565b60405161051f91906143b1565b60405180910390f35b34801561053457600080fd5b5061054f600480360381019061054a9190613990565b6112c1565b005b34801561055d57600080fd5b50610566611482565b60405161057391906140db565b60405180910390f35b34801561058857600080fd5b50610591611495565b60405161059e9190614044565b60405180910390f35b3480156105b357600080fd5b506105bc6114bb565b6040516105c99190614044565b60405180910390f35b3480156105de57600080fd5b506105e76114e1565b6040516105f49190614313565b60405180910390f35b34801561060957600080fd5b50610624600480360381019061061f9190613990565b6114e7565b60405161063191906140db565b60405180910390f35b34801561064657600080fd5b50610661600480360381019061065c9190613bfd565b6114fc565b005b34801561066f57600080fd5b5061068a60048036038101906106859190613ad0565b61154e565b005b34801561069857600080fd5b506106a16115f1565b6040516106ae91906140db565b60405180910390f35b3480156106c357600080fd5b506106de60048036038101906106d99190613b10565b611604565b005b3480156106ec57600080fd5b5061070760048036038101906107029190613990565b6116a2565b6040516107149190614313565b60405180910390f35b34801561072957600080fd5b506107326116eb565b60405161073f9190614044565b60405180910390f35b34801561075457600080fd5b5061075d611714565b60405161076a9190614313565b60405180910390f35b34801561077f57600080fd5b5061079a60048036038101906107959190613990565b61171a565b005b3480156107a857600080fd5b506107b16117a6565b6040516107be9190614111565b60405180910390f35b3480156107d357600080fd5b506107ee60048036038101906107e99190613bfd565b6117e3565b005b3480156107fc57600080fd5b50610805611844565b6040516108129190614044565b60405180910390f35b34801561082757600080fd5b50610842600480360381019061083d9190613b10565b61186a565b60405161084f91906140db565b60405180910390f35b34801561086457600080fd5b5061086d61187f565b60405161087a9190614044565b60405180910390f35b34801561088f57600080fd5b506108aa60048036038101906108a59190613b50565b6118a5565b005b3480156108b857600080fd5b506108d360048036038101906108ce9190613ad0565b61190a565b005b3480156108e157600080fd5b506108ea6119ad565b6040516108f79190614313565b60405180910390f35b34801561090c57600080fd5b5061092760048036038101906109229190613b10565b6119b3565b005b34801561093557600080fd5b5061093e611a89565b60405161094b9190614313565b60405180910390f35b34801561096057600080fd5b5061097b60048036038101906109769190613bfd565b611a8f565b005b34801561098957600080fd5b50610992611ae1565b60405161099f9190614044565b60405180910390f35b3480156109b457600080fd5b506109cf60048036038101906109ca9190613c6a565b611b07565b005b3480156109dd57600080fd5b506109f860048036038101906109f39190613bfd565b611bdb565b604051610a059190614313565b60405180910390f35b348015610a1a57600080fd5b50610a356004803603810190610a309190613a2a565b611c4d565b005b348015610a4357600080fd5b50610a5e6004803603810190610a5991906139ea565b611d5d565b604051610a6b9190614313565b60405180910390f35b348015610a8057600080fd5b50610a9b6004803603810190610a969190613990565b611de4565b005b348015610aa957600080fd5b50610ac46004803603810190610abf9190613b7d565b611f13565b005b348015610ad257600080fd5b50610adb611f80565b604051610ae89190614044565b60405180910390f35b348015610afd57600080fd5b50610b186004803603810190610b139190613bfd565b611fa6565b005b348015610b2657600080fd5b50610b416004803603810190610b3c91906139bd565b611ff8565b005b348015610b4f57600080fd5b50610b586120ba565b604051610b659190614313565b60405180910390f35b348015610b7a57600080fd5b50610b956004803603810190610b909190613ad0565b6120c0565b005b348015610ba357600080fd5b50610bac612163565b604051610bb991906140f6565b60405180910390f35b348015610bce57600080fd5b50610bd7612189565b604051610be491906140db565b60405180910390f35b610bf63361125f565b610c35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2c906141f3565b60405180910390fd5b6000601c5414610c7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7190614293565b60405180910390fd5b43601c8190555042601d819055506001602060016101000a81548160ff0219169083151502179055506001602060006101000a81548160ff021916908315150217905550565b60215481565b610ccf3361125f565b610d0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d05906141f3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d75906141d3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610dee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de5906141b3565b60405180910390fd5b81601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60606040518060400160405280600881526020017f4d6f6f6e4368616e000000000000000000000000000000000000000000000000815250905090565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610f919190614313565b60405180910390a36001905092915050565b600082610faf83611bdb565b11905092915050565b6000600454905090565b610fcb3361125f565b61100a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611001906141f3565b60405180910390fd5b81601881905550806019819055505050565b6000600454600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146111ea57611169826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121c89092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6111f584848461221d565b90509392505050565b600061125a61120d60006116a2565b61124c61123b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166116a2565b600454612e4190919063ffffffff16565b612e4190919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b6112ca3361125f565b611309576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611300906141f3565b60405180910390fd5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561139a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139190614253565b60405180910390fd5b600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611427576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141e90614273565b60405180910390fd5b6001600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601360009054906101000a900460ff1681565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b60006114f582600454610eb1565b9050919050565b6115053361125f565b611544576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153b906141f3565b60405180910390fd5b8060058190555050565b6115573361125f565b611596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158d906141f3565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602060009054906101000a900460ff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611694576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168b906142d3565b60405180910390fd5b61169e8282612e57565b5050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60055481565b6117233361125f565b611762576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611759906141f3565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606040518060400160405280600281526020017f4d43000000000000000000000000000000000000000000000000000000000000815250905090565b6117ec3361125f565b61182b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611822906141f3565b60405180910390fd5b620b71b0811061183a57600080fd5b80601f8190555050565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061187733848461221d565b905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6118ae3361125f565b6118ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e4906141f3565b60405180910390fd5b80601360006101000a81548160ff02191690831515021790555050565b6119133361125f565b611952576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611949906141f3565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601c5481565b6119bc3361125f565b6119fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f2906141f3565b60405180910390fd5b60008111611a3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3590614193565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611a84573d6000803e3d6000fd5b505050565b601d5481565b611a983361125f565b611ad7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ace906141f3565b60405180910390fd5b8060068190555050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611b103361125f565b611b4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b46906141f3565b60405180910390fd5b82600d8190555081600e8190555080600f81905550611b8981611b7b8486612fe190919063ffffffff16565b612fe190919063ffffffff16565b6010819055506012546010541115611bd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcd90614233565b60405180910390fd5b505050565b6000611c46611be86111fe565b611c38611c296002611c1b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166116a2565b61219c90919063ffffffff16565b8561219c90919063ffffffff16565b6121b290919063ffffffff16565b9050919050565b611c563361125f565b611c95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8c906141f3565b60405180910390fd5b82601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611ded3361125f565b611e2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e23906141f3565b60405180910390fd5b600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611eb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eaf90614173565b60405180910390fd5b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611f1c3361125f565b611f5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f52906141f3565b60405180910390fd5b81602060006101000a81548160ff021916908315150217905550806021819055505050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611faf3361125f565b611fee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe5906141f3565b60405180910390fd5b8060148190555050565b6120013361125f565b612040576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612037906141f3565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516120af919061405f565b60405180910390a150565b60145481565b6120c93361125f565b612108576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ff906141f3565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602060019054906101000a900460ff1681565b600081836121aa91906144a8565b905092915050565b600081836121c09190614477565b905092915050565b6000838311158290612210576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122079190614111565b60405180910390fd5b5082840390509392505050565b6000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156122ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a3906142b3565b60405180910390fd5b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612339576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612330906142b3565b60405180910390fd5b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123dd5750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156126fd57602060019054906101000a900460ff166124e257601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156124a25750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b6124e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d890614153565b60405180910390fd5b5b601e54601d546124f29190614421565b4210801561254e5750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156126b757601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612606576001600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506126b6565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156126b5576001600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b5b6005548211156126fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f390614133565b60405180910390fd5b5b6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806127a85750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b90506000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806128555750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b905081806128605750805b156129dc576014543a1180156128825750601360009054906101000a900460ff165b156129db57811561292d576001600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508473ffffffffffffffffffffffffffffffffffffffff167f8c21268f4379683ad2b81c32b4357f44a17e83e73d741ba6e8c23e085e57135160405160405180910390a26129d0565b80156129cf576001600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508573ffffffffffffffffffffffffffffffffffffffff167f8c21268f4379683ad2b81c32b4357f44a17e83e73d741ba6e8c23e085e57135160405160405180910390a25b5b600092505050612e3a565b5b602260009054906101000a900460ff1615612a05576129fc868686612ff7565b92505050612e3a565b612a0d6131ca565b15612a1b57612a1a6132a1565b5b612aa4846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121c89092919063ffffffff16565b600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612b8a5750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80612c3d5750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614158015612c3c5750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b5b15612c4a57849050612c57565b612c5487866137ce565b90505b600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612d385760065481600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cf69190614421565b1115612d37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d2e90614213565b60405180910390fd5b5b612d8a81600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe190919063ffffffff16565b600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e2a9190614313565b60405180910390a3600193505050505b9392505050565b60008183612e4f9190614502565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612ec7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ebe906142f3565b60405180910390fd5b612edc81600454612fe190919063ffffffff16565b600481905550612f3481600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe190919063ffffffff16565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612fd59190614313565b60405180910390a35050565b60008183612fef9190614421565b905092915050565b6000613082826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121c89092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061311782600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe190919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516131b79190614313565b60405180910390a3600190509392505050565b6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156132375750602260009054906101000a900460ff16155b801561324f5750602060009054906101000a900460ff165b801561329c5750602154600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001602260006101000a81548160ff02191690831515021790555060006132cc601854601954610fa3565b6132d857600d546132db565b60005b9050600061331b600261330d6010546132ff8660215461219c90919063ffffffff16565b6121b290919063ffffffff16565b6121b290919063ffffffff16565b9050600061333482602154612e4190919063ffffffff16565b90506000600267ffffffffffffffff811115613353576133526146db565b5b6040519080825280602002602001820160405280156133815781602001602082028036833780820191505090505b5090503081600081518110613399576133986146ac565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061340a576134096146ac565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b81526004016134ad95949392919061432e565b600060405180830381600087803b1580156134c757600080fd5b505af11580156134db573d6000803e3d6000fd5b5050505060006134f48247612e4190919063ffffffff16565b9050600061352061350f6002896121b290919063ffffffff16565b601054612e4190919063ffffffff16565b9050600061355c600261354e846135408c8861219c90919063ffffffff16565b6121b290919063ffffffff16565b6121b290919063ffffffff16565b9050600061358783613579600f548761219c90919063ffffffff16565b6121b290919063ffffffff16565b905060006135b2846135a4600e548861219c90919063ffffffff16565b6121b290919063ffffffff16565b9050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015801561361c573d6000803e3d6000fd5b50601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613685573d6000803e3d6000fd5b5060008911156137a757601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c600080601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016137189695949392919061407a565b6060604051808303818588803b15801561373157600080fd5b505af1158015613745573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061376a9190613cbd565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a60405161379e929190614388565b60405180910390a15b505050505050505050506000602260006101000a81548160ff021916908315150217905550565b6000806137fa6011546137ec6010548661219c90919063ffffffff16565b6121b290919063ffffffff16565b905061384e81600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe190919063ffffffff16565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516138ee9190614313565b60405180910390a36139098184612e4190919063ffffffff16565b91505092915050565b600081359050613921816149d3565b92915050565b600081359050613936816149ea565b92915050565b60008135905061394b81614a01565b92915050565b60008135905061396081614a18565b92915050565b60008135905061397581614a2f565b92915050565b60008151905061398a81614a2f565b92915050565b6000602082840312156139a6576139a561470a565b5b60006139b484828501613912565b91505092915050565b6000602082840312156139d3576139d261470a565b5b60006139e184828501613927565b91505092915050565b60008060408385031215613a0157613a0061470a565b5b6000613a0f85828601613912565b9250506020613a2085828601613912565b9150509250929050565b600080600060608486031215613a4357613a4261470a565b5b6000613a5186828701613912565b9350506020613a6286828701613912565b9250506040613a7386828701613912565b9150509250925092565b600080600060608486031215613a9657613a9561470a565b5b6000613aa486828701613912565b9350506020613ab586828701613912565b9250506040613ac686828701613966565b9150509250925092565b60008060408385031215613ae757613ae661470a565b5b6000613af585828601613912565b9250506020613b068582860161393c565b9150509250929050565b60008060408385031215613b2757613b2661470a565b5b6000613b3585828601613912565b9250506020613b4685828601613966565b9150509250929050565b600060208284031215613b6657613b6561470a565b5b6000613b748482850161393c565b91505092915050565b60008060408385031215613b9457613b9361470a565b5b6000613ba28582860161393c565b9250506020613bb385828601613966565b9150509250929050565b60008060408385031215613bd457613bd361470a565b5b6000613be285828601613951565b9250506020613bf385828601613912565b9150509250929050565b600060208284031215613c1357613c1261470a565b5b6000613c2184828501613966565b91505092915050565b60008060408385031215613c4157613c4061470a565b5b6000613c4f85828601613966565b9250506020613c6085828601613966565b9150509250929050565b600080600060608486031215613c8357613c8261470a565b5b6000613c9186828701613966565b9350506020613ca286828701613966565b9250506040613cb386828701613966565b9150509250925092565b600080600060608486031215613cd657613cd561470a565b5b6000613ce48682870161397b565b9350506020613cf58682870161397b565b9250506040613d068682870161397b565b9150509250925092565b6000613d1c8383613d37565b60208301905092915050565b613d31816145af565b82525050565b613d4081614536565b82525050565b613d4f81614536565b82525050565b6000613d60826143dc565b613d6a81856143ff565b9350613d75836143cc565b8060005b83811015613da6578151613d8d8882613d10565b9750613d98836143f2565b925050600181019050613d79565b5085935050505092915050565b613dbc8161455a565b82525050565b613dcb816145c1565b82525050565b613dda816145e5565b82525050565b6000613deb826143e7565b613df58185614410565b9350613e0581856020860161461b565b613e0e8161470f565b840191505092915050565b6000613e26601183614410565b9150613e3182614720565b602082019050919050565b6000613e49601a83614410565b9150613e5482614749565b602082019050919050565b6000613e6c600c83614410565b9150613e7782614772565b602082019050919050565b6000613e8f601d83614410565b9150613e9a8261479b565b602082019050919050565b6000613eb2602283614410565b9150613ebd826147c4565b604082019050919050565b6000613ed5602483614410565b9150613ee082614813565b604082019050919050565b6000613ef8600c83614410565b9150613f0382614862565b602082019050919050565b6000613f1b601a83614410565b9150613f268261488b565b602082019050919050565b6000613f3e601b83614410565b9150613f49826148b4565b602082019050919050565b6000613f61601b83614410565b9150613f6c826148dd565b602082019050919050565b6000613f84601483614410565b9150613f8f82614906565b602082019050919050565b6000613fa7601483614410565b9150613fb28261492f565b602082019050919050565b6000613fca600f83614410565b9150613fd582614958565b602082019050919050565b6000613fed600e83614410565b9150613ff882614981565b602082019050919050565b6000614010601f83614410565b915061401b826149aa565b602082019050919050565b61402f81614598565b82525050565b61403e816145a2565b82525050565b60006020820190506140596000830184613d46565b92915050565b60006020820190506140746000830184613d28565b92915050565b600060c08201905061408f6000830189613d46565b61409c6020830188614026565b6140a96040830187613dd1565b6140b66060830186613dd1565b6140c36080830185613d46565b6140d060a0830184614026565b979650505050505050565b60006020820190506140f06000830184613db3565b92915050565b600060208201905061410b6000830184613dc2565b92915050565b6000602082019050818103600083015261412b8184613de0565b905092915050565b6000602082019050818103600083015261414c81613e19565b9050919050565b6000602082019050818103600083015261416c81613e3c565b9050919050565b6000602082019050818103600083015261418c81613e5f565b9050919050565b600060208201905081810360008301526141ac81613e82565b9050919050565b600060208201905081810360008301526141cc81613ea5565b9050919050565b600060208201905081810360008301526141ec81613ec8565b9050919050565b6000602082019050818103600083015261420c81613eeb565b9050919050565b6000602082019050818103600083015261422c81613f0e565b9050919050565b6000602082019050818103600083015261424c81613f31565b9050919050565b6000602082019050818103600083015261426c81613f54565b9050919050565b6000602082019050818103600083015261428c81613f77565b9050919050565b600060208201905081810360008301526142ac81613f9a565b9050919050565b600060208201905081810360008301526142cc81613fbd565b9050919050565b600060208201905081810360008301526142ec81613fe0565b9050919050565b6000602082019050818103600083015261430c81614003565b9050919050565b60006020820190506143286000830184614026565b92915050565b600060a0820190506143436000830188614026565b6143506020830187613dd1565b81810360408301526143628186613d55565b90506143716060830185613d46565b61437e6080830184614026565b9695505050505050565b600060408201905061439d6000830185614026565b6143aa6020830184614026565b9392505050565b60006020820190506143c66000830184614035565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061442c82614598565b915061443783614598565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561446c5761446b61464e565b5b828201905092915050565b600061448282614598565b915061448d83614598565b92508261449d5761449c61467d565b5b828204905092915050565b60006144b382614598565b91506144be83614598565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156144f7576144f661464e565b5b828202905092915050565b600061450d82614598565b915061451883614598565b92508282101561452b5761452a61464e565b5b828203905092915050565b600061454182614578565b9050919050565b600061455382614578565b9050919050565b60008115159050919050565b600061457182614536565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006145ba826145f7565b9050919050565b60006145cc826145d3565b9050919050565b60006145de82614578565b9050919050565b60006145f082614598565b9050919050565b600061460282614609565b9050919050565b600061461482614578565b9050919050565b60005b8381101561463957808201518184015260208101905061461e565b83811115614648576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f54726164696e67206973206e6f7420656e61626c656420796574000000000000600082015250565b7f4e6f74206120736e697065720000000000000000000000000000000000000000600082015250565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b7f50616972206164726573732063616e6e6f742062652061646472657373207a6560008201527f726f000000000000000000000000000000000000000000000000000000000000602082015250565b7f526f75746572206164726573732063616e6e6f7420626520616464726573732060008201527f7a65726f00000000000000000000000000000000000000000000000000000000602082015250565b7f4e4f5420414e204f574e45520000000000000000000000000000000000000000600082015250565b7f4d617820686f6c64696e67206c696d6974206578636565646564000000000000600082015250565b7f63616e27742073657420666565206d6f7265207468616e203235250000000000600082015250565b7f57652063616e206e6f7420626c61636b6c69737420726f757465720000000000600082015250565b7f536e6970657220616c7265616479206578697374000000000000000000000000600082015250565b7f416c7265616479206c61756e6368656420626f69000000000000000000000000600082015250565b7f536e697065722064657465637465640000000000000000000000000000000000600082015250565b7f4e6f7420617574686f72697a6564000000000000000000000000000000000000600082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6149dc81614536565b81146149e757600080fd5b50565b6149f381614548565b81146149fe57600080fd5b50565b614a0a8161455a565b8114614a1557600080fd5b50565b614a2181614566565b8114614a2c57600080fd5b50565b614a3881614598565b8114614a4357600080fd5b5056fea264697066735822122021fd4a43177b7bc8666b8acfbf202ddbe9a961f86198766bb7760e5dfacd1df564736f6c63430008060033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d00000000000000000000000002fa5dbe11e4271c38372155e799a9f1f2dc7fd60000000000000000000000009959ea0ea3bc489e2ddfc4436eede3101438c582000000000000000000000000506b102e2cea72476a41f3d4200cf3fa7a56dd3e

-----Decoded View---------------
Arg [0] : _router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [1] : _market (address): 0x02fA5dbE11E4271c38372155E799a9F1f2Dc7FD6
Arg [2] : _teamFee (address): 0x9959Ea0eA3BC489e2ddFC4436eEdE3101438C582
Arg [3] : newOwner (address): 0x506b102E2cea72476a41f3D4200Cf3fa7a56dd3E

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [1] : 00000000000000000000000002fa5dbe11e4271c38372155e799a9f1f2dc7fd6
Arg [2] : 0000000000000000000000009959ea0ea3bc489e2ddfc4436eede3101438c582
Arg [3] : 000000000000000000000000506b102e2cea72476a41f3d4200cf3fa7a56dd3e


Deployed Bytecode Sourcemap

6363:14835:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17002:244;;;;;;;;;;;;;:::i;:::-;;7993:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20215:331;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9454:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9979:248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20025:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9136:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19192:205;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10556:419;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19662:148;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4353:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9246:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20664:247;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7362:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7594:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6468:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6808:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10235:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17254:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17553:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7931:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13965:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9656:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9556:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6736:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20554:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9348:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19519:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7745:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10360:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6442:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18005:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17680:166;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7773:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17356:189;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7805:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19405:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7509:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18284:374;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19818:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18666:332;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9783:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20919:166;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19006:178;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7552:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17905:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4464:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7400:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18126:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7717:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7961:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17002:244;4289:19;4297:10;4289:7;:19::i;:::-;4281:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;17070:1:::1;17056:10;;:15;17048:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;17120:12;17107:10;:25;;;;17165:15;17143:19;:37;;;;17205:4;17191:11;;:18;;;;;;;;;;;;;;;;;;17234:4;17220:11;;:18;;;;;;;;;;;;;;;;;;17002:244::o:0;7993:50::-;;;;:::o;20215:331::-;4289:19;4297:10;4289:7;:19::i;:::-;4281:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;20345:1:::1;20317:30;;20325:7;20317:30;;;;20295:116;;;;;;;;;;;;:::i;:::-;;;;;;;;;20447:1;20430:19;;:5;:19;;;;20422:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;20508:7;20499:6;;:16;;;;;;;;;;;;;;;;;;20533:5;20526:4;;:12;;;;;;;;;;;;;;;;;;20215:331:::0;;:::o;9454:94::-;9502:13;9535:5;;;;;;;;;;;;;;;;;9528:12;;9454:94;:::o;9979:248::-;10081:4;10138:6;10103:11;:23;10115:10;10103:23;;;;;;;;;;;;;;;:32;10127:7;10103:32;;;;;;;;;;;;;;;:41;;;;10181:7;10160:37;;10169:10;10160:37;;;10190:6;10160:37;;;;;;:::i;:::-;;;;;;;;10215:4;10208:11;;9979:248;;;;:::o;20025:182::-;20132:4;20193:6;20161:29;20181:8;20161:19;:29::i;:::-;:38;20154:45;;20025:182;;;;:::o;9136:102::-;9191:7;9218:12;;9211:19;;9136:102;:::o;19192:205::-;4289:19;4297:10;4289:7;:19::i;:::-;4281:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;19330:7:::1;19312:15;:25;;;;19377:12;19348:26;:41;;;;19192:205:::0;;:::o;10556:419::-;10690:4;10746:12;;10711:11;:19;10723:6;10711:19;;;;;;;;;;;;;;;:31;10731:10;10711:31;;;;;;;;;;;;;;;;:47;10707:201;;10809:87;10863:6;10809:87;;;;;;;;;;;;;;;;;:11;:19;10821:6;10809:19;;;;;;;;;;;;;;;:31;10829:10;10809:31;;;;;;;;;;;;;;;;:53;;:87;;;;;:::i;:::-;10775:11;:19;10787:6;10775:19;;;;;;;;;;;;;;;:31;10795:10;10775:31;;;;;;;;;;;;;;;:121;;;;10707:201;10927:40;10941:6;10949:9;10960:6;10927:13;:40::i;:::-;10920:47;;10556:419;;;;;:::o;19662:148::-;19715:7;19742:60;19780:21;19798:1;19780:9;:21::i;:::-;19742:33;19759:15;19769:4;;;;;;;;;;;19759:9;:15::i;:::-;19742:12;;:16;;:33;;;;:::i;:::-;:37;;:60;;;;:::i;:::-;19735:67;;19662:148;:::o;4353:103::-;4408:4;4443:5;;;;;;;;;;;4432:16;;:7;:16;;;4425:23;;4353:103;;;:::o;9246:94::-;9298:5;6668:2;9316:16;;9246:94;:::o;20664:247::-;4289:19;4297:10;4289:7;:19::i;:::-;4281:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;20765:6:::1;;;;;;;;;;;20745:27;;:8;:27;;;;20737:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20824:8;:18;20833:8;20824:18;;;;;;;;;;;;;;;;;;;;;;;;;20823:19;20815:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;20899:4;20878:8;:18;20887:8;20878:18;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;20664:247:::0;:::o;7362:31::-;;;;;;;;;;;;;:::o;7594:30::-;;;;;;;;;;;;;:::o;6468:22::-;;;;;;;;;;;;;:::o;6808:63::-;;;;:::o;10235:117::-;10290:4;10314:30;10322:7;10331:12;;10314:7;:30::i;:::-;10307:37;;10235:117;;;:::o;17254:94::-;4289:19;4297:10;4289:7;:19::i;:::-;4281:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;17334:6:::1;17320:11;:20;;;;17254:94:::0;:::o;17553:119::-;4289:19;4297:10;4289:7;:19::i;:::-;4281:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;17658:6:::1;17636:11;:19;17648:6;17636:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;17553:119:::0;;:::o;7931:23::-;;;;;;;;;;;;;:::o;13965:159::-;14060:7;;;;;;;;;;;14046:21;;:10;:21;;;14038:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;14097:19;14103:3;14108:7;14097:5;:19::i;:::-;13965:159;;:::o;9656:119::-;9722:7;9749:9;:18;9759:7;9749:18;;;;;;;;;;;;;;;;9742:25;;9656:119;;;:::o;9556:92::-;9608:7;9635:5;;;;;;;;;;;9628:12;;9556:92;:::o;6736:59::-;;;;:::o;20554:102::-;4289:19;4297:10;4289:7;:19::i;:::-;4281:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;20636:12:::1;20626:7;;:22;;;;;;;;;;;;;;;;;;20554:102:::0;:::o;9348:98::-;9398:13;9431:7;;;;;;;;;;;;;;;;;9424:14;;9348:98;:::o;19519:135::-;4289:19;4297:10;4289:7;:19::i;:::-;4281:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;19608:6:::1;19602:3;:12;19594:21;;;::::0;::::1;;19643:3;19626:14;:20;;;;19519:135:::0;:::o;7745:19::-;;;;;;;;;;;;;:::o;10360:188::-;10467:4;10496:44;10510:10;10522:9;10533:6;10496:13;:44::i;:::-;10489:51;;10360:188;;;;:::o;6442:19::-;;;;;;;;;;;;;:::o;18005:113::-;4289:19;4297:10;4289:7;:19::i;:::-;4281:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;18103:7:::1;18081:19;;:29;;;;;;;;;;;;;;;;;;18005:113:::0;:::o;17680:166::-;4289:19;4297:10;4289:7;:19::i;:::-;4281:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;17830:8:::1;17798:21;:29;17820:6;17798:29;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;17680:166:::0;;:::o;7773:25::-;;;;:::o;17356:189::-;4289:19;4297:10;4289:7;:19::i;:::-;4281:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;17459:1:::1;17449:7;:11;17441:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;17513:5;17505:23;;:32;17529:7;17505:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;17356:189:::0;;:::o;7805:34::-;;;;:::o;19405:106::-;4289:19;4297:10;4289:7;:19::i;:::-;4281:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;19497:6:::1;19479:15;:24;;;;19405:106:::0;:::o;7509:36::-;;;;;;;;;;;;;:::o;18284:374::-;4289:19;4297:10;4289:7;:19::i;:::-;4281:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;18441:13:::1;18426:12;:28;;;;18475:8;18465:7;:18;;;;18506:10;18494:9;:22;;;;18538:43;18570:10;18538:27;18556:8;18538:13;:17;;:27;;;;:::i;:::-;:31;;:43;;;;:::i;:::-;18527:8;:54;;;;18612:6;;18600:8;;:18;;18592:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;18284:374:::0;;;:::o;19818:199::-;19913:7;19945:64;19986:22;:20;:22::i;:::-;19945:36;19958:22;19978:1;19958:15;19968:4;;;;;;;;;;;19958:9;:15::i;:::-;:19;;:22;;;;:::i;:::-;19945:8;:12;;:36;;;;:::i;:::-;:40;;:64;;;;:::i;:::-;19938:71;;19818:199;;;:::o;18666:332::-;4289:19;4297:10;4289:7;:19::i;:::-;4281:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;18868:22:::1;18844:21;;:46;;;;;;;;;;;;;;;;;;18924:21;18901:20;;:44;;;;;;;;;;;;;;;;;;18974:16;18956:15;;:34;;;;;;;;;;;;;;;;;;18666:332:::0;;;:::o;9783:188::-;9903:7;9935:11;:19;9947:6;9935:19;;;;;;;;;;;;;;;:28;9955:7;9935:28;;;;;;;;;;;;;;;;9928:35;;9783:188;;;;:::o;20919:166::-;4289:19;4297:10;4289:7;:19::i;:::-;4281:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;21005:8:::1;:18;21014:8;21005:18;;;;;;;;;;;;;;;;;;;;;;;;;20997:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;21072:5;21051:8;:18;21060:8;21051:18;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;20919:166:::0;:::o;19006:178::-;4289:19;4297:10;4289:7;:19::i;:::-;4281:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;19134:8:::1;19120:11;;:22;;;;;;;;;;;;;;;;;;19169:7;19153:13;:23;;;;19006:178:::0;;:::o;7552:35::-;;;;;;;;;;;;;:::o;17905:92::-;4289:19;4297:10;4289:7;:19::i;:::-;4281:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;17983:6:::1;17972:8;:17;;;;17905:92:::0;:::o;4464:136::-;4289:19;4297:10;4289:7;:19::i;:::-;4281:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;4548:3:::1;4540:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;4567:25;4588:3;4567:25;;;;;;:::i;:::-;;;;;;;;4464:136:::0;:::o;7400:38::-;;;;:::o;18126:150::-;4289:19;4297:10;4289:7;:19::i;:::-;4281:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;18262:6:::1;18236:15;:23;18252:6;18236:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;18126:150:::0;;:::o;7717:21::-;;;;;;;;;;;;;:::o;7961:23::-;;;;;;;;;;;;;:::o;2010:98::-;2068:7;2099:1;2095;:5;;;;:::i;:::-;2088:12;;2010:98;;;;:::o;2116:::-;2174:7;2205:1;2201;:5;;;;:::i;:::-;2194:12;;2116:98;;;;:::o;2328:240::-;2448:7;2506:1;2501;:6;;2509:12;2493:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2548:1;2544;:5;2537:12;;2328:240;;;;;:::o;11305:2652::-;11431:4;11457:8;:16;11466:6;11457:16;;;;;;;;;;;;;;;;;;;;;;;;;11456:17;11448:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;11513:8;:19;11522:9;11513:19;;;;;;;;;;;;;;;;;;;;;;;;;11512:20;11504:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;11568:15;:23;11584:6;11568:23;;;;;;;;;;;;;;;;;;;;;;;;;11567:24;:55;;;;;11596:15;:26;11612:9;11596:26;;;;;;;;;;;;;;;;;;;;;;;;;11595:27;11567:55;11563:782;;;11688:11;;;;;;;;;;;11683:188;;11760:4;;;;;;;;;;;11750:14;;:6;:14;;;;:35;;;;;11781:4;;;;;;;;;;;11768:17;;:9;:17;;;;11750:35;11720:135;;;;;;;;;;;;:::i;:::-;;;;;;;;;11683:188;11971:15;;11949:19;;:37;;;;:::i;:::-;11931:15;:55;:101;;;;;12025:6;;;;;;;;;;;12007:25;;:6;:25;;;;11931:101;11909:357;;;12081:4;;;;;;;;;;;12071:14;;:6;:14;;;12067:184;;;12132:4;12110:8;:19;12119:9;12110:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;12067:184;;;12179:4;;;;;;;;;;;12166:17;;:9;:17;;;12162:89;;;12227:4;12208:8;:16;12217:6;12208:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;12162:89;12067:184;11909:357;12300:11;;12290:6;:21;;12282:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;11563:782;12357:10;12380:4;;;;;;;;;;;12370:14;;:6;:14;;;:43;;;;12406:6;;;;;;;;;;;12388:25;;:6;:25;;;12370:43;12357:56;;12424:11;12451:4;;;;;;;;;;;12438:17;;:9;:17;;;:49;;;;12480:6;;;;;;;;;;;12459:28;;:9;:28;;;12438:49;12424:63;;12504:5;:15;;;;12513:6;12504:15;12500:422;;;12554:8;;12540:11;:22;:45;;;;;12566:19;;;;;;;;;;;12540:45;12536:375;;;12610:5;12606:259;;;12662:4;12640:8;:19;12649:9;12640:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;12705:9;12694:21;;;;;;;;;;;;12606:259;;;12745:6;12741:124;;;12795:4;12776:8;:16;12785:6;12776:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;12838:6;12827:18;;;;;;;;;;;;12741:124;12606:259;12890:5;12883:12;;;;;;12536:375;12500:422;12938:6;;;;;;;;;;;12934:87;;;12968:41;12983:6;12991:9;13002:6;12968:14;:41::i;:::-;12961:48;;;;;;12934:87;13037:16;:14;:16::i;:::-;13033:59;;;13070:10;:8;:10::i;:::-;13033:59;13124:90;13160:6;13124:90;;;;;;;;;;;;;;;;;:9;:17;13134:6;13124:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;13104:9;:17;13114:6;13104:17;;;;;;;;;;;;;;;:110;;;;13225:22;13276:11;:19;13288:6;13276:19;;;;;;;;;;;;;;;;;;;;;;;;;:58;;;;13312:11;:22;13324:9;13312:22;;;;;;;;;;;;;;;;;;;;;;;;;13276:58;:112;;;;13362:4;;;;;;;;;;;13352:14;;:6;:14;;;;:35;;;;;13383:4;;;;;;;;;;;13370:17;;:9;:17;;;;13352:35;13276:112;13258:265;;;13432:6;13415:23;;13258:265;;;13488:23;13496:6;13504;13488:7;:23::i;:::-;13471:40;;13258:265;13586:21;:32;13608:9;13586:32;;;;;;;;;;;;;;;;;;;;;;;;;13581:210;;13702:15;;13684:14;13661:9;:20;13671:9;13661:20;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;:56;;13635:144;;;;;;;;;;;;:::i;:::-;;;;;;;;;13581:210;13826:40;13851:14;13826:9;:20;13836:9;13826:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;13803:9;:20;13813:9;13803:20;;;;;;;;;;;;;;;:63;;;;13901:9;13884:43;;13893:6;13884:43;;;13912:14;13884:43;;;;;;:::i;:::-;;;;;;;;13945:4;13938:11;;;;;11305:2652;;;;;;:::o;1904:98::-;1962:7;1993:1;1989;:5;;;;:::i;:::-;1982:12;;1904:98;;;;:::o;10983:314::-;11086:1;11067:21;;:7;:21;;;;11059:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;11150:24;11167:6;11150:12;;:16;;:24;;;;:::i;:::-;11135:12;:39;;;;11206:30;11229:6;11206:9;:18;11216:7;11206:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;11185:9;:18;11195:7;11185:18;;;;;;;;;;;;;;;:51;;;;11273:7;11252:37;;11269:1;11252:37;;;11282:6;11252:37;;;;;;:::i;:::-;;;;;;;;10983:314;;:::o;1798:98::-;1856:7;1887:1;1883;:5;;;;:::i;:::-;1876:12;;1798:98;;;;:::o;14132:401::-;14259:4;14296:90;14332:6;14296:90;;;;;;;;;;;;;;;;;:9;:17;14306:6;14296:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;14276:9;:17;14286:6;14276:17;;;;;;;;;;;;;;;:110;;;;14420:32;14445:6;14420:9;:20;14430:9;14420:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;14397:9;:20;14407:9;14397:20;;;;;;;;;;;;;;;:55;;;;14485:9;14468:35;;14477:6;14468:35;;;14496:6;14468:35;;;;;;:::i;:::-;;;;;;;;14521:4;14514:11;;14132:401;;;;;:::o;14905:222::-;14954:4;15005;;;;;;;;;;;14991:18;;:10;:18;;;;:42;;;;;15027:6;;;;;;;;;;;15026:7;14991:42;:70;;;;;15050:11;;;;;;;;;;;14991:70;:128;;;;;15106:13;;15078:9;:24;15096:4;15078:24;;;;;;;;;;;;;;;;:41;;14991:128;14971:148;;14905:222;:::o;15135:1761::-;8118:4;8109:6;;:13;;;;;;;;;;;;;;;;;;15184:27:::1;15214:97;15244:15;;15274:26;;15214:15;:97::i;:::-;:142;;15344:12;;15214:142;;;15327:1;15214:142;15184:172;;15367:23;15393:101;15492:1;15393:80;15464:8;;15393:52;15425:19;15393:13;;:31;;:52;;;;:::i;:::-;:70;;:80;;;;:::i;:::-;:98;;:101;;;;:::i;:::-;15367:127;;15505:20;15528:34;15546:15;15528:13;;:17;;:34;;;;:::i;:::-;15505:57;;15575:21;15613:1;15599:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15575:40;;15644:4;15626;15631:1;15626:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;15670:4;;;;;;;;;;;15660;15665:1;15660:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;15685:21;15709;15685:45;;15743:6;;;;;;;;;;;:57;;;15815:12;15842:1;15858:4;15885;15905:15;15743:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15944:17;15964:40;15990:13;15964:21;:25;;:40;;;;:::i;:::-;15944:60;;16017:19;16039:40;16052:26;16076:1;16052:19;:23;;:26;;;;:::i;:::-;16039:8;;:12;;:40;;;;:::i;:::-;16017:62;;16092:26;16121:100;16219:1;16121:79;16188:11;16121:48;16149:19;16121:9;:27;;:48;;;;:::i;:::-;:66;;:79;;;;:::i;:::-;:97;;:100;;;;:::i;:::-;16092:129;;16232:26;16261:41;16290:11;16261:24;16275:9;;16261;:13;;:24;;;;:::i;:::-;:28;;:41;;;;:::i;:::-;16232:70;;16313:24;16340:39;16367:11;16340:22;16354:7;;16340:9;:13;;:22;;;;:::i;:::-;:26;;:39;;;;:::i;:::-;16313:66;;16400:20;;;;;;;;;;;16392:38;;:58;16431:18;16392:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;16469:15;;;;;;;;;;;16461:33;;:51;16495:16;16461:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;16547:1;16529:15;:19;16525:364;;;16565:6;;;;;;;;;;;:22;;;16595:18;16641:4;16665:15;16699:1;16719::::0;16739:21:::1;;;;;;;;;;;16779:15;16565:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16829:48;16841:18;16861:15;16829:48;;;;;;;:::i;:::-;;;;;;;;16525:364;15173:1723;;;;;;;;;;8154:5:::0;8145:6;;:14;;;;;;;;;;;;;;;;;;15135:1761::o;14541:356::-;14626:7;14651:17;14671:40;14696:14;;14671:20;14682:8;;14671:6;:10;;:20;;;;:::i;:::-;:24;;:40;;;;:::i;:::-;14651:60;;14751:39;14780:9;14751;:24;14769:4;14751:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;14724:9;:24;14742:4;14724:24;;;;;;;;;;;;;;;:66;;;;14831:4;14806:42;;14815:6;14806:42;;;14838:9;14806:42;;;;;;:::i;:::-;;;;;;;;14868:21;14879:9;14868:6;:10;;:21;;;;:::i;:::-;14861:28;;;14541:356;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:155::-;206:5;244:6;231:20;222:29;;260:41;295:5;260:41;:::i;:::-;212:95;;;;:::o;313:133::-;356:5;394:6;381:20;372:29;;410:30;434:5;410:30;:::i;:::-;362:84;;;;:::o;452:169::-;513:5;551:6;538:20;529:29;;567:48;609:5;567:48;:::i;:::-;519:102;;;;:::o;627:139::-;673:5;711:6;698:20;689:29;;727:33;754:5;727:33;:::i;:::-;679:87;;;;:::o;772:143::-;829:5;860:6;854:13;845:22;;876:33;903:5;876:33;:::i;:::-;835:80;;;;:::o;921:329::-;980:6;1029:2;1017:9;1008:7;1004:23;1000:32;997:2;;;1035:79;;:::i;:::-;997:2;1155:1;1180:53;1225:7;1216:6;1205:9;1201:22;1180:53;:::i;:::-;1170:63;;1126:117;987:263;;;;:::o;1256:345::-;1323:6;1372:2;1360:9;1351:7;1347:23;1343:32;1340:2;;;1378:79;;:::i;:::-;1340:2;1498:1;1523:61;1576:7;1567:6;1556:9;1552:22;1523:61;:::i;:::-;1513:71;;1469:125;1330:271;;;;:::o;1607:474::-;1675:6;1683;1732:2;1720:9;1711:7;1707:23;1703:32;1700:2;;;1738:79;;:::i;:::-;1700:2;1858:1;1883:53;1928:7;1919:6;1908:9;1904:22;1883:53;:::i;:::-;1873:63;;1829:117;1985:2;2011:53;2056:7;2047:6;2036:9;2032:22;2011:53;:::i;:::-;2001:63;;1956:118;1690:391;;;;;:::o;2087:619::-;2164:6;2172;2180;2229:2;2217:9;2208:7;2204:23;2200:32;2197:2;;;2235:79;;:::i;:::-;2197:2;2355:1;2380:53;2425:7;2416:6;2405:9;2401:22;2380:53;:::i;:::-;2370:63;;2326:117;2482:2;2508:53;2553:7;2544:6;2533:9;2529:22;2508:53;:::i;:::-;2498:63;;2453:118;2610:2;2636:53;2681:7;2672:6;2661:9;2657:22;2636:53;:::i;:::-;2626:63;;2581:118;2187:519;;;;;:::o;2712:619::-;2789:6;2797;2805;2854:2;2842:9;2833:7;2829:23;2825:32;2822:2;;;2860:79;;:::i;:::-;2822:2;2980:1;3005:53;3050:7;3041:6;3030:9;3026:22;3005:53;:::i;:::-;2995:63;;2951:117;3107:2;3133:53;3178:7;3169:6;3158:9;3154:22;3133:53;:::i;:::-;3123:63;;3078:118;3235:2;3261:53;3306:7;3297:6;3286:9;3282:22;3261:53;:::i;:::-;3251:63;;3206:118;2812:519;;;;;:::o;3337:468::-;3402:6;3410;3459:2;3447:9;3438:7;3434:23;3430:32;3427:2;;;3465:79;;:::i;:::-;3427:2;3585:1;3610:53;3655:7;3646:6;3635:9;3631:22;3610:53;:::i;:::-;3600:63;;3556:117;3712:2;3738:50;3780:7;3771:6;3760:9;3756:22;3738:50;:::i;:::-;3728:60;;3683:115;3417:388;;;;;:::o;3811:474::-;3879:6;3887;3936:2;3924:9;3915:7;3911:23;3907:32;3904:2;;;3942:79;;:::i;:::-;3904:2;4062:1;4087:53;4132:7;4123:6;4112:9;4108:22;4087:53;:::i;:::-;4077:63;;4033:117;4189:2;4215:53;4260:7;4251:6;4240:9;4236:22;4215:53;:::i;:::-;4205:63;;4160:118;3894:391;;;;;:::o;4291:323::-;4347:6;4396:2;4384:9;4375:7;4371:23;4367:32;4364:2;;;4402:79;;:::i;:::-;4364:2;4522:1;4547:50;4589:7;4580:6;4569:9;4565:22;4547:50;:::i;:::-;4537:60;;4493:114;4354:260;;;;:::o;4620:468::-;4685:6;4693;4742:2;4730:9;4721:7;4717:23;4713:32;4710:2;;;4748:79;;:::i;:::-;4710:2;4868:1;4893:50;4935:7;4926:6;4915:9;4911:22;4893:50;:::i;:::-;4883:60;;4839:114;4992:2;5018:53;5063:7;5054:6;5043:9;5039:22;5018:53;:::i;:::-;5008:63;;4963:118;4700:388;;;;;:::o;5094:504::-;5177:6;5185;5234:2;5222:9;5213:7;5209:23;5205:32;5202:2;;;5240:79;;:::i;:::-;5202:2;5360:1;5385:68;5445:7;5436:6;5425:9;5421:22;5385:68;:::i;:::-;5375:78;;5331:132;5502:2;5528:53;5573:7;5564:6;5553:9;5549:22;5528:53;:::i;:::-;5518:63;;5473:118;5192:406;;;;;:::o;5604:329::-;5663:6;5712:2;5700:9;5691:7;5687:23;5683:32;5680:2;;;5718:79;;:::i;:::-;5680:2;5838:1;5863:53;5908:7;5899:6;5888:9;5884:22;5863:53;:::i;:::-;5853:63;;5809:117;5670:263;;;;:::o;5939:474::-;6007:6;6015;6064:2;6052:9;6043:7;6039:23;6035:32;6032:2;;;6070:79;;:::i;:::-;6032:2;6190:1;6215:53;6260:7;6251:6;6240:9;6236:22;6215:53;:::i;:::-;6205:63;;6161:117;6317:2;6343:53;6388:7;6379:6;6368:9;6364:22;6343:53;:::i;:::-;6333:63;;6288:118;6022:391;;;;;:::o;6419:619::-;6496:6;6504;6512;6561:2;6549:9;6540:7;6536:23;6532:32;6529:2;;;6567:79;;:::i;:::-;6529:2;6687:1;6712:53;6757:7;6748:6;6737:9;6733:22;6712:53;:::i;:::-;6702:63;;6658:117;6814:2;6840:53;6885:7;6876:6;6865:9;6861:22;6840:53;:::i;:::-;6830:63;;6785:118;6942:2;6968:53;7013:7;7004:6;6993:9;6989:22;6968:53;:::i;:::-;6958:63;;6913:118;6519:519;;;;;:::o;7044:663::-;7132:6;7140;7148;7197:2;7185:9;7176:7;7172:23;7168:32;7165:2;;;7203:79;;:::i;:::-;7165:2;7323:1;7348:64;7404:7;7395:6;7384:9;7380:22;7348:64;:::i;:::-;7338:74;;7294:128;7461:2;7487:64;7543:7;7534:6;7523:9;7519:22;7487:64;:::i;:::-;7477:74;;7432:129;7600:2;7626:64;7682:7;7673:6;7662:9;7658:22;7626:64;:::i;:::-;7616:74;;7571:129;7155:552;;;;;:::o;7713:179::-;7782:10;7803:46;7845:3;7837:6;7803:46;:::i;:::-;7881:4;7876:3;7872:14;7858:28;;7793:99;;;;:::o;7898:147::-;7993:45;8032:5;7993:45;:::i;:::-;7988:3;7981:58;7971:74;;:::o;8051:108::-;8128:24;8146:5;8128:24;:::i;:::-;8123:3;8116:37;8106:53;;:::o;8165:118::-;8252:24;8270:5;8252:24;:::i;:::-;8247:3;8240:37;8230:53;;:::o;8319:732::-;8438:3;8467:54;8515:5;8467:54;:::i;:::-;8537:86;8616:6;8611:3;8537:86;:::i;:::-;8530:93;;8647:56;8697:5;8647:56;:::i;:::-;8726:7;8757:1;8742:284;8767:6;8764:1;8761:13;8742:284;;;8843:6;8837:13;8870:63;8929:3;8914:13;8870:63;:::i;:::-;8863:70;;8956:60;9009:6;8956:60;:::i;:::-;8946:70;;8802:224;8789:1;8786;8782:9;8777:14;;8742:284;;;8746:14;9042:3;9035:10;;8443:608;;;;;;;:::o;9057:109::-;9138:21;9153:5;9138:21;:::i;:::-;9133:3;9126:34;9116:50;;:::o;9172:161::-;9274:52;9320:5;9274:52;:::i;:::-;9269:3;9262:65;9252:81;;:::o;9339:147::-;9434:45;9473:5;9434:45;:::i;:::-;9429:3;9422:58;9412:74;;:::o;9492:364::-;9580:3;9608:39;9641:5;9608:39;:::i;:::-;9663:71;9727:6;9722:3;9663:71;:::i;:::-;9656:78;;9743:52;9788:6;9783:3;9776:4;9769:5;9765:16;9743:52;:::i;:::-;9820:29;9842:6;9820:29;:::i;:::-;9815:3;9811:39;9804:46;;9584:272;;;;;:::o;9862:366::-;10004:3;10025:67;10089:2;10084:3;10025:67;:::i;:::-;10018:74;;10101:93;10190:3;10101:93;:::i;:::-;10219:2;10214:3;10210:12;10203:19;;10008:220;;;:::o;10234:366::-;10376:3;10397:67;10461:2;10456:3;10397:67;:::i;:::-;10390:74;;10473:93;10562:3;10473:93;:::i;:::-;10591:2;10586:3;10582:12;10575:19;;10380:220;;;:::o;10606:366::-;10748:3;10769:67;10833:2;10828:3;10769:67;:::i;:::-;10762:74;;10845:93;10934:3;10845:93;:::i;:::-;10963:2;10958:3;10954:12;10947:19;;10752:220;;;:::o;10978:366::-;11120:3;11141:67;11205:2;11200:3;11141:67;:::i;:::-;11134:74;;11217:93;11306:3;11217:93;:::i;:::-;11335:2;11330:3;11326:12;11319:19;;11124:220;;;:::o;11350:366::-;11492:3;11513:67;11577:2;11572:3;11513:67;:::i;:::-;11506:74;;11589:93;11678:3;11589:93;:::i;:::-;11707:2;11702:3;11698:12;11691:19;;11496:220;;;:::o;11722:366::-;11864:3;11885:67;11949:2;11944:3;11885:67;:::i;:::-;11878:74;;11961:93;12050:3;11961:93;:::i;:::-;12079:2;12074:3;12070:12;12063:19;;11868:220;;;:::o;12094:366::-;12236:3;12257:67;12321:2;12316:3;12257:67;:::i;:::-;12250:74;;12333:93;12422:3;12333:93;:::i;:::-;12451:2;12446:3;12442:12;12435:19;;12240:220;;;:::o;12466:366::-;12608:3;12629:67;12693:2;12688:3;12629:67;:::i;:::-;12622:74;;12705:93;12794:3;12705:93;:::i;:::-;12823:2;12818:3;12814:12;12807:19;;12612:220;;;:::o;12838:366::-;12980:3;13001:67;13065:2;13060:3;13001:67;:::i;:::-;12994:74;;13077:93;13166:3;13077:93;:::i;:::-;13195:2;13190:3;13186:12;13179:19;;12984:220;;;:::o;13210:366::-;13352:3;13373:67;13437:2;13432:3;13373:67;:::i;:::-;13366:74;;13449:93;13538:3;13449:93;:::i;:::-;13567:2;13562:3;13558:12;13551:19;;13356:220;;;:::o;13582:366::-;13724:3;13745:67;13809:2;13804:3;13745:67;:::i;:::-;13738:74;;13821:93;13910:3;13821:93;:::i;:::-;13939:2;13934:3;13930:12;13923:19;;13728:220;;;:::o;13954:366::-;14096:3;14117:67;14181:2;14176:3;14117:67;:::i;:::-;14110:74;;14193:93;14282:3;14193:93;:::i;:::-;14311:2;14306:3;14302:12;14295:19;;14100:220;;;:::o;14326:366::-;14468:3;14489:67;14553:2;14548:3;14489:67;:::i;:::-;14482:74;;14565:93;14654:3;14565:93;:::i;:::-;14683:2;14678:3;14674:12;14667:19;;14472:220;;;:::o;14698:366::-;14840:3;14861:67;14925:2;14920:3;14861:67;:::i;:::-;14854:74;;14937:93;15026:3;14937:93;:::i;:::-;15055:2;15050:3;15046:12;15039:19;;14844:220;;;:::o;15070:366::-;15212:3;15233:67;15297:2;15292:3;15233:67;:::i;:::-;15226:74;;15309:93;15398:3;15309:93;:::i;:::-;15427:2;15422:3;15418:12;15411:19;;15216:220;;;:::o;15442:118::-;15529:24;15547:5;15529:24;:::i;:::-;15524:3;15517:37;15507:53;;:::o;15566:112::-;15649:22;15665:5;15649:22;:::i;:::-;15644:3;15637:35;15627:51;;:::o;15684:222::-;15777:4;15815:2;15804:9;15800:18;15792:26;;15828:71;15896:1;15885:9;15881:17;15872:6;15828:71;:::i;:::-;15782:124;;;;:::o;15912:238::-;16013:4;16051:2;16040:9;16036:18;16028:26;;16064:79;16140:1;16129:9;16125:17;16116:6;16064:79;:::i;:::-;16018:132;;;;:::o;16156:807::-;16405:4;16443:3;16432:9;16428:19;16420:27;;16457:71;16525:1;16514:9;16510:17;16501:6;16457:71;:::i;:::-;16538:72;16606:2;16595:9;16591:18;16582:6;16538:72;:::i;:::-;16620:80;16696:2;16685:9;16681:18;16672:6;16620:80;:::i;:::-;16710;16786:2;16775:9;16771:18;16762:6;16710:80;:::i;:::-;16800:73;16868:3;16857:9;16853:19;16844:6;16800:73;:::i;:::-;16883;16951:3;16940:9;16936:19;16927:6;16883:73;:::i;:::-;16410:553;;;;;;;;;:::o;16969:210::-;17056:4;17094:2;17083:9;17079:18;17071:26;;17107:65;17169:1;17158:9;17154:17;17145:6;17107:65;:::i;:::-;17061:118;;;;:::o;17185:252::-;17293:4;17331:2;17320:9;17316:18;17308:26;;17344:86;17427:1;17416:9;17412:17;17403:6;17344:86;:::i;:::-;17298:139;;;;:::o;17443:313::-;17556:4;17594:2;17583:9;17579:18;17571:26;;17643:9;17637:4;17633:20;17629:1;17618:9;17614:17;17607:47;17671:78;17744:4;17735:6;17671:78;:::i;:::-;17663:86;;17561:195;;;;:::o;17762:419::-;17928:4;17966:2;17955:9;17951:18;17943:26;;18015:9;18009:4;18005:20;18001:1;17990:9;17986:17;17979:47;18043:131;18169:4;18043:131;:::i;:::-;18035:139;;17933:248;;;:::o;18187:419::-;18353:4;18391:2;18380:9;18376:18;18368:26;;18440:9;18434:4;18430:20;18426:1;18415:9;18411:17;18404:47;18468:131;18594:4;18468:131;:::i;:::-;18460:139;;18358:248;;;:::o;18612:419::-;18778:4;18816:2;18805:9;18801:18;18793:26;;18865:9;18859:4;18855:20;18851:1;18840:9;18836:17;18829:47;18893:131;19019:4;18893:131;:::i;:::-;18885:139;;18783:248;;;:::o;19037:419::-;19203:4;19241:2;19230:9;19226:18;19218:26;;19290:9;19284:4;19280:20;19276:1;19265:9;19261:17;19254:47;19318:131;19444:4;19318:131;:::i;:::-;19310:139;;19208:248;;;:::o;19462:419::-;19628:4;19666:2;19655:9;19651:18;19643:26;;19715:9;19709:4;19705:20;19701:1;19690:9;19686:17;19679:47;19743:131;19869:4;19743:131;:::i;:::-;19735:139;;19633:248;;;:::o;19887:419::-;20053:4;20091:2;20080:9;20076:18;20068:26;;20140:9;20134:4;20130:20;20126:1;20115:9;20111:17;20104:47;20168:131;20294:4;20168:131;:::i;:::-;20160:139;;20058:248;;;:::o;20312:419::-;20478:4;20516:2;20505:9;20501:18;20493:26;;20565:9;20559:4;20555:20;20551:1;20540:9;20536:17;20529:47;20593:131;20719:4;20593:131;:::i;:::-;20585:139;;20483:248;;;:::o;20737:419::-;20903:4;20941:2;20930:9;20926:18;20918:26;;20990:9;20984:4;20980:20;20976:1;20965:9;20961:17;20954:47;21018:131;21144:4;21018:131;:::i;:::-;21010:139;;20908:248;;;:::o;21162:419::-;21328:4;21366:2;21355:9;21351:18;21343:26;;21415:9;21409:4;21405:20;21401:1;21390:9;21386:17;21379:47;21443:131;21569:4;21443:131;:::i;:::-;21435:139;;21333:248;;;:::o;21587:419::-;21753:4;21791:2;21780:9;21776:18;21768:26;;21840:9;21834:4;21830:20;21826:1;21815:9;21811:17;21804:47;21868:131;21994:4;21868:131;:::i;:::-;21860:139;;21758:248;;;:::o;22012:419::-;22178:4;22216:2;22205:9;22201:18;22193:26;;22265:9;22259:4;22255:20;22251:1;22240:9;22236:17;22229:47;22293:131;22419:4;22293:131;:::i;:::-;22285:139;;22183:248;;;:::o;22437:419::-;22603:4;22641:2;22630:9;22626:18;22618:26;;22690:9;22684:4;22680:20;22676:1;22665:9;22661:17;22654:47;22718:131;22844:4;22718:131;:::i;:::-;22710:139;;22608:248;;;:::o;22862:419::-;23028:4;23066:2;23055:9;23051:18;23043:26;;23115:9;23109:4;23105:20;23101:1;23090:9;23086:17;23079:47;23143:131;23269:4;23143:131;:::i;:::-;23135:139;;23033:248;;;:::o;23287:419::-;23453:4;23491:2;23480:9;23476:18;23468:26;;23540:9;23534:4;23530:20;23526:1;23515:9;23511:17;23504:47;23568:131;23694:4;23568:131;:::i;:::-;23560:139;;23458:248;;;:::o;23712:419::-;23878:4;23916:2;23905:9;23901:18;23893:26;;23965:9;23959:4;23955:20;23951:1;23940:9;23936:17;23929:47;23993:131;24119:4;23993:131;:::i;:::-;23985:139;;23883:248;;;:::o;24137:222::-;24230:4;24268:2;24257:9;24253:18;24245:26;;24281:71;24349:1;24338:9;24334:17;24325:6;24281:71;:::i;:::-;24235:124;;;;:::o;24365:831::-;24628:4;24666:3;24655:9;24651:19;24643:27;;24680:71;24748:1;24737:9;24733:17;24724:6;24680:71;:::i;:::-;24761:80;24837:2;24826:9;24822:18;24813:6;24761:80;:::i;:::-;24888:9;24882:4;24878:20;24873:2;24862:9;24858:18;24851:48;24916:108;25019:4;25010:6;24916:108;:::i;:::-;24908:116;;25034:72;25102:2;25091:9;25087:18;25078:6;25034:72;:::i;:::-;25116:73;25184:3;25173:9;25169:19;25160:6;25116:73;:::i;:::-;24633:563;;;;;;;;:::o;25202:332::-;25323:4;25361:2;25350:9;25346:18;25338:26;;25374:71;25442:1;25431:9;25427:17;25418:6;25374:71;:::i;:::-;25455:72;25523:2;25512:9;25508:18;25499:6;25455:72;:::i;:::-;25328:206;;;;;:::o;25540:214::-;25629:4;25667:2;25656:9;25652:18;25644:26;;25680:67;25744:1;25733:9;25729:17;25720:6;25680:67;:::i;:::-;25634:120;;;;:::o;25841:132::-;25908:4;25931:3;25923:11;;25961:4;25956:3;25952:14;25944:22;;25913:60;;;:::o;25979:114::-;26046:6;26080:5;26074:12;26064:22;;26053:40;;;:::o;26099:99::-;26151:6;26185:5;26179:12;26169:22;;26158:40;;;:::o;26204:113::-;26274:4;26306;26301:3;26297:14;26289:22;;26279:38;;;:::o;26323:184::-;26422:11;26456:6;26451:3;26444:19;26496:4;26491:3;26487:14;26472:29;;26434:73;;;;:::o;26513:169::-;26597:11;26631:6;26626:3;26619:19;26671:4;26666:3;26662:14;26647:29;;26609:73;;;;:::o;26688:305::-;26728:3;26747:20;26765:1;26747:20;:::i;:::-;26742:25;;26781:20;26799:1;26781:20;:::i;:::-;26776:25;;26935:1;26867:66;26863:74;26860:1;26857:81;26854:2;;;26941:18;;:::i;:::-;26854:2;26985:1;26982;26978:9;26971:16;;26732:261;;;;:::o;26999:185::-;27039:1;27056:20;27074:1;27056:20;:::i;:::-;27051:25;;27090:20;27108:1;27090:20;:::i;:::-;27085:25;;27129:1;27119:2;;27134:18;;:::i;:::-;27119:2;27176:1;27173;27169:9;27164:14;;27041:143;;;;:::o;27190:348::-;27230:7;27253:20;27271:1;27253:20;:::i;:::-;27248:25;;27287:20;27305:1;27287:20;:::i;:::-;27282:25;;27475:1;27407:66;27403:74;27400:1;27397:81;27392:1;27385:9;27378:17;27374:105;27371:2;;;27482:18;;:::i;:::-;27371:2;27530:1;27527;27523:9;27512:20;;27238:300;;;;:::o;27544:191::-;27584:4;27604:20;27622:1;27604:20;:::i;:::-;27599:25;;27638:20;27656:1;27638:20;:::i;:::-;27633:25;;27677:1;27674;27671:8;27668:2;;;27682:18;;:::i;:::-;27668:2;27727:1;27724;27720:9;27712:17;;27589:146;;;;:::o;27741:96::-;27778:7;27807:24;27825:5;27807:24;:::i;:::-;27796:35;;27786:51;;;:::o;27843:104::-;27888:7;27917:24;27935:5;27917:24;:::i;:::-;27906:35;;27896:51;;;:::o;27953:90::-;27987:7;28030:5;28023:13;28016:21;28005:32;;27995:48;;;:::o;28049:111::-;28101:7;28130:24;28148:5;28130:24;:::i;:::-;28119:35;;28109:51;;;:::o;28166:126::-;28203:7;28243:42;28236:5;28232:54;28221:65;;28211:81;;;:::o;28298:77::-;28335:7;28364:5;28353:16;;28343:32;;;:::o;28381:86::-;28416:7;28456:4;28449:5;28445:16;28434:27;;28424:43;;;:::o;28473:134::-;28531:9;28564:37;28595:5;28564:37;:::i;:::-;28551:50;;28541:66;;;:::o;28613:156::-;28678:9;28711:52;28757:5;28711:52;:::i;:::-;28698:65;;28688:81;;;:::o;28775:128::-;28840:9;28873:24;28891:5;28873:24;:::i;:::-;28860:37;;28850:53;;;:::o;28909:121::-;28967:9;29000:24;29018:5;29000:24;:::i;:::-;28987:37;;28977:53;;;:::o;29036:126::-;29086:9;29119:37;29150:5;29119:37;:::i;:::-;29106:50;;29096:66;;;:::o;29168:113::-;29218:9;29251:24;29269:5;29251:24;:::i;:::-;29238:37;;29228:53;;;:::o;29287:307::-;29355:1;29365:113;29379:6;29376:1;29373:13;29365:113;;;29464:1;29459:3;29455:11;29449:18;29445:1;29440:3;29436:11;29429:39;29401:2;29398:1;29394:10;29389:15;;29365:113;;;29496:6;29493:1;29490:13;29487:2;;;29576:1;29567:6;29562:3;29558:16;29551:27;29487:2;29336:258;;;;:::o;29600:180::-;29648:77;29645:1;29638:88;29745:4;29742:1;29735:15;29769:4;29766:1;29759:15;29786:180;29834:77;29831:1;29824:88;29931:4;29928:1;29921:15;29955:4;29952:1;29945:15;29972:180;30020:77;30017:1;30010:88;30117:4;30114:1;30107:15;30141:4;30138:1;30131:15;30158:180;30206:77;30203:1;30196:88;30303:4;30300:1;30293:15;30327:4;30324:1;30317:15;30467:117;30576:1;30573;30566:12;30590:102;30631:6;30682:2;30678:7;30673:2;30666:5;30662:14;30658:28;30648:38;;30638:54;;;:::o;30698:167::-;30838:19;30834:1;30826:6;30822:14;30815:43;30804:61;:::o;30871:176::-;31011:28;31007:1;30999:6;30995:14;30988:52;30977:70;:::o;31053:162::-;31193:14;31189:1;31181:6;31177:14;31170:38;31159:56;:::o;31221:179::-;31361:31;31357:1;31349:6;31345:14;31338:55;31327:73;:::o;31406:221::-;31546:34;31542:1;31534:6;31530:14;31523:58;31615:4;31610:2;31602:6;31598:15;31591:29;31512:115;:::o;31633:223::-;31773:34;31769:1;31761:6;31757:14;31750:58;31842:6;31837:2;31829:6;31825:15;31818:31;31739:117;:::o;31862:162::-;32002:14;31998:1;31990:6;31986:14;31979:38;31968:56;:::o;32030:176::-;32170:28;32166:1;32158:6;32154:14;32147:52;32136:70;:::o;32212:177::-;32352:29;32348:1;32340:6;32336:14;32329:53;32318:71;:::o;32395:177::-;32535:29;32531:1;32523:6;32519:14;32512:53;32501:71;:::o;32578:170::-;32718:22;32714:1;32706:6;32702:14;32695:46;32684:64;:::o;32754:170::-;32894:22;32890:1;32882:6;32878:14;32871:46;32860:64;:::o;32930:165::-;33070:17;33066:1;33058:6;33054:14;33047:41;33036:59;:::o;33101:164::-;33241:16;33237:1;33229:6;33225:14;33218:40;33207:58;:::o;33271:181::-;33411:33;33407:1;33399:6;33395:14;33388:57;33377:75;:::o;33458:122::-;33531:24;33549:5;33531:24;:::i;:::-;33524:5;33521:35;33511:2;;33570:1;33567;33560:12;33511:2;33501:79;:::o;33586:138::-;33667:32;33693:5;33667:32;:::i;:::-;33660:5;33657:43;33647:2;;33714:1;33711;33704:12;33647:2;33637:87;:::o;33730:116::-;33800:21;33815:5;33800:21;:::i;:::-;33793:5;33790:32;33780:2;;33836:1;33833;33826:12;33780:2;33770:76;:::o;33852:152::-;33940:39;33973:5;33940:39;:::i;:::-;33933:5;33930:50;33920:2;;33994:1;33991;33984:12;33920:2;33910:94;:::o;34010:122::-;34083:24;34101:5;34083:24;:::i;:::-;34076:5;34073:35;34063:2;;34122:1;34119;34112:12;34063:2;34053:79;:::o

Swarm Source

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