ETH Price: $3,419.46 (-1.86%)
Gas: 5 Gwei

Token

BABY WORLD CUP INU (BWCI)
 

Overview

Max Total Supply

1,000,000,000 BWCI

Holders

136

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
252,136.570316924 BWCI

Value
$0.00
0x1583d0719908bee9118949adad900c8018a2227d
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:
BABYWORLDCUPINU

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-16
*/

/**
 * 
BABY WORLD CUP INU- Experience the thrill and excitement of betting on your favourite players and win with them...BABY Edition.

*/
// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.7;

library Address {
    /**
     * 
     */
    function isContract(address account) internal view returns (bool) {
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }
    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }
    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }
    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");
        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}
abstract contract Context {
    function _msgSender() internal view returns (address payable) {
        return payable(msg.sender);
    }

    function _msgData() internal view returns (bytes memory) {
        this;
        return msg.data;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

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

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

contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
    function owner() public view returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

contract BABYWORLDCUPINU is IERC20, Ownable {
    using Address for address;
    
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    string constant _name = "BABY WORLD CUP INU";
    string constant _symbol = "BWCI";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 1_000_000_000 * (10 ** _decimals);
    uint256 _maxBuyTxAmount = (_totalSupply * 1) / 500;
    uint256 _maxSellTxAmount = (_totalSupply * 1) / 500;
    uint256 _maxWalletSize = (_totalSupply * 2) / 100;

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;
    mapping (address => uint256) public lastSell;
    mapping (address => uint256) public lastBuy;

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;
    mapping (address => bool) liquidityCreator;

    uint256 marketingFee = 400;
    uint256 liquidityFee = 200;
    uint256 totalFee = marketingFee + liquidityFee;
    uint256 sellBias = 0;
    uint256 feeDenominator = 10000;

    address payable public liquidityFeeReceiver = payable(0x7603F780F5953883A444C7Afa6Cf0EC9074055c4);
    address payable public marketingFeeReceiver = payable(0x7603F780F5953883A444C7Afa6Cf0EC9074055c4);

    IDEXRouter public router;
    address routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    mapping (address => bool) liquidityPools;
    mapping (address => uint256) public protected;
    bool protectionEnabled = true;
    bool protectionDisabled = false;
    uint256 protectionLimit;
    uint256 public protectionCount;
    uint256 protectionTimer;

    address public pair;

    uint256 public launchedAt;
    uint256 public launchedTime;
    uint256 public deadBlocks;
    bool startBullRun = false;
    bool pauseDisabled = false;
    uint256 public rateLimit = 2;

    bool public swapEnabled = false;
    bool processEnabled = true;
    uint256 public swapThreshold = _totalSupply / 1000;
    uint256 public swapMinimum = _totalSupply / 10000;
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }
    
    mapping (address => bool) teamMember;
    
    modifier onlyTeam() {
        require(teamMember[_msgSender()] || msg.sender == owner(), "Caller is not a team member");
        _;
    }
    
    event ProtectedWallet(address, address, uint256, uint8);

    constructor () {
        router = IDEXRouter(routerAddress);
        pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this));
        liquidityPools[pair] = true;
        _allowances[owner()][routerAddress] = type(uint256).max;
        _allowances[address(this)][routerAddress] = type(uint256).max;

        isFeeExempt[owner()] = true;
        liquidityCreator[owner()] = true;

        isTxLimitExempt[address(this)] = true;
        isTxLimitExempt[owner()] = true;
        isTxLimitExempt[routerAddress] = true;
        isTxLimitExempt[DEAD] = true;

        _balances[owner()] = _totalSupply;

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

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure returns (uint8) { return _decimals; }
    function symbol() external pure returns (string memory) { return _symbol; }
    function name() external pure returns (string memory) { return _name; }
    function getOwner() external view returns (address) { return owner(); }
    function maxBuyTxTokens() external view returns (uint256) { return _maxBuyTxAmount / (10 ** _decimals); }
    function maxSellTxTokens() external view returns (uint256) { return _maxSellTxAmount / (10 ** _decimals); }
    function maxWalletTokens() external view returns (uint256) { return _maxWalletSize / (10 ** _decimals); }
    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, type(uint256).max);
    }
    
    function setTeamMember(address _team, bool _enabled) external onlyOwner {
        teamMember[_team] = _enabled;
    }
    
    function airdrop(address[] calldata addresses, uint256[] calldata amounts) external onlyOwner {
        require(addresses.length > 0 && amounts.length == addresses.length);
        address from = msg.sender;

        for (uint i = 0; i < addresses.length; i++) {
            if(!liquidityPools[addresses[i]] && !liquidityCreator[addresses[i]]) {
                _basicTransfer(from, addresses[i], amounts[i] * (10 ** _decimals));
            }
        }
    }
    
    function clearStuckBalance(uint256 amountPercentage, address adr) external onlyTeam {
        uint256 amountETH = address(this).balance;
        payable(adr).transfer((amountETH * amountPercentage) / 100);
    }
    
    function openTrading(uint256 _deadBlocks, uint256 _protection, uint256 _limit) external onlyTeam {
        require(!startBullRun && _deadBlocks < 10);
        deadBlocks = _deadBlocks;
        startBullRun = true;
        launchedAt = block.number;
        protectionTimer = block.timestamp + _protection;
        protectionLimit = _limit * (10 ** _decimals);
    }
    
    function pauseTrading() external onlyTeam {
        require(!pauseDisabled);
        startBullRun = false;
    }
    
    function disablePause() external onlyTeam {
        pauseDisabled = true;
        startBullRun = true;
    }
    
    function setProtection(bool _protect, uint256 _addTime) external onlyTeam {
        require(!protectionDisabled);
        protectionEnabled = _protect;
        require(_addTime < 1 days);
        protectionTimer += _addTime;
    }
    
    function disableProtection() external onlyTeam {
        protectionDisabled = true;
        protectionEnabled = false;
    }
    
    function protectWallet(address[] calldata _wallets, bool _protect) external onlyTeam {
        if (_protect) {
            require(protectionEnabled);
        }
        
        for (uint i = 0; i < _wallets.length; i++) {
            
            if (_protect) {
                protectionCount++;
                emit ProtectedWallet(tx.origin, _wallets[i], block.number, 2);
            }
            else {
                if (protected[_wallets[i]] != 0)
                    protectionCount--;      
            }
            protected[_wallets[i]] = _protect ? block.number : 0;
        }
    }

    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] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(sender != address(0), "BEP20: transfer from 0x0");
        require(recipient != address(0), "BEP20: transfer to 0x0");
        require(amount > 0, "Amount must be > zero");
        require(_balances[sender] >= amount, "Insufficient balance");
        if(!launched() && liquidityPools[recipient]){ require(liquidityCreator[sender], "Liquidity not added yet."); launch(); }
        if(!startBullRun){ require(liquidityCreator[sender] || liquidityCreator[recipient], "Trading not open yet."); }

        checkTxLimit(sender, recipient, amount);
        
        if (!liquidityPools[recipient] && recipient != DEAD) {
            if (!isTxLimitExempt[recipient]) {
                checkWalletLimit(recipient, amount);
            }
        }
        
        if(protectionEnabled && protectionTimer > block.timestamp) {
            if(liquidityPools[sender] && tx.origin != recipient && protected[recipient] == 0) {
                protected[recipient] = block.number;
                protectionCount++;
                emit ProtectedWallet(tx.origin, recipient, block.number, 0);
            }
        }
        
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        _balances[sender] = _balances[sender] - amount;

        uint256 amountReceived = shouldTakeFee(sender) ? takeFee(recipient, amount) : amount;
        
        if(shouldSwapBack(recipient)){ if (amount > 0) swapBack(amount); }
        
        _balances[recipient] = _balances[recipient] + amountReceived;

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function launched() internal view returns (bool) {
        return launchedAt != 0;
    }

    function launch() internal {
        launchedAt = block.number;
        launchedTime = block.timestamp;
        swapEnabled = true;
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender] - amount;
        _balances[recipient] = _balances[recipient] + amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }
    
    function checkWalletLimit(address recipient, uint256 amount) internal view {
        uint256 walletLimit = _maxWalletSize;
        require(_balances[recipient] + amount <= walletLimit, "Transfer amount exceeds the bag size.");
    }

    function checkTxLimit(address sender, address recipient, uint256 amount) internal {
        require(isTxLimitExempt[sender] || amount <= (liquidityPools[sender] ? _maxBuyTxAmount : _maxSellTxAmount), "TX Limit Exceeded");
        require(isTxLimitExempt[sender] || lastBuy[recipient] + rateLimit <= block.number, "Transfer rate limit exceeded.");
        
        if (protected[sender] != 0){
            require(amount <= protectionLimit * (10 ** _decimals) && lastSell[sender] == 0 && protectionTimer > block.timestamp, "Wallet protected, please contact support.");
            lastSell[sender] = block.number;
        }
        
        if (liquidityPools[recipient]) {
            lastSell[sender] = block.number;
        } else if (shouldTakeFee(sender)) {
            if (protectionEnabled && protectionTimer > block.timestamp && lastBuy[tx.origin] == block.number && protected[recipient] == 0) {
                protected[recipient] = block.number;
                emit ProtectedWallet(tx.origin, recipient, block.number, 1);
            }
            lastBuy[recipient] = block.number;
            if (tx.origin != recipient)
                lastBuy[tx.origin] = block.number;
        }
    }

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function getTotalFee(bool selling) public view returns (uint256) {
        if(launchedAt + deadBlocks >= block.number){ return feeDenominator - 1; }
        if (selling) return totalFee + sellBias;
        return totalFee - sellBias;
    }

    function takeFee(address recipient, uint256 amount) internal returns (uint256) {
        bool selling = liquidityPools[recipient];
        uint256 feeAmount = (amount * getTotalFee(selling)) / feeDenominator;
        
        _balances[address(this)] += feeAmount;
    
        return amount - feeAmount;
    }

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

    function swapBack(uint256 amount) internal swapping {
        uint256 amountToSwap = amount < swapThreshold ? amount : swapThreshold;
        if (_balances[address(this)] < amountToSwap) amountToSwap = _balances[address(this)];
        
        uint256 amountToLiquify = (amountToSwap * liquidityFee / 2) / totalFee;
        amountToSwap -= amountToLiquify;

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

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

        uint256 amountBNB = address(this).balance - balanceBefore;
        uint256 totalBNBFee = totalFee - (liquidityFee / 2);

        uint256 amountBNBLiquidity = (amountBNB * liquidityFee / 2) / totalBNBFee;
        uint256 amountBNBMarketing = amountBNB - amountBNBLiquidity;
        
        if (amountBNBMarketing > 0)
            marketingFeeReceiver.transfer(amountBNBMarketing);
        
        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountBNBLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                liquidityFeeReceiver,
                block.timestamp
            );
        }

        emit FundsDistributed(amountBNBMarketing, amountBNBLiquidity, amountToLiquify);
    }
    
    function addLiquidityPool(address lp, bool isPool) external onlyOwner {
        require(lp != pair, "Can't alter current liquidity pair");
        liquidityPools[lp] = isPool;
    }

    function setRateLimit(uint256 rate) external onlyOwner {
        require(rate <= 60 seconds);
        rateLimit = rate;
    }

    function setTxLimit(uint256 buyNumerator, uint256 sellNumerator, uint256 divisor) external onlyOwner {
        require(buyNumerator > 0 && sellNumerator > 0 && divisor > 0 && divisor <= 10000);
        _maxBuyTxAmount = (_totalSupply * buyNumerator) / divisor;
        _maxSellTxAmount = (_totalSupply * sellNumerator) / divisor;
    }
    
    function setMaxWallet(uint256 numerator, uint256 divisor) external onlyOwner() {
        require(numerator > 0 && divisor > 0 && divisor <= 10000);
        _maxWalletSize = (_totalSupply * numerator) / divisor;
    }

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

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

    function setFees(uint256 _liquidityFee, uint256 _marketingFee, uint256 _sellBias, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        marketingFee = _marketingFee;
        totalFee = _marketingFee + _liquidityFee;
        sellBias = _sellBias;
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator / 2);
    }

    function setFeeReceivers(address _liquidityFeeReceiver, address _marketingFeeReceiver) external onlyOwner {
        liquidityFeeReceiver = payable(_liquidityFeeReceiver);
        marketingFeeReceiver = payable(_marketingFeeReceiver);
    }

    function setSwapBackSettings(bool _enabled, bool _processEnabled, uint256 _denominator, uint256 _swapMinimum) external onlyOwner {
        require(_denominator > 0);
        swapEnabled = _enabled;
        processEnabled = _processEnabled;
        swapThreshold = _totalSupply / _denominator;
        swapMinimum = _swapMinimum * (10 ** _decimals);
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply - (balanceOf(DEAD) + balanceOf(ZERO));
    }

    event FundsDistributed(uint256 marketingBNB, uint256 liquidityBNB, uint256 liquidityTokens);
    
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"marketingBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidityBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidityTokens","type":"uint256"}],"name":"FundsDistributed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"","type":"address"},{"indexed":false,"internalType":"address","name":"","type":"address"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"","type":"uint8"}],"name":"ProtectedWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"lp","type":"address"},{"internalType":"bool","name":"isPool","type":"bool"}],"name":"addLiquidityPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdrop","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":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"},{"internalType":"address","name":"adr","type":"address"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadBlocks","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":"disablePause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","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":"bool","name":"selling","type":"bool"}],"name":"getTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFeeReceiver","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyTxTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellTxTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadBlocks","type":"uint256"},{"internalType":"uint256","name":"_protection","type":"uint256"},{"internalType":"uint256","name":"_limit","type":"uint256"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_wallets","type":"address[]"},{"internalType":"bool","name":"_protect","type":"bool"}],"name":"protectWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"protected","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protectionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rateLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_liquidityFeeReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_sellBias","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","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":"numerator","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_protect","type":"bool"},{"internalType":"uint256","name":"_addTime","type":"uint256"}],"name":"setProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setRateLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"bool","name":"_processEnabled","type":"bool"},{"internalType":"uint256","name":"_denominator","type":"uint256"},{"internalType":"uint256","name":"_swapMinimum","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_team","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setTeamMember","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyNumerator","type":"uint256"},{"internalType":"uint256","name":"sellNumerator","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapMinimum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000099919062000d84565b633b9aca00620000aa919062000ec1565b6003556101f46001600354620000c1919062000ec1565b620000cd919062000cf1565b6004556101f46001600354620000e4919062000ec1565b620000f0919062000cf1565b6005556064600260035462000106919062000ec1565b62000112919062000cf1565b600655610190600e5560c8600f55600f54600e5462000132919062000c94565b6010556000601155612710601255737603f780f5953883a444c7afa6cf0ec9074055c4601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737603f780f5953883a444c7afa6cf0ec9074055c4601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601960006101000a81548160ff0219169083151502179055506000601960016101000a81548160ff0219169083151502179055506000602160006101000a81548160ff0219169083151502179055506000602160016101000a81548160ff02191690831515021790555060026022556000602360006101000a81548160ff0219169083151502179055506001602360016101000a81548160ff0219169083151502179055506103e8600354620002f8919062000cf1565b6024556127106003546200030d919062000cf1565b6025553480156200031d57600080fd5b5060006200033062000bae60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200049a57600080fd5b505afa158015620004af573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004d5919062000bf6565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200055957600080fd5b505afa1580156200056e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000594919062000bf6565b306040518363ffffffff1660e01b8152600401620005b492919062000c4a565b602060405180830381600087803b158015620005cf57600080fd5b505af1158015620005e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200060a919062000bf6565b601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160176000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60086000620006f962000bb660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600b60006200086f62000bb660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000620008d662000bb660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60006200099562000bb660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506003546007600062000af162000bb660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000b3f62000bb660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60035460405162000ba0919062000c77565b60405180910390a362000ff7565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008151905062000bf08162000fdd565b92915050565b60006020828403121562000c0f5762000c0e62000fcb565b5b600062000c1f8482850162000bdf565b91505092915050565b62000c338162000f22565b82525050565b62000c448162000f56565b82525050565b600060408201905062000c61600083018562000c28565b62000c70602083018462000c28565b9392505050565b600060208201905062000c8e600083018462000c39565b92915050565b600062000ca18262000f56565b915062000cae8362000f56565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000ce65762000ce562000f6d565b5b828201905092915050565b600062000cfe8262000f56565b915062000d0b8362000f56565b92508262000d1e5762000d1d62000f9c565b5b828204905092915050565b6000808291508390505b600185111562000d7b5780860481111562000d535762000d5262000f6d565b5b600185161562000d635780820291505b808102905062000d738562000fd0565b945062000d33565b94509492505050565b600062000d918262000f56565b915062000d9e8362000f60565b925062000dcd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000dd5565b905092915050565b60008262000de7576001905062000eba565b8162000df7576000905062000eba565b816001811462000e10576002811462000e1b5762000e51565b600191505062000eba565b60ff84111562000e305762000e2f62000f6d565b5b8360020a91508482111562000e4a5762000e4962000f6d565b5b5062000eba565b5060208310610133831016604e8410600b841016171562000e8b5782820a90508381111562000e855762000e8462000f6d565b5b62000eba565b62000e9a848484600162000d29565b9250905081840481111562000eb45762000eb362000f6d565b5b81810290505b9392505050565b600062000ece8262000f56565b915062000edb8362000f56565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000f175762000f1662000f6d565b5b828202905092915050565b600062000f2f8262000f36565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b60008160011c9050919050565b62000fe88162000f22565b811462000ff457600080fd5b50565b6159f480620010076000396000f3fe6080604052600436106103035760003560e01c80636f4ce42811610190578063bf56b371116100dc578063e96fada211610095578063f84ba65d1161006f578063f84ba65d14610b65578063f8821a6214610b8e578063f887ea4014610bb9578063fabb0b4f14610be45761030a565b8063e96fada214610ad4578063f1f3bca314610aff578063f2fde38b14610b3c5761030a565b8063bf56b371146109b2578063bfa21d6a146109dd578063c1adf7bc14610a08578063c287184e14610a45578063d686014214610a6e578063dd62ed3e14610a975761030a565b806395d89b4111610149578063a8aa1b3111610123578063a8aa1b31146108f6578063a9059cbb14610921578063abe57e701461095e578063bafe446b146109875761030a565b806395d89b41146108775780639b02c402146108a2578063a4b45c00146108cd5761030a565b80636f4ce428146107675780636fcba377146107a457806370a08231146107cd578063715018a61461080a578063893d20e8146108215780638da5cb5b1461084c5761030a565b8063492a937b1161024f578063584f969a1161020857806363a803e1116101e257806363a803e1146106bf578063658d4b7f146106ea57806367243482146107135780636ddd17131461073c5761030a565b8063584f969a1461065457806360bba03d1461066b57806361e08e72146106945761030a565b8063492a937b14610548578063507139351461057157806354a1dfc91461059a57806356a227f2146105c3578063571ac8b0146105ec5780635804f1e4146106295761030a565b8063234e9494116102bc578063313ce56711610296578063313ce567146104a057806334848b9a146104cb578063421dd7c7146104f457806346d7edaa1461050b5761030a565b8063234e94941461040d57806323b872dd146104385780632b112e49146104755761030a565b80630445b6671461030f57806306fdde031461033a578063095db78f14610365578063095ea7b31461038e5780631031e36e146103cb57806318160ddd146103e25761030a565b3661030a57005b600080fd5b34801561031b57600080fd5b50610324610c0f565b6040516103319190615071565b60405180910390f35b34801561034657600080fd5b5061034f610c15565b60405161035c9190614e8f565b60405180910390f35b34801561037157600080fd5b5061038c600480360381019061038791906146b8565b610c52565b005b34801561039a57600080fd5b506103b560048036038101906103b091906145f7565b610ef1565b6040516103c29190614e59565b60405180910390f35b3480156103d757600080fd5b506103e0610fe3565b005b3480156103ee57600080fd5b506103f76110ea565b6040516104049190615071565b60405180910390f35b34801561041957600080fd5b506104226110f4565b60405161042f9190615071565b60405180910390f35b34801561044457600080fd5b5061045f600480360381019061045a9190614564565b611116565b60405161046c9190614e59565b60405180910390f35b34801561048157600080fd5b5061048a6112d8565b6040516104979190615071565b60405180910390f35b3480156104ac57600080fd5b506104b561134c565b6040516104c2919061511d565b60405180910390f35b3480156104d757600080fd5b506104f260048036038101906104ed9190614899565b611355565b005b34801561050057600080fd5b506105096114aa565b005b34801561051757600080fd5b50610532600480360381019061052d91906144ca565b6115b2565b60405161053f9190615071565b60405180910390f35b34801561055457600080fd5b5061056f600480360381019061056a91906145b7565b6115ca565b005b34801561057d57600080fd5b5061059860048036038101906105939190614899565b61174b565b005b3480156105a657600080fd5b506105c160048036038101906105bc9190614745565b611856565b005b3480156105cf57600080fd5b506105ea60048036038101906105e59190614819565b611965565b005b3480156105f857600080fd5b50610613600480360381019061060e91906144ca565b611a9d565b6040516106209190614e59565b60405180910390f35b34801561063557600080fd5b5061063e611ad0565b60405161064b9190615071565b60405180910390f35b34801561066057600080fd5b50610669611ad6565b005b34801561067757600080fd5b50610692600480360381019061068d91906145b7565b611bde565b005b3480156106a057600080fd5b506106a9611cce565b6040516106b69190615071565b60405180910390f35b3480156106cb57600080fd5b506106d4611cd4565b6040516106e19190615071565b60405180910390f35b3480156106f657600080fd5b50610711600480360381019061070c91906145b7565b611cf6565b005b34801561071f57600080fd5b5061073a60048036038101906107359190614637565b611de6565b005b34801561074857600080fd5b50610751612026565b60405161075e9190614e59565b60405180910390f35b34801561077357600080fd5b5061078e600480360381019061078991906144ca565b612039565b60405161079b9190615071565b60405180910390f35b3480156107b057600080fd5b506107cb60048036038101906107c6919061493f565b612051565b005b3480156107d957600080fd5b506107f460048036038101906107ef91906144ca565b612136565b6040516108019190615071565b60405180910390f35b34801561081657600080fd5b5061081f61217f565b005b34801561082d57600080fd5b506108366122d2565b6040516108439190614cf3565b60405180910390f35b34801561085857600080fd5b506108616122e1565b60405161086e9190614cf3565b60405180910390f35b34801561088357600080fd5b5061088c61230a565b6040516108999190614e8f565b60405180910390f35b3480156108ae57600080fd5b506108b7612347565b6040516108c49190615071565b60405180910390f35b3480156108d957600080fd5b506108f460048036038101906108ef9190614524565b61234d565b005b34801561090257600080fd5b5061090b612468565b6040516109189190614cf3565b60405180910390f35b34801561092d57600080fd5b50610948600480360381019061094391906145f7565b61248e565b6040516109559190614e59565b60405180910390f35b34801561096a57600080fd5b5061098560048036038101906109809190614859565b6124a3565b005b34801561099357600080fd5b5061099c612582565b6040516109a99190615071565b60405180910390f35b3480156109be57600080fd5b506109c76125a4565b6040516109d49190615071565b60405180910390f35b3480156109e957600080fd5b506109f26125aa565b6040516109ff9190614d0e565b60405180910390f35b348015610a1457600080fd5b50610a2f6004803603810190610a2a91906144ca565b6125d0565b604051610a3c9190615071565b60405180910390f35b348015610a5157600080fd5b50610a6c6004803603810190610a6791906147ec565b6125e8565b005b348015610a7a57600080fd5b50610a956004803603810190610a9091906147ac565b612695565b005b348015610aa357600080fd5b50610abe6004803603810190610ab99190614524565b6127c5565b604051610acb9190615071565b60405180910390f35b348015610ae057600080fd5b50610ae961284c565b604051610af69190614d0e565b60405180910390f35b348015610b0b57600080fd5b50610b266004803603810190610b219190614718565b612872565b604051610b339190615071565b60405180910390f35b348015610b4857600080fd5b50610b636004803603810190610b5e91906144ca565b6128d5565b005b348015610b7157600080fd5b50610b8c6004803603810190610b8791906145b7565b612a97565b005b348015610b9a57600080fd5b50610ba3612b87565b604051610bb09190615071565b60405180910390f35b348015610bc557600080fd5b50610bce612b8d565b604051610bdb9190614e74565b60405180910390f35b348015610bf057600080fd5b50610bf9612bb3565b604051610c069190615071565b60405180910390f35b60245481565b60606040518060400160405280601281526020017f4241425920574f524c442043555020494e550000000000000000000000000000815250905090565b60276000610c5e612bb9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610ce35750610cb46122e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610d22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1990614f91565b60405180910390fd5b8015610d4257601960009054906101000a900460ff16610d4157600080fd5b5b60005b83839050811015610eeb578115610dd857601b6000815480929190610d6990615567565b91905055507f47e78c0c4ce6dbe67ff01d67de13c04f361afa37858e7056d665001d746855ea32858584818110610da357610da261560e565b5b9050602002016020810190610db891906144ca565b436002604051610dcb9493929190614db3565b60405180910390a1610e60565b600060186000868685818110610df157610df061560e565b5b9050602002016020810190610e0691906144ca565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610e5f57601b6000815480929190610e599061553d565b91905055505b5b81610e6c576000610e6e565b435b60186000868685818110610e8557610e8461560e565b5b9050602002016020810190610e9a91906144ca565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508080610ee390615567565b915050610d45565b50505050565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610fd19190615071565b60405180910390a36001905092915050565b60276000610fef612bb9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061107457506110456122e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6110b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110aa90614f91565b60405180910390fd5b602160019054906101000a900460ff16156110cd57600080fd5b6000602160006101000a81548160ff021916908315150217905550565b6000600354905090565b60006009600a6111049190615267565b60055461111191906151e3565b905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146112c45781600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461124391906153df565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6112cf848484612bc1565b90509392505050565b6000611305600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612136565b611330600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612136565b61133a919061518d565b60035461134791906153df565b905090565b60006009905090565b60276000611361612bb9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806113e657506113b76122e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611425576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141c90614f91565b60405180910390fd5b602160009054906101000a900460ff161580156114425750600a83105b61144b57600080fd5b826020819055506001602160006101000a81548160ff02191690831515021790555043601e819055508142611480919061518d565b601c819055506009600a6114949190615267565b8161149f9190615385565b601a81905550505050565b602760006114b6612bb9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061153b575061150c6122e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61157a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157190614f91565b60405180910390fd5b6001601960016101000a81548160ff0219169083151502179055506000601960006101000a81548160ff021916908315150217905550565b60186020528060005260406000206000915090505481565b6115d2612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461165f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165690615011565b60405180910390fd5b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e790615051565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611753612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d790615011565b60405180910390fd5b6000831180156117f05750600082115b80156117fc5750600081115b801561180a57506127108111155b61181357600080fd5b80836003546118229190615385565b61182c91906151e3565b60048190555080826003546118419190615385565b61184b91906151e3565b600581905550505050565b61185e612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e290615011565b60405180910390fd5b600082116118f857600080fd5b83602360006101000a81548160ff02191690831515021790555082602360016101000a81548160ff0219169083151502179055508160035461193a91906151e3565b6024819055506009600a61194e9190615267565b816119599190615385565b60258190555050505050565b60276000611971612bb9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119f657506119c76122e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611a35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2c90614f91565b60405180910390fd5b60004790508173ffffffffffffffffffffffffffffffffffffffff166108fc60648584611a629190615385565b611a6c91906151e3565b9081150290604051600060405180830381858888f19350505050158015611a97573d6000803e3d6000fd5b50505050565b6000611ac9827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610ef1565b9050919050565b601f5481565b60276000611ae2612bb9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b675750611b386122e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611ba6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9d90614f91565b60405180910390fd5b6001602160016101000a81548160ff0219169083151502179055506001602160006101000a81548160ff021916908315150217905550565b611be6612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6a90615011565b60405180910390fd5b80602760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60225481565b60006009600a611ce49190615267565b600654611cf191906151e3565b905090565b611cfe612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8290615011565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611dee612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7290615011565b60405180910390fd5b600084849050118015611e9357508383905082829050145b611e9c57600080fd5b600033905060005b8585905081101561201e5760176000878784818110611ec657611ec561560e565b5b9050602002016020810190611edb91906144ca565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611fa15750600d6000878784818110611f4257611f4161560e565b5b9050602002016020810190611f5791906144ca565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561200b5761200982878784818110611fbd57611fbc61560e565b5b9050602002016020810190611fd291906144ca565b6009600a611fe09190615267565b878786818110611ff357611ff261560e565b5b905060200201356120049190615385565b6133f5565b505b808061201690615567565b915050611ea4565b505050505050565b602360009054906101000a900460ff1681565b60096020528060005260406000206000915090505481565b612059612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120dd90615011565b60405180910390fd5b83600f8190555082600e819055508383612100919061518d565b6010819055508160118190555080601281905550600260125461212391906151e3565b6010541061213057600080fd5b50505050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b612187612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612214576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220b90615011565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60006122dc6122e1565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4257434900000000000000000000000000000000000000000000000000000000815250905090565b601b5481565b612355612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d990615011565b60405180910390fd5b81601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061249b338484612bc1565b905092915050565b6124ab612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612538576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252f90615011565b60405180910390fd5b6000821180156125485750600081115b801561255657506127108111155b61255f57600080fd5b808260035461256e9190615385565b61257891906151e3565b6006819055505050565b60006009600a6125929190615267565b60045461259f91906151e3565b905090565b601e5481565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915090505481565b6125f0612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461267d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161267490615011565b60405180910390fd5b603c81111561268b57600080fd5b8060228190555050565b602760006126a1612bb9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061272657506126f76122e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612765576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161275c90614f91565b60405180910390fd5b601960019054906101000a900460ff161561277f57600080fd5b81601960006101000a81548160ff0219169083151502179055506201518081106127a857600080fd5b80601c60008282546127ba919061518d565b925050819055505050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600043602054601e54612885919061518d565b106128a057600160125461289991906153df565b90506128d0565b81156128bd576011546010546128b6919061518d565b90506128d0565b6011546010546128cd91906153df565b90505b919050565b6128dd612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461296a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296190615011565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156129da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d190614f31565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612a9f612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612b2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b2390615011565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60255481565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60205481565b600033905090565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612c32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c2990614f11565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612ca2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c9990614f51565b60405180910390fd5b60008211612ce5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cdc90614eb1565b60405180910390fd5b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612d67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d5e90614f71565b60405180910390fd5b612d6f613583565b158015612dc55750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612e5f57600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e4d90614fd1565b60405180910390fd5b612e5e613590565b5b602160009054906101000a900460ff16612f5457600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612f145750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612f53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f4a90615031565b60405180910390fd5b5b612f5f8484846135bb565b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156130075750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561306957600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613068576130678383613b78565b5b5b601960009054906101000a900460ff168015613086575042601c54115b156131fc57601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561311057508273ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614155b801561315b57506000601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b156131fb5743601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601b60008154809291906131b790615567565b91905055507f47e78c0c4ce6dbe67ff01d67de13c04f361afa37858e7056d665001d746855ea32844360006040516131f29493929190614d29565b60405180910390a15b5b602660009054906101000a900460ff16156132235761321c8484846133f5565b90506133ee565b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461326e91906153df565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006132bc85613c11565b6132c657826132d1565b6132d08484613c68565b5b90506132dc84613d4b565b156132f55760008311156132f4576132f383613e75565b5b5b80600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613340919061518d565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516133e09190615071565b60405180910390a360019150505b9392505050565b600081600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461344291906153df565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134d0919061518d565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516135709190615071565b60405180910390a3600190509392505050565b600080601e541415905090565b43601e8190555042601f819055506001602360006101000a81548160ff021916908315150217905550565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061366f5750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166136675760055461366b565b6004545b8111155b6136ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136a590614ef1565b60405180910390fd5b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613752575043602254600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461374f919061518d565b11155b613791576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161378890614fb1565b60405180910390fd5b6000601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146138d2576009600a6137e69190615267565b601a546137f39190615385565b811115801561384157506000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b801561384e575042601c54115b61388d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161388490614ff1565b60405180910390fd5b43600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561396d5743600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613b73565b61397683613c11565b15613b7257601960009054906101000a900460ff168015613998575042601c54115b80156139e2575043600a60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b8015613a2d57506000601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b15613ab55743601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f47e78c0c4ce6dbe67ff01d67de13c04f361afa37858e7056d665001d746855ea3283436001604051613aac9493929190614d6e565b60405180910390a15b43600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614613b715743600a60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b5b505050565b600060065490508082600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613bcb919061518d565b1115613c0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c0390614ed1565b60405180910390fd5b505050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690506000601254613cc883612872565b85613cd39190615385565b613cdd91906151e3565b905080600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613d2e919061518d565b925050819055508084613d4191906153df565b9250505092915050565b6000601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015613db45750602660009054906101000a900460ff16155b8015613dcc5750602360009054906101000a900460ff165b8015613e215750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8015613e6e5750602554600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b9050919050565b6001602660006101000a81548160ff02191690831515021790555060006024548210613ea357602454613ea5565b815b905080600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015613f3157600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b60006010546002600f5484613f469190615385565b613f5091906151e3565b613f5a91906151e3565b90508082613f6891906153df565b91506000600267ffffffffffffffff811115613f8757613f8661563d565b5b604051908082528060200260200182016040528015613fb55781602001602082028036833780820191505090505b5090503081600081518110613fcd57613fcc61560e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561406f57600080fd5b505afa158015614083573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140a791906144f7565b816001815181106140bb576140ba61560e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478560008530426040518663ffffffff1660e01b815260040161415e95949392919061508c565b600060405180830381600087803b15801561417857600080fd5b505af115801561418c573d6000803e3d6000fd5b505050506000814761419e91906153df565b905060006002600f546141b191906151e3565b6010546141be91906153df565b90506000816002600f54856141d39190615385565b6141dd91906151e3565b6141e791906151e3565b9050600081846141f791906153df565b9050600081111561426c57601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561426a573d6000803e3d6000fd5b505b600087111561435457601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308a600080601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016142fe96959493929190614df8565b6060604051808303818588803b15801561431757600080fd5b505af115801561432b573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061435091906148ec565b5050505b7fdaf6233a382145376035341e71f8a04305f7e323d0fe3e58c908cf0a26b76df9818389604051614387939291906150e6565b60405180910390a150505050505050506000602660006101000a81548160ff02191690831515021790555050565b6000813590506143c481615979565b92915050565b6000815190506143d981615979565b92915050565b60008083601f8401126143f5576143f4615671565b5b8235905067ffffffffffffffff8111156144125761441161566c565b5b60208301915083602082028301111561442e5761442d615676565b5b9250929050565b60008083601f84011261444b5761444a615671565b5b8235905067ffffffffffffffff8111156144685761446761566c565b5b60208301915083602082028301111561448457614483615676565b5b9250929050565b60008135905061449a81615990565b92915050565b6000813590506144af816159a7565b92915050565b6000815190506144c4816159a7565b92915050565b6000602082840312156144e0576144df615680565b5b60006144ee848285016143b5565b91505092915050565b60006020828403121561450d5761450c615680565b5b600061451b848285016143ca565b91505092915050565b6000806040838503121561453b5761453a615680565b5b6000614549858286016143b5565b925050602061455a858286016143b5565b9150509250929050565b60008060006060848603121561457d5761457c615680565b5b600061458b868287016143b5565b935050602061459c868287016143b5565b92505060406145ad868287016144a0565b9150509250925092565b600080604083850312156145ce576145cd615680565b5b60006145dc858286016143b5565b92505060206145ed8582860161448b565b9150509250929050565b6000806040838503121561460e5761460d615680565b5b600061461c858286016143b5565b925050602061462d858286016144a0565b9150509250929050565b6000806000806040858703121561465157614650615680565b5b600085013567ffffffffffffffff81111561466f5761466e61567b565b5b61467b878288016143df565b9450945050602085013567ffffffffffffffff81111561469e5761469d61567b565b5b6146aa87828801614435565b925092505092959194509250565b6000806000604084860312156146d1576146d0615680565b5b600084013567ffffffffffffffff8111156146ef576146ee61567b565b5b6146fb868287016143df565b9350935050602061470e8682870161448b565b9150509250925092565b60006020828403121561472e5761472d615680565b5b600061473c8482850161448b565b91505092915050565b6000806000806080858703121561475f5761475e615680565b5b600061476d8782880161448b565b945050602061477e8782880161448b565b935050604061478f878288016144a0565b92505060606147a0878288016144a0565b91505092959194509250565b600080604083850312156147c3576147c2615680565b5b60006147d18582860161448b565b92505060206147e2858286016144a0565b9150509250929050565b60006020828403121561480257614801615680565b5b6000614810848285016144a0565b91505092915050565b600080604083850312156148305761482f615680565b5b600061483e858286016144a0565b925050602061484f858286016143b5565b9150509250929050565b600080604083850312156148705761486f615680565b5b600061487e858286016144a0565b925050602061488f858286016144a0565b9150509250929050565b6000806000606084860312156148b2576148b1615680565b5b60006148c0868287016144a0565b93505060206148d1868287016144a0565b92505060406148e2868287016144a0565b9150509250925092565b60008060006060848603121561490557614904615680565b5b6000614913868287016144b5565b9350506020614924868287016144b5565b9250506040614935868287016144b5565b9150509250925092565b6000806000806080858703121561495957614958615680565b5b6000614967878288016144a0565b9450506020614978878288016144a0565b9350506040614989878288016144a0565b925050606061499a878288016144a0565b91505092959194509250565b60006149b283836149dc565b60208301905092915050565b6149c78161547a565b82525050565b6149d681615425565b82525050565b6149e581615413565b82525050565b6149f481615413565b82525050565b6000614a0582615148565b614a0f818561516b565b9350614a1a83615138565b8060005b83811015614a4b578151614a3288826149a6565b9750614a3d8361515e565b925050600181019050614a1e565b5085935050505092915050565b614a6181615437565b82525050565b614a708161548c565b82525050565b614a7f8161549e565b82525050565b614a8e816154b0565b82525050565b614a9d816154c2565b82525050565b614aac816154d4565b82525050565b6000614abd82615153565b614ac7818561517c565b9350614ad781856020860161550a565b614ae081615685565b840191505092915050565b6000614af860158361517c565b9150614b03826156a3565b602082019050919050565b6000614b1b60258361517c565b9150614b26826156cc565b604082019050919050565b6000614b3e60118361517c565b9150614b498261571b565b602082019050919050565b6000614b6160188361517c565b9150614b6c82615744565b602082019050919050565b6000614b8460268361517c565b9150614b8f8261576d565b604082019050919050565b6000614ba760168361517c565b9150614bb2826157bc565b602082019050919050565b6000614bca60148361517c565b9150614bd5826157e5565b602082019050919050565b6000614bed601b8361517c565b9150614bf88261580e565b602082019050919050565b6000614c10601d8361517c565b9150614c1b82615837565b602082019050919050565b6000614c3360188361517c565b9150614c3e82615860565b602082019050919050565b6000614c5660298361517c565b9150614c6182615889565b604082019050919050565b6000614c7960208361517c565b9150614c84826158d8565b602082019050919050565b6000614c9c60158361517c565b9150614ca782615901565b602082019050919050565b6000614cbf60228361517c565b9150614cca8261592a565b604082019050919050565b614cde81615463565b82525050565b614ced8161546d565b82525050565b6000602082019050614d0860008301846149eb565b92915050565b6000602082019050614d2360008301846149cd565b92915050565b6000608082019050614d3e60008301876149eb565b614d4b60208301866149eb565b614d586040830185614cd5565b614d656060830184614a85565b95945050505050565b6000608082019050614d8360008301876149eb565b614d9060208301866149eb565b614d9d6040830185614cd5565b614daa6060830184614a94565b95945050505050565b6000608082019050614dc860008301876149eb565b614dd560208301866149eb565b614de26040830185614cd5565b614def6060830184614aa3565b95945050505050565b600060c082019050614e0d60008301896149eb565b614e1a6020830188614cd5565b614e276040830187614a76565b614e346060830186614a76565b614e4160808301856149be565b614e4e60a0830184614cd5565b979650505050505050565b6000602082019050614e6e6000830184614a58565b92915050565b6000602082019050614e896000830184614a67565b92915050565b60006020820190508181036000830152614ea98184614ab2565b905092915050565b60006020820190508181036000830152614eca81614aeb565b9050919050565b60006020820190508181036000830152614eea81614b0e565b9050919050565b60006020820190508181036000830152614f0a81614b31565b9050919050565b60006020820190508181036000830152614f2a81614b54565b9050919050565b60006020820190508181036000830152614f4a81614b77565b9050919050565b60006020820190508181036000830152614f6a81614b9a565b9050919050565b60006020820190508181036000830152614f8a81614bbd565b9050919050565b60006020820190508181036000830152614faa81614be0565b9050919050565b60006020820190508181036000830152614fca81614c03565b9050919050565b60006020820190508181036000830152614fea81614c26565b9050919050565b6000602082019050818103600083015261500a81614c49565b9050919050565b6000602082019050818103600083015261502a81614c6c565b9050919050565b6000602082019050818103600083015261504a81614c8f565b9050919050565b6000602082019050818103600083015261506a81614cb2565b9050919050565b60006020820190506150866000830184614cd5565b92915050565b600060a0820190506150a16000830188614cd5565b6150ae6020830187614a76565b81810360408301526150c081866149fa565b90506150cf60608301856149eb565b6150dc6080830184614cd5565b9695505050505050565b60006060820190506150fb6000830186614cd5565b6151086020830185614cd5565b6151156040830184614cd5565b949350505050565b60006020820190506151326000830184614ce4565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061519882615463565b91506151a383615463565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156151d8576151d76155b0565b5b828201905092915050565b60006151ee82615463565b91506151f983615463565b925082615209576152086155df565b5b828204905092915050565b6000808291508390505b600185111561525e5780860481111561523a576152396155b0565b5b60018516156152495780820291505b808102905061525785615696565b945061521e565b94509492505050565b600061527282615463565b915061527d8361546d565b92506152aa7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846152b2565b905092915050565b6000826152c2576001905061537e565b816152d0576000905061537e565b81600181146152e657600281146152f05761531f565b600191505061537e565b60ff841115615302576153016155b0565b5b8360020a915084821115615319576153186155b0565b5b5061537e565b5060208310610133831016604e8410600b84101617156153545782820a90508381111561534f5761534e6155b0565b5b61537e565b6153618484846001615214565b92509050818404811115615378576153776155b0565b5b81810290505b9392505050565b600061539082615463565b915061539b83615463565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156153d4576153d36155b0565b5b828202905092915050565b60006153ea82615463565b91506153f583615463565b925082821015615408576154076155b0565b5b828203905092915050565b600061541e82615443565b9050919050565b600061543082615443565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000615485826154e6565b9050919050565b6000615497826154e6565b9050919050565b60006154a982615463565b9050919050565b60006154bb8261546d565b9050919050565b60006154cd8261546d565b9050919050565b60006154df8261546d565b9050919050565b60006154f1826154f8565b9050919050565b600061550382615443565b9050919050565b60005b8381101561552857808201518184015260208101905061550d565b83811115615537576000848401525b50505050565b600061554882615463565b9150600082141561555c5761555b6155b0565b5b600182039050919050565b600061557282615463565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156155a5576155a46155b0565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f416d6f756e74206d757374206265203e207a65726f0000000000000000000000600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f42455032303a207472616e736665722066726f6d203078300000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f42455032303a207472616e7366657220746f2030783000000000000000000000600082015250565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b7f43616c6c6572206973206e6f742061207465616d206d656d6265720000000000600082015250565b7f5472616e736665722072617465206c696d69742065786365656465642e000000600082015250565b7f4c6971756964697479206e6f74206164646564207965742e0000000000000000600082015250565b7f57616c6c65742070726f7465637465642c20706c6561736520636f6e7461637460008201527f20737570706f72742e0000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f54726164696e67206e6f74206f70656e207965742e0000000000000000000000600082015250565b7f43616e277420616c7465722063757272656e74206c697175696469747920706160008201527f6972000000000000000000000000000000000000000000000000000000000000602082015250565b61598281615413565b811461598d57600080fd5b50565b61599981615437565b81146159a457600080fd5b50565b6159b081615463565b81146159bb57600080fd5b5056fea2646970667358221220eb6b773388302b5b2f54b627d8ea0606a766a3faf46041526579615b33e1dc9a64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106103035760003560e01c80636f4ce42811610190578063bf56b371116100dc578063e96fada211610095578063f84ba65d1161006f578063f84ba65d14610b65578063f8821a6214610b8e578063f887ea4014610bb9578063fabb0b4f14610be45761030a565b8063e96fada214610ad4578063f1f3bca314610aff578063f2fde38b14610b3c5761030a565b8063bf56b371146109b2578063bfa21d6a146109dd578063c1adf7bc14610a08578063c287184e14610a45578063d686014214610a6e578063dd62ed3e14610a975761030a565b806395d89b4111610149578063a8aa1b3111610123578063a8aa1b31146108f6578063a9059cbb14610921578063abe57e701461095e578063bafe446b146109875761030a565b806395d89b41146108775780639b02c402146108a2578063a4b45c00146108cd5761030a565b80636f4ce428146107675780636fcba377146107a457806370a08231146107cd578063715018a61461080a578063893d20e8146108215780638da5cb5b1461084c5761030a565b8063492a937b1161024f578063584f969a1161020857806363a803e1116101e257806363a803e1146106bf578063658d4b7f146106ea57806367243482146107135780636ddd17131461073c5761030a565b8063584f969a1461065457806360bba03d1461066b57806361e08e72146106945761030a565b8063492a937b14610548578063507139351461057157806354a1dfc91461059a57806356a227f2146105c3578063571ac8b0146105ec5780635804f1e4146106295761030a565b8063234e9494116102bc578063313ce56711610296578063313ce567146104a057806334848b9a146104cb578063421dd7c7146104f457806346d7edaa1461050b5761030a565b8063234e94941461040d57806323b872dd146104385780632b112e49146104755761030a565b80630445b6671461030f57806306fdde031461033a578063095db78f14610365578063095ea7b31461038e5780631031e36e146103cb57806318160ddd146103e25761030a565b3661030a57005b600080fd5b34801561031b57600080fd5b50610324610c0f565b6040516103319190615071565b60405180910390f35b34801561034657600080fd5b5061034f610c15565b60405161035c9190614e8f565b60405180910390f35b34801561037157600080fd5b5061038c600480360381019061038791906146b8565b610c52565b005b34801561039a57600080fd5b506103b560048036038101906103b091906145f7565b610ef1565b6040516103c29190614e59565b60405180910390f35b3480156103d757600080fd5b506103e0610fe3565b005b3480156103ee57600080fd5b506103f76110ea565b6040516104049190615071565b60405180910390f35b34801561041957600080fd5b506104226110f4565b60405161042f9190615071565b60405180910390f35b34801561044457600080fd5b5061045f600480360381019061045a9190614564565b611116565b60405161046c9190614e59565b60405180910390f35b34801561048157600080fd5b5061048a6112d8565b6040516104979190615071565b60405180910390f35b3480156104ac57600080fd5b506104b561134c565b6040516104c2919061511d565b60405180910390f35b3480156104d757600080fd5b506104f260048036038101906104ed9190614899565b611355565b005b34801561050057600080fd5b506105096114aa565b005b34801561051757600080fd5b50610532600480360381019061052d91906144ca565b6115b2565b60405161053f9190615071565b60405180910390f35b34801561055457600080fd5b5061056f600480360381019061056a91906145b7565b6115ca565b005b34801561057d57600080fd5b5061059860048036038101906105939190614899565b61174b565b005b3480156105a657600080fd5b506105c160048036038101906105bc9190614745565b611856565b005b3480156105cf57600080fd5b506105ea60048036038101906105e59190614819565b611965565b005b3480156105f857600080fd5b50610613600480360381019061060e91906144ca565b611a9d565b6040516106209190614e59565b60405180910390f35b34801561063557600080fd5b5061063e611ad0565b60405161064b9190615071565b60405180910390f35b34801561066057600080fd5b50610669611ad6565b005b34801561067757600080fd5b50610692600480360381019061068d91906145b7565b611bde565b005b3480156106a057600080fd5b506106a9611cce565b6040516106b69190615071565b60405180910390f35b3480156106cb57600080fd5b506106d4611cd4565b6040516106e19190615071565b60405180910390f35b3480156106f657600080fd5b50610711600480360381019061070c91906145b7565b611cf6565b005b34801561071f57600080fd5b5061073a60048036038101906107359190614637565b611de6565b005b34801561074857600080fd5b50610751612026565b60405161075e9190614e59565b60405180910390f35b34801561077357600080fd5b5061078e600480360381019061078991906144ca565b612039565b60405161079b9190615071565b60405180910390f35b3480156107b057600080fd5b506107cb60048036038101906107c6919061493f565b612051565b005b3480156107d957600080fd5b506107f460048036038101906107ef91906144ca565b612136565b6040516108019190615071565b60405180910390f35b34801561081657600080fd5b5061081f61217f565b005b34801561082d57600080fd5b506108366122d2565b6040516108439190614cf3565b60405180910390f35b34801561085857600080fd5b506108616122e1565b60405161086e9190614cf3565b60405180910390f35b34801561088357600080fd5b5061088c61230a565b6040516108999190614e8f565b60405180910390f35b3480156108ae57600080fd5b506108b7612347565b6040516108c49190615071565b60405180910390f35b3480156108d957600080fd5b506108f460048036038101906108ef9190614524565b61234d565b005b34801561090257600080fd5b5061090b612468565b6040516109189190614cf3565b60405180910390f35b34801561092d57600080fd5b50610948600480360381019061094391906145f7565b61248e565b6040516109559190614e59565b60405180910390f35b34801561096a57600080fd5b5061098560048036038101906109809190614859565b6124a3565b005b34801561099357600080fd5b5061099c612582565b6040516109a99190615071565b60405180910390f35b3480156109be57600080fd5b506109c76125a4565b6040516109d49190615071565b60405180910390f35b3480156109e957600080fd5b506109f26125aa565b6040516109ff9190614d0e565b60405180910390f35b348015610a1457600080fd5b50610a2f6004803603810190610a2a91906144ca565b6125d0565b604051610a3c9190615071565b60405180910390f35b348015610a5157600080fd5b50610a6c6004803603810190610a6791906147ec565b6125e8565b005b348015610a7a57600080fd5b50610a956004803603810190610a9091906147ac565b612695565b005b348015610aa357600080fd5b50610abe6004803603810190610ab99190614524565b6127c5565b604051610acb9190615071565b60405180910390f35b348015610ae057600080fd5b50610ae961284c565b604051610af69190614d0e565b60405180910390f35b348015610b0b57600080fd5b50610b266004803603810190610b219190614718565b612872565b604051610b339190615071565b60405180910390f35b348015610b4857600080fd5b50610b636004803603810190610b5e91906144ca565b6128d5565b005b348015610b7157600080fd5b50610b8c6004803603810190610b8791906145b7565b612a97565b005b348015610b9a57600080fd5b50610ba3612b87565b604051610bb09190615071565b60405180910390f35b348015610bc557600080fd5b50610bce612b8d565b604051610bdb9190614e74565b60405180910390f35b348015610bf057600080fd5b50610bf9612bb3565b604051610c069190615071565b60405180910390f35b60245481565b60606040518060400160405280601281526020017f4241425920574f524c442043555020494e550000000000000000000000000000815250905090565b60276000610c5e612bb9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610ce35750610cb46122e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610d22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1990614f91565b60405180910390fd5b8015610d4257601960009054906101000a900460ff16610d4157600080fd5b5b60005b83839050811015610eeb578115610dd857601b6000815480929190610d6990615567565b91905055507f47e78c0c4ce6dbe67ff01d67de13c04f361afa37858e7056d665001d746855ea32858584818110610da357610da261560e565b5b9050602002016020810190610db891906144ca565b436002604051610dcb9493929190614db3565b60405180910390a1610e60565b600060186000868685818110610df157610df061560e565b5b9050602002016020810190610e0691906144ca565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610e5f57601b6000815480929190610e599061553d565b91905055505b5b81610e6c576000610e6e565b435b60186000868685818110610e8557610e8461560e565b5b9050602002016020810190610e9a91906144ca565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508080610ee390615567565b915050610d45565b50505050565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610fd19190615071565b60405180910390a36001905092915050565b60276000610fef612bb9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061107457506110456122e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6110b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110aa90614f91565b60405180910390fd5b602160019054906101000a900460ff16156110cd57600080fd5b6000602160006101000a81548160ff021916908315150217905550565b6000600354905090565b60006009600a6111049190615267565b60055461111191906151e3565b905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146112c45781600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461124391906153df565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6112cf848484612bc1565b90509392505050565b6000611305600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612136565b611330600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612136565b61133a919061518d565b60035461134791906153df565b905090565b60006009905090565b60276000611361612bb9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806113e657506113b76122e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611425576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141c90614f91565b60405180910390fd5b602160009054906101000a900460ff161580156114425750600a83105b61144b57600080fd5b826020819055506001602160006101000a81548160ff02191690831515021790555043601e819055508142611480919061518d565b601c819055506009600a6114949190615267565b8161149f9190615385565b601a81905550505050565b602760006114b6612bb9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061153b575061150c6122e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61157a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157190614f91565b60405180910390fd5b6001601960016101000a81548160ff0219169083151502179055506000601960006101000a81548160ff021916908315150217905550565b60186020528060005260406000206000915090505481565b6115d2612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461165f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165690615011565b60405180910390fd5b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e790615051565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611753612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d790615011565b60405180910390fd5b6000831180156117f05750600082115b80156117fc5750600081115b801561180a57506127108111155b61181357600080fd5b80836003546118229190615385565b61182c91906151e3565b60048190555080826003546118419190615385565b61184b91906151e3565b600581905550505050565b61185e612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e290615011565b60405180910390fd5b600082116118f857600080fd5b83602360006101000a81548160ff02191690831515021790555082602360016101000a81548160ff0219169083151502179055508160035461193a91906151e3565b6024819055506009600a61194e9190615267565b816119599190615385565b60258190555050505050565b60276000611971612bb9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119f657506119c76122e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611a35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2c90614f91565b60405180910390fd5b60004790508173ffffffffffffffffffffffffffffffffffffffff166108fc60648584611a629190615385565b611a6c91906151e3565b9081150290604051600060405180830381858888f19350505050158015611a97573d6000803e3d6000fd5b50505050565b6000611ac9827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610ef1565b9050919050565b601f5481565b60276000611ae2612bb9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b675750611b386122e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611ba6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9d90614f91565b60405180910390fd5b6001602160016101000a81548160ff0219169083151502179055506001602160006101000a81548160ff021916908315150217905550565b611be6612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6a90615011565b60405180910390fd5b80602760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60225481565b60006009600a611ce49190615267565b600654611cf191906151e3565b905090565b611cfe612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8290615011565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611dee612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7290615011565b60405180910390fd5b600084849050118015611e9357508383905082829050145b611e9c57600080fd5b600033905060005b8585905081101561201e5760176000878784818110611ec657611ec561560e565b5b9050602002016020810190611edb91906144ca565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611fa15750600d6000878784818110611f4257611f4161560e565b5b9050602002016020810190611f5791906144ca565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561200b5761200982878784818110611fbd57611fbc61560e565b5b9050602002016020810190611fd291906144ca565b6009600a611fe09190615267565b878786818110611ff357611ff261560e565b5b905060200201356120049190615385565b6133f5565b505b808061201690615567565b915050611ea4565b505050505050565b602360009054906101000a900460ff1681565b60096020528060005260406000206000915090505481565b612059612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120dd90615011565b60405180910390fd5b83600f8190555082600e819055508383612100919061518d565b6010819055508160118190555080601281905550600260125461212391906151e3565b6010541061213057600080fd5b50505050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b612187612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612214576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220b90615011565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60006122dc6122e1565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4257434900000000000000000000000000000000000000000000000000000000815250905090565b601b5481565b612355612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d990615011565b60405180910390fd5b81601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061249b338484612bc1565b905092915050565b6124ab612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612538576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252f90615011565b60405180910390fd5b6000821180156125485750600081115b801561255657506127108111155b61255f57600080fd5b808260035461256e9190615385565b61257891906151e3565b6006819055505050565b60006009600a6125929190615267565b60045461259f91906151e3565b905090565b601e5481565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915090505481565b6125f0612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461267d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161267490615011565b60405180910390fd5b603c81111561268b57600080fd5b8060228190555050565b602760006126a1612bb9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061272657506126f76122e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612765576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161275c90614f91565b60405180910390fd5b601960019054906101000a900460ff161561277f57600080fd5b81601960006101000a81548160ff0219169083151502179055506201518081106127a857600080fd5b80601c60008282546127ba919061518d565b925050819055505050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600043602054601e54612885919061518d565b106128a057600160125461289991906153df565b90506128d0565b81156128bd576011546010546128b6919061518d565b90506128d0565b6011546010546128cd91906153df565b90505b919050565b6128dd612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461296a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296190615011565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156129da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d190614f31565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612a9f612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612b2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b2390615011565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60255481565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60205481565b600033905090565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612c32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c2990614f11565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612ca2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c9990614f51565b60405180910390fd5b60008211612ce5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cdc90614eb1565b60405180910390fd5b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612d67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d5e90614f71565b60405180910390fd5b612d6f613583565b158015612dc55750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612e5f57600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e4d90614fd1565b60405180910390fd5b612e5e613590565b5b602160009054906101000a900460ff16612f5457600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612f145750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612f53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f4a90615031565b60405180910390fd5b5b612f5f8484846135bb565b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156130075750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561306957600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613068576130678383613b78565b5b5b601960009054906101000a900460ff168015613086575042601c54115b156131fc57601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561311057508273ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614155b801561315b57506000601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b156131fb5743601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601b60008154809291906131b790615567565b91905055507f47e78c0c4ce6dbe67ff01d67de13c04f361afa37858e7056d665001d746855ea32844360006040516131f29493929190614d29565b60405180910390a15b5b602660009054906101000a900460ff16156132235761321c8484846133f5565b90506133ee565b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461326e91906153df565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006132bc85613c11565b6132c657826132d1565b6132d08484613c68565b5b90506132dc84613d4b565b156132f55760008311156132f4576132f383613e75565b5b5b80600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613340919061518d565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516133e09190615071565b60405180910390a360019150505b9392505050565b600081600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461344291906153df565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134d0919061518d565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516135709190615071565b60405180910390a3600190509392505050565b600080601e541415905090565b43601e8190555042601f819055506001602360006101000a81548160ff021916908315150217905550565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061366f5750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166136675760055461366b565b6004545b8111155b6136ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136a590614ef1565b60405180910390fd5b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613752575043602254600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461374f919061518d565b11155b613791576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161378890614fb1565b60405180910390fd5b6000601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146138d2576009600a6137e69190615267565b601a546137f39190615385565b811115801561384157506000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b801561384e575042601c54115b61388d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161388490614ff1565b60405180910390fd5b43600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561396d5743600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613b73565b61397683613c11565b15613b7257601960009054906101000a900460ff168015613998575042601c54115b80156139e2575043600a60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b8015613a2d57506000601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b15613ab55743601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f47e78c0c4ce6dbe67ff01d67de13c04f361afa37858e7056d665001d746855ea3283436001604051613aac9493929190614d6e565b60405180910390a15b43600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614613b715743600a60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b5b505050565b600060065490508082600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613bcb919061518d565b1115613c0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c0390614ed1565b60405180910390fd5b505050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690506000601254613cc883612872565b85613cd39190615385565b613cdd91906151e3565b905080600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613d2e919061518d565b925050819055508084613d4191906153df565b9250505092915050565b6000601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015613db45750602660009054906101000a900460ff16155b8015613dcc5750602360009054906101000a900460ff165b8015613e215750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8015613e6e5750602554600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b9050919050565b6001602660006101000a81548160ff02191690831515021790555060006024548210613ea357602454613ea5565b815b905080600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015613f3157600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b60006010546002600f5484613f469190615385565b613f5091906151e3565b613f5a91906151e3565b90508082613f6891906153df565b91506000600267ffffffffffffffff811115613f8757613f8661563d565b5b604051908082528060200260200182016040528015613fb55781602001602082028036833780820191505090505b5090503081600081518110613fcd57613fcc61560e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561406f57600080fd5b505afa158015614083573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140a791906144f7565b816001815181106140bb576140ba61560e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478560008530426040518663ffffffff1660e01b815260040161415e95949392919061508c565b600060405180830381600087803b15801561417857600080fd5b505af115801561418c573d6000803e3d6000fd5b505050506000814761419e91906153df565b905060006002600f546141b191906151e3565b6010546141be91906153df565b90506000816002600f54856141d39190615385565b6141dd91906151e3565b6141e791906151e3565b9050600081846141f791906153df565b9050600081111561426c57601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561426a573d6000803e3d6000fd5b505b600087111561435457601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308a600080601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016142fe96959493929190614df8565b6060604051808303818588803b15801561431757600080fd5b505af115801561432b573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061435091906148ec565b5050505b7fdaf6233a382145376035341e71f8a04305f7e323d0fe3e58c908cf0a26b76df9818389604051614387939291906150e6565b60405180910390a150505050505050506000602660006101000a81548160ff02191690831515021790555050565b6000813590506143c481615979565b92915050565b6000815190506143d981615979565b92915050565b60008083601f8401126143f5576143f4615671565b5b8235905067ffffffffffffffff8111156144125761441161566c565b5b60208301915083602082028301111561442e5761442d615676565b5b9250929050565b60008083601f84011261444b5761444a615671565b5b8235905067ffffffffffffffff8111156144685761446761566c565b5b60208301915083602082028301111561448457614483615676565b5b9250929050565b60008135905061449a81615990565b92915050565b6000813590506144af816159a7565b92915050565b6000815190506144c4816159a7565b92915050565b6000602082840312156144e0576144df615680565b5b60006144ee848285016143b5565b91505092915050565b60006020828403121561450d5761450c615680565b5b600061451b848285016143ca565b91505092915050565b6000806040838503121561453b5761453a615680565b5b6000614549858286016143b5565b925050602061455a858286016143b5565b9150509250929050565b60008060006060848603121561457d5761457c615680565b5b600061458b868287016143b5565b935050602061459c868287016143b5565b92505060406145ad868287016144a0565b9150509250925092565b600080604083850312156145ce576145cd615680565b5b60006145dc858286016143b5565b92505060206145ed8582860161448b565b9150509250929050565b6000806040838503121561460e5761460d615680565b5b600061461c858286016143b5565b925050602061462d858286016144a0565b9150509250929050565b6000806000806040858703121561465157614650615680565b5b600085013567ffffffffffffffff81111561466f5761466e61567b565b5b61467b878288016143df565b9450945050602085013567ffffffffffffffff81111561469e5761469d61567b565b5b6146aa87828801614435565b925092505092959194509250565b6000806000604084860312156146d1576146d0615680565b5b600084013567ffffffffffffffff8111156146ef576146ee61567b565b5b6146fb868287016143df565b9350935050602061470e8682870161448b565b9150509250925092565b60006020828403121561472e5761472d615680565b5b600061473c8482850161448b565b91505092915050565b6000806000806080858703121561475f5761475e615680565b5b600061476d8782880161448b565b945050602061477e8782880161448b565b935050604061478f878288016144a0565b92505060606147a0878288016144a0565b91505092959194509250565b600080604083850312156147c3576147c2615680565b5b60006147d18582860161448b565b92505060206147e2858286016144a0565b9150509250929050565b60006020828403121561480257614801615680565b5b6000614810848285016144a0565b91505092915050565b600080604083850312156148305761482f615680565b5b600061483e858286016144a0565b925050602061484f858286016143b5565b9150509250929050565b600080604083850312156148705761486f615680565b5b600061487e858286016144a0565b925050602061488f858286016144a0565b9150509250929050565b6000806000606084860312156148b2576148b1615680565b5b60006148c0868287016144a0565b93505060206148d1868287016144a0565b92505060406148e2868287016144a0565b9150509250925092565b60008060006060848603121561490557614904615680565b5b6000614913868287016144b5565b9350506020614924868287016144b5565b9250506040614935868287016144b5565b9150509250925092565b6000806000806080858703121561495957614958615680565b5b6000614967878288016144a0565b9450506020614978878288016144a0565b9350506040614989878288016144a0565b925050606061499a878288016144a0565b91505092959194509250565b60006149b283836149dc565b60208301905092915050565b6149c78161547a565b82525050565b6149d681615425565b82525050565b6149e581615413565b82525050565b6149f481615413565b82525050565b6000614a0582615148565b614a0f818561516b565b9350614a1a83615138565b8060005b83811015614a4b578151614a3288826149a6565b9750614a3d8361515e565b925050600181019050614a1e565b5085935050505092915050565b614a6181615437565b82525050565b614a708161548c565b82525050565b614a7f8161549e565b82525050565b614a8e816154b0565b82525050565b614a9d816154c2565b82525050565b614aac816154d4565b82525050565b6000614abd82615153565b614ac7818561517c565b9350614ad781856020860161550a565b614ae081615685565b840191505092915050565b6000614af860158361517c565b9150614b03826156a3565b602082019050919050565b6000614b1b60258361517c565b9150614b26826156cc565b604082019050919050565b6000614b3e60118361517c565b9150614b498261571b565b602082019050919050565b6000614b6160188361517c565b9150614b6c82615744565b602082019050919050565b6000614b8460268361517c565b9150614b8f8261576d565b604082019050919050565b6000614ba760168361517c565b9150614bb2826157bc565b602082019050919050565b6000614bca60148361517c565b9150614bd5826157e5565b602082019050919050565b6000614bed601b8361517c565b9150614bf88261580e565b602082019050919050565b6000614c10601d8361517c565b9150614c1b82615837565b602082019050919050565b6000614c3360188361517c565b9150614c3e82615860565b602082019050919050565b6000614c5660298361517c565b9150614c6182615889565b604082019050919050565b6000614c7960208361517c565b9150614c84826158d8565b602082019050919050565b6000614c9c60158361517c565b9150614ca782615901565b602082019050919050565b6000614cbf60228361517c565b9150614cca8261592a565b604082019050919050565b614cde81615463565b82525050565b614ced8161546d565b82525050565b6000602082019050614d0860008301846149eb565b92915050565b6000602082019050614d2360008301846149cd565b92915050565b6000608082019050614d3e60008301876149eb565b614d4b60208301866149eb565b614d586040830185614cd5565b614d656060830184614a85565b95945050505050565b6000608082019050614d8360008301876149eb565b614d9060208301866149eb565b614d9d6040830185614cd5565b614daa6060830184614a94565b95945050505050565b6000608082019050614dc860008301876149eb565b614dd560208301866149eb565b614de26040830185614cd5565b614def6060830184614aa3565b95945050505050565b600060c082019050614e0d60008301896149eb565b614e1a6020830188614cd5565b614e276040830187614a76565b614e346060830186614a76565b614e4160808301856149be565b614e4e60a0830184614cd5565b979650505050505050565b6000602082019050614e6e6000830184614a58565b92915050565b6000602082019050614e896000830184614a67565b92915050565b60006020820190508181036000830152614ea98184614ab2565b905092915050565b60006020820190508181036000830152614eca81614aeb565b9050919050565b60006020820190508181036000830152614eea81614b0e565b9050919050565b60006020820190508181036000830152614f0a81614b31565b9050919050565b60006020820190508181036000830152614f2a81614b54565b9050919050565b60006020820190508181036000830152614f4a81614b77565b9050919050565b60006020820190508181036000830152614f6a81614b9a565b9050919050565b60006020820190508181036000830152614f8a81614bbd565b9050919050565b60006020820190508181036000830152614faa81614be0565b9050919050565b60006020820190508181036000830152614fca81614c03565b9050919050565b60006020820190508181036000830152614fea81614c26565b9050919050565b6000602082019050818103600083015261500a81614c49565b9050919050565b6000602082019050818103600083015261502a81614c6c565b9050919050565b6000602082019050818103600083015261504a81614c8f565b9050919050565b6000602082019050818103600083015261506a81614cb2565b9050919050565b60006020820190506150866000830184614cd5565b92915050565b600060a0820190506150a16000830188614cd5565b6150ae6020830187614a76565b81810360408301526150c081866149fa565b90506150cf60608301856149eb565b6150dc6080830184614cd5565b9695505050505050565b60006060820190506150fb6000830186614cd5565b6151086020830185614cd5565b6151156040830184614cd5565b949350505050565b60006020820190506151326000830184614ce4565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061519882615463565b91506151a383615463565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156151d8576151d76155b0565b5b828201905092915050565b60006151ee82615463565b91506151f983615463565b925082615209576152086155df565b5b828204905092915050565b6000808291508390505b600185111561525e5780860481111561523a576152396155b0565b5b60018516156152495780820291505b808102905061525785615696565b945061521e565b94509492505050565b600061527282615463565b915061527d8361546d565b92506152aa7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846152b2565b905092915050565b6000826152c2576001905061537e565b816152d0576000905061537e565b81600181146152e657600281146152f05761531f565b600191505061537e565b60ff841115615302576153016155b0565b5b8360020a915084821115615319576153186155b0565b5b5061537e565b5060208310610133831016604e8410600b84101617156153545782820a90508381111561534f5761534e6155b0565b5b61537e565b6153618484846001615214565b92509050818404811115615378576153776155b0565b5b81810290505b9392505050565b600061539082615463565b915061539b83615463565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156153d4576153d36155b0565b5b828202905092915050565b60006153ea82615463565b91506153f583615463565b925082821015615408576154076155b0565b5b828203905092915050565b600061541e82615443565b9050919050565b600061543082615443565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000615485826154e6565b9050919050565b6000615497826154e6565b9050919050565b60006154a982615463565b9050919050565b60006154bb8261546d565b9050919050565b60006154cd8261546d565b9050919050565b60006154df8261546d565b9050919050565b60006154f1826154f8565b9050919050565b600061550382615443565b9050919050565b60005b8381101561552857808201518184015260208101905061550d565b83811115615537576000848401525b50505050565b600061554882615463565b9150600082141561555c5761555b6155b0565b5b600182039050919050565b600061557282615463565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156155a5576155a46155b0565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f416d6f756e74206d757374206265203e207a65726f0000000000000000000000600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f42455032303a207472616e736665722066726f6d203078300000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f42455032303a207472616e7366657220746f2030783000000000000000000000600082015250565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b7f43616c6c6572206973206e6f742061207465616d206d656d6265720000000000600082015250565b7f5472616e736665722072617465206c696d69742065786365656465642e000000600082015250565b7f4c6971756964697479206e6f74206164646564207965742e0000000000000000600082015250565b7f57616c6c65742070726f7465637465642c20706c6561736520636f6e7461637460008201527f20737570706f72742e0000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f54726164696e67206e6f74206f70656e207965742e0000000000000000000000600082015250565b7f43616e277420616c7465722063757272656e74206c697175696469747920706160008201527f6972000000000000000000000000000000000000000000000000000000000000602082015250565b61598281615413565b811461598d57600080fd5b50565b61599981615437565b81146159a457600080fd5b50565b6159b081615463565b81146159bb57600080fd5b5056fea2646970667358221220eb6b773388302b5b2f54b627d8ea0606a766a3faf46041526579615b33e1dc9a64736f6c63430008070033

Deployed Bytecode Sourcemap

5165:16309:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7176:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8640:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11596:617;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9381:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10960:115;;;;;;;;;;;;;:::i;:::-;;8388:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8905:107;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12385:341;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21227:138;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8482:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10576:372;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11457:127;;;;;;;;;;;;;:::i;:::-;;6652:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19047:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19375:339;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20859:360;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10350:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9605:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6937:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11087:111;;;;;;;;;;;;;:::i;:::-;;9739:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7068:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9018:105;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19953:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9870:468;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7105:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5860:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20215:386;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9129:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4760:148;;;;;;;;;;;;;:::i;:::-;;8717:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4550:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8559:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6808:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20609:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6877:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12221:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19726:219;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8794:105;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6905:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6291:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5911:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19239:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11210:235;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9240:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6395:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16632:243;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4914:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20080:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7233:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6501:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6971:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7176:50;;;;:::o;8640:71::-;8679:13;8703:5;;;;;;;;;;;;;;;;;8696:12;;8640:71;:::o;11596:617::-;7464:10;:24;7475:12;:10;:12::i;:::-;7464:24;;;;;;;;;;;;;;;;;;;;;;;;;:49;;;;7506:7;:5;:7::i;:::-;7492:21;;:10;:21;;;7464:49;7456:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;11696:8:::1;11692:67;;;11729:17;;;;;;;;;;;11721:26;;;::::0;::::1;;11692:67;11784:6;11779:427;11800:8;;:15;;11796:1;:19;11779:427;;;11855:8;11851:277;;;11884:15;;:17;;;;;;;;;:::i;:::-;;;;;;11925:56;11941:9;11952:8;;11961:1;11952:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;11965:12;11979:1;11925:56;;;;;;;;;:::i;:::-;;;;;;;;11851:277;;;12065:1;12039:9;:22;12049:8;;12058:1;12049:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;12039:22;;;;;;;;;;;;;;;;:27;12035:71;;12089:15;;:17;;;;;;;;;:::i;:::-;;;;;;12035:71;11851:277;12167:8;:27;;12193:1;12167:27;;;12178:12;12167:27;12142:9;:22;12152:8;;12161:1;12152:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;12142:22;;;;;;;;;;;;;;;:52;;;;11817:3;;;;;:::i;:::-;;;;11779:427;;;;11596:617:::0;;;:::o;9381:216::-;9456:4;9508:6;9473:11;:23;9485:10;9473:23;;;;;;;;;;;;;;;:32;9497:7;9473:32;;;;;;;;;;;;;;;:41;;;;9551:7;9530:37;;9539:10;9530:37;;;9560:6;9530:37;;;;;;:::i;:::-;;;;;;;;9585:4;9578:11;;9381:216;;;;:::o;10960:115::-;7464:10;:24;7475:12;:10;:12::i;:::-;7464:24;;;;;;;;;;;;;;;;;;;;;;;;;:49;;;;7506:7;:5;:7::i;:::-;7492:21;;:10;:21;;;7464:49;7456:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;11022:13:::1;;;;;;;;;;;11021:14;11013:23;;;::::0;::::1;;11062:5;11047:12;;:20;;;;;;;;;;;;;;;;;;10960:115::o:0;8388:88::-;8443:7;8461:12;;8454:19;;8388:88;:::o;8905:107::-;8955:7;5501:1;8993:2;:15;;;;:::i;:::-;8973:16;;:36;;;;:::i;:::-;8966:43;;8905:107;:::o;12385:341::-;12485:4;12540:17;12505:11;:19;12517:6;12505:19;;;;;;;;;;;;;;;:31;12525:10;12505:31;;;;;;;;;;;;;;;;:52;12502:157;;12641:6;12607:11;:19;12619:6;12607:19;;;;;;;;;;;;;;;:31;12627:10;12607:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;12573:11;:19;12585:6;12573:19;;;;;;;;;;;;;;;:31;12593:10;12573:31;;;;;;;;;;;;;;;:74;;;;12502:157;12678:40;12692:6;12700:9;12711:6;12678:13;:40::i;:::-;12671:47;;12385:341;;;;;:::o;21227:138::-;21280:7;21341:15;21351:4;;;;;;;;;;;21341:9;:15::i;:::-;21323;21333:4;;;;;;;;;;;21323:9;:15::i;:::-;:33;;;;:::i;:::-;21307:12;;:50;;;;:::i;:::-;21300:57;;21227:138;:::o;8482:71::-;8525:5;5501:1;8534:16;;8482:71;:::o;10576:372::-;7464:10;:24;7475:12;:10;:12::i;:::-;7464:24;;;;;;;;;;;;;;;;;;;;;;;;;:49;;;;7506:7;:5;:7::i;:::-;7492:21;;:10;:21;;;7464:49;7456:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;10693:12:::1;;;;;;;;;;;10692:13;:33;;;;;10723:2;10709:11;:16;10692:33;10684:42;;;::::0;::::1;;10750:11;10737:10;:24;;;;10787:4;10772:12;;:19;;;;;;;;;;;;;;;;;;10815:12;10802:10;:25;;;;10874:11;10856:15;:29;;;;:::i;:::-;10838:15;:47;;;;5501:1;10924:2;:15;;;;:::i;:::-;10914:6;:26;;;;:::i;:::-;10896:15;:44;;;;10576:372:::0;;;:::o;11457:127::-;7464:10;:24;7475:12;:10;:12::i;:::-;7464:24;;;;;;;;;;;;;;;;;;;;;;;;;:49;;;;7506:7;:5;:7::i;:::-;7492:21;;:10;:21;;;7464:49;7456:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;11536:4:::1;11515:18;;:25;;;;;;;;;;;;;;;;;;11571:5;11551:17;;:25;;;;;;;;;;;;;;;;;;11457:127::o:0;6652:45::-;;;;;;;;;;;;;;;;;:::o;19047:184::-;4685:12;:10;:12::i;:::-;4675:22;;:6;;;;;;;;;;:22;;;4667:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19142:4:::1;;;;;;;;;;;19136:10;;:2;:10;;;;19128:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;19217:6;19196:14;:18;19211:2;19196:18;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;19047:184:::0;;:::o;19375:339::-;4685:12;:10;:12::i;:::-;4675:22;;:6;;;;;;;;;;:22;;;4667:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19510:1:::1;19495:12;:16;:37;;;;;19531:1;19515:13;:17;19495:37;:52;;;;;19546:1;19536:7;:11;19495:52;:72;;;;;19562:5;19551:7;:16;;19495:72;19487:81;;;::::0;::::1;;19629:7;19613:12;19598;;:27;;;;:::i;:::-;19597:39;;;;:::i;:::-;19579:15;:57;;;;19699:7;19682:13;19667:12;;:28;;;;:::i;:::-;19666:40;;;;:::i;:::-;19647:16;:59;;;;19375:339:::0;;;:::o;20859:360::-;4685:12;:10;:12::i;:::-;4675:22;;:6;;;;;;;;;;:22;;;4667:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21022:1:::1;21007:12;:16;20999:25;;;::::0;::::1;;21049:8;21035:11;;:22;;;;;;;;;;;;;;;;;;21085:15;21068:14;;:32;;;;;;;;;;;;;;;;;;21142:12;21127;;:27;;;;:::i;:::-;21111:13;:43;;;;5501:1;21195:2;:15;;;;:::i;:::-;21179:12;:32;;;;:::i;:::-;21165:11;:46;;;;20859:360:::0;;;;:::o;10350:214::-;7464:10;:24;7475:12;:10;:12::i;:::-;7464:24;;;;;;;;;;;;;;;;;;;;;;;;;:49;;;;7506:7;:5;:7::i;:::-;7492:21;;:10;:21;;;7464:49;7456:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;10445:17:::1;10465:21;10445:41;;10505:3;10497:21;;:59;10552:3;10532:16;10520:9;:28;;;;:::i;:::-;10519:36;;;;:::i;:::-;10497:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;10434:130;10350:214:::0;;:::o;9605:122::-;9660:4;9684:35;9692:7;9701:17;9684:7;:35::i;:::-;9677:42;;9605:122;;;:::o;6937:27::-;;;;:::o;11087:111::-;7464:10;:24;7475:12;:10;:12::i;:::-;7464:24;;;;;;;;;;;;;;;;;;;;;;;;;:49;;;;7506:7;:5;:7::i;:::-;7492:21;;:10;:21;;;7464:49;7456:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;11156:4:::1;11140:13;;:20;;;;;;;;;;;;;;;;;;11186:4;11171:12;;:19;;;;;;;;;;;;;;;;;;11087:111::o:0;9739:119::-;4685:12;:10;:12::i;:::-;4675:22;;:6;;;;;;;;;;:22;;;4667:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9842:8:::1;9822:10;:17;9833:5;9822:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;9739:119:::0;;:::o;7068:28::-;;;;:::o;9018:105::-;9068:7;5501:1;9104:2;:15;;;;:::i;:::-;9086:14;;:34;;;;:::i;:::-;9079:41;;9018:105;:::o;19953:119::-;4685:12;:10;:12::i;:::-;4675:22;;:6;;;;;;;;;;:22;;;4667:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20058:6:::1;20036:11;:19;20048:6;20036:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;19953:119:::0;;:::o;9870:468::-;4685:12;:10;:12::i;:::-;4675:22;;:6;;;;;;;;;;:22;;;4667:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10002:1:::1;9983:9;;:16;;:20;:58;;;;;10025:9;;:16;;10007:7;;:14;;:34;9983:58;9975:67;;;::::0;::::1;;10053:12;10068:10;10053:25;;10096:6;10091:240;10112:9;;:16;;10108:1;:20;10091:240;;;10154:14;:28;10169:9;;10179:1;10169:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;10154:28;;;;;;;;;;;;;;;;;;;;;;;;;10153:29;:64;;;;;10187:16;:30;10204:9;;10214:1;10204:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;10187:30;;;;;;;;;;;;;;;;;;;;;;;;;10186:31;10153:64;10150:170;;;10238:66;10253:4;10259:9;;10269:1;10259:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;5501:1;10287:2;:15;;;;:::i;:::-;10273:7;;10281:1;10273:10;;;;;;;:::i;:::-;;;;;;;;:30;;;;:::i;:::-;10238:14;:66::i;:::-;;10150:170;10130:3;;;;;:::i;:::-;;;;10091:240;;;;9964:374;9870:468:::0;;;;:::o;7105:31::-;;;;;;;;;;;;;:::o;5860:44::-;;;;;;;;;;;;;;;;;:::o;20215:386::-;4685:12;:10;:12::i;:::-;4675:22;;:6;;;;;;;;;;:22;;;4667:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20367:13:::1;20352:12;:28;;;;20406:13;20391:12;:28;;;;20457:13;20441;:29;;;;:::i;:::-;20430:8;:40;;;;20492:9;20481:8;:20;;;;20529:15;20512:14;:32;;;;20591:1;20574:14;;:18;;;;:::i;:::-;20563:8;;:29;20555:38;;;::::0;::::1;;20215:386:::0;;;;:::o;9129:105::-;9195:7;9213:9;:18;9223:7;9213:18;;;;;;;;;;;;;;;;9206:25;;9129:105;;;:::o;4760:148::-;4685:12;:10;:12::i;:::-;4675:22;;:6;;;;;;;;;;:22;;;4667:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4867:1:::1;4830:40;;4851:6;::::0;::::1;;;;;;;;4830:40;;;;;;;;;;;;4898:1;4881:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;4760:148::o:0;8717:71::-;8760:7;8778;:5;:7::i;:::-;8771:14;;8717:71;:::o;4550:79::-;4588:7;4615:6;;;;;;;;;;;4608:13;;4550:79;:::o;8559:75::-;8600:13;8624:7;;;;;;;;;;;;;;;;;8617:14;;8559:75;:::o;6808:30::-;;;;:::o;20609:242::-;4685:12;:10;:12::i;:::-;4675:22;;:6;;;;;;;;;;:22;;;4667:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20757:21:::1;20726:20;;:53;;;;;;;;;;;;;;;;;;20821:21;20790:20;;:53;;;;;;;;;;;;;;;;;;20609:242:::0;;:::o;6877:19::-;;;;;;;;;;;;;:::o;12221:156::-;12301:4;12325:44;12339:10;12351:9;12362:6;12325:13;:44::i;:::-;12318:51;;12221:156;;;;:::o;19726:219::-;4685:12;:10;:12::i;:::-;4675:22;;:6;;;;;;;;;;:22;;;4667:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19836:1:::1;19824:9;:13;:28;;;;;19851:1;19841:7;:11;19824:28;:48;;;;;19867:5;19856:7;:16;;19824:48;19816:57;;;::::0;::::1;;19930:7;19917:9;19902:12;;:24;;;;:::i;:::-;19901:36;;;;:::i;:::-;19884:14;:53;;;;19726:219:::0;;:::o;8794:105::-;8843:7;5501:1;8880:2;:15;;;;:::i;:::-;8861;;:35;;;;:::i;:::-;8854:42;;8794:105;:::o;6905:25::-;;;;:::o;6291:97::-;;;;;;;;;;;;;:::o;5911:43::-;;;;;;;;;;;;;;;;;:::o;19239:128::-;4685:12;:10;:12::i;:::-;4675:22;;:6;;;;;;;;;;:22;;;4667:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19321:10:::1;19313:4;:18;;19305:27;;;::::0;::::1;;19355:4;19343:9;:16;;;;19239:128:::0;:::o;11210:235::-;7464:10;:24;7475:12;:10;:12::i;:::-;7464:24;;;;;;;;;;;;;;;;;;;;;;;;;:49;;;;7506:7;:5;:7::i;:::-;7492:21;;:10;:21;;;7464:49;7456:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;11304:18:::1;;;;;;;;;;;11303:19;11295:28;;;::::0;::::1;;11354:8;11334:17;;:28;;;;;;;;;;;;;;;;;;11392:6;11381:8;:17;11373:26;;;::::0;::::1;;11429:8;11410:15;;:27;;;;;;;:::i;:::-;;;;;;;;11210:235:::0;;:::o;9240:133::-;9324:7;9342:11;:19;9354:6;9342:19;;;;;;;;;;;;;;;:28;9362:7;9342:28;;;;;;;;;;;;;;;;9335:35;;9240:133;;;;:::o;6395:97::-;;;;;;;;;;;;;:::o;16632:243::-;16688:7;16738:12;16724:10;;16711;;:23;;;;:::i;:::-;:39;16708:73;;16777:1;16760:14;;:18;;;;:::i;:::-;16753:25;;;;16708:73;16795:7;16791:39;;;16822:8;;16811;;:19;;;;:::i;:::-;16804:26;;;;16791:39;16859:8;;16848;;:19;;;;:::i;:::-;16841:26;;16632:243;;;;:::o;4914:244::-;4685:12;:10;:12::i;:::-;4675:22;;:6;;;;;;;;;;:22;;;4667:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5023:1:::1;5003:22;;:8;:22;;;;4995:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;5113:8;5084:38;;5105:6;::::0;::::1;;;;;;;;5084:38;;;;;;;;;;;;5142:8;5133:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;4914:244:::0;:::o;20080:127::-;4685:12;:10;:12::i;:::-;4675:22;;:6;;;;;;;;;;:22;;;4667:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20193:6:::1;20167:15;:23;20183:6;20167:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;20080:127:::0;;:::o;7233:49::-;;;;:::o;6501:24::-;;;;;;;;;;;;;:::o;6971:25::-;;;;:::o;2577:107::-;2622:15;2665:10;2650:26;;2577:107;:::o;12734:1734::-;12826:4;12869:1;12851:20;;:6;:20;;;;12843:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;12940:1;12919:23;;:9;:23;;;;12911:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;12997:1;12988:6;:10;12980:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;13064:6;13043:9;:17;13053:6;13043:17;;;;;;;;;;;;;;;;:27;;13035:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;13110:10;:8;:10::i;:::-;13109:11;:40;;;;;13124:14;:25;13139:9;13124:25;;;;;;;;;;;;;;;;;;;;;;;;;13109:40;13106:120;;;13160:16;:24;13177:6;13160:24;;;;;;;;;;;;;;;;;;;;;;;;;13152:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;13215:8;:6;:8::i;:::-;13106:120;13240:12;;;;;;;;;;;13236:111;;13263:16;:24;13280:6;13263:24;;;;;;;;;;;;;;;;;;;;;;;;;:55;;;;13291:16;:27;13308:9;13291:27;;;;;;;;;;;;;;;;;;;;;;;;;13263:55;13255:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;13236:111;13359:39;13372:6;13380:9;13391:6;13359:12;:39::i;:::-;13424:14;:25;13439:9;13424:25;;;;;;;;;;;;;;;;;;;;;;;;;13423:26;:47;;;;;13466:4;;;;;;;;;;;13453:17;;:9;:17;;;;13423:47;13419:182;;;13492:15;:26;13508:9;13492:26;;;;;;;;;;;;;;;;;;;;;;;;;13487:103;;13539:35;13556:9;13567:6;13539:16;:35::i;:::-;13487:103;13419:182;13624:17;;;;;;;;;;;:54;;;;;13663:15;13645;;:33;13624:54;13621:351;;;13698:14;:22;13713:6;13698:22;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;;13737:9;13724:22;;:9;:22;;;;13698:48;:77;;;;;13774:1;13750:9;:20;13760:9;13750:20;;;;;;;;;;;;;;;;:25;13698:77;13695:266;;;13819:12;13796:9;:20;13806:9;13796:20;;;;;;;;;;;;;;;:35;;;;13850:15;;:17;;;;;;;;;:::i;:::-;;;;;;13891:54;13907:9;13918;13929:12;13943:1;13891:54;;;;;;;;;:::i;:::-;;;;;;;;13695:266;13621:351;13995:6;;;;;;;;;;;13992:63;;;14011:41;14026:6;14034:9;14045:6;14011:14;:41::i;:::-;14004:48;;;;13992:63;14107:6;14087:9;:17;14097:6;14087:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;14067:9;:17;14077:6;14067:17;;;;;;;;;;;;;;;:46;;;;14126:22;14151:21;14165:6;14151:13;:21::i;:::-;:59;;14204:6;14151:59;;;14175:26;14183:9;14194:6;14175:7;:26::i;:::-;14151:59;14126:84;;14234:25;14249:9;14234:14;:25::i;:::-;14231:66;;;14275:1;14266:6;:10;14262:32;;;14278:16;14287:6;14278:8;:16::i;:::-;14262:32;14231:66;14363:14;14340:9;:20;14350:9;14340:20;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;14317:9;:20;14327:9;14317:20;;;;;;;;;;;;;;;:60;;;;14412:9;14395:43;;14404:6;14395:43;;;14423:14;14395:43;;;;;;:::i;:::-;;;;;;;;14456:4;14449:11;;;12734:1734;;;;;;:::o;14727:300::-;14820:4;14877:6;14857:9;:17;14867:6;14857:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;14837:9;:17;14847:6;14837:17;;;;;;;;;;;;;;;:46;;;;14940:6;14917:9;:20;14927:9;14917:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;14894:9;:20;14904:9;14894:20;;;;;;;;;;;;;;;:52;;;;14979:9;14962:35;;14971:6;14962:35;;;14990:6;14962:35;;;;;;:::i;:::-;;;;;;;;15015:4;15008:11;;14727:300;;;;;:::o;14480:90::-;14523:4;14561:1;14547:10;;:15;;14540:22;;14480:90;:::o;14578:141::-;14629:12;14616:10;:25;;;;14667:15;14652:12;:30;;;;14707:4;14693:11;;:18;;;;;;;;;;;;;;;;;;14578:141::o;15282:1220::-;15383:15;:23;15399:6;15383:23;;;;;;;;;;;;;;;;;;;;;;;;;:98;;;;15421:14;:22;15436:6;15421:22;;;;;;;;;;;;;;;;;;;;;;;;;:59;;15464:16;;15421:59;;;15446:15;;15421:59;15410:6;:71;;15383:98;15375:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;15522:15;:23;15538:6;15522:23;;;;;;;;;;;;;;;;;;;;;;;;;:73;;;;15583:12;15570:9;;15549:7;:18;15557:9;15549:18;;;;;;;;;;;;;;;;:30;;;;:::i;:::-;:46;;15522:73;15514:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;15675:1;15654:9;:17;15664:6;15654:17;;;;;;;;;;;;;;;;:22;15650:261;;5501:1;15729:2;:15;;;;:::i;:::-;15710;;:35;;;;:::i;:::-;15700:6;:45;;:70;;;;;15769:1;15749:8;:16;15758:6;15749:16;;;;;;;;;;;;;;;;:21;15700:70;:107;;;;;15792:15;15774;;:33;15700:107;15692:161;;;;;;;;;;;;:::i;:::-;;;;;;;;;15887:12;15868:8;:16;15877:6;15868:16;;;;;;;;;;;;;;;:31;;;;15650:261;15935:14;:25;15950:9;15935:25;;;;;;;;;;;;;;;;;;;;;;;;;15931:564;;;15996:12;15977:8;:16;15986:6;15977:16;;;;;;;;;;;;;;;:31;;;;15931:564;;;16030:21;16044:6;16030:13;:21::i;:::-;16026:469;;;16072:17;;;;;;;;;;;:54;;;;;16111:15;16093;;:33;16072:54;:92;;;;;16152:12;16130:7;:18;16138:9;16130:18;;;;;;;;;;;;;;;;:34;16072:92;:121;;;;;16192:1;16168:9;:20;16178:9;16168:20;;;;;;;;;;;;;;;;:25;16072:121;16068:275;;;16237:12;16214:9;:20;16224:9;16214:20;;;;;;;;;;;;;;;:35;;;;16273:54;16289:9;16300;16311:12;16325:1;16273:54;;;;;;;;;:::i;:::-;;;;;;;;16068:275;16378:12;16357:7;:18;16365:9;16357:18;;;;;;;;;;;;;;;:33;;;;16422:9;16409:22;;:9;:22;;;16405:78;;16471:12;16450:7;:18;16458:9;16450:18;;;;;;;;;;;;;;;:33;;;;16405:78;16026:469;15931:564;15282:1220;;;:::o;15039:235::-;15125:19;15147:14;;15125:36;;15213:11;15203:6;15180:9;:20;15190:9;15180:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:44;;15172:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;15114:160;15039:235;;:::o;16510:114::-;16572:4;16597:11;:19;16609:6;16597:19;;;;;;;;;;;;;;;;;;;;;;;;;16596:20;16589:27;;16510:114;;;:::o;16883:317::-;16953:7;16973:12;16988:14;:25;17003:9;16988:25;;;;;;;;;;;;;;;;;;;;;;;;;16973:40;;17024:17;17078:14;;17054:20;17066:7;17054:11;:20::i;:::-;17045:6;:29;;;;:::i;:::-;17044:48;;;;:::i;:::-;17024:68;;17141:9;17113;:24;17131:4;17113:24;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;17183:9;17174:6;:18;;;;:::i;:::-;17167:25;;;;16883:317;;;;:::o;17208:259::-;17274:4;17299:14;:26;17314:10;17299:26;;;;;;;;;;;;;;;;;;;;;;;;;17298:27;:47;;;;;17339:6;;;;;;;;;;;17338:7;17298:47;:71;;;;;17358:11;;;;;;;;;;;17298:71;:109;;;;;17382:14;:25;17397:9;17382:25;;;;;;;;;;;;;;;;;;;;;;;;;17298:109;:161;;;;;17448:11;;17420:9;:24;17438:4;17420:24;;;;;;;;;;;;;;;;:39;;17298:161;17291:168;;17208:259;;;:::o;17475:1560::-;7338:4;7329:6;;:13;;;;;;;;;;;;;;;;;;17538:20:::1;17570:13;;17561:6;:22;:47;;17595:13;;17561:47;;;17586:6;17561:47;17538:70;;17650:12;17623:9;:24;17641:4;17623:24;;;;;;;;;;;;;;;;:39;17619:84;;;17679:9;:24;17697:4;17679:24;;;;;;;;;;;;;;;;17664:39;;17619:84;17724:23;17786:8;;17781:1;17766:12;;17751;:27;;;;:::i;:::-;:31;;;;:::i;:::-;17750:44;;;;:::i;:::-;17724:70;;17821:15;17805:31;;;;;:::i;:::-;;;17849:21;17887:1;17873:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17849:40;;17918:4;17900;17905:1;17900:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;17944:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17934:4;17939:1;17934:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;17978:21;18002;17978:45;;18036:6;;;;;;;;;;;:57;;;18108:12;18135:1;18151:4;18178;18198:15;18036:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18237:17;18281:13;18257:21;:37;;;;:::i;:::-;18237:57;;18305:19;18354:1;18339:12;;:16;;;;:::i;:::-;18327:8;;:29;;;;:::i;:::-;18305:51;;18369:26;18431:11;18426:1;18411:12;;18399:9;:24;;;;:::i;:::-;:28;;;;:::i;:::-;18398:44;;;;:::i;:::-;18369:73;;18453:26;18494:18;18482:9;:30;;;;:::i;:::-;18453:59;;18558:1;18537:18;:22;18533:90;;;18574:20;;;;;;;;;;;:29;;:49;18604:18;18574:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;18533:90;18665:1;18647:15;:19;18644:293;;;18682:6;;;;;;;;;;;:22;;;18712:18;18758:4;18782:15;18816:1;18836::::0;18856:20:::1;;;;;;;;;;;18895:15;18682:243;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18644:293;18954:73;18971:18;18991;19011:15;18954:73;;;;;;;;:::i;:::-;;;;;;;;17527:1508;;;;;;;;7356:5:::0;7347:6;;:14;;;;;;;;;;;;;;;;;;17475:1560;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;318:568::-;391:8;401:6;451:3;444:4;436:6;432:17;428:27;418:122;;459:79;;:::i;:::-;418:122;572:6;559:20;549:30;;602:18;594:6;591:30;588:117;;;624:79;;:::i;:::-;588:117;738:4;730:6;726:17;714:29;;792:3;784:4;776:6;772:17;762:8;758:32;755:41;752:128;;;799:79;;:::i;:::-;752:128;318:568;;;;;:::o;909:::-;982:8;992:6;1042:3;1035:4;1027:6;1023:17;1019:27;1009:122;;1050:79;;:::i;:::-;1009:122;1163:6;1150:20;1140:30;;1193:18;1185:6;1182:30;1179:117;;;1215:79;;:::i;:::-;1179:117;1329:4;1321:6;1317:17;1305:29;;1383:3;1375:4;1367:6;1363:17;1353:8;1349:32;1346:41;1343:128;;;1390:79;;:::i;:::-;1343:128;909:568;;;;;:::o;1483:133::-;1526:5;1564:6;1551:20;1542:29;;1580:30;1604:5;1580:30;:::i;:::-;1483:133;;;;:::o;1622:139::-;1668:5;1706:6;1693:20;1684:29;;1722:33;1749:5;1722:33;:::i;:::-;1622:139;;;;:::o;1767:143::-;1824:5;1855:6;1849:13;1840:22;;1871:33;1898:5;1871:33;:::i;:::-;1767:143;;;;:::o;1916:329::-;1975:6;2024:2;2012:9;2003:7;1999:23;1995:32;1992:119;;;2030:79;;:::i;:::-;1992:119;2150:1;2175:53;2220:7;2211:6;2200:9;2196:22;2175:53;:::i;:::-;2165:63;;2121:117;1916:329;;;;:::o;2251:351::-;2321:6;2370:2;2358:9;2349:7;2345:23;2341:32;2338:119;;;2376:79;;:::i;:::-;2338:119;2496:1;2521:64;2577:7;2568:6;2557:9;2553:22;2521:64;:::i;:::-;2511:74;;2467:128;2251:351;;;;:::o;2608:474::-;2676:6;2684;2733:2;2721:9;2712:7;2708:23;2704:32;2701:119;;;2739:79;;:::i;:::-;2701:119;2859:1;2884:53;2929:7;2920:6;2909:9;2905:22;2884:53;:::i;:::-;2874:63;;2830:117;2986:2;3012:53;3057:7;3048:6;3037:9;3033:22;3012:53;:::i;:::-;3002:63;;2957:118;2608:474;;;;;:::o;3088:619::-;3165:6;3173;3181;3230:2;3218:9;3209:7;3205:23;3201:32;3198:119;;;3236:79;;:::i;:::-;3198:119;3356:1;3381:53;3426:7;3417:6;3406:9;3402:22;3381:53;:::i;:::-;3371:63;;3327:117;3483:2;3509:53;3554:7;3545:6;3534:9;3530:22;3509:53;:::i;:::-;3499:63;;3454:118;3611:2;3637:53;3682:7;3673:6;3662:9;3658:22;3637:53;:::i;:::-;3627:63;;3582:118;3088:619;;;;;:::o;3713:468::-;3778:6;3786;3835:2;3823:9;3814:7;3810:23;3806:32;3803:119;;;3841:79;;:::i;:::-;3803:119;3961:1;3986:53;4031:7;4022:6;4011:9;4007:22;3986:53;:::i;:::-;3976:63;;3932:117;4088:2;4114:50;4156:7;4147:6;4136:9;4132:22;4114:50;:::i;:::-;4104:60;;4059:115;3713:468;;;;;:::o;4187:474::-;4255:6;4263;4312:2;4300:9;4291:7;4287:23;4283:32;4280:119;;;4318:79;;:::i;:::-;4280:119;4438:1;4463:53;4508:7;4499:6;4488:9;4484:22;4463:53;:::i;:::-;4453:63;;4409:117;4565:2;4591:53;4636:7;4627:6;4616:9;4612:22;4591:53;:::i;:::-;4581:63;;4536:118;4187:474;;;;;:::o;4667:934::-;4789:6;4797;4805;4813;4862:2;4850:9;4841:7;4837:23;4833:32;4830:119;;;4868:79;;:::i;:::-;4830:119;5016:1;5005:9;5001:17;4988:31;5046:18;5038:6;5035:30;5032:117;;;5068:79;;:::i;:::-;5032:117;5181:80;5253:7;5244:6;5233:9;5229:22;5181:80;:::i;:::-;5163:98;;;;4959:312;5338:2;5327:9;5323:18;5310:32;5369:18;5361:6;5358:30;5355:117;;;5391:79;;:::i;:::-;5355:117;5504:80;5576:7;5567:6;5556:9;5552:22;5504:80;:::i;:::-;5486:98;;;;5281:313;4667:934;;;;;;;:::o;5607:698::-;5699:6;5707;5715;5764:2;5752:9;5743:7;5739:23;5735:32;5732:119;;;5770:79;;:::i;:::-;5732:119;5918:1;5907:9;5903:17;5890:31;5948:18;5940:6;5937:30;5934:117;;;5970:79;;:::i;:::-;5934:117;6083:80;6155:7;6146:6;6135:9;6131:22;6083:80;:::i;:::-;6065:98;;;;5861:312;6212:2;6238:50;6280:7;6271:6;6260:9;6256:22;6238:50;:::i;:::-;6228:60;;6183:115;5607:698;;;;;:::o;6311:323::-;6367:6;6416:2;6404:9;6395:7;6391:23;6387:32;6384:119;;;6422:79;;:::i;:::-;6384:119;6542:1;6567:50;6609:7;6600:6;6589:9;6585:22;6567:50;:::i;:::-;6557:60;;6513:114;6311:323;;;;:::o;6640:753::-;6720:6;6728;6736;6744;6793:3;6781:9;6772:7;6768:23;6764:33;6761:120;;;6800:79;;:::i;:::-;6761:120;6920:1;6945:50;6987:7;6978:6;6967:9;6963:22;6945:50;:::i;:::-;6935:60;;6891:114;7044:2;7070:50;7112:7;7103:6;7092:9;7088:22;7070:50;:::i;:::-;7060:60;;7015:115;7169:2;7195:53;7240:7;7231:6;7220:9;7216:22;7195:53;:::i;:::-;7185:63;;7140:118;7297:2;7323:53;7368:7;7359:6;7348:9;7344:22;7323:53;:::i;:::-;7313:63;;7268:118;6640:753;;;;;;;:::o;7399:468::-;7464:6;7472;7521:2;7509:9;7500:7;7496:23;7492:32;7489:119;;;7527:79;;:::i;:::-;7489:119;7647:1;7672:50;7714:7;7705:6;7694:9;7690:22;7672:50;:::i;:::-;7662:60;;7618:114;7771:2;7797:53;7842:7;7833:6;7822:9;7818:22;7797:53;:::i;:::-;7787:63;;7742:118;7399:468;;;;;:::o;7873:329::-;7932:6;7981:2;7969:9;7960:7;7956:23;7952:32;7949:119;;;7987:79;;:::i;:::-;7949:119;8107:1;8132:53;8177:7;8168:6;8157:9;8153:22;8132:53;:::i;:::-;8122:63;;8078:117;7873:329;;;;:::o;8208:474::-;8276:6;8284;8333:2;8321:9;8312:7;8308:23;8304:32;8301:119;;;8339:79;;:::i;:::-;8301:119;8459:1;8484:53;8529:7;8520:6;8509:9;8505:22;8484:53;:::i;:::-;8474:63;;8430:117;8586:2;8612:53;8657:7;8648:6;8637:9;8633:22;8612:53;:::i;:::-;8602:63;;8557:118;8208:474;;;;;:::o;8688:::-;8756:6;8764;8813:2;8801:9;8792:7;8788:23;8784:32;8781:119;;;8819:79;;:::i;:::-;8781:119;8939:1;8964:53;9009:7;9000:6;8989:9;8985:22;8964:53;:::i;:::-;8954:63;;8910:117;9066:2;9092:53;9137:7;9128:6;9117:9;9113:22;9092:53;:::i;:::-;9082:63;;9037:118;8688:474;;;;;:::o;9168:619::-;9245:6;9253;9261;9310:2;9298:9;9289:7;9285:23;9281:32;9278:119;;;9316:79;;:::i;:::-;9278:119;9436:1;9461:53;9506:7;9497:6;9486:9;9482:22;9461:53;:::i;:::-;9451:63;;9407:117;9563:2;9589:53;9634:7;9625:6;9614:9;9610:22;9589:53;:::i;:::-;9579:63;;9534:118;9691:2;9717:53;9762:7;9753:6;9742:9;9738:22;9717:53;:::i;:::-;9707:63;;9662:118;9168:619;;;;;:::o;9793:663::-;9881:6;9889;9897;9946:2;9934:9;9925:7;9921:23;9917:32;9914:119;;;9952:79;;:::i;:::-;9914:119;10072:1;10097:64;10153:7;10144:6;10133:9;10129:22;10097:64;:::i;:::-;10087:74;;10043:128;10210:2;10236:64;10292:7;10283:6;10272:9;10268:22;10236:64;:::i;:::-;10226:74;;10181:129;10349:2;10375:64;10431:7;10422:6;10411:9;10407:22;10375:64;:::i;:::-;10365:74;;10320:129;9793:663;;;;;:::o;10462:765::-;10548:6;10556;10564;10572;10621:3;10609:9;10600:7;10596:23;10592:33;10589:120;;;10628:79;;:::i;:::-;10589:120;10748:1;10773:53;10818:7;10809:6;10798:9;10794:22;10773:53;:::i;:::-;10763:63;;10719:117;10875:2;10901:53;10946:7;10937:6;10926:9;10922:22;10901:53;:::i;:::-;10891:63;;10846:118;11003:2;11029:53;11074:7;11065:6;11054:9;11050:22;11029:53;:::i;:::-;11019:63;;10974:118;11131:2;11157:53;11202:7;11193:6;11182:9;11178:22;11157:53;:::i;:::-;11147:63;;11102:118;10462:765;;;;;;;:::o;11233:179::-;11302:10;11323:46;11365:3;11357:6;11323:46;:::i;:::-;11401:4;11396:3;11392:14;11378:28;;11233:179;;;;:::o;11418:147::-;11513:45;11552:5;11513:45;:::i;:::-;11508:3;11501:58;11418:147;;:::o;11571:142::-;11674:32;11700:5;11674:32;:::i;:::-;11669:3;11662:45;11571:142;;:::o;11719:108::-;11796:24;11814:5;11796:24;:::i;:::-;11791:3;11784:37;11719:108;;:::o;11833:118::-;11920:24;11938:5;11920:24;:::i;:::-;11915:3;11908:37;11833:118;;:::o;11987:732::-;12106:3;12135:54;12183:5;12135:54;:::i;:::-;12205:86;12284:6;12279:3;12205:86;:::i;:::-;12198:93;;12315:56;12365:5;12315:56;:::i;:::-;12394:7;12425:1;12410:284;12435:6;12432:1;12429:13;12410:284;;;12511:6;12505:13;12538:63;12597:3;12582:13;12538:63;:::i;:::-;12531:70;;12624:60;12677:6;12624:60;:::i;:::-;12614:70;;12470:224;12457:1;12454;12450:9;12445:14;;12410:284;;;12414:14;12710:3;12703:10;;12111:608;;;11987:732;;;;:::o;12725:109::-;12806:21;12821:5;12806:21;:::i;:::-;12801:3;12794:34;12725:109;;:::o;12840:167::-;12945:55;12994:5;12945:55;:::i;:::-;12940:3;12933:68;12840:167;;:::o;13013:147::-;13108:45;13147:5;13108:45;:::i;:::-;13103:3;13096:58;13013:147;;:::o;13166:143::-;13259:43;13296:5;13259:43;:::i;:::-;13254:3;13247:56;13166:143;;:::o;13315:::-;13408:43;13445:5;13408:43;:::i;:::-;13403:3;13396:56;13315:143;;:::o;13464:::-;13557:43;13594:5;13557:43;:::i;:::-;13552:3;13545:56;13464:143;;:::o;13613:364::-;13701:3;13729:39;13762:5;13729:39;:::i;:::-;13784:71;13848:6;13843:3;13784:71;:::i;:::-;13777:78;;13864:52;13909:6;13904:3;13897:4;13890:5;13886:16;13864:52;:::i;:::-;13941:29;13963:6;13941:29;:::i;:::-;13936:3;13932:39;13925:46;;13705:272;13613:364;;;;:::o;13983:366::-;14125:3;14146:67;14210:2;14205:3;14146:67;:::i;:::-;14139:74;;14222:93;14311:3;14222:93;:::i;:::-;14340:2;14335:3;14331:12;14324:19;;13983:366;;;:::o;14355:::-;14497:3;14518:67;14582:2;14577:3;14518:67;:::i;:::-;14511:74;;14594:93;14683:3;14594:93;:::i;:::-;14712:2;14707:3;14703:12;14696:19;;14355:366;;;:::o;14727:::-;14869:3;14890:67;14954:2;14949:3;14890:67;:::i;:::-;14883:74;;14966:93;15055:3;14966:93;:::i;:::-;15084:2;15079:3;15075:12;15068:19;;14727:366;;;:::o;15099:::-;15241:3;15262:67;15326:2;15321:3;15262:67;:::i;:::-;15255:74;;15338:93;15427:3;15338:93;:::i;:::-;15456:2;15451:3;15447:12;15440:19;;15099:366;;;:::o;15471:::-;15613:3;15634:67;15698:2;15693:3;15634:67;:::i;:::-;15627:74;;15710:93;15799:3;15710:93;:::i;:::-;15828:2;15823:3;15819:12;15812:19;;15471:366;;;:::o;15843:::-;15985:3;16006:67;16070:2;16065:3;16006:67;:::i;:::-;15999:74;;16082:93;16171:3;16082:93;:::i;:::-;16200:2;16195:3;16191:12;16184:19;;15843:366;;;:::o;16215:::-;16357:3;16378:67;16442:2;16437:3;16378:67;:::i;:::-;16371:74;;16454:93;16543:3;16454:93;:::i;:::-;16572:2;16567:3;16563:12;16556:19;;16215:366;;;:::o;16587:::-;16729:3;16750:67;16814:2;16809:3;16750:67;:::i;:::-;16743:74;;16826:93;16915:3;16826:93;:::i;:::-;16944:2;16939:3;16935:12;16928:19;;16587:366;;;:::o;16959:::-;17101:3;17122:67;17186:2;17181:3;17122:67;:::i;:::-;17115:74;;17198:93;17287:3;17198:93;:::i;:::-;17316:2;17311:3;17307:12;17300:19;;16959:366;;;:::o;17331:::-;17473:3;17494:67;17558:2;17553:3;17494:67;:::i;:::-;17487:74;;17570:93;17659:3;17570:93;:::i;:::-;17688:2;17683:3;17679:12;17672:19;;17331:366;;;:::o;17703:::-;17845:3;17866:67;17930:2;17925:3;17866:67;:::i;:::-;17859:74;;17942:93;18031:3;17942:93;:::i;:::-;18060:2;18055:3;18051:12;18044:19;;17703:366;;;:::o;18075:::-;18217:3;18238:67;18302:2;18297:3;18238:67;:::i;:::-;18231:74;;18314:93;18403:3;18314:93;:::i;:::-;18432:2;18427:3;18423:12;18416:19;;18075:366;;;:::o;18447:::-;18589:3;18610:67;18674:2;18669:3;18610:67;:::i;:::-;18603:74;;18686:93;18775:3;18686:93;:::i;:::-;18804:2;18799:3;18795:12;18788:19;;18447:366;;;:::o;18819:::-;18961:3;18982:67;19046:2;19041:3;18982:67;:::i;:::-;18975:74;;19058:93;19147:3;19058:93;:::i;:::-;19176:2;19171:3;19167:12;19160:19;;18819:366;;;:::o;19191:118::-;19278:24;19296:5;19278:24;:::i;:::-;19273:3;19266:37;19191:118;;:::o;19315:112::-;19398:22;19414:5;19398:22;:::i;:::-;19393:3;19386:35;19315:112;;:::o;19433:222::-;19526:4;19564:2;19553:9;19549:18;19541:26;;19577:71;19645:1;19634:9;19630:17;19621:6;19577:71;:::i;:::-;19433:222;;;;:::o;19661:254::-;19770:4;19808:2;19797:9;19793:18;19785:26;;19821:87;19905:1;19894:9;19890:17;19881:6;19821:87;:::i;:::-;19661:254;;;;:::o;19921:565::-;20104:4;20142:3;20131:9;20127:19;20119:27;;20156:71;20224:1;20213:9;20209:17;20200:6;20156:71;:::i;:::-;20237:72;20305:2;20294:9;20290:18;20281:6;20237:72;:::i;:::-;20319;20387:2;20376:9;20372:18;20363:6;20319:72;:::i;:::-;20401:78;20475:2;20464:9;20460:18;20451:6;20401:78;:::i;:::-;19921:565;;;;;;;:::o;20492:::-;20675:4;20713:3;20702:9;20698:19;20690:27;;20727:71;20795:1;20784:9;20780:17;20771:6;20727:71;:::i;:::-;20808:72;20876:2;20865:9;20861:18;20852:6;20808:72;:::i;:::-;20890;20958:2;20947:9;20943:18;20934:6;20890:72;:::i;:::-;20972:78;21046:2;21035:9;21031:18;21022:6;20972:78;:::i;:::-;20492:565;;;;;;;:::o;21063:::-;21246:4;21284:3;21273:9;21269:19;21261:27;;21298:71;21366:1;21355:9;21351:17;21342:6;21298:71;:::i;:::-;21379:72;21447:2;21436:9;21432:18;21423:6;21379:72;:::i;:::-;21461;21529:2;21518:9;21514:18;21505:6;21461:72;:::i;:::-;21543:78;21617:2;21606:9;21602:18;21593:6;21543:78;:::i;:::-;21063:565;;;;;;;:::o;21634:823::-;21891:4;21929:3;21918:9;21914:19;21906:27;;21943:71;22011:1;22000:9;21996:17;21987:6;21943:71;:::i;:::-;22024:72;22092:2;22081:9;22077:18;22068:6;22024:72;:::i;:::-;22106:80;22182:2;22171:9;22167:18;22158:6;22106:80;:::i;:::-;22196;22272:2;22261:9;22257:18;22248:6;22196:80;:::i;:::-;22286:81;22362:3;22351:9;22347:19;22338:6;22286:81;:::i;:::-;22377:73;22445:3;22434:9;22430:19;22421:6;22377:73;:::i;:::-;21634:823;;;;;;;;;:::o;22463:210::-;22550:4;22588:2;22577:9;22573:18;22565:26;;22601:65;22663:1;22652:9;22648:17;22639:6;22601:65;:::i;:::-;22463:210;;;;:::o;22679:258::-;22790:4;22828:2;22817:9;22813:18;22805:26;;22841:89;22927:1;22916:9;22912:17;22903:6;22841:89;:::i;:::-;22679:258;;;;:::o;22943:313::-;23056:4;23094:2;23083:9;23079:18;23071:26;;23143:9;23137:4;23133:20;23129:1;23118:9;23114:17;23107:47;23171:78;23244:4;23235:6;23171:78;:::i;:::-;23163:86;;22943:313;;;;:::o;23262:419::-;23428:4;23466:2;23455:9;23451:18;23443:26;;23515:9;23509:4;23505:20;23501:1;23490:9;23486:17;23479:47;23543:131;23669:4;23543:131;:::i;:::-;23535:139;;23262:419;;;:::o;23687:::-;23853:4;23891:2;23880:9;23876:18;23868:26;;23940:9;23934:4;23930:20;23926:1;23915:9;23911:17;23904:47;23968:131;24094:4;23968:131;:::i;:::-;23960:139;;23687:419;;;:::o;24112:::-;24278:4;24316:2;24305:9;24301:18;24293:26;;24365:9;24359:4;24355:20;24351:1;24340:9;24336:17;24329:47;24393:131;24519:4;24393:131;:::i;:::-;24385:139;;24112:419;;;:::o;24537:::-;24703:4;24741:2;24730:9;24726:18;24718:26;;24790:9;24784:4;24780:20;24776:1;24765:9;24761:17;24754:47;24818:131;24944:4;24818:131;:::i;:::-;24810:139;;24537:419;;;:::o;24962:::-;25128:4;25166:2;25155:9;25151:18;25143:26;;25215:9;25209:4;25205:20;25201:1;25190:9;25186:17;25179:47;25243:131;25369:4;25243:131;:::i;:::-;25235:139;;24962:419;;;:::o;25387:::-;25553:4;25591:2;25580:9;25576:18;25568:26;;25640:9;25634:4;25630:20;25626:1;25615:9;25611:17;25604:47;25668:131;25794:4;25668:131;:::i;:::-;25660:139;;25387:419;;;:::o;25812:::-;25978:4;26016:2;26005:9;26001:18;25993:26;;26065:9;26059:4;26055:20;26051:1;26040:9;26036:17;26029:47;26093:131;26219:4;26093:131;:::i;:::-;26085:139;;25812:419;;;:::o;26237:::-;26403:4;26441:2;26430:9;26426:18;26418:26;;26490:9;26484:4;26480:20;26476:1;26465:9;26461:17;26454:47;26518:131;26644:4;26518:131;:::i;:::-;26510:139;;26237:419;;;:::o;26662:::-;26828:4;26866:2;26855:9;26851:18;26843:26;;26915:9;26909:4;26905:20;26901:1;26890:9;26886:17;26879:47;26943:131;27069:4;26943:131;:::i;:::-;26935:139;;26662:419;;;:::o;27087:::-;27253:4;27291:2;27280:9;27276:18;27268:26;;27340:9;27334:4;27330:20;27326:1;27315:9;27311:17;27304:47;27368:131;27494:4;27368:131;:::i;:::-;27360:139;;27087:419;;;:::o;27512:::-;27678:4;27716:2;27705:9;27701:18;27693:26;;27765:9;27759:4;27755:20;27751:1;27740:9;27736:17;27729:47;27793:131;27919:4;27793:131;:::i;:::-;27785:139;;27512:419;;;:::o;27937:::-;28103:4;28141:2;28130:9;28126:18;28118:26;;28190:9;28184:4;28180:20;28176:1;28165:9;28161:17;28154:47;28218:131;28344:4;28218:131;:::i;:::-;28210:139;;27937:419;;;:::o;28362:::-;28528:4;28566:2;28555:9;28551:18;28543:26;;28615:9;28609:4;28605:20;28601:1;28590:9;28586:17;28579:47;28643:131;28769:4;28643:131;:::i;:::-;28635:139;;28362:419;;;:::o;28787:::-;28953:4;28991:2;28980:9;28976:18;28968:26;;29040:9;29034:4;29030:20;29026:1;29015:9;29011:17;29004:47;29068:131;29194:4;29068:131;:::i;:::-;29060:139;;28787:419;;;:::o;29212:222::-;29305:4;29343:2;29332:9;29328:18;29320:26;;29356:71;29424:1;29413:9;29409:17;29400:6;29356:71;:::i;:::-;29212:222;;;;:::o;29440:831::-;29703:4;29741:3;29730:9;29726:19;29718:27;;29755:71;29823:1;29812:9;29808:17;29799:6;29755:71;:::i;:::-;29836:80;29912:2;29901:9;29897:18;29888:6;29836:80;:::i;:::-;29963:9;29957:4;29953:20;29948:2;29937:9;29933:18;29926:48;29991:108;30094:4;30085:6;29991:108;:::i;:::-;29983:116;;30109:72;30177:2;30166:9;30162:18;30153:6;30109:72;:::i;:::-;30191:73;30259:3;30248:9;30244:19;30235:6;30191:73;:::i;:::-;29440:831;;;;;;;;:::o;30277:442::-;30426:4;30464:2;30453:9;30449:18;30441:26;;30477:71;30545:1;30534:9;30530:17;30521:6;30477:71;:::i;:::-;30558:72;30626:2;30615:9;30611:18;30602:6;30558:72;:::i;:::-;30640;30708:2;30697:9;30693:18;30684:6;30640:72;:::i;:::-;30277:442;;;;;;:::o;30725:214::-;30814:4;30852:2;30841:9;30837:18;30829:26;;30865:67;30929:1;30918:9;30914:17;30905:6;30865:67;:::i;:::-;30725:214;;;;:::o;31026:132::-;31093:4;31116:3;31108:11;;31146:4;31141:3;31137:14;31129:22;;31026:132;;;:::o;31164:114::-;31231:6;31265:5;31259:12;31249:22;;31164:114;;;:::o;31284:99::-;31336:6;31370:5;31364:12;31354:22;;31284:99;;;:::o;31389:113::-;31459:4;31491;31486:3;31482:14;31474:22;;31389:113;;;:::o;31508:184::-;31607:11;31641:6;31636:3;31629:19;31681:4;31676:3;31672:14;31657:29;;31508:184;;;;:::o;31698:169::-;31782:11;31816:6;31811:3;31804:19;31856:4;31851:3;31847:14;31832:29;;31698:169;;;;:::o;31873:305::-;31913:3;31932:20;31950:1;31932:20;:::i;:::-;31927:25;;31966:20;31984:1;31966:20;:::i;:::-;31961:25;;32120:1;32052:66;32048:74;32045:1;32042:81;32039:107;;;32126:18;;:::i;:::-;32039:107;32170:1;32167;32163:9;32156:16;;31873:305;;;;:::o;32184:185::-;32224:1;32241:20;32259:1;32241:20;:::i;:::-;32236:25;;32275:20;32293:1;32275:20;:::i;:::-;32270:25;;32314:1;32304:35;;32319:18;;:::i;:::-;32304:35;32361:1;32358;32354:9;32349:14;;32184:185;;;;:::o;32375:848::-;32436:5;32443:4;32467:6;32458:15;;32491:5;32482:14;;32505:712;32526:1;32516:8;32513:15;32505:712;;;32621:4;32616:3;32612:14;32606:4;32603:24;32600:50;;;32630:18;;:::i;:::-;32600:50;32680:1;32670:8;32666:16;32663:451;;;33095:4;33088:5;33084:16;33075:25;;32663:451;33145:4;33139;33135:15;33127:23;;33175:32;33198:8;33175:32;:::i;:::-;33163:44;;32505:712;;;32375:848;;;;;;;:::o;33229:281::-;33287:5;33311:23;33329:4;33311:23;:::i;:::-;33303:31;;33355:25;33371:8;33355:25;:::i;:::-;33343:37;;33399:104;33436:66;33426:8;33420:4;33399:104;:::i;:::-;33390:113;;33229:281;;;;:::o;33516:1073::-;33570:5;33761:8;33751:40;;33782:1;33773:10;;33784:5;;33751:40;33810:4;33800:36;;33827:1;33818:10;;33829:5;;33800:36;33896:4;33944:1;33939:27;;;;33980:1;33975:191;;;;33889:277;;33939:27;33957:1;33948:10;;33959:5;;;33975:191;34020:3;34010:8;34007:17;34004:43;;;34027:18;;:::i;:::-;34004:43;34076:8;34073:1;34069:16;34060:25;;34111:3;34104:5;34101:14;34098:40;;;34118:18;;:::i;:::-;34098:40;34151:5;;;33889:277;;34275:2;34265:8;34262:16;34256:3;34250:4;34247:13;34243:36;34225:2;34215:8;34212:16;34207:2;34201:4;34198:12;34194:35;34178:111;34175:246;;;34331:8;34325:4;34321:19;34312:28;;34366:3;34359:5;34356:14;34353:40;;;34373:18;;:::i;:::-;34353:40;34406:5;;34175:246;34446:42;34484:3;34474:8;34468:4;34465:1;34446:42;:::i;:::-;34431:57;;;;34520:4;34515:3;34511:14;34504:5;34501:25;34498:51;;;34529:18;;:::i;:::-;34498:51;34578:4;34571:5;34567:16;34558:25;;33516:1073;;;;;;:::o;34595:348::-;34635:7;34658:20;34676:1;34658:20;:::i;:::-;34653:25;;34692:20;34710:1;34692:20;:::i;:::-;34687:25;;34880:1;34812:66;34808:74;34805:1;34802:81;34797:1;34790:9;34783:17;34779:105;34776:131;;;34887:18;;:::i;:::-;34776:131;34935:1;34932;34928:9;34917:20;;34595:348;;;;:::o;34949:191::-;34989:4;35009:20;35027:1;35009:20;:::i;:::-;35004:25;;35043:20;35061:1;35043:20;:::i;:::-;35038:25;;35082:1;35079;35076:8;35073:34;;;35087:18;;:::i;:::-;35073:34;35132:1;35129;35125:9;35117:17;;34949:191;;;;:::o;35146:96::-;35183:7;35212:24;35230:5;35212:24;:::i;:::-;35201:35;;35146:96;;;:::o;35248:104::-;35293:7;35322:24;35340:5;35322:24;:::i;:::-;35311:35;;35248:104;;;:::o;35358:90::-;35392:7;35435:5;35428:13;35421:21;35410:32;;35358:90;;;:::o;35454:126::-;35491:7;35531:42;35524:5;35520:54;35509:65;;35454:126;;;:::o;35586:77::-;35623:7;35652:5;35641:16;;35586:77;;;:::o;35669:86::-;35704:7;35744:4;35737:5;35733:16;35722:27;;35669:86;;;:::o;35761:134::-;35819:9;35852:37;35883:5;35852:37;:::i;:::-;35839:50;;35761:134;;;:::o;35901:144::-;35969:9;36002:37;36033:5;36002:37;:::i;:::-;35989:50;;35901:144;;;:::o;36051:121::-;36109:9;36142:24;36160:5;36142:24;:::i;:::-;36129:37;;36051:121;;;:::o;36178:117::-;36234:9;36267:22;36283:5;36267:22;:::i;:::-;36254:35;;36178:117;;;:::o;36301:::-;36357:9;36390:22;36406:5;36390:22;:::i;:::-;36377:35;;36301:117;;;:::o;36424:::-;36480:9;36513:22;36529:5;36513:22;:::i;:::-;36500:35;;36424:117;;;:::o;36547:126::-;36597:9;36630:37;36661:5;36630:37;:::i;:::-;36617:50;;36547:126;;;:::o;36679:113::-;36729:9;36762:24;36780:5;36762:24;:::i;:::-;36749:37;;36679:113;;;:::o;36798:307::-;36866:1;36876:113;36890:6;36887:1;36884:13;36876:113;;;36975:1;36970:3;36966:11;36960:18;36956:1;36951:3;36947:11;36940:39;36912:2;36909:1;36905:10;36900:15;;36876:113;;;37007:6;37004:1;37001:13;36998:101;;;37087:1;37078:6;37073:3;37069:16;37062:27;36998:101;36847:258;36798:307;;;:::o;37111:171::-;37150:3;37173:24;37191:5;37173:24;:::i;:::-;37164:33;;37219:4;37212:5;37209:15;37206:41;;;37227:18;;:::i;:::-;37206:41;37274:1;37267:5;37263:13;37256:20;;37111:171;;;:::o;37288:233::-;37327:3;37350:24;37368:5;37350:24;:::i;:::-;37341:33;;37396:66;37389:5;37386:77;37383:103;;;37466:18;;:::i;:::-;37383:103;37513:1;37506:5;37502:13;37495:20;;37288:233;;;:::o;37527:180::-;37575:77;37572:1;37565:88;37672:4;37669:1;37662:15;37696:4;37693:1;37686:15;37713:180;37761:77;37758:1;37751:88;37858:4;37855:1;37848:15;37882:4;37879:1;37872:15;37899:180;37947:77;37944:1;37937:88;38044:4;38041:1;38034:15;38068:4;38065:1;38058:15;38085:180;38133:77;38130:1;38123:88;38230:4;38227:1;38220:15;38254:4;38251:1;38244:15;38271:117;38380:1;38377;38370:12;38394:117;38503:1;38500;38493:12;38517:117;38626:1;38623;38616:12;38640:117;38749:1;38746;38739:12;38763:117;38872:1;38869;38862:12;38886:102;38927:6;38978:2;38974:7;38969:2;38962:5;38958:14;38954:28;38944:38;;38886:102;;;:::o;38994:::-;39036:8;39083:5;39080:1;39076:13;39055:34;;38994:102;;;:::o;39102:171::-;39242:23;39238:1;39230:6;39226:14;39219:47;39102:171;:::o;39279:224::-;39419:34;39415:1;39407:6;39403:14;39396:58;39488:7;39483:2;39475:6;39471:15;39464:32;39279:224;:::o;39509:167::-;39649:19;39645:1;39637:6;39633:14;39626:43;39509:167;:::o;39682:174::-;39822:26;39818:1;39810:6;39806:14;39799:50;39682:174;:::o;39862:225::-;40002:34;39998:1;39990:6;39986:14;39979:58;40071:8;40066:2;40058:6;40054:15;40047:33;39862:225;:::o;40093:172::-;40233:24;40229:1;40221:6;40217:14;40210:48;40093:172;:::o;40271:170::-;40411:22;40407:1;40399:6;40395:14;40388:46;40271:170;:::o;40447:177::-;40587:29;40583:1;40575:6;40571:14;40564:53;40447:177;:::o;40630:179::-;40770:31;40766:1;40758:6;40754:14;40747:55;40630:179;:::o;40815:174::-;40955:26;40951:1;40943:6;40939:14;40932:50;40815:174;:::o;40995:228::-;41135:34;41131:1;41123:6;41119:14;41112:58;41204:11;41199:2;41191:6;41187:15;41180:36;40995:228;:::o;41229:182::-;41369:34;41365:1;41357:6;41353:14;41346:58;41229:182;:::o;41417:171::-;41557:23;41553:1;41545:6;41541:14;41534:47;41417:171;:::o;41594:221::-;41734:34;41730:1;41722:6;41718:14;41711:58;41803:4;41798:2;41790:6;41786:15;41779:29;41594:221;:::o;41821:122::-;41894:24;41912:5;41894:24;:::i;:::-;41887:5;41884:35;41874:63;;41933:1;41930;41923:12;41874:63;41821:122;:::o;41949:116::-;42019:21;42034:5;42019:21;:::i;:::-;42012:5;42009:32;41999:60;;42055:1;42052;42045:12;41999:60;41949:116;:::o;42071:122::-;42144:24;42162:5;42144:24;:::i;:::-;42137:5;42134:35;42124:63;;42183:1;42180;42173:12;42124:63;42071:122;:::o

Swarm Source

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