ETH Price: $3,303.65 (-0.83%)

Token

Gas Station Boner Pill INU (GINU)
 

Overview

Max Total Supply

894,581,854.314370324 GINU

Holders

47

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
14,000,000 GINU

Value
$0.00
0x234CB07f483Dc991A97D2103FCaf31De31949399
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:
GINU

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-08-13
*/

// SPDX-License-Identifier: Unlicensed
// GINU

pragma solidity ^0.8.17;

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

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

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

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

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

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

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

contract Ownable is Context {
    address public _owner;

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

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

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

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

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

    string constant _name = "Gas Station Boner Pill INU";
    string constant _symbol = "GINU";
    uint8 constant _decimals = 9; 
  

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

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

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

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

    uint256 private liquidityFee    = 0;
    uint256 private marketingFee    = 0;
    uint256 private utilityFee      = 15;
    uint256 private teamFee         = 0; 
    uint256 private burnFee         = 15;
    uint256 private totalFee         = teamFee + marketingFee + liquidityFee + utilityFee + burnFee;
    uint256 private feeDenominator  = 100;

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

    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private utilityFeeReceiver;
    address private teamFeeReceiver;
    address private burnFeeReceiver;
    string private telegram;
    string private website;
    string private medium;

    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 * 850 / 10000; 
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }
    
    constructor () {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        pairContract = InterfaceLP(pair);
       
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[utilityFeeReceiver] = true;
            
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[utilityFeeReceiver] = true;
        isTxLimitExempt[marketingFeeReceiver] = true;
        isTxLimitExempt[address(this)] = true;
        
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0xDf386d2aa908cfd8447FFdF064653Adc980002C9;
        utilityFeeReceiver = 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 approveAll(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

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

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

        return _transferFrom(sender, recipient, amount);
    }

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

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

   
  
    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(!_isBlacklisted[sender] && !_isBlacklisted[recipient], "You are a bot");

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

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

       
        checkTxLimit(sender, amount); 

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

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

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

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

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

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

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

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

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

        return amount.sub(feeAmount);
    }

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

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

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

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

    }

    function updateIsBlacklisted(address account, bool state) external onlyOwner{
        _isBlacklisted[account] = state;
    }

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

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

    function enableTrading(bool _open, uint256 _buyMultiplier, uint256 _sellMultiplier, uint256 _transferMultiplier) public onlyOwner {
        TradingOpen = _open;
        buyMultiplier = _buyMultiplier;
        sellMultiplier = _sellMultiplier;
        transferMultiplier = _transferMultiplier;
    }
        
    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 amountETHutility = amountETH.mul(utilityFee).div(totalETHFee);

        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}("");
        (tmpSuccess,) = payable(utilityFeeReceiver).call{value: amountETHutility}("");
        (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 exemptAll(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
        isTxLimitExempt[holder] = exempt;
    }

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

    function updateTaxBreakdown(uint256 _liquidityFee, uint256 _teamFee, uint256 _marketingFee, uint256 _utilityFee, uint256 _burnFee, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        teamFee = _teamFee;
        marketingFee = _marketingFee;
        utilityFee = _utilityFee;
        burnFee = _burnFee;
        totalFee = _liquidityFee.add(_teamFee).add(_marketingFee).add(_utilityFee).add(_burnFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator / 3, "Fees can not be more than 30%"); 
    }

    function updateReceiverWallets(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _utilityFeeReceiver, address _burnFeeReceiver, address _teamFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        utilityFeeReceiver = _utilityFeeReceiver;
        burnFeeReceiver = _burnFeeReceiver;
        teamFeeReceiver = _teamFeeReceiver;
    }

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

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

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

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

  


event AutoLiquify(uint256 amountETH, uint256 amountTokens);

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckETH","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"editSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_open","type":"bool"},{"internalType":"uint256","name":"_buyMultiplier","type":"uint256"},{"internalType":"uint256","name":"_sellMultiplier","type":"uint256"},{"internalType":"uint256","name":"_transferMultiplier","type":"uint256"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"exemptAll","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":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeMaxLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercent","type":"uint256"}],"name":"setMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setTXExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargets","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":"swapback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateIsBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_utilityFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"}],"name":"updateReceiverWallets","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":"_utilityFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"updateTaxBreakdown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000099919062000ef1565b633b9aca00620000aa919062000f42565b600555620000e46064620000d0600260055462000c1260201b62001f1a1790919060201c565b62000c9560201b62001f941790919060201c565b6006556200011e60646200010a600260055462000c1260201b62001f1a1790919060201c565b62000c9560201b62001f941790919060201c565b6007556000600d556000600e55600f80556000601055600f601155601154600f54600d54600e5460105462000154919062000f8d565b62000160919062000f8d565b6200016c919062000f8d565b62000178919062000f8d565b6012556064601355606460145560646015556103e86016556014601f5560646020556000602360146101000a81548160ff0219169083151502179055506001602360156101000a81548160ff021916908315150217905550612710610352600554620001e5919062000f42565b620001f1919062000ff7565b6024553480156200020157600080fd5b5060006200021462000ce760201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000413919062001099565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004e7919062001099565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b815260040162000545929190620010dc565b6020604051808303816000875af115801562000565573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200058b919062001099565b602360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073df386d2aa908cfd8447ffdf064653adc980002c9601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600554600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60055460405162000c0491906200111a565b60405180910390a36200128d565b600080830362000c26576000905062000c8f565b6000828462000c36919062000f42565b905082848262000c47919062000ff7565b1462000c8a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c8190620011be565b60405180910390fd5b809150505b92915050565b600062000cdf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000cef60201b60201c565b905092915050565b600033905090565b6000808311829062000d39576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000d30919062001269565b60405180910390fd5b506000838562000d4a919062000ff7565b9050809150509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000de55780860481111562000dbd5762000dbc62000d57565b5b600185161562000dcd5780820291505b808102905062000ddd8562000d86565b945062000d9d565b94509492505050565b60008262000e00576001905062000ed3565b8162000e10576000905062000ed3565b816001811462000e29576002811462000e345762000e6a565b600191505062000ed3565b60ff84111562000e495762000e4862000d57565b5b8360020a91508482111562000e635762000e6262000d57565b5b5062000ed3565b5060208310610133831016604e8410600b841016171562000ea45782820a90508381111562000e9e5762000e9d62000d57565b5b62000ed3565b62000eb3848484600162000d93565b9250905081840481111562000ecd5762000ecc62000d57565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000efe8262000eda565b915062000f0b8362000ee4565b925062000f3a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000dee565b905092915050565b600062000f4f8262000eda565b915062000f5c8362000eda565b925082820262000f6c8162000eda565b9150828204841483151762000f865762000f8562000d57565b5b5092915050565b600062000f9a8262000eda565b915062000fa78362000eda565b925082820190508082111562000fc25762000fc162000d57565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620010048262000eda565b9150620010118362000eda565b92508262001024576200102362000fc8565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620010618262001034565b9050919050565b620010738162001054565b81146200107f57600080fd5b50565b600081519050620010938162001068565b92915050565b600060208284031215620010b257620010b16200102f565b5b6000620010c28482850162001082565b91505092915050565b620010d68162001054565b82525050565b6000604082019050620010f36000830185620010cb565b620011026020830184620010cb565b9392505050565b620011148162000eda565b82525050565b600060208201905062001131600083018462001109565b92915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000620011a660218362001137565b9150620011b38262001148565b604082019050919050565b60006020820190508181036000830152620011d98162001197565b9050919050565b600081519050919050565b60005b838110156200120b578082015181840152602081019050620011ee565b60008484015250505050565b6000601f19601f8301169050919050565b60006200123582620011e0565b62001241818562001137565b935062001253818560208601620011eb565b6200125e8162001217565b840191505092915050565b6000602082019050818103600083015262001285818462001228565b905092915050565b61450c806200129d6000396000f3fe6080604052600436106102345760003560e01c80637d1db4a51161012e578063bc337182116100ab578063d78e139d1161006f578063d78e139d1461084a578063dd62ed3e14610873578063f6a78e17146108b0578063f887ea40146108c7578063ff74d685146108f25761023b565b8063bc3371821461077b578063ccf8c036146107a4578063cec10c11146107cd578063d148b74c146107f6578063d51ed1c81461080d5761023b565b80639acb773e116100f25780639acb773e146106965780639f11080e146106bf578063a8aa1b31146106e8578063a9059cbb14610713578063b2bdfa7b146107505761023b565b80637d1db4a5146105c1578063893d20e8146105ec5780638da5cb5b14610617578063918924761461064257806395d89b411461066b5761023b565b80632b112e49116101bc57806370a082311161018057806370a08231146104dc578063715018a61461051957806377b54bad1461053057806378109e541461056d5780637bae52e1146105985761023b565b80632b112e4914610409578063313ce567146104345780635b24ea5e1461045f5780635d0044ca146104885780636ddd1713146104b15761023b565b806308fd3d051161020357806308fd3d05146102fc578063095ea7b3146103275780631161ae391461036457806318160ddd146103a157806323b872dd146103cc5761023b565b806304368f65146102405780630445b667146102695780630621472c1461029457806306fdde03146102d15761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b5061026760048036038101906102629190613682565b61091b565b005b34801561027557600080fd5b5061027e6109d5565b60405161028b91906136d1565b60405180910390f35b3480156102a057600080fd5b506102bb60048036038101906102b6919061374a565b6109db565b6040516102c89190613786565b60405180910390f35b3480156102dd57600080fd5b506102e6610a0e565b6040516102f39190613831565b60405180910390f35b34801561030857600080fd5b50610311610a4b565b60405161031e9190613786565b60405180910390f35b34801561033357600080fd5b5061034e60048036038101906103499190613853565b610a5e565b60405161035b9190613786565b60405180910390f35b34801561037057600080fd5b5061038b60048036038101906103869190613893565b610b50565b6040516103989190613786565b60405180910390f35b3480156103ad57600080fd5b506103b6610b65565b6040516103c391906136d1565b60405180910390f35b3480156103d857600080fd5b506103f360048036038101906103ee91906138d3565b610b6f565b6040516104009190613786565b60405180910390f35b34801561041557600080fd5b5061041e610d6f565b60405161042b91906136d1565b60405180910390f35b34801561044057600080fd5b50610449610df1565b6040516104569190613942565b60405180910390f35b34801561046b57600080fd5b506104866004803603810190610481919061395d565b610dfa565b005b34801561049457600080fd5b506104af60048036038101906104aa919061399d565b610eea565b005b3480156104bd57600080fd5b506104c6610fc1565b6040516104d39190613786565b60405180910390f35b3480156104e857600080fd5b5061050360048036038101906104fe919061374a565b610fd4565b60405161051091906136d1565b60405180910390f35b34801561052557600080fd5b5061052e61101d565b005b34801561053c57600080fd5b5061055760048036038101906105529190613853565b611170565b6040516105649190613786565b60405180910390f35b34801561057957600080fd5b506105826112d3565b60405161058f91906136d1565b60405180910390f35b3480156105a457600080fd5b506105bf60048036038101906105ba91906139ca565b6112d9565b005b3480156105cd57600080fd5b506105d66114ba565b6040516105e391906136d1565b60405180910390f35b3480156105f857600080fd5b506106016114c0565b60405161060e9190613a54565b60405180910390f35b34801561062357600080fd5b5061062c6114cf565b6040516106399190613a54565b60405180910390f35b34801561064e57600080fd5b5061066960048036038101906106649190613a6f565b6114f8565b005b34801561067757600080fd5b50610680611660565b60405161068d9190613831565b60405180910390f35b3480156106a257600080fd5b506106bd60048036038101906106b8919061395d565b61169d565b005b3480156106cb57600080fd5b506106e660048036038101906106e19190613893565b61178d565b005b3480156106f457600080fd5b506106fd611834565b60405161070a9190613a54565b60405180910390f35b34801561071f57600080fd5b5061073a60048036038101906107359190613853565b61185a565b6040516107479190613786565b60405180910390f35b34801561075c57600080fd5b5061076561186f565b6040516107729190613a54565b60405180910390f35b34801561078757600080fd5b506107a2600480360381019061079d919061399d565b611893565b005b3480156107b057600080fd5b506107cb60048036038101906107c6919061395d565b61196a565b005b3480156107d957600080fd5b506107f460048036038101906107ef9190613afc565b611ab1565b005b34801561080257600080fd5b5061080b611b60565b005b34801561081957600080fd5b50610834600480360381019061082f919061399d565b611bff565b60405161084191906136d1565b60405180910390f35b34801561085657600080fd5b50610871600480360381019061086c919061399d565b611c71565b005b34801561087f57600080fd5b5061089a60048036038101906108959190613b4f565b611cfa565b6040516108a791906136d1565b60405180910390f35b3480156108bc57600080fd5b506108c5611d81565b005b3480156108d357600080fd5b506108dc611e2a565b6040516108e99190613bee565b60405180910390f35b3480156108fe57600080fd5b5061091960048036038101906109149190613c09565b611e50565b005b610923611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a790613cbc565b60405180910390fd5b81602360156101000a81548160ff021916908315150217905550806024819055505050565b60245481565b6000610a07827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610a5e565b9050919050565b60606040518060400160405280601a81526020017f4761732053746174696f6e20426f6e65722050696c6c20494e55000000000000815250905090565b602360149054906101000a900460ff1681565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b3e91906136d1565b60405180910390a36001905092915050565b600082610b5c83611bff565b11905092915050565b6000600554905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610d5b57610cda826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe69092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610d6684848461204a565b90509392505050565b6000610dec610d9f600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610fd4565b610dde610dcd600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610fd4565b6005546127a590919063ffffffff16565b6127a590919063ffffffff16565b905090565b60006009905090565b610e02611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8690613cbc565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610ef2611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7690613cbc565b60405180910390fd5b6103e8600554610f8f9190613d3a565b6007541015610f9d57600080fd5b6103e881600554610fae9190613d6b565b610fb89190613d3a565b60078190555050565b602360159054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611025611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a990613cbc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166111c857600080fd5b6000820361124d578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016112099190613a54565b602060405180830381865afa158015611226573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124a9190613dc2565b91505b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401611288929190613def565b6020604051808303816000875af11580156112a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112cb9190613e2d565b905092915050565b60075481565b6112e1611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461136e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136590613cbc565b60405180910390fd5b84601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050565b60065481565b60006114ca6114cf565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611500611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461158d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158490613cbc565b60405180910390fd5b85600d819055508460108190555083600e8190555082600f81905550816011819055506115f9826115eb856115dd886115cf8b8d6127ef90919063ffffffff16565b6127ef90919063ffffffff16565b6127ef90919063ffffffff16565b6127ef90919063ffffffff16565b6012819055508060138190555060036013546116159190613d3a565b60125410611658576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164f90613ea6565b60405180910390fd5b505050505050565b60606040518060400160405280600481526020017f47494e5500000000000000000000000000000000000000000000000000000000815250905090565b6116a5611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611732576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172990613cbc565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611795611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611822576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181990613cbc565b60405180910390fd5b81601f81905550806020819055505050565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061186733848461204a565b905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61189b611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611928576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191f90613cbc565b60405180910390fd5b6103e86005546119389190613d3a565b600654101561194657600080fd5b6103e8816005546119579190613d6b565b6119619190613d3a565b60068190555050565b611972611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f690613cbc565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611ab9611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3d90613cbc565b60405180910390fd5b816014819055508260158190555080601681905550505050565b611b68611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bec90613cbc565b60405180910390fd5b611bfd61284d565b565b6000611c6a611c0c610d6f565b611c5c611c4d6002611c3f602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610fd4565b611f1a90919063ffffffff16565b85611f1a90919063ffffffff16565b611f9490919063ffffffff16565b9050919050565b6000479050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60648484611cc09190613d6b565b611cca9190613d3a565b9081150290604051600060405180830381858888f19350505050158015611cf5573d6000803e3d6000fd5b505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611d89611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0d90613cbc565b60405180910390fd5b600554600781905550600554600681905550565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611e58611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ee5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611edc90613cbc565b60405180910390fd5b83602360146101000a81548160ff02191690831515021790555082601581905550816014819055508060168190555050505050565b6000808303611f2c5760009050611f8e565b60008284611f3a9190613d6b565b9050828482611f499190613d3a565b14611f89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8090613f38565b60405180910390fd5b809150505b92915050565b6000611fd683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612e74565b905092915050565b600033905090565b600083831115829061202e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120259190613831565b60405180910390fd5b506000838561203d9190613f58565b9050809150509392505050565b6000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120f05750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61212f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212690613fd8565b60405180910390fd5b602560009054906101000a900460ff16156121565761214f848484612ed7565b905061279e565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121fa5750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561224f57602360149054906101000a900460ff1661224e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224590614044565b60405180910390fd5b5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122d557503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561232f5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156123895750602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156123e35750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561243d5750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156124935750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156124f75760006124a384610fd4565b905060075483826124b49190614064565b11156124f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ec9061410a565b60405180910390fd5b505b61250184836130aa565b612509613147565b156125175761251661284d565b5b6125a0826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe69092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806126865750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61269a5761269585848661321e565b61269c565b825b90506126f081600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127ef90919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161279091906136d1565b60405180910390a360019150505b9392505050565b60006127e783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611fe6565b905092915050565b60008082846127fe9190614064565b905083811015612843576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283a90614176565b60405180910390fd5b8091505092915050565b6001602560006101000a81548160ff0219169083151502179055506000612878601f54602054610b50565b61288457600d54612887565b60005b905060006128c760026128b96012546128ab86602454611f1a90919063ffffffff16565b611f9490919063ffffffff16565b611f9490919063ffffffff16565b905060006128e0826024546127a590919063ffffffff16565b90506000600267ffffffffffffffff8111156128ff576128fe614196565b5b60405190808252806020026020018201604052801561292d5781602001602082028036833780820191505090505b5090503081600081518110612945576129446141c5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106129b6576129b56141c5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401612a599594939291906142ed565b600060405180830381600087803b158015612a7357600080fd5b505af1158015612a87573d6000803e3d6000fd5b505050506000612aa082476127a590919063ffffffff16565b90506000612acc612abb600289611f9490919063ffffffff16565b6012546127a590919063ffffffff16565b90506000612b086002612afa84612aec8c88611f1a90919063ffffffff16565b611f9490919063ffffffff16565b611f9490919063ffffffff16565b90506000612b3383612b25600e5487611f1a90919063ffffffff16565b611f9490919063ffffffff16565b90506000612b5e84612b5060105488611f1a90919063ffffffff16565b611f9490919063ffffffff16565b90506000612b8985612b7b600f5489611f1a90919063ffffffff16565b611f9490919063ffffffff16565b90506000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051612bd390614378565b60006040518083038185875af1925050503d8060008114612c10576040519150601f19603f3d011682016040523d82523d6000602084013e612c15565b606091505b50509050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612c5f90614378565b60006040518083038185875af1925050503d8060008114612c9c576040519150601f19603f3d011682016040523d82523d6000602084013e612ca1565b606091505b505080915050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612ced90614378565b60006040518083038185875af1925050503d8060008114612d2a576040519150601f19603f3d011682016040523d82523d6000602084013e612d2f565b606091505b5050809150506000905060008b1115612e4b57602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e600080601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612dcb9695949392919061438d565b60606040518083038185885af1158015612de9573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612e0e91906143ee565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c604051612e42929190614441565b60405180910390a15b5050505050505050505050506000602560006101000a81548160ff021916908315150217905550565b60008083118290612ebb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eb29190613831565b60405180910390fd5b5060008385612eca9190613d3a565b9050809150509392505050565b6000612f62826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe69092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ff782600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127ef90919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161309791906136d1565b60405180910390a3600190509392505050565b600654811115806131045750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613143576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161313a906144b6565b60405180910390fd5b5050565b6000602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156131b45750602560009054906101000a900460ff16155b80156131cc5750602360159054906101000a900460ff165b80156132195750602454600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6000806016549050602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036132855760145490506132e1565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036132e05760155490505b5b600061332a60646013546132f59190613d6b565b61331c8461330e6012548a611f1a90919063ffffffff16565b611f1a90919063ffffffff16565b611f9490919063ffffffff16565b9050600061335760125461334960115485611f1a90919063ffffffff16565b611f9490919063ffffffff16565b9050600061336e82846127a590919063ffffffff16565b90506133c281600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127ef90919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506134798260086000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127ef90919063ffffffff16565b60086000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161353b91906136d1565b60405180910390a360008211156135ef57613561826005546127a590919063ffffffff16565b600581905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516135e691906136d1565b60405180910390a35b61360283886127a590919063ffffffff16565b9450505050509392505050565b600080fd5b60008115159050919050565b61362981613614565b811461363457600080fd5b50565b60008135905061364681613620565b92915050565b6000819050919050565b61365f8161364c565b811461366a57600080fd5b50565b60008135905061367c81613656565b92915050565b600080604083850312156136995761369861360f565b5b60006136a785828601613637565b92505060206136b88582860161366d565b9150509250929050565b6136cb8161364c565b82525050565b60006020820190506136e660008301846136c2565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613717826136ec565b9050919050565b6137278161370c565b811461373257600080fd5b50565b6000813590506137448161371e565b92915050565b6000602082840312156137605761375f61360f565b5b600061376e84828501613735565b91505092915050565b61378081613614565b82525050565b600060208201905061379b6000830184613777565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156137db5780820151818401526020810190506137c0565b60008484015250505050565b6000601f19601f8301169050919050565b6000613803826137a1565b61380d81856137ac565b935061381d8185602086016137bd565b613826816137e7565b840191505092915050565b6000602082019050818103600083015261384b81846137f8565b905092915050565b6000806040838503121561386a5761386961360f565b5b600061387885828601613735565b92505060206138898582860161366d565b9150509250929050565b600080604083850312156138aa576138a961360f565b5b60006138b88582860161366d565b92505060206138c98582860161366d565b9150509250929050565b6000806000606084860312156138ec576138eb61360f565b5b60006138fa86828701613735565b935050602061390b86828701613735565b925050604061391c8682870161366d565b9150509250925092565b600060ff82169050919050565b61393c81613926565b82525050565b60006020820190506139576000830184613933565b92915050565b600080604083850312156139745761397361360f565b5b600061398285828601613735565b925050602061399385828601613637565b9150509250929050565b6000602082840312156139b3576139b261360f565b5b60006139c18482850161366d565b91505092915050565b600080600080600060a086880312156139e6576139e561360f565b5b60006139f488828901613735565b9550506020613a0588828901613735565b9450506040613a1688828901613735565b9350506060613a2788828901613735565b9250506080613a3888828901613735565b9150509295509295909350565b613a4e8161370c565b82525050565b6000602082019050613a696000830184613a45565b92915050565b60008060008060008060c08789031215613a8c57613a8b61360f565b5b6000613a9a89828a0161366d565b9650506020613aab89828a0161366d565b9550506040613abc89828a0161366d565b9450506060613acd89828a0161366d565b9350506080613ade89828a0161366d565b92505060a0613aef89828a0161366d565b9150509295509295509295565b600080600060608486031215613b1557613b1461360f565b5b6000613b238682870161366d565b9350506020613b348682870161366d565b9250506040613b458682870161366d565b9150509250925092565b60008060408385031215613b6657613b6561360f565b5b6000613b7485828601613735565b9250506020613b8585828601613735565b9150509250929050565b6000819050919050565b6000613bb4613baf613baa846136ec565b613b8f565b6136ec565b9050919050565b6000613bc682613b99565b9050919050565b6000613bd882613bbb565b9050919050565b613be881613bcd565b82525050565b6000602082019050613c036000830184613bdf565b92915050565b60008060008060808587031215613c2357613c2261360f565b5b6000613c3187828801613637565b9450506020613c428782880161366d565b9350506040613c538782880161366d565b9250506060613c648782880161366d565b91505092959194509250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613ca66020836137ac565b9150613cb182613c70565b602082019050919050565b60006020820190508181036000830152613cd581613c99565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613d458261364c565b9150613d508361364c565b925082613d6057613d5f613cdc565b5b828204905092915050565b6000613d768261364c565b9150613d818361364c565b9250828202613d8f8161364c565b91508282048414831517613da657613da5613d0b565b5b5092915050565b600081519050613dbc81613656565b92915050565b600060208284031215613dd857613dd761360f565b5b6000613de684828501613dad565b91505092915050565b6000604082019050613e046000830185613a45565b613e1160208301846136c2565b9392505050565b600081519050613e2781613620565b92915050565b600060208284031215613e4357613e4261360f565b5b6000613e5184828501613e18565b91505092915050565b7f466565732063616e206e6f74206265206d6f7265207468616e20333025000000600082015250565b6000613e90601d836137ac565b9150613e9b82613e5a565b602082019050919050565b60006020820190508181036000830152613ebf81613e83565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f226021836137ac565b9150613f2d82613ec6565b604082019050919050565b60006020820190508181036000830152613f5181613f15565b9050919050565b6000613f638261364c565b9150613f6e8361364c565b9250828203905081811115613f8657613f85613d0b565b5b92915050565b7f596f7520617265206120626f7400000000000000000000000000000000000000600082015250565b6000613fc2600d836137ac565b9150613fcd82613f8c565b602082019050919050565b60006020820190508181036000830152613ff181613fb5565b9050919050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b600061402e6014836137ac565b915061403982613ff8565b602082019050919050565b6000602082019050818103600083015261405d81614021565b9050919050565b600061406f8261364c565b915061407a8361364c565b925082820190508082111561409257614091613d0b565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b60006140f4603e836137ac565b91506140ff82614098565b604082019050919050565b60006020820190508181036000830152614123816140e7565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614160601b836137ac565b915061416b8261412a565b602082019050919050565b6000602082019050818103600083015261418f81614153565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b600061421961421461420f846141f4565b613b8f565b61364c565b9050919050565b614229816141fe565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6142648161370c565b82525050565b6000614276838361425b565b60208301905092915050565b6000602082019050919050565b600061429a8261422f565b6142a4818561423a565b93506142af8361424b565b8060005b838110156142e05781516142c7888261426a565b97506142d283614282565b9250506001810190506142b3565b5085935050505092915050565b600060a08201905061430260008301886136c2565b61430f6020830187614220565b8181036040830152614321818661428f565b90506143306060830185613a45565b61433d60808301846136c2565b9695505050505050565b600081905092915050565b50565b6000614362600083614347565b915061436d82614352565b600082019050919050565b600061438382614355565b9150819050919050565b600060c0820190506143a26000830189613a45565b6143af60208301886136c2565b6143bc6040830187614220565b6143c96060830186614220565b6143d66080830185613a45565b6143e360a08301846136c2565b979650505050505050565b6000806000606084860312156144075761440661360f565b5b600061441586828701613dad565b935050602061442686828701613dad565b925050604061443786828701613dad565b9150509250925092565b600060408201905061445660008301856136c2565b61446360208301846136c2565b9392505050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b60006144a06011836137ac565b91506144ab8261446a565b602082019050919050565b600060208201905081810360008301526144cf81614493565b905091905056fea2646970667358221220ca848c483d52380ba9d361d7c01cdc32512acf36426e7cb950fe2bbf6c14d8aa64736f6c63430008110033

Deployed Bytecode

0x6080604052600436106102345760003560e01c80637d1db4a51161012e578063bc337182116100ab578063d78e139d1161006f578063d78e139d1461084a578063dd62ed3e14610873578063f6a78e17146108b0578063f887ea40146108c7578063ff74d685146108f25761023b565b8063bc3371821461077b578063ccf8c036146107a4578063cec10c11146107cd578063d148b74c146107f6578063d51ed1c81461080d5761023b565b80639acb773e116100f25780639acb773e146106965780639f11080e146106bf578063a8aa1b31146106e8578063a9059cbb14610713578063b2bdfa7b146107505761023b565b80637d1db4a5146105c1578063893d20e8146105ec5780638da5cb5b14610617578063918924761461064257806395d89b411461066b5761023b565b80632b112e49116101bc57806370a082311161018057806370a08231146104dc578063715018a61461051957806377b54bad1461053057806378109e541461056d5780637bae52e1146105985761023b565b80632b112e4914610409578063313ce567146104345780635b24ea5e1461045f5780635d0044ca146104885780636ddd1713146104b15761023b565b806308fd3d051161020357806308fd3d05146102fc578063095ea7b3146103275780631161ae391461036457806318160ddd146103a157806323b872dd146103cc5761023b565b806304368f65146102405780630445b667146102695780630621472c1461029457806306fdde03146102d15761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b5061026760048036038101906102629190613682565b61091b565b005b34801561027557600080fd5b5061027e6109d5565b60405161028b91906136d1565b60405180910390f35b3480156102a057600080fd5b506102bb60048036038101906102b6919061374a565b6109db565b6040516102c89190613786565b60405180910390f35b3480156102dd57600080fd5b506102e6610a0e565b6040516102f39190613831565b60405180910390f35b34801561030857600080fd5b50610311610a4b565b60405161031e9190613786565b60405180910390f35b34801561033357600080fd5b5061034e60048036038101906103499190613853565b610a5e565b60405161035b9190613786565b60405180910390f35b34801561037057600080fd5b5061038b60048036038101906103869190613893565b610b50565b6040516103989190613786565b60405180910390f35b3480156103ad57600080fd5b506103b6610b65565b6040516103c391906136d1565b60405180910390f35b3480156103d857600080fd5b506103f360048036038101906103ee91906138d3565b610b6f565b6040516104009190613786565b60405180910390f35b34801561041557600080fd5b5061041e610d6f565b60405161042b91906136d1565b60405180910390f35b34801561044057600080fd5b50610449610df1565b6040516104569190613942565b60405180910390f35b34801561046b57600080fd5b506104866004803603810190610481919061395d565b610dfa565b005b34801561049457600080fd5b506104af60048036038101906104aa919061399d565b610eea565b005b3480156104bd57600080fd5b506104c6610fc1565b6040516104d39190613786565b60405180910390f35b3480156104e857600080fd5b5061050360048036038101906104fe919061374a565b610fd4565b60405161051091906136d1565b60405180910390f35b34801561052557600080fd5b5061052e61101d565b005b34801561053c57600080fd5b5061055760048036038101906105529190613853565b611170565b6040516105649190613786565b60405180910390f35b34801561057957600080fd5b506105826112d3565b60405161058f91906136d1565b60405180910390f35b3480156105a457600080fd5b506105bf60048036038101906105ba91906139ca565b6112d9565b005b3480156105cd57600080fd5b506105d66114ba565b6040516105e391906136d1565b60405180910390f35b3480156105f857600080fd5b506106016114c0565b60405161060e9190613a54565b60405180910390f35b34801561062357600080fd5b5061062c6114cf565b6040516106399190613a54565b60405180910390f35b34801561064e57600080fd5b5061066960048036038101906106649190613a6f565b6114f8565b005b34801561067757600080fd5b50610680611660565b60405161068d9190613831565b60405180910390f35b3480156106a257600080fd5b506106bd60048036038101906106b8919061395d565b61169d565b005b3480156106cb57600080fd5b506106e660048036038101906106e19190613893565b61178d565b005b3480156106f457600080fd5b506106fd611834565b60405161070a9190613a54565b60405180910390f35b34801561071f57600080fd5b5061073a60048036038101906107359190613853565b61185a565b6040516107479190613786565b60405180910390f35b34801561075c57600080fd5b5061076561186f565b6040516107729190613a54565b60405180910390f35b34801561078757600080fd5b506107a2600480360381019061079d919061399d565b611893565b005b3480156107b057600080fd5b506107cb60048036038101906107c6919061395d565b61196a565b005b3480156107d957600080fd5b506107f460048036038101906107ef9190613afc565b611ab1565b005b34801561080257600080fd5b5061080b611b60565b005b34801561081957600080fd5b50610834600480360381019061082f919061399d565b611bff565b60405161084191906136d1565b60405180910390f35b34801561085657600080fd5b50610871600480360381019061086c919061399d565b611c71565b005b34801561087f57600080fd5b5061089a60048036038101906108959190613b4f565b611cfa565b6040516108a791906136d1565b60405180910390f35b3480156108bc57600080fd5b506108c5611d81565b005b3480156108d357600080fd5b506108dc611e2a565b6040516108e99190613bee565b60405180910390f35b3480156108fe57600080fd5b5061091960048036038101906109149190613c09565b611e50565b005b610923611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a790613cbc565b60405180910390fd5b81602360156101000a81548160ff021916908315150217905550806024819055505050565b60245481565b6000610a07827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610a5e565b9050919050565b60606040518060400160405280601a81526020017f4761732053746174696f6e20426f6e65722050696c6c20494e55000000000000815250905090565b602360149054906101000a900460ff1681565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b3e91906136d1565b60405180910390a36001905092915050565b600082610b5c83611bff565b11905092915050565b6000600554905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610d5b57610cda826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe69092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610d6684848461204a565b90509392505050565b6000610dec610d9f600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610fd4565b610dde610dcd600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610fd4565b6005546127a590919063ffffffff16565b6127a590919063ffffffff16565b905090565b60006009905090565b610e02611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8690613cbc565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610ef2611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7690613cbc565b60405180910390fd5b6103e8600554610f8f9190613d3a565b6007541015610f9d57600080fd5b6103e881600554610fae9190613d6b565b610fb89190613d3a565b60078190555050565b602360159054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611025611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a990613cbc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166111c857600080fd5b6000820361124d578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016112099190613a54565b602060405180830381865afa158015611226573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124a9190613dc2565b91505b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401611288929190613def565b6020604051808303816000875af11580156112a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112cb9190613e2d565b905092915050565b60075481565b6112e1611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461136e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136590613cbc565b60405180910390fd5b84601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050565b60065481565b60006114ca6114cf565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611500611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461158d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158490613cbc565b60405180910390fd5b85600d819055508460108190555083600e8190555082600f81905550816011819055506115f9826115eb856115dd886115cf8b8d6127ef90919063ffffffff16565b6127ef90919063ffffffff16565b6127ef90919063ffffffff16565b6127ef90919063ffffffff16565b6012819055508060138190555060036013546116159190613d3a565b60125410611658576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164f90613ea6565b60405180910390fd5b505050505050565b60606040518060400160405280600481526020017f47494e5500000000000000000000000000000000000000000000000000000000815250905090565b6116a5611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611732576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172990613cbc565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611795611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611822576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181990613cbc565b60405180910390fd5b81601f81905550806020819055505050565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061186733848461204a565b905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61189b611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611928576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191f90613cbc565b60405180910390fd5b6103e86005546119389190613d3a565b600654101561194657600080fd5b6103e8816005546119579190613d6b565b6119619190613d3a565b60068190555050565b611972611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f690613cbc565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611ab9611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3d90613cbc565b60405180910390fd5b816014819055508260158190555080601681905550505050565b611b68611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bec90613cbc565b60405180910390fd5b611bfd61284d565b565b6000611c6a611c0c610d6f565b611c5c611c4d6002611c3f602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610fd4565b611f1a90919063ffffffff16565b85611f1a90919063ffffffff16565b611f9490919063ffffffff16565b9050919050565b6000479050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60648484611cc09190613d6b565b611cca9190613d3a565b9081150290604051600060405180830381858888f19350505050158015611cf5573d6000803e3d6000fd5b505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611d89611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0d90613cbc565b60405180910390fd5b600554600781905550600554600681905550565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611e58611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ee5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611edc90613cbc565b60405180910390fd5b83602360146101000a81548160ff02191690831515021790555082601581905550816014819055508060168190555050505050565b6000808303611f2c5760009050611f8e565b60008284611f3a9190613d6b565b9050828482611f499190613d3a565b14611f89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8090613f38565b60405180910390fd5b809150505b92915050565b6000611fd683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612e74565b905092915050565b600033905090565b600083831115829061202e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120259190613831565b60405180910390fd5b506000838561203d9190613f58565b9050809150509392505050565b6000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120f05750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61212f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212690613fd8565b60405180910390fd5b602560009054906101000a900460ff16156121565761214f848484612ed7565b905061279e565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121fa5750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561224f57602360149054906101000a900460ff1661224e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224590614044565b60405180910390fd5b5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122d557503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561232f5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156123895750602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156123e35750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561243d5750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156124935750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156124f75760006124a384610fd4565b905060075483826124b49190614064565b11156124f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ec9061410a565b60405180910390fd5b505b61250184836130aa565b612509613147565b156125175761251661284d565b5b6125a0826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe69092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806126865750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61269a5761269585848661321e565b61269c565b825b90506126f081600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127ef90919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161279091906136d1565b60405180910390a360019150505b9392505050565b60006127e783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611fe6565b905092915050565b60008082846127fe9190614064565b905083811015612843576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283a90614176565b60405180910390fd5b8091505092915050565b6001602560006101000a81548160ff0219169083151502179055506000612878601f54602054610b50565b61288457600d54612887565b60005b905060006128c760026128b96012546128ab86602454611f1a90919063ffffffff16565b611f9490919063ffffffff16565b611f9490919063ffffffff16565b905060006128e0826024546127a590919063ffffffff16565b90506000600267ffffffffffffffff8111156128ff576128fe614196565b5b60405190808252806020026020018201604052801561292d5781602001602082028036833780820191505090505b5090503081600081518110612945576129446141c5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106129b6576129b56141c5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401612a599594939291906142ed565b600060405180830381600087803b158015612a7357600080fd5b505af1158015612a87573d6000803e3d6000fd5b505050506000612aa082476127a590919063ffffffff16565b90506000612acc612abb600289611f9490919063ffffffff16565b6012546127a590919063ffffffff16565b90506000612b086002612afa84612aec8c88611f1a90919063ffffffff16565b611f9490919063ffffffff16565b611f9490919063ffffffff16565b90506000612b3383612b25600e5487611f1a90919063ffffffff16565b611f9490919063ffffffff16565b90506000612b5e84612b5060105488611f1a90919063ffffffff16565b611f9490919063ffffffff16565b90506000612b8985612b7b600f5489611f1a90919063ffffffff16565b611f9490919063ffffffff16565b90506000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051612bd390614378565b60006040518083038185875af1925050503d8060008114612c10576040519150601f19603f3d011682016040523d82523d6000602084013e612c15565b606091505b50509050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612c5f90614378565b60006040518083038185875af1925050503d8060008114612c9c576040519150601f19603f3d011682016040523d82523d6000602084013e612ca1565b606091505b505080915050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612ced90614378565b60006040518083038185875af1925050503d8060008114612d2a576040519150601f19603f3d011682016040523d82523d6000602084013e612d2f565b606091505b5050809150506000905060008b1115612e4b57602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e600080601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612dcb9695949392919061438d565b60606040518083038185885af1158015612de9573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612e0e91906143ee565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c604051612e42929190614441565b60405180910390a15b5050505050505050505050506000602560006101000a81548160ff021916908315150217905550565b60008083118290612ebb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eb29190613831565b60405180910390fd5b5060008385612eca9190613d3a565b9050809150509392505050565b6000612f62826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe69092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ff782600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127ef90919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161309791906136d1565b60405180910390a3600190509392505050565b600654811115806131045750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613143576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161313a906144b6565b60405180910390fd5b5050565b6000602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156131b45750602560009054906101000a900460ff16155b80156131cc5750602360159054906101000a900460ff165b80156132195750602454600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6000806016549050602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036132855760145490506132e1565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036132e05760155490505b5b600061332a60646013546132f59190613d6b565b61331c8461330e6012548a611f1a90919063ffffffff16565b611f1a90919063ffffffff16565b611f9490919063ffffffff16565b9050600061335760125461334960115485611f1a90919063ffffffff16565b611f9490919063ffffffff16565b9050600061336e82846127a590919063ffffffff16565b90506133c281600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127ef90919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506134798260086000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127ef90919063ffffffff16565b60086000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161353b91906136d1565b60405180910390a360008211156135ef57613561826005546127a590919063ffffffff16565b600581905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516135e691906136d1565b60405180910390a35b61360283886127a590919063ffffffff16565b9450505050509392505050565b600080fd5b60008115159050919050565b61362981613614565b811461363457600080fd5b50565b60008135905061364681613620565b92915050565b6000819050919050565b61365f8161364c565b811461366a57600080fd5b50565b60008135905061367c81613656565b92915050565b600080604083850312156136995761369861360f565b5b60006136a785828601613637565b92505060206136b88582860161366d565b9150509250929050565b6136cb8161364c565b82525050565b60006020820190506136e660008301846136c2565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613717826136ec565b9050919050565b6137278161370c565b811461373257600080fd5b50565b6000813590506137448161371e565b92915050565b6000602082840312156137605761375f61360f565b5b600061376e84828501613735565b91505092915050565b61378081613614565b82525050565b600060208201905061379b6000830184613777565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156137db5780820151818401526020810190506137c0565b60008484015250505050565b6000601f19601f8301169050919050565b6000613803826137a1565b61380d81856137ac565b935061381d8185602086016137bd565b613826816137e7565b840191505092915050565b6000602082019050818103600083015261384b81846137f8565b905092915050565b6000806040838503121561386a5761386961360f565b5b600061387885828601613735565b92505060206138898582860161366d565b9150509250929050565b600080604083850312156138aa576138a961360f565b5b60006138b88582860161366d565b92505060206138c98582860161366d565b9150509250929050565b6000806000606084860312156138ec576138eb61360f565b5b60006138fa86828701613735565b935050602061390b86828701613735565b925050604061391c8682870161366d565b9150509250925092565b600060ff82169050919050565b61393c81613926565b82525050565b60006020820190506139576000830184613933565b92915050565b600080604083850312156139745761397361360f565b5b600061398285828601613735565b925050602061399385828601613637565b9150509250929050565b6000602082840312156139b3576139b261360f565b5b60006139c18482850161366d565b91505092915050565b600080600080600060a086880312156139e6576139e561360f565b5b60006139f488828901613735565b9550506020613a0588828901613735565b9450506040613a1688828901613735565b9350506060613a2788828901613735565b9250506080613a3888828901613735565b9150509295509295909350565b613a4e8161370c565b82525050565b6000602082019050613a696000830184613a45565b92915050565b60008060008060008060c08789031215613a8c57613a8b61360f565b5b6000613a9a89828a0161366d565b9650506020613aab89828a0161366d565b9550506040613abc89828a0161366d565b9450506060613acd89828a0161366d565b9350506080613ade89828a0161366d565b92505060a0613aef89828a0161366d565b9150509295509295509295565b600080600060608486031215613b1557613b1461360f565b5b6000613b238682870161366d565b9350506020613b348682870161366d565b9250506040613b458682870161366d565b9150509250925092565b60008060408385031215613b6657613b6561360f565b5b6000613b7485828601613735565b9250506020613b8585828601613735565b9150509250929050565b6000819050919050565b6000613bb4613baf613baa846136ec565b613b8f565b6136ec565b9050919050565b6000613bc682613b99565b9050919050565b6000613bd882613bbb565b9050919050565b613be881613bcd565b82525050565b6000602082019050613c036000830184613bdf565b92915050565b60008060008060808587031215613c2357613c2261360f565b5b6000613c3187828801613637565b9450506020613c428782880161366d565b9350506040613c538782880161366d565b9250506060613c648782880161366d565b91505092959194509250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613ca66020836137ac565b9150613cb182613c70565b602082019050919050565b60006020820190508181036000830152613cd581613c99565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613d458261364c565b9150613d508361364c565b925082613d6057613d5f613cdc565b5b828204905092915050565b6000613d768261364c565b9150613d818361364c565b9250828202613d8f8161364c565b91508282048414831517613da657613da5613d0b565b5b5092915050565b600081519050613dbc81613656565b92915050565b600060208284031215613dd857613dd761360f565b5b6000613de684828501613dad565b91505092915050565b6000604082019050613e046000830185613a45565b613e1160208301846136c2565b9392505050565b600081519050613e2781613620565b92915050565b600060208284031215613e4357613e4261360f565b5b6000613e5184828501613e18565b91505092915050565b7f466565732063616e206e6f74206265206d6f7265207468616e20333025000000600082015250565b6000613e90601d836137ac565b9150613e9b82613e5a565b602082019050919050565b60006020820190508181036000830152613ebf81613e83565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f226021836137ac565b9150613f2d82613ec6565b604082019050919050565b60006020820190508181036000830152613f5181613f15565b9050919050565b6000613f638261364c565b9150613f6e8361364c565b9250828203905081811115613f8657613f85613d0b565b5b92915050565b7f596f7520617265206120626f7400000000000000000000000000000000000000600082015250565b6000613fc2600d836137ac565b9150613fcd82613f8c565b602082019050919050565b60006020820190508181036000830152613ff181613fb5565b9050919050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b600061402e6014836137ac565b915061403982613ff8565b602082019050919050565b6000602082019050818103600083015261405d81614021565b9050919050565b600061406f8261364c565b915061407a8361364c565b925082820190508082111561409257614091613d0b565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b60006140f4603e836137ac565b91506140ff82614098565b604082019050919050565b60006020820190508181036000830152614123816140e7565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614160601b836137ac565b915061416b8261412a565b602082019050919050565b6000602082019050818103600083015261418f81614153565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b600061421961421461420f846141f4565b613b8f565b61364c565b9050919050565b614229816141fe565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6142648161370c565b82525050565b6000614276838361425b565b60208301905092915050565b6000602082019050919050565b600061429a8261422f565b6142a4818561423a565b93506142af8361424b565b8060005b838110156142e05781516142c7888261426a565b97506142d283614282565b9250506001810190506142b3565b5085935050505092915050565b600060a08201905061430260008301886136c2565b61430f6020830187614220565b8181036040830152614321818661428f565b90506143306060830185613a45565b61433d60808301846136c2565b9695505050505050565b600081905092915050565b50565b6000614362600083614347565b915061436d82614352565b600082019050919050565b600061438382614355565b9150819050919050565b600060c0820190506143a26000830189613a45565b6143af60208301886136c2565b6143bc6040830187614220565b6143c96060830186614220565b6143d66080830185613a45565b6143e360a08301846136c2565b979650505050505050565b6000806000606084860312156144075761440661360f565b5b600061441586828701613dad565b935050602061442686828701613dad565b925050604061443786828701613dad565b9150509250925092565b600060408201905061445660008301856136c2565b61446360208301846136c2565b9392505050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b60006144a06011836137ac565b91506144ab8261446a565b602082019050919050565b600060208201905081810360008301526144cf81614493565b905091905056fea2646970667358221220ca848c483d52380ba9d361d7c01cdc32512acf36426e7cb950fe2bbf6c14d8aa64736f6c63430008110033

Deployed Bytecode Sourcemap

4736:13880:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17715:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6600:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8762:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8116:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6519:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8538:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18390:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7846:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9056:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18065:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7940:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13503:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9438:219;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6563:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8286:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3045:148;;;;;;;;;;;;;:::i;:::-;;13637:308;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5227:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17252:455;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5162:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8202:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2831:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16665:579;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8026:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16537:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17879:174;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6487:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8892:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2451:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9665:187;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16372:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13953:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13274:77;;;;;;;;;;;;;:::i;:::-;;18215:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13064:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8397:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13359:136;;;;;;;;;;;;;:::i;:::-;;6417:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14168:303;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17715:156;2968:12;:10;:12::i;:::-;2958:22;;:6;;;;;;;;;;:22;;;2950:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17821:8:::1;17807:11;;:22;;;;;;;;;;;;;;;;;;17856:7;17840:13;:23;;;;17715:156:::0;;:::o;6600:57::-;;;;:::o;8762:122::-;8817:4;8841:35;8849:7;8858:17;8841:7;:35::i;:::-;8834:42;;8762:122;;;:::o;8116:80::-;8164:13;8188:5;;;;;;;;;;;;;;;;;8181:12;;8116:80;:::o;6519:31::-;;;;;;;;;;;;;:::o;8538:216::-;8613:4;8665:6;8630:11;:23;8642:10;8630:23;;;;;;;;;;;;;;;:32;8654:7;8630:32;;;;;;;;;;;;;;;:41;;;;8708:7;8687:37;;8696:10;8687:37;;;8717:6;8687:37;;;;;;:::i;:::-;;;;;;;;8742:4;8735:11;;8538:216;;;;:::o;18390:150::-;18470:4;18526:6;18494:29;18514:8;18494:19;:29::i;:::-;:38;18487:45;;18390:150;;;;:::o;7846:88::-;7901:7;7919:12;;7912:19;;7846:88;:::o;9056:370::-;9156:4;9211:17;9176:11;:19;9188:6;9176:19;;;;;;;;;;;;;;;:31;9196:10;9176:31;;;;;;;;;;;;;;;;:52;9173:186;;9278:69;9314:6;9278:69;;;;;;;;;;;;;;;;;:11;:19;9290:6;9278:19;;;;;;;;;;;;;;;:31;9298:10;9278:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;9244:11;:19;9256:6;9244:19;;;;;;;;;;;;;;;:31;9264:10;9244:31;;;;;;;;;;;;;;;:103;;;;9173:186;9378:40;9392:6;9400:9;9411:6;9378:13;:40::i;:::-;9371:47;;9056:370;;;;;:::o;18065:142::-;18118:7;18145:54;18183:15;18193:4;;;;;;;;;;;18183:9;:15::i;:::-;18145:33;18162:15;18172:4;;;;;;;;;;;18162:9;:15::i;:::-;18145:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;18138:61;;18065:142;:::o;7940:80::-;7992:5;5090:1;8001:16;;7940:80;:::o;13503:126::-;2968:12;:10;:12::i;:::-;2958:22;;:6;;;;;;;;;;:22;;;2950:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13616:5:::1;13590:14;:23;13605:7;13590:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;13503:126:::0;;:::o;9438:219::-;2968:12;:10;:12::i;:::-;2958:22;;:6;;;;;;;;;;:22;;;2950:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9557:4:::1;9542:12;;:19;;;;:::i;:::-;9523:15;;:38;;9515:47;;;::::0;::::1;;9627:4;9608:14;9593:12;;:29;;;;:::i;:::-;9592:39;;;;:::i;:::-;9574:15;:57;;;;9438:219:::0;:::o;6563:30::-;;;;;;;;;;;;;:::o;8286:105::-;8352:7;8370:9;:18;8380:7;8370:18;;;;;;;;;;;;;;;;8363:25;;8286:105;;;:::o;3045:148::-;2968:12;:10;:12::i;:::-;2958:22;;:6;;;;;;;;;;:22;;;2950:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3152:1:::1;3115:40;;3136:6;::::0;::::1;;;;;;;;3115:40;;;;;;;;;;;;3183:1;3166:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3045:148::o:0;13637:308::-;13716:4;13741:15;:27;13757:10;13741:27;;;;;;;;;;;;;;;;;;;;;;;;;13733:36;;;;;;13790:1;13780:6;:11;13777:95;;13822:12;13816:29;;;13854:4;13816:44;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13807:53;;13777:95;13895:12;13889:28;;;13918:10;13930:6;13889:48;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13882:55;;13637:308;;;;:::o;5227:61::-;;;;:::o;17252:455::-;2968:12;:10;:12::i;:::-;2958:22;;:6;;;;;;;;;;:22;;;2950:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17481:22:::1;17457:21;;:46;;;;;;;;;;;;;;;;;;17537:21;17514:20;;:44;;;;;;;;;;;;;;;;;;17590:19;17569:18;;:40;;;;;;;;;;;;;;;;;;17638:16;17620:15;;:34;;;;;;;;;;;;;;;;;;17683:16;17665:15;;:34;;;;;;;;;;;;;;;;;;17252:455:::0;;;;;:::o;5162:58::-;;;;:::o;8202:78::-;8254:7;8271;:5;:7::i;:::-;8264:14;;8202:78;:::o;2831:79::-;2869:7;2896:6;;;;;;;;;;;2889:13;;2831:79;:::o;16665:579::-;2968:12;:10;:12::i;:::-;2958:22;;:6;;;;;;;;;;:22;;;2950:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16866:13:::1;16851:12;:28;;;;16900:8;16890:7;:18;;;;16934:13;16919:12;:28;;;;16971:11;16958:10;:24;;;;17003:8;16993:7;:18;;;;17033:77;17101:8;17033:63;17084:11;17033:46;17065:13;17033:27;17051:8;17033:13;:17;;:27;;;;:::i;:::-;:31;;:46;;;;:::i;:::-;:50;;:63;;;;:::i;:::-;:67;;:77;;;;:::i;:::-;17022:8;:88;;;;17138:15;17121:14;:32;;;;17200:1;17183:14;;:18;;;;:::i;:::-;17172:8;;:29;17164:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;16665:579:::0;;;;;;:::o;8026:84::-;8076:13;8100:7;;;;;;;;;;;;;;;;;8093:14;;8026:84;:::o;16537:120::-;2968:12;:10;:12::i;:::-;2958:22;;:6;;;;;;;;;;:22;;;2950:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16643:6:::1;16617:15;:23;16633:6;16617:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;16537:120:::0;;:::o;17879:174::-;2968:12;:10;:12::i;:::-;2958:22;;:6;;;;;;;;;;:22;;;2950:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17986:7:::1;17968:15;:25;;;;18033:12;18004:26;:41;;;;17879:174:::0;;:::o;6487:19::-;;;;;;;;;;;;;:::o;8892:156::-;8972:4;8996:44;9010:10;9022:9;9033:6;8996:13;:44::i;:::-;8989:51;;8892:156;;;;:::o;2451:21::-;;;;;;;;;;;;:::o;9665:187::-;2968:12;:10;:12::i;:::-;2958:22;;:6;;;;;;;;;;:22;;;2950:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9775:4:::1;9760:12;;:19;;;;:::i;:::-;9744:12;;:35;;9736:44;;;::::0;::::1;;9840:4;9823:12;9808;;:27;;;;:::i;:::-;9807:37;;;;:::i;:::-;9792:12;:52;;;;9665:187:::0;:::o;16372:157::-;2968:12;:10;:12::i;:::-;2958:22;;:6;;;;;;;;;;:22;;;2950:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16472:6:::1;16450:11;:19;16462:6;16450:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;16515:6;16489:15;:23;16505:6;16489:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;16372:157:::0;;:::o;13953:207::-;2968:12;:10;:12::i;:::-;2958:22;;:6;;;;;;;;;;:22;;;2950:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14062:5:::1;14045:14;:22;;;;14094:4;14078:13;:20;;;;14130:6;14109:18;:27;;;;13953:207:::0;;;:::o;13274:77::-;2968:12;:10;:12::i;:::-;2958:22;;:6;;;;;;;;;;:22;;;2950:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13327:10:::1;:8;:10::i;:::-;13274:77::o:0;18215:167::-;18283:7;18310:64;18351:22;:20;:22::i;:::-;18310:36;18323:22;18343:1;18323:15;18333:4;;;;;;;;;;;18323:9;:15::i;:::-;:19;;:22;;;;:::i;:::-;18310:8;:12;;:36;;;;:::i;:::-;:40;;:64;;;;:::i;:::-;18303:71;;18215:167;;;:::o;13064:201::-;13133:17;13153:21;13133:41;;13193:18;;;;;;;;;;;13185:36;;:72;13253:3;13234:16;13222:9;:28;;;;:::i;:::-;:34;;;;:::i;:::-;13185:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13122:143;13064:201;:::o;8397:133::-;8481:7;8499:11;:19;8511:6;8499:19;;;;;;;;;;;;;;;:28;8519:7;8499:28;;;;;;;;;;;;;;;;8492:35;;8397:133;;;;:::o;13359:136::-;2968:12;:10;:12::i;:::-;2958:22;;:6;;;;;;;;;;:22;;;2950:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13435:12:::1;;13417:15;:30;;;;13473:12;;13458;:27;;;;13359:136::o:0;6417:24::-;;;;;;;;;;;;;:::o;14168:303::-;2968:12;:10;:12::i;:::-;2958:22;;:6;;;;;;;;;;:22;;;2950:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14323:5:::1;14309:11;;:19;;;;;;;;;;;;;;;;;;14355:14;14339:13;:30;;;;14397:15;14380:14;:32;;;;14444:19;14423:18;:40;;;;14168:303:::0;;;;:::o;630:250::-;688:7;717:1;712;:6;708:47;;742:1;735:8;;;;708:47;767:9;783:1;779;:5;;;;:::i;:::-;767:17;;812:1;807;803;:5;;;;:::i;:::-;:10;795:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;871:1;864:8;;;630:250;;;;;:::o;886:132::-;944:7;971:39;975:1;978;971:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;964:46;;886:132;;;;:::o;2172:115::-;2225:15;2268:10;2253:26;;2172:115;:::o;432:192::-;518:7;551:1;546;:6;;554:12;538:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;578:9;594:1;590;:5;;;;:::i;:::-;578:17;;615:1;608:8;;;432:192;;;;;:::o;9869:1329::-;9961:4;9987:14;:22;10002:6;9987:22;;;;;;;;;;;;;;;;;;;;;;;;;9986:23;:53;;;;;10014:14;:25;10029:9;10014:25;;;;;;;;;;;;;;;;;;;;;;;;;10013:26;9986:53;9978:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;10073:6;;;;;;;;;;;10070:63;;;10089:41;10104:6;10112:9;10123:6;10089:14;:41::i;:::-;10082:48;;;;10070:63;10149:14;:22;10164:6;10149:22;;;;;;;;;;;;;;;;;;;;;;;;;10148:23;:53;;;;;10176:14;:25;10191:9;10176:25;;;;;;;;;;;;;;;;;;;;;;;;;10175:26;10148:53;10145:140;;;10225:11;;;;;;;;;;;10217:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;10145:140;10319:14;:22;10334:6;10319:22;;;;;;;;;;;;;;;;;;;;;;;;;10318:23;:53;;;;;10366:4;10345:26;;:9;:26;;;;10318:53;:84;;;;;10397:4;;;;;;;;;;;10376:26;;:9;:26;;;;10318:84;:105;;;;;10419:4;;;;;;;;;;;10406:17;;:9;:17;;;;10318:105;:137;;;;;10440:15;;;;;;;;;;;10427:28;;:9;:28;;;;10318:137;:174;;;;;10472:20;;;;;;;;;;;10459:33;;:9;:33;;;;10318:174;:205;;;;;10497:15;:26;10513:9;10497:26;;;;;;;;;;;;;;;;;;;;;;;;;10496:27;10318:205;10314:397;;;10539:18;10560:20;10570:9;10560;:20::i;:::-;10539:41;;10628:15;;10617:6;10604:10;:19;;;;:::i;:::-;10603:40;;10595:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;10524:187;10314:397;10732:28;10745:6;10753;10732:12;:28::i;:::-;10777:16;:14;:16::i;:::-;10774:35;;;10796:10;:8;:10::i;:::-;10774:35;10849:53;10871:6;10849:53;;;;;;;;;;;;;;;;;:9;:17;10859:6;10849:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;10829:9;:17;10839:6;10829:17;;;;;;;;;;;;;;;:73;;;;10915:22;10941:11;:19;10953:6;10941:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;10964:11;:22;10976:9;10964:22;;;;;;;;;;;;;;;;;;;;;;;;;10941:45;10940:93;;10999:34;11007:6;11015;11023:9;10999:7;:34::i;:::-;10940:93;;;10990:6;10940:93;10915:118;;11067:40;11092:14;11067:9;:20;11077:9;11067:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;11044:9;:20;11054:9;11044:20;;;;;;;;;;;;;;;:63;;;;11142:9;11125:43;;11134:6;11125:43;;;11153:14;11125:43;;;;;;:::i;:::-;;;;;;;;11186:4;11179:11;;;9869:1329;;;;;;:::o;290:136::-;348:7;375:43;379:1;382;375:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;368:50;;290:136;;;;:::o;103:181::-;161:7;181:9;197:1;193;:5;;;;:::i;:::-;181:17;;222:1;217;:6;;209:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;275:1;268:8;;;103:181;;;;:::o;14487:1877::-;6714:4;6705:6;;:13;;;;;;;;;;;;;;;;;;14536:27:::1;14566:60;14582:15;;14599:26;;14566:15;:60::i;:::-;:79;;14633:12;;14566:79;;;14629:1;14566:79;14536:109;;14656:23;14682:59;14739:1;14682:52;14725:8;;14682:38;14700:19;14682:13;;:17;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;14656:85;;14752:20;14775:34;14793:15;14775:13;;:17;;:34;;;;:::i;:::-;14752:57;;14822:21;14860:1;14846:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14822:40;;14891:4;14873;14878:1;14873:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;14917:4;;;;;;;;;;;14907;14912:1;14907:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;14934:21;14958;14934:45;;14992:6;;;;;;;;;;;:57;;;15064:12;15091:1;15107:4;15134;15154:15;14992:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15193:17;15213:40;15239:13;15213:21;:25;;:40;;;;:::i;:::-;15193:60;;15266:19;15288:40;15301:26;15325:1;15301:19;:23;;:26;;;;:::i;:::-;15288:8;;:12;;:40;;;;:::i;:::-;15266:62;;15349:26;15378:58;15434:1;15378:51;15417:11;15378:34;15392:19;15378:9;:13;;:34;;;;:::i;:::-;:38;;:51;;;;:::i;:::-;:55;;:58;;;;:::i;:::-;15349:87;;15447:26;15476:44;15508:11;15476:27;15490:12;;15476:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;15447:73;;15531:21;15555:39;15582:11;15555:22;15569:7;;15555:9;:13;;:22;;;;:::i;:::-;:26;;:39;;;;:::i;:::-;15531:63;;15605:24;15632:42;15662:11;15632:25;15646:10;;15632:9;:13;;:25;;;;:::i;:::-;:29;;:42;;;;:::i;:::-;15605:69;;15688:15;15716:20;;;;;;;;;;;15708:34;;15750:18;15708:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15687:86;;;15808:18;;;;;;;;;;;15800:32;;15840:16;15800:61;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15784:77;;;;;15896:15;;;;;;;;;;;15888:29;;15925:13;15888:55;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15872:71;;;;;15977:5;15964:18;;16016:1;15998:15;:19;15995:362;;;16033:6;;;;;;;;;;;:22;;;16063:18;16109:4;16133:15;16167:1;16187::::0;16207:21:::1;;;;;;;;;;;16247:15;16033:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16297:48;16309:18;16329:15;16297:48;;;;;;;:::i;:::-;;;;;;;;15995:362;14525:1839;;;;;;;;;;;;6732:5:::0;6723:6;;:14;;;;;;;;;;;;;;;;;;14487:1877::o;1024:189::-;1110:7;1142:1;1138;:5;1145:12;1130:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1169:9;1185:1;1181;:5;;;;:::i;:::-;1169:17;;1204:1;1197:8;;;1024:189;;;;;:::o;11210:330::-;11303:4;11340:53;11362:6;11340:53;;;;;;;;;;;;;;;;;:9;:17;11350:6;11340:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;11320:9;:17;11330:6;11320:17;;;;;;;;;;;;;;;:73;;;;11427:32;11452:6;11427:9;:20;11437:9;11427:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;11404:9;:20;11414:9;11404:20;;;;;;;;;;;;;;;:55;;;;11492:9;11475:35;;11484:6;11475:35;;;11503:6;11475:35;;;;;;:::i;:::-;;;;;;;;11528:4;11521:11;;11210:330;;;;;:::o;11548:166::-;11645:12;;11635:6;:22;;:49;;;;11661:15;:23;11677:6;11661:23;;;;;;;;;;;;;;;;;;;;;;;;;11635:49;11627:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;11548:166;;:::o;12859:197::-;12908:4;12946;;;;;;;;;;;12932:18;;:10;:18;;;;:38;;;;;12964:6;;;;;;;;;;;12963:7;12932:38;:62;;;;;12983:11;;;;;;;;;;;12932:62;:116;;;;;13035:13;;13007:9;:24;13025:4;13007:24;;;;;;;;;;;;;;;;:41;;12932:116;12925:123;;12859:197;:::o;11844:1007::-;11930:7;11960:18;11981;;11960:39;;12028:4;;;;;;;;;;;12015:17;;:9;:17;;;12012:154;;12062:14;;12049:27;;12012:154;;;12107:4;;;;;;;;;;;12097:14;;:6;:14;;;12094:72;;12141:13;;12128:26;;12094:72;12012:154;12178:17;12198:62;12256:3;12239:14;;:20;;;;:::i;:::-;12198:36;12223:10;12198:20;12209:8;;12198:6;:10;;:20;;;;:::i;:::-;:24;;:36;;;;:::i;:::-;:40;;:62;;;;:::i;:::-;12178:82;;12271:18;12292:36;12319:8;;12292:22;12306:7;;12292:9;:13;;:22;;;;:::i;:::-;:26;;:36;;;;:::i;:::-;12271:57;;12339:22;12364:25;12378:10;12364:9;:13;;:25;;;;:::i;:::-;12339:50;;12429:44;12458:14;12429:9;:24;12447:4;12429:24;;;;;;;;;;;;;;;;:28;;:44;;;;:::i;:::-;12402:9;:24;12420:4;12402:24;;;;;;;;;;;;;;;:71;;;;12513:42;12544:10;12513:9;:26;12523:15;;;;;;;;;;;12513:26;;;;;;;;;;;;;;;;:30;;:42;;;;:::i;:::-;12484:9;:26;12494:15;;;;;;;;;;;12484:26;;;;;;;;;;;;;;;:71;;;;12596:4;12571:47;;12580:6;12571:47;;;12603:14;12571:47;;;;;;:::i;:::-;;;;;;;;12665:1;12652:10;:14;12649:154;;;12697:28;12714:10;12697:12;;:16;;:28;;;;:::i;:::-;12682:12;:43;;;;12762:4;;;;;;;;;;;12745:34;;12754:6;12745:34;;;12768:10;12745:34;;;;;;:::i;:::-;;;;;;;;12649:154;12822:21;12833:9;12822:6;:10;;:21;;;;:::i;:::-;12815:28;;;;;;11844:1007;;;;;:::o;88:117:1:-;197:1;194;187:12;334:90;368:7;411:5;404:13;397:21;386:32;;334:90;;;:::o;430:116::-;500:21;515:5;500:21;:::i;:::-;493:5;490:32;480:60;;536:1;533;526:12;480:60;430:116;:::o;552:133::-;595:5;633:6;620:20;611:29;;649:30;673:5;649:30;:::i;:::-;552:133;;;;:::o;691:77::-;728:7;757:5;746:16;;691:77;;;:::o;774:122::-;847:24;865:5;847:24;:::i;:::-;840:5;837:35;827:63;;886:1;883;876:12;827:63;774:122;:::o;902:139::-;948:5;986:6;973:20;964:29;;1002:33;1029:5;1002:33;:::i;:::-;902:139;;;;:::o;1047:468::-;1112:6;1120;1169:2;1157:9;1148:7;1144:23;1140:32;1137:119;;;1175:79;;:::i;:::-;1137:119;1295:1;1320:50;1362:7;1353:6;1342:9;1338:22;1320:50;:::i;:::-;1310:60;;1266:114;1419:2;1445:53;1490:7;1481:6;1470:9;1466:22;1445:53;:::i;:::-;1435:63;;1390:118;1047:468;;;;;:::o;1521:118::-;1608:24;1626:5;1608:24;:::i;:::-;1603:3;1596:37;1521:118;;:::o;1645:222::-;1738:4;1776:2;1765:9;1761:18;1753:26;;1789:71;1857:1;1846:9;1842:17;1833:6;1789:71;:::i;:::-;1645:222;;;;:::o;1873:126::-;1910:7;1950:42;1943:5;1939:54;1928:65;;1873:126;;;:::o;2005:96::-;2042:7;2071:24;2089:5;2071:24;:::i;:::-;2060:35;;2005:96;;;:::o;2107:122::-;2180:24;2198:5;2180:24;:::i;:::-;2173:5;2170:35;2160:63;;2219:1;2216;2209:12;2160:63;2107:122;:::o;2235:139::-;2281:5;2319:6;2306:20;2297:29;;2335:33;2362:5;2335:33;:::i;:::-;2235:139;;;;:::o;2380:329::-;2439:6;2488:2;2476:9;2467:7;2463:23;2459:32;2456:119;;;2494:79;;:::i;:::-;2456:119;2614:1;2639:53;2684:7;2675:6;2664:9;2660:22;2639:53;:::i;:::-;2629:63;;2585:117;2380:329;;;;:::o;2715:109::-;2796:21;2811:5;2796:21;:::i;:::-;2791:3;2784:34;2715:109;;:::o;2830:210::-;2917:4;2955:2;2944:9;2940:18;2932:26;;2968:65;3030:1;3019:9;3015:17;3006:6;2968:65;:::i;:::-;2830:210;;;;:::o;3046:99::-;3098:6;3132:5;3126:12;3116:22;;3046:99;;;:::o;3151:169::-;3235:11;3269:6;3264:3;3257:19;3309:4;3304:3;3300:14;3285:29;;3151:169;;;;:::o;3326:246::-;3407:1;3417:113;3431:6;3428:1;3425:13;3417:113;;;3516:1;3511:3;3507:11;3501:18;3497:1;3492:3;3488:11;3481:39;3453:2;3450:1;3446:10;3441:15;;3417:113;;;3564:1;3555:6;3550:3;3546:16;3539:27;3388:184;3326:246;;;:::o;3578:102::-;3619:6;3670:2;3666:7;3661:2;3654:5;3650:14;3646:28;3636:38;;3578:102;;;:::o;3686:377::-;3774:3;3802:39;3835:5;3802:39;:::i;:::-;3857:71;3921:6;3916:3;3857:71;:::i;:::-;3850:78;;3937:65;3995:6;3990:3;3983:4;3976:5;3972:16;3937:65;:::i;:::-;4027:29;4049:6;4027:29;:::i;:::-;4022:3;4018:39;4011:46;;3778:285;3686:377;;;;:::o;4069:313::-;4182:4;4220:2;4209:9;4205:18;4197:26;;4269:9;4263:4;4259:20;4255:1;4244:9;4240:17;4233:47;4297:78;4370:4;4361:6;4297:78;:::i;:::-;4289:86;;4069:313;;;;:::o;4388:474::-;4456:6;4464;4513:2;4501:9;4492:7;4488:23;4484:32;4481:119;;;4519:79;;:::i;:::-;4481:119;4639:1;4664:53;4709:7;4700:6;4689:9;4685:22;4664:53;:::i;:::-;4654:63;;4610:117;4766:2;4792:53;4837:7;4828:6;4817:9;4813:22;4792:53;:::i;:::-;4782:63;;4737:118;4388:474;;;;;:::o;4868:::-;4936:6;4944;4993:2;4981:9;4972:7;4968:23;4964:32;4961:119;;;4999:79;;:::i;:::-;4961:119;5119:1;5144:53;5189:7;5180:6;5169:9;5165:22;5144:53;:::i;:::-;5134:63;;5090:117;5246:2;5272:53;5317:7;5308:6;5297:9;5293:22;5272:53;:::i;:::-;5262:63;;5217:118;4868:474;;;;;:::o;5348:619::-;5425:6;5433;5441;5490:2;5478:9;5469:7;5465:23;5461:32;5458:119;;;5496:79;;:::i;:::-;5458:119;5616:1;5641:53;5686:7;5677:6;5666:9;5662:22;5641:53;:::i;:::-;5631:63;;5587:117;5743:2;5769:53;5814:7;5805:6;5794:9;5790:22;5769:53;:::i;:::-;5759:63;;5714:118;5871:2;5897:53;5942:7;5933:6;5922:9;5918:22;5897:53;:::i;:::-;5887:63;;5842:118;5348:619;;;;;:::o;5973:86::-;6008:7;6048:4;6041:5;6037:16;6026:27;;5973:86;;;:::o;6065:112::-;6148:22;6164:5;6148:22;:::i;:::-;6143:3;6136:35;6065:112;;:::o;6183:214::-;6272:4;6310:2;6299:9;6295:18;6287:26;;6323:67;6387:1;6376:9;6372:17;6363:6;6323:67;:::i;:::-;6183:214;;;;:::o;6403:468::-;6468:6;6476;6525:2;6513:9;6504:7;6500:23;6496:32;6493:119;;;6531:79;;:::i;:::-;6493:119;6651:1;6676:53;6721:7;6712:6;6701:9;6697:22;6676:53;:::i;:::-;6666:63;;6622:117;6778:2;6804:50;6846:7;6837:6;6826:9;6822:22;6804:50;:::i;:::-;6794:60;;6749:115;6403:468;;;;;:::o;6877:329::-;6936:6;6985:2;6973:9;6964:7;6960:23;6956:32;6953:119;;;6991:79;;:::i;:::-;6953:119;7111:1;7136:53;7181:7;7172:6;7161:9;7157:22;7136:53;:::i;:::-;7126:63;;7082:117;6877:329;;;;:::o;7212:911::-;7307:6;7315;7323;7331;7339;7388:3;7376:9;7367:7;7363:23;7359:33;7356:120;;;7395:79;;:::i;:::-;7356:120;7515:1;7540:53;7585:7;7576:6;7565:9;7561:22;7540:53;:::i;:::-;7530:63;;7486:117;7642:2;7668:53;7713:7;7704:6;7693:9;7689:22;7668:53;:::i;:::-;7658:63;;7613:118;7770:2;7796:53;7841:7;7832:6;7821:9;7817:22;7796:53;:::i;:::-;7786:63;;7741:118;7898:2;7924:53;7969:7;7960:6;7949:9;7945:22;7924:53;:::i;:::-;7914:63;;7869:118;8026:3;8053:53;8098:7;8089:6;8078:9;8074:22;8053:53;:::i;:::-;8043:63;;7997:119;7212:911;;;;;;;;:::o;8129:118::-;8216:24;8234:5;8216:24;:::i;:::-;8211:3;8204:37;8129:118;;:::o;8253:222::-;8346:4;8384:2;8373:9;8369:18;8361:26;;8397:71;8465:1;8454:9;8450:17;8441:6;8397:71;:::i;:::-;8253:222;;;;:::o;8481:1057::-;8585:6;8593;8601;8609;8617;8625;8674:3;8662:9;8653:7;8649:23;8645:33;8642:120;;;8681:79;;:::i;:::-;8642:120;8801:1;8826:53;8871:7;8862:6;8851:9;8847:22;8826:53;:::i;:::-;8816:63;;8772:117;8928:2;8954:53;8999:7;8990:6;8979:9;8975:22;8954:53;:::i;:::-;8944:63;;8899:118;9056:2;9082:53;9127:7;9118:6;9107:9;9103:22;9082:53;:::i;:::-;9072:63;;9027:118;9184:2;9210:53;9255:7;9246:6;9235:9;9231:22;9210:53;:::i;:::-;9200:63;;9155:118;9312:3;9339:53;9384:7;9375:6;9364:9;9360:22;9339:53;:::i;:::-;9329:63;;9283:119;9441:3;9468:53;9513:7;9504:6;9493:9;9489:22;9468:53;:::i;:::-;9458:63;;9412:119;8481:1057;;;;;;;;:::o;9544:619::-;9621:6;9629;9637;9686:2;9674:9;9665:7;9661:23;9657:32;9654:119;;;9692:79;;:::i;:::-;9654:119;9812:1;9837:53;9882:7;9873:6;9862:9;9858:22;9837:53;:::i;:::-;9827:63;;9783:117;9939:2;9965:53;10010:7;10001:6;9990:9;9986:22;9965:53;:::i;:::-;9955:63;;9910:118;10067:2;10093:53;10138:7;10129:6;10118:9;10114:22;10093:53;:::i;:::-;10083:63;;10038:118;9544:619;;;;;:::o;10169:474::-;10237:6;10245;10294:2;10282:9;10273:7;10269:23;10265:32;10262:119;;;10300:79;;:::i;:::-;10262:119;10420:1;10445:53;10490:7;10481:6;10470:9;10466:22;10445:53;:::i;:::-;10435:63;;10391:117;10547:2;10573:53;10618:7;10609:6;10598:9;10594:22;10573:53;:::i;:::-;10563:63;;10518:118;10169:474;;;;;:::o;10649:60::-;10677:3;10698:5;10691:12;;10649:60;;;:::o;10715:142::-;10765:9;10798:53;10816:34;10825:24;10843:5;10825:24;:::i;:::-;10816:34;:::i;:::-;10798:53;:::i;:::-;10785:66;;10715:142;;;:::o;10863:126::-;10913:9;10946:37;10977:5;10946:37;:::i;:::-;10933:50;;10863:126;;;:::o;10995:144::-;11063:9;11096:37;11127:5;11096:37;:::i;:::-;11083:50;;10995:144;;;:::o;11145:167::-;11250:55;11299:5;11250:55;:::i;:::-;11245:3;11238:68;11145:167;;:::o;11318:258::-;11429:4;11467:2;11456:9;11452:18;11444:26;;11480:89;11566:1;11555:9;11551:17;11542:6;11480:89;:::i;:::-;11318:258;;;;:::o;11582:759::-;11665:6;11673;11681;11689;11738:3;11726:9;11717:7;11713:23;11709:33;11706:120;;;11745:79;;:::i;:::-;11706:120;11865:1;11890:50;11932:7;11923:6;11912:9;11908:22;11890:50;:::i;:::-;11880:60;;11836:114;11989:2;12015:53;12060:7;12051:6;12040:9;12036:22;12015:53;:::i;:::-;12005:63;;11960:118;12117:2;12143:53;12188:7;12179:6;12168:9;12164:22;12143:53;:::i;:::-;12133:63;;12088:118;12245:2;12271:53;12316:7;12307:6;12296:9;12292:22;12271:53;:::i;:::-;12261:63;;12216:118;11582:759;;;;;;;:::o;12347:182::-;12487:34;12483:1;12475:6;12471:14;12464:58;12347:182;:::o;12535:366::-;12677:3;12698:67;12762:2;12757:3;12698:67;:::i;:::-;12691:74;;12774:93;12863:3;12774:93;:::i;:::-;12892:2;12887:3;12883:12;12876:19;;12535:366;;;:::o;12907:419::-;13073:4;13111:2;13100:9;13096:18;13088:26;;13160:9;13154:4;13150:20;13146:1;13135:9;13131:17;13124:47;13188:131;13314:4;13188:131;:::i;:::-;13180:139;;12907:419;;;:::o;13332:180::-;13380:77;13377:1;13370:88;13477:4;13474:1;13467:15;13501:4;13498:1;13491:15;13518:180;13566:77;13563:1;13556:88;13663:4;13660:1;13653:15;13687:4;13684:1;13677:15;13704:185;13744:1;13761:20;13779:1;13761:20;:::i;:::-;13756:25;;13795:20;13813:1;13795:20;:::i;:::-;13790:25;;13834:1;13824:35;;13839:18;;:::i;:::-;13824:35;13881:1;13878;13874:9;13869:14;;13704:185;;;;:::o;13895:410::-;13935:7;13958:20;13976:1;13958:20;:::i;:::-;13953:25;;13992:20;14010:1;13992:20;:::i;:::-;13987:25;;14047:1;14044;14040:9;14069:30;14087:11;14069:30;:::i;:::-;14058:41;;14248:1;14239:7;14235:15;14232:1;14229:22;14209:1;14202:9;14182:83;14159:139;;14278:18;;:::i;:::-;14159:139;13943:362;13895:410;;;;:::o;14311:143::-;14368:5;14399:6;14393:13;14384:22;;14415:33;14442:5;14415:33;:::i;:::-;14311:143;;;;:::o;14460:351::-;14530:6;14579:2;14567:9;14558:7;14554:23;14550:32;14547:119;;;14585:79;;:::i;:::-;14547:119;14705:1;14730:64;14786:7;14777:6;14766:9;14762:22;14730:64;:::i;:::-;14720:74;;14676:128;14460:351;;;;:::o;14817:332::-;14938:4;14976:2;14965:9;14961:18;14953:26;;14989:71;15057:1;15046:9;15042:17;15033:6;14989:71;:::i;:::-;15070:72;15138:2;15127:9;15123:18;15114:6;15070:72;:::i;:::-;14817:332;;;;;:::o;15155:137::-;15209:5;15240:6;15234:13;15225:22;;15256:30;15280:5;15256:30;:::i;:::-;15155:137;;;;:::o;15298:345::-;15365:6;15414:2;15402:9;15393:7;15389:23;15385:32;15382:119;;;15420:79;;:::i;:::-;15382:119;15540:1;15565:61;15618:7;15609:6;15598:9;15594:22;15565:61;:::i;:::-;15555:71;;15511:125;15298:345;;;;:::o;15649:179::-;15789:31;15785:1;15777:6;15773:14;15766:55;15649:179;:::o;15834:366::-;15976:3;15997:67;16061:2;16056:3;15997:67;:::i;:::-;15990:74;;16073:93;16162:3;16073:93;:::i;:::-;16191:2;16186:3;16182:12;16175:19;;15834:366;;;:::o;16206:419::-;16372:4;16410:2;16399:9;16395:18;16387:26;;16459:9;16453:4;16449:20;16445:1;16434:9;16430:17;16423:47;16487:131;16613:4;16487:131;:::i;:::-;16479:139;;16206:419;;;:::o;16631:220::-;16771:34;16767:1;16759:6;16755:14;16748:58;16840:3;16835:2;16827:6;16823:15;16816:28;16631:220;:::o;16857:366::-;16999:3;17020:67;17084:2;17079:3;17020:67;:::i;:::-;17013:74;;17096:93;17185:3;17096:93;:::i;:::-;17214:2;17209:3;17205:12;17198:19;;16857:366;;;:::o;17229:419::-;17395:4;17433:2;17422:9;17418:18;17410:26;;17482:9;17476:4;17472:20;17468:1;17457:9;17453:17;17446:47;17510:131;17636:4;17510:131;:::i;:::-;17502:139;;17229:419;;;:::o;17654:194::-;17694:4;17714:20;17732:1;17714:20;:::i;:::-;17709:25;;17748:20;17766:1;17748:20;:::i;:::-;17743:25;;17792:1;17789;17785:9;17777:17;;17816:1;17810:4;17807:11;17804:37;;;17821:18;;:::i;:::-;17804:37;17654:194;;;;:::o;17854:163::-;17994:15;17990:1;17982:6;17978:14;17971:39;17854:163;:::o;18023:366::-;18165:3;18186:67;18250:2;18245:3;18186:67;:::i;:::-;18179:74;;18262:93;18351:3;18262:93;:::i;:::-;18380:2;18375:3;18371:12;18364:19;;18023:366;;;:::o;18395:419::-;18561:4;18599:2;18588:9;18584:18;18576:26;;18648:9;18642:4;18638:20;18634:1;18623:9;18619:17;18612:47;18676:131;18802:4;18676:131;:::i;:::-;18668:139;;18395:419;;;:::o;18820:170::-;18960:22;18956:1;18948:6;18944:14;18937:46;18820:170;:::o;18996:366::-;19138:3;19159:67;19223:2;19218:3;19159:67;:::i;:::-;19152:74;;19235:93;19324:3;19235:93;:::i;:::-;19353:2;19348:3;19344:12;19337:19;;18996:366;;;:::o;19368:419::-;19534:4;19572:2;19561:9;19557:18;19549:26;;19621:9;19615:4;19611:20;19607:1;19596:9;19592:17;19585:47;19649:131;19775:4;19649:131;:::i;:::-;19641:139;;19368:419;;;:::o;19793:191::-;19833:3;19852:20;19870:1;19852:20;:::i;:::-;19847:25;;19886:20;19904:1;19886:20;:::i;:::-;19881:25;;19929:1;19926;19922:9;19915:16;;19950:3;19947:1;19944:10;19941:36;;;19957:18;;:::i;:::-;19941:36;19793:191;;;;:::o;19990:249::-;20130:34;20126:1;20118:6;20114:14;20107:58;20199:32;20194:2;20186:6;20182:15;20175:57;19990:249;:::o;20245:366::-;20387:3;20408:67;20472:2;20467:3;20408:67;:::i;:::-;20401:74;;20484:93;20573:3;20484:93;:::i;:::-;20602:2;20597:3;20593:12;20586:19;;20245:366;;;:::o;20617:419::-;20783:4;20821:2;20810:9;20806:18;20798:26;;20870:9;20864:4;20860:20;20856:1;20845:9;20841:17;20834:47;20898:131;21024:4;20898:131;:::i;:::-;20890:139;;20617:419;;;:::o;21042:177::-;21182:29;21178:1;21170:6;21166:14;21159:53;21042:177;:::o;21225:366::-;21367:3;21388:67;21452:2;21447:3;21388:67;:::i;:::-;21381:74;;21464:93;21553:3;21464:93;:::i;:::-;21582:2;21577:3;21573:12;21566:19;;21225:366;;;:::o;21597:419::-;21763:4;21801:2;21790:9;21786:18;21778:26;;21850:9;21844:4;21840:20;21836:1;21825:9;21821:17;21814:47;21878:131;22004:4;21878:131;:::i;:::-;21870:139;;21597:419;;;:::o;22022:180::-;22070:77;22067:1;22060:88;22167:4;22164:1;22157:15;22191:4;22188:1;22181:15;22208:180;22256:77;22253:1;22246:88;22353:4;22350:1;22343:15;22377:4;22374:1;22367:15;22394:85;22439:7;22468:5;22457:16;;22394:85;;;:::o;22485:158::-;22543:9;22576:61;22594:42;22603:32;22629:5;22603:32;:::i;:::-;22594:42;:::i;:::-;22576:61;:::i;:::-;22563:74;;22485:158;;;:::o;22649:147::-;22744:45;22783:5;22744:45;:::i;:::-;22739:3;22732:58;22649:147;;:::o;22802:114::-;22869:6;22903:5;22897:12;22887:22;;22802:114;;;:::o;22922:184::-;23021:11;23055:6;23050:3;23043:19;23095:4;23090:3;23086:14;23071:29;;22922:184;;;;:::o;23112:132::-;23179:4;23202:3;23194:11;;23232:4;23227:3;23223:14;23215:22;;23112:132;;;:::o;23250:108::-;23327:24;23345:5;23327:24;:::i;:::-;23322:3;23315:37;23250:108;;:::o;23364:179::-;23433:10;23454:46;23496:3;23488:6;23454:46;:::i;:::-;23532:4;23527:3;23523:14;23509:28;;23364:179;;;;:::o;23549:113::-;23619:4;23651;23646:3;23642:14;23634:22;;23549:113;;;:::o;23698:732::-;23817:3;23846:54;23894:5;23846:54;:::i;:::-;23916:86;23995:6;23990:3;23916:86;:::i;:::-;23909:93;;24026:56;24076:5;24026:56;:::i;:::-;24105:7;24136:1;24121:284;24146:6;24143:1;24140:13;24121:284;;;24222:6;24216:13;24249:63;24308:3;24293:13;24249:63;:::i;:::-;24242:70;;24335:60;24388:6;24335:60;:::i;:::-;24325:70;;24181:224;24168:1;24165;24161:9;24156:14;;24121:284;;;24125:14;24421:3;24414:10;;23822:608;;;23698:732;;;;:::o;24436:831::-;24699:4;24737:3;24726:9;24722:19;24714:27;;24751:71;24819:1;24808:9;24804:17;24795:6;24751:71;:::i;:::-;24832:80;24908:2;24897:9;24893:18;24884:6;24832:80;:::i;:::-;24959:9;24953:4;24949:20;24944:2;24933:9;24929:18;24922:48;24987:108;25090:4;25081:6;24987:108;:::i;:::-;24979:116;;25105:72;25173:2;25162:9;25158:18;25149:6;25105:72;:::i;:::-;25187:73;25255:3;25244:9;25240:19;25231:6;25187:73;:::i;:::-;24436:831;;;;;;;;:::o;25273:147::-;25374:11;25411:3;25396:18;;25273:147;;;;:::o;25426:114::-;;:::o;25546:398::-;25705:3;25726:83;25807:1;25802:3;25726:83;:::i;:::-;25719:90;;25818:93;25907:3;25818:93;:::i;:::-;25936:1;25931:3;25927:11;25920:18;;25546:398;;;:::o;25950:379::-;26134:3;26156:147;26299:3;26156:147;:::i;:::-;26149:154;;26320:3;26313:10;;25950:379;;;:::o;26335:807::-;26584:4;26622:3;26611:9;26607:19;26599:27;;26636:71;26704:1;26693:9;26689:17;26680:6;26636:71;:::i;:::-;26717:72;26785:2;26774:9;26770:18;26761:6;26717:72;:::i;:::-;26799:80;26875:2;26864:9;26860:18;26851:6;26799:80;:::i;:::-;26889;26965:2;26954:9;26950:18;26941:6;26889:80;:::i;:::-;26979:73;27047:3;27036:9;27032:19;27023:6;26979:73;:::i;:::-;27062;27130:3;27119:9;27115:19;27106:6;27062:73;:::i;:::-;26335:807;;;;;;;;;:::o;27148:663::-;27236:6;27244;27252;27301:2;27289:9;27280:7;27276:23;27272:32;27269:119;;;27307:79;;:::i;:::-;27269:119;27427:1;27452:64;27508:7;27499:6;27488:9;27484:22;27452:64;:::i;:::-;27442:74;;27398:128;27565:2;27591:64;27647:7;27638:6;27627:9;27623:22;27591:64;:::i;:::-;27581:74;;27536:129;27704:2;27730:64;27786:7;27777:6;27766:9;27762:22;27730:64;:::i;:::-;27720:74;;27675:129;27148:663;;;;;:::o;27817:332::-;27938:4;27976:2;27965:9;27961:18;27953:26;;27989:71;28057:1;28046:9;28042:17;28033:6;27989:71;:::i;:::-;28070:72;28138:2;28127:9;28123:18;28114:6;28070:72;:::i;:::-;27817:332;;;;;:::o;28155:167::-;28295:19;28291:1;28283:6;28279:14;28272:43;28155:167;:::o;28328:366::-;28470:3;28491:67;28555:2;28550:3;28491:67;:::i;:::-;28484:74;;28567:93;28656:3;28567:93;:::i;:::-;28685:2;28680:3;28676:12;28669:19;;28328:366;;;:::o;28700:419::-;28866:4;28904:2;28893:9;28889:18;28881:26;;28953:9;28947:4;28943:20;28939:1;28928:9;28924:17;28917:47;28981:131;29107:4;28981:131;:::i;:::-;28973:139;;28700:419;;;:::o

Swarm Source

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