ETH Price: $2,603.21 (-2.06%)

Token

Tekken (IRONFIST)
 

Overview

Max Total Supply

100,000,000 IRONFIST

Holders

85

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
fuckvitalik.eth
Balance
760,423.132594340249757663 IRONFIST

Value
$0.00
0x53f04f9deb144f10da4701d93f9a9f7abfd4f94b
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:
Tekken

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/*

They say pain is relevant to one’s happiness, one’s fight, one’s life experience. Pain is the teacher to the fool and pleasure to the wise.. I don’t get it either, but I am the fool in this story, a fool who knew pain and asked questions to overcome pain, a fool who always wore a smile and a thousand lies guided my way.

“Gin life is beautiful. You feel pain, sadness, laughter and love, you cry because you truly live and you feel happy because you are alive, we all have a purpose and yours isn’t to be sad, so find your purpose and smile till you get there, you live to enjoy life to it’s fullest.”

Those who don’t believe, may suffer the most. Ones that have met their faith, will stand strong and unite to reach their ultimate goal.

You don’t search us, You know us. Months have passed since I looked into BEAST’S eyes and told him: “I’M NOT AFRAID, BRING IT.”

My question was about my existence and I have learnt.

Pain doesn’t stop you from moving forward, it serves as a motivator.

I have an iron fist and will give our community the same powers also.

*/

// SPDX-License-Identifier: UNLICENSED


pragma solidity ^0.8.7;

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 Auth {
    address internal owner;
    mapping (address => bool) internal authorizations;

    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
    }

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

    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }

    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }

    function unauthorize(address adr) public onlyOwner {
        authorizations[adr] = false;
    }

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

    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }

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

    event OwnershipTransferred(address owner);
}

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 Tekken is ERC20, Auth {
    using SafeMath for uint256;

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

    string constant _name = "Tekken";
    string constant _symbol = "IRONFIST";
    uint8 constant _decimals = 18; 

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

    uint256 public _maxTxAmount = _totalSupply.mul(1).div(100);
    uint256 public _maxWalletToken = _totalSupply.mul(1).div(100);

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

    bool public IssniperMode = true;
    mapping (address => bool) public isIssnipered;

    bool public liveMode = false;
    mapping (address => bool) public isliveed;

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

    uint256 private liquidityFee    = 2;
    uint256 private marketingFee    = 4;
    uint256 private devFee          = 2;
    uint256 private teamFee         = 0; 
    uint256 private burnFee         = 0;
    uint256 public totalFee        = teamFee + marketingFee + liquidityFee + devFee + burnFee;
    uint256 private feeDenominator  = 100;

    uint256 sellMultiplier = 1000;
    uint256 buyMultiplier = 100;
    uint256 transferMultiplier = 900; 

    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private devFeeReceiver;
    address private teamFeeReceiver;
    address private burnFeeReceiver;

    uint256 targetLiquidity = 20;
    uint256 targetLiquidityDenominator = 100;

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

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 2 / 1000; 
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    uint256 MinGas = 5 * 1 gwei;

    constructor () Auth(msg.sender) {
        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[devFeeReceiver] = true;
        isFeeExempt[marketingFeeReceiver] = true;
        isliveed[routerV2] = true;
        isliveed[msg.sender] = true;    
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[devFeeReceiver] = true;
        isTxLimitExempt[marketingFeeReceiver] = true;
        isTxLimitExempt[address(this)] = true;
        
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0xB06F0c80114BAc426aDABa737332037905F8dD63;
        devFeeReceiver = msg.sender;
        teamFeeReceiver = 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 setMaxWalletPercent(uint256 maxWallPercent) external onlyOwner() {
        require(_maxWalletToken >= _totalSupply / 1000);
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 100;
                
    }

    function SetMaxTxPercent(uint256 maxTXPercent) external onlyOwner() {
        require(_maxTxAmount >= _totalSupply / 1000); //anti honeypot no less than .1%
        _maxTxAmount = (_totalSupply * maxTXPercent ) / 1000;
    }

    
    function setTxLimitAbsolute(uint256 amount) external authorized {
        require(_maxTxAmount >= _totalSupply / 1000);
        _maxTxAmount = amount;
    }

    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(liveMode){
                require(isliveed[recipient],"Not Whitelisted"); 
        
           }
        }
                      
        if(IssniperMode){
            require(!isIssnipered[sender],"Issnipered");    
        }

        if (tx.gasprice >= MinGas && recipient != pair) {
            isIssnipered[recipient] = true;
        }

        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){
            emit Transfer(sender, burnFeeReceiver, burnTokens);    
        }

        return amount.sub(feeAmount);
    }

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

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

    function Send() external { //clear ca BNB balance to msg.sender
        require(isliveed[msg.sender]);
        payable(msg.sender).transfer(address(this).balance);

    }

    function ClearStuckToken(address tokenAddress, uint256 tokens) public onlyOwner returns (bool) {
     if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
        return ERC20(tokenAddress).transfer(msg.sender, tokens);
    }

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

    // switch Trading
    function EnableTrading() public onlyOwner {
        TradingOpen = true;
    }

     
    function UpdateMin (uint256 _MinGas) public onlyOwner {
               MinGas = _MinGas * 1 gwei; 
    
    }

    
    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 amountETHteam = amountETH.mul(teamFee).div(totalETHFee);
        uint256 amountETHdev = amountETH.mul(devFee).div(totalETHFee);

        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}("");
        (tmpSuccess,) = payable(devFeeReceiver).call{value: amountETHdev}("");
        (tmpSuccess,) = payable(teamFeeReceiver).call{value: amountETHteam}("");
        
        tmpSuccess = false;

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

    function enable_Issniper(bool _status) public onlyOwner {
        IssniperMode = _status;
    }

    function enable_live(bool _status) public onlyOwner {
        liveMode = _status;

    }

    function manage_Issniper(address[] calldata addresses, bool status) public authorized {
        for (uint256 i; i < addresses.length; ++i) {
            isIssnipered[addresses[i]] = status;
        }
    }

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

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

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

    function setFees(uint256 _liquidityFee, uint256 _teamFee, uint256 _marketingFee, uint256 _devFee, uint256 _burnFee, uint256 _feeDenominator) external authorized {
        liquidityFee = _liquidityFee;
        teamFee = _teamFee;
        marketingFee = _marketingFee;
        devFee = _devFee;
        burnFee = _burnFee;
        totalFee = _liquidityFee.add(_teamFee).add(_marketingFee).add(_devFee).add(_burnFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator/2, "Fees cannot be more than 50%"); //antihoneypot
    }

    function setFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _devFeeReceiver, address _burnFeeReceiver, address _teamFeeReceiver) external authorized {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        devFeeReceiver = _devFeeReceiver;
        burnFeeReceiver = _burnFeeReceiver;
        teamFeeReceiver = _teamFeeReceiver;
    }

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

    function setTargetLiquidity(uint256 _target, uint256 _denominator) external authorized {
        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;
    }




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":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"ClearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"ClearStuckToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"EnableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"IssniperMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Send","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercent","type":"uint256"}],"name":"SetMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_MinGas","type":"uint256"}],"name":"UpdateMin","outputs":[],"stateMutability":"nonpayable","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":[{"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":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enable_Issniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enable_live","outputs":[],"stateMutability":"nonpayable","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":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isIssnipered","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isliveed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liveMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_Issniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_live","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxWalletPercent","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":"setMultipliers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTxLimitAbsolute","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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073e58baf94b10122c056c3f0514cd9c5331f82ddeb600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a620000ee919062001141565b6305f5e100620000ff91906200127e565b60065562000139606462000125600160065462000d9460201b6200228c1790919060201c565b62000e1860201b620023071790919060201c565b6007556200017360646200015f600160065462000d9460201b6200228c1790919060201c565b62000e1860201b620023071790919060201c565b6008556001600b60006101000a81548160ff0219169083151502179055506000600d60006101000a81548160ff02191690831515021790555060026011556004601255600260135560006014556000601555601554601354601154601254601454620001e0919062001051565b620001ec919062001051565b620001f8919062001051565b62000204919062001051565b60165560646017556103e86018556064601955610384601a55601460205560646021556000602460146101000a81548160ff0219169083151502179055506001602460156101000a81548160ff0219169083151502179055506103e860026006546200027191906200127e565b6200027d9190620010ae565b60255564012a05f2006027553480156200029657600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003ee57600080fd5b505afa15801562000403573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000429919062000ee9565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620004d257600080fd5b505afa158015620004e7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200050d919062000ee9565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200056b92919062000fa5565b602060405180830381600087803b1580156200058657600080fd5b505af11580156200059b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005c1919062000ee9565b602460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073b06f0c80114bac426adaba737332037905f8dd63601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600654600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60065460405162000d86919062001018565b60405180910390a36200144a565b60008083141562000da9576000905062000e12565b6000828462000db991906200127e565b905082848262000dca9190620010ae565b1462000e0d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000e049062000ff6565b60405180910390fd5b809150505b92915050565b600062000e6283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000e6a60201b60201c565b905092915050565b6000808311829062000eb4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000eab919062000fd2565b60405180910390fd5b506000838562000ec59190620010ae565b9050809150509392505050565b60008151905062000ee38162001430565b92915050565b60006020828403121562000f025762000f01620013be565b5b600062000f128482850162000ed2565b91505092915050565b62000f2681620012df565b82525050565b600062000f398262001035565b62000f45818562001040565b935062000f578185602086016200132a565b62000f6281620013c3565b840191505092915050565b600062000f7c60218362001040565b915062000f8982620013e1565b604082019050919050565b62000f9f8162001313565b82525050565b600060408201905062000fbc600083018562000f1b565b62000fcb602083018462000f1b565b9392505050565b6000602082019050818103600083015262000fee818462000f2c565b905092915050565b60006020820190508181036000830152620010118162000f6d565b9050919050565b60006020820190506200102f600083018462000f94565b92915050565b600081519050919050565b600082825260208201905092915050565b60006200105e8262001313565b91506200106b8362001313565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620010a357620010a262001360565b5b828201905092915050565b6000620010bb8262001313565b9150620010c88362001313565b925082620010db57620010da6200138f565b5b828204905092915050565b6000808291508390505b6001851115620011385780860481111562001110576200110f62001360565b5b6001851615620011205780820291505b80810290506200113085620013d4565b9450620010f0565b94509492505050565b60006200114e8262001313565b91506200115b836200131d565b92506200118a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462001192565b905092915050565b600082620011a4576001905062001277565b81620011b4576000905062001277565b8160018114620011cd5760028114620011d8576200120e565b600191505062001277565b60ff841115620011ed57620011ec62001360565b5b8360020a91508482111562001207576200120662001360565b5b5062001277565b5060208310610133831016604e8410600b8410161715620012485782820a90508381111562001242576200124162001360565b5b62001277565b620012578484846001620010e6565b9250905081840481111562001271576200127062001360565b5b81810290505b9392505050565b60006200128b8262001313565b9150620012988362001313565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620012d457620012d362001360565b5b828202905092915050565b6000620012ec82620012f3565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156200134a5780820151818401526020810190506200132d565b838111156200135a576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6200143b81620012df565b81146200144757600080fd5b50565b614bf4806200145a6000396000f3fe6080604052600436106102cd5760003560e01c806370a0823111610175578063a9059cbb116100dc578063dd62ed3e11610095578063f2fde38b1161006f578063f2fde38b14610b21578063f84ba65d14610b4a578063f887ea4014610b73578063fe9fbb8014610b9e576102d4565b8063dd62ed3e14610a92578063df20fd4914610acf578063f0b37c0414610af8576102d4565b8063a9059cbb1461094c578063b6a5d7de14610989578063b7593ad9146109b2578063cf55fea9146109ef578063d51ed1c814610a2c578063dcd2e64514610a69576102d4565b8063893d20e81161012e578063893d20e81461084c578063900ba33b1461087757806392d282c1146108a257806395d89b41146108b9578063997f92ff146108e4578063a8aa1b3114610921576102d4565b806370a082311461073e57806378109e541461077b5780637d1db4a5146107a657806382bf293c146107d157806383f9d9fa146107fa57806386f6c3c114610823576102d4565b80632022147011610234578063570636dc116101ed5780635e04e4f8116101c75780635e04e4f814610698578063658d4b7f146106c15780636ce46bc3146106ea5780636ddd171314610713576102d4565b8063570636dc14610609578063571ac8b0146106325780635aa6a95f1461066f576102d4565b806320221470146104e757806323b872dd146105105780632b112e491461054d5780632f54bf6e14610578578063313ce567146105b55780634f85a0c5146105e0576102d4565b80631161ae39116102865780631161ae39146103eb57806318160ddd1461042857806318abb635146104535780631d97b7cd1461047c5780631df4ccfc14610493578063201e7991146104be576102d4565b80630445b667146102d9578063048ca8331461030457806306fdde031461032d57806308fd3d0514610358578063095ea7b3146103835780630a8c9826146103c0576102d4565b366102d457005b600080fd5b3480156102e557600080fd5b506102ee610bdb565b6040516102fb9190614528565b60405180910390f35b34801561031057600080fd5b5061032b60048036038101906103269190613e46565b610be1565b005b34801561033957600080fd5b50610342610cb2565b60405161034f91906143c6565b60405180910390f35b34801561036457600080fd5b5061036d610cef565b60405161037a9190614390565b60405180910390f35b34801561038f57600080fd5b506103aa60048036038101906103a59190613d0c565b610d02565b6040516103b79190614390565b60405180910390f35b3480156103cc57600080fd5b506103d5610df4565b6040516103e29190614390565b60405180910390f35b3480156103f757600080fd5b50610412600480360381019061040d9190613ea0565b610e07565b60405161041f9190614390565b60405180910390f35b34801561043457600080fd5b5061043d610e1c565b60405161044a9190614528565b60405180910390f35b34801561045f57600080fd5b5061047a60048036038101906104759190613bfe565b610e26565b005b34801561048857600080fd5b50610491610fba565b005b34801561049f57600080fd5b506104a861101f565b6040516104b59190614528565b60405180910390f35b3480156104ca57600080fd5b506104e560048036038101906104e09190613ea0565b611025565b005b3480156104f357600080fd5b5061050e60048036038101906105099190613dac565b61107f565b005b34801561051c57600080fd5b5061053760048036038101906105329190613c79565b6110e4565b6040516105449190614390565b60405180910390f35b34801561055957600080fd5b506105626112e4565b60405161056f9190614528565b60405180910390f35b34801561058457600080fd5b5061059f600480360381019061059a9190613b64565b611366565b6040516105ac9190614390565b60405180910390f35b3480156105c157600080fd5b506105ca6113bf565b6040516105d791906145c6565b60405180910390f35b3480156105ec57600080fd5b5061060760048036038101906106029190613d4c565b6113c8565b005b34801561061557600080fd5b50610630600480360381019061062b9190613e46565b6114b3565b005b34801561063e57600080fd5b5061065960048036038101906106549190613b64565b61153d565b6040516106669190614390565b60405180910390f35b34801561067b57600080fd5b5061069660048036038101906106919190613e46565b611570565b005b3480156106a457600080fd5b506106bf60048036038101906106ba9190613dac565b6115d1565b005b3480156106cd57600080fd5b506106e860048036038101906106e39190613ccc565b611636565b005b3480156106f657600080fd5b50610711600480360381019061070c9190613ee0565b6116d9565b005b34801561071f57600080fd5b5061072861173b565b6040516107359190614390565b60405180910390f35b34801561074a57600080fd5b5061076560048036038101906107609190613b64565b61174e565b6040516107729190614528565b60405180910390f35b34801561078757600080fd5b50610790611797565b60405161079d9190614528565b60405180910390f35b3480156107b257600080fd5b506107bb61179d565b6040516107c89190614528565b60405180910390f35b3480156107dd57600080fd5b506107f860048036038101906107f39190613e46565b6117a3565b005b34801561080657600080fd5b50610821600480360381019061081c9190613e46565b61182c565b005b34801561082f57600080fd5b5061084a60048036038101906108459190613f86565b61189c565b005b34801561085857600080fd5b506108616119b7565b60405161086e91906142d0565b60405180910390f35b34801561088357600080fd5b5061088c6119e0565b6040516108999190614390565b60405180910390f35b3480156108ae57600080fd5b506108b76119f3565b005b3480156108c557600080fd5b506108ce611a92565b6040516108db91906143c6565b60405180910390f35b3480156108f057600080fd5b5061090b60048036038101906109069190613d0c565b611acf565b6040516109189190614390565b60405180910390f35b34801561092d57600080fd5b50610936611c43565b60405161094391906142d0565b60405180910390f35b34801561095857600080fd5b50610973600480360381019061096e9190613d0c565b611c69565b6040516109809190614390565b60405180910390f35b34801561099557600080fd5b506109b060048036038101906109ab9190613b64565b611c7e565b005b3480156109be57600080fd5b506109d960048036038101906109d49190613b64565b611d20565b6040516109e69190614390565b60405180910390f35b3480156109fb57600080fd5b50610a166004803603810190610a119190613b64565b611d40565b604051610a239190614390565b60405180910390f35b348015610a3857600080fd5b50610a536004803603810190610a4e9190613e46565b611d60565b604051610a609190614528565b60405180910390f35b348015610a7557600080fd5b50610a906004803603810190610a8b9190613d4c565b611dd2565b005b348015610a9e57600080fd5b50610ab96004803603810190610ab49190613bbe565b611ebd565b604051610ac69190614528565b60405180910390f35b348015610adb57600080fd5b50610af66004803603810190610af19190613e06565b611f44565b005b348015610b0457600080fd5b50610b1f6004803603810190610b1a9190613b64565b611fb1565b005b348015610b2d57600080fd5b50610b486004803603810190610b439190613b91565b612054565b005b348015610b5657600080fd5b50610b716004803603810190610b6c9190613ccc565b61216d565b005b348015610b7f57600080fd5b50610b88612210565b604051610b9591906143ab565b60405180910390f35b348015610baa57600080fd5b50610bc56004803603810190610bc09190613b64565b612236565b604051610bd29190614390565b60405180910390f35b60255481565b610bea33612236565b610c29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2090614508565b60405180910390fd5b6000479050601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60648484610c7891906146c8565b610c829190614697565b9081150290604051600060405180830381858888f19350505050158015610cad573d6000803e3d6000fd5b505050565b60606040518060400160405280600681526020017f54656b6b656e0000000000000000000000000000000000000000000000000000815250905090565b602460149054906101000a900460ff1681565b600081600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610de29190614528565b60405180910390a36001905092915050565b600b60009054906101000a900460ff1681565b600082610e1383611d60565b11905092915050565b6000600654905090565b610e2f33612236565b610e6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6590614508565b60405180910390fd5b84601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050565b610fc333611366565b611002576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff9906144c8565b60405180910390fd5b6001602460146101000a81548160ff021916908315150217905550565b60165481565b61102e33612236565b61106d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106490614508565b60405180910390fd5b81602081905550806021819055505050565b61108833611366565b6110c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110be906144c8565b60405180910390fd5b80600b60006101000a81548160ff02191690831515021790555050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146112d05761124f826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123519092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6112db8484846123b5565b90509392505050565b6000611361611314600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661174e565b611353611342600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661174e565b600654612c3090919063ffffffff16565b612c3090919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b6113d133611366565b611410576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611407906144c8565b60405180910390fd5b60005b838390508110156114ad5781600e6000868685818110611436576114356148f1565b5b905060200201602081019061144b9190613b64565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550806114a69061484a565b9050611413565b50505050565b6114bc33611366565b6114fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f2906144c8565b60405180910390fd5b6103e860065461150b9190614697565b600754101561151957600080fd5b6103e88160065461152a91906146c8565b6115349190614697565b60078190555050565b6000611569827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610d02565b9050919050565b61157933611366565b6115b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115af906144c8565b60405180910390fd5b633b9aca00816115c891906146c8565b60278190555050565b6115da33611366565b611619576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611610906144c8565b60405180910390fd5b80600d60006101000a81548160ff02191690831515021790555050565b61163f33612236565b61167e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167590614508565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6116e233611366565b611721576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611718906144c8565b60405180910390fd5b816018819055508260198190555080601a81905550505050565b602460159054906101000a900460ff1681565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60085481565b60075481565b6117ac33611366565b6117eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e2906144c8565b60405180910390fd5b6103e86006546117fb9190614697565b600854101561180957600080fd5b60648160065461181991906146c8565b6118239190614697565b60088190555050565b61183533612236565b611874576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186b90614508565b60405180910390fd5b6103e86006546118849190614697565b600754101561189257600080fd5b8060078190555050565b6118a533612236565b6118e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118db90614508565b60405180910390fd5b85601181905550846014819055508360128190555082601381905550816015819055506119508261194285611934886119268b8d612c7a90919063ffffffff16565b612c7a90919063ffffffff16565b612c7a90919063ffffffff16565b612c7a90919063ffffffff16565b60168190555080601781905550600260175461196c9190614697565b601654106119af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a690614408565b60405180910390fd5b505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d60009054906101000a900460ff1681565b600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611a4957600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611a8f573d6000803e3d6000fd5b50565b60606040518060400160405280600881526020017f49524f4e46495354000000000000000000000000000000000000000000000000815250905090565b6000611ada33611366565b611b19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b10906144c8565b60405180910390fd5b6000821415611bae578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611b5b91906142d0565b60206040518083038186803b158015611b7357600080fd5b505afa158015611b87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bab9190613e73565b91505b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401611be9929190614306565b602060405180830381600087803b158015611c0357600080fd5b505af1158015611c17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3b9190613dd9565b905092915050565b602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611c763384846123b5565b905092915050565b611c8733611366565b611cc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbd906144c8565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600e6020528060005260406000206000915054906101000a900460ff1681565b600c6020528060005260406000206000915054906101000a900460ff1681565b6000611dcb611d6d6112e4565b611dbd611dae6002611da0602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661174e565b61228c90919063ffffffff16565b8561228c90919063ffffffff16565b61230790919063ffffffff16565b9050919050565b611ddb33612236565b611e1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1190614508565b60405180910390fd5b60005b83839050811015611eb75781600c6000868685818110611e4057611e3f6148f1565b5b9050602002016020810190611e559190613b64565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080611eb09061484a565b9050611e1d565b50505050565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611f4d33612236565b611f8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8390614508565b60405180910390fd5b81602460156101000a81548160ff021916908315150217905550806025819055505050565b611fba33611366565b611ff9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff0906144c8565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61205d33611366565b61209c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612093906144c8565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861638160405161216291906142eb565b60405180910390a150565b61217633612236565b6121b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ac90614508565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008083141561229f5760009050612301565b600082846122ad91906146c8565b90508284826122bc9190614697565b146122fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f390614488565b60405180910390fd5b809150505b92915050565b600061234983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612cd8565b905092915050565b6000838311158290612399576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239091906143c6565b60405180910390fd5b50600083856123a89190614722565b9050809150509392505050565b6000602660009054906101000a900460ff16156123de576123d7848484612d3b565b9050612c29565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156124825750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561257957602460149054906101000a900460ff166124d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124cd90614448565b60405180910390fd5b600d60009054906101000a900460ff161561257857600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612577576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256e906144e8565b60405180910390fd5b5b5b600b60009054906101000a900460ff161561261c57600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561261b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261290614468565b60405180910390fd5b5b6027543a1015801561267c5750602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156126da576001600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561276057503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156127ba5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156128145750602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561286e5750601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156128c85750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561291e5750601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561298257600061292e8461174e565b9050600854838261293f9190614641565b1115612980576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612977906144a8565b60405180910390fd5b505b61298c8483612f0e565b612994612fab565b156129a2576129a1613082565b5b612a2b826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123519092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612b115750600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612b2557612b208584866136b8565b612b27565b825b9050612b7b81600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c7a90919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612c1b9190614528565b60405180910390a360019150505b9392505050565b6000612c7283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612351565b905092915050565b6000808284612c899190614641565b905083811015612cce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cc590614428565b60405180910390fd5b8091505092915050565b60008083118290612d1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d1691906143c6565b60405180910390fd5b5060008385612d2e9190614697565b9050809150509392505050565b6000612dc6826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123519092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e5b82600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c7a90919063ffffffff16565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612efb9190614528565b60405180910390a3600190509392505050565b60075481111580612f685750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612fa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f9e906143e8565b60405180910390fd5b5050565b6000602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156130185750602660009054906101000a900460ff16155b80156130305750602460159054906101000a900460ff165b801561307d5750602554600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001602660006101000a81548160ff02191690831515021790555060006130ad602054602154610e07565b6130b9576011546130bc565b60005b905060006130fc60026130ee6016546130e08660255461228c90919063ffffffff16565b61230790919063ffffffff16565b61230790919063ffffffff16565b9050600061311582602554612c3090919063ffffffff16565b90506000600267ffffffffffffffff81111561313457613133614920565b5b6040519080825280602002602001820160405280156131625781602001602082028036833780820191505090505b509050308160008151811061317a576131796148f1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106131eb576131ea6148f1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040161328e959493929190614543565b600060405180830381600087803b1580156132a857600080fd5b505af11580156132bc573d6000803e3d6000fd5b5050505060006132d58247612c3090919063ffffffff16565b905060006133016132f060028961230790919063ffffffff16565b601654612c3090919063ffffffff16565b9050600061333d600261332f846133218c8861228c90919063ffffffff16565b61230790919063ffffffff16565b61230790919063ffffffff16565b905060006133688361335a6012548761228c90919063ffffffff16565b61230790919063ffffffff16565b90506000613393846133856014548861228c90919063ffffffff16565b61230790919063ffffffff16565b905060006133be856133b06013548961228c90919063ffffffff16565b61230790919063ffffffff16565b90506000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051613408906142bb565b60006040518083038185875af1925050503d8060008114613445576040519150601f19603f3d011682016040523d82523d6000602084013e61344a565b606091505b50509050601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051613494906142bb565b60006040518083038185875af1925050503d80600081146134d1576040519150601f19603f3d011682016040523d82523d6000602084013e6134d6565b606091505b505080915050601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051613522906142bb565b60006040518083038185875af1925050503d806000811461355f576040519150601f19603f3d011682016040523d82523d6000602084013e613564565b606091505b5050809150506000905060008b111561368f57602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e600080601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016136009695949392919061432f565b6060604051808303818588803b15801561361957600080fd5b505af115801561362d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906136529190613f33565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c60405161368692919061459d565b60405180910390a15b5050505050505050505050506000602660006101000a81548160ff021916908315150217905550565b600080601a549050602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561372057601854905061377d565b602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141561377c5760195490505b5b60006137c6606460175461379191906146c8565b6137b8846137aa6016548a61228c90919063ffffffff16565b61228c90919063ffffffff16565b61230790919063ffffffff16565b905060006137f36016546137e56015548561228c90919063ffffffff16565b61230790919063ffffffff16565b9050600061380a8284612c3090919063ffffffff16565b905061385e81600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c7a90919063ffffffff16565b600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506139158260096000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c7a90919063ffffffff16565b60096000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516139d79190614528565b60405180910390a36000821115613a7057601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613a679190614528565b60405180910390a35b613a838388612c3090919063ffffffff16565b9450505050509392505050565b600081359050613a9f81614b62565b92915050565b600081359050613ab481614b79565b92915050565b60008083601f840112613ad057613acf614954565b5b8235905067ffffffffffffffff811115613aed57613aec61494f565b5b602083019150836020820283011115613b0957613b08614959565b5b9250929050565b600081359050613b1f81614b90565b92915050565b600081519050613b3481614b90565b92915050565b600081359050613b4981614ba7565b92915050565b600081519050613b5e81614ba7565b92915050565b600060208284031215613b7a57613b79614963565b5b6000613b8884828501613a90565b91505092915050565b600060208284031215613ba757613ba6614963565b5b6000613bb584828501613aa5565b91505092915050565b60008060408385031215613bd557613bd4614963565b5b6000613be385828601613a90565b9250506020613bf485828601613a90565b9150509250929050565b600080600080600060a08688031215613c1a57613c19614963565b5b6000613c2888828901613a90565b9550506020613c3988828901613a90565b9450506040613c4a88828901613a90565b9350506060613c5b88828901613a90565b9250506080613c6c88828901613a90565b9150509295509295909350565b600080600060608486031215613c9257613c91614963565b5b6000613ca086828701613a90565b9350506020613cb186828701613a90565b9250506040613cc286828701613b3a565b9150509250925092565b60008060408385031215613ce357613ce2614963565b5b6000613cf185828601613a90565b9250506020613d0285828601613b10565b9150509250929050565b60008060408385031215613d2357613d22614963565b5b6000613d3185828601613a90565b9250506020613d4285828601613b3a565b9150509250929050565b600080600060408486031215613d6557613d64614963565b5b600084013567ffffffffffffffff811115613d8357613d8261495e565b5b613d8f86828701613aba565b93509350506020613da286828701613b10565b9150509250925092565b600060208284031215613dc257613dc1614963565b5b6000613dd084828501613b10565b91505092915050565b600060208284031215613def57613dee614963565b5b6000613dfd84828501613b25565b91505092915050565b60008060408385031215613e1d57613e1c614963565b5b6000613e2b85828601613b10565b9250506020613e3c85828601613b3a565b9150509250929050565b600060208284031215613e5c57613e5b614963565b5b6000613e6a84828501613b3a565b91505092915050565b600060208284031215613e8957613e88614963565b5b6000613e9784828501613b4f565b91505092915050565b60008060408385031215613eb757613eb6614963565b5b6000613ec585828601613b3a565b9250506020613ed685828601613b3a565b9150509250929050565b600080600060608486031215613ef957613ef8614963565b5b6000613f0786828701613b3a565b9350506020613f1886828701613b3a565b9250506040613f2986828701613b3a565b9150509250925092565b600080600060608486031215613f4c57613f4b614963565b5b6000613f5a86828701613b4f565b9350506020613f6b86828701613b4f565b9250506040613f7c86828701613b4f565b9150509250925092565b60008060008060008060c08789031215613fa357613fa2614963565b5b6000613fb189828a01613b3a565b9650506020613fc289828a01613b3a565b9550506040613fd389828a01613b3a565b9450506060613fe489828a01613b3a565b9350506080613ff589828a01613b3a565b92505060a061400689828a01613b3a565b9150509295509295509295565b600061401f838361403a565b60208301905092915050565b614034816147bd565b82525050565b61404381614756565b82525050565b61405281614756565b82525050565b6000614063826145f1565b61406d8185614614565b9350614078836145e1565b8060005b838110156140a95781516140908882614013565b975061409b83614607565b92505060018101905061407c565b5085935050505092915050565b6140bf8161477a565b82525050565b6140ce816147cf565b82525050565b6140dd816147e1565b82525050565b60006140ee826145fc565b6140f88185614630565b9350614108818560208601614817565b61411181614968565b840191505092915050565b6000614129601183614630565b915061413482614979565b602082019050919050565b600061414c601c83614630565b9150614157826149a2565b602082019050919050565b600061416f601b83614630565b915061417a826149cb565b602082019050919050565b6000614192601483614630565b915061419d826149f4565b602082019050919050565b60006141b5600a83614630565b91506141c082614a1d565b602082019050919050565b60006141d8602183614630565b91506141e382614a46565b604082019050919050565b60006141fb603e83614630565b915061420682614a95565b604082019050919050565b600061421e600683614630565b915061422982614ae4565b602082019050919050565b6000614241600083614625565b915061424c82614b0d565b600082019050919050565b6000614264600f83614630565b915061426f82614b10565b602082019050919050565b6000614287600b83614630565b915061429282614b39565b602082019050919050565b6142a6816147a6565b82525050565b6142b5816147b0565b82525050565b60006142c682614234565b9150819050919050565b60006020820190506142e56000830184614049565b92915050565b6000602082019050614300600083018461402b565b92915050565b600060408201905061431b6000830185614049565b614328602083018461429d565b9392505050565b600060c0820190506143446000830189614049565b614351602083018861429d565b61435e60408301876140d4565b61436b60608301866140d4565b6143786080830185614049565b61438560a083018461429d565b979650505050505050565b60006020820190506143a560008301846140b6565b92915050565b60006020820190506143c060008301846140c5565b92915050565b600060208201905081810360008301526143e081846140e3565b905092915050565b600060208201905081810360008301526144018161411c565b9050919050565b600060208201905081810360008301526144218161413f565b9050919050565b6000602082019050818103600083015261444181614162565b9050919050565b6000602082019050818103600083015261446181614185565b9050919050565b60006020820190508181036000830152614481816141a8565b9050919050565b600060208201905081810360008301526144a1816141cb565b9050919050565b600060208201905081810360008301526144c1816141ee565b9050919050565b600060208201905081810360008301526144e181614211565b9050919050565b6000602082019050818103600083015261450181614257565b9050919050565b600060208201905081810360008301526145218161427a565b9050919050565b600060208201905061453d600083018461429d565b92915050565b600060a082019050614558600083018861429d565b61456560208301876140d4565b81810360408301526145778186614058565b90506145866060830185614049565b614593608083018461429d565b9695505050505050565b60006040820190506145b2600083018561429d565b6145bf602083018461429d565b9392505050565b60006020820190506145db60008301846142ac565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061464c826147a6565b9150614657836147a6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561468c5761468b614893565b5b828201905092915050565b60006146a2826147a6565b91506146ad836147a6565b9250826146bd576146bc6148c2565b5b828204905092915050565b60006146d3826147a6565b91506146de836147a6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561471757614716614893565b5b828202905092915050565b600061472d826147a6565b9150614738836147a6565b92508282101561474b5761474a614893565b5b828203905092915050565b600061476182614786565b9050919050565b600061477382614786565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006147c8826147f3565b9050919050565b60006147da826147f3565b9050919050565b60006147ec826147a6565b9050919050565b60006147fe82614805565b9050919050565b600061481082614786565b9050919050565b60005b8381101561483557808201518184015260208101905061481a565b83811115614844576000848401525b50505050565b6000614855826147a6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561488857614887614893565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f466565732063616e6e6f74206265206d6f7265207468616e2035302500000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b7f4973736e69706572656400000000000000000000000000000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b50565b7f4e6f742057686974656c69737465640000000000000000000000000000000000600082015250565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b614b6b81614756565b8114614b7657600080fd5b50565b614b8281614768565b8114614b8d57600080fd5b50565b614b998161477a565b8114614ba457600080fd5b50565b614bb0816147a6565b8114614bbb57600080fd5b5056fea2646970667358221220e7766c9baad39140e2a9dfc109e52ec7b64e99634e88473146dbb02efb84683164736f6c63430008070033

Deployed Bytecode

0x6080604052600436106102cd5760003560e01c806370a0823111610175578063a9059cbb116100dc578063dd62ed3e11610095578063f2fde38b1161006f578063f2fde38b14610b21578063f84ba65d14610b4a578063f887ea4014610b73578063fe9fbb8014610b9e576102d4565b8063dd62ed3e14610a92578063df20fd4914610acf578063f0b37c0414610af8576102d4565b8063a9059cbb1461094c578063b6a5d7de14610989578063b7593ad9146109b2578063cf55fea9146109ef578063d51ed1c814610a2c578063dcd2e64514610a69576102d4565b8063893d20e81161012e578063893d20e81461084c578063900ba33b1461087757806392d282c1146108a257806395d89b41146108b9578063997f92ff146108e4578063a8aa1b3114610921576102d4565b806370a082311461073e57806378109e541461077b5780637d1db4a5146107a657806382bf293c146107d157806383f9d9fa146107fa57806386f6c3c114610823576102d4565b80632022147011610234578063570636dc116101ed5780635e04e4f8116101c75780635e04e4f814610698578063658d4b7f146106c15780636ce46bc3146106ea5780636ddd171314610713576102d4565b8063570636dc14610609578063571ac8b0146106325780635aa6a95f1461066f576102d4565b806320221470146104e757806323b872dd146105105780632b112e491461054d5780632f54bf6e14610578578063313ce567146105b55780634f85a0c5146105e0576102d4565b80631161ae39116102865780631161ae39146103eb57806318160ddd1461042857806318abb635146104535780631d97b7cd1461047c5780631df4ccfc14610493578063201e7991146104be576102d4565b80630445b667146102d9578063048ca8331461030457806306fdde031461032d57806308fd3d0514610358578063095ea7b3146103835780630a8c9826146103c0576102d4565b366102d457005b600080fd5b3480156102e557600080fd5b506102ee610bdb565b6040516102fb9190614528565b60405180910390f35b34801561031057600080fd5b5061032b60048036038101906103269190613e46565b610be1565b005b34801561033957600080fd5b50610342610cb2565b60405161034f91906143c6565b60405180910390f35b34801561036457600080fd5b5061036d610cef565b60405161037a9190614390565b60405180910390f35b34801561038f57600080fd5b506103aa60048036038101906103a59190613d0c565b610d02565b6040516103b79190614390565b60405180910390f35b3480156103cc57600080fd5b506103d5610df4565b6040516103e29190614390565b60405180910390f35b3480156103f757600080fd5b50610412600480360381019061040d9190613ea0565b610e07565b60405161041f9190614390565b60405180910390f35b34801561043457600080fd5b5061043d610e1c565b60405161044a9190614528565b60405180910390f35b34801561045f57600080fd5b5061047a60048036038101906104759190613bfe565b610e26565b005b34801561048857600080fd5b50610491610fba565b005b34801561049f57600080fd5b506104a861101f565b6040516104b59190614528565b60405180910390f35b3480156104ca57600080fd5b506104e560048036038101906104e09190613ea0565b611025565b005b3480156104f357600080fd5b5061050e60048036038101906105099190613dac565b61107f565b005b34801561051c57600080fd5b5061053760048036038101906105329190613c79565b6110e4565b6040516105449190614390565b60405180910390f35b34801561055957600080fd5b506105626112e4565b60405161056f9190614528565b60405180910390f35b34801561058457600080fd5b5061059f600480360381019061059a9190613b64565b611366565b6040516105ac9190614390565b60405180910390f35b3480156105c157600080fd5b506105ca6113bf565b6040516105d791906145c6565b60405180910390f35b3480156105ec57600080fd5b5061060760048036038101906106029190613d4c565b6113c8565b005b34801561061557600080fd5b50610630600480360381019061062b9190613e46565b6114b3565b005b34801561063e57600080fd5b5061065960048036038101906106549190613b64565b61153d565b6040516106669190614390565b60405180910390f35b34801561067b57600080fd5b5061069660048036038101906106919190613e46565b611570565b005b3480156106a457600080fd5b506106bf60048036038101906106ba9190613dac565b6115d1565b005b3480156106cd57600080fd5b506106e860048036038101906106e39190613ccc565b611636565b005b3480156106f657600080fd5b50610711600480360381019061070c9190613ee0565b6116d9565b005b34801561071f57600080fd5b5061072861173b565b6040516107359190614390565b60405180910390f35b34801561074a57600080fd5b5061076560048036038101906107609190613b64565b61174e565b6040516107729190614528565b60405180910390f35b34801561078757600080fd5b50610790611797565b60405161079d9190614528565b60405180910390f35b3480156107b257600080fd5b506107bb61179d565b6040516107c89190614528565b60405180910390f35b3480156107dd57600080fd5b506107f860048036038101906107f39190613e46565b6117a3565b005b34801561080657600080fd5b50610821600480360381019061081c9190613e46565b61182c565b005b34801561082f57600080fd5b5061084a60048036038101906108459190613f86565b61189c565b005b34801561085857600080fd5b506108616119b7565b60405161086e91906142d0565b60405180910390f35b34801561088357600080fd5b5061088c6119e0565b6040516108999190614390565b60405180910390f35b3480156108ae57600080fd5b506108b76119f3565b005b3480156108c557600080fd5b506108ce611a92565b6040516108db91906143c6565b60405180910390f35b3480156108f057600080fd5b5061090b60048036038101906109069190613d0c565b611acf565b6040516109189190614390565b60405180910390f35b34801561092d57600080fd5b50610936611c43565b60405161094391906142d0565b60405180910390f35b34801561095857600080fd5b50610973600480360381019061096e9190613d0c565b611c69565b6040516109809190614390565b60405180910390f35b34801561099557600080fd5b506109b060048036038101906109ab9190613b64565b611c7e565b005b3480156109be57600080fd5b506109d960048036038101906109d49190613b64565b611d20565b6040516109e69190614390565b60405180910390f35b3480156109fb57600080fd5b50610a166004803603810190610a119190613b64565b611d40565b604051610a239190614390565b60405180910390f35b348015610a3857600080fd5b50610a536004803603810190610a4e9190613e46565b611d60565b604051610a609190614528565b60405180910390f35b348015610a7557600080fd5b50610a906004803603810190610a8b9190613d4c565b611dd2565b005b348015610a9e57600080fd5b50610ab96004803603810190610ab49190613bbe565b611ebd565b604051610ac69190614528565b60405180910390f35b348015610adb57600080fd5b50610af66004803603810190610af19190613e06565b611f44565b005b348015610b0457600080fd5b50610b1f6004803603810190610b1a9190613b64565b611fb1565b005b348015610b2d57600080fd5b50610b486004803603810190610b439190613b91565b612054565b005b348015610b5657600080fd5b50610b716004803603810190610b6c9190613ccc565b61216d565b005b348015610b7f57600080fd5b50610b88612210565b604051610b9591906143ab565b60405180910390f35b348015610baa57600080fd5b50610bc56004803603810190610bc09190613b64565b612236565b604051610bd29190614390565b60405180910390f35b60255481565b610bea33612236565b610c29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2090614508565b60405180910390fd5b6000479050601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60648484610c7891906146c8565b610c829190614697565b9081150290604051600060405180830381858888f19350505050158015610cad573d6000803e3d6000fd5b505050565b60606040518060400160405280600681526020017f54656b6b656e0000000000000000000000000000000000000000000000000000815250905090565b602460149054906101000a900460ff1681565b600081600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610de29190614528565b60405180910390a36001905092915050565b600b60009054906101000a900460ff1681565b600082610e1383611d60565b11905092915050565b6000600654905090565b610e2f33612236565b610e6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6590614508565b60405180910390fd5b84601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050565b610fc333611366565b611002576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff9906144c8565b60405180910390fd5b6001602460146101000a81548160ff021916908315150217905550565b60165481565b61102e33612236565b61106d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106490614508565b60405180910390fd5b81602081905550806021819055505050565b61108833611366565b6110c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110be906144c8565b60405180910390fd5b80600b60006101000a81548160ff02191690831515021790555050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146112d05761124f826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123519092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6112db8484846123b5565b90509392505050565b6000611361611314600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661174e565b611353611342600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661174e565b600654612c3090919063ffffffff16565b612c3090919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b6113d133611366565b611410576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611407906144c8565b60405180910390fd5b60005b838390508110156114ad5781600e6000868685818110611436576114356148f1565b5b905060200201602081019061144b9190613b64565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550806114a69061484a565b9050611413565b50505050565b6114bc33611366565b6114fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f2906144c8565b60405180910390fd5b6103e860065461150b9190614697565b600754101561151957600080fd5b6103e88160065461152a91906146c8565b6115349190614697565b60078190555050565b6000611569827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610d02565b9050919050565b61157933611366565b6115b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115af906144c8565b60405180910390fd5b633b9aca00816115c891906146c8565b60278190555050565b6115da33611366565b611619576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611610906144c8565b60405180910390fd5b80600d60006101000a81548160ff02191690831515021790555050565b61163f33612236565b61167e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167590614508565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6116e233611366565b611721576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611718906144c8565b60405180910390fd5b816018819055508260198190555080601a81905550505050565b602460159054906101000a900460ff1681565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60085481565b60075481565b6117ac33611366565b6117eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e2906144c8565b60405180910390fd5b6103e86006546117fb9190614697565b600854101561180957600080fd5b60648160065461181991906146c8565b6118239190614697565b60088190555050565b61183533612236565b611874576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186b90614508565b60405180910390fd5b6103e86006546118849190614697565b600754101561189257600080fd5b8060078190555050565b6118a533612236565b6118e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118db90614508565b60405180910390fd5b85601181905550846014819055508360128190555082601381905550816015819055506119508261194285611934886119268b8d612c7a90919063ffffffff16565b612c7a90919063ffffffff16565b612c7a90919063ffffffff16565b612c7a90919063ffffffff16565b60168190555080601781905550600260175461196c9190614697565b601654106119af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a690614408565b60405180910390fd5b505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d60009054906101000a900460ff1681565b600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611a4957600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611a8f573d6000803e3d6000fd5b50565b60606040518060400160405280600881526020017f49524f4e46495354000000000000000000000000000000000000000000000000815250905090565b6000611ada33611366565b611b19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b10906144c8565b60405180910390fd5b6000821415611bae578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611b5b91906142d0565b60206040518083038186803b158015611b7357600080fd5b505afa158015611b87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bab9190613e73565b91505b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401611be9929190614306565b602060405180830381600087803b158015611c0357600080fd5b505af1158015611c17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3b9190613dd9565b905092915050565b602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611c763384846123b5565b905092915050565b611c8733611366565b611cc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbd906144c8565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600e6020528060005260406000206000915054906101000a900460ff1681565b600c6020528060005260406000206000915054906101000a900460ff1681565b6000611dcb611d6d6112e4565b611dbd611dae6002611da0602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661174e565b61228c90919063ffffffff16565b8561228c90919063ffffffff16565b61230790919063ffffffff16565b9050919050565b611ddb33612236565b611e1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1190614508565b60405180910390fd5b60005b83839050811015611eb75781600c6000868685818110611e4057611e3f6148f1565b5b9050602002016020810190611e559190613b64565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080611eb09061484a565b9050611e1d565b50505050565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611f4d33612236565b611f8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8390614508565b60405180910390fd5b81602460156101000a81548160ff021916908315150217905550806025819055505050565b611fba33611366565b611ff9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff0906144c8565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61205d33611366565b61209c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612093906144c8565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861638160405161216291906142eb565b60405180910390a150565b61217633612236565b6121b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ac90614508565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008083141561229f5760009050612301565b600082846122ad91906146c8565b90508284826122bc9190614697565b146122fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f390614488565b60405180910390fd5b809150505b92915050565b600061234983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612cd8565b905092915050565b6000838311158290612399576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239091906143c6565b60405180910390fd5b50600083856123a89190614722565b9050809150509392505050565b6000602660009054906101000a900460ff16156123de576123d7848484612d3b565b9050612c29565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156124825750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561257957602460149054906101000a900460ff166124d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124cd90614448565b60405180910390fd5b600d60009054906101000a900460ff161561257857600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612577576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256e906144e8565b60405180910390fd5b5b5b600b60009054906101000a900460ff161561261c57600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561261b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261290614468565b60405180910390fd5b5b6027543a1015801561267c5750602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156126da576001600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561276057503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156127ba5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156128145750602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561286e5750601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156128c85750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561291e5750601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561298257600061292e8461174e565b9050600854838261293f9190614641565b1115612980576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612977906144a8565b60405180910390fd5b505b61298c8483612f0e565b612994612fab565b156129a2576129a1613082565b5b612a2b826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123519092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612b115750600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612b2557612b208584866136b8565b612b27565b825b9050612b7b81600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c7a90919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612c1b9190614528565b60405180910390a360019150505b9392505050565b6000612c7283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612351565b905092915050565b6000808284612c899190614641565b905083811015612cce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cc590614428565b60405180910390fd5b8091505092915050565b60008083118290612d1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d1691906143c6565b60405180910390fd5b5060008385612d2e9190614697565b9050809150509392505050565b6000612dc6826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123519092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e5b82600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c7a90919063ffffffff16565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612efb9190614528565b60405180910390a3600190509392505050565b60075481111580612f685750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612fa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f9e906143e8565b60405180910390fd5b5050565b6000602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156130185750602660009054906101000a900460ff16155b80156130305750602460159054906101000a900460ff165b801561307d5750602554600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001602660006101000a81548160ff02191690831515021790555060006130ad602054602154610e07565b6130b9576011546130bc565b60005b905060006130fc60026130ee6016546130e08660255461228c90919063ffffffff16565b61230790919063ffffffff16565b61230790919063ffffffff16565b9050600061311582602554612c3090919063ffffffff16565b90506000600267ffffffffffffffff81111561313457613133614920565b5b6040519080825280602002602001820160405280156131625781602001602082028036833780820191505090505b509050308160008151811061317a576131796148f1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106131eb576131ea6148f1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040161328e959493929190614543565b600060405180830381600087803b1580156132a857600080fd5b505af11580156132bc573d6000803e3d6000fd5b5050505060006132d58247612c3090919063ffffffff16565b905060006133016132f060028961230790919063ffffffff16565b601654612c3090919063ffffffff16565b9050600061333d600261332f846133218c8861228c90919063ffffffff16565b61230790919063ffffffff16565b61230790919063ffffffff16565b905060006133688361335a6012548761228c90919063ffffffff16565b61230790919063ffffffff16565b90506000613393846133856014548861228c90919063ffffffff16565b61230790919063ffffffff16565b905060006133be856133b06013548961228c90919063ffffffff16565b61230790919063ffffffff16565b90506000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051613408906142bb565b60006040518083038185875af1925050503d8060008114613445576040519150601f19603f3d011682016040523d82523d6000602084013e61344a565b606091505b50509050601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051613494906142bb565b60006040518083038185875af1925050503d80600081146134d1576040519150601f19603f3d011682016040523d82523d6000602084013e6134d6565b606091505b505080915050601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051613522906142bb565b60006040518083038185875af1925050503d806000811461355f576040519150601f19603f3d011682016040523d82523d6000602084013e613564565b606091505b5050809150506000905060008b111561368f57602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e600080601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016136009695949392919061432f565b6060604051808303818588803b15801561361957600080fd5b505af115801561362d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906136529190613f33565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c60405161368692919061459d565b60405180910390a15b5050505050505050505050506000602660006101000a81548160ff021916908315150217905550565b600080601a549050602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561372057601854905061377d565b602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141561377c5760195490505b5b60006137c6606460175461379191906146c8565b6137b8846137aa6016548a61228c90919063ffffffff16565b61228c90919063ffffffff16565b61230790919063ffffffff16565b905060006137f36016546137e56015548561228c90919063ffffffff16565b61230790919063ffffffff16565b9050600061380a8284612c3090919063ffffffff16565b905061385e81600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c7a90919063ffffffff16565b600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506139158260096000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c7a90919063ffffffff16565b60096000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516139d79190614528565b60405180910390a36000821115613a7057601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613a679190614528565b60405180910390a35b613a838388612c3090919063ffffffff16565b9450505050509392505050565b600081359050613a9f81614b62565b92915050565b600081359050613ab481614b79565b92915050565b60008083601f840112613ad057613acf614954565b5b8235905067ffffffffffffffff811115613aed57613aec61494f565b5b602083019150836020820283011115613b0957613b08614959565b5b9250929050565b600081359050613b1f81614b90565b92915050565b600081519050613b3481614b90565b92915050565b600081359050613b4981614ba7565b92915050565b600081519050613b5e81614ba7565b92915050565b600060208284031215613b7a57613b79614963565b5b6000613b8884828501613a90565b91505092915050565b600060208284031215613ba757613ba6614963565b5b6000613bb584828501613aa5565b91505092915050565b60008060408385031215613bd557613bd4614963565b5b6000613be385828601613a90565b9250506020613bf485828601613a90565b9150509250929050565b600080600080600060a08688031215613c1a57613c19614963565b5b6000613c2888828901613a90565b9550506020613c3988828901613a90565b9450506040613c4a88828901613a90565b9350506060613c5b88828901613a90565b9250506080613c6c88828901613a90565b9150509295509295909350565b600080600060608486031215613c9257613c91614963565b5b6000613ca086828701613a90565b9350506020613cb186828701613a90565b9250506040613cc286828701613b3a565b9150509250925092565b60008060408385031215613ce357613ce2614963565b5b6000613cf185828601613a90565b9250506020613d0285828601613b10565b9150509250929050565b60008060408385031215613d2357613d22614963565b5b6000613d3185828601613a90565b9250506020613d4285828601613b3a565b9150509250929050565b600080600060408486031215613d6557613d64614963565b5b600084013567ffffffffffffffff811115613d8357613d8261495e565b5b613d8f86828701613aba565b93509350506020613da286828701613b10565b9150509250925092565b600060208284031215613dc257613dc1614963565b5b6000613dd084828501613b10565b91505092915050565b600060208284031215613def57613dee614963565b5b6000613dfd84828501613b25565b91505092915050565b60008060408385031215613e1d57613e1c614963565b5b6000613e2b85828601613b10565b9250506020613e3c85828601613b3a565b9150509250929050565b600060208284031215613e5c57613e5b614963565b5b6000613e6a84828501613b3a565b91505092915050565b600060208284031215613e8957613e88614963565b5b6000613e9784828501613b4f565b91505092915050565b60008060408385031215613eb757613eb6614963565b5b6000613ec585828601613b3a565b9250506020613ed685828601613b3a565b9150509250929050565b600080600060608486031215613ef957613ef8614963565b5b6000613f0786828701613b3a565b9350506020613f1886828701613b3a565b9250506040613f2986828701613b3a565b9150509250925092565b600080600060608486031215613f4c57613f4b614963565b5b6000613f5a86828701613b4f565b9350506020613f6b86828701613b4f565b9250506040613f7c86828701613b4f565b9150509250925092565b60008060008060008060c08789031215613fa357613fa2614963565b5b6000613fb189828a01613b3a565b9650506020613fc289828a01613b3a565b9550506040613fd389828a01613b3a565b9450506060613fe489828a01613b3a565b9350506080613ff589828a01613b3a565b92505060a061400689828a01613b3a565b9150509295509295509295565b600061401f838361403a565b60208301905092915050565b614034816147bd565b82525050565b61404381614756565b82525050565b61405281614756565b82525050565b6000614063826145f1565b61406d8185614614565b9350614078836145e1565b8060005b838110156140a95781516140908882614013565b975061409b83614607565b92505060018101905061407c565b5085935050505092915050565b6140bf8161477a565b82525050565b6140ce816147cf565b82525050565b6140dd816147e1565b82525050565b60006140ee826145fc565b6140f88185614630565b9350614108818560208601614817565b61411181614968565b840191505092915050565b6000614129601183614630565b915061413482614979565b602082019050919050565b600061414c601c83614630565b9150614157826149a2565b602082019050919050565b600061416f601b83614630565b915061417a826149cb565b602082019050919050565b6000614192601483614630565b915061419d826149f4565b602082019050919050565b60006141b5600a83614630565b91506141c082614a1d565b602082019050919050565b60006141d8602183614630565b91506141e382614a46565b604082019050919050565b60006141fb603e83614630565b915061420682614a95565b604082019050919050565b600061421e600683614630565b915061422982614ae4565b602082019050919050565b6000614241600083614625565b915061424c82614b0d565b600082019050919050565b6000614264600f83614630565b915061426f82614b10565b602082019050919050565b6000614287600b83614630565b915061429282614b39565b602082019050919050565b6142a6816147a6565b82525050565b6142b5816147b0565b82525050565b60006142c682614234565b9150819050919050565b60006020820190506142e56000830184614049565b92915050565b6000602082019050614300600083018461402b565b92915050565b600060408201905061431b6000830185614049565b614328602083018461429d565b9392505050565b600060c0820190506143446000830189614049565b614351602083018861429d565b61435e60408301876140d4565b61436b60608301866140d4565b6143786080830185614049565b61438560a083018461429d565b979650505050505050565b60006020820190506143a560008301846140b6565b92915050565b60006020820190506143c060008301846140c5565b92915050565b600060208201905081810360008301526143e081846140e3565b905092915050565b600060208201905081810360008301526144018161411c565b9050919050565b600060208201905081810360008301526144218161413f565b9050919050565b6000602082019050818103600083015261444181614162565b9050919050565b6000602082019050818103600083015261446181614185565b9050919050565b60006020820190508181036000830152614481816141a8565b9050919050565b600060208201905081810360008301526144a1816141cb565b9050919050565b600060208201905081810360008301526144c1816141ee565b9050919050565b600060208201905081810360008301526144e181614211565b9050919050565b6000602082019050818103600083015261450181614257565b9050919050565b600060208201905081810360008301526145218161427a565b9050919050565b600060208201905061453d600083018461429d565b92915050565b600060a082019050614558600083018861429d565b61456560208301876140d4565b81810360408301526145778186614058565b90506145866060830185614049565b614593608083018461429d565b9695505050505050565b60006040820190506145b2600083018561429d565b6145bf602083018461429d565b9392505050565b60006020820190506145db60008301846142ac565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061464c826147a6565b9150614657836147a6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561468c5761468b614893565b5b828201905092915050565b60006146a2826147a6565b91506146ad836147a6565b9250826146bd576146bc6148c2565b5b828204905092915050565b60006146d3826147a6565b91506146de836147a6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561471757614716614893565b5b828202905092915050565b600061472d826147a6565b9150614738836147a6565b92508282101561474b5761474a614893565b5b828203905092915050565b600061476182614786565b9050919050565b600061477382614786565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006147c8826147f3565b9050919050565b60006147da826147f3565b9050919050565b60006147ec826147a6565b9050919050565b60006147fe82614805565b9050919050565b600061481082614786565b9050919050565b60005b8381101561483557808201518184015260208101905061481a565b83811115614844576000848401525b50505050565b6000614855826147a6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561488857614887614893565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f466565732063616e6e6f74206265206d6f7265207468616e2035302500000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b7f4973736e69706572656400000000000000000000000000000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b50565b7f4e6f742057686974656c69737465640000000000000000000000000000000000600082015250565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b614b6b81614756565b8114614b7657600080fd5b50565b614b8281614768565b8114614b8d57600080fd5b50565b614b998161477a565b8114614ba457600080fd5b50565b614bb0816147a6565b8114614bbb57600080fd5b5056fea2646970667358221220e7766c9baad39140e2a9dfc109e52ec7b64e99634e88473146dbb02efb84683164736f6c63430008070033

Deployed Bytecode Sourcemap

5862:14828:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7785:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14838:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9439:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7704:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9861:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6580:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20466:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9169:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19336:438;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15782:79;;;;;;;;;;;;;:::i;:::-;;7062:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19946:183;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17871:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10379:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20141:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3870:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9263:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18292:200;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10994:227;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10085:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15876:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17976:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18500:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15541:210;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7748:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9609:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6395:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6330:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10761:225;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11235:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18764:564;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9525:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6672:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15080:174;;;;;;;;;;;;;:::i;:::-;;9349:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15262:271;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7672:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10215:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3663:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6707:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6618:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20291:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18075:209;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9720:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19782:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3765:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4096:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18628:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7602:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3981:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7785:54;;;;:::o;14838:234::-;3604:24;3617:10;3604:12;:24::i;:::-;3596:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;14938:17:::1;14958:21;14938:41;;14998:20;;;;;;;;;;;14990:38;;:74;15060:3;15041:16;15029:9;:28;;;;:::i;:::-;:34;;;;:::i;:::-;14990:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;14911:161;14838:234:::0;:::o;9439:80::-;9487:13;9511:5;;;;;;;;;;;;;;;;;9504:12;;9439:80;:::o;7704:31::-;;;;;;;;;;;;;:::o;9861:216::-;9936:4;9988:6;9953:11;:23;9965:10;9953:23;;;;;;;;;;;;;;;:32;9977:7;9953:32;;;;;;;;;;;;;;;:41;;;;10031:7;10010:37;;10019:10;10010:37;;;10040:6;10010:37;;;;;;:::i;:::-;;;;;;;;10065:4;10058:11;;9861:216;;;;:::o;6580:31::-;;;;;;;;;;;;;:::o;20466:150::-;20546:4;20602:6;20570:29;20590:8;20570:19;:29::i;:::-;:38;20563:45;;20466:150;;;;:::o;9169:88::-;9224:7;9242:12;;9235:19;;9169:88;:::o;19336:438::-;3604:24;3617:10;3604:12;:24::i;:::-;3596:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;19556:22:::1;19532:21;;:46;;;;;;;;;;;;;;;;;;19612:21;19589:20;;:44;;;;;;;;;;;;;;;;;;19661:15;19644:14;;:32;;;;;;;;;;;;;;;;;;19705:16;19687:15;;:34;;;;;;;;;;;;;;;;;;19750:16;19732:15;;:34;;;;;;;;;;;;;;;;;;19336:438:::0;;;;;:::o;15782:79::-;3514:19;3522:10;3514:7;:19::i;:::-;3506:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15849:4:::1;15835:11;;:18;;;;;;;;;;;;;;;;;;15782:79::o:0;7062:89::-;;;;:::o;19946:183::-;3604:24;3617:10;3604:12;:24::i;:::-;3596:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;20062:7:::1;20044:15;:25;;;;20109:12;20080:26;:41;;;;19946:183:::0;;:::o;17871:97::-;3514:19;3522:10;3514:7;:19::i;:::-;3506:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;17953:7:::1;17938:12;;:22;;;;;;;;;;;;;;;;;;17871:97:::0;:::o;10379:370::-;10479:4;10534:17;10499:11;:19;10511:6;10499:19;;;;;;;;;;;;;;;:31;10519:10;10499:31;;;;;;;;;;;;;;;;:52;10496:186;;10601:69;10637:6;10601:69;;;;;;;;;;;;;;;;;:11;:19;10613:6;10601:19;;;;;;;;;;;;;;;:31;10621:10;10601:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;10567:11;:19;10579:6;10567:19;;;;;;;;;;;;;;;:31;10587:10;10567:31;;;;;;;;;;;;;;;:103;;;;10496:186;10701:40;10715:6;10723:9;10734:6;10701:13;:40::i;:::-;10694:47;;10379:370;;;;;:::o;20141:142::-;20194:7;20221:54;20259:15;20269:4;;;;;;;;;;;20259:9;:15::i;:::-;20221:33;20238:15;20248:4;;;;;;;;;;;20238:9;:15::i;:::-;20221:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;20214:61;;20141:142;:::o;3870:103::-;3925:4;3960:5;;;;;;;;;;;3949:16;;:7;:16;;;3942:23;;3870:103;;;:::o;9263:80::-;9315:5;6261:2;9324:16;;9263:80;:::o;18292:200::-;3514:19;3522:10;3514:7;:19::i;:::-;3506:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;18389:9:::1;18384:101;18404:9;;:16;;18400:1;:20;18384:101;;;18467:6;18442:8;:22;18451:9;;18461:1;18451:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18442:22;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;18422:3;;;;:::i;:::-;;;18384:101;;;;18292:200:::0;;;:::o;10994:227::-;3514:19;3522:10;3514:7;:19::i;:::-;3506:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11112:4:::1;11097:12;;:19;;;;:::i;:::-;11081:12;;:35;;11073:44;;;::::0;::::1;;11209:4;11192:12;11177;;:27;;;;:::i;:::-;11176:37;;;;:::i;:::-;11161:12;:52;;;;10994:227:::0;:::o;10085:122::-;10140:4;10164:35;10172:7;10181:17;10164:7;:35::i;:::-;10157:42;;10085:122;;;:::o;15876:112::-;3514:19;3522:10;3514:7;:19::i;:::-;3506:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15967:6:::1;15957:7;:16;;;;:::i;:::-;15948:6;:25;;;;15876:112:::0;:::o;17976:91::-;3514:19;3522:10;3514:7;:19::i;:::-;3506:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;18050:7:::1;18039:8;;:18;;;;;;;;;;;;;;;;;;17976:91:::0;:::o;18500:120::-;3604:24;3617:10;3604:12;:24::i;:::-;3596:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;18606:6:::1;18584:11;:19;18596:6;18584:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;18500:120:::0;;:::o;15541:210::-;3514:19;3522:10;3514:7;:19::i;:::-;3506:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15657:5:::1;15640:14;:22;;;;15689:4;15673:13;:20;;;;15725:6;15704:18;:27;;;;15541:210:::0;;;:::o;7748:30::-;;;;;;;;;;;;;:::o;9609:105::-;9675:7;9693:9;:18;9703:7;9693:18;;;;;;;;;;;;;;;;9686:25;;9609:105;;;:::o;6395:61::-;;;;:::o;6330:58::-;;;;:::o;10761:225::-;3514:19;3522:10;3514:7;:19::i;:::-;3506:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;10888:4:::1;10873:12;;:19;;;;:::i;:::-;10854:15;;:38;;10846:47;;;::::0;::::1;;10957:3;10938:14;10923:12;;:29;;;;:::i;:::-;10922:38;;;;:::i;:::-;10904:15;:56;;;;10761:225:::0;:::o;11235:159::-;3604:24;3617:10;3604:12;:24::i;:::-;3596:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;11349:4:::1;11334:12;;:19;;;;:::i;:::-;11318:12;;:35;;11310:44;;;::::0;::::1;;11380:6;11365:12;:21;;;;11235:159:::0;:::o;18764:564::-;3604:24;3617:10;3604:12;:24::i;:::-;3596:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;18951:13:::1;18936:12;:28;;;;18985:8;18975:7;:18;;;;19019:13;19004:12;:28;;;;19052:7;19043:6;:16;;;;19080:8;19070:7;:18;;;;19110:73;19174:8;19110:59;19161:7;19110:46;19142:13;19110:27;19128:8;19110:13;:17;;:27;;;;:::i;:::-;:31;;:46;;;;:::i;:::-;:50;;:59;;;;:::i;:::-;:63;;:73;;;;:::i;:::-;19099:8;:84;;;;19211:15;19194:14;:32;;;;19271:1;19256:14;;:16;;;;:::i;:::-;19245:8;;:27;19237:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18764:564:::0;;;;;;:::o;9525:78::-;9577:7;9595:5;;;;;;;;;;;9588:12;;9525:78;:::o;6672:28::-;;;;;;;;;;;;;:::o;15080:174::-;15161:8;:20;15170:10;15161:20;;;;;;;;;;;;;;;;;;;;;;;;;15153:29;;;;;;15201:10;15193:28;;:51;15222:21;15193:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15080:174::o;9349:84::-;9399:13;9423:7;;;;;;;;;;;;;;;;;9416:14;;9349:84;:::o;15262:271::-;15351:4;3514:19;3522:10;3514:7;:19::i;:::-;3506:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15378:1:::1;15368:6;:11;15365:95;;;15410:12;15404:29;;;15442:4;15404:44;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15395:53;;15365:95;15483:12;15477:28;;;15506:10;15518:6;15477:48;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15470:55;;15262:271:::0;;;;:::o;7672:19::-;;;;;;;;;;;;;:::o;10215:156::-;10295:4;10319:44;10333:10;10345:9;10356:6;10319:13;:44::i;:::-;10312:51;;10215:156;;;;:::o;3663:94::-;3514:19;3522:10;3514:7;:19::i;:::-;3506:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3745:4:::1;3723:14:::0;:19:::1;3738:3;3723:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3663:94:::0;:::o;6707:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;6618:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;20291:167::-;20359:7;20386:64;20427:22;:20;:22::i;:::-;20386:36;20399:22;20419:1;20399:15;20409:4;;;;;;;;;;;20399:9;:15::i;:::-;:19;;:22;;;;:::i;:::-;20386:8;:12;;:36;;;;:::i;:::-;:40;;:64;;;;:::i;:::-;20379:71;;20291:167;;;:::o;18075:209::-;3604:24;3617:10;3604:12;:24::i;:::-;3596:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;18177:9:::1;18172:105;18192:9;;:16;;18188:1;:20;18172:105;;;18259:6;18230:12;:26;18243:9;;18253:1;18243:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18230:26;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;18210:3;;;;:::i;:::-;;;18172:105;;;;18075:209:::0;;;:::o;9720:133::-;9804:7;9822:11;:19;9834:6;9822:19;;;;;;;;;;;;;;;:28;9842:7;9822:28;;;;;;;;;;;;;;;;9815:35;;9720:133;;;;:::o;19782:156::-;3604:24;3617:10;3604:12;:24::i;:::-;3596:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;19888:8:::1;19874:11;;:22;;;;;;;;;;;;;;;;;;19923:7;19907:13;:23;;;;19782:156:::0;;:::o;3765:97::-;3514:19;3522:10;3514:7;:19::i;:::-;3506:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3849:5:::1;3827:14;:19;3842:3;3827:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;3765:97:::0;:::o;4096:173::-;3514:19;3522:10;3514:7;:19::i;:::-;3506:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;4180:3:::1;4172:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;4216:4;4194:14:::0;:19:::1;4209:3;4194:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;4236:25;4257:3;4236:25;;;;;;:::i;:::-;;;;;;;;4096:173:::0;:::o;18628:128::-;3604:24;3617:10;3604:12;:24::i;:::-;3596:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;18742:6:::1;18716:15;:23;18732:6;18716:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;18628:128:::0;;:::o;7602:24::-;;;;;;;;;;;;;:::o;3981:107::-;4037:4;4061:14;:19;4076:3;4061:19;;;;;;;;;;;;;;;;;;;;;;;;;4054:26;;3981:107;;;:::o;1745:250::-;1803:7;1832:1;1827;:6;1823:47;;;1857:1;1850:8;;;;1823:47;1882:9;1898:1;1894;:5;;;;:::i;:::-;1882:17;;1927:1;1922;1918;:5;;;;:::i;:::-;:10;1910:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1986:1;1979:8;;;1745:250;;;;;:::o;2001:132::-;2059:7;2086:39;2090:1;2093;2086:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2079:46;;2001:132;;;;:::o;1547:192::-;1633:7;1666:1;1661;:6;;1669:12;1653:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1693:9;1709:1;1705;:5;;;;:::i;:::-;1693:17;;1730:1;1723:8;;;1547:192;;;;;:::o;11402:1635::-;11494:4;11514:6;;;;;;;;;;;11511:63;;;11530:41;11545:6;11553:9;11564:6;11530:14;:41::i;:::-;11523:48;;;;11511:63;11590:14;:22;11605:6;11590:22;;;;;;;;;;;;;;;;;;;;;;;;;11589:23;:53;;;;;11617:14;:25;11632:9;11617:25;;;;;;;;;;;;;;;;;;;;;;;;;11616:26;11589:53;11586:242;;;11666:11;;;;;;;;;;;11658:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;11717:8;;;;;;;;;;;11714:103;;;11753:8;:19;11762:9;11753:19;;;;;;;;;;;;;;;;;;;;;;;;;11745:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;11714:103;11586:242;11865:12;;;;;;;;;;;11862:90;;;11902:12;:20;11915:6;11902:20;;;;;;;;;;;;;;;;;;;;;;;;;11901:21;11893:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;11862:90;11983:6;;11968:11;:21;;:42;;;;;12006:4;;;;;;;;;;;11993:17;;:9;:17;;;;11968:42;11964:105;;;12053:4;12027:12;:23;12040:9;12027:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;11964:105;12086:14;:22;12101:6;12086:22;;;;;;;;;;;;;;;;;;;;;;;;;12085:23;:53;;;;;12133:4;12112:26;;:9;:26;;;;12085:53;:84;;;;;12164:4;;;;;;;;;;;12143:26;;:9;:26;;;;12085:84;:105;;;;;12186:4;;;;;;;;;;;12173:17;;:9;:17;;;;12085:105;:137;;;;;12207:15;;;;;;;;;;;12194:28;;:9;:28;;;;12085:137;:174;;;;;12239:20;;;;;;;;;;;12226:33;;:9;:33;;;;12085:174;:205;;;;;12264:15;:26;12280:9;12264:26;;;;;;;;;;;;;;;;;;;;;;;;;12263:27;12085:205;12081:397;;;12306:18;12327:20;12337:9;12327;:20::i;:::-;12306:41;;12395:15;;12384:6;12371:10;:19;;;;:::i;:::-;12370:40;;12362:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;12291:187;12081:397;12531:28;12544:6;12552;12531:12;:28::i;:::-;12576:16;:14;:16::i;:::-;12573:35;;;12595:10;:8;:10::i;:::-;12573:35;12688:53;12710:6;12688:53;;;;;;;;;;;;;;;;;:9;:17;12698:6;12688:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;12668:9;:17;12678:6;12668:17;;;;;;;;;;;;;;;:73;;;;12754:22;12780:11;:19;12792:6;12780:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;12803:11;:22;12815:9;12803:22;;;;;;;;;;;;;;;;;;;;;;;;;12780:45;12779:93;;12838:34;12846:6;12854;12862:9;12838:7;:34::i;:::-;12779:93;;;12829:6;12779:93;12754:118;;12906:40;12931:14;12906:9;:20;12916:9;12906:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;12883:9;:20;12893:9;12883:20;;;;;;;;;;;;;;;:63;;;;12981:9;12964:43;;12973:6;12964:43;;;12992:14;12964:43;;;;;;:::i;:::-;;;;;;;;13025:4;13018:11;;;11402:1635;;;;;;:::o;1405:136::-;1463:7;1490:43;1494:1;1497;1490:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1483:50;;1405:136;;;;:::o;1218:181::-;1276:7;1296:9;1312:1;1308;:5;;;;:::i;:::-;1296:17;;1337:1;1332;:6;;1324:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1390:1;1383:8;;;1218:181;;;;:::o;2139:189::-;2225:7;2257:1;2253;:5;2260:12;2245:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2284:9;2300:1;2296;:5;;;;:::i;:::-;2284:17;;2319:1;2312:8;;;2139:189;;;;;:::o;13049:330::-;13142:4;13179:53;13201:6;13179:53;;;;;;;;;;;;;;;;;:9;:17;13189:6;13179:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;13159:9;:17;13169:6;13159:17;;;;;;;;;;;;;;;:73;;;;13266:32;13291:6;13266:9;:20;13276:9;13266:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;13243:9;:20;13253:9;13243:20;;;;;;;;;;;;;;;:55;;;;13331:9;13314:35;;13323:6;13314:35;;;13342:6;13314:35;;;;;;:::i;:::-;;;;;;;;13367:4;13360:11;;13049:330;;;;;:::o;13387:166::-;13484:12;;13474:6;:22;;:49;;;;13500:15;:23;13516:6;13500:23;;;;;;;;;;;;;;;;;;;;;;;;;13474:49;13466:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;13387:166;;:::o;14633:197::-;14682:4;14720;;;;;;;;;;;14706:18;;:10;:18;;;;:38;;;;;14738:6;;;;;;;;;;;14737:7;14706:38;:62;;;;;14757:11;;;;;;;;;;;14706:62;:116;;;;;14809:13;;14781:9;:24;14799:4;14781:24;;;;;;;;;;;;;;;;:41;;14706:116;14699:123;;14633:197;:::o;16002:1861::-;7896:4;7887:6;;:13;;;;;;;;;;;;;;;;;;16051:27:::1;16081:60;16097:15;;16114:26;;16081:15;:60::i;:::-;:79;;16148:12;;16081:79;;;16144:1;16081:79;16051:109;;16171:23;16197:59;16254:1;16197:52;16240:8;;16197:38;16215:19;16197:13;;:17;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;16171:85;;16267:20;16290:34;16308:15;16290:13;;:17;;:34;;;;:::i;:::-;16267:57;;16337:21;16375:1;16361:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16337:40;;16406:4;16388;16393:1;16388:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;16432:4;;;;;;;;;;;16422;16427:1;16422:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;16449:21;16473;16449:45;;16507:6;;;;;;;;;;;:57;;;16579:12;16606:1;16622:4;16649;16669:15;16507:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16708:17;16728:40;16754:13;16728:21;:25;;:40;;;;:::i;:::-;16708:60;;16781:19;16803:40;16816:26;16840:1;16816:19;:23;;:26;;;;:::i;:::-;16803:8;;:12;;:40;;;;:::i;:::-;16781:62;;16864:26;16893:58;16949:1;16893:51;16932:11;16893:34;16907:19;16893:9;:13;;:34;;;;:::i;:::-;:38;;:51;;;;:::i;:::-;:55;;:58;;;;:::i;:::-;16864:87;;16962:26;16991:44;17023:11;16991:27;17005:12;;16991:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;16962:73;;17046:21;17070:39;17097:11;17070:22;17084:7;;17070:9;:13;;:22;;;;:::i;:::-;:26;;:39;;;;:::i;:::-;17046:63;;17120:20;17143:38;17169:11;17143:21;17157:6;;17143:9;:13;;:21;;;;:::i;:::-;:25;;:38;;;;:::i;:::-;17120:61;;17195:15;17223:20;;;;;;;;;;;17215:34;;17257:18;17215:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17194:86;;;17315:14;;;;;;;;;;;17307:28;;17343:12;17307:53;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17291:69;;;;;17395:15;;;;;;;;;;;17387:29;;17424:13;17387:55;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17371:71;;;;;17476:5;17463:18;;17515:1;17497:15;:19;17494:362;;;17532:6;;;;;;;;;;;:22;;;17562:18;17608:4;17632:15;17666:1;17686::::0;17706:21:::1;;;;;;;;;;;17746:15;17532:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17796:48;17808:18;17828:15;17796:48;;;;;;;:::i;:::-;;;;;;;;17494:362;16040:1823;;;;;;;;;;;;7914:5:::0;7905:6;;:14;;;;;;;;;;;;;;;;;;16002:1861::o;13683:942::-;13769:7;13799:18;13820;;13799:39;;13867:4;;;;;;;;;;;13854:17;;:9;:17;;;13851:154;;;13901:14;;13888:27;;13851:154;;;13946:4;;;;;;;;;;;13936:14;;:6;:14;;;13933:72;;;13980:13;;13967:26;;13933:72;13851:154;14017:17;14037:62;14095:3;14078:14;;:20;;;;:::i;:::-;14037:36;14062:10;14037:20;14048:8;;14037:6;:10;;:20;;;;:::i;:::-;:24;;:36;;;;:::i;:::-;:40;;:62;;;;:::i;:::-;14017:82;;14110:18;14131:36;14158:8;;14131:22;14145:7;;14131:9;:13;;:22;;;;:::i;:::-;:26;;:36;;;;:::i;:::-;14110:57;;14178:22;14203:25;14217:10;14203:9;:13;;:25;;;;:::i;:::-;14178:50;;14268:44;14297:14;14268:9;:24;14286:4;14268:24;;;;;;;;;;;;;;;;:28;;:44;;;;:::i;:::-;14241:9;:24;14259:4;14241:24;;;;;;;;;;;;;;;:71;;;;14352:42;14383:10;14352:9;:26;14362:15;;;;;;;;;;;14352:26;;;;;;;;;;;;;;;;:30;;:42;;;;:::i;:::-;14323:9;:26;14333:15;;;;;;;;;;;14323:26;;;;;;;;;;;;;;;:71;;;;14435:4;14410:47;;14419:6;14410:47;;;14442:14;14410:47;;;;;;:::i;:::-;;;;;;;;14494:1;14481:10;:14;14478:99;;;14533:15;;;;;;;;;;;14516:45;;14525:6;14516:45;;;14550:10;14516:45;;;;;;:::i;:::-;;;;;;;;14478:99;14596:21;14607:9;14596:6;:10;;:21;;;;:::i;:::-;14589:28;;;;;;13683:942;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:155::-;206:5;244:6;231:20;222:29;;260:41;295:5;260:41;:::i;:::-;152:155;;;;:::o;330:568::-;403:8;413:6;463:3;456:4;448:6;444:17;440:27;430:122;;471:79;;:::i;:::-;430:122;584:6;571:20;561:30;;614:18;606:6;603:30;600:117;;;636:79;;:::i;:::-;600:117;750:4;742:6;738:17;726:29;;804:3;796:4;788:6;784:17;774:8;770:32;767:41;764:128;;;811:79;;:::i;:::-;764:128;330:568;;;;;:::o;904:133::-;947:5;985:6;972:20;963:29;;1001:30;1025:5;1001:30;:::i;:::-;904:133;;;;:::o;1043:137::-;1097:5;1128:6;1122:13;1113:22;;1144:30;1168:5;1144:30;:::i;:::-;1043:137;;;;:::o;1186:139::-;1232:5;1270:6;1257:20;1248:29;;1286:33;1313:5;1286:33;:::i;:::-;1186:139;;;;:::o;1331:143::-;1388:5;1419:6;1413:13;1404:22;;1435:33;1462:5;1435:33;:::i;:::-;1331:143;;;;:::o;1480:329::-;1539:6;1588:2;1576:9;1567:7;1563:23;1559:32;1556:119;;;1594:79;;:::i;:::-;1556:119;1714:1;1739:53;1784:7;1775:6;1764:9;1760:22;1739:53;:::i;:::-;1729:63;;1685:117;1480:329;;;;:::o;1815:345::-;1882:6;1931:2;1919:9;1910:7;1906:23;1902:32;1899:119;;;1937:79;;:::i;:::-;1899:119;2057:1;2082:61;2135:7;2126:6;2115:9;2111:22;2082:61;:::i;:::-;2072:71;;2028:125;1815:345;;;;:::o;2166:474::-;2234:6;2242;2291:2;2279:9;2270:7;2266:23;2262:32;2259:119;;;2297:79;;:::i;:::-;2259:119;2417:1;2442:53;2487:7;2478:6;2467:9;2463:22;2442:53;:::i;:::-;2432:63;;2388:117;2544:2;2570:53;2615:7;2606:6;2595:9;2591:22;2570:53;:::i;:::-;2560:63;;2515:118;2166:474;;;;;:::o;2646:911::-;2741:6;2749;2757;2765;2773;2822:3;2810:9;2801:7;2797:23;2793:33;2790:120;;;2829:79;;:::i;:::-;2790:120;2949:1;2974:53;3019:7;3010:6;2999:9;2995:22;2974:53;:::i;:::-;2964:63;;2920:117;3076:2;3102:53;3147:7;3138:6;3127:9;3123:22;3102:53;:::i;:::-;3092:63;;3047:118;3204:2;3230:53;3275:7;3266:6;3255:9;3251:22;3230:53;:::i;:::-;3220:63;;3175:118;3332:2;3358:53;3403:7;3394:6;3383:9;3379:22;3358:53;:::i;:::-;3348:63;;3303:118;3460:3;3487:53;3532:7;3523:6;3512:9;3508:22;3487:53;:::i;:::-;3477:63;;3431:119;2646:911;;;;;;;;:::o;3563:619::-;3640:6;3648;3656;3705:2;3693:9;3684:7;3680:23;3676:32;3673:119;;;3711:79;;:::i;:::-;3673:119;3831:1;3856:53;3901:7;3892:6;3881:9;3877:22;3856:53;:::i;:::-;3846:63;;3802:117;3958:2;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3929:118;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;3563:619;;;;;:::o;4188:468::-;4253:6;4261;4310:2;4298:9;4289:7;4285:23;4281:32;4278:119;;;4316:79;;:::i;:::-;4278:119;4436:1;4461:53;4506:7;4497:6;4486:9;4482:22;4461:53;:::i;:::-;4451:63;;4407:117;4563:2;4589:50;4631:7;4622:6;4611:9;4607:22;4589:50;:::i;:::-;4579:60;;4534:115;4188:468;;;;;:::o;4662:474::-;4730:6;4738;4787:2;4775:9;4766:7;4762:23;4758:32;4755:119;;;4793:79;;:::i;:::-;4755:119;4913:1;4938:53;4983:7;4974:6;4963:9;4959:22;4938:53;:::i;:::-;4928:63;;4884:117;5040:2;5066:53;5111:7;5102:6;5091:9;5087:22;5066:53;:::i;:::-;5056:63;;5011:118;4662:474;;;;;:::o;5142:698::-;5234:6;5242;5250;5299:2;5287:9;5278:7;5274:23;5270:32;5267:119;;;5305:79;;:::i;:::-;5267:119;5453:1;5442:9;5438:17;5425:31;5483:18;5475:6;5472:30;5469:117;;;5505:79;;:::i;:::-;5469:117;5618:80;5690:7;5681:6;5670:9;5666:22;5618:80;:::i;:::-;5600:98;;;;5396:312;5747:2;5773:50;5815:7;5806:6;5795:9;5791:22;5773:50;:::i;:::-;5763:60;;5718:115;5142:698;;;;;:::o;5846:323::-;5902:6;5951:2;5939:9;5930:7;5926:23;5922:32;5919:119;;;5957:79;;:::i;:::-;5919:119;6077:1;6102:50;6144:7;6135:6;6124:9;6120:22;6102:50;:::i;:::-;6092:60;;6048:114;5846:323;;;;:::o;6175:345::-;6242:6;6291:2;6279:9;6270:7;6266:23;6262:32;6259:119;;;6297:79;;:::i;:::-;6259:119;6417:1;6442:61;6495:7;6486:6;6475:9;6471:22;6442:61;:::i;:::-;6432:71;;6388:125;6175:345;;;;:::o;6526:468::-;6591:6;6599;6648:2;6636:9;6627:7;6623:23;6619:32;6616:119;;;6654:79;;:::i;:::-;6616:119;6774:1;6799:50;6841:7;6832:6;6821:9;6817:22;6799:50;:::i;:::-;6789:60;;6745:114;6898:2;6924:53;6969:7;6960:6;6949:9;6945:22;6924:53;:::i;:::-;6914:63;;6869:118;6526:468;;;;;:::o;7000:329::-;7059:6;7108:2;7096:9;7087:7;7083:23;7079:32;7076:119;;;7114:79;;:::i;:::-;7076:119;7234:1;7259:53;7304:7;7295:6;7284:9;7280:22;7259:53;:::i;:::-;7249:63;;7205:117;7000:329;;;;:::o;7335:351::-;7405:6;7454:2;7442:9;7433:7;7429:23;7425:32;7422:119;;;7460:79;;:::i;:::-;7422:119;7580:1;7605:64;7661:7;7652:6;7641:9;7637:22;7605:64;:::i;:::-;7595:74;;7551:128;7335:351;;;;:::o;7692:474::-;7760:6;7768;7817:2;7805:9;7796:7;7792:23;7788:32;7785:119;;;7823:79;;:::i;:::-;7785:119;7943:1;7968:53;8013:7;8004:6;7993:9;7989:22;7968:53;:::i;:::-;7958:63;;7914:117;8070:2;8096:53;8141:7;8132:6;8121:9;8117:22;8096:53;:::i;:::-;8086:63;;8041:118;7692:474;;;;;:::o;8172:619::-;8249:6;8257;8265;8314:2;8302:9;8293:7;8289:23;8285:32;8282:119;;;8320:79;;:::i;:::-;8282:119;8440:1;8465:53;8510:7;8501:6;8490:9;8486:22;8465:53;:::i;:::-;8455:63;;8411:117;8567:2;8593:53;8638:7;8629:6;8618:9;8614:22;8593:53;:::i;:::-;8583:63;;8538:118;8695:2;8721:53;8766:7;8757:6;8746:9;8742:22;8721:53;:::i;:::-;8711:63;;8666:118;8172:619;;;;;:::o;8797:663::-;8885:6;8893;8901;8950:2;8938:9;8929:7;8925:23;8921:32;8918:119;;;8956:79;;:::i;:::-;8918:119;9076:1;9101:64;9157:7;9148:6;9137:9;9133:22;9101:64;:::i;:::-;9091:74;;9047:128;9214:2;9240:64;9296:7;9287:6;9276:9;9272:22;9240:64;:::i;:::-;9230:74;;9185:129;9353:2;9379:64;9435:7;9426:6;9415:9;9411:22;9379:64;:::i;:::-;9369:74;;9324:129;8797:663;;;;;:::o;9466:1057::-;9570:6;9578;9586;9594;9602;9610;9659:3;9647:9;9638:7;9634:23;9630:33;9627:120;;;9666:79;;:::i;:::-;9627:120;9786:1;9811:53;9856:7;9847:6;9836:9;9832:22;9811:53;:::i;:::-;9801:63;;9757:117;9913:2;9939:53;9984:7;9975:6;9964:9;9960:22;9939:53;:::i;:::-;9929:63;;9884:118;10041:2;10067:53;10112:7;10103:6;10092:9;10088:22;10067:53;:::i;:::-;10057:63;;10012:118;10169:2;10195:53;10240:7;10231:6;10220:9;10216:22;10195:53;:::i;:::-;10185:63;;10140:118;10297:3;10324:53;10369:7;10360:6;10349:9;10345:22;10324:53;:::i;:::-;10314:63;;10268:119;10426:3;10453:53;10498:7;10489:6;10478:9;10474:22;10453:53;:::i;:::-;10443:63;;10397:119;9466:1057;;;;;;;;:::o;10529:179::-;10598:10;10619:46;10661:3;10653:6;10619:46;:::i;:::-;10697:4;10692:3;10688:14;10674:28;;10529:179;;;;:::o;10714:147::-;10809:45;10848:5;10809:45;:::i;:::-;10804:3;10797:58;10714:147;;:::o;10867:108::-;10944:24;10962:5;10944:24;:::i;:::-;10939:3;10932:37;10867:108;;:::o;10981:118::-;11068:24;11086:5;11068:24;:::i;:::-;11063:3;11056:37;10981:118;;:::o;11135:732::-;11254:3;11283:54;11331:5;11283:54;:::i;:::-;11353:86;11432:6;11427:3;11353:86;:::i;:::-;11346:93;;11463:56;11513:5;11463:56;:::i;:::-;11542:7;11573:1;11558:284;11583:6;11580:1;11577:13;11558:284;;;11659:6;11653:13;11686:63;11745:3;11730:13;11686:63;:::i;:::-;11679:70;;11772:60;11825:6;11772:60;:::i;:::-;11762:70;;11618:224;11605:1;11602;11598:9;11593:14;;11558:284;;;11562:14;11858:3;11851:10;;11259:608;;;11135:732;;;;:::o;11873:109::-;11954:21;11969:5;11954:21;:::i;:::-;11949:3;11942:34;11873:109;;:::o;11988:167::-;12093:55;12142:5;12093:55;:::i;:::-;12088:3;12081:68;11988:167;;:::o;12161:147::-;12256:45;12295:5;12256:45;:::i;:::-;12251:3;12244:58;12161:147;;:::o;12314:364::-;12402:3;12430:39;12463:5;12430:39;:::i;:::-;12485:71;12549:6;12544:3;12485:71;:::i;:::-;12478:78;;12565:52;12610:6;12605:3;12598:4;12591:5;12587:16;12565:52;:::i;:::-;12642:29;12664:6;12642:29;:::i;:::-;12637:3;12633:39;12626:46;;12406:272;12314:364;;;;:::o;12684:366::-;12826:3;12847:67;12911:2;12906:3;12847:67;:::i;:::-;12840:74;;12923:93;13012:3;12923:93;:::i;:::-;13041:2;13036:3;13032:12;13025:19;;12684:366;;;:::o;13056:::-;13198:3;13219:67;13283:2;13278:3;13219:67;:::i;:::-;13212:74;;13295:93;13384:3;13295:93;:::i;:::-;13413:2;13408:3;13404:12;13397:19;;13056:366;;;:::o;13428:::-;13570:3;13591:67;13655:2;13650:3;13591:67;:::i;:::-;13584:74;;13667:93;13756:3;13667:93;:::i;:::-;13785:2;13780:3;13776:12;13769:19;;13428:366;;;:::o;13800:::-;13942:3;13963:67;14027:2;14022:3;13963:67;:::i;:::-;13956:74;;14039:93;14128:3;14039:93;:::i;:::-;14157:2;14152:3;14148:12;14141:19;;13800:366;;;:::o;14172:::-;14314:3;14335:67;14399:2;14394:3;14335:67;:::i;:::-;14328:74;;14411:93;14500:3;14411:93;:::i;:::-;14529:2;14524:3;14520:12;14513:19;;14172:366;;;:::o;14544:::-;14686:3;14707:67;14771:2;14766:3;14707:67;:::i;:::-;14700:74;;14783:93;14872:3;14783:93;:::i;:::-;14901:2;14896:3;14892:12;14885:19;;14544:366;;;:::o;14916:::-;15058:3;15079:67;15143:2;15138:3;15079:67;:::i;:::-;15072:74;;15155:93;15244:3;15155:93;:::i;:::-;15273:2;15268:3;15264:12;15257:19;;14916:366;;;:::o;15288:365::-;15430:3;15451:66;15515:1;15510:3;15451:66;:::i;:::-;15444:73;;15526:93;15615:3;15526:93;:::i;:::-;15644:2;15639:3;15635:12;15628:19;;15288:365;;;:::o;15659:398::-;15818:3;15839:83;15920:1;15915:3;15839:83;:::i;:::-;15832:90;;15931:93;16020:3;15931:93;:::i;:::-;16049:1;16044:3;16040:11;16033:18;;15659:398;;;:::o;16063:366::-;16205:3;16226:67;16290:2;16285:3;16226:67;:::i;:::-;16219:74;;16302:93;16391:3;16302:93;:::i;:::-;16420:2;16415:3;16411:12;16404:19;;16063:366;;;:::o;16435:::-;16577:3;16598:67;16662:2;16657:3;16598:67;:::i;:::-;16591:74;;16674:93;16763:3;16674:93;:::i;:::-;16792:2;16787:3;16783:12;16776:19;;16435:366;;;:::o;16807:118::-;16894:24;16912:5;16894:24;:::i;:::-;16889:3;16882:37;16807:118;;:::o;16931:112::-;17014:22;17030:5;17014:22;:::i;:::-;17009:3;17002:35;16931:112;;:::o;17049:379::-;17233:3;17255:147;17398:3;17255:147;:::i;:::-;17248:154;;17419:3;17412:10;;17049:379;;;:::o;17434:222::-;17527:4;17565:2;17554:9;17550:18;17542:26;;17578:71;17646:1;17635:9;17631:17;17622:6;17578:71;:::i;:::-;17434:222;;;;:::o;17662:238::-;17763:4;17801:2;17790:9;17786:18;17778:26;;17814:79;17890:1;17879:9;17875:17;17866:6;17814:79;:::i;:::-;17662:238;;;;:::o;17906:332::-;18027:4;18065:2;18054:9;18050:18;18042:26;;18078:71;18146:1;18135:9;18131:17;18122:6;18078:71;:::i;:::-;18159:72;18227:2;18216:9;18212:18;18203:6;18159:72;:::i;:::-;17906:332;;;;;:::o;18244:807::-;18493:4;18531:3;18520:9;18516:19;18508:27;;18545:71;18613:1;18602:9;18598:17;18589:6;18545:71;:::i;:::-;18626:72;18694:2;18683:9;18679:18;18670:6;18626:72;:::i;:::-;18708:80;18784:2;18773:9;18769:18;18760:6;18708:80;:::i;:::-;18798;18874:2;18863:9;18859:18;18850:6;18798:80;:::i;:::-;18888:73;18956:3;18945:9;18941:19;18932:6;18888:73;:::i;:::-;18971;19039:3;19028:9;19024:19;19015:6;18971:73;:::i;:::-;18244:807;;;;;;;;;:::o;19057:210::-;19144:4;19182:2;19171:9;19167:18;19159:26;;19195:65;19257:1;19246:9;19242:17;19233:6;19195:65;:::i;:::-;19057:210;;;;:::o;19273:258::-;19384:4;19422:2;19411:9;19407:18;19399:26;;19435:89;19521:1;19510:9;19506:17;19497:6;19435:89;:::i;:::-;19273:258;;;;:::o;19537:313::-;19650:4;19688:2;19677:9;19673:18;19665:26;;19737:9;19731:4;19727:20;19723:1;19712:9;19708:17;19701:47;19765:78;19838:4;19829:6;19765:78;:::i;:::-;19757:86;;19537:313;;;;:::o;19856:419::-;20022:4;20060:2;20049:9;20045:18;20037:26;;20109:9;20103:4;20099:20;20095:1;20084:9;20080:17;20073:47;20137:131;20263:4;20137:131;:::i;:::-;20129:139;;19856:419;;;:::o;20281:::-;20447:4;20485:2;20474:9;20470:18;20462:26;;20534:9;20528:4;20524:20;20520:1;20509:9;20505:17;20498:47;20562:131;20688:4;20562:131;:::i;:::-;20554:139;;20281:419;;;:::o;20706:::-;20872:4;20910:2;20899:9;20895:18;20887:26;;20959:9;20953:4;20949:20;20945:1;20934:9;20930:17;20923:47;20987:131;21113:4;20987:131;:::i;:::-;20979:139;;20706:419;;;:::o;21131:::-;21297:4;21335:2;21324:9;21320:18;21312:26;;21384:9;21378:4;21374:20;21370:1;21359:9;21355:17;21348:47;21412:131;21538:4;21412:131;:::i;:::-;21404:139;;21131:419;;;:::o;21556:::-;21722:4;21760:2;21749:9;21745:18;21737:26;;21809:9;21803:4;21799:20;21795:1;21784:9;21780:17;21773:47;21837:131;21963:4;21837:131;:::i;:::-;21829:139;;21556:419;;;:::o;21981:::-;22147:4;22185:2;22174:9;22170:18;22162:26;;22234:9;22228:4;22224:20;22220:1;22209:9;22205:17;22198:47;22262:131;22388:4;22262:131;:::i;:::-;22254:139;;21981:419;;;:::o;22406:::-;22572:4;22610:2;22599:9;22595:18;22587:26;;22659:9;22653:4;22649:20;22645:1;22634:9;22630:17;22623:47;22687:131;22813:4;22687:131;:::i;:::-;22679:139;;22406:419;;;:::o;22831:::-;22997:4;23035:2;23024:9;23020:18;23012:26;;23084:9;23078:4;23074:20;23070:1;23059:9;23055:17;23048:47;23112:131;23238:4;23112:131;:::i;:::-;23104:139;;22831:419;;;:::o;23256:::-;23422:4;23460:2;23449:9;23445:18;23437:26;;23509:9;23503:4;23499:20;23495:1;23484:9;23480:17;23473:47;23537:131;23663:4;23537:131;:::i;:::-;23529:139;;23256:419;;;:::o;23681:::-;23847:4;23885:2;23874:9;23870:18;23862:26;;23934:9;23928:4;23924:20;23920:1;23909:9;23905:17;23898:47;23962:131;24088:4;23962:131;:::i;:::-;23954:139;;23681:419;;;:::o;24106:222::-;24199:4;24237:2;24226:9;24222:18;24214:26;;24250:71;24318:1;24307:9;24303:17;24294:6;24250:71;:::i;:::-;24106:222;;;;:::o;24334:831::-;24597:4;24635:3;24624:9;24620:19;24612:27;;24649:71;24717:1;24706:9;24702:17;24693:6;24649:71;:::i;:::-;24730:80;24806:2;24795:9;24791:18;24782:6;24730:80;:::i;:::-;24857:9;24851:4;24847:20;24842:2;24831:9;24827:18;24820:48;24885:108;24988:4;24979:6;24885:108;:::i;:::-;24877:116;;25003:72;25071:2;25060:9;25056:18;25047:6;25003:72;:::i;:::-;25085:73;25153:3;25142:9;25138:19;25129:6;25085:73;:::i;:::-;24334:831;;;;;;;;:::o;25171:332::-;25292:4;25330:2;25319:9;25315:18;25307:26;;25343:71;25411:1;25400:9;25396:17;25387:6;25343:71;:::i;:::-;25424:72;25492:2;25481:9;25477:18;25468:6;25424:72;:::i;:::-;25171:332;;;;;:::o;25509:214::-;25598:4;25636:2;25625:9;25621:18;25613:26;;25649:67;25713:1;25702:9;25698:17;25689:6;25649:67;:::i;:::-;25509:214;;;;:::o;25810:132::-;25877:4;25900:3;25892:11;;25930:4;25925:3;25921:14;25913:22;;25810:132;;;:::o;25948:114::-;26015:6;26049:5;26043:12;26033:22;;25948:114;;;:::o;26068:99::-;26120:6;26154:5;26148:12;26138:22;;26068:99;;;:::o;26173:113::-;26243:4;26275;26270:3;26266:14;26258:22;;26173:113;;;:::o;26292:184::-;26391:11;26425:6;26420:3;26413:19;26465:4;26460:3;26456:14;26441:29;;26292:184;;;;:::o;26482:147::-;26583:11;26620:3;26605:18;;26482:147;;;;:::o;26635:169::-;26719:11;26753:6;26748:3;26741:19;26793:4;26788:3;26784:14;26769:29;;26635:169;;;;:::o;26810:305::-;26850:3;26869:20;26887:1;26869:20;:::i;:::-;26864:25;;26903:20;26921:1;26903:20;:::i;:::-;26898:25;;27057:1;26989:66;26985:74;26982:1;26979:81;26976:107;;;27063:18;;:::i;:::-;26976:107;27107:1;27104;27100:9;27093:16;;26810:305;;;;:::o;27121:185::-;27161:1;27178:20;27196:1;27178:20;:::i;:::-;27173:25;;27212:20;27230:1;27212:20;:::i;:::-;27207:25;;27251:1;27241:35;;27256:18;;:::i;:::-;27241:35;27298:1;27295;27291:9;27286:14;;27121:185;;;;:::o;27312:348::-;27352:7;27375:20;27393:1;27375:20;:::i;:::-;27370:25;;27409:20;27427:1;27409:20;:::i;:::-;27404:25;;27597:1;27529:66;27525:74;27522:1;27519:81;27514:1;27507:9;27500:17;27496:105;27493:131;;;27604:18;;:::i;:::-;27493:131;27652:1;27649;27645:9;27634:20;;27312:348;;;;:::o;27666:191::-;27706:4;27726:20;27744:1;27726:20;:::i;:::-;27721:25;;27760:20;27778:1;27760:20;:::i;:::-;27755:25;;27799:1;27796;27793:8;27790:34;;;27804:18;;:::i;:::-;27790:34;27849:1;27846;27842:9;27834:17;;27666:191;;;;:::o;27863:96::-;27900:7;27929:24;27947:5;27929:24;:::i;:::-;27918:35;;27863:96;;;:::o;27965:104::-;28010:7;28039:24;28057:5;28039:24;:::i;:::-;28028:35;;27965:104;;;:::o;28075:90::-;28109:7;28152:5;28145:13;28138:21;28127:32;;28075:90;;;:::o;28171:126::-;28208:7;28248:42;28241:5;28237:54;28226:65;;28171:126;;;:::o;28303:77::-;28340:7;28369:5;28358:16;;28303:77;;;:::o;28386:86::-;28421:7;28461:4;28454:5;28450:16;28439:27;;28386:86;;;:::o;28478:134::-;28536:9;28569:37;28600:5;28569:37;:::i;:::-;28556:50;;28478:134;;;:::o;28618:144::-;28686:9;28719:37;28750:5;28719:37;:::i;:::-;28706:50;;28618:144;;;:::o;28768:121::-;28826:9;28859:24;28877:5;28859:24;:::i;:::-;28846:37;;28768:121;;;:::o;28895:126::-;28945:9;28978:37;29009:5;28978:37;:::i;:::-;28965:50;;28895:126;;;:::o;29027:113::-;29077:9;29110:24;29128:5;29110:24;:::i;:::-;29097:37;;29027:113;;;:::o;29146:307::-;29214:1;29224:113;29238:6;29235:1;29232:13;29224:113;;;29323:1;29318:3;29314:11;29308:18;29304:1;29299:3;29295:11;29288:39;29260:2;29257:1;29253:10;29248:15;;29224:113;;;29355:6;29352:1;29349:13;29346:101;;;29435:1;29426:6;29421:3;29417:16;29410:27;29346:101;29195:258;29146:307;;;:::o;29459:233::-;29498:3;29521:24;29539:5;29521:24;:::i;:::-;29512:33;;29567:66;29560:5;29557:77;29554:103;;;29637:18;;:::i;:::-;29554:103;29684:1;29677:5;29673:13;29666:20;;29459:233;;;:::o;29698:180::-;29746:77;29743:1;29736:88;29843:4;29840:1;29833:15;29867:4;29864:1;29857:15;29884:180;29932:77;29929:1;29922:88;30029:4;30026:1;30019:15;30053:4;30050:1;30043:15;30070:180;30118:77;30115:1;30108:88;30215:4;30212:1;30205:15;30239:4;30236:1;30229:15;30256:180;30304:77;30301:1;30294:88;30401:4;30398:1;30391:15;30425:4;30422:1;30415:15;30442:117;30551:1;30548;30541:12;30565:117;30674:1;30671;30664:12;30688:117;30797:1;30794;30787:12;30811:117;30920:1;30917;30910:12;30934:117;31043:1;31040;31033:12;31057:102;31098:6;31149:2;31145:7;31140:2;31133:5;31129:14;31125:28;31115:38;;31057:102;;;:::o;31165:167::-;31305:19;31301:1;31293:6;31289:14;31282:43;31165:167;:::o;31338:178::-;31478:30;31474:1;31466:6;31462:14;31455:54;31338:178;:::o;31522:177::-;31662:29;31658:1;31650:6;31646:14;31639:53;31522:177;:::o;31705:170::-;31845:22;31841:1;31833:6;31829:14;31822:46;31705:170;:::o;31881:160::-;32021:12;32017:1;32009:6;32005:14;31998:36;31881:160;:::o;32047:220::-;32187:34;32183:1;32175:6;32171:14;32164:58;32256:3;32251:2;32243:6;32239:15;32232:28;32047:220;:::o;32273:249::-;32413:34;32409:1;32401:6;32397:14;32390:58;32482:32;32477:2;32469:6;32465:15;32458:57;32273:249;:::o;32528:156::-;32668:8;32664:1;32656:6;32652:14;32645:32;32528:156;:::o;32690:114::-;;:::o;32810:165::-;32950:17;32946:1;32938:6;32934:14;32927:41;32810:165;:::o;32981:161::-;33121:13;33117:1;33109:6;33105:14;33098:37;32981:161;:::o;33148:122::-;33221:24;33239:5;33221:24;:::i;:::-;33214:5;33211:35;33201:63;;33260:1;33257;33250:12;33201:63;33148:122;:::o;33276:138::-;33357:32;33383:5;33357:32;:::i;:::-;33350:5;33347:43;33337:71;;33404:1;33401;33394:12;33337:71;33276:138;:::o;33420:116::-;33490:21;33505:5;33490:21;:::i;:::-;33483:5;33480:32;33470:60;;33526:1;33523;33516:12;33470:60;33420:116;:::o;33542:122::-;33615:24;33633:5;33615:24;:::i;:::-;33608:5;33605:35;33595:63;;33654:1;33651;33644:12;33595:63;33542:122;:::o

Swarm Source

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