ETH Price: $3,826.73 (+4.73%)

Token

ERC-20: Yakuza Inu (YAK)
 

Overview

Max Total Supply

100,000,000 YAK

Holders

88

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,170,108.107909589 YAK

Value
$0.00
0xB1c96ae71917b2e0470a51EC7377c00E6b68497c
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:
YAKUZAINU

Compiler Version
v0.8.14+commit.80d49f37

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/*


██╗░░░██╗░█████╗░██╗░░██╗██╗░░░██╗███████╗░█████╗░  ██╗███╗░░██╗██╗░░░██╗
╚██╗░██╔╝██╔══██╗██║░██╔╝██║░░░██║╚════██║██╔══██╗  ██║████╗░██║██║░░░██║
░╚████╔╝░███████║█████═╝░██║░░░██║░░███╔═╝███████║  ██║██╔██╗██║██║░░░██║
░░╚██╔╝░░██╔══██║██╔═██╗░██║░░░██║██╔══╝░░██╔══██║  ██║██║╚████║██║░░░██║
░░░██║░░░██║░░██║██║░╚██╗╚██████╔╝███████╗██║░░██║  ██║██║░╚███║╚██████╔╝
░░░╚═╝░░░╚═╝░░╚═╝╚═╝░░╚═╝░╚═════╝░╚══════╝╚═╝░░╚═╝  ╚═╝╚═╝░░╚══╝░╚═════╝░

Telegram: t.me/TheYakuzaInu
Twitter: twitter.com/TheYakuzaInu
Website: https://theyakuzainu.com
Medium: https://medium.com/@theyakuzainu/yakuza-inu-conc


*/


// SPDX-License-Identifier: Unlicensed


pragma solidity ^0.8.14;

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

interface ERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

abstract contract 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 public _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;
    }
}

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

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

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

interface InterfaceLP {
    function sync() external;
}

contract YAKUZAINU is Ownable, ERC20 {
    using SafeMath for uint256;

    address WETH;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;
    

    string constant _name = "Yakuza Inu";
    string constant _symbol = "YAK";
    uint8 constant _decimals = 9; 

    uint256 _totalSupply = 1 * 10**8 * 10**_decimals;

    uint256 public _maxTxAmount = _totalSupply.mul(15).div(1000);
    uint256 public _maxWalletToken = _totalSupply.mul(15).div(1000);

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

   

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

    uint256 private liquidityFee    = 1;
    uint256 private marketingFee    = 3;
    uint256 private kobunvoltFee    = 1;
    uint256 private ecosystemFee    = 0; 
    uint256 private burnFee      = 0;
    uint256 public totalFee         = ecosystemFee + marketingFee + liquidityFee + kobunvoltFee + burnFee;
    uint256 private feeDenominator  = 100;

    uint256 sellMultiplier = 1900;
    uint256 buyMultiplier = 1000;
    uint256 transferMultiplier = 1000; 

    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private kobunvoltFeeReceiver;
    address private ecosystemFeeReceiver;
    address private burnFeeReceiver;

    uint256 targetLiquidity = 60;
    uint256 targetLiquidityDenominator = 100;

    IDEXRouter public router;
    InterfaceLP private pairContract;
    address public pair;
    
    bool public TradingOpen = false;    

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 20 / 1000; 
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }
    
    constructor () {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        pairContract = InterfaceLP(pair);
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[kobunvoltFeeReceiver] = true;
            
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[kobunvoltFeeReceiver] = true;
        isTxLimitExempt[marketingFeeReceiver] = true;
        isTxLimitExempt[address(this)] = true;
        
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0x62A5655C8576c8Ff89C4735e7b5659596e969065;
        kobunvoltFeeReceiver = msg.sender;
        ecosystemFeeReceiver = msg.sender;
        burnFeeReceiver = DEAD; 

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

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) {return owner();}
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

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

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

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

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

        return _transferFrom(sender, recipient, amount);
    }

        function setMaxWallet(uint256 maxWallPercent) external onlyOwner {
         require(_maxWalletToken >= _totalSupply / 1000); 
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 1000;
                
    }

    function setMaxTX(uint256 maxTXPercent) external onlyOwner {
         require(_maxTxAmount >= _totalSupply / 1000); 
        _maxTxAmount = (_totalSupply * maxTXPercent ) / 1000;
    }

  
    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(!authorizations[sender] && !authorizations[recipient]){
            require(TradingOpen,"Trading not open yet");
        
           }
        
        
        
        if (!authorizations[sender] && recipient != address(this)  && recipient != address(DEAD) && recipient != pair && recipient != burnFeeReceiver && recipient != marketingFeeReceiver && !isTxLimitExempt[recipient]){
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");}

        // Checks max transaction limit
        checkTxLimit(sender, amount); 

        if(shouldSwapBack()){ swapBack(); }
                    
         //Exchange tokens
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = (isFeeExempt[sender] || isFeeExempt[recipient]) ? amount : takeFee(sender, amount, recipient);
        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    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 checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
    }

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

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        
        uint256 multiplier = transferMultiplier;

        if(recipient == pair) {
            multiplier = sellMultiplier;
        } else if(sender == pair) {
            multiplier = buyMultiplier;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100);
        uint256 burnTokens = feeAmount.mul(burnFee).div(totalFee);
        uint256 contractTokens = feeAmount.sub(burnTokens);

        _balances[address(this)] = _balances[address(this)].add(contractTokens);
        _balances[burnFeeReceiver] = _balances[burnFeeReceiver].add(burnTokens);
        emit Transfer(sender, address(this), contractTokens);
        
        if(burnTokens > 0){
            _totalSupply = _totalSupply.sub(burnTokens);
            emit Transfer(sender, ZERO, burnTokens);  
        }

        return amount.sub(feeAmount);
    }

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

    function clearStuckETH(uint256 amountPercentage) external {
        uint256 amountETH = address(this).balance;
        payable(marketingFeeReceiver).transfer(amountETH * amountPercentage / 100);
    }

     function manualSwapback() external onlyOwner {
           swapBack();
    
    }

    function removelimits() external onlyOwner { 
        _maxWalletToken = _totalSupply;
        _maxTxAmount = _totalSupply;

    }

    function manualTransfer() external { 
        require(isTxLimitExempt[msg.sender]);
        payable(msg.sender).transfer(address(this).balance);

    }

    function clearForeignToken(address tokenAddress, uint256 tokens) public returns (bool) {
        require(isTxLimitExempt[msg.sender]);
     if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
        return ERC20(tokenAddress).transfer(msg.sender, tokens);
    }

    function setFeePercent(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner {
        sellMultiplier = _sell;
        buyMultiplier = _buy;
        transferMultiplier = _trans;    
          
    }

    function openTrading() public onlyOwner {
        TradingOpen = true;
    }

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

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

        uint256 balanceBefore = address(this).balance;

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

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

        uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2));
        
        uint256 amountETHLiquidity = amountETH.mul(dynamicLiquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
        uint256 amountETHecosystem = amountETH.mul(ecosystemFee).div(totalETHFee);
        uint256 amountETHkobunvolt = amountETH.mul(kobunvoltFee).div(totalETHFee);

        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}("");
        (tmpSuccess,) = payable(kobunvoltFeeReceiver).call{value: amountETHkobunvolt}("");
        (tmpSuccess,) = payable(ecosystemFeeReceiver).call{value: amountETHecosystem}("");
        
        tmpSuccess = false;

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

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

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

    function setFeeAllocation(uint256 _liquidityFee, uint256 _ecosystemFee, uint256 _marketingFee, uint256 _kobunvoltFee, uint256 _burnFee, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        ecosystemFee = _ecosystemFee;
        marketingFee = _marketingFee;
        kobunvoltFee = _kobunvoltFee;
        burnFee = _burnFee;
        totalFee = _liquidityFee.add(_ecosystemFee).add(_marketingFee).add(_kobunvoltFee).add(_burnFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator / 5, "Fees can not be more than 20%"); 
    }

    function setWallets(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _kobunvoltFeeReceiver, address _burnFeeReceiver, address _ecosystemFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        kobunvoltFeeReceiver = _kobunvoltFeeReceiver;
        burnFeeReceiver = _burnFeeReceiver;
        ecosystemFeeReceiver = _ecosystemFeeReceiver;
    }

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

    function setRatio(uint256 _target, uint256 _denominator) external onlyOwner {
        targetLiquidity = _target;
        targetLiquidityDenominator = _denominator;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

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

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

   function multiAirdrop(address from, address[] calldata addresses, uint256[] calldata tokens) external onlyOwner {

    require(addresses.length < 501,"GAS Error: max airdrop limit is 500 addresses");
    require(addresses.length == tokens.length,"Mismatch between Address and token count");

    uint256 Antibot = 0;

    for(uint i=0; i < addresses.length; i++){
        Antibot = Antibot + tokens[i];
    }

    require(balanceOf(from) >= Antibot, "Not enough tokens in wallet");

    for(uint i=0; i < addresses.length; i++){
        _basicTransfer(from,addresses[i],tokens[i]);
    }
}


event AutoLiquify(uint256 amountETH, uint256 amountTokens);

}

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":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","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":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearForeignToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"configSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwapback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"tokens","type":"uint256[]"}],"name":"multiAirdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removelimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_ecosystemFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_kobunvoltFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFeeAllocation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setMarketMaker","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercent","type":"uint256"}],"name":"setMaxTX","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setRatio","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setTXExemptOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_kobunvoltFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_ecosystemFeeReceiver","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000099919062000ef5565b6305f5e100620000aa919062000f46565b600555620000e56103e8620000d1600f60055462000c1660201b620023211790919060201c565b62000c9960201b6200239b1790919060201c565b600655620001206103e86200010c600f60055462000c1660201b620023211790919060201c565b62000c9960201b6200239b1790919060201c565b6007556001600c556003600d556001600e556000600f556000601055601054600e54600c54600d54600f5462000157919062000fa7565b62000163919062000fa7565b6200016f919062000fa7565b6200017b919062000fa7565b601155606460125561076c6013556103e86014556103e8601555603c601b556064601c556000601f60146101000a81548160ff0219169083151502179055506001601f60156101000a81548160ff0219169083151502179055506103e86014600554620001e9919062000f46565b620001f5919062001033565b6020553480156200020557600080fd5b5060006200021862000ceb60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003f1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004179190620010d5565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004c5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004eb9190620010d5565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200054992919062001118565b6020604051808303816000875af115801562000569573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200058f9190620010d5565b601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507362a5655c8576c8ff89c4735e7b5659596e969065601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600554600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60055460405162000c08919062001156565b60405180910390a3620012d3565b600080830362000c2a576000905062000c93565b6000828462000c3a919062000f46565b905082848262000c4b919062001033565b1462000c8e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c8590620011fa565b60405180910390fd5b809150505b92915050565b600062000ce383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000cf360201b60201c565b905092915050565b600033905090565b6000808311829062000d3d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000d349190620012af565b60405180910390fd5b506000838562000d4e919062001033565b9050809150509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000de95780860481111562000dc15762000dc062000d5b565b5b600185161562000dd15780820291505b808102905062000de18562000d8a565b945062000da1565b94509492505050565b60008262000e04576001905062000ed7565b8162000e14576000905062000ed7565b816001811462000e2d576002811462000e385762000e6e565b600191505062000ed7565b60ff84111562000e4d5762000e4c62000d5b565b5b8360020a91508482111562000e675762000e6662000d5b565b5b5062000ed7565b5060208310610133831016604e8410600b841016171562000ea85782820a90508381111562000ea25762000ea162000d5b565b5b62000ed7565b62000eb7848484600162000d97565b9250905081840481111562000ed15762000ed062000d5b565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000f028262000ede565b915062000f0f8362000ee8565b925062000f3e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000df2565b905092915050565b600062000f538262000ede565b915062000f608362000ede565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000f9c5762000f9b62000d5b565b5b828202905092915050565b600062000fb48262000ede565b915062000fc18362000ede565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000ff95762000ff862000d5b565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620010408262000ede565b91506200104d8362000ede565b92508262001060576200105f62001004565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200109d8262001070565b9050919050565b620010af8162001090565b8114620010bb57600080fd5b50565b600081519050620010cf81620010a4565b92915050565b600060208284031215620010ee57620010ed6200106b565b5b6000620010fe84828501620010be565b91505092915050565b620011128162001090565b82525050565b60006040820190506200112f600083018562001107565b6200113e602083018462001107565b9392505050565b620011508162000ede565b82525050565b60006020820190506200116d600083018462001145565b92915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000620011e260218362001173565b9150620011ef8262001184565b604082019050919050565b600060208201905081810360008301526200121581620011d3565b9050919050565b600081519050919050565b60005b83811015620012475780820151818401526020810190506200122a565b8381111562001257576000848401525b50505050565b6000601f19601f8301169050919050565b60006200127b826200121c565b62001287818562001173565b93506200129981856020860162001227565b620012a4816200125d565b840191505092915050565b60006020820190508181036000830152620012cb81846200126e565b905092915050565b614b5f80620012e36000396000f3fe6080604052600436106102555760003560e01c806378109e5411610139578063b78e7edb116100b6578063db03a00d1161007a578063db03a00d14610875578063dd62ed3e1461089e578063f0a9e365146108db578063f2fde38b14610918578063f785ccd014610941578063f887ea401461096a5761025c565b8063b78e7edb146107a6578063c9567bf9146107cf578063d51ed1c8146107e6578063d6e2df0514610823578063d78e139d1461084c5761025c565b80639188abd6116100fd5780639188abd6146106bf57806395d89b41146106e8578063a8aa1b3114610713578063a9059cbb1461073e578063b2bdfa7b1461077b5761025c565b806378109e54146105ea5780637d1db4a5146106155780638252879114610640578063893d20e8146106695780638da5cb5b146106945761025c565b8063333c39a5116101d25780635e4ae81b116101965780635e4ae81b1461050257806360f91d10146105195780636ac3f254146105425780636ddd17131461056b57806370a0823114610596578063715018a6146105d35761025c565b8063333c39a51461044557806349dfa3c21461046e578063571ac8b0146104855780635b895c29146104c25780635d0044ca146104d95761025c565b806318160ddd1161021957806318160ddd1461035c5780631df4ccfc1461038757806323b872dd146103b25780632b112e49146103ef578063313ce5671461041a5761025c565b80630445b6671461026157806306fdde031461028c57806308fd3d05146102b7578063095ea7b3146102e25780631161ae391461031f5761025c565b3661025c57005b600080fd5b34801561026d57600080fd5b50610276610995565b604051610283919061394c565b60405180910390f35b34801561029857600080fd5b506102a161099b565b6040516102ae9190613a00565b60405180910390f35b3480156102c357600080fd5b506102cc6109d8565b6040516102d99190613a3d565b60405180910390f35b3480156102ee57600080fd5b5061030960048036038101906103049190613aec565b6109eb565b6040516103169190613a3d565b60405180910390f35b34801561032b57600080fd5b5061034660048036038101906103419190613b2c565b610add565b6040516103539190613a3d565b60405180910390f35b34801561036857600080fd5b50610371610af2565b60405161037e919061394c565b60405180910390f35b34801561039357600080fd5b5061039c610afc565b6040516103a9919061394c565b60405180910390f35b3480156103be57600080fd5b506103d960048036038101906103d49190613b6c565b610b02565b6040516103e69190613a3d565b60405180910390f35b3480156103fb57600080fd5b50610404610d02565b604051610411919061394c565b60405180910390f35b34801561042657600080fd5b5061042f610d84565b60405161043c9190613bdb565b60405180910390f35b34801561045157600080fd5b5061046c60048036038101906104679190613bf6565b610d8d565b005b34801561047a57600080fd5b50610483610e64565b005b34801561049157600080fd5b506104ac60048036038101906104a79190613c23565b610f03565b6040516104b99190613a3d565b60405180910390f35b3480156104ce57600080fd5b506104d7610f36565b005b3480156104e557600080fd5b5061050060048036038101906104fb9190613bf6565b610fd5565b005b34801561050e57600080fd5b506105176110ac565b005b34801561052557600080fd5b50610540600480360381019061053b9190613c7c565b611155565b005b34801561054e57600080fd5b5061056960048036038101906105649190613cbc565b61120f565b005b34801561057757600080fd5b506105806112be565b60405161058d9190613a3d565b60405180910390f35b3480156105a257600080fd5b506105bd60048036038101906105b89190613c23565b6112d1565b6040516105ca919061394c565b60405180910390f35b3480156105df57600080fd5b506105e861131a565b005b3480156105f657600080fd5b506105ff61146d565b60405161060c919061394c565b60405180910390f35b34801561062157600080fd5b5061062a611473565b604051610637919061394c565b60405180910390f35b34801561064c57600080fd5b5061066760048036038101906106629190613d0f565b611479565b005b34801561067557600080fd5b5061067e61165a565b60405161068b9190613d99565b60405180910390f35b3480156106a057600080fd5b506106a9611669565b6040516106b69190613d99565b60405180910390f35b3480156106cb57600080fd5b506106e660048036038101906106e19190613db4565b611692565b005b3480156106f457600080fd5b506106fd6117fa565b60405161070a9190613a00565b60405180910390f35b34801561071f57600080fd5b50610728611837565b6040516107359190613d99565b60405180910390f35b34801561074a57600080fd5b5061076560048036038101906107609190613aec565b61185d565b6040516107729190613a3d565b60405180910390f35b34801561078757600080fd5b50610790611872565b60405161079d9190613d99565b60405180910390f35b3480156107b257600080fd5b506107cd60048036038101906107c89190613efc565b611896565b005b3480156107db57600080fd5b506107e4611ac5565b005b3480156107f257600080fd5b5061080d60048036038101906108089190613bf6565b611b77565b60405161081a919061394c565b60405180910390f35b34801561082f57600080fd5b5061084a60048036038101906108459190613f91565b611be9565b005b34801561085857600080fd5b50610873600480360381019061086e9190613bf6565b611d30565b005b34801561088157600080fd5b5061089c60048036038101906108979190613f91565b611db9565b005b3480156108aa57600080fd5b506108c560048036038101906108c09190613fd1565b611ea9565b6040516108d2919061394c565b60405180910390f35b3480156108e757600080fd5b5061090260048036038101906108fd9190613aec565b611f30565b60405161090f9190613a3d565b60405180910390f35b34801561092457600080fd5b5061093f600480360381019061093a9190613c23565b612093565b005b34801561094d57600080fd5b5061096860048036038101906109639190613b2c565b612254565b005b34801561097657600080fd5b5061097f6122fb565b60405161098c9190614070565b60405180910390f35b60205481565b60606040518060400160405280600a81526020017f59616b757a6120496e7500000000000000000000000000000000000000000000815250905090565b601f60149054906101000a900460ff1681565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610acb919061394c565b60405180910390a36001905092915050565b600082610ae983611b77565b11905092915050565b6000600554905090565b60115481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610cee57610c6d826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123e59092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610cf9848484612449565b90509392505050565b6000610d7f610d32600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166112d1565b610d71610d60600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166112d1565b600554612ac190919063ffffffff16565b612ac190919063ffffffff16565b905090565b60006009905090565b610d95612b0b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e19906140d7565b60405180910390fd5b6103e8600554610e329190614155565b6006541015610e4057600080fd5b6103e881600554610e519190614186565b610e5b9190614155565b60068190555050565b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610eba57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610f00573d6000803e3d6000fd5b50565b6000610f2f827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6109eb565b9050919050565b610f3e612b0b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc2906140d7565b60405180910390fd5b610fd3612b13565b565b610fdd612b0b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461106a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611061906140d7565b60405180910390fd5b6103e860055461107a9190614155565b600754101561108857600080fd5b6103e8816005546110999190614186565b6110a39190614155565b60078190555050565b6110b4612b0b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611141576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611138906140d7565b60405180910390fd5b600554600781905550600554600681905550565b61115d612b0b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e1906140d7565b60405180910390fd5b81601f60156101000a81548160ff021916908315150217905550806020819055505050565b611217612b0b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129b906140d7565b60405180910390fd5b816013819055508260148190555080601581905550505050565b601f60159054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611322612b0b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a6906140d7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60075481565b60065481565b611481612b0b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461150e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611505906140d7565b60405180910390fd5b84601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050565b6000611664611669565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61169a612b0b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611727576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171e906140d7565b60405180910390fd5b85600c8190555084600f8190555083600d8190555082600e81905550816010819055506117938261178585611777886117698b8d61313a90919063ffffffff16565b61313a90919063ffffffff16565b61313a90919063ffffffff16565b61313a90919063ffffffff16565b6011819055508060128190555060056012546117af9190614155565b601154106117f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e99061422c565b60405180910390fd5b505050505050565b60606040518060400160405280600381526020017f59414b0000000000000000000000000000000000000000000000000000000000815250905090565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061186a338484612449565b905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61189e612b0b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461192b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611922906140d7565b60405180910390fd5b6101f58484905010611972576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611969906142be565b60405180910390fd5b8181905084849050146119ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b190614350565b60405180910390fd5b6000805b85859050811015611a03578383828181106119dc576119db614370565b5b90506020020135826119ee919061439f565b915080806119fb906143f5565b9150506119be565b5080611a0e876112d1565b1015611a4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4690614489565b60405180910390fd5b60005b85859050811015611abc57611aa887878784818110611a7457611a73614370565b5b9050602002016020810190611a899190613c23565b868685818110611a9c57611a9b614370565b5b90506020020135613198565b508080611ab4906143f5565b915050611a52565b50505050505050565b611acd612b0b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b51906140d7565b60405180910390fd5b6001601f60146101000a81548160ff021916908315150217905550565b6000611be2611b84610d02565b611bd4611bc56002611bb7601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166112d1565b61232190919063ffffffff16565b8561232190919063ffffffff16565b61239b90919063ffffffff16565b9050919050565b611bf1612b0b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c75906140d7565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000479050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60648484611d7f9190614186565b611d899190614155565b9081150290604051600060405180830381858888f19350505050158015611db4573d6000803e3d6000fd5b505050565b611dc1612b0b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e45906140d7565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611f8857600080fd5b6000820361200d578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611fc99190613d99565b602060405180830381865afa158015611fe6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061200a91906144be565b91505b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b81526004016120489291906144eb565b6020604051808303816000875af1158015612067573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061208b9190614529565b905092915050565b61209b612b0b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612128576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211f906140d7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612197576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218e906145c8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61225c612b0b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e0906140d7565b60405180910390fd5b81601b8190555080601c819055505050565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008083036123335760009050612395565b600082846123419190614186565b90508284826123509190614155565b14612390576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123879061465a565b60405180910390fd5b809150505b92915050565b60006123dd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061336b565b905092915050565b600083831115829061242d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124249190613a00565b60405180910390fd5b506000838561243c919061467a565b9050809150509392505050565b6000602160009054906101000a900460ff16156124725761246b848484613198565b9050612aba565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156125165750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561256b57601f60149054906101000a900460ff1661256a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612561906146fa565b60405180910390fd5b5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156125f157503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561264b5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156126a55750601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156126ff5750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156127595750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156127af5750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156128135760006127bf846112d1565b905060075483826127d0919061439f565b1115612811576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128089061478c565b60405180910390fd5b505b61281d84836133ce565b61282561346b565b1561283357612832612b13565b5b6128bc826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123e59092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806129a25750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6129b6576129b1858486613542565b6129b8565b825b9050612a0c81600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461313a90919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612aac919061394c565b60405180910390a360019150505b9392505050565b6000612b0383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506123e5565b905092915050565b600033905090565b6001602160006101000a81548160ff0219169083151502179055506000612b3e601b54601c54610add565b612b4a57600c54612b4d565b60005b90506000612b8d6002612b7f601154612b718660205461232190919063ffffffff16565b61239b90919063ffffffff16565b61239b90919063ffffffff16565b90506000612ba682602054612ac190919063ffffffff16565b90506000600267ffffffffffffffff811115612bc557612bc46147ac565b5b604051908082528060200260200182016040528015612bf35781602001602082028036833780820191505090505b5090503081600081518110612c0b57612c0a614370565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612c7c57612c7b614370565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401612d1f9594939291906148d4565b600060405180830381600087803b158015612d3957600080fd5b505af1158015612d4d573d6000803e3d6000fd5b505050506000612d668247612ac190919063ffffffff16565b90506000612d92612d8160028961239b90919063ffffffff16565b601154612ac190919063ffffffff16565b90506000612dce6002612dc084612db28c8861232190919063ffffffff16565b61239b90919063ffffffff16565b61239b90919063ffffffff16565b90506000612df983612deb600d548761232190919063ffffffff16565b61239b90919063ffffffff16565b90506000612e2484612e16600f548861232190919063ffffffff16565b61239b90919063ffffffff16565b90506000612e4f85612e41600e548961232190919063ffffffff16565b61239b90919063ffffffff16565b90506000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051612e999061495f565b60006040518083038185875af1925050503d8060008114612ed6576040519150601f19603f3d011682016040523d82523d6000602084013e612edb565b606091505b50509050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612f259061495f565b60006040518083038185875af1925050503d8060008114612f62576040519150601f19603f3d011682016040523d82523d6000602084013e612f67565b606091505b505080915050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612fb39061495f565b60006040518083038185875af1925050503d8060008114612ff0576040519150601f19603f3d011682016040523d82523d6000602084013e612ff5565b606091505b5050809150506000905060008b111561311157601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e600080601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161309196959493929190614974565b60606040518083038185885af11580156130af573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906130d491906149d5565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c604051613108929190614a28565b60405180910390a15b5050505050505050505050506000602160006101000a81548160ff021916908315150217905550565b6000808284613149919061439f565b90508381101561318e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161318590614a9d565b60405180910390fd5b8091505092915050565b6000613223826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123e59092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506132b882600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461313a90919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613358919061394c565b60405180910390a3600190509392505050565b600080831182906133b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133a99190613a00565b60405180910390fd5b50600083856133c19190614155565b9050809150509392505050565b600654811115806134285750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613467576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161345e90614b09565b60405180910390fd5b5050565b6000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156134d85750602160009054906101000a900460ff16155b80156134f05750601f60159054906101000a900460ff165b801561353d5750602054600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6000806015549050601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036135a9576013549050613605565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036136045760145490505b5b600061364e60646012546136199190614186565b613640846136326011548a61232190919063ffffffff16565b61232190919063ffffffff16565b61239b90919063ffffffff16565b9050600061367b60115461366d6010548561232190919063ffffffff16565b61239b90919063ffffffff16565b905060006136928284612ac190919063ffffffff16565b90506136e681600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461313a90919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061379d8260086000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461313a90919063ffffffff16565b60086000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161385f919061394c565b60405180910390a360008211156139135761388582600554612ac190919063ffffffff16565b600581905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161390a919061394c565b60405180910390a35b6139268388612ac190919063ffffffff16565b9450505050509392505050565b6000819050919050565b61394681613933565b82525050565b6000602082019050613961600083018461393d565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156139a1578082015181840152602081019050613986565b838111156139b0576000848401525b50505050565b6000601f19601f8301169050919050565b60006139d282613967565b6139dc8185613972565b93506139ec818560208601613983565b6139f5816139b6565b840191505092915050565b60006020820190508181036000830152613a1a81846139c7565b905092915050565b60008115159050919050565b613a3781613a22565b82525050565b6000602082019050613a526000830184613a2e565b92915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613a8d82613a62565b9050919050565b613a9d81613a82565b8114613aa857600080fd5b50565b600081359050613aba81613a94565b92915050565b613ac981613933565b8114613ad457600080fd5b50565b600081359050613ae681613ac0565b92915050565b60008060408385031215613b0357613b02613a58565b5b6000613b1185828601613aab565b9250506020613b2285828601613ad7565b9150509250929050565b60008060408385031215613b4357613b42613a58565b5b6000613b5185828601613ad7565b9250506020613b6285828601613ad7565b9150509250929050565b600080600060608486031215613b8557613b84613a58565b5b6000613b9386828701613aab565b9350506020613ba486828701613aab565b9250506040613bb586828701613ad7565b9150509250925092565b600060ff82169050919050565b613bd581613bbf565b82525050565b6000602082019050613bf06000830184613bcc565b92915050565b600060208284031215613c0c57613c0b613a58565b5b6000613c1a84828501613ad7565b91505092915050565b600060208284031215613c3957613c38613a58565b5b6000613c4784828501613aab565b91505092915050565b613c5981613a22565b8114613c6457600080fd5b50565b600081359050613c7681613c50565b92915050565b60008060408385031215613c9357613c92613a58565b5b6000613ca185828601613c67565b9250506020613cb285828601613ad7565b9150509250929050565b600080600060608486031215613cd557613cd4613a58565b5b6000613ce386828701613ad7565b9350506020613cf486828701613ad7565b9250506040613d0586828701613ad7565b9150509250925092565b600080600080600060a08688031215613d2b57613d2a613a58565b5b6000613d3988828901613aab565b9550506020613d4a88828901613aab565b9450506040613d5b88828901613aab565b9350506060613d6c88828901613aab565b9250506080613d7d88828901613aab565b9150509295509295909350565b613d9381613a82565b82525050565b6000602082019050613dae6000830184613d8a565b92915050565b60008060008060008060c08789031215613dd157613dd0613a58565b5b6000613ddf89828a01613ad7565b9650506020613df089828a01613ad7565b9550506040613e0189828a01613ad7565b9450506060613e1289828a01613ad7565b9350506080613e2389828a01613ad7565b92505060a0613e3489828a01613ad7565b9150509295509295509295565b600080fd5b600080fd5b600080fd5b60008083601f840112613e6657613e65613e41565b5b8235905067ffffffffffffffff811115613e8357613e82613e46565b5b602083019150836020820283011115613e9f57613e9e613e4b565b5b9250929050565b60008083601f840112613ebc57613ebb613e41565b5b8235905067ffffffffffffffff811115613ed957613ed8613e46565b5b602083019150836020820283011115613ef557613ef4613e4b565b5b9250929050565b600080600080600060608688031215613f1857613f17613a58565b5b6000613f2688828901613aab565b955050602086013567ffffffffffffffff811115613f4757613f46613a5d565b5b613f5388828901613e50565b9450945050604086013567ffffffffffffffff811115613f7657613f75613a5d565b5b613f8288828901613ea6565b92509250509295509295909350565b60008060408385031215613fa857613fa7613a58565b5b6000613fb685828601613aab565b9250506020613fc785828601613c67565b9150509250929050565b60008060408385031215613fe857613fe7613a58565b5b6000613ff685828601613aab565b925050602061400785828601613aab565b9150509250929050565b6000819050919050565b600061403661403161402c84613a62565b614011565b613a62565b9050919050565b60006140488261401b565b9050919050565b600061405a8261403d565b9050919050565b61406a8161404f565b82525050565b60006020820190506140856000830184614061565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006140c1602083613972565b91506140cc8261408b565b602082019050919050565b600060208201905081810360008301526140f0816140b4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061416082613933565b915061416b83613933565b92508261417b5761417a6140f7565b5b828204905092915050565b600061419182613933565b915061419c83613933565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156141d5576141d4614126565b5b828202905092915050565b7f466565732063616e206e6f74206265206d6f7265207468616e20323025000000600082015250565b6000614216601d83613972565b9150614221826141e0565b602082019050919050565b6000602082019050818103600083015261424581614209565b9050919050565b7f474153204572726f723a206d61782061697264726f70206c696d69742069732060008201527f3530302061646472657373657300000000000000000000000000000000000000602082015250565b60006142a8602d83613972565b91506142b38261424c565b604082019050919050565b600060208201905081810360008301526142d78161429b565b9050919050565b7f4d69736d61746368206265747765656e204164647265737320616e6420746f6b60008201527f656e20636f756e74000000000000000000000000000000000000000000000000602082015250565b600061433a602883613972565b9150614345826142de565b604082019050919050565b600060208201905081810360008301526143698161432d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006143aa82613933565b91506143b583613933565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156143ea576143e9614126565b5b828201905092915050565b600061440082613933565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361443257614431614126565b5b600182019050919050565b7f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c65740000000000600082015250565b6000614473601b83613972565b915061447e8261443d565b602082019050919050565b600060208201905081810360008301526144a281614466565b9050919050565b6000815190506144b881613ac0565b92915050565b6000602082840312156144d4576144d3613a58565b5b60006144e2848285016144a9565b91505092915050565b60006040820190506145006000830185613d8a565b61450d602083018461393d565b9392505050565b60008151905061452381613c50565b92915050565b60006020828403121561453f5761453e613a58565b5b600061454d84828501614514565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006145b2602683613972565b91506145bd82614556565b604082019050919050565b600060208201905081810360008301526145e1816145a5565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614644602183613972565b915061464f826145e8565b604082019050919050565b6000602082019050818103600083015261467381614637565b9050919050565b600061468582613933565b915061469083613933565b9250828210156146a3576146a2614126565b5b828203905092915050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b60006146e4601483613972565b91506146ef826146ae565b602082019050919050565b60006020820190508181036000830152614713816146d7565b9050919050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b6000614776603e83613972565b91506147818261471a565b604082019050919050565b600060208201905081810360008301526147a581614769565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b60006148006147fb6147f6846147db565b614011565b613933565b9050919050565b614810816147e5565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61484b81613a82565b82525050565b600061485d8383614842565b60208301905092915050565b6000602082019050919050565b600061488182614816565b61488b8185614821565b935061489683614832565b8060005b838110156148c75781516148ae8882614851565b97506148b983614869565b92505060018101905061489a565b5085935050505092915050565b600060a0820190506148e9600083018861393d565b6148f66020830187614807565b81810360408301526149088186614876565b90506149176060830185613d8a565b614924608083018461393d565b9695505050505050565b600081905092915050565b50565b600061494960008361492e565b915061495482614939565b600082019050919050565b600061496a8261493c565b9150819050919050565b600060c0820190506149896000830189613d8a565b614996602083018861393d565b6149a36040830187614807565b6149b06060830186614807565b6149bd6080830185613d8a565b6149ca60a083018461393d565b979650505050505050565b6000806000606084860312156149ee576149ed613a58565b5b60006149fc868287016144a9565b9350506020614a0d868287016144a9565b9250506040614a1e868287016144a9565b9150509250925092565b6000604082019050614a3d600083018561393d565b614a4a602083018461393d565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614a87601b83613972565b9150614a9282614a51565b602082019050919050565b60006020820190508181036000830152614ab681614a7a565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b6000614af3601183613972565b9150614afe82614abd565b602082019050919050565b60006020820190508181036000830152614b2281614ae6565b905091905056fea2646970667358221220192d9d98b1db37962ac3a1e1317393829703155b1c91a2f05ab6886042e829e664736f6c634300080e0033

Deployed Bytecode

0x6080604052600436106102555760003560e01c806378109e5411610139578063b78e7edb116100b6578063db03a00d1161007a578063db03a00d14610875578063dd62ed3e1461089e578063f0a9e365146108db578063f2fde38b14610918578063f785ccd014610941578063f887ea401461096a5761025c565b8063b78e7edb146107a6578063c9567bf9146107cf578063d51ed1c8146107e6578063d6e2df0514610823578063d78e139d1461084c5761025c565b80639188abd6116100fd5780639188abd6146106bf57806395d89b41146106e8578063a8aa1b3114610713578063a9059cbb1461073e578063b2bdfa7b1461077b5761025c565b806378109e54146105ea5780637d1db4a5146106155780638252879114610640578063893d20e8146106695780638da5cb5b146106945761025c565b8063333c39a5116101d25780635e4ae81b116101965780635e4ae81b1461050257806360f91d10146105195780636ac3f254146105425780636ddd17131461056b57806370a0823114610596578063715018a6146105d35761025c565b8063333c39a51461044557806349dfa3c21461046e578063571ac8b0146104855780635b895c29146104c25780635d0044ca146104d95761025c565b806318160ddd1161021957806318160ddd1461035c5780631df4ccfc1461038757806323b872dd146103b25780632b112e49146103ef578063313ce5671461041a5761025c565b80630445b6671461026157806306fdde031461028c57806308fd3d05146102b7578063095ea7b3146102e25780631161ae391461031f5761025c565b3661025c57005b600080fd5b34801561026d57600080fd5b50610276610995565b604051610283919061394c565b60405180910390f35b34801561029857600080fd5b506102a161099b565b6040516102ae9190613a00565b60405180910390f35b3480156102c357600080fd5b506102cc6109d8565b6040516102d99190613a3d565b60405180910390f35b3480156102ee57600080fd5b5061030960048036038101906103049190613aec565b6109eb565b6040516103169190613a3d565b60405180910390f35b34801561032b57600080fd5b5061034660048036038101906103419190613b2c565b610add565b6040516103539190613a3d565b60405180910390f35b34801561036857600080fd5b50610371610af2565b60405161037e919061394c565b60405180910390f35b34801561039357600080fd5b5061039c610afc565b6040516103a9919061394c565b60405180910390f35b3480156103be57600080fd5b506103d960048036038101906103d49190613b6c565b610b02565b6040516103e69190613a3d565b60405180910390f35b3480156103fb57600080fd5b50610404610d02565b604051610411919061394c565b60405180910390f35b34801561042657600080fd5b5061042f610d84565b60405161043c9190613bdb565b60405180910390f35b34801561045157600080fd5b5061046c60048036038101906104679190613bf6565b610d8d565b005b34801561047a57600080fd5b50610483610e64565b005b34801561049157600080fd5b506104ac60048036038101906104a79190613c23565b610f03565b6040516104b99190613a3d565b60405180910390f35b3480156104ce57600080fd5b506104d7610f36565b005b3480156104e557600080fd5b5061050060048036038101906104fb9190613bf6565b610fd5565b005b34801561050e57600080fd5b506105176110ac565b005b34801561052557600080fd5b50610540600480360381019061053b9190613c7c565b611155565b005b34801561054e57600080fd5b5061056960048036038101906105649190613cbc565b61120f565b005b34801561057757600080fd5b506105806112be565b60405161058d9190613a3d565b60405180910390f35b3480156105a257600080fd5b506105bd60048036038101906105b89190613c23565b6112d1565b6040516105ca919061394c565b60405180910390f35b3480156105df57600080fd5b506105e861131a565b005b3480156105f657600080fd5b506105ff61146d565b60405161060c919061394c565b60405180910390f35b34801561062157600080fd5b5061062a611473565b604051610637919061394c565b60405180910390f35b34801561064c57600080fd5b5061066760048036038101906106629190613d0f565b611479565b005b34801561067557600080fd5b5061067e61165a565b60405161068b9190613d99565b60405180910390f35b3480156106a057600080fd5b506106a9611669565b6040516106b69190613d99565b60405180910390f35b3480156106cb57600080fd5b506106e660048036038101906106e19190613db4565b611692565b005b3480156106f457600080fd5b506106fd6117fa565b60405161070a9190613a00565b60405180910390f35b34801561071f57600080fd5b50610728611837565b6040516107359190613d99565b60405180910390f35b34801561074a57600080fd5b5061076560048036038101906107609190613aec565b61185d565b6040516107729190613a3d565b60405180910390f35b34801561078757600080fd5b50610790611872565b60405161079d9190613d99565b60405180910390f35b3480156107b257600080fd5b506107cd60048036038101906107c89190613efc565b611896565b005b3480156107db57600080fd5b506107e4611ac5565b005b3480156107f257600080fd5b5061080d60048036038101906108089190613bf6565b611b77565b60405161081a919061394c565b60405180910390f35b34801561082f57600080fd5b5061084a60048036038101906108459190613f91565b611be9565b005b34801561085857600080fd5b50610873600480360381019061086e9190613bf6565b611d30565b005b34801561088157600080fd5b5061089c60048036038101906108979190613f91565b611db9565b005b3480156108aa57600080fd5b506108c560048036038101906108c09190613fd1565b611ea9565b6040516108d2919061394c565b60405180910390f35b3480156108e757600080fd5b5061090260048036038101906108fd9190613aec565b611f30565b60405161090f9190613a3d565b60405180910390f35b34801561092457600080fd5b5061093f600480360381019061093a9190613c23565b612093565b005b34801561094d57600080fd5b5061096860048036038101906109639190613b2c565b612254565b005b34801561097657600080fd5b5061097f6122fb565b60405161098c9190614070565b60405180910390f35b60205481565b60606040518060400160405280600a81526020017f59616b757a6120496e7500000000000000000000000000000000000000000000815250905090565b601f60149054906101000a900460ff1681565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610acb919061394c565b60405180910390a36001905092915050565b600082610ae983611b77565b11905092915050565b6000600554905090565b60115481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610cee57610c6d826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123e59092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610cf9848484612449565b90509392505050565b6000610d7f610d32600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166112d1565b610d71610d60600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166112d1565b600554612ac190919063ffffffff16565b612ac190919063ffffffff16565b905090565b60006009905090565b610d95612b0b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e19906140d7565b60405180910390fd5b6103e8600554610e329190614155565b6006541015610e4057600080fd5b6103e881600554610e519190614186565b610e5b9190614155565b60068190555050565b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610eba57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610f00573d6000803e3d6000fd5b50565b6000610f2f827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6109eb565b9050919050565b610f3e612b0b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc2906140d7565b60405180910390fd5b610fd3612b13565b565b610fdd612b0b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461106a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611061906140d7565b60405180910390fd5b6103e860055461107a9190614155565b600754101561108857600080fd5b6103e8816005546110999190614186565b6110a39190614155565b60078190555050565b6110b4612b0b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611141576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611138906140d7565b60405180910390fd5b600554600781905550600554600681905550565b61115d612b0b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e1906140d7565b60405180910390fd5b81601f60156101000a81548160ff021916908315150217905550806020819055505050565b611217612b0b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129b906140d7565b60405180910390fd5b816013819055508260148190555080601581905550505050565b601f60159054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611322612b0b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a6906140d7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60075481565b60065481565b611481612b0b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461150e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611505906140d7565b60405180910390fd5b84601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050565b6000611664611669565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61169a612b0b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611727576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171e906140d7565b60405180910390fd5b85600c8190555084600f8190555083600d8190555082600e81905550816010819055506117938261178585611777886117698b8d61313a90919063ffffffff16565b61313a90919063ffffffff16565b61313a90919063ffffffff16565b61313a90919063ffffffff16565b6011819055508060128190555060056012546117af9190614155565b601154106117f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e99061422c565b60405180910390fd5b505050505050565b60606040518060400160405280600381526020017f59414b0000000000000000000000000000000000000000000000000000000000815250905090565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061186a338484612449565b905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61189e612b0b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461192b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611922906140d7565b60405180910390fd5b6101f58484905010611972576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611969906142be565b60405180910390fd5b8181905084849050146119ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b190614350565b60405180910390fd5b6000805b85859050811015611a03578383828181106119dc576119db614370565b5b90506020020135826119ee919061439f565b915080806119fb906143f5565b9150506119be565b5080611a0e876112d1565b1015611a4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4690614489565b60405180910390fd5b60005b85859050811015611abc57611aa887878784818110611a7457611a73614370565b5b9050602002016020810190611a899190613c23565b868685818110611a9c57611a9b614370565b5b90506020020135613198565b508080611ab4906143f5565b915050611a52565b50505050505050565b611acd612b0b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b51906140d7565b60405180910390fd5b6001601f60146101000a81548160ff021916908315150217905550565b6000611be2611b84610d02565b611bd4611bc56002611bb7601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166112d1565b61232190919063ffffffff16565b8561232190919063ffffffff16565b61239b90919063ffffffff16565b9050919050565b611bf1612b0b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c75906140d7565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000479050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60648484611d7f9190614186565b611d899190614155565b9081150290604051600060405180830381858888f19350505050158015611db4573d6000803e3d6000fd5b505050565b611dc1612b0b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e45906140d7565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611f8857600080fd5b6000820361200d578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611fc99190613d99565b602060405180830381865afa158015611fe6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061200a91906144be565b91505b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b81526004016120489291906144eb565b6020604051808303816000875af1158015612067573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061208b9190614529565b905092915050565b61209b612b0b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612128576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211f906140d7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612197576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218e906145c8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61225c612b0b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e0906140d7565b60405180910390fd5b81601b8190555080601c819055505050565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008083036123335760009050612395565b600082846123419190614186565b90508284826123509190614155565b14612390576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123879061465a565b60405180910390fd5b809150505b92915050565b60006123dd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061336b565b905092915050565b600083831115829061242d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124249190613a00565b60405180910390fd5b506000838561243c919061467a565b9050809150509392505050565b6000602160009054906101000a900460ff16156124725761246b848484613198565b9050612aba565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156125165750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561256b57601f60149054906101000a900460ff1661256a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612561906146fa565b60405180910390fd5b5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156125f157503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561264b5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156126a55750601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156126ff5750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156127595750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156127af5750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156128135760006127bf846112d1565b905060075483826127d0919061439f565b1115612811576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128089061478c565b60405180910390fd5b505b61281d84836133ce565b61282561346b565b1561283357612832612b13565b5b6128bc826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123e59092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806129a25750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6129b6576129b1858486613542565b6129b8565b825b9050612a0c81600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461313a90919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612aac919061394c565b60405180910390a360019150505b9392505050565b6000612b0383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506123e5565b905092915050565b600033905090565b6001602160006101000a81548160ff0219169083151502179055506000612b3e601b54601c54610add565b612b4a57600c54612b4d565b60005b90506000612b8d6002612b7f601154612b718660205461232190919063ffffffff16565b61239b90919063ffffffff16565b61239b90919063ffffffff16565b90506000612ba682602054612ac190919063ffffffff16565b90506000600267ffffffffffffffff811115612bc557612bc46147ac565b5b604051908082528060200260200182016040528015612bf35781602001602082028036833780820191505090505b5090503081600081518110612c0b57612c0a614370565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612c7c57612c7b614370565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401612d1f9594939291906148d4565b600060405180830381600087803b158015612d3957600080fd5b505af1158015612d4d573d6000803e3d6000fd5b505050506000612d668247612ac190919063ffffffff16565b90506000612d92612d8160028961239b90919063ffffffff16565b601154612ac190919063ffffffff16565b90506000612dce6002612dc084612db28c8861232190919063ffffffff16565b61239b90919063ffffffff16565b61239b90919063ffffffff16565b90506000612df983612deb600d548761232190919063ffffffff16565b61239b90919063ffffffff16565b90506000612e2484612e16600f548861232190919063ffffffff16565b61239b90919063ffffffff16565b90506000612e4f85612e41600e548961232190919063ffffffff16565b61239b90919063ffffffff16565b90506000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051612e999061495f565b60006040518083038185875af1925050503d8060008114612ed6576040519150601f19603f3d011682016040523d82523d6000602084013e612edb565b606091505b50509050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612f259061495f565b60006040518083038185875af1925050503d8060008114612f62576040519150601f19603f3d011682016040523d82523d6000602084013e612f67565b606091505b505080915050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612fb39061495f565b60006040518083038185875af1925050503d8060008114612ff0576040519150601f19603f3d011682016040523d82523d6000602084013e612ff5565b606091505b5050809150506000905060008b111561311157601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e600080601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161309196959493929190614974565b60606040518083038185885af11580156130af573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906130d491906149d5565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c604051613108929190614a28565b60405180910390a15b5050505050505050505050506000602160006101000a81548160ff021916908315150217905550565b6000808284613149919061439f565b90508381101561318e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161318590614a9d565b60405180910390fd5b8091505092915050565b6000613223826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123e59092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506132b882600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461313a90919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613358919061394c565b60405180910390a3600190509392505050565b600080831182906133b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133a99190613a00565b60405180910390fd5b50600083856133c19190614155565b9050809150509392505050565b600654811115806134285750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613467576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161345e90614b09565b60405180910390fd5b5050565b6000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156134d85750602160009054906101000a900460ff16155b80156134f05750601f60159054906101000a900460ff165b801561353d5750602054600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6000806015549050601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036135a9576013549050613605565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036136045760145490505b5b600061364e60646012546136199190614186565b613640846136326011548a61232190919063ffffffff16565b61232190919063ffffffff16565b61239b90919063ffffffff16565b9050600061367b60115461366d6010548561232190919063ffffffff16565b61239b90919063ffffffff16565b905060006136928284612ac190919063ffffffff16565b90506136e681600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461313a90919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061379d8260086000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461313a90919063ffffffff16565b60086000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161385f919061394c565b60405180910390a360008211156139135761388582600554612ac190919063ffffffff16565b600581905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161390a919061394c565b60405180910390a35b6139268388612ac190919063ffffffff16565b9450505050509392505050565b6000819050919050565b61394681613933565b82525050565b6000602082019050613961600083018461393d565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156139a1578082015181840152602081019050613986565b838111156139b0576000848401525b50505050565b6000601f19601f8301169050919050565b60006139d282613967565b6139dc8185613972565b93506139ec818560208601613983565b6139f5816139b6565b840191505092915050565b60006020820190508181036000830152613a1a81846139c7565b905092915050565b60008115159050919050565b613a3781613a22565b82525050565b6000602082019050613a526000830184613a2e565b92915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613a8d82613a62565b9050919050565b613a9d81613a82565b8114613aa857600080fd5b50565b600081359050613aba81613a94565b92915050565b613ac981613933565b8114613ad457600080fd5b50565b600081359050613ae681613ac0565b92915050565b60008060408385031215613b0357613b02613a58565b5b6000613b1185828601613aab565b9250506020613b2285828601613ad7565b9150509250929050565b60008060408385031215613b4357613b42613a58565b5b6000613b5185828601613ad7565b9250506020613b6285828601613ad7565b9150509250929050565b600080600060608486031215613b8557613b84613a58565b5b6000613b9386828701613aab565b9350506020613ba486828701613aab565b9250506040613bb586828701613ad7565b9150509250925092565b600060ff82169050919050565b613bd581613bbf565b82525050565b6000602082019050613bf06000830184613bcc565b92915050565b600060208284031215613c0c57613c0b613a58565b5b6000613c1a84828501613ad7565b91505092915050565b600060208284031215613c3957613c38613a58565b5b6000613c4784828501613aab565b91505092915050565b613c5981613a22565b8114613c6457600080fd5b50565b600081359050613c7681613c50565b92915050565b60008060408385031215613c9357613c92613a58565b5b6000613ca185828601613c67565b9250506020613cb285828601613ad7565b9150509250929050565b600080600060608486031215613cd557613cd4613a58565b5b6000613ce386828701613ad7565b9350506020613cf486828701613ad7565b9250506040613d0586828701613ad7565b9150509250925092565b600080600080600060a08688031215613d2b57613d2a613a58565b5b6000613d3988828901613aab565b9550506020613d4a88828901613aab565b9450506040613d5b88828901613aab565b9350506060613d6c88828901613aab565b9250506080613d7d88828901613aab565b9150509295509295909350565b613d9381613a82565b82525050565b6000602082019050613dae6000830184613d8a565b92915050565b60008060008060008060c08789031215613dd157613dd0613a58565b5b6000613ddf89828a01613ad7565b9650506020613df089828a01613ad7565b9550506040613e0189828a01613ad7565b9450506060613e1289828a01613ad7565b9350506080613e2389828a01613ad7565b92505060a0613e3489828a01613ad7565b9150509295509295509295565b600080fd5b600080fd5b600080fd5b60008083601f840112613e6657613e65613e41565b5b8235905067ffffffffffffffff811115613e8357613e82613e46565b5b602083019150836020820283011115613e9f57613e9e613e4b565b5b9250929050565b60008083601f840112613ebc57613ebb613e41565b5b8235905067ffffffffffffffff811115613ed957613ed8613e46565b5b602083019150836020820283011115613ef557613ef4613e4b565b5b9250929050565b600080600080600060608688031215613f1857613f17613a58565b5b6000613f2688828901613aab565b955050602086013567ffffffffffffffff811115613f4757613f46613a5d565b5b613f5388828901613e50565b9450945050604086013567ffffffffffffffff811115613f7657613f75613a5d565b5b613f8288828901613ea6565b92509250509295509295909350565b60008060408385031215613fa857613fa7613a58565b5b6000613fb685828601613aab565b9250506020613fc785828601613c67565b9150509250929050565b60008060408385031215613fe857613fe7613a58565b5b6000613ff685828601613aab565b925050602061400785828601613aab565b9150509250929050565b6000819050919050565b600061403661403161402c84613a62565b614011565b613a62565b9050919050565b60006140488261401b565b9050919050565b600061405a8261403d565b9050919050565b61406a8161404f565b82525050565b60006020820190506140856000830184614061565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006140c1602083613972565b91506140cc8261408b565b602082019050919050565b600060208201905081810360008301526140f0816140b4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061416082613933565b915061416b83613933565b92508261417b5761417a6140f7565b5b828204905092915050565b600061419182613933565b915061419c83613933565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156141d5576141d4614126565b5b828202905092915050565b7f466565732063616e206e6f74206265206d6f7265207468616e20323025000000600082015250565b6000614216601d83613972565b9150614221826141e0565b602082019050919050565b6000602082019050818103600083015261424581614209565b9050919050565b7f474153204572726f723a206d61782061697264726f70206c696d69742069732060008201527f3530302061646472657373657300000000000000000000000000000000000000602082015250565b60006142a8602d83613972565b91506142b38261424c565b604082019050919050565b600060208201905081810360008301526142d78161429b565b9050919050565b7f4d69736d61746368206265747765656e204164647265737320616e6420746f6b60008201527f656e20636f756e74000000000000000000000000000000000000000000000000602082015250565b600061433a602883613972565b9150614345826142de565b604082019050919050565b600060208201905081810360008301526143698161432d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006143aa82613933565b91506143b583613933565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156143ea576143e9614126565b5b828201905092915050565b600061440082613933565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361443257614431614126565b5b600182019050919050565b7f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c65740000000000600082015250565b6000614473601b83613972565b915061447e8261443d565b602082019050919050565b600060208201905081810360008301526144a281614466565b9050919050565b6000815190506144b881613ac0565b92915050565b6000602082840312156144d4576144d3613a58565b5b60006144e2848285016144a9565b91505092915050565b60006040820190506145006000830185613d8a565b61450d602083018461393d565b9392505050565b60008151905061452381613c50565b92915050565b60006020828403121561453f5761453e613a58565b5b600061454d84828501614514565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006145b2602683613972565b91506145bd82614556565b604082019050919050565b600060208201905081810360008301526145e1816145a5565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614644602183613972565b915061464f826145e8565b604082019050919050565b6000602082019050818103600083015261467381614637565b9050919050565b600061468582613933565b915061469083613933565b9250828210156146a3576146a2614126565b5b828203905092915050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b60006146e4601483613972565b91506146ef826146ae565b602082019050919050565b60006020820190508181036000830152614713816146d7565b9050919050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b6000614776603e83613972565b91506147818261471a565b604082019050919050565b600060208201905081810360008301526147a581614769565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b60006148006147fb6147f6846147db565b614011565b613933565b9050919050565b614810816147e5565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61484b81613a82565b82525050565b600061485d8383614842565b60208301905092915050565b6000602082019050919050565b600061488182614816565b61488b8185614821565b935061489683614832565b8060005b838110156148c75781516148ae8882614851565b97506148b983614869565b92505060018101905061489a565b5085935050505092915050565b600060a0820190506148e9600083018861393d565b6148f66020830187614807565b81810360408301526149088186614876565b90506149176060830185613d8a565b614924608083018461393d565b9695505050505050565b600081905092915050565b50565b600061494960008361492e565b915061495482614939565b600082019050919050565b600061496a8261493c565b9150819050919050565b600060c0820190506149896000830189613d8a565b614996602083018861393d565b6149a36040830187614807565b6149b06060830186614807565b6149bd6080830185613d8a565b6149ca60a083018461393d565b979650505050505050565b6000806000606084860312156149ee576149ed613a58565b5b60006149fc868287016144a9565b9350506020614a0d868287016144a9565b9250506040614a1e868287016144a9565b9150509250925092565b6000604082019050614a3d600083018561393d565b614a4a602083018461393d565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614a87601b83613972565b9150614a9282614a51565b602082019050919050565b60006020820190508181036000830152614ab681614a7a565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b6000614af3601183613972565b9150614afe82614abd565b602082019050919050565b60006020820190508181036000830152614b2281614ae6565b905091905056fea2646970667358221220192d9d98b1db37962ac3a1e1317393829703155b1c91a2f05ab6886042e829e664736f6c634300080e0033

Deployed Bytecode Sourcemap

6486:14207:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8207:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9721:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8126:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10143:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19861:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9451:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7459:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10661:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19536:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9545:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11270:187;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15079:155;;;;;;;;;;;;;:::i;:::-;;10367:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14847:83;;;;;;;;;;;;;:::i;:::-;;11043:219;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14938:133;;;;;;;;;;;;;:::i;:::-;;19186:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15560:213;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8170:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9891:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4543:148;;;;;;;;;;;;;:::i;:::-;;6963:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6896:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18713:465;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9807:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4329:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18100:605;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9631:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8094:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10497:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3949:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20018:605;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15781:77;;;;;;;;;;;;;:::i;:::-;;19686:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17798:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14635:203;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17968:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10002:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15242:310;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4699:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19352:172;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8024:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8207:55;;;;:::o;9721:80::-;9769:13;9793:5;;;;;;;;;;;;;;;;;9786:12;;9721:80;:::o;8126:31::-;;;;;;;;;;;;;:::o;10143:216::-;10218:4;10270:6;10235:11;:23;10247:10;10235:23;;;;;;;;;;;;;;;:32;10259:7;10235:32;;;;;;;;;;;;;;;:41;;;;10313:7;10292:37;;10301:10;10292:37;;;10322:6;10292:37;;;;;;:::i;:::-;;;;;;;;10347:4;10340:11;;10143:216;;;;:::o;19861:150::-;19941:4;19997:6;19965:29;19985:8;19965:19;:29::i;:::-;:38;19958:45;;19861:150;;;;:::o;9451:88::-;9506:7;9524:12;;9517:19;;9451:88;:::o;7459:101::-;;;;:::o;10661:370::-;10761:4;10816:17;10781:11;:19;10793:6;10781:19;;;;;;;;;;;;;;;:31;10801:10;10781:31;;;;;;;;;;;;;;;;:52;10778:186;;10883:69;10919:6;10883:69;;;;;;;;;;;;;;;;;:11;:19;10895:6;10883:19;;;;;;;;;;;;;;;:31;10903:10;10883:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;10849:11;:19;10861:6;10849:19;;;;;;;;;;;;;;;:31;10869:10;10849:31;;;;;;;;;;;;;;;:103;;;;10778:186;10983:40;10997:6;11005:9;11016:6;10983:13;:40::i;:::-;10976:47;;10661:370;;;;;:::o;19536:142::-;19589:7;19616:54;19654:15;19664:4;;;;;;;;;;;19654:9;:15::i;:::-;19616:33;19633:15;19643:4;;;;;;;;;;;19633:9;:15::i;:::-;19616:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;19609:61;;19536:142;:::o;9545:80::-;9597:5;6828:1;9606:16;;9545:80;:::o;11270:187::-;4466:12;:10;:12::i;:::-;4456:22;;:6;;;;;;;;;;:22;;;4448:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11380:4:::1;11365:12;;:19;;;;:::i;:::-;11349:12;;:35;;11341:44;;;::::0;::::1;;11445:4;11428:12;11413;;:27;;;;:::i;:::-;11412:37;;;;:::i;:::-;11397:12;:52;;;;11270:187:::0;:::o;15079:155::-;15134:15;:27;15150:10;15134:27;;;;;;;;;;;;;;;;;;;;;;;;;15126:36;;;;;;15181:10;15173:28;;:51;15202:21;15173:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15079:155::o;10367:122::-;10422:4;10446:35;10454:7;10463:17;10446:7;:35::i;:::-;10439:42;;10367:122;;;:::o;14847:83::-;4466:12;:10;:12::i;:::-;4456:22;;:6;;;;;;;;;;:22;;;4448:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14906:10:::1;:8;:10::i;:::-;14847:83::o:0;11043:219::-;4466:12;:10;:12::i;:::-;4456:22;;:6;;;;;;;;;;:22;;;4448:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11162:4:::1;11147:12;;:19;;;;:::i;:::-;11128:15;;:38;;11120:47;;;::::0;::::1;;11232:4;11213:14;11198:12;;:29;;;;:::i;:::-;11197:39;;;;:::i;:::-;11179:15;:57;;;;11043:219:::0;:::o;14938:133::-;4466:12;:10;:12::i;:::-;4456:22;;:6;;;;;;;;;;:22;;;4448:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15011:12:::1;;14993:15;:30;;;;15049:12;;15034;:27;;;;14938:133::o:0;19186:158::-;4466:12;:10;:12::i;:::-;4456:22;;:6;;;;;;;;;;:22;;;4448:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19294:8:::1;19280:11;;:22;;;;;;;;;;;;;;;;;;19329:7;19313:13;:23;;;;19186:158:::0;;:::o;15560:213::-;4466:12;:10;:12::i;:::-;4456:22;;:6;;;;;;;;;;:22;;;4448:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15675:5:::1;15658:14;:22;;;;15707:4;15691:13;:20;;;;15743:6;15722:18;:27;;;;15560:213:::0;;;:::o;8170:30::-;;;;;;;;;;;;;:::o;9891:105::-;9957:7;9975:9;:18;9985:7;9975:18;;;;;;;;;;;;;;;;9968:25;;9891:105;;;:::o;4543:148::-;4466:12;:10;:12::i;:::-;4456:22;;:6;;;;;;;;;;:22;;;4448:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4650:1:::1;4613:40;;4634:6;::::0;::::1;;;;;;;;4613:40;;;;;;;;;;;;4681:1;4664:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;4543:148::o:0;6963:63::-;;;;:::o;6896:60::-;;;;:::o;18713:465::-;4466:12;:10;:12::i;:::-;4456:22;;:6;;;;;;;;;;:22;;;4448:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18938:22:::1;18914:21;;:46;;;;;;;;;;;;;;;;;;18994:21;18971:20;;:44;;;;;;;;;;;;;;;;;;19049:21;19026:20;;:44;;;;;;;;;;;;;;;;;;19099:16;19081:15;;:34;;;;;;;;;;;;;;;;;;19149:21;19126:20;;:44;;;;;;;;;;;;;;;;;;18713:465:::0;;;;;:::o;9807:78::-;9859:7;9876;:5;:7::i;:::-;9869:14;;9807:78;:::o;4329:79::-;4367:7;4394:6;;;;;;;;;;;4387:13;;4329:79;:::o;18100:605::-;4466:12;:10;:12::i;:::-;4456:22;;:6;;;;;;;;;;:22;;;4448:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18306:13:::1;18291:12;:28;;;;18345:13;18330:12;:28;;;;18384:13;18369:12;:28;;;;18423:13;18408:12;:28;;;;18457:8;18447:7;:18;;;;18487:84;18562:8;18487:70;18543:13;18487:51;18524:13;18487:32;18505:13;18487;:17;;:32;;;;:::i;:::-;:36;;:51;;;;:::i;:::-;:55;;:70;;;;:::i;:::-;:74;;:84;;;;:::i;:::-;18476:8;:95;;;;18599:15;18582:14;:32;;;;18661:1;18644:14;;:18;;;;:::i;:::-;18633:8;;:29;18625:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;18100:605:::0;;;;;;:::o;9631:84::-;9681:13;9705:7;;;;;;;;;;;;;;;;;9698:14;;9631:84;:::o;8094:19::-;;;;;;;;;;;;;:::o;10497:156::-;10577:4;10601:44;10615:10;10627:9;10638:6;10601:13;:44::i;:::-;10594:51;;10497:156;;;;:::o;3949:21::-;;;;;;;;;;;;:::o;20018:605::-;4466:12;:10;:12::i;:::-;4456:22;;:6;;;;;;;;;;:22;;;4448:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20166:3:::1;20147:9;;:16;;:22;20139:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;20253:6;;:13;;20233:9;;:16;;:33;20225:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;20319:15;20351:6:::0;20347:88:::1;20365:9;;:16;;20361:1;:20;20347:88;;;20418:6;;20425:1;20418:9;;;;;;;:::i;:::-;;;;;;;;20408:7;:19;;;;:::i;:::-;20398:29;;20383:3;;;;;:::i;:::-;;;;20347:88;;;;20470:7;20451:15;20461:4;20451:9;:15::i;:::-;:26;;20443:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;20522:6;20518:102;20536:9;;:16;;20532:1;:20;20518:102;;;20569:43;20584:4;20589:9;;20599:1;20589:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;20602:6;;20609:1;20602:9;;;;;;;:::i;:::-;;;;;;;;20569:14;:43::i;:::-;;20554:3;;;;;:::i;:::-;;;;20518:102;;;;20130:493;20018:605:::0;;;;;:::o;15781:77::-;4466:12;:10;:12::i;:::-;4456:22;;:6;;;;;;;;;;:22;;;4448:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15846:4:::1;15832:11;;:18;;;;;;;;;;;;;;;;;;15781:77::o:0;19686:167::-;19754:7;19781:64;19822:22;:20;:22::i;:::-;19781:36;19794:22;19814:1;19794:15;19804:4;;;;;;;;;;;19794:9;:15::i;:::-;:19;;:22;;;;:::i;:::-;19781:8;:12;;:36;;;;:::i;:::-;:40;;:64;;;;:::i;:::-;19774:71;;19686:167;;;:::o;17798:162::-;4466:12;:10;:12::i;:::-;4456:22;;:6;;;;;;;;;;:22;;;4448:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17903:6:::1;17881:11;:19;17893:6;17881:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;17946:6;17920:15;:23;17936:6;17920:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;17798:162:::0;;:::o;14635:203::-;14704:17;14724:21;14704:41;;14764:20;;;;;;;;;;;14756:38;;:74;14826:3;14807:16;14795:9;:28;;;;:::i;:::-;:34;;;;:::i;:::-;14756:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14693:145;14635:203;:::o;17968:124::-;4466:12;:10;:12::i;:::-;4456:22;;:6;;;;;;;;;;:22;;;4448:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18078:6:::1;18052:15;:23;18068:6;18052:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;17968:124:::0;;:::o;10002:133::-;10086:7;10104:11;:19;10116:6;10104:19;;;;;;;;;;;;;;;:28;10124:7;10104:28;;;;;;;;;;;;;;;;10097:35;;10002:133;;;;:::o;15242:310::-;15323:4;15348:15;:27;15364:10;15348:27;;;;;;;;;;;;;;;;;;;;;;;;;15340:36;;;;;;15397:1;15387:6;:11;15384:95;;15429:12;15423:29;;;15461:4;15423:44;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15414:53;;15384:95;15502:12;15496:28;;;15525:10;15537:6;15496:48;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15489:55;;15242:310;;;;:::o;4699:244::-;4466:12;:10;:12::i;:::-;4456:22;;:6;;;;;;;;;;:22;;;4448:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4808:1:::1;4788:22;;:8;:22;;::::0;4780:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;4898:8;4869:38;;4890:6;::::0;::::1;;;;;;;;4869:38;;;;;;;;;;;;4927:8;4918:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;4699:244:::0;:::o;19352:172::-;4466:12;:10;:12::i;:::-;4456:22;;:6;;;;;;;;;;:22;;;4448:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19457:7:::1;19439:15;:25;;;;19504:12;19475:26;:41;;;;19352:172:::0;;:::o;8024:24::-;;;;;;;;;;;;;:::o;2128:250::-;2186:7;2215:1;2210;:6;2206:47;;2240:1;2233:8;;;;2206:47;2265:9;2281:1;2277;:5;;;;:::i;:::-;2265:17;;2310:1;2305;2301;:5;;;;:::i;:::-;:10;2293:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2369:1;2362:8;;;2128:250;;;;;:::o;2384:132::-;2442:7;2469:39;2473:1;2476;2469:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2462:46;;2384:132;;;;:::o;1930:192::-;2016:7;2049:1;2044;:6;;2052:12;2036:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2076:9;2092:1;2088;:5;;;;:::i;:::-;2076:17;;2113:1;2106:8;;;1930:192;;;;;:::o;11469:1320::-;11561:4;11581:6;;;;;;;;;;;11578:63;;;11597:41;11612:6;11620:9;11631:6;11597:14;:41::i;:::-;11590:48;;;;11578:63;11657:14;:22;11672:6;11657:22;;;;;;;;;;;;;;;;;;;;;;;;;11656:23;:53;;;;;11684:14;:25;11699:9;11684:25;;;;;;;;;;;;;;;;;;;;;;;;;11683:26;11656:53;11653:140;;;11733:11;;;;;;;;;;;11725:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;11653:140;11838:14;:22;11853:6;11838:22;;;;;;;;;;;;;;;;;;;;;;;;;11837:23;:53;;;;;11885:4;11864:26;;:9;:26;;;;11837:53;:84;;;;;11916:4;;;;;;;;;;;11895:26;;:9;:26;;;;11837:84;:105;;;;;11938:4;;;;;;;;;;;11925:17;;:9;:17;;;;11837:105;:137;;;;;11959:15;;;;;;;;;;;11946:28;;:9;:28;;;;11837:137;:174;;;;;11991:20;;;;;;;;;;;11978:33;;:9;:33;;;;11837:174;:205;;;;;12016:15;:26;12032:9;12016:26;;;;;;;;;;;;;;;;;;;;;;;;;12015:27;11837:205;11833:397;;;12058:18;12079:20;12089:9;12079;:20::i;:::-;12058:41;;12147:15;;12136:6;12123:10;:19;;;;:::i;:::-;12122:40;;12114:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;12043:187;11833:397;12283:28;12296:6;12304;12283:12;:28::i;:::-;12328:16;:14;:16::i;:::-;12325:35;;;12347:10;:8;:10::i;:::-;12325:35;12440:53;12462:6;12440:53;;;;;;;;;;;;;;;;;:9;:17;12450:6;12440:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;12420:9;:17;12430:6;12420:17;;;;;;;;;;;;;;;:73;;;;12506:22;12532:11;:19;12544:6;12532:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;12555:11;:22;12567:9;12555:22;;;;;;;;;;;;;;;;;;;;;;;;;12532:45;12531:93;;12590:34;12598:6;12606;12614:9;12590:7;:34::i;:::-;12531:93;;;12581:6;12531:93;12506:118;;12658:40;12683:14;12658:9;:20;12668:9;12658:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;12635:9;:20;12645:9;12635:20;;;;;;;;;;;;;;;:63;;;;12733:9;12716:43;;12725:6;12716:43;;;12744:14;12716:43;;;;;;:::i;:::-;;;;;;;;12777:4;12770:11;;;11469:1320;;;;;;:::o;1788:136::-;1846:7;1873:43;1877:1;1880;1873:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1866:50;;1788:136;;;;:::o;3670:115::-;3723:15;3766:10;3751:26;;3670:115;:::o;15876:1905::-;8319:4;8310:6;;:13;;;;;;;;;;;;;;;;;;15925:27:::1;15955:60;15971:15;;15988:26;;15955:15;:60::i;:::-;:79;;16022:12;;15955:79;;;16018:1;15955:79;15925:109;;16045:23;16071:59;16128:1;16071:52;16114:8;;16071:38;16089:19;16071:13;;:17;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;16045:85;;16141:20;16164:34;16182:15;16164:13;;:17;;:34;;;;:::i;:::-;16141:57;;16211:21;16249:1;16235:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16211:40;;16280:4;16262;16267:1;16262:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;16306:4;;;;;;;;;;;16296;16301:1;16296:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;16323:21;16347;16323:45;;16381:6;;;;;;;;;;;:57;;;16453:12;16480:1;16496:4;16523;16543:15;16381:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16582:17;16602:40;16628:13;16602:21;:25;;:40;;;;:::i;:::-;16582:60;;16655:19;16677:40;16690:26;16714:1;16690:19;:23;;:26;;;;:::i;:::-;16677:8;;:12;;:40;;;;:::i;:::-;16655:62;;16738:26;16767:58;16823:1;16767:51;16806:11;16767:34;16781:19;16767:9;:13;;:34;;;;:::i;:::-;:38;;:51;;;;:::i;:::-;:55;;:58;;;;:::i;:::-;16738:87;;16836:26;16865:44;16897:11;16865:27;16879:12;;16865:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;16836:73;;16920:26;16949:44;16981:11;16949:27;16963:12;;16949:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;16920:73;;17004:26;17033:44;17065:11;17033:27;17047:12;;17033:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;17004:73;;17091:15;17119:20;;;;;;;;;;;17111:34;;17153:18;17111:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17090:86;;;17211:20;;;;;;;;;;;17203:34;;17245:18;17203:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17187:81;;;;;17303:20;;;;;;;;;;;17295:34;;17337:18;17295:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17279:81;;;;;17394:5;17381:18;;17433:1;17415:15;:19;17412:362;;;17450:6;;;;;;;;;;;:22;;;17480:18;17526:4;17550:15;17584:1;17604::::0;17624:21:::1;;;;;;;;;;;17664:15;17450:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17714:48;17726:18;17746:15;17714:48;;;;;;;:::i;:::-;;;;;;;;17412:362;15914:1867;;;;;;;;;;;;8337:5:::0;8328:6;;:14;;;;;;;;;;;;;;;;;;15876:1905::o;1601:181::-;1659:7;1679:9;1695:1;1691;:5;;;;:::i;:::-;1679:17;;1720:1;1715;:6;;1707:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1773:1;1766:8;;;1601:181;;;;:::o;12801:330::-;12894:4;12931:53;12953:6;12931:53;;;;;;;;;;;;;;;;;:9;:17;12941:6;12931:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;12911:9;:17;12921:6;12911:17;;;;;;;;;;;;;;;:73;;;;13018:32;13043:6;13018:9;:20;13028:9;13018:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;12995:9;:20;13005:9;12995:20;;;;;;;;;;;;;;;:55;;;;13083:9;13066:35;;13075:6;13066:35;;;13094:6;13066:35;;;;;;:::i;:::-;;;;;;;;13119:4;13112:11;;12801:330;;;;;:::o;2522:189::-;2608:7;2640:1;2636;:5;2643:12;2628:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2667:9;2683:1;2679;:5;;;;:::i;:::-;2667:17;;2702:1;2695:8;;;2522:189;;;;;:::o;13139:166::-;13236:12;;13226:6;:22;;:49;;;;13252:15;:23;13268:6;13252:23;;;;;;;;;;;;;;;;;;;;;;;;;13226:49;13218:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;13139:166;;:::o;14430:197::-;14479:4;14517;;;;;;;;;;;14503:18;;:10;:18;;;;:38;;;;;14535:6;;;;;;;;;;;14534:7;14503:38;:62;;;;;14554:11;;;;;;;;;;;14503:62;:116;;;;;14606:13;;14578:9;:24;14596:4;14578:24;;;;;;;;;;;;;;;;:41;;14503:116;14496:123;;14430:197;:::o;13435:987::-;13521:7;13551:18;13572;;13551:39;;13619:4;;;;;;;;;;;13606:17;;:9;:17;;;13603:154;;13653:14;;13640:27;;13603:154;;;13698:4;;;;;;;;;;;13688:14;;:6;:14;;;13685:72;;13732:13;;13719:26;;13685:72;13603:154;13769:17;13789:62;13847:3;13830:14;;:20;;;;:::i;:::-;13789:36;13814:10;13789:20;13800:8;;13789:6;:10;;:20;;;;:::i;:::-;:24;;:36;;;;:::i;:::-;:40;;:62;;;;:::i;:::-;13769:82;;13862:18;13883:36;13910:8;;13883:22;13897:7;;13883:9;:13;;:22;;;;:::i;:::-;:26;;:36;;;;:::i;:::-;13862:57;;13930:22;13955:25;13969:10;13955:9;:13;;:25;;;;:::i;:::-;13930:50;;14020:44;14049:14;14020:9;:24;14038:4;14020:24;;;;;;;;;;;;;;;;:28;;:44;;;;:::i;:::-;13993:9;:24;14011:4;13993:24;;;;;;;;;;;;;;;:71;;;;14104:42;14135:10;14104:9;:26;14114:15;;;;;;;;;;;14104:26;;;;;;;;;;;;;;;;:30;;:42;;;;:::i;:::-;14075:9;:26;14085:15;;;;;;;;;;;14075:26;;;;;;;;;;;;;;;:71;;;;14187:4;14162:47;;14171:6;14162:47;;;14194:14;14162:47;;;;;;:::i;:::-;;;;;;;;14246:1;14233:10;:14;14230:144;;;14278:28;14295:10;14278:12;;:16;;:28;;;;:::i;:::-;14263:12;:43;;;;14343:4;;;;;;;;;;;14326:34;;14335:6;14326:34;;;14349:10;14326:34;;;;;;:::i;:::-;;;;;;;;14230:144;14393:21;14404:9;14393:6;:10;;:21;;;;:::i;:::-;14386:28;;;;;;13435:987;;;;;:::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:307::-;790:1;800:113;814:6;811:1;808:13;800:113;;;899:1;894:3;890:11;884:18;880:1;875:3;871:11;864:39;836:2;833:1;829:10;824:15;;800:113;;;931:6;928:1;925:13;922:101;;;1011:1;1002:6;997:3;993:16;986:27;922:101;771:258;722:307;;;:::o;1035:102::-;1076:6;1127:2;1123:7;1118:2;1111:5;1107:14;1103:28;1093:38;;1035:102;;;:::o;1143:364::-;1231:3;1259:39;1292:5;1259:39;:::i;:::-;1314:71;1378:6;1373:3;1314:71;:::i;:::-;1307:78;;1394:52;1439:6;1434:3;1427:4;1420:5;1416:16;1394:52;:::i;:::-;1471:29;1493:6;1471:29;:::i;:::-;1466:3;1462:39;1455:46;;1235:272;1143:364;;;;:::o;1513:313::-;1626:4;1664:2;1653:9;1649:18;1641:26;;1713:9;1707:4;1703:20;1699:1;1688:9;1684:17;1677:47;1741:78;1814:4;1805:6;1741:78;:::i;:::-;1733:86;;1513:313;;;;:::o;1832:90::-;1866:7;1909:5;1902:13;1895:21;1884:32;;1832:90;;;:::o;1928:109::-;2009:21;2024:5;2009:21;:::i;:::-;2004:3;1997:34;1928:109;;:::o;2043:210::-;2130:4;2168:2;2157:9;2153:18;2145:26;;2181:65;2243:1;2232:9;2228:17;2219:6;2181:65;:::i;:::-;2043:210;;;;:::o;2340:117::-;2449:1;2446;2439:12;2463:117;2572:1;2569;2562:12;2586:126;2623:7;2663:42;2656:5;2652:54;2641:65;;2586:126;;;:::o;2718:96::-;2755:7;2784:24;2802:5;2784:24;:::i;:::-;2773:35;;2718:96;;;:::o;2820:122::-;2893:24;2911:5;2893:24;:::i;:::-;2886:5;2883:35;2873:63;;2932:1;2929;2922:12;2873:63;2820:122;:::o;2948:139::-;2994:5;3032:6;3019:20;3010:29;;3048:33;3075:5;3048:33;:::i;:::-;2948:139;;;;:::o;3093:122::-;3166:24;3184:5;3166:24;:::i;:::-;3159:5;3156:35;3146:63;;3205:1;3202;3195:12;3146:63;3093:122;:::o;3221:139::-;3267:5;3305:6;3292:20;3283:29;;3321:33;3348:5;3321:33;:::i;:::-;3221:139;;;;:::o;3366:474::-;3434:6;3442;3491:2;3479:9;3470:7;3466:23;3462:32;3459:119;;;3497:79;;:::i;:::-;3459:119;3617:1;3642:53;3687:7;3678:6;3667:9;3663:22;3642:53;:::i;:::-;3632:63;;3588:117;3744:2;3770:53;3815:7;3806:6;3795:9;3791:22;3770:53;:::i;:::-;3760:63;;3715:118;3366:474;;;;;:::o;3846:::-;3914:6;3922;3971:2;3959:9;3950:7;3946:23;3942:32;3939:119;;;3977:79;;:::i;:::-;3939:119;4097:1;4122:53;4167:7;4158:6;4147:9;4143:22;4122:53;:::i;:::-;4112:63;;4068:117;4224:2;4250:53;4295:7;4286:6;4275:9;4271:22;4250:53;:::i;:::-;4240:63;;4195:118;3846:474;;;;;:::o;4326:619::-;4403:6;4411;4419;4468:2;4456:9;4447:7;4443:23;4439:32;4436:119;;;4474:79;;:::i;:::-;4436:119;4594:1;4619:53;4664:7;4655:6;4644:9;4640:22;4619:53;:::i;:::-;4609:63;;4565:117;4721:2;4747:53;4792:7;4783:6;4772:9;4768:22;4747:53;:::i;:::-;4737:63;;4692:118;4849:2;4875:53;4920:7;4911:6;4900:9;4896:22;4875:53;:::i;:::-;4865:63;;4820:118;4326:619;;;;;:::o;4951:86::-;4986:7;5026:4;5019:5;5015:16;5004:27;;4951:86;;;:::o;5043:112::-;5126:22;5142:5;5126:22;:::i;:::-;5121:3;5114:35;5043:112;;:::o;5161:214::-;5250:4;5288:2;5277:9;5273:18;5265:26;;5301:67;5365:1;5354:9;5350:17;5341:6;5301:67;:::i;:::-;5161:214;;;;:::o;5381:329::-;5440:6;5489:2;5477:9;5468:7;5464:23;5460:32;5457:119;;;5495:79;;:::i;:::-;5457:119;5615:1;5640:53;5685:7;5676:6;5665:9;5661:22;5640:53;:::i;:::-;5630:63;;5586:117;5381:329;;;;:::o;5716:::-;5775:6;5824:2;5812:9;5803:7;5799:23;5795:32;5792:119;;;5830:79;;:::i;:::-;5792:119;5950:1;5975:53;6020:7;6011:6;6000:9;5996:22;5975:53;:::i;:::-;5965:63;;5921:117;5716:329;;;;:::o;6051:116::-;6121:21;6136:5;6121:21;:::i;:::-;6114:5;6111:32;6101:60;;6157:1;6154;6147:12;6101:60;6051:116;:::o;6173:133::-;6216:5;6254:6;6241:20;6232:29;;6270:30;6294:5;6270:30;:::i;:::-;6173:133;;;;:::o;6312:468::-;6377:6;6385;6434:2;6422:9;6413:7;6409:23;6405:32;6402:119;;;6440:79;;:::i;:::-;6402:119;6560:1;6585:50;6627:7;6618:6;6607:9;6603:22;6585:50;:::i;:::-;6575:60;;6531:114;6684:2;6710:53;6755:7;6746:6;6735:9;6731:22;6710:53;:::i;:::-;6700:63;;6655:118;6312:468;;;;;:::o;6786:619::-;6863:6;6871;6879;6928:2;6916:9;6907:7;6903:23;6899:32;6896:119;;;6934:79;;:::i;:::-;6896:119;7054:1;7079:53;7124:7;7115:6;7104:9;7100:22;7079:53;:::i;:::-;7069:63;;7025:117;7181:2;7207:53;7252:7;7243:6;7232:9;7228:22;7207:53;:::i;:::-;7197:63;;7152:118;7309:2;7335:53;7380:7;7371:6;7360:9;7356:22;7335:53;:::i;:::-;7325:63;;7280:118;6786:619;;;;;:::o;7411:911::-;7506:6;7514;7522;7530;7538;7587:3;7575:9;7566:7;7562:23;7558:33;7555:120;;;7594:79;;:::i;:::-;7555:120;7714:1;7739:53;7784:7;7775:6;7764:9;7760:22;7739:53;:::i;:::-;7729:63;;7685:117;7841:2;7867:53;7912:7;7903:6;7892:9;7888:22;7867:53;:::i;:::-;7857:63;;7812:118;7969:2;7995:53;8040:7;8031:6;8020:9;8016:22;7995:53;:::i;:::-;7985:63;;7940:118;8097:2;8123:53;8168:7;8159:6;8148:9;8144:22;8123:53;:::i;:::-;8113:63;;8068:118;8225:3;8252:53;8297:7;8288:6;8277:9;8273:22;8252:53;:::i;:::-;8242:63;;8196:119;7411:911;;;;;;;;:::o;8328:118::-;8415:24;8433:5;8415:24;:::i;:::-;8410:3;8403:37;8328:118;;:::o;8452:222::-;8545:4;8583:2;8572:9;8568:18;8560:26;;8596:71;8664:1;8653:9;8649:17;8640:6;8596:71;:::i;:::-;8452:222;;;;:::o;8680:1057::-;8784:6;8792;8800;8808;8816;8824;8873:3;8861:9;8852:7;8848:23;8844:33;8841:120;;;8880:79;;:::i;:::-;8841:120;9000:1;9025:53;9070:7;9061:6;9050:9;9046:22;9025:53;:::i;:::-;9015:63;;8971:117;9127:2;9153:53;9198:7;9189:6;9178:9;9174:22;9153:53;:::i;:::-;9143:63;;9098:118;9255:2;9281:53;9326:7;9317:6;9306:9;9302:22;9281:53;:::i;:::-;9271:63;;9226:118;9383:2;9409:53;9454:7;9445:6;9434:9;9430:22;9409:53;:::i;:::-;9399:63;;9354:118;9511:3;9538:53;9583:7;9574:6;9563:9;9559:22;9538:53;:::i;:::-;9528:63;;9482:119;9640:3;9667:53;9712:7;9703:6;9692:9;9688:22;9667:53;:::i;:::-;9657:63;;9611:119;8680:1057;;;;;;;;:::o;9743:117::-;9852:1;9849;9842:12;9866:117;9975:1;9972;9965:12;9989:117;10098:1;10095;10088:12;10129:568;10202:8;10212:6;10262:3;10255:4;10247:6;10243:17;10239:27;10229:122;;10270:79;;:::i;:::-;10229:122;10383:6;10370:20;10360:30;;10413:18;10405:6;10402:30;10399:117;;;10435:79;;:::i;:::-;10399:117;10549:4;10541:6;10537:17;10525:29;;10603:3;10595:4;10587:6;10583:17;10573:8;10569:32;10566:41;10563:128;;;10610:79;;:::i;:::-;10563:128;10129:568;;;;;:::o;10720:::-;10793:8;10803:6;10853:3;10846:4;10838:6;10834:17;10830:27;10820:122;;10861:79;;:::i;:::-;10820:122;10974:6;10961:20;10951:30;;11004:18;10996:6;10993:30;10990:117;;;11026:79;;:::i;:::-;10990:117;11140:4;11132:6;11128:17;11116:29;;11194:3;11186:4;11178:6;11174:17;11164:8;11160:32;11157:41;11154:128;;;11201:79;;:::i;:::-;11154:128;10720:568;;;;;:::o;11294:1079::-;11425:6;11433;11441;11449;11457;11506:2;11494:9;11485:7;11481:23;11477:32;11474:119;;;11512:79;;:::i;:::-;11474:119;11632:1;11657:53;11702:7;11693:6;11682:9;11678:22;11657:53;:::i;:::-;11647:63;;11603:117;11787:2;11776:9;11772:18;11759:32;11818:18;11810:6;11807:30;11804:117;;;11840:79;;:::i;:::-;11804:117;11953:80;12025:7;12016:6;12005:9;12001:22;11953:80;:::i;:::-;11935:98;;;;11730:313;12110:2;12099:9;12095:18;12082:32;12141:18;12133:6;12130:30;12127:117;;;12163:79;;:::i;:::-;12127:117;12276:80;12348:7;12339:6;12328:9;12324:22;12276:80;:::i;:::-;12258:98;;;;12053:313;11294:1079;;;;;;;;:::o;12379:468::-;12444:6;12452;12501:2;12489:9;12480:7;12476:23;12472:32;12469:119;;;12507:79;;:::i;:::-;12469:119;12627:1;12652:53;12697:7;12688:6;12677:9;12673:22;12652:53;:::i;:::-;12642:63;;12598:117;12754:2;12780:50;12822:7;12813:6;12802:9;12798:22;12780:50;:::i;:::-;12770:60;;12725:115;12379:468;;;;;:::o;12853:474::-;12921:6;12929;12978:2;12966:9;12957:7;12953:23;12949:32;12946:119;;;12984:79;;:::i;:::-;12946:119;13104:1;13129:53;13174:7;13165:6;13154:9;13150:22;13129:53;:::i;:::-;13119:63;;13075:117;13231:2;13257:53;13302:7;13293:6;13282:9;13278:22;13257:53;:::i;:::-;13247:63;;13202:118;12853:474;;;;;:::o;13333:60::-;13361:3;13382:5;13375:12;;13333:60;;;:::o;13399:142::-;13449:9;13482:53;13500:34;13509:24;13527:5;13509:24;:::i;:::-;13500:34;:::i;:::-;13482:53;:::i;:::-;13469:66;;13399:142;;;:::o;13547:126::-;13597:9;13630:37;13661:5;13630:37;:::i;:::-;13617:50;;13547:126;;;:::o;13679:144::-;13747:9;13780:37;13811:5;13780:37;:::i;:::-;13767:50;;13679:144;;;:::o;13829:167::-;13934:55;13983:5;13934:55;:::i;:::-;13929:3;13922:68;13829:167;;:::o;14002:258::-;14113:4;14151:2;14140:9;14136:18;14128:26;;14164:89;14250:1;14239:9;14235:17;14226:6;14164:89;:::i;:::-;14002:258;;;;:::o;14266:182::-;14406:34;14402:1;14394:6;14390:14;14383:58;14266:182;:::o;14454:366::-;14596:3;14617:67;14681:2;14676:3;14617:67;:::i;:::-;14610:74;;14693:93;14782:3;14693:93;:::i;:::-;14811:2;14806:3;14802:12;14795:19;;14454:366;;;:::o;14826:419::-;14992:4;15030:2;15019:9;15015:18;15007:26;;15079:9;15073:4;15069:20;15065:1;15054:9;15050:17;15043:47;15107:131;15233:4;15107:131;:::i;:::-;15099:139;;14826:419;;;:::o;15251:180::-;15299:77;15296:1;15289:88;15396:4;15393:1;15386:15;15420:4;15417:1;15410:15;15437:180;15485:77;15482:1;15475:88;15582:4;15579:1;15572:15;15606:4;15603:1;15596:15;15623:185;15663:1;15680:20;15698:1;15680:20;:::i;:::-;15675:25;;15714:20;15732:1;15714:20;:::i;:::-;15709:25;;15753:1;15743:35;;15758:18;;:::i;:::-;15743:35;15800:1;15797;15793:9;15788:14;;15623:185;;;;:::o;15814:348::-;15854:7;15877:20;15895:1;15877:20;:::i;:::-;15872:25;;15911:20;15929:1;15911:20;:::i;:::-;15906:25;;16099:1;16031:66;16027:74;16024:1;16021:81;16016:1;16009:9;16002:17;15998:105;15995:131;;;16106:18;;:::i;:::-;15995:131;16154:1;16151;16147:9;16136:20;;15814:348;;;;:::o;16168:179::-;16308:31;16304:1;16296:6;16292:14;16285:55;16168:179;:::o;16353:366::-;16495:3;16516:67;16580:2;16575:3;16516:67;:::i;:::-;16509:74;;16592:93;16681:3;16592:93;:::i;:::-;16710:2;16705:3;16701:12;16694:19;;16353:366;;;:::o;16725:419::-;16891:4;16929:2;16918:9;16914:18;16906:26;;16978:9;16972:4;16968:20;16964:1;16953:9;16949:17;16942:47;17006:131;17132:4;17006:131;:::i;:::-;16998:139;;16725:419;;;:::o;17150:232::-;17290:34;17286:1;17278:6;17274:14;17267:58;17359:15;17354:2;17346:6;17342:15;17335:40;17150:232;:::o;17388:366::-;17530:3;17551:67;17615:2;17610:3;17551:67;:::i;:::-;17544:74;;17627:93;17716:3;17627:93;:::i;:::-;17745:2;17740:3;17736:12;17729:19;;17388:366;;;:::o;17760:419::-;17926:4;17964:2;17953:9;17949:18;17941:26;;18013:9;18007:4;18003:20;17999:1;17988:9;17984:17;17977:47;18041:131;18167:4;18041:131;:::i;:::-;18033:139;;17760:419;;;:::o;18185:227::-;18325:34;18321:1;18313:6;18309:14;18302:58;18394:10;18389:2;18381:6;18377:15;18370:35;18185:227;:::o;18418:366::-;18560:3;18581:67;18645:2;18640:3;18581:67;:::i;:::-;18574:74;;18657:93;18746:3;18657:93;:::i;:::-;18775:2;18770:3;18766:12;18759:19;;18418:366;;;:::o;18790:419::-;18956:4;18994:2;18983:9;18979:18;18971:26;;19043:9;19037:4;19033:20;19029:1;19018:9;19014:17;19007:47;19071:131;19197:4;19071:131;:::i;:::-;19063:139;;18790:419;;;:::o;19215:180::-;19263:77;19260:1;19253:88;19360:4;19357:1;19350:15;19384:4;19381:1;19374:15;19401:305;19441:3;19460:20;19478:1;19460:20;:::i;:::-;19455:25;;19494:20;19512:1;19494:20;:::i;:::-;19489:25;;19648:1;19580:66;19576:74;19573:1;19570:81;19567:107;;;19654:18;;:::i;:::-;19567:107;19698:1;19695;19691:9;19684:16;;19401:305;;;;:::o;19712:233::-;19751:3;19774:24;19792:5;19774:24;:::i;:::-;19765:33;;19820:66;19813:5;19810:77;19807:103;;19890:18;;:::i;:::-;19807:103;19937:1;19930:5;19926:13;19919:20;;19712:233;;;:::o;19951:177::-;20091:29;20087:1;20079:6;20075:14;20068:53;19951:177;:::o;20134:366::-;20276:3;20297:67;20361:2;20356:3;20297:67;:::i;:::-;20290:74;;20373:93;20462:3;20373:93;:::i;:::-;20491:2;20486:3;20482:12;20475:19;;20134:366;;;:::o;20506:419::-;20672:4;20710:2;20699:9;20695:18;20687:26;;20759:9;20753:4;20749:20;20745:1;20734:9;20730:17;20723:47;20787:131;20913:4;20787:131;:::i;:::-;20779:139;;20506:419;;;:::o;20931:143::-;20988:5;21019:6;21013:13;21004:22;;21035:33;21062:5;21035:33;:::i;:::-;20931:143;;;;:::o;21080:351::-;21150:6;21199:2;21187:9;21178:7;21174:23;21170:32;21167:119;;;21205:79;;:::i;:::-;21167:119;21325:1;21350:64;21406:7;21397:6;21386:9;21382:22;21350:64;:::i;:::-;21340:74;;21296:128;21080:351;;;;:::o;21437:332::-;21558:4;21596:2;21585:9;21581:18;21573:26;;21609:71;21677:1;21666:9;21662:17;21653:6;21609:71;:::i;:::-;21690:72;21758:2;21747:9;21743:18;21734:6;21690:72;:::i;:::-;21437:332;;;;;:::o;21775:137::-;21829:5;21860:6;21854:13;21845:22;;21876:30;21900:5;21876:30;:::i;:::-;21775:137;;;;:::o;21918:345::-;21985:6;22034:2;22022:9;22013:7;22009:23;22005:32;22002:119;;;22040:79;;:::i;:::-;22002:119;22160:1;22185:61;22238:7;22229:6;22218:9;22214:22;22185:61;:::i;:::-;22175:71;;22131:125;21918:345;;;;:::o;22269:225::-;22409:34;22405:1;22397:6;22393:14;22386:58;22478:8;22473:2;22465:6;22461:15;22454:33;22269:225;:::o;22500:366::-;22642:3;22663:67;22727:2;22722:3;22663:67;:::i;:::-;22656:74;;22739:93;22828:3;22739:93;:::i;:::-;22857:2;22852:3;22848:12;22841:19;;22500:366;;;:::o;22872:419::-;23038:4;23076:2;23065:9;23061:18;23053:26;;23125:9;23119:4;23115:20;23111:1;23100:9;23096:17;23089:47;23153:131;23279:4;23153:131;:::i;:::-;23145:139;;22872:419;;;:::o;23297:220::-;23437:34;23433:1;23425:6;23421:14;23414:58;23506:3;23501:2;23493:6;23489:15;23482:28;23297:220;:::o;23523:366::-;23665:3;23686:67;23750:2;23745:3;23686:67;:::i;:::-;23679:74;;23762:93;23851:3;23762:93;:::i;:::-;23880:2;23875:3;23871:12;23864:19;;23523:366;;;:::o;23895:419::-;24061:4;24099:2;24088:9;24084:18;24076:26;;24148:9;24142:4;24138:20;24134:1;24123:9;24119:17;24112:47;24176:131;24302:4;24176:131;:::i;:::-;24168:139;;23895:419;;;:::o;24320:191::-;24360:4;24380:20;24398:1;24380:20;:::i;:::-;24375:25;;24414:20;24432:1;24414:20;:::i;:::-;24409:25;;24453:1;24450;24447:8;24444:34;;;24458:18;;:::i;:::-;24444:34;24503:1;24500;24496:9;24488:17;;24320:191;;;;:::o;24517:170::-;24657:22;24653:1;24645:6;24641:14;24634:46;24517:170;:::o;24693:366::-;24835:3;24856:67;24920:2;24915:3;24856:67;:::i;:::-;24849:74;;24932:93;25021:3;24932:93;:::i;:::-;25050:2;25045:3;25041:12;25034:19;;24693:366;;;:::o;25065:419::-;25231:4;25269:2;25258:9;25254:18;25246:26;;25318:9;25312:4;25308:20;25304:1;25293:9;25289:17;25282:47;25346:131;25472:4;25346:131;:::i;:::-;25338:139;;25065:419;;;:::o;25490:249::-;25630:34;25626:1;25618:6;25614:14;25607:58;25699:32;25694:2;25686:6;25682:15;25675:57;25490:249;:::o;25745:366::-;25887:3;25908:67;25972:2;25967:3;25908:67;:::i;:::-;25901:74;;25984:93;26073:3;25984:93;:::i;:::-;26102:2;26097:3;26093:12;26086:19;;25745:366;;;:::o;26117:419::-;26283:4;26321:2;26310:9;26306:18;26298:26;;26370:9;26364:4;26360:20;26356:1;26345:9;26341:17;26334:47;26398:131;26524:4;26398:131;:::i;:::-;26390:139;;26117:419;;;:::o;26542:180::-;26590:77;26587:1;26580:88;26687:4;26684:1;26677:15;26711:4;26708:1;26701:15;26728:85;26773:7;26802:5;26791:16;;26728:85;;;:::o;26819:158::-;26877:9;26910:61;26928:42;26937:32;26963:5;26937:32;:::i;:::-;26928:42;:::i;:::-;26910:61;:::i;:::-;26897:74;;26819:158;;;:::o;26983:147::-;27078:45;27117:5;27078:45;:::i;:::-;27073:3;27066:58;26983:147;;:::o;27136:114::-;27203:6;27237:5;27231:12;27221:22;;27136:114;;;:::o;27256:184::-;27355:11;27389:6;27384:3;27377:19;27429:4;27424:3;27420:14;27405:29;;27256:184;;;;:::o;27446:132::-;27513:4;27536:3;27528:11;;27566:4;27561:3;27557:14;27549:22;;27446:132;;;:::o;27584:108::-;27661:24;27679:5;27661:24;:::i;:::-;27656:3;27649:37;27584:108;;:::o;27698:179::-;27767:10;27788:46;27830:3;27822:6;27788:46;:::i;:::-;27866:4;27861:3;27857:14;27843:28;;27698:179;;;;:::o;27883:113::-;27953:4;27985;27980:3;27976:14;27968:22;;27883:113;;;:::o;28032:732::-;28151:3;28180:54;28228:5;28180:54;:::i;:::-;28250:86;28329:6;28324:3;28250:86;:::i;:::-;28243:93;;28360:56;28410:5;28360:56;:::i;:::-;28439:7;28470:1;28455:284;28480:6;28477:1;28474:13;28455:284;;;28556:6;28550:13;28583:63;28642:3;28627:13;28583:63;:::i;:::-;28576:70;;28669:60;28722:6;28669:60;:::i;:::-;28659:70;;28515:224;28502:1;28499;28495:9;28490:14;;28455:284;;;28459:14;28755:3;28748:10;;28156:608;;;28032:732;;;;:::o;28770:831::-;29033:4;29071:3;29060:9;29056:19;29048:27;;29085:71;29153:1;29142:9;29138:17;29129:6;29085:71;:::i;:::-;29166:80;29242:2;29231:9;29227:18;29218:6;29166:80;:::i;:::-;29293:9;29287:4;29283:20;29278:2;29267:9;29263:18;29256:48;29321:108;29424:4;29415:6;29321:108;:::i;:::-;29313:116;;29439:72;29507:2;29496:9;29492:18;29483:6;29439:72;:::i;:::-;29521:73;29589:3;29578:9;29574:19;29565:6;29521:73;:::i;:::-;28770:831;;;;;;;;:::o;29607:147::-;29708:11;29745:3;29730:18;;29607:147;;;;:::o;29760:114::-;;:::o;29880:398::-;30039:3;30060:83;30141:1;30136:3;30060:83;:::i;:::-;30053:90;;30152:93;30241:3;30152:93;:::i;:::-;30270:1;30265:3;30261:11;30254:18;;29880:398;;;:::o;30284:379::-;30468:3;30490:147;30633:3;30490:147;:::i;:::-;30483:154;;30654:3;30647:10;;30284:379;;;:::o;30669:807::-;30918:4;30956:3;30945:9;30941:19;30933:27;;30970:71;31038:1;31027:9;31023:17;31014:6;30970:71;:::i;:::-;31051:72;31119:2;31108:9;31104:18;31095:6;31051:72;:::i;:::-;31133:80;31209:2;31198:9;31194:18;31185:6;31133:80;:::i;:::-;31223;31299:2;31288:9;31284:18;31275:6;31223:80;:::i;:::-;31313:73;31381:3;31370:9;31366:19;31357:6;31313:73;:::i;:::-;31396;31464:3;31453:9;31449:19;31440:6;31396:73;:::i;:::-;30669:807;;;;;;;;;:::o;31482:663::-;31570:6;31578;31586;31635:2;31623:9;31614:7;31610:23;31606:32;31603:119;;;31641:79;;:::i;:::-;31603:119;31761:1;31786:64;31842:7;31833:6;31822:9;31818:22;31786:64;:::i;:::-;31776:74;;31732:128;31899:2;31925:64;31981:7;31972:6;31961:9;31957:22;31925:64;:::i;:::-;31915:74;;31870:129;32038:2;32064:64;32120:7;32111:6;32100:9;32096:22;32064:64;:::i;:::-;32054:74;;32009:129;31482:663;;;;;:::o;32151:332::-;32272:4;32310:2;32299:9;32295:18;32287:26;;32323:71;32391:1;32380:9;32376:17;32367:6;32323:71;:::i;:::-;32404:72;32472:2;32461:9;32457:18;32448:6;32404:72;:::i;:::-;32151:332;;;;;:::o;32489:177::-;32629:29;32625:1;32617:6;32613:14;32606:53;32489:177;:::o;32672:366::-;32814:3;32835:67;32899:2;32894:3;32835:67;:::i;:::-;32828:74;;32911:93;33000:3;32911:93;:::i;:::-;33029:2;33024:3;33020:12;33013:19;;32672:366;;;:::o;33044:419::-;33210:4;33248:2;33237:9;33233:18;33225:26;;33297:9;33291:4;33287:20;33283:1;33272:9;33268:17;33261:47;33325:131;33451:4;33325:131;:::i;:::-;33317:139;;33044:419;;;:::o;33469:167::-;33609:19;33605:1;33597:6;33593:14;33586:43;33469:167;:::o;33642:366::-;33784:3;33805:67;33869:2;33864:3;33805:67;:::i;:::-;33798:74;;33881:93;33970:3;33881:93;:::i;:::-;33999:2;33994:3;33990:12;33983:19;;33642:366;;;:::o;34014:419::-;34180:4;34218:2;34207:9;34203:18;34195:26;;34267:9;34261:4;34257:20;34253:1;34242:9;34238:17;34231:47;34295:131;34421:4;34295:131;:::i;:::-;34287:139;;34014:419;;;:::o

Swarm Source

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