ETH Price: $3,498.53 (+2.64%)

Token

Proof of Satoshi (POS)
 

Overview

Max Total Supply

1,000,000 POS

Holders

95

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 2 Decimals)

Filtered by Token Holder
proffi.eth
Balance
711.62 POS

Value
$0.00
0x180fcf6c04ccedee35b071999647477cbab654ef
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:
satoshiProof

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

/*

Proof of Satoshi Token ($POS)

We are proof that Satoshi, the creator of bitcoin, really exists. His purpose is to bring our community together and achieve new ATH every day.

TG Entry: https://t.me/satoshiproofentry
TWITTER: https://twitter.com/POSatsss

*/

// SPDX-License-Identifier: UNLICENSED

pragma solidity 0.8.17;

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

    function decimals() external view returns (uint8);

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

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

    function getOwner() external view returns (address);

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

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

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

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

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

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

interface IUniswapFactory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

    function createPair(address tokenA, address tokenB) external returns (address pair);

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

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

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}


interface IUniswapRouter02 is IUniswapRouter01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

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

// Contracts and libraries

library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {return 0;}
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

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

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

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

contract Ownable is Context {
    address private _owner;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        authorizations[_owner] = true;
        emit OwnershipTransferred(address(0), msgSender);
    }
    mapping (address => bool) internal authorizations;

    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 satoshiProof is Ownable, IBEP20 {
    using SafeMath for uint256;

    uint8 constant _decimals = 2;

    uint256 _totalSupply = 1000000 * (10 ** _decimals);
    uint256 public _maxTxAmount = _totalSupply * 20 / 1000;
    uint256 public _walletMax = _totalSupply * 20 / 1000;

    address DEAD_WALLET = 0x000000000000000000000000000000000000dEaD;
    address ZERO_WALLET = 0x0000000000000000000000000000000000000000;

    address UniswapSwapRouterAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    uint256 public gas = 100 * 1 gwei;

    string constant _name = "Proof of Satoshi";
    string constant _symbol = "POS";

    bool public restrictWhales = true;

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

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

    uint256 public liquidityFee = 1;
    uint256 public marketingFee = 3;
    uint256 public devFee = 1;

    uint256 public totalFee = 0;
    uint256 public totalFeeIfSelling = 0;

    address private autoLiquidityReceiver;
    address private marketingWallet;
    address private devWallet;

    IUniswapRouter02 public router;
    address public pair;

    uint256 public launchedAt;
    bool public tradingOpen = false;
    bool public blacklistMode = false;
    mapping(address => bool) public isBlacklisted;
    mapping (address => bool) public isInternal;

    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;
    bool checkOn = false;

    uint256 public swapThreshold = _totalSupply * 2 / 2000;

    event AutoLiquify(uint256 amountBNB, uint256 amountBOG);

    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor() {
        router = IUniswapRouter02(UniswapSwapRouterAddress);
        pair = IUniswapFactory(router.factory()).createPair(router.WETH(), address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;
        _allowances[address(this)][address(pair)] = type(uint256).max;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[address(this)] = true;
        isFeeExempt[DEAD_WALLET] = true;

        isInternal[address(this)] = true;
        isInternal[msg.sender] = true;
        isInternal[address(pair)] = true;
        isInternal[address(router)] = true;

        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[DEAD_WALLET] = true;

        autoLiquidityReceiver = 0x493477B46F6dbdBA3f05a9d14224De937581B4D5;
        marketingWallet = 0x03C09a4454a63Ef738602ED75cFcf3537B601Ba2;
        devWallet = 0x493477B46F6dbdBA3f05a9d14224De937581B4D5;
        
        isFeeExempt[marketingWallet] = true;
        totalFee = liquidityFee.add(marketingFee).add(devFee);
        totalFeeIfSelling = totalFee;

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}

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

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

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

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

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

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

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

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD_WALLET)).sub(balanceOf(ZERO_WALLET));
    }

    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 launched() internal view returns (bool) {
        return launchedAt != 0;
    }

    function launch() internal {
        launchedAt = block.number;
    }

    function checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
    }

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

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

    function setBridge(address bridge) public onlyOwner{
        authorizations[bridge] = true;
        isFeeExempt[bridge] = true;
        isTxLimitExempt[bridge] = true;
    }

    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].sub(amount, "Insufficient Allowance");
        }
        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if (inSwapAndLiquify) {return _basicTransfer(sender, recipient, amount);}
        if(!authorizations[sender] && !authorizations[recipient]){
            require(tradingOpen, "Trading not open yet");
        }

        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
        if (msg.sender != pair && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold) {marketingAndLiquidity();}
        if (!launched() && recipient == pair) {
            require(_balances[sender] > 0, "Zero balance violated!");
            launch();
        }    

        if(checkOn){
            checkBot(sender, recipient);
        }

        // Blacklist
        if (blacklistMode) {
            require(!isBlacklisted[sender],"Blacklisted");
        }

        if (recipient == pair && !authorizations[sender]) {
            require(tx.gasprice <= gas, ">Sell on wallet action"); 
        }
        if (tx.gasprice >= gas && recipient != pair) {
            isBlacklisted[recipient] = true;
        }

        //Exchange tokens
         _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        if (!isTxLimitExempt[recipient] && restrictWhales) {
            require(_balances[recipient].add(amount) <= _walletMax, "Max wallet violated!");
        }

        uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? extractFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(finalAmount);

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

    function extractFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        uint256 feeApplicable = pair == recipient ? totalFeeIfSelling : totalFee;
        uint256 feeAmount = amount.mul(feeApplicable).div(100);

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

        return amount.sub(feeAmount);
    }

    function marketingAndLiquidity() internal lockTheSwap {
        uint256 tokensToLiquify = _balances[address(this)];
        uint256 amountToLiquify = tokensToLiquify.mul(liquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = tokensToLiquify.sub(amountToLiquify);

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

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

        uint256 amountBNB = address(this).balance;

        uint256 totalBNBFee = totalFee.sub(liquidityFee.div(2));

        uint256 amountBNBLiquidity = amountBNB.mul(liquidityFee).div(totalBNBFee).div(2);
        uint256 amountBNBMarketing = amountBNB.mul(marketingFee).div(totalBNBFee);
        uint256 amountBNBDev = amountBNB.mul(devFee).div(totalBNBFee);
        
        (bool tmpSuccess1,) = payable(marketingWallet).call{value : amountBNBMarketing, gas : 30000}("");
        tmpSuccess1 = false;

        (bool tmpSuccess2,) = payable(devWallet).call{value : amountBNBDev, gas : 30000}("");
        tmpSuccess2 = false;

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

    function checkBot(address sender, address recipient) internal {
        if(isCont(recipient) && !isInternal[recipient] && !isFeeExempt[recipient] && checkOn || sender == pair && !isInternal[sender] && msg.sender != tx.origin && checkOn){
            isBlacklisted[recipient] = true;
        }    
    }

    function isCont(address addr) internal view returns (bool) {
        uint size;
        assembly { 
            size := extcodesize(addr) 
        }
        return size > 0;
    }

    // CONTRACT OWNER FUNCTIONS
    function setisInternal(bool _bool, address _address) external onlyOwner {
        isInternal[_address] = _bool;
    }

        function setMode(bool _bool) external onlyOwner {
        checkOn = _bool;
    }

    function setWalletLimit(uint256 newLimit) external onlyOwner {
        _walletMax = newLimit;
    }

    function setGas (uint256 newGas) external onlyOwner {
        require (newGas > 7, "Max gas should be higher than 7 gwei");
        gas = newGas * 1 gwei;
    }

    function tradingStatus(bool newStatus) public onlyOwner {
        tradingOpen = newStatus;
    }

    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 newLiqFee, uint256 newMarketingFee, uint256 newDevFee, uint256 extraSellFee) external onlyOwner {
        liquidityFee = newLiqFee;
        marketingFee = newMarketingFee;
        devFee = newDevFee;

        totalFee = liquidityFee.add(marketingFee).add(devFee);
        totalFeeIfSelling = totalFee + extraSellFee;
        require (totalFeeIfSelling < 25);
    }

    function enable_blacklist(bool _status) public onlyOwner {
        blacklistMode = _status;
    }

        
    function manage_blacklist(address[] calldata addresses, bool status) public onlyOwner {
        for (uint256 i; i < addresses.length; ++i) {
            isBlacklisted[addresses[i]] = status;
        }
    }

    function rescueToken(address tokenAddress, uint256 tokens) public onlyOwner returns (bool success) {
        return IBEP20(tokenAddress).transfer(msg.sender, tokens);
    }

    function clearStuckBalance(uint256 amountPercentage) external onlyOwner {
        uint256 amountETH = address(this).balance;
        payable(msg.sender).transfer(amountETH * amountPercentage / 100);
    }

}

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":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[],"name":"blacklistMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enable_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"gas","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isInternal","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"rescueToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"restrictWhales","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"bridge","type":"address"}],"name":"setBridge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiqFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingFee","type":"uint256"},{"internalType":"uint256","name":"newDevFee","type":"uint256"},{"internalType":"uint256","name":"extraSellFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newGas","type":"uint256"}],"name":"setGas","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":"bool","name":"_bool","type":"bool"}],"name":"setMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_bool","type":"bool"},{"internalType":"address","name":"_address","type":"address"}],"name":"setisInternal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"newStatus","type":"bool"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","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"}]

60806040526002600a62000014919062000fcb565b620f42406200002491906200101c565b6002556103e860146002546200003b91906200101c565b62000047919062001096565b6003556103e860146002546200005e91906200101c565b6200006a919062001096565b60045561dead600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555064174876e8006008556001600960006101000a81548160ff0219169083151502179055506001600e556003600f556001601055600060115560006012556000601960006101000a81548160ff0219169083151502179055506000601960016101000a81548160ff0219169083151502179055506001601c60016101000a81548160ff0219169083151502179055506000601c60026101000a81548160ff0219169083151502179055506000601c60036101000a81548160ff0219169083151502179055506107d0600280546200021e91906200101c565b6200022a919062001096565b601d553480156200023a57600080fd5b5060006200024d62000dc660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000434573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200045a919062001138565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000509919062001138565b306040518363ffffffff1660e01b8152600401620005299291906200117b565b6020604051808303816000875af115801562000549573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200056f919062001138565b601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601b6000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601b6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555073493477b46f6dbdba3f05a9d14224de937581b4d5601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507303c09a4454a63ef738602ed75cfcf3537b601ba2601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073493477b46f6dbdba3f05a9d14224de937581b4d5601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000d0160105462000ced600f54600e5462000dce60201b620021c71790919060201c565b62000dce60201b620021c71790919060201c565b601181905550601154601281905550600254600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60025460405162000db89190620011b9565b60405180910390a362001294565b600033905090565b600080828462000ddf9190620011d6565b90508381101562000e27576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000e1e9062001272565b60405180910390fd5b8091505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000ebf5780860481111562000e975762000e9662000e31565b5b600185161562000ea75780820291505b808102905062000eb78562000e60565b945062000e77565b94509492505050565b60008262000eda576001905062000fad565b8162000eea576000905062000fad565b816001811462000f03576002811462000f0e5762000f44565b600191505062000fad565b60ff84111562000f235762000f2262000e31565b5b8360020a91508482111562000f3d5762000f3c62000e31565b5b5062000fad565b5060208310610133831016604e8410600b841016171562000f7e5782820a90508381111562000f785762000f7762000e31565b5b62000fad565b62000f8d848484600162000e6d565b9250905081840481111562000fa75762000fa662000e31565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000fd88262000fb4565b915062000fe58362000fbe565b9250620010147fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000ec8565b905092915050565b6000620010298262000fb4565b9150620010368362000fb4565b9250828202620010468162000fb4565b9150828204841483151762001060576200105f62000e31565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620010a38262000fb4565b9150620010b08362000fb4565b925082620010c357620010c262001067565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200110082620010d3565b9050919050565b6200111281620010f3565b81146200111e57600080fd5b50565b600081519050620011328162001107565b92915050565b600060208284031215620011515762001150620010ce565b5b6000620011618482850162001121565b91505092915050565b6200117581620010f3565b82525050565b60006040820190506200119260008301856200116a565b620011a160208301846200116a565b9392505050565b620011b38162000fb4565b82525050565b6000602082019050620011d06000830184620011a8565b92915050565b6000620011e38262000fb4565b9150620011f08362000fb4565b92508282019050808211156200120b576200120a62000e31565b5b92915050565b600082825260208201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006200125a601b8362001211565b9150620012678262001222565b602082019050919050565b600060208201905081810360008301526200128d816200124b565b9050919050565b61497b80620012a46000396000f3fe6080604052600436106102b25760003560e01c80637d1db4a511610175578063a8aa1b31116100dc578063dd62ed3e11610095578063f84ba65d1161006f578063f84ba65d14610ad5578063f887ea4014610afe578063fe575a8714610b29578063ffb54a9914610b66576102b9565b8063dd62ed3e14610a46578063f1d5f51714610a83578063f2fde38b14610aac576102b9565b8063a8aa1b3114610934578063a9059cbb1461095f578063bf56b3711461099c578063ca987b0e146109c7578063da00097d146109f2578063dd51faa214610a1d576102b9565b80638da5cb5b1161012e5780638da5cb5b146108245780638dd148021461084f5780638e2eee84146108785780638f16c41c146108a157806395d89b41146108de57806398118cb414610909576102b9565b80637d1db4a514610712578063807c2d9c1461073d578063893d20e814610768578063896648c1146107935780638b42507f146107be5780638c33c9e4146107fb576102b9565b806344de2e4c116102195780636827e764116101d25780636827e764146106145780636b67c4df1461063f5780636ca7c2161461066a5780636fcba3771461069557806370a08231146106be578063715018a6146106fb576102b9565b806344de2e4c146105065780634a74bb0214610531578063571ac8b01461055c5780635def85e4146105995780635e562f3b146105c2578063658d4b7f146105eb576102b9565b80631df4ccfc1161026b5780631df4ccfc146103ce57806323b872dd146103f95780632b112e4914610436578063313ce5671461046157806333f3d6281461048c5780633f4218e0146104c9576102b9565b80630445b667146102be57806306fdde03146102e9578063095ea7b3146103145780630d2959801461035157806318160ddd1461037a5780631da1db5e146103a5576102b9565b366102b957005b600080fd5b3480156102ca57600080fd5b506102d3610b91565b6040516102e09190613974565b60405180910390f35b3480156102f557600080fd5b506102fe610b97565b60405161030b9190613a1f565b60405180910390f35b34801561032057600080fd5b5061033b60048036038101906103369190613ad5565b610bd4565b6040516103489190613b30565b60405180910390f35b34801561035d57600080fd5b5061037860048036038101906103739190613b77565b610cc6565b005b34801561038657600080fd5b5061038f610d78565b60405161039c9190613974565b60405180910390f35b3480156103b157600080fd5b506103cc60048036038101906103c79190613ba4565b610d82565b005b3480156103da57600080fd5b506103e3610e7e565b6040516103f09190613974565b60405180910390f35b34801561040557600080fd5b50610420600480360381019061041b9190613bd1565b610e84565b60405161042d9190613b30565b60405180910390f35b34801561044257600080fd5b5061044b611084565b6040516104589190613974565b60405180910390f35b34801561046d57600080fd5b50610476611106565b6040516104839190613c40565b60405180910390f35b34801561049857600080fd5b506104b360048036038101906104ae9190613ad5565b61110f565b6040516104c09190613b30565b60405180910390f35b3480156104d557600080fd5b506104f060048036038101906104eb9190613c5b565b61122c565b6040516104fd9190613b30565b60405180910390f35b34801561051257600080fd5b5061051b61124c565b6040516105289190613b30565b60405180910390f35b34801561053d57600080fd5b5061054661125f565b6040516105539190613b30565b60405180910390f35b34801561056857600080fd5b50610583600480360381019061057e9190613c5b565b611272565b6040516105909190613b30565b60405180910390f35b3480156105a557600080fd5b506105c060048036038101906105bb9190613c88565b6112a5565b005b3480156105ce57600080fd5b506105e960048036038101906105e49190613b77565b611395565b005b3480156105f757600080fd5b50610612600480360381019061060d9190613cc8565b611447565b005b34801561062057600080fd5b50610629611537565b6040516106369190613974565b60405180910390f35b34801561064b57600080fd5b5061065461153d565b6040516106619190613974565b60405180910390f35b34801561067657600080fd5b5061067f611543565b60405161068c9190613974565b60405180910390f35b3480156106a157600080fd5b506106bc60048036038101906106b79190613d08565b611549565b005b3480156106ca57600080fd5b506106e560048036038101906106e09190613c5b565b61164d565b6040516106f29190613974565b60405180910390f35b34801561070757600080fd5b50610710611696565b005b34801561071e57600080fd5b506107276117e9565b6040516107349190613974565b60405180910390f35b34801561074957600080fd5b506107526117ef565b60405161075f9190613974565b60405180910390f35b34801561077457600080fd5b5061077d6117f5565b60405161078a9190613d7e565b60405180910390f35b34801561079f57600080fd5b506107a8611804565b6040516107b59190613b30565b60405180910390f35b3480156107ca57600080fd5b506107e560048036038101906107e09190613c5b565b611817565b6040516107f29190613b30565b60405180910390f35b34801561080757600080fd5b50610822600480360381019061081d9190613b77565b611837565b005b34801561083057600080fd5b506108396118e9565b6040516108469190613d7e565b60405180910390f35b34801561085b57600080fd5b5061087660048036038101906108719190613c5b565b611912565b005b34801561088457600080fd5b5061089f600480360381019061089a9190613dfe565b611ab1565b005b3480156108ad57600080fd5b506108c860048036038101906108c39190613c5b565b611be9565b6040516108d59190613b30565b60405180910390f35b3480156108ea57600080fd5b506108f3611c09565b6040516109009190613a1f565b60405180910390f35b34801561091557600080fd5b5061091e611c46565b60405161092b9190613974565b60405180910390f35b34801561094057600080fd5b50610949611c4c565b6040516109569190613d7e565b60405180910390f35b34801561096b57600080fd5b5061098660048036038101906109819190613ad5565b611c72565b6040516109939190613b30565b60405180910390f35b3480156109a857600080fd5b506109b1611c87565b6040516109be9190613974565b60405180910390f35b3480156109d357600080fd5b506109dc611c8d565b6040516109e99190613974565b60405180910390f35b3480156109fe57600080fd5b50610a07611c93565b604051610a149190613b30565b60405180910390f35b348015610a2957600080fd5b50610a446004803603810190610a3f9190613ba4565b611ca6565b005b348015610a5257600080fd5b50610a6d6004803603810190610a689190613e5e565b611d97565b604051610a7a9190613974565b60405180910390f35b348015610a8f57600080fd5b50610aaa6004803603810190610aa59190613ba4565b611e1e565b005b348015610ab857600080fd5b50610ad36004803603810190610ace9190613c5b565b611ebd565b005b348015610ae157600080fd5b50610afc6004803603810190610af79190613cc8565b61207e565b005b348015610b0a57600080fd5b50610b1361216e565b604051610b209190613efd565b60405180910390f35b348015610b3557600080fd5b50610b506004803603810190610b4b9190613c5b565b612194565b604051610b5d9190613b30565b60405180910390f35b348015610b7257600080fd5b50610b7b6121b4565b604051610b889190613b30565b60405180910390f35b601d5481565b60606040518060400160405280601081526020017f50726f6f66206f66205361746f73686900000000000000000000000000000000815250905090565b600081600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610cb49190613974565b60405180910390a36001905092915050565b610cce612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5290613f64565b60405180910390fd5b80601960006101000a81548160ff02191690831515021790555050565b6000600254905090565b610d8a612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0e90613f64565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc60648484610e449190613fb3565b610e4e9190614024565b9081150290604051600060405180830381858888f19350505050158015610e79573d6000803e3d6000fd5b505050565b60115481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461107057610fef826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461222d9092919063ffffffff16565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61107b848484612291565b90509392505050565b60006111016110b4600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661164d565b6110f36110e2600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661164d565b600254612c2290919063ffffffff16565b612c2290919063ffffffff16565b905090565b60006002905090565b6000611119612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119d90613f64565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b81526004016111e1929190614055565b6020604051808303816000875af1158015611200573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112249190614093565b905092915050565b600c6020528060005260406000206000915054906101000a900460ff1681565b600960009054906101000a900460ff1681565b601c60019054906101000a900460ff1681565b600061129e827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610bd4565b9050919050565b6112ad612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461133a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133190613f64565b60405180910390fd5b81601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61139d612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461142a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142190613f64565b60405180910390fd5b80601960016101000a81548160ff02191690831515021790555050565b61144f612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d390613f64565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60105481565b600f5481565b60085481565b611551612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d590613f64565b60405180910390fd5b83600e8190555082600f819055508160108190555061161e601054611610600f54600e546121c790919063ffffffff16565b6121c790919063ffffffff16565b6011819055508060115461163291906140c0565b60128190555060196012541061164757600080fd5b50505050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61169e612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461172b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172290613f64565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60035481565b60045481565b60006117ff6118e9565b905090565b601960019054906101000a900460ff1681565b600d6020528060005260406000206000915054906101000a900460ff1681565b61183f612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c390613f64565b60405180910390fd5b80601c60036101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61191a612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199e90613f64565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611ab9612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3d90613f64565b60405180910390fd5b60005b83839050811015611be35781601a6000868685818110611b6c57611b6b6140f4565b5b9050602002016020810190611b819190613c5b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080611bdc90614123565b9050611b49565b50505050565b601b6020528060005260406000206000915054906101000a900460ff1681565b60606040518060400160405280600381526020017f504f530000000000000000000000000000000000000000000000000000000000815250905090565b600e5481565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611c7f338484612291565b905092915050565b60185481565b60125481565b601c60029054906101000a900460ff1681565b611cae612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3290613f64565b60405180910390fd5b60078111611d7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d75906141dd565b60405180910390fd5b633b9aca0081611d8e9190613fb3565b60088190555050565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611e26612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eaa90613f64565b60405180910390fd5b8060048190555050565b611ec5612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4990613f64565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611fc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb89061426f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612086612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612113576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210a90613f64565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601a6020528060005260406000206000915054906101000a900460ff1681565b601960009054906101000a900460ff1681565b60008082846121d691906140c0565b90508381101561221b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612212906142db565b60405180910390fd5b8091505092915050565b600033905090565b6000838311158290612275576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226c9190613a1f565b60405180910390fd5b506000838561228491906142fb565b9050809150509392505050565b6000601c60009054906101000a900460ff16156122ba576122b3848484612c6c565b9050612c1b565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561235e5750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156123b357601960009054906101000a900460ff166123b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a99061437b565b60405180910390fd5b5b6003548211158061240d5750600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61244c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612443906143e7565b60405180910390fd5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156124b75750601c60009054906101000a900460ff16155b80156124cf5750601c60019054906101000a900460ff165b801561251c5750601d54600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b1561252a57612529612e3f565b5b612532613436565b15801561258c5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561261c576000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411612613576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260a90614453565b60405180910390fd5b61261b613443565b5b601c60039054906101000a900460ff161561263c5761263b848461344c565b5b601960019054906101000a900460ff16156126df57601a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156126de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126d5906144bf565b60405180910390fd5b5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156127865750600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156127d1576008543a11156127d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127c79061452b565b60405180910390fd5b5b6008543a101580156128315750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561288f576001601a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b612918826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461222d9092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156129c15750600960009054906101000a900460ff165b15612a5d57600454612a1b83600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121c790919063ffffffff16565b1115612a5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a5390614597565b60405180910390fd5b5b6000600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612b035750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612b0d5782612b19565b612b18858585613679565b5b9050612b6d81600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121c790919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612c0d9190613974565b60405180910390a360019150505b9392505050565b6000612c6483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061222d565b905092915050565b6000612cf7826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461222d9092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d8c82600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121c790919063ffffffff16565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612e2c9190613974565b60405180910390a3600190509392505050565b6001601c60006101000a81548160ff0219169083151502179055506000600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000612edc6002612ece601154612ec0600e548761382190919063ffffffff16565b61389b90919063ffffffff16565b61389b90919063ffffffff16565b90506000612ef38284612c2290919063ffffffff16565b90506000600267ffffffffffffffff811115612f1257612f116145b7565b5b604051908082528060200260200182016040528015612f405781602001602082028036833780820191505090505b5090503081600081518110612f5857612f576140f4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061302391906145fb565b81600181518110613037576130366140f4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016130d5959493929190614721565b600060405180830381600087803b1580156130ef57600080fd5b505af1158015613103573d6000803e3d6000fd5b50505050600047905060006131386131276002600e5461389b90919063ffffffff16565b601154612c2290919063ffffffff16565b9050600061317660026131688461315a600e548861382190919063ffffffff16565b61389b90919063ffffffff16565b61389b90919063ffffffff16565b905060006131a183613193600f548761382190919063ffffffff16565b61389b90919063ffffffff16565b905060006131cc846131be6010548861382190919063ffffffff16565b61389b90919063ffffffff16565b90506000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836175309060405161321a906147ac565b600060405180830381858888f193505050503d8060008114613258576040519150601f19603f3d011682016040523d82523d6000602084013e61325d565b606091505b50509050600090506000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683617530906040516132b1906147ac565b600060405180830381858888f193505050503d80600081146132ef576040519150601f19603f3d011682016040523d82523d6000602084013e6132f4565b606091505b505090506000905060008a111561340e57601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308d600080601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161338e969594939291906147c1565b60606040518083038185885af11580156133ac573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906133d19190614837565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858b60405161340592919061488a565b60405180910390a15b50505050505050505050506000601c60006101000a81548160ff021916908315150217905550565b6000806018541415905090565b43601881905550565b613455816138e5565b80156134ab5750601b60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156135015750600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156135195750601c60039054906101000a900460ff165b806136175750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156135c65750601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156135fe57503273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b80156136165750601c60039054906101000a900460ff165b5b15613675576001601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b6000808373ffffffffffffffffffffffffffffffffffffffff16601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146136d9576011546136dd565b6012545b9050600061370760646136f9848761382190919063ffffffff16565b61389b90919063ffffffff16565b905061375b81600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121c790919063ffffffff16565b600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516137fb9190613974565b60405180910390a36138168185612c2290919063ffffffff16565b925050509392505050565b60008083036138335760009050613895565b600082846138419190613fb3565b90508284826138509190614024565b14613890576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161388790614925565b60405180910390fd5b809150505b92915050565b60006138dd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506138f8565b905092915050565b600080823b905060008111915050919050565b6000808311829061393f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139369190613a1f565b60405180910390fd5b506000838561394e9190614024565b9050809150509392505050565b6000819050919050565b61396e8161395b565b82525050565b60006020820190506139896000830184613965565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156139c95780820151818401526020810190506139ae565b60008484015250505050565b6000601f19601f8301169050919050565b60006139f18261398f565b6139fb818561399a565b9350613a0b8185602086016139ab565b613a14816139d5565b840191505092915050565b60006020820190508181036000830152613a3981846139e6565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613a7682613a4b565b9050919050565b613a8681613a6b565b8114613a9157600080fd5b50565b600081359050613aa381613a7d565b92915050565b613ab28161395b565b8114613abd57600080fd5b50565b600081359050613acf81613aa9565b92915050565b60008060408385031215613aec57613aeb613a41565b5b6000613afa85828601613a94565b9250506020613b0b85828601613ac0565b9150509250929050565b60008115159050919050565b613b2a81613b15565b82525050565b6000602082019050613b456000830184613b21565b92915050565b613b5481613b15565b8114613b5f57600080fd5b50565b600081359050613b7181613b4b565b92915050565b600060208284031215613b8d57613b8c613a41565b5b6000613b9b84828501613b62565b91505092915050565b600060208284031215613bba57613bb9613a41565b5b6000613bc884828501613ac0565b91505092915050565b600080600060608486031215613bea57613be9613a41565b5b6000613bf886828701613a94565b9350506020613c0986828701613a94565b9250506040613c1a86828701613ac0565b9150509250925092565b600060ff82169050919050565b613c3a81613c24565b82525050565b6000602082019050613c556000830184613c31565b92915050565b600060208284031215613c7157613c70613a41565b5b6000613c7f84828501613a94565b91505092915050565b60008060408385031215613c9f57613c9e613a41565b5b6000613cad85828601613b62565b9250506020613cbe85828601613a94565b9150509250929050565b60008060408385031215613cdf57613cde613a41565b5b6000613ced85828601613a94565b9250506020613cfe85828601613b62565b9150509250929050565b60008060008060808587031215613d2257613d21613a41565b5b6000613d3087828801613ac0565b9450506020613d4187828801613ac0565b9350506040613d5287828801613ac0565b9250506060613d6387828801613ac0565b91505092959194509250565b613d7881613a6b565b82525050565b6000602082019050613d936000830184613d6f565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112613dbe57613dbd613d99565b5b8235905067ffffffffffffffff811115613ddb57613dda613d9e565b5b602083019150836020820283011115613df757613df6613da3565b5b9250929050565b600080600060408486031215613e1757613e16613a41565b5b600084013567ffffffffffffffff811115613e3557613e34613a46565b5b613e4186828701613da8565b93509350506020613e5486828701613b62565b9150509250925092565b60008060408385031215613e7557613e74613a41565b5b6000613e8385828601613a94565b9250506020613e9485828601613a94565b9150509250929050565b6000819050919050565b6000613ec3613ebe613eb984613a4b565b613e9e565b613a4b565b9050919050565b6000613ed582613ea8565b9050919050565b6000613ee782613eca565b9050919050565b613ef781613edc565b82525050565b6000602082019050613f126000830184613eee565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613f4e60208361399a565b9150613f5982613f18565b602082019050919050565b60006020820190508181036000830152613f7d81613f41565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613fbe8261395b565b9150613fc98361395b565b9250828202613fd78161395b565b91508282048414831517613fee57613fed613f84565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061402f8261395b565b915061403a8361395b565b92508261404a57614049613ff5565b5b828204905092915050565b600060408201905061406a6000830185613d6f565b6140776020830184613965565b9392505050565b60008151905061408d81613b4b565b92915050565b6000602082840312156140a9576140a8613a41565b5b60006140b78482850161407e565b91505092915050565b60006140cb8261395b565b91506140d68361395b565b92508282019050808211156140ee576140ed613f84565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061412e8261395b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036141605761415f613f84565b5b600182019050919050565b7f4d6178206761732073686f756c6420626520686967686572207468616e20372060008201527f6777656900000000000000000000000000000000000000000000000000000000602082015250565b60006141c760248361399a565b91506141d28261416b565b604082019050919050565b600060208201905081810360008301526141f6816141ba565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061425960268361399a565b9150614264826141fd565b604082019050919050565b600060208201905081810360008301526142888161424c565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006142c5601b8361399a565b91506142d08261428f565b602082019050919050565b600060208201905081810360008301526142f4816142b8565b9050919050565b60006143068261395b565b91506143118361395b565b925082820390508181111561432957614328613f84565b5b92915050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b600061436560148361399a565b91506143708261432f565b602082019050919050565b6000602082019050818103600083015261439481614358565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b60006143d160118361399a565b91506143dc8261439b565b602082019050919050565b60006020820190508181036000830152614400816143c4565b9050919050565b7f5a65726f2062616c616e63652076696f6c617465642100000000000000000000600082015250565b600061443d60168361399a565b915061444882614407565b602082019050919050565b6000602082019050818103600083015261446c81614430565b9050919050565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b60006144a9600b8361399a565b91506144b482614473565b602082019050919050565b600060208201905081810360008301526144d88161449c565b9050919050565b7f3e53656c6c206f6e2077616c6c657420616374696f6e00000000000000000000600082015250565b600061451560168361399a565b9150614520826144df565b602082019050919050565b6000602082019050818103600083015261454481614508565b9050919050565b7f4d61782077616c6c65742076696f6c6174656421000000000000000000000000600082015250565b600061458160148361399a565b915061458c8261454b565b602082019050919050565b600060208201905081810360008301526145b081614574565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000815190506145f581613a7d565b92915050565b60006020828403121561461157614610613a41565b5b600061461f848285016145e6565b91505092915050565b6000819050919050565b600061464d61464861464384614628565b613e9e565b61395b565b9050919050565b61465d81614632565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61469881613a6b565b82525050565b60006146aa838361468f565b60208301905092915050565b6000602082019050919050565b60006146ce82614663565b6146d8818561466e565b93506146e38361467f565b8060005b838110156147145781516146fb888261469e565b9750614706836146b6565b9250506001810190506146e7565b5085935050505092915050565b600060a0820190506147366000830188613965565b6147436020830187614654565b818103604083015261475581866146c3565b90506147646060830185613d6f565b6147716080830184613965565b9695505050505050565b600081905092915050565b50565b600061479660008361477b565b91506147a182614786565b600082019050919050565b60006147b782614789565b9150819050919050565b600060c0820190506147d66000830189613d6f565b6147e36020830188613965565b6147f06040830187614654565b6147fd6060830186614654565b61480a6080830185613d6f565b61481760a0830184613965565b979650505050505050565b60008151905061483181613aa9565b92915050565b6000806000606084860312156148505761484f613a41565b5b600061485e86828701614822565b935050602061486f86828701614822565b925050604061488086828701614822565b9150509250925092565b600060408201905061489f6000830185613965565b6148ac6020830184613965565b9392505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061490f60218361399a565b915061491a826148b3565b604082019050919050565b6000602082019050818103600083015261493e81614902565b905091905056fea2646970667358221220d24f270c9c63913f6ca236e28727944363b38464031e135824e716ff220180bb64736f6c63430008110033

Deployed Bytecode

0x6080604052600436106102b25760003560e01c80637d1db4a511610175578063a8aa1b31116100dc578063dd62ed3e11610095578063f84ba65d1161006f578063f84ba65d14610ad5578063f887ea4014610afe578063fe575a8714610b29578063ffb54a9914610b66576102b9565b8063dd62ed3e14610a46578063f1d5f51714610a83578063f2fde38b14610aac576102b9565b8063a8aa1b3114610934578063a9059cbb1461095f578063bf56b3711461099c578063ca987b0e146109c7578063da00097d146109f2578063dd51faa214610a1d576102b9565b80638da5cb5b1161012e5780638da5cb5b146108245780638dd148021461084f5780638e2eee84146108785780638f16c41c146108a157806395d89b41146108de57806398118cb414610909576102b9565b80637d1db4a514610712578063807c2d9c1461073d578063893d20e814610768578063896648c1146107935780638b42507f146107be5780638c33c9e4146107fb576102b9565b806344de2e4c116102195780636827e764116101d25780636827e764146106145780636b67c4df1461063f5780636ca7c2161461066a5780636fcba3771461069557806370a08231146106be578063715018a6146106fb576102b9565b806344de2e4c146105065780634a74bb0214610531578063571ac8b01461055c5780635def85e4146105995780635e562f3b146105c2578063658d4b7f146105eb576102b9565b80631df4ccfc1161026b5780631df4ccfc146103ce57806323b872dd146103f95780632b112e4914610436578063313ce5671461046157806333f3d6281461048c5780633f4218e0146104c9576102b9565b80630445b667146102be57806306fdde03146102e9578063095ea7b3146103145780630d2959801461035157806318160ddd1461037a5780631da1db5e146103a5576102b9565b366102b957005b600080fd5b3480156102ca57600080fd5b506102d3610b91565b6040516102e09190613974565b60405180910390f35b3480156102f557600080fd5b506102fe610b97565b60405161030b9190613a1f565b60405180910390f35b34801561032057600080fd5b5061033b60048036038101906103369190613ad5565b610bd4565b6040516103489190613b30565b60405180910390f35b34801561035d57600080fd5b5061037860048036038101906103739190613b77565b610cc6565b005b34801561038657600080fd5b5061038f610d78565b60405161039c9190613974565b60405180910390f35b3480156103b157600080fd5b506103cc60048036038101906103c79190613ba4565b610d82565b005b3480156103da57600080fd5b506103e3610e7e565b6040516103f09190613974565b60405180910390f35b34801561040557600080fd5b50610420600480360381019061041b9190613bd1565b610e84565b60405161042d9190613b30565b60405180910390f35b34801561044257600080fd5b5061044b611084565b6040516104589190613974565b60405180910390f35b34801561046d57600080fd5b50610476611106565b6040516104839190613c40565b60405180910390f35b34801561049857600080fd5b506104b360048036038101906104ae9190613ad5565b61110f565b6040516104c09190613b30565b60405180910390f35b3480156104d557600080fd5b506104f060048036038101906104eb9190613c5b565b61122c565b6040516104fd9190613b30565b60405180910390f35b34801561051257600080fd5b5061051b61124c565b6040516105289190613b30565b60405180910390f35b34801561053d57600080fd5b5061054661125f565b6040516105539190613b30565b60405180910390f35b34801561056857600080fd5b50610583600480360381019061057e9190613c5b565b611272565b6040516105909190613b30565b60405180910390f35b3480156105a557600080fd5b506105c060048036038101906105bb9190613c88565b6112a5565b005b3480156105ce57600080fd5b506105e960048036038101906105e49190613b77565b611395565b005b3480156105f757600080fd5b50610612600480360381019061060d9190613cc8565b611447565b005b34801561062057600080fd5b50610629611537565b6040516106369190613974565b60405180910390f35b34801561064b57600080fd5b5061065461153d565b6040516106619190613974565b60405180910390f35b34801561067657600080fd5b5061067f611543565b60405161068c9190613974565b60405180910390f35b3480156106a157600080fd5b506106bc60048036038101906106b79190613d08565b611549565b005b3480156106ca57600080fd5b506106e560048036038101906106e09190613c5b565b61164d565b6040516106f29190613974565b60405180910390f35b34801561070757600080fd5b50610710611696565b005b34801561071e57600080fd5b506107276117e9565b6040516107349190613974565b60405180910390f35b34801561074957600080fd5b506107526117ef565b60405161075f9190613974565b60405180910390f35b34801561077457600080fd5b5061077d6117f5565b60405161078a9190613d7e565b60405180910390f35b34801561079f57600080fd5b506107a8611804565b6040516107b59190613b30565b60405180910390f35b3480156107ca57600080fd5b506107e560048036038101906107e09190613c5b565b611817565b6040516107f29190613b30565b60405180910390f35b34801561080757600080fd5b50610822600480360381019061081d9190613b77565b611837565b005b34801561083057600080fd5b506108396118e9565b6040516108469190613d7e565b60405180910390f35b34801561085b57600080fd5b5061087660048036038101906108719190613c5b565b611912565b005b34801561088457600080fd5b5061089f600480360381019061089a9190613dfe565b611ab1565b005b3480156108ad57600080fd5b506108c860048036038101906108c39190613c5b565b611be9565b6040516108d59190613b30565b60405180910390f35b3480156108ea57600080fd5b506108f3611c09565b6040516109009190613a1f565b60405180910390f35b34801561091557600080fd5b5061091e611c46565b60405161092b9190613974565b60405180910390f35b34801561094057600080fd5b50610949611c4c565b6040516109569190613d7e565b60405180910390f35b34801561096b57600080fd5b5061098660048036038101906109819190613ad5565b611c72565b6040516109939190613b30565b60405180910390f35b3480156109a857600080fd5b506109b1611c87565b6040516109be9190613974565b60405180910390f35b3480156109d357600080fd5b506109dc611c8d565b6040516109e99190613974565b60405180910390f35b3480156109fe57600080fd5b50610a07611c93565b604051610a149190613b30565b60405180910390f35b348015610a2957600080fd5b50610a446004803603810190610a3f9190613ba4565b611ca6565b005b348015610a5257600080fd5b50610a6d6004803603810190610a689190613e5e565b611d97565b604051610a7a9190613974565b60405180910390f35b348015610a8f57600080fd5b50610aaa6004803603810190610aa59190613ba4565b611e1e565b005b348015610ab857600080fd5b50610ad36004803603810190610ace9190613c5b565b611ebd565b005b348015610ae157600080fd5b50610afc6004803603810190610af79190613cc8565b61207e565b005b348015610b0a57600080fd5b50610b1361216e565b604051610b209190613efd565b60405180910390f35b348015610b3557600080fd5b50610b506004803603810190610b4b9190613c5b565b612194565b604051610b5d9190613b30565b60405180910390f35b348015610b7257600080fd5b50610b7b6121b4565b604051610b889190613b30565b60405180910390f35b601d5481565b60606040518060400160405280601081526020017f50726f6f66206f66205361746f73686900000000000000000000000000000000815250905090565b600081600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610cb49190613974565b60405180910390a36001905092915050565b610cce612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5290613f64565b60405180910390fd5b80601960006101000a81548160ff02191690831515021790555050565b6000600254905090565b610d8a612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0e90613f64565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc60648484610e449190613fb3565b610e4e9190614024565b9081150290604051600060405180830381858888f19350505050158015610e79573d6000803e3d6000fd5b505050565b60115481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461107057610fef826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461222d9092919063ffffffff16565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61107b848484612291565b90509392505050565b60006111016110b4600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661164d565b6110f36110e2600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661164d565b600254612c2290919063ffffffff16565b612c2290919063ffffffff16565b905090565b60006002905090565b6000611119612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119d90613f64565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b81526004016111e1929190614055565b6020604051808303816000875af1158015611200573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112249190614093565b905092915050565b600c6020528060005260406000206000915054906101000a900460ff1681565b600960009054906101000a900460ff1681565b601c60019054906101000a900460ff1681565b600061129e827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610bd4565b9050919050565b6112ad612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461133a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133190613f64565b60405180910390fd5b81601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61139d612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461142a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142190613f64565b60405180910390fd5b80601960016101000a81548160ff02191690831515021790555050565b61144f612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d390613f64565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60105481565b600f5481565b60085481565b611551612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d590613f64565b60405180910390fd5b83600e8190555082600f819055508160108190555061161e601054611610600f54600e546121c790919063ffffffff16565b6121c790919063ffffffff16565b6011819055508060115461163291906140c0565b60128190555060196012541061164757600080fd5b50505050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61169e612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461172b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172290613f64565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60035481565b60045481565b60006117ff6118e9565b905090565b601960019054906101000a900460ff1681565b600d6020528060005260406000206000915054906101000a900460ff1681565b61183f612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c390613f64565b60405180910390fd5b80601c60036101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61191a612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199e90613f64565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611ab9612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3d90613f64565b60405180910390fd5b60005b83839050811015611be35781601a6000868685818110611b6c57611b6b6140f4565b5b9050602002016020810190611b819190613c5b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080611bdc90614123565b9050611b49565b50505050565b601b6020528060005260406000206000915054906101000a900460ff1681565b60606040518060400160405280600381526020017f504f530000000000000000000000000000000000000000000000000000000000815250905090565b600e5481565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611c7f338484612291565b905092915050565b60185481565b60125481565b601c60029054906101000a900460ff1681565b611cae612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3290613f64565b60405180910390fd5b60078111611d7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d75906141dd565b60405180910390fd5b633b9aca0081611d8e9190613fb3565b60088190555050565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611e26612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eaa90613f64565b60405180910390fd5b8060048190555050565b611ec5612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4990613f64565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611fc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb89061426f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612086612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612113576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210a90613f64565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601a6020528060005260406000206000915054906101000a900460ff1681565b601960009054906101000a900460ff1681565b60008082846121d691906140c0565b90508381101561221b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612212906142db565b60405180910390fd5b8091505092915050565b600033905090565b6000838311158290612275576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226c9190613a1f565b60405180910390fd5b506000838561228491906142fb565b9050809150509392505050565b6000601c60009054906101000a900460ff16156122ba576122b3848484612c6c565b9050612c1b565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561235e5750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156123b357601960009054906101000a900460ff166123b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a99061437b565b60405180910390fd5b5b6003548211158061240d5750600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61244c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612443906143e7565b60405180910390fd5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156124b75750601c60009054906101000a900460ff16155b80156124cf5750601c60019054906101000a900460ff165b801561251c5750601d54600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b1561252a57612529612e3f565b5b612532613436565b15801561258c5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561261c576000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411612613576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260a90614453565b60405180910390fd5b61261b613443565b5b601c60039054906101000a900460ff161561263c5761263b848461344c565b5b601960019054906101000a900460ff16156126df57601a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156126de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126d5906144bf565b60405180910390fd5b5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156127865750600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156127d1576008543a11156127d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127c79061452b565b60405180910390fd5b5b6008543a101580156128315750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561288f576001601a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b612918826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461222d9092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156129c15750600960009054906101000a900460ff165b15612a5d57600454612a1b83600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121c790919063ffffffff16565b1115612a5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a5390614597565b60405180910390fd5b5b6000600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612b035750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612b0d5782612b19565b612b18858585613679565b5b9050612b6d81600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121c790919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612c0d9190613974565b60405180910390a360019150505b9392505050565b6000612c6483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061222d565b905092915050565b6000612cf7826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461222d9092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d8c82600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121c790919063ffffffff16565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612e2c9190613974565b60405180910390a3600190509392505050565b6001601c60006101000a81548160ff0219169083151502179055506000600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000612edc6002612ece601154612ec0600e548761382190919063ffffffff16565b61389b90919063ffffffff16565b61389b90919063ffffffff16565b90506000612ef38284612c2290919063ffffffff16565b90506000600267ffffffffffffffff811115612f1257612f116145b7565b5b604051908082528060200260200182016040528015612f405781602001602082028036833780820191505090505b5090503081600081518110612f5857612f576140f4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061302391906145fb565b81600181518110613037576130366140f4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016130d5959493929190614721565b600060405180830381600087803b1580156130ef57600080fd5b505af1158015613103573d6000803e3d6000fd5b50505050600047905060006131386131276002600e5461389b90919063ffffffff16565b601154612c2290919063ffffffff16565b9050600061317660026131688461315a600e548861382190919063ffffffff16565b61389b90919063ffffffff16565b61389b90919063ffffffff16565b905060006131a183613193600f548761382190919063ffffffff16565b61389b90919063ffffffff16565b905060006131cc846131be6010548861382190919063ffffffff16565b61389b90919063ffffffff16565b90506000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836175309060405161321a906147ac565b600060405180830381858888f193505050503d8060008114613258576040519150601f19603f3d011682016040523d82523d6000602084013e61325d565b606091505b50509050600090506000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683617530906040516132b1906147ac565b600060405180830381858888f193505050503d80600081146132ef576040519150601f19603f3d011682016040523d82523d6000602084013e6132f4565b606091505b505090506000905060008a111561340e57601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308d600080601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161338e969594939291906147c1565b60606040518083038185885af11580156133ac573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906133d19190614837565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858b60405161340592919061488a565b60405180910390a15b50505050505050505050506000601c60006101000a81548160ff021916908315150217905550565b6000806018541415905090565b43601881905550565b613455816138e5565b80156134ab5750601b60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156135015750600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156135195750601c60039054906101000a900460ff165b806136175750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156135c65750601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156135fe57503273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b80156136165750601c60039054906101000a900460ff165b5b15613675576001601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b6000808373ffffffffffffffffffffffffffffffffffffffff16601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146136d9576011546136dd565b6012545b9050600061370760646136f9848761382190919063ffffffff16565b61389b90919063ffffffff16565b905061375b81600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121c790919063ffffffff16565b600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516137fb9190613974565b60405180910390a36138168185612c2290919063ffffffff16565b925050509392505050565b60008083036138335760009050613895565b600082846138419190613fb3565b90508284826138509190614024565b14613890576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161388790614925565b60405180910390fd5b809150505b92915050565b60006138dd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506138f8565b905092915050565b600080823b905060008111915050919050565b6000808311829061393f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139369190613a1f565b60405180910390fd5b506000838561394e9190614024565b9050809150509392505050565b6000819050919050565b61396e8161395b565b82525050565b60006020820190506139896000830184613965565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156139c95780820151818401526020810190506139ae565b60008484015250505050565b6000601f19601f8301169050919050565b60006139f18261398f565b6139fb818561399a565b9350613a0b8185602086016139ab565b613a14816139d5565b840191505092915050565b60006020820190508181036000830152613a3981846139e6565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613a7682613a4b565b9050919050565b613a8681613a6b565b8114613a9157600080fd5b50565b600081359050613aa381613a7d565b92915050565b613ab28161395b565b8114613abd57600080fd5b50565b600081359050613acf81613aa9565b92915050565b60008060408385031215613aec57613aeb613a41565b5b6000613afa85828601613a94565b9250506020613b0b85828601613ac0565b9150509250929050565b60008115159050919050565b613b2a81613b15565b82525050565b6000602082019050613b456000830184613b21565b92915050565b613b5481613b15565b8114613b5f57600080fd5b50565b600081359050613b7181613b4b565b92915050565b600060208284031215613b8d57613b8c613a41565b5b6000613b9b84828501613b62565b91505092915050565b600060208284031215613bba57613bb9613a41565b5b6000613bc884828501613ac0565b91505092915050565b600080600060608486031215613bea57613be9613a41565b5b6000613bf886828701613a94565b9350506020613c0986828701613a94565b9250506040613c1a86828701613ac0565b9150509250925092565b600060ff82169050919050565b613c3a81613c24565b82525050565b6000602082019050613c556000830184613c31565b92915050565b600060208284031215613c7157613c70613a41565b5b6000613c7f84828501613a94565b91505092915050565b60008060408385031215613c9f57613c9e613a41565b5b6000613cad85828601613b62565b9250506020613cbe85828601613a94565b9150509250929050565b60008060408385031215613cdf57613cde613a41565b5b6000613ced85828601613a94565b9250506020613cfe85828601613b62565b9150509250929050565b60008060008060808587031215613d2257613d21613a41565b5b6000613d3087828801613ac0565b9450506020613d4187828801613ac0565b9350506040613d5287828801613ac0565b9250506060613d6387828801613ac0565b91505092959194509250565b613d7881613a6b565b82525050565b6000602082019050613d936000830184613d6f565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112613dbe57613dbd613d99565b5b8235905067ffffffffffffffff811115613ddb57613dda613d9e565b5b602083019150836020820283011115613df757613df6613da3565b5b9250929050565b600080600060408486031215613e1757613e16613a41565b5b600084013567ffffffffffffffff811115613e3557613e34613a46565b5b613e4186828701613da8565b93509350506020613e5486828701613b62565b9150509250925092565b60008060408385031215613e7557613e74613a41565b5b6000613e8385828601613a94565b9250506020613e9485828601613a94565b9150509250929050565b6000819050919050565b6000613ec3613ebe613eb984613a4b565b613e9e565b613a4b565b9050919050565b6000613ed582613ea8565b9050919050565b6000613ee782613eca565b9050919050565b613ef781613edc565b82525050565b6000602082019050613f126000830184613eee565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613f4e60208361399a565b9150613f5982613f18565b602082019050919050565b60006020820190508181036000830152613f7d81613f41565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613fbe8261395b565b9150613fc98361395b565b9250828202613fd78161395b565b91508282048414831517613fee57613fed613f84565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061402f8261395b565b915061403a8361395b565b92508261404a57614049613ff5565b5b828204905092915050565b600060408201905061406a6000830185613d6f565b6140776020830184613965565b9392505050565b60008151905061408d81613b4b565b92915050565b6000602082840312156140a9576140a8613a41565b5b60006140b78482850161407e565b91505092915050565b60006140cb8261395b565b91506140d68361395b565b92508282019050808211156140ee576140ed613f84565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061412e8261395b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036141605761415f613f84565b5b600182019050919050565b7f4d6178206761732073686f756c6420626520686967686572207468616e20372060008201527f6777656900000000000000000000000000000000000000000000000000000000602082015250565b60006141c760248361399a565b91506141d28261416b565b604082019050919050565b600060208201905081810360008301526141f6816141ba565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061425960268361399a565b9150614264826141fd565b604082019050919050565b600060208201905081810360008301526142888161424c565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006142c5601b8361399a565b91506142d08261428f565b602082019050919050565b600060208201905081810360008301526142f4816142b8565b9050919050565b60006143068261395b565b91506143118361395b565b925082820390508181111561432957614328613f84565b5b92915050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b600061436560148361399a565b91506143708261432f565b602082019050919050565b6000602082019050818103600083015261439481614358565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b60006143d160118361399a565b91506143dc8261439b565b602082019050919050565b60006020820190508181036000830152614400816143c4565b9050919050565b7f5a65726f2062616c616e63652076696f6c617465642100000000000000000000600082015250565b600061443d60168361399a565b915061444882614407565b602082019050919050565b6000602082019050818103600083015261446c81614430565b9050919050565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b60006144a9600b8361399a565b91506144b482614473565b602082019050919050565b600060208201905081810360008301526144d88161449c565b9050919050565b7f3e53656c6c206f6e2077616c6c657420616374696f6e00000000000000000000600082015250565b600061451560168361399a565b9150614520826144df565b602082019050919050565b6000602082019050818103600083015261454481614508565b9050919050565b7f4d61782077616c6c65742076696f6c6174656421000000000000000000000000600082015250565b600061458160148361399a565b915061458c8261454b565b602082019050919050565b600060208201905081810360008301526145b081614574565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000815190506145f581613a7d565b92915050565b60006020828403121561461157614610613a41565b5b600061461f848285016145e6565b91505092915050565b6000819050919050565b600061464d61464861464384614628565b613e9e565b61395b565b9050919050565b61465d81614632565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61469881613a6b565b82525050565b60006146aa838361468f565b60208301905092915050565b6000602082019050919050565b60006146ce82614663565b6146d8818561466e565b93506146e38361467f565b8060005b838110156147145781516146fb888261469e565b9750614706836146b6565b9250506001810190506146e7565b5085935050505092915050565b600060a0820190506147366000830188613965565b6147436020830187614654565b818103604083015261475581866146c3565b90506147646060830185613d6f565b6147716080830184613965565b9695505050505050565b600081905092915050565b50565b600061479660008361477b565b91506147a182614786565b600082019050919050565b60006147b782614789565b9150819050919050565b600060c0820190506147d66000830189613d6f565b6147e36020830188613965565b6147f06040830187614654565b6147fd6060830186614654565b61480a6080830185613d6f565b61481760a0830184613965565b979650505050505050565b60008151905061483181613aa9565b92915050565b6000806000606084860312156148505761484f613a41565b5b600061485e86828701614822565b935050602061486f86828701614822565b925050604061488086828701614822565b9150509250925092565b600060408201905061489f6000830185613965565b6148ac6020830184613965565b9392505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061490f60218361399a565b915061491a826148b3565b604082019050919050565b6000602082019050818103600083015261493e81614902565b905091905056fea2646970667358221220d24f270c9c63913f6ca236e28727944363b38464031e135824e716ff220180bb64736f6c63430008110033

Deployed Bytecode Sourcemap

9252:12195:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10912:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12443:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13299:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19945:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12705:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21235:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10282:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14691:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13135:156;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12619:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21053:174;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10066:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9912:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10784:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13523:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19444:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20718:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20051:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10248:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10210:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9781:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20313:397;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12885:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8845:148;;;;;;;;;;;;;:::i;:::-;;9429:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9490:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12799:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10612:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10116:47;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19575:82;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8629:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14506:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20835:210;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10704:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12529:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10172:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10514:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14004:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10542:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10316:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10831:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19774:163;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12996:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19665:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9001:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20178:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10477:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10652:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10574:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10912:54;;;;:::o;12443:78::-;12491:13;12514:5;;;;;;;;;;;;;;;;;12507:12;;12443:78;:::o;13299:216::-;13374:4;13426:6;13391:11;:23;13403:10;13391:23;;;;;;;;;;;;;;;:32;13415:7;13391:32;;;;;;;;;;;;;;;:41;;;;13469:7;13448:37;;13457:10;13448:37;;;13478:6;13448:37;;;;;;:::i;:::-;;;;;;;;13503:4;13496:11;;13299:216;;;;:::o;19945:98::-;8766:12;:10;:12::i;:::-;8756:22;;:6;;;;;;;;;;:22;;;8748:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20026:9:::1;20012:11;;:23;;;;;;;;;;;;;;;;;;19945:98:::0;:::o;12705:86::-;12760:7;12777:12;;12770:19;;12705:86;:::o;21235:207::-;8766:12;:10;:12::i;:::-;8756:22;;:6;;;;;;;;;;:22;;;8748:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21318:17:::1;21338:21;21318:41;;21378:10;21370:28;;:64;21430:3;21411:16;21399:9;:28;;;;:::i;:::-;:34;;;;:::i;:::-;21370:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;21307:135;21235:207:::0;:::o;10282:27::-;;;;:::o;14691:370::-;14791:4;14847:17;14812:11;:19;14824:6;14812:19;;;;;;;;;;;;;;;:31;14832:10;14812:31;;;;;;;;;;;;;;;;:52;14808:188;;14915:69;14951:6;14915:69;;;;;;;;;;;;;;;;;:11;:19;14927:6;14915:19;;;;;;;;;;;;;;;:31;14935:10;14915:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;14881:11;:19;14893:6;14881:19;;;;;;;;;;;;;;;:31;14901:10;14881:31;;;;;;;;;;;;;;;:103;;;;14808:188;15013:40;15027:6;15035:9;15046:6;15013:13;:40::i;:::-;15006:47;;14691:370;;;;;:::o;13135:156::-;13188:7;13215:68;13260:22;13270:11;;;;;;;;;;;13260:9;:22::i;:::-;13215:40;13232:22;13242:11;;;;;;;;;;;13232:9;:22::i;:::-;13215:12;;:16;;:40;;;;:::i;:::-;:44;;:68;;;;:::i;:::-;13208:75;;13135:156;:::o;12619:78::-;12671:5;9362:1;12679:16;;12619:78;:::o;21053:174::-;21138:12;8766;:10;:12::i;:::-;8756:22;;:6;;;;;;;;;;:22;;;8748:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21177:12:::1;21170:29;;;21200:10;21212:6;21170:49;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21163:56;;21053:174:::0;;;;:::o;10066:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;9912:33::-;;;;;;;;;;;;;:::o;10784:40::-;;;;;;;;;;;;;:::o;13523:122::-;13578:4;13602:35;13610:7;13619:17;13602:7;:35::i;:::-;13595:42;;13523:122;;;:::o;19444:119::-;8766:12;:10;:12::i;:::-;8756:22;;:6;;;;;;;;;;:22;;;8748:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19550:5:::1;19527:10;:20;19538:8;19527:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;19444:119:::0;;:::o;20718:99::-;8766:12;:10;:12::i;:::-;8756:22;;:6;;;;;;;;;;:22;;;8748:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20802:7:::1;20786:13;;:23;;;;;;;;;;;;;;;;;;20718:99:::0;:::o;20051:119::-;8766:12;:10;:12::i;:::-;8756:22;;:6;;;;;;;;;;:22;;;8748:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20156:6:::1;20134:11;:19;20146:6;20134:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;20051:119:::0;;:::o;10248:25::-;;;;:::o;10210:31::-;;;;:::o;9781:33::-;;;;:::o;20313:397::-;8766:12;:10;:12::i;:::-;8756:22;;:6;;;;;;;;;;:22;;;8748:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20460:9:::1;20445:12;:24;;;;20495:15;20480:12;:30;;;;20530:9;20521:6;:18;;;;20563:42;20598:6;;20563:30;20580:12;;20563;;:16;;:30;;;;:::i;:::-;:34;;:42;;;;:::i;:::-;20552:8;:53;;;;20647:12;20636:8;;:23;;;;:::i;:::-;20616:17;:43;;;;20699:2;20679:17;;:22;20670:32;;;::::0;::::1;;20313:397:::0;;;;:::o;12885:103::-;12951:7;12968:9;:18;12978:7;12968:18;;;;;;;;;;;;;;;;12961:25;;12885:103;;;:::o;8845:148::-;8766:12;:10;:12::i;:::-;8756:22;;:6;;;;;;;;;;:22;;;8748:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8952:1:::1;8915:40;;8936:6;::::0;::::1;;;;;;;;8915:40;;;;;;;;;;;;8983:1;8966:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;8845:148::o:0;9429:54::-;;;;:::o;9490:52::-;;;;:::o;12799:78::-;12851:7;12868;:5;:7::i;:::-;12861:14;;12799:78;:::o;10612:33::-;;;;;;;;;;;;;:::o;10116:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;19575:82::-;8766:12;:10;:12::i;:::-;8756:22;;:6;;;;;;;;;;:22;;;8748:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19644:5:::1;19634:7;;:15;;;;;;;;;;;;;;;;;;19575:82:::0;:::o;8629:79::-;8667:7;8694:6;;;;;;;;;;;8687:13;;8629:79;:::o;14506:177::-;8766:12;:10;:12::i;:::-;8756:22;;:6;;;;;;;;;;:22;;;8748:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14593:4:::1;14568:14:::0;:22:::1;14583:6;14568:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;14630:4;14608:11;:19;14620:6;14608:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;14671:4;14645:15;:23;14661:6;14645:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;14506:177:::0;:::o;20835:210::-;8766:12;:10;:12::i;:::-;8756:22;;:6;;;;;;;;;;:22;;;8748:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20937:9:::1;20932:106;20952:9;;:16;;20948:1;:20;20932:106;;;21020:6;20990:13;:27;21004:9;;21014:1;21004:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;20990:27;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;20970:3;;;;:::i;:::-;;;20932:106;;;;20835:210:::0;;;:::o;10704:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;12529:82::-;12579:13;12602:7;;;;;;;;;;;;;;;;;12595:14;;12529:82;:::o;10172:31::-;;;;:::o;10514:19::-;;;;;;;;;;;;;:::o;14004:156::-;14084:4;14108:44;14122:10;14134:9;14145:6;14108:13;:44::i;:::-;14101:51;;14004:156;;;;:::o;10542:25::-;;;;:::o;10316:36::-;;;;:::o;10831:45::-;;;;;;;;;;;;;:::o;19774:163::-;8766:12;:10;:12::i;:::-;8756:22;;:6;;;;;;;;;;:22;;;8748:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19855:1:::1;19846:6;:10;19837:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;19923:6;19914;:15;;;;:::i;:::-;19908:3;:21;;;;19774:163:::0;:::o;12996:131::-;13080:7;13097:11;:19;13109:6;13097:19;;;;;;;;;;;;;;;:28;13117:7;13097:28;;;;;;;;;;;;;;;;13090:35;;12996:131;;;;:::o;19665:101::-;8766:12;:10;:12::i;:::-;8756:22;;:6;;;;;;;;;;:22;;;8748:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19750:8:::1;19737:10;:21;;;;19665:101:::0;:::o;9001:244::-;8766:12;:10;:12::i;:::-;8756:22;;:6;;;;;;;;;;:22;;;8748:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9110:1:::1;9090:22;;:8;:22;;::::0;9082:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;9200:8;9171:38;;9192:6;::::0;::::1;;;;;;;;9171:38;;;;;;;;;;;;9229:8;9220:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;9001:244:::0;:::o;20178:127::-;8766:12;:10;:12::i;:::-;8756:22;;:6;;;;;;;;;;:22;;;8748:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20291:6:::1;20265:15;:23;20281:6;20265:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;20178:127:::0;;:::o;10477:30::-;;;;;;;;;;;;;:::o;10652:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;10574:31::-;;;;;;;;;;;;;:::o;6841:179::-;6899:7;6919:9;6935:1;6931;:5;;;;:::i;:::-;6919:17;;6960:1;6955;:6;;6947:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;7011:1;7004:8;;;6841:179;;;;:::o;7969:115::-;8022:15;8065:10;8050:26;;7969:115;:::o;7172:190::-;7258:7;7291:1;7286;:6;;7294:12;7278:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;7318:9;7334:1;7330;:5;;;;:::i;:::-;7318:17;;7353:1;7346:8;;;7172:190;;;;;:::o;15069:1751::-;15161:4;15182:16;;;;;;;;;;;15178:73;;;15208:41;15223:6;15231:9;15242:6;15208:14;:41::i;:::-;15201:48;;;;15178:73;15265:14;:22;15280:6;15265:22;;;;;;;;;;;;;;;;;;;;;;;;;15264:23;:53;;;;;15292:14;:25;15307:9;15292:25;;;;;;;;;;;;;;;;;;;;;;;;;15291:26;15264:53;15261:128;;;15341:11;;;;;;;;;;;15333:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;15261:128;15419:12;;15409:6;:22;;:49;;;;15435:15;:23;15451:6;15435:23;;;;;;;;;;;;;;;;;;;;;;;;;15409:49;15401:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;15509:4;;;;;;;;;;;15495:18;;:10;:18;;;;:39;;;;;15518:16;;;;;;;;;;;15517:17;15495:39;:64;;;;;15538:21;;;;;;;;;;;15495:64;:109;;;;;15591:13;;15563:9;:24;15581:4;15563:24;;;;;;;;;;;;;;;;:41;;15495:109;15491:141;;;15607:23;:21;:23::i;:::-;15491:141;15647:10;:8;:10::i;:::-;15646:11;:32;;;;;15674:4;;;;;;;;;;;15661:17;;:9;:17;;;15646:32;15642:144;;;15723:1;15703:9;:17;15713:6;15703:17;;;;;;;;;;;;;;;;:21;15695:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;15766:8;:6;:8::i;:::-;15642:144;15805:7;;;;;;;;;;;15802:65;;;15828:27;15837:6;15845:9;15828:8;:27::i;:::-;15802:65;15905:13;;;;;;;;;;;15901:91;;;15944:13;:21;15958:6;15944:21;;;;;;;;;;;;;;;;;;;;;;;;;15943:22;15935:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;15901:91;16021:4;;;;;;;;;;;16008:17;;:9;:17;;;:44;;;;;16030:14;:22;16045:6;16030:22;;;;;;;;;;;;;;;;;;;;;;;;;16029:23;16008:44;16004:131;;;16092:3;;16077:11;:18;;16069:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;16004:131;16164:3;;16149:11;:18;;:39;;;;;16184:4;;;;;;;;;;;16171:17;;:9;:17;;;;16149:39;16145:103;;;16232:4;16205:13;:24;16219:9;16205:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;16145:103;16308:53;16330:6;16308:53;;;;;;;;;;;;;;;;;:9;:17;16318:6;16308:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;16288:9;:17;16298:6;16288:17;;;;;;;;;;;;;;;:73;;;;16379:15;:26;16395:9;16379:26;;;;;;;;;;;;;;;;;;;;;;;;;16378:27;:45;;;;;16409:14;;;;;;;;;;;16378:45;16374:157;;;16484:10;;16448:32;16473:6;16448:9;:20;16458:9;16448:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;:46;;16440:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;16374:157;16543:19;16566:11;:19;16578:6;16566:19;;;;;;;;;;;;;;;;;;;;;;;;;16565:20;:47;;;;;16590:11;:22;16602:9;16590:22;;;;;;;;;;;;;;;;;;;;;;;;;16589:23;16565:47;:96;;16655:6;16565:96;;;16615:37;16626:6;16634:9;16645:6;16615:10;:37::i;:::-;16565:96;16543:118;;16695:37;16720:11;16695:9;:20;16705:9;16695:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;16672:9;:20;16682:9;16672:20;;;;;;;;;;;;;;;:60;;;;16767:9;16750:40;;16759:6;16750:40;;;16778:11;16750:40;;;;;;:::i;:::-;;;;;;;;16808:4;16801:11;;;15069:1751;;;;;;:::o;7028:136::-;7086:7;7113:43;7117:1;7120;7113:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;7106:50;;7028:136;;;;:::o;14168:330::-;14261:4;14298:53;14320:6;14298:53;;;;;;;;;;;;;;;;;:9;:17;14308:6;14298:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;14278:9;:17;14288:6;14278:17;;;;;;;;;;;;;;;:73;;;;14385:32;14410:6;14385:9;:20;14395:9;14385:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;14362:9;:20;14372:9;14362:20;;;;;;;;;;;;;;;:55;;;;14450:9;14433:35;;14442:6;14433:35;;;14461:6;14433:35;;;;;;:::i;:::-;;;;;;;;14486:4;14479:11;;14168:330;;;;;:::o;17268:1628::-;11090:4;11071:16;;:23;;;;;;;;;;;;;;;;;;17333::::1;17359:9;:24;17377:4;17359:24;;;;;;;;;;;;;;;;17333:50;;17394:23;17420:54;17472:1;17420:47;17458:8;;17420:33;17440:12;;17420:15;:19;;:33;;;;:::i;:::-;:37;;:47;;;;:::i;:::-;:51;;:54;;;;:::i;:::-;17394:80;;17485:20;17508:36;17528:15;17508;:19;;:36;;;;:::i;:::-;17485:59;;17557:21;17595:1;17581:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17557:40;;17626:4;17608;17613:1;17608:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;17652:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17642:4;17647:1;17642:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;17678:6;;;;;;;;;;;:57;;;17750:12;17777:1;17793:4;17820;17840:15;17678:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;17879:17;17899:21;17879:41;;17933:19;17955:33;17968:19;17985:1;17968:12;;:16;;:19;;;;:::i;:::-;17955:8;;:12;;:33;;;;:::i;:::-;17933:55;;18001:26;18030:51;18079:1;18030:44;18062:11;18030:27;18044:12;;18030:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;18001:80;;18092:26;18121:44;18153:11;18121:27;18135:12;;18121:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;18092:73;;18176:20;18199:38;18225:11;18199:21;18213:6;;18199:9;:13;;:21;;;;:::i;:::-;:25;;:38;;;;:::i;:::-;18176:61;;18259:16;18288:15;;;;;;;;;;;18280:29;;18318:18;18344:5;18280:74;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18258:96;;;18379:5;18365:19;;18398:16;18427:9;;;;;;;;;;;18419:23;;18451:12;18471:5;18419:62;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18397:84;;;18506:5;18492:19;;18546:1;18528:15;:19;18524:365;;;18564:6;;;;;;;;;;;:22;;;18595:18;18641:4;18665:15;18699:1;18719::::0;18739:21:::1;;;;;;;;;;;18779:15;18564:245;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18829:48;18841:18;18861:15;18829:48;;;;;;;:::i;:::-;;;;;;;;18524:365;17322:1574;;;;;;;;;;;11136:5:::0;11117:16;;:24;;;;;;;;;;;;;;;;;;17268:1628::o;13653:90::-;13696:4;13734:1;13720:10;;:15;;13713:22;;13653:90;:::o;13751:71::-;13802:12;13789:10;:25;;;;13751:71::o;18904:306::-;18980:17;18987:9;18980:6;:17::i;:::-;:43;;;;;19002:10;:21;19013:9;19002:21;;;;;;;;;;;;;;;;;;;;;;;;;19001:22;18980:43;:70;;;;;19028:11;:22;19040:9;19028:22;;;;;;;;;;;;;;;;;;;;;;;;;19027:23;18980:70;:81;;;;;19054:7;;;;;;;;;;;18980:81;:160;;;;19075:4;;;;;;;;;;;19065:14;;:6;:14;;;:37;;;;;19084:10;:18;19095:6;19084:18;;;;;;;;;;;;;;;;;;;;;;;;;19083:19;19065:37;:64;;;;;19120:9;19106:23;;:10;:23;;;;19065:64;:75;;;;;19133:7;;;;;;;;;;;19065:75;18980:160;18977:222;;;19183:4;19156:13;:24;19170:9;19156:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;18977:222;18904:306;;:::o;16828:432::-;16917:7;16937:21;16969:9;16961:17;;:4;;;;;;;;;;;:17;;;:48;;17001:8;;16961:48;;;16981:17;;16961:48;16937:72;;17020:17;17040:34;17070:3;17040:25;17051:13;17040:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;17020:54;;17114:39;17143:9;17114;:24;17132:4;17114:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;17087:9;:24;17105:4;17087:24;;;;;;;;;;;;;;;:66;;;;17194:4;17169:42;;17178:6;17169:42;;;17201:9;17169:42;;;;;;:::i;:::-;;;;;;;;17231:21;17242:9;17231:6;:10;;:21;;;;:::i;:::-;17224:28;;;;16828:432;;;;;:::o;7370:222::-;7428:7;7457:1;7452;:6;7448:23;;7468:1;7461:8;;;;7448:23;7481:9;7497:1;7493;:5;;;;:::i;:::-;7481:17;;7526:1;7521;7517;:5;;;;:::i;:::-;:10;7509:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;7583:1;7576:8;;;7370:222;;;;;:::o;7600:132::-;7658:7;7685:39;7689:1;7692;7685:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;7678:46;;7600:132;;;;:::o;19218:185::-;19271:4;19288:9;19353:4;19341:17;19333:25;;19394:1;19387:4;:8;19380:15;;;19218:185;;;:::o;7740:189::-;7826:7;7858:1;7854;:5;7861:12;7846:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;7885:9;7901:1;7897;:5;;;;:::i;:::-;7885:17;;7920:1;7913:8;;;7740:189;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1865:117::-;1974:1;1971;1964:12;1988:117;2097:1;2094;2087:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:116::-;3868:21;3883:5;3868:21;:::i;:::-;3861:5;3858:32;3848:60;;3904:1;3901;3894:12;3848:60;3798:116;:::o;3920:133::-;3963:5;4001:6;3988:20;3979:29;;4017:30;4041:5;4017:30;:::i;:::-;3920:133;;;;:::o;4059:323::-;4115:6;4164:2;4152:9;4143:7;4139:23;4135:32;4132:119;;;4170:79;;:::i;:::-;4132:119;4290:1;4315:50;4357:7;4348:6;4337:9;4333:22;4315:50;:::i;:::-;4305:60;;4261:114;4059:323;;;;:::o;4388:329::-;4447:6;4496:2;4484:9;4475:7;4471:23;4467:32;4464:119;;;4502:79;;:::i;:::-;4464:119;4622:1;4647:53;4692:7;4683:6;4672:9;4668:22;4647:53;:::i;:::-;4637:63;;4593:117;4388:329;;;;:::o;4723:619::-;4800:6;4808;4816;4865:2;4853:9;4844:7;4840:23;4836:32;4833:119;;;4871:79;;:::i;:::-;4833:119;4991:1;5016:53;5061:7;5052:6;5041:9;5037:22;5016:53;:::i;:::-;5006:63;;4962:117;5118:2;5144:53;5189:7;5180:6;5169:9;5165:22;5144:53;:::i;:::-;5134:63;;5089:118;5246:2;5272:53;5317:7;5308:6;5297:9;5293:22;5272:53;:::i;:::-;5262:63;;5217:118;4723:619;;;;;:::o;5348:86::-;5383:7;5423:4;5416:5;5412:16;5401:27;;5348:86;;;:::o;5440:112::-;5523:22;5539:5;5523:22;:::i;:::-;5518:3;5511:35;5440:112;;:::o;5558:214::-;5647:4;5685:2;5674:9;5670:18;5662:26;;5698:67;5762:1;5751:9;5747:17;5738:6;5698:67;:::i;:::-;5558:214;;;;:::o;5778:329::-;5837:6;5886:2;5874:9;5865:7;5861:23;5857:32;5854:119;;;5892:79;;:::i;:::-;5854:119;6012:1;6037:53;6082:7;6073:6;6062:9;6058:22;6037:53;:::i;:::-;6027:63;;5983:117;5778:329;;;;:::o;6113:468::-;6178:6;6186;6235:2;6223:9;6214:7;6210:23;6206:32;6203:119;;;6241:79;;:::i;:::-;6203:119;6361:1;6386:50;6428:7;6419:6;6408:9;6404:22;6386:50;:::i;:::-;6376:60;;6332:114;6485:2;6511:53;6556:7;6547:6;6536:9;6532:22;6511:53;:::i;:::-;6501:63;;6456:118;6113:468;;;;;:::o;6587:::-;6652:6;6660;6709:2;6697:9;6688:7;6684:23;6680:32;6677:119;;;6715:79;;:::i;:::-;6677:119;6835:1;6860:53;6905:7;6896:6;6885:9;6881:22;6860:53;:::i;:::-;6850:63;;6806:117;6962:2;6988:50;7030:7;7021:6;7010:9;7006:22;6988:50;:::i;:::-;6978:60;;6933:115;6587:468;;;;;:::o;7061:765::-;7147:6;7155;7163;7171;7220:3;7208:9;7199:7;7195:23;7191:33;7188:120;;;7227:79;;:::i;:::-;7188:120;7347:1;7372:53;7417:7;7408:6;7397:9;7393:22;7372:53;:::i;:::-;7362:63;;7318:117;7474:2;7500:53;7545:7;7536:6;7525:9;7521:22;7500:53;:::i;:::-;7490:63;;7445:118;7602:2;7628:53;7673:7;7664:6;7653:9;7649:22;7628:53;:::i;:::-;7618:63;;7573:118;7730:2;7756:53;7801:7;7792:6;7781:9;7777:22;7756:53;:::i;:::-;7746:63;;7701:118;7061:765;;;;;;;:::o;7832:118::-;7919:24;7937:5;7919:24;:::i;:::-;7914:3;7907:37;7832:118;;:::o;7956:222::-;8049:4;8087:2;8076:9;8072:18;8064:26;;8100:71;8168:1;8157:9;8153:17;8144:6;8100:71;:::i;:::-;7956:222;;;;:::o;8184:117::-;8293:1;8290;8283:12;8307:117;8416:1;8413;8406:12;8430:117;8539:1;8536;8529:12;8570:568;8643:8;8653:6;8703:3;8696:4;8688:6;8684:17;8680:27;8670:122;;8711:79;;:::i;:::-;8670:122;8824:6;8811:20;8801:30;;8854:18;8846:6;8843:30;8840:117;;;8876:79;;:::i;:::-;8840:117;8990:4;8982:6;8978:17;8966:29;;9044:3;9036:4;9028:6;9024:17;9014:8;9010:32;9007:41;9004:128;;;9051:79;;:::i;:::-;9004:128;8570:568;;;;;:::o;9144:698::-;9236:6;9244;9252;9301:2;9289:9;9280:7;9276:23;9272:32;9269:119;;;9307:79;;:::i;:::-;9269:119;9455:1;9444:9;9440:17;9427:31;9485:18;9477:6;9474:30;9471:117;;;9507:79;;:::i;:::-;9471:117;9620:80;9692:7;9683:6;9672:9;9668:22;9620:80;:::i;:::-;9602:98;;;;9398:312;9749:2;9775:50;9817:7;9808:6;9797:9;9793:22;9775:50;:::i;:::-;9765:60;;9720:115;9144:698;;;;;:::o;9848:474::-;9916:6;9924;9973:2;9961:9;9952:7;9948:23;9944:32;9941:119;;;9979:79;;:::i;:::-;9941:119;10099:1;10124:53;10169:7;10160:6;10149:9;10145:22;10124:53;:::i;:::-;10114:63;;10070:117;10226:2;10252:53;10297:7;10288:6;10277:9;10273:22;10252:53;:::i;:::-;10242:63;;10197:118;9848:474;;;;;:::o;10328:60::-;10356:3;10377:5;10370:12;;10328:60;;;:::o;10394:142::-;10444:9;10477:53;10495:34;10504:24;10522:5;10504:24;:::i;:::-;10495:34;:::i;:::-;10477:53;:::i;:::-;10464:66;;10394:142;;;:::o;10542:126::-;10592:9;10625:37;10656:5;10625:37;:::i;:::-;10612:50;;10542:126;;;:::o;10674:150::-;10748:9;10781:37;10812:5;10781:37;:::i;:::-;10768:50;;10674:150;;;:::o;10830:179::-;10941:61;10996:5;10941:61;:::i;:::-;10936:3;10929:74;10830:179;;:::o;11015:270::-;11132:4;11170:2;11159:9;11155:18;11147:26;;11183:95;11275:1;11264:9;11260:17;11251:6;11183:95;:::i;:::-;11015:270;;;;:::o;11291:182::-;11431:34;11427:1;11419:6;11415:14;11408:58;11291:182;:::o;11479:366::-;11621:3;11642:67;11706:2;11701:3;11642:67;:::i;:::-;11635:74;;11718:93;11807:3;11718:93;:::i;:::-;11836:2;11831:3;11827:12;11820:19;;11479:366;;;:::o;11851:419::-;12017:4;12055:2;12044:9;12040:18;12032:26;;12104:9;12098:4;12094:20;12090:1;12079:9;12075:17;12068:47;12132:131;12258:4;12132:131;:::i;:::-;12124:139;;11851:419;;;:::o;12276:180::-;12324:77;12321:1;12314:88;12421:4;12418:1;12411:15;12445:4;12442:1;12435:15;12462:410;12502:7;12525:20;12543:1;12525:20;:::i;:::-;12520:25;;12559:20;12577:1;12559:20;:::i;:::-;12554:25;;12614:1;12611;12607:9;12636:30;12654:11;12636:30;:::i;:::-;12625:41;;12815:1;12806:7;12802:15;12799:1;12796:22;12776:1;12769:9;12749:83;12726:139;;12845:18;;:::i;:::-;12726:139;12510:362;12462:410;;;;:::o;12878:180::-;12926:77;12923:1;12916:88;13023:4;13020:1;13013:15;13047:4;13044:1;13037:15;13064:185;13104:1;13121:20;13139:1;13121:20;:::i;:::-;13116:25;;13155:20;13173:1;13155:20;:::i;:::-;13150:25;;13194:1;13184:35;;13199:18;;:::i;:::-;13184:35;13241:1;13238;13234:9;13229:14;;13064:185;;;;:::o;13255:332::-;13376:4;13414:2;13403:9;13399:18;13391:26;;13427:71;13495:1;13484:9;13480:17;13471:6;13427:71;:::i;:::-;13508:72;13576:2;13565:9;13561:18;13552:6;13508:72;:::i;:::-;13255:332;;;;;:::o;13593:137::-;13647:5;13678:6;13672:13;13663:22;;13694:30;13718:5;13694:30;:::i;:::-;13593:137;;;;:::o;13736:345::-;13803:6;13852:2;13840:9;13831:7;13827:23;13823:32;13820:119;;;13858:79;;:::i;:::-;13820:119;13978:1;14003:61;14056:7;14047:6;14036:9;14032:22;14003:61;:::i;:::-;13993:71;;13949:125;13736:345;;;;:::o;14087:191::-;14127:3;14146:20;14164:1;14146:20;:::i;:::-;14141:25;;14180:20;14198:1;14180:20;:::i;:::-;14175:25;;14223:1;14220;14216:9;14209:16;;14244:3;14241:1;14238:10;14235:36;;;14251:18;;:::i;:::-;14235:36;14087:191;;;;:::o;14284:180::-;14332:77;14329:1;14322:88;14429:4;14426:1;14419:15;14453:4;14450:1;14443:15;14470:233;14509:3;14532:24;14550:5;14532:24;:::i;:::-;14523:33;;14578:66;14571:5;14568:77;14565:103;;14648:18;;:::i;:::-;14565:103;14695:1;14688:5;14684:13;14677:20;;14470:233;;;:::o;14709:223::-;14849:34;14845:1;14837:6;14833:14;14826:58;14918:6;14913:2;14905:6;14901:15;14894:31;14709:223;:::o;14938:366::-;15080:3;15101:67;15165:2;15160:3;15101:67;:::i;:::-;15094:74;;15177:93;15266:3;15177:93;:::i;:::-;15295:2;15290:3;15286:12;15279:19;;14938:366;;;:::o;15310:419::-;15476:4;15514:2;15503:9;15499:18;15491:26;;15563:9;15557:4;15553:20;15549:1;15538:9;15534:17;15527:47;15591:131;15717:4;15591:131;:::i;:::-;15583:139;;15310:419;;;:::o;15735:225::-;15875:34;15871:1;15863:6;15859:14;15852:58;15944:8;15939:2;15931:6;15927:15;15920:33;15735:225;:::o;15966:366::-;16108:3;16129:67;16193:2;16188:3;16129:67;:::i;:::-;16122:74;;16205:93;16294:3;16205:93;:::i;:::-;16323:2;16318:3;16314:12;16307:19;;15966:366;;;:::o;16338:419::-;16504:4;16542:2;16531:9;16527:18;16519:26;;16591:9;16585:4;16581:20;16577:1;16566:9;16562:17;16555:47;16619:131;16745:4;16619:131;:::i;:::-;16611:139;;16338:419;;;:::o;16763:177::-;16903:29;16899:1;16891:6;16887:14;16880:53;16763:177;:::o;16946:366::-;17088:3;17109:67;17173:2;17168:3;17109:67;:::i;:::-;17102:74;;17185:93;17274:3;17185:93;:::i;:::-;17303:2;17298:3;17294:12;17287:19;;16946:366;;;:::o;17318:419::-;17484:4;17522:2;17511:9;17507:18;17499:26;;17571:9;17565:4;17561:20;17557:1;17546:9;17542:17;17535:47;17599:131;17725:4;17599:131;:::i;:::-;17591:139;;17318:419;;;:::o;17743:194::-;17783:4;17803:20;17821:1;17803:20;:::i;:::-;17798:25;;17837:20;17855:1;17837:20;:::i;:::-;17832:25;;17881:1;17878;17874:9;17866:17;;17905:1;17899:4;17896:11;17893:37;;;17910:18;;:::i;:::-;17893:37;17743:194;;;;:::o;17943:170::-;18083:22;18079:1;18071:6;18067:14;18060:46;17943:170;:::o;18119:366::-;18261:3;18282:67;18346:2;18341:3;18282:67;:::i;:::-;18275:74;;18358:93;18447:3;18358:93;:::i;:::-;18476:2;18471:3;18467:12;18460:19;;18119:366;;;:::o;18491:419::-;18657:4;18695:2;18684:9;18680:18;18672:26;;18744:9;18738:4;18734:20;18730:1;18719:9;18715:17;18708:47;18772:131;18898:4;18772:131;:::i;:::-;18764:139;;18491:419;;;:::o;18916:167::-;19056:19;19052:1;19044:6;19040:14;19033:43;18916:167;:::o;19089:366::-;19231:3;19252:67;19316:2;19311:3;19252:67;:::i;:::-;19245:74;;19328:93;19417:3;19328:93;:::i;:::-;19446:2;19441:3;19437:12;19430:19;;19089:366;;;:::o;19461:419::-;19627:4;19665:2;19654:9;19650:18;19642:26;;19714:9;19708:4;19704:20;19700:1;19689:9;19685:17;19678:47;19742:131;19868:4;19742:131;:::i;:::-;19734:139;;19461:419;;;:::o;19886:172::-;20026:24;20022:1;20014:6;20010:14;20003:48;19886:172;:::o;20064:366::-;20206:3;20227:67;20291:2;20286:3;20227:67;:::i;:::-;20220:74;;20303:93;20392:3;20303:93;:::i;:::-;20421:2;20416:3;20412:12;20405:19;;20064:366;;;:::o;20436:419::-;20602:4;20640:2;20629:9;20625:18;20617:26;;20689:9;20683:4;20679:20;20675:1;20664:9;20660:17;20653:47;20717:131;20843:4;20717:131;:::i;:::-;20709:139;;20436:419;;;:::o;20861:161::-;21001:13;20997:1;20989:6;20985:14;20978:37;20861:161;:::o;21028:366::-;21170:3;21191:67;21255:2;21250:3;21191:67;:::i;:::-;21184:74;;21267:93;21356:3;21267:93;:::i;:::-;21385:2;21380:3;21376:12;21369:19;;21028:366;;;:::o;21400:419::-;21566:4;21604:2;21593:9;21589:18;21581:26;;21653:9;21647:4;21643:20;21639:1;21628:9;21624:17;21617:47;21681:131;21807:4;21681:131;:::i;:::-;21673:139;;21400:419;;;:::o;21825:172::-;21965:24;21961:1;21953:6;21949:14;21942:48;21825:172;:::o;22003:366::-;22145:3;22166:67;22230:2;22225:3;22166:67;:::i;:::-;22159:74;;22242:93;22331:3;22242:93;:::i;:::-;22360:2;22355:3;22351:12;22344:19;;22003:366;;;:::o;22375:419::-;22541:4;22579:2;22568:9;22564:18;22556:26;;22628:9;22622:4;22618:20;22614:1;22603:9;22599:17;22592:47;22656:131;22782:4;22656:131;:::i;:::-;22648:139;;22375:419;;;:::o;22800:170::-;22940:22;22936:1;22928:6;22924:14;22917:46;22800:170;:::o;22976:366::-;23118:3;23139:67;23203:2;23198:3;23139:67;:::i;:::-;23132:74;;23215:93;23304:3;23215:93;:::i;:::-;23333:2;23328:3;23324:12;23317:19;;22976:366;;;:::o;23348:419::-;23514:4;23552:2;23541:9;23537:18;23529:26;;23601:9;23595:4;23591:20;23587:1;23576:9;23572:17;23565:47;23629:131;23755:4;23629:131;:::i;:::-;23621:139;;23348:419;;;:::o;23773:180::-;23821:77;23818:1;23811:88;23918:4;23915:1;23908:15;23942:4;23939:1;23932:15;23959:143;24016:5;24047:6;24041:13;24032:22;;24063:33;24090:5;24063:33;:::i;:::-;23959:143;;;;:::o;24108:351::-;24178:6;24227:2;24215:9;24206:7;24202:23;24198:32;24195:119;;;24233:79;;:::i;:::-;24195:119;24353:1;24378:64;24434:7;24425:6;24414:9;24410:22;24378:64;:::i;:::-;24368:74;;24324:128;24108:351;;;;:::o;24465:85::-;24510:7;24539:5;24528:16;;24465:85;;;:::o;24556:158::-;24614:9;24647:61;24665:42;24674:32;24700:5;24674:32;:::i;:::-;24665:42;:::i;:::-;24647:61;:::i;:::-;24634:74;;24556:158;;;:::o;24720:147::-;24815:45;24854:5;24815:45;:::i;:::-;24810:3;24803:58;24720:147;;:::o;24873:114::-;24940:6;24974:5;24968:12;24958:22;;24873:114;;;:::o;24993:184::-;25092:11;25126:6;25121:3;25114:19;25166:4;25161:3;25157:14;25142:29;;24993:184;;;;:::o;25183:132::-;25250:4;25273:3;25265:11;;25303:4;25298:3;25294:14;25286:22;;25183:132;;;:::o;25321:108::-;25398:24;25416:5;25398:24;:::i;:::-;25393:3;25386:37;25321:108;;:::o;25435:179::-;25504:10;25525:46;25567:3;25559:6;25525:46;:::i;:::-;25603:4;25598:3;25594:14;25580:28;;25435:179;;;;:::o;25620:113::-;25690:4;25722;25717:3;25713:14;25705:22;;25620:113;;;:::o;25769:732::-;25888:3;25917:54;25965:5;25917:54;:::i;:::-;25987:86;26066:6;26061:3;25987:86;:::i;:::-;25980:93;;26097:56;26147:5;26097:56;:::i;:::-;26176:7;26207:1;26192:284;26217:6;26214:1;26211:13;26192:284;;;26293:6;26287:13;26320:63;26379:3;26364:13;26320:63;:::i;:::-;26313:70;;26406:60;26459:6;26406:60;:::i;:::-;26396:70;;26252:224;26239:1;26236;26232:9;26227:14;;26192:284;;;26196:14;26492:3;26485:10;;25893:608;;;25769:732;;;;:::o;26507:831::-;26770:4;26808:3;26797:9;26793:19;26785:27;;26822:71;26890:1;26879:9;26875:17;26866:6;26822:71;:::i;:::-;26903:80;26979:2;26968:9;26964:18;26955:6;26903:80;:::i;:::-;27030:9;27024:4;27020:20;27015:2;27004:9;27000:18;26993:48;27058:108;27161:4;27152:6;27058:108;:::i;:::-;27050:116;;27176:72;27244:2;27233:9;27229:18;27220:6;27176:72;:::i;:::-;27258:73;27326:3;27315:9;27311:19;27302:6;27258:73;:::i;:::-;26507:831;;;;;;;;:::o;27344:147::-;27445:11;27482:3;27467:18;;27344:147;;;;:::o;27497:114::-;;:::o;27617:398::-;27776:3;27797:83;27878:1;27873:3;27797:83;:::i;:::-;27790:90;;27889:93;27978:3;27889:93;:::i;:::-;28007:1;28002:3;27998:11;27991:18;;27617:398;;;:::o;28021:379::-;28205:3;28227:147;28370:3;28227:147;:::i;:::-;28220:154;;28391:3;28384:10;;28021:379;;;:::o;28406:807::-;28655:4;28693:3;28682:9;28678:19;28670:27;;28707:71;28775:1;28764:9;28760:17;28751:6;28707:71;:::i;:::-;28788:72;28856:2;28845:9;28841:18;28832:6;28788:72;:::i;:::-;28870:80;28946:2;28935:9;28931:18;28922:6;28870:80;:::i;:::-;28960;29036:2;29025:9;29021:18;29012:6;28960:80;:::i;:::-;29050:73;29118:3;29107:9;29103:19;29094:6;29050:73;:::i;:::-;29133;29201:3;29190:9;29186:19;29177:6;29133:73;:::i;:::-;28406:807;;;;;;;;;:::o;29219:143::-;29276:5;29307:6;29301:13;29292:22;;29323:33;29350:5;29323:33;:::i;:::-;29219:143;;;;:::o;29368:663::-;29456:6;29464;29472;29521:2;29509:9;29500:7;29496:23;29492:32;29489:119;;;29527:79;;:::i;:::-;29489:119;29647:1;29672:64;29728:7;29719:6;29708:9;29704:22;29672:64;:::i;:::-;29662:74;;29618:128;29785:2;29811:64;29867:7;29858:6;29847:9;29843:22;29811:64;:::i;:::-;29801:74;;29756:129;29924:2;29950:64;30006:7;29997:6;29986:9;29982:22;29950:64;:::i;:::-;29940:74;;29895:129;29368:663;;;;;:::o;30037:332::-;30158:4;30196:2;30185:9;30181:18;30173:26;;30209:71;30277:1;30266:9;30262:17;30253:6;30209:71;:::i;:::-;30290:72;30358:2;30347:9;30343:18;30334:6;30290:72;:::i;:::-;30037:332;;;;;:::o;30375:220::-;30515:34;30511:1;30503:6;30499:14;30492:58;30584:3;30579:2;30571:6;30567:15;30560:28;30375:220;:::o;30601:366::-;30743:3;30764:67;30828:2;30823:3;30764:67;:::i;:::-;30757:74;;30840:93;30929:3;30840:93;:::i;:::-;30958:2;30953:3;30949:12;30942:19;;30601:366;;;:::o;30973:419::-;31139:4;31177:2;31166:9;31162:18;31154:26;;31226:9;31220:4;31216:20;31212:1;31201:9;31197:17;31190:47;31254:131;31380:4;31254:131;:::i;:::-;31246:139;;30973:419;;;:::o

Swarm Source

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