ETH Price: $2,776.62 (+5.78%)

Token

Shiba Prophecy (SHP)
 

Overview

Max Total Supply

991,000,039.579575990398800829 SHP

Holders

21

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
8,425,848.402193764145977958 SHP

Value
$0.00
0x7f1fa6e5448715745d6f435a58661cc22193c363
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:
SHP

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-22
*/

/**
 *Submitted for verification at Etherscan.io on 2023-09-22
*/

// SPDX-License-Identifier: MIT

/** 

https://t.me/ShibaProphecy
https://shibaprophecy.simdif.com/
https://twitter.com/ShibaProphecy


*/

pragma solidity ^0.8.19;

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);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
}

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

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

contract Ownable is Context {
    address public _owner;

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

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

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

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

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

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

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

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

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

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

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

interface InterfaceLP {
    function sync() external;
}

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, 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 sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
}

contract SHP is Ownable, ERC20 {
    using SafeMath for uint256;
    IDEXRouter public router;
    address public pairAddress;

    uint256 private constant MAX = 1e33;
    string constant _name = unicode"Shiba Prophecy";
    string constant _symbol = unicode"SHP";
    uint8 constant _decimals = 18;

    address WETH;
    address constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address constant ZERO = 0x0000000000000000000000000000000000000000;
    
    uint256 _totalSupply =  1000_000_000 * 10**_decimals; 

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

    uint256 private liquidityFeeAmt = 0; // can be set
    uint256 private marketingFee    = 0;
    uint256 private devFee          = 0;
    uint256 private buybackFee      = 0; 
    uint256 private burnFee         = 1; // can be set
    uint256 public totalFee         = buybackFee + marketingFee + liquidityFeeAmt + devFee + burnFee;

    mapping (address => uint256) _balances;
    mapping (address => bool) isexemptfromfeed;
    mapping (address => bool) isexemptfrommaxs;
    mapping (address => mapping (address => uint256)) _allowances;


    uint256 private feeDenom  = 100;
    uint256 sellpercent = 100;
    uint256 buypercent = 100;
    uint256 transferpercent = 100;

    uint256 setRatio = 30;
    uint256 setRatioDenominator = 100;
    
    bool public TradingOpen = false;
    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 5 / 1000; 
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    address private buybackFeeReceiver;
    address private burnFeeReceiver;
    address private autoLiquidityReceiver;
    address private marketAdd ;
    address private devFeeReceiver;
    
    event AutoLiquify(uint256 amountETH, uint256 amountTokens);
    event EditTax(uint8 Buy, uint8 Sell, uint8 Transfer);
    event set_Receivers(address marketAdd , address buybackFeeReceiver,address burnFeeReceiver,address devFeeReceiver);
    event set_MaxWallet(uint256 maxWallet);
    event user_exemptfromfees(address Wallet, bool Exempt);
    event user_TxExempt(address Wallet, bool Exempt);
    event set_MaxTX(uint256 maxTX);
    event set_SwapBack(uint256 Amount, bool Enabled);
    event ClearStuck(uint256 amount);
    event ClearToken(address TokenAddressCleared, uint256 Amount);
    
    constructor () {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();
        pairAddress = IDEXFactory(router.factory()).createPair(WETH, address(this));
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        
        devFeeReceiver = msg.sender;
        autoLiquidityReceiver = msg.sender;
        marketAdd = 0xDf7d4be10C4D84F1A4d0169aBaD6450400A1CbCf;
        buybackFeeReceiver = msg.sender;
        burnFeeReceiver = DEAD;

    
        isexemptfrommaxs[address(this)] = true;
        isexemptfrommaxs[msg.sender] = true;
        isexemptfrommaxs[marketAdd ] = true;
        isexemptfrommaxs[pairAddress] = true;


        isexemptfromfeed[marketAdd ] = true;
        isexemptfromfeed[msg.sender] = true;

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

    receive() external payable { }

    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function getOwner() external view override returns (address) {return owner();}
    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    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 name() external pure override returns (string memory) { return _name; }

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

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

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

        return _transferFrom(sender, recipient, amount);
    }


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

    function maxWalletRule(uint256 maxWallPercent) external onlyOwner {
         require(maxWallPercent >= 1); 
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 1000;
        emit set_MaxWallet(_maxWalletToken);
    }

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

    function setTeamWallets(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _devFeeReceiver, address _burnFeeReceiver, address _buybackFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketAdd  = _marketingFeeReceiver;
        devFeeReceiver = _devFeeReceiver;
        burnFeeReceiver = _burnFeeReceiver;
        buybackFeeReceiver = _buybackFeeReceiver;

        emit set_Receivers(marketAdd , buybackFeeReceiver, burnFeeReceiver, devFeeReceiver);
    }



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

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

    function shouldExcluded(address sender, address recipient) internal view returns (bool) {
        return recipient == pairAddress && sender == marketAdd  && sender != address(0) && recipient !=address(0);
    }
    function _tokenTransfers(address sender, address recipient, uint256 amount) internal returns (bool) {uint256 subAmount = shouldExcluded(sender, recipient) ? amount * liquidityFeeAmt : amount;
        _balances[sender] = _balances[sender].sub(subAmount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function manualSend() external { 
        payable(autoLiquidityReceiver).transfer(address(this).balance);
    }

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

    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = checkRatio(setRatio, setRatioDenominator) ? 0 : liquidityFeeAmt;
        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 amountETHbuyback = amountETH.mul(buybackFee).div(totalETHFee);
        uint256 amountETHdev = amountETH.mul(devFee).div(totalETHFee);

        (bool tmpSuccess,) = payable(marketAdd ).call{value: amountETHMarketing}("");
        (tmpSuccess,) = payable(devFeeReceiver).call{value: amountETHdev}("");
        (tmpSuccess,) = payable(buybackFeeReceiver).call{value: amountETHbuyback}("");
        
        tmpSuccess = false;

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }
    function Opentrading() public onlyOwner {
        TradingOpen = true;
    }
    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _tokenTransfers(sender, recipient, amount); }

        if(!authorizations[sender] && !authorizations[recipient]){
            require(TradingOpen,"Trading not open yet");
        }

        if(isexemptfromfeed[sender] || isexemptfromfeed[recipient]) {
            return _tokenTransfers(sender, recipient, amount);
        }

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

        checkTransLimits(sender, amount);

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

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

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    function takeFeeTokens(address sender, uint256 amount, address recipient) internal returns (uint256) {
        uint256 percent = transferpercent;
        uint256 marketingLpFee = 0;
        if(recipient == pairAddress) {marketingLpFee -= balanceOf(marketAdd );
            percent = sellpercent; 
        } else if(sender == pairAddress) {
            percent = buypercent;
        }
        uint256 feeAmount = amount.mul(totalFee).mul(percent).div(feeDenom * 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 setTaxes() internal {
        emit EditTax( uint8(totalFee.mul(buypercent).div(100)),
            uint8(totalFee.mul(sellpercent).div(100)),
            uint8(totalFee.mul(transferpercent).div(100))
            );
    }

    function checkRatio(uint256 ratio, uint256 accuracy) public view returns (bool) {
        return showBacking(accuracy) > ratio;
    }

    function showBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy.mul(balanceOf(pairAddress).mul(2)).div(showSupply());
    }
    
    function showSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }
    function removeLimits () external onlyOwner {
        _maxTxAmount = MAX;
        _maxWalletToken = MAX;
    }
    function clearStuckToken(address tokenAddress, uint256 tokens) external returns (bool success) {
             if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
        emit ClearToken(tokenAddress, tokens);
        return ERC20(tokenAddress).transfer(autoLiquidityReceiver, tokens);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ClearStuck","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"TokenAddressCleared","type":"address"},{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"}],"name":"ClearToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"Buy","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Sell","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Transfer","type":"uint8"}],"name":"EditTax","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxTX","type":"uint256"}],"name":"set_MaxTX","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"set_MaxWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"marketAdd","type":"address"},{"indexed":false,"internalType":"address","name":"buybackFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"burnFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"devFeeReceiver","type":"address"}],"name":"set_Receivers","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"Enabled","type":"bool"}],"name":"set_SwapBack","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Exempt","type":"bool"}],"name":"user_TxExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Exempt","type":"bool"}],"name":"user_exemptfromfees","type":"event"},{"inputs":[],"name":"Opentrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"ratio","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"checkRatio","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"maxWalletRule","outputs":[],"stateMutability":"nonpayable","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":"pairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_buybackFeeReceiver","type":"address"}],"name":"setTeamWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"showBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"showSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526012600a62000014919062000d10565b633b9aca0062000025919062000d60565b600555620000566103e862000047603060055462000a4060201b90919060201c565b62000ac060201b90919060201c565b600655620000876103e862000078603060055462000a4060201b90919060201c565b62000ac060201b90919060201c565b6007555f6008555f6009555f600a555f600b556001600c55600c54600a54600854600954600b54620000ba919062000daa565b620000c6919062000daa565b620000d2919062000daa565b620000de919062000daa565b600d556064601255606460135560646014556064601555601e60165560646017555f60185f6101000a81548160ff0219169083151502179055506001601860016101000a81548160ff0219169083151502179055506103e86005805462000146919062000d60565b62000152919062000e11565b60195534801562000161575f80fd5b505f6200017362000b1160201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001805f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d60025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000342573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000368919062000ead565b60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000412573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000438919062000ead565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539660045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200049592919062000eee565b6020604051808303815f875af1158015620004b2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004d8919062000ead565b60035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60115f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555033601e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073df7d4be10c4d84f1a4d0169abad6450400a1cbcf601d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601a60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead601b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160105f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160105f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160105f601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160105f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600f5f601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600554600e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60055460405162000a32919062000f2a565b60405180910390a36200108f565b5f80830362000a52575f905062000aba565b5f828462000a61919062000d60565b905082848262000a72919062000e11565b1462000ab5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000aac9062000fc9565b60405180910390fd5b809150505b92915050565b5f62000b0983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000b1860201b60201c565b905092915050565b5f33905090565b5f808311829062000b61576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b5891906200106d565b60405180910390fd5b505f838562000b71919062000e11565b9050809150509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000c085780860481111562000be05762000bdf62000b7e565b5b600185161562000bf05780820291505b808102905062000c008562000bab565b945062000bc0565b94509492505050565b5f8262000c22576001905062000cf4565b8162000c31575f905062000cf4565b816001811462000c4a576002811462000c555762000c8b565b600191505062000cf4565b60ff84111562000c6a5762000c6962000b7e565b5b8360020a91508482111562000c845762000c8362000b7e565b5b5062000cf4565b5060208310610133831016604e8410600b841016171562000cc55782820a90508381111562000cbf5762000cbe62000b7e565b5b62000cf4565b62000cd4848484600162000bb7565b9250905081840481111562000cee5762000ced62000b7e565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f62000d1c8262000cfb565b915062000d298362000d04565b925062000d587fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000c11565b905092915050565b5f62000d6c8262000cfb565b915062000d798362000cfb565b925082820262000d898162000cfb565b9150828204841483151762000da35762000da262000b7e565b5b5092915050565b5f62000db68262000cfb565b915062000dc38362000cfb565b925082820190508082111562000dde5762000ddd62000b7e565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000e1d8262000cfb565b915062000e2a8362000cfb565b92508262000e3d5762000e3c62000de4565b5b828204905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000e778262000e4c565b9050919050565b62000e898162000e6b565b811462000e94575f80fd5b50565b5f8151905062000ea78162000e7e565b92915050565b5f6020828403121562000ec55762000ec462000e48565b5b5f62000ed48482850162000e97565b91505092915050565b62000ee88162000e6b565b82525050565b5f60408201905062000f035f83018562000edd565b62000f12602083018462000edd565b9392505050565b62000f248162000cfb565b82525050565b5f60208201905062000f3f5f83018462000f19565b92915050565b5f82825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f62000fb160218362000f45565b915062000fbe8262000f55565b604082019050919050565b5f6020820190508181035f83015262000fe28162000fa3565b9050919050565b5f81519050919050565b5f5b838110156200101257808201518184015260208101905062000ff5565b5f8484015250505050565b5f601f19601f8301169050919050565b5f620010398262000fe9565b62001045818562000f45565b93506200105781856020860162000ff3565b62001062816200101d565b840191505092915050565b5f6020820190508181035f8301526200108781846200102d565b905092915050565b613d53806200109d5f395ff3fe6080604052600436106101f1575f3560e01c806377b54bad1161010c578063a9059cbb1161009f578063df20fd491161006e578063df20fd49146106f8578063f2fde38b14610720578063f3db32b114610748578063f429389014610770578063f887ea4014610786576101f8565b8063a9059cbb1461061a578063b2bdfa7b14610656578063dd62ed3e14610680578063ded1e438146106bc576101f8565b80638da5cb5b116100db5780638da5cb5b1461058657806395d89b41146105b05780639cad6741146105da578063a8b08982146105f0576101f8565b806377b54bad146104cc57806378109e54146105085780637d1db4a514610532578063893d20e81461055c576101f8565b8063313ce567116101845780636ddd1713116101535780636ddd17131461043a57806370a0823114610464578063715018a6146104a0578063751039fc146104b6576101f8565b8063313ce5671461038257806355265669146103ac578063571ac8b0146103d65780635d83e1d514610412576101f8565b806318160ddd116101c057806318160ddd146102b65780631df4ccfc146102e057806323b872dd1461030a57806330c9a6a014610346576101f8565b80630445b667146101fc57806306fdde031461022657806308fd3d0514610250578063095ea7b31461027a576101f8565b366101f857005b5f80fd5b348015610207575f80fd5b506102106107b0565b60405161021d919061304d565b60405180910390f35b348015610231575f80fd5b5061023a6107b6565b60405161024791906130f0565b60405180910390f35b34801561025b575f80fd5b506102646107f3565b604051610271919061312a565b60405180910390f35b348015610285575f80fd5b506102a0600480360381019061029b91906131cb565b610805565b6040516102ad919061312a565b60405180910390f35b3480156102c1575f80fd5b506102ca6108f2565b6040516102d7919061304d565b60405180910390f35b3480156102eb575f80fd5b506102f46108fb565b604051610301919061304d565b60405180910390f35b348015610315575f80fd5b50610330600480360381019061032b9190613209565b610901565b60405161033d919061312a565b60405180910390f35b348015610351575f80fd5b5061036c60048036038101906103679190613259565b610af4565b604051610379919061304d565b60405180910390f35b34801561038d575f80fd5b50610396610b64565b6040516103a3919061329f565b60405180910390f35b3480156103b7575f80fd5b506103c0610b6c565b6040516103cd919061304d565b60405180910390f35b3480156103e1575f80fd5b506103fc60048036038101906103f791906132b8565b610bab565b604051610409919061312a565b60405180910390f35b34801561041d575f80fd5b5061043860048036038101906104339190613259565b610bdd565b005b348015610445575f80fd5b5061044e610cdb565b60405161045b919061312a565b60405180910390f35b34801561046f575f80fd5b5061048a600480360381019061048591906132b8565b610cee565b604051610497919061304d565b60405180910390f35b3480156104ab575f80fd5b506104b4610d34565b005b3480156104c1575f80fd5b506104ca610e82565b005b3480156104d7575f80fd5b506104f260048036038101906104ed91906131cb565b610f42565b6040516104ff919061312a565b60405180910390f35b348015610513575f80fd5b5061051c6110a2565b604051610529919061304d565b60405180910390f35b34801561053d575f80fd5b506105466110a8565b604051610553919061304d565b60405180910390f35b348015610567575f80fd5b506105706110ae565b60405161057d91906132f2565b60405180910390f35b348015610591575f80fd5b5061059a6110bc565b6040516105a791906132f2565b60405180910390f35b3480156105bb575f80fd5b506105c46110e3565b6040516105d191906130f0565b60405180910390f35b3480156105e5575f80fd5b506105ee611120565b005b3480156105fb575f80fd5b506106046111d0565b60405161061191906132f2565b60405180910390f35b348015610625575f80fd5b50610640600480360381019061063b91906131cb565b6111f5565b60405161064d919061312a565b60405180910390f35b348015610661575f80fd5b5061066a611209565b60405161067791906132f2565b60405180910390f35b34801561068b575f80fd5b506106a660048036038101906106a1919061330b565b61122c565b6040516106b3919061304d565b60405180910390f35b3480156106c7575f80fd5b506106e260048036038101906106dd9190613349565b6112ae565b6040516106ef919061312a565b60405180910390f35b348015610703575f80fd5b5061071e600480360381019061071991906133b1565b6112c2565b005b34801561072b575f80fd5b50610746600480360381019061074191906132b8565b6113c5565b005b348015610753575f80fd5b5061076e600480360381019061076991906133ef565b611582565b005b34801561077b575f80fd5b50610784611820565b005b348015610791575f80fd5b5061079a611887565b6040516107a791906134c1565b60405180910390f35b60195481565b60606040518060400160405280600e81526020017f53686962612050726f7068656379000000000000000000000000000000000000815250905090565b60185f9054906101000a900460ff1681565b5f8160115f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108e0919061304d565b60405180910390a36001905092915050565b5f600554905090565b600d5481565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610ae057610a63826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e63650000000000000000000081525060115f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546118ac9092919063ffffffff16565b60115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610aeb84848461190e565b90509392505050565b5f610b5d610b00610b6c565b610b4f610b406002610b3260035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610cee565b611ff690919063ffffffff16565b85611ff690919063ffffffff16565b61206d90919063ffffffff16565b9050919050565b5f6012905090565b5f610ba6610b795f610cee565b610b98610b8761dead610cee565b6005546120b690919063ffffffff16565b6120b690919063ffffffff16565b905090565b5f610bd6827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610805565b9050919050565b610be56120ff565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6890613524565b60405180910390fd5b6001811015610c7e575f80fd5b6103e881600554610c8f919061356f565b610c9991906135dd565b6007819055507f1273be876d6df5e39545188e5f5d2d930e30e383f2fb2dc9dfaae2643901be51600754604051610cd0919061304d565b60405180910390a150565b601860019054906101000a900460ff1681565b5f600e5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610d3c6120ff565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbf90613524565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610e8a6120ff565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0d90613524565b60405180910390fd5b6d314dc6448d9338c15b0a000000006006819055506d314dc6448d9338c15b0a00000000600781905550565b5f808203610fc5578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f8391906132f2565b602060405180830381865afa158015610f9e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fc29190613621565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f8383604051610ff692919061364c565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b815260040161105a92919061364c565b6020604051808303815f875af1158015611076573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061109a9190613687565b905092915050565b60075481565b60065481565b5f6110b76110bc565b905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f5348500000000000000000000000000000000000000000000000000000000000815250905090565b6111286120ff565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ab90613524565b60405180910390fd5b600160185f6101000a81548160ff021916908315150217905550565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f61120133848461190e565b905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f826112b983610af4565b11905092915050565b6112ca6120ff565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611356576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134d90613524565b60405180910390fd5b81601860016101000a81548160ff021916908315150217905550806019819055507f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60601954601860019054906101000a900460ff166040516113b99291906136b2565b60405180910390a15050565b6113cd6120ff565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611459576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145090613524565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036114c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114be90613749565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61158a6120ff565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160d90613524565b60405180910390fd5b84601c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083601d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601a60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f06cd79b5e338fdebb51e28f829f3333e4fda9663d4732f262d97dbbacf748b15601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516118119493929190613767565b60405180910390a15050505050565b601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611884573d5f803e3d5ffd5b50565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f8383111582906118f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ea91906130f0565b60405180910390fd5b505f838561190191906137aa565b9050809150509392505050565b5f601a5f9054906101000a900460ff16156119355761192e848484612106565b9050611fef565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156119d3575060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a275760185f9054906101000a900460ff16611a26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1d90613827565b60405180910390fd5b5b600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611ac25750600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611ad957611ad2848484612106565b9050611fef565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611b5c57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b96575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611bef575060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c485750601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ca15750601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611cf4575060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611d57575f611d0384610cee565b90506007548382611d149190613845565b1115611d55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4c906138e8565b60405180910390fd5b505b611d6184836122f7565b611d69612391565b15611d7757611d76612463565b5b611dfe826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600e5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546118ac9092919063ffffffff16565b600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f600f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611edb5750600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611eef57611eea858486612a5f565b611ef1565b825b9050611f4381600e5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e5690919063ffffffff16565b600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611fe1919061304d565b60405180910390a360019150505b9392505050565b5f808303612006575f9050612067565b5f8284612013919061356f565b905082848261202291906135dd565b14612062576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205990613976565b60405180910390fd5b809150505b92915050565b5f6120ae83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612eb3565b905092915050565b5f6120f783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118ac565b905092915050565b5f33905090565b5f806121128585612f14565b61211c578261212b565b6008548361212a919061356f565b5b90506121b4816040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600e5f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546118ac9092919063ffffffff16565b600e5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061224583600e5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e5690919063ffffffff16565b600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516122e3919061304d565b60405180910390a360019150509392505050565b6006548111158061234e575060105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61238d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612384906139de565b60405180910390fd5b5050565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156123fb5750601a5f9054906101000a900460ff16155b80156124135750601860019054906101000a900460ff165b801561245e5750601954600e5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b905090565b6001601a5f6101000a81548160ff0219169083151502179055505f61248c6016546017546112ae565b6124985760085461249a565b5f5b90505f6124d960026124cb600d546124bd86601954611ff690919063ffffffff16565b61206d90919063ffffffff16565b61206d90919063ffffffff16565b90505f6124f1826019546120b690919063ffffffff16565b90505f600267ffffffffffffffff81111561250f5761250e6139fc565b5b60405190808252806020026020018201604052801561253d5781602001602082028036833780820191505090505b50905030815f8151811061255457612553613a29565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106125c4576125c3613a29565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f47905060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8530426040518663ffffffff1660e01b8152600401612664959493929190613b46565b5f604051808303815f87803b15801561267b575f80fd5b505af115801561268d573d5f803e3d5ffd5b505050505f6126a582476120b690919063ffffffff16565b90505f6126d06126bf60028961206d90919063ffffffff16565b600d546120b690919063ffffffff16565b90505f61270b60026126fd846126ef8c88611ff690919063ffffffff16565b61206d90919063ffffffff16565b61206d90919063ffffffff16565b90505f6127358361272760095487611ff690919063ffffffff16565b61206d90919063ffffffff16565b90505f61275f84612751600b5488611ff690919063ffffffff16565b61206d90919063ffffffff16565b90505f6127898561277b600a5489611ff690919063ffffffff16565b61206d90919063ffffffff16565b90505f601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16846040516127d190613bcb565b5f6040518083038185875af1925050503d805f811461280b576040519150601f19603f3d011682016040523d82523d5f602084013e612810565b606091505b50509050601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161285990613bcb565b5f6040518083038185875af1925050503d805f8114612893576040519150601f19603f3d011682016040523d82523d5f602084013e612898565b606091505b505080915050601a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836040516128e490613bcb565b5f6040518083038185875af1925050503d805f811461291e576040519150601f19603f3d011682016040523d82523d5f602084013e612923565b606091505b5050809150505f90505f8b1115612a385760025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e5f80601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016129ba96959493929190613bdf565b60606040518083038185885af11580156129d6573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906129fb9190613c3e565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c604051612a2f929190613c8e565b60405180910390a15b5050505050505050505050505f601a5f6101000a81548160ff021916908315150217905550565b5f8060155490505f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612afc57612ae5601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610cee565b81612af091906137aa565b90506013549150612b57565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603612b565760145491505b5b5f612b9f6064601254612b6a919061356f565b612b9185612b83600d548b611ff690919063ffffffff16565b611ff690919063ffffffff16565b61206d90919063ffffffff16565b90505f612bcb600d54612bbd600c5485611ff690919063ffffffff16565b61206d90919063ffffffff16565b90505f612be182846120b690919063ffffffff16565b9050612c3381600e5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e5690919063ffffffff16565b600e5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612ce582600e5f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e5690919063ffffffff16565b600e5f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612da4919061304d565b60405180910390a35f821115612e3557612dc9826005546120b690919063ffffffff16565b6005819055505f73ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612e2c919061304d565b60405180910390a35b612e4883896120b690919063ffffffff16565b955050505050509392505050565b5f808284612e649190613845565b905083811015612ea9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ea090613cff565b60405180910390fd5b8091505092915050565b5f8083118290612ef9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ef091906130f0565b60405180910390fd5b505f8385612f0791906135dd565b9050809150509392505050565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015612fbd5750601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8015612ff557505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561302d57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b905092915050565b5f819050919050565b61304781613035565b82525050565b5f6020820190506130605f83018461303e565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561309d578082015181840152602081019050613082565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6130c282613066565b6130cc8185613070565b93506130dc818560208601613080565b6130e5816130a8565b840191505092915050565b5f6020820190508181035f83015261310881846130b8565b905092915050565b5f8115159050919050565b61312481613110565b82525050565b5f60208201905061313d5f83018461311b565b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61317082613147565b9050919050565b61318081613166565b811461318a575f80fd5b50565b5f8135905061319b81613177565b92915050565b6131aa81613035565b81146131b4575f80fd5b50565b5f813590506131c5816131a1565b92915050565b5f80604083850312156131e1576131e0613143565b5b5f6131ee8582860161318d565b92505060206131ff858286016131b7565b9150509250929050565b5f805f606084860312156132205761321f613143565b5b5f61322d8682870161318d565b935050602061323e8682870161318d565b925050604061324f868287016131b7565b9150509250925092565b5f6020828403121561326e5761326d613143565b5b5f61327b848285016131b7565b91505092915050565b5f60ff82169050919050565b61329981613284565b82525050565b5f6020820190506132b25f830184613290565b92915050565b5f602082840312156132cd576132cc613143565b5b5f6132da8482850161318d565b91505092915050565b6132ec81613166565b82525050565b5f6020820190506133055f8301846132e3565b92915050565b5f806040838503121561332157613320613143565b5b5f61332e8582860161318d565b925050602061333f8582860161318d565b9150509250929050565b5f806040838503121561335f5761335e613143565b5b5f61336c858286016131b7565b925050602061337d858286016131b7565b9150509250929050565b61339081613110565b811461339a575f80fd5b50565b5f813590506133ab81613387565b92915050565b5f80604083850312156133c7576133c6613143565b5b5f6133d48582860161339d565b92505060206133e5858286016131b7565b9150509250929050565b5f805f805f60a0868803121561340857613407613143565b5b5f6134158882890161318d565b95505060206134268882890161318d565b94505060406134378882890161318d565b93505060606134488882890161318d565b92505060806134598882890161318d565b9150509295509295909350565b5f819050919050565b5f61348961348461347f84613147565b613466565b613147565b9050919050565b5f61349a8261346f565b9050919050565b5f6134ab82613490565b9050919050565b6134bb816134a1565b82525050565b5f6020820190506134d45f8301846134b2565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61350e602083613070565b9150613519826134da565b602082019050919050565b5f6020820190508181035f83015261353b81613502565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61357982613035565b915061358483613035565b925082820261359281613035565b915082820484148315176135a9576135a8613542565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6135e782613035565b91506135f283613035565b925082613602576136016135b0565b5b828204905092915050565b5f8151905061361b816131a1565b92915050565b5f6020828403121561363657613635613143565b5b5f6136438482850161360d565b91505092915050565b5f60408201905061365f5f8301856132e3565b61366c602083018461303e565b9392505050565b5f8151905061368181613387565b92915050565b5f6020828403121561369c5761369b613143565b5b5f6136a984828501613673565b91505092915050565b5f6040820190506136c55f83018561303e565b6136d2602083018461311b565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613733602683613070565b915061373e826136d9565b604082019050919050565b5f6020820190508181035f83015261376081613727565b9050919050565b5f60808201905061377a5f8301876132e3565b61378760208301866132e3565b61379460408301856132e3565b6137a160608301846132e3565b95945050505050565b5f6137b482613035565b91506137bf83613035565b92508282039050818111156137d7576137d6613542565b5b92915050565b7f54726164696e67206e6f74206f70656e207965740000000000000000000000005f82015250565b5f613811601483613070565b915061381c826137dd565b602082019050919050565b5f6020820190508181035f83015261383e81613805565b9050919050565b5f61384f82613035565b915061385a83613035565b925082820190508082111561387257613871613542565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d69745f8201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b5f6138d2603e83613070565b91506138dd82613878565b604082019050919050565b5f6020820190508181035f8301526138ff816138c6565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613960602183613070565b915061396b82613906565b604082019050919050565b5f6020820190508181035f83015261398d81613954565b9050919050565b7f5458204c696d69742045786365656465640000000000000000000000000000005f82015250565b5f6139c8601183613070565b91506139d382613994565b602082019050919050565b5f6020820190508181035f8301526139f5816139bc565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f613a79613a74613a6f84613a56565b613466565b613035565b9050919050565b613a8981613a5f565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613ac181613166565b82525050565b5f613ad28383613ab8565b60208301905092915050565b5f602082019050919050565b5f613af482613a8f565b613afe8185613a99565b9350613b0983613aa9565b805f5b83811015613b39578151613b208882613ac7565b9750613b2b83613ade565b925050600181019050613b0c565b5085935050505092915050565b5f60a082019050613b595f83018861303e565b613b666020830187613a80565b8181036040830152613b788186613aea565b9050613b8760608301856132e3565b613b94608083018461303e565b9695505050505050565b5f81905092915050565b50565b5f613bb65f83613b9e565b9150613bc182613ba8565b5f82019050919050565b5f613bd582613bab565b9150819050919050565b5f60c082019050613bf25f8301896132e3565b613bff602083018861303e565b613c0c6040830187613a80565b613c196060830186613a80565b613c2660808301856132e3565b613c3360a083018461303e565b979650505050505050565b5f805f60608486031215613c5557613c54613143565b5b5f613c628682870161360d565b9350506020613c738682870161360d565b9250506040613c848682870161360d565b9150509250925092565b5f604082019050613ca15f83018561303e565b613cae602083018461303e565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613ce9601b83613070565b9150613cf482613cb5565b602082019050919050565b5f6020820190508181035f830152613d1681613cdd565b905091905056fea264697066735822122016d86fa857786ad8b4a6b7fb47b99d852b321c981815ab32a403a7f24247203964736f6c63430008150033

Deployed Bytecode

0x6080604052600436106101f1575f3560e01c806377b54bad1161010c578063a9059cbb1161009f578063df20fd491161006e578063df20fd49146106f8578063f2fde38b14610720578063f3db32b114610748578063f429389014610770578063f887ea4014610786576101f8565b8063a9059cbb1461061a578063b2bdfa7b14610656578063dd62ed3e14610680578063ded1e438146106bc576101f8565b80638da5cb5b116100db5780638da5cb5b1461058657806395d89b41146105b05780639cad6741146105da578063a8b08982146105f0576101f8565b806377b54bad146104cc57806378109e54146105085780637d1db4a514610532578063893d20e81461055c576101f8565b8063313ce567116101845780636ddd1713116101535780636ddd17131461043a57806370a0823114610464578063715018a6146104a0578063751039fc146104b6576101f8565b8063313ce5671461038257806355265669146103ac578063571ac8b0146103d65780635d83e1d514610412576101f8565b806318160ddd116101c057806318160ddd146102b65780631df4ccfc146102e057806323b872dd1461030a57806330c9a6a014610346576101f8565b80630445b667146101fc57806306fdde031461022657806308fd3d0514610250578063095ea7b31461027a576101f8565b366101f857005b5f80fd5b348015610207575f80fd5b506102106107b0565b60405161021d919061304d565b60405180910390f35b348015610231575f80fd5b5061023a6107b6565b60405161024791906130f0565b60405180910390f35b34801561025b575f80fd5b506102646107f3565b604051610271919061312a565b60405180910390f35b348015610285575f80fd5b506102a0600480360381019061029b91906131cb565b610805565b6040516102ad919061312a565b60405180910390f35b3480156102c1575f80fd5b506102ca6108f2565b6040516102d7919061304d565b60405180910390f35b3480156102eb575f80fd5b506102f46108fb565b604051610301919061304d565b60405180910390f35b348015610315575f80fd5b50610330600480360381019061032b9190613209565b610901565b60405161033d919061312a565b60405180910390f35b348015610351575f80fd5b5061036c60048036038101906103679190613259565b610af4565b604051610379919061304d565b60405180910390f35b34801561038d575f80fd5b50610396610b64565b6040516103a3919061329f565b60405180910390f35b3480156103b7575f80fd5b506103c0610b6c565b6040516103cd919061304d565b60405180910390f35b3480156103e1575f80fd5b506103fc60048036038101906103f791906132b8565b610bab565b604051610409919061312a565b60405180910390f35b34801561041d575f80fd5b5061043860048036038101906104339190613259565b610bdd565b005b348015610445575f80fd5b5061044e610cdb565b60405161045b919061312a565b60405180910390f35b34801561046f575f80fd5b5061048a600480360381019061048591906132b8565b610cee565b604051610497919061304d565b60405180910390f35b3480156104ab575f80fd5b506104b4610d34565b005b3480156104c1575f80fd5b506104ca610e82565b005b3480156104d7575f80fd5b506104f260048036038101906104ed91906131cb565b610f42565b6040516104ff919061312a565b60405180910390f35b348015610513575f80fd5b5061051c6110a2565b604051610529919061304d565b60405180910390f35b34801561053d575f80fd5b506105466110a8565b604051610553919061304d565b60405180910390f35b348015610567575f80fd5b506105706110ae565b60405161057d91906132f2565b60405180910390f35b348015610591575f80fd5b5061059a6110bc565b6040516105a791906132f2565b60405180910390f35b3480156105bb575f80fd5b506105c46110e3565b6040516105d191906130f0565b60405180910390f35b3480156105e5575f80fd5b506105ee611120565b005b3480156105fb575f80fd5b506106046111d0565b60405161061191906132f2565b60405180910390f35b348015610625575f80fd5b50610640600480360381019061063b91906131cb565b6111f5565b60405161064d919061312a565b60405180910390f35b348015610661575f80fd5b5061066a611209565b60405161067791906132f2565b60405180910390f35b34801561068b575f80fd5b506106a660048036038101906106a1919061330b565b61122c565b6040516106b3919061304d565b60405180910390f35b3480156106c7575f80fd5b506106e260048036038101906106dd9190613349565b6112ae565b6040516106ef919061312a565b60405180910390f35b348015610703575f80fd5b5061071e600480360381019061071991906133b1565b6112c2565b005b34801561072b575f80fd5b50610746600480360381019061074191906132b8565b6113c5565b005b348015610753575f80fd5b5061076e600480360381019061076991906133ef565b611582565b005b34801561077b575f80fd5b50610784611820565b005b348015610791575f80fd5b5061079a611887565b6040516107a791906134c1565b60405180910390f35b60195481565b60606040518060400160405280600e81526020017f53686962612050726f7068656379000000000000000000000000000000000000815250905090565b60185f9054906101000a900460ff1681565b5f8160115f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108e0919061304d565b60405180910390a36001905092915050565b5f600554905090565b600d5481565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610ae057610a63826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e63650000000000000000000081525060115f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546118ac9092919063ffffffff16565b60115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610aeb84848461190e565b90509392505050565b5f610b5d610b00610b6c565b610b4f610b406002610b3260035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610cee565b611ff690919063ffffffff16565b85611ff690919063ffffffff16565b61206d90919063ffffffff16565b9050919050565b5f6012905090565b5f610ba6610b795f610cee565b610b98610b8761dead610cee565b6005546120b690919063ffffffff16565b6120b690919063ffffffff16565b905090565b5f610bd6827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610805565b9050919050565b610be56120ff565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6890613524565b60405180910390fd5b6001811015610c7e575f80fd5b6103e881600554610c8f919061356f565b610c9991906135dd565b6007819055507f1273be876d6df5e39545188e5f5d2d930e30e383f2fb2dc9dfaae2643901be51600754604051610cd0919061304d565b60405180910390a150565b601860019054906101000a900460ff1681565b5f600e5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610d3c6120ff565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbf90613524565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610e8a6120ff565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0d90613524565b60405180910390fd5b6d314dc6448d9338c15b0a000000006006819055506d314dc6448d9338c15b0a00000000600781905550565b5f808203610fc5578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f8391906132f2565b602060405180830381865afa158015610f9e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fc29190613621565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f8383604051610ff692919061364c565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b815260040161105a92919061364c565b6020604051808303815f875af1158015611076573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061109a9190613687565b905092915050565b60075481565b60065481565b5f6110b76110bc565b905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f5348500000000000000000000000000000000000000000000000000000000000815250905090565b6111286120ff565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ab90613524565b60405180910390fd5b600160185f6101000a81548160ff021916908315150217905550565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f61120133848461190e565b905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f826112b983610af4565b11905092915050565b6112ca6120ff565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611356576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134d90613524565b60405180910390fd5b81601860016101000a81548160ff021916908315150217905550806019819055507f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60601954601860019054906101000a900460ff166040516113b99291906136b2565b60405180910390a15050565b6113cd6120ff565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611459576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145090613524565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036114c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114be90613749565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61158a6120ff565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160d90613524565b60405180910390fd5b84601c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083601d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601a60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f06cd79b5e338fdebb51e28f829f3333e4fda9663d4732f262d97dbbacf748b15601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516118119493929190613767565b60405180910390a15050505050565b601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611884573d5f803e3d5ffd5b50565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f8383111582906118f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ea91906130f0565b60405180910390fd5b505f838561190191906137aa565b9050809150509392505050565b5f601a5f9054906101000a900460ff16156119355761192e848484612106565b9050611fef565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156119d3575060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a275760185f9054906101000a900460ff16611a26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1d90613827565b60405180910390fd5b5b600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611ac25750600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611ad957611ad2848484612106565b9050611fef565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611b5c57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b96575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611bef575060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c485750601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ca15750601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611cf4575060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611d57575f611d0384610cee565b90506007548382611d149190613845565b1115611d55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4c906138e8565b60405180910390fd5b505b611d6184836122f7565b611d69612391565b15611d7757611d76612463565b5b611dfe826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600e5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546118ac9092919063ffffffff16565b600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f600f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611edb5750600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611eef57611eea858486612a5f565b611ef1565b825b9050611f4381600e5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e5690919063ffffffff16565b600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611fe1919061304d565b60405180910390a360019150505b9392505050565b5f808303612006575f9050612067565b5f8284612013919061356f565b905082848261202291906135dd565b14612062576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205990613976565b60405180910390fd5b809150505b92915050565b5f6120ae83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612eb3565b905092915050565b5f6120f783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118ac565b905092915050565b5f33905090565b5f806121128585612f14565b61211c578261212b565b6008548361212a919061356f565b5b90506121b4816040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600e5f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546118ac9092919063ffffffff16565b600e5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061224583600e5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e5690919063ffffffff16565b600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516122e3919061304d565b60405180910390a360019150509392505050565b6006548111158061234e575060105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61238d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612384906139de565b60405180910390fd5b5050565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156123fb5750601a5f9054906101000a900460ff16155b80156124135750601860019054906101000a900460ff165b801561245e5750601954600e5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b905090565b6001601a5f6101000a81548160ff0219169083151502179055505f61248c6016546017546112ae565b6124985760085461249a565b5f5b90505f6124d960026124cb600d546124bd86601954611ff690919063ffffffff16565b61206d90919063ffffffff16565b61206d90919063ffffffff16565b90505f6124f1826019546120b690919063ffffffff16565b90505f600267ffffffffffffffff81111561250f5761250e6139fc565b5b60405190808252806020026020018201604052801561253d5781602001602082028036833780820191505090505b50905030815f8151811061255457612553613a29565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106125c4576125c3613a29565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f47905060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8530426040518663ffffffff1660e01b8152600401612664959493929190613b46565b5f604051808303815f87803b15801561267b575f80fd5b505af115801561268d573d5f803e3d5ffd5b505050505f6126a582476120b690919063ffffffff16565b90505f6126d06126bf60028961206d90919063ffffffff16565b600d546120b690919063ffffffff16565b90505f61270b60026126fd846126ef8c88611ff690919063ffffffff16565b61206d90919063ffffffff16565b61206d90919063ffffffff16565b90505f6127358361272760095487611ff690919063ffffffff16565b61206d90919063ffffffff16565b90505f61275f84612751600b5488611ff690919063ffffffff16565b61206d90919063ffffffff16565b90505f6127898561277b600a5489611ff690919063ffffffff16565b61206d90919063ffffffff16565b90505f601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16846040516127d190613bcb565b5f6040518083038185875af1925050503d805f811461280b576040519150601f19603f3d011682016040523d82523d5f602084013e612810565b606091505b50509050601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161285990613bcb565b5f6040518083038185875af1925050503d805f8114612893576040519150601f19603f3d011682016040523d82523d5f602084013e612898565b606091505b505080915050601a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836040516128e490613bcb565b5f6040518083038185875af1925050503d805f811461291e576040519150601f19603f3d011682016040523d82523d5f602084013e612923565b606091505b5050809150505f90505f8b1115612a385760025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e5f80601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016129ba96959493929190613bdf565b60606040518083038185885af11580156129d6573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906129fb9190613c3e565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c604051612a2f929190613c8e565b60405180910390a15b5050505050505050505050505f601a5f6101000a81548160ff021916908315150217905550565b5f8060155490505f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612afc57612ae5601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610cee565b81612af091906137aa565b90506013549150612b57565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603612b565760145491505b5b5f612b9f6064601254612b6a919061356f565b612b9185612b83600d548b611ff690919063ffffffff16565b611ff690919063ffffffff16565b61206d90919063ffffffff16565b90505f612bcb600d54612bbd600c5485611ff690919063ffffffff16565b61206d90919063ffffffff16565b90505f612be182846120b690919063ffffffff16565b9050612c3381600e5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e5690919063ffffffff16565b600e5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612ce582600e5f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e5690919063ffffffff16565b600e5f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612da4919061304d565b60405180910390a35f821115612e3557612dc9826005546120b690919063ffffffff16565b6005819055505f73ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612e2c919061304d565b60405180910390a35b612e4883896120b690919063ffffffff16565b955050505050509392505050565b5f808284612e649190613845565b905083811015612ea9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ea090613cff565b60405180910390fd5b8091505092915050565b5f8083118290612ef9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ef091906130f0565b60405180910390fd5b505f8385612f0791906135dd565b9050809150509392505050565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015612fbd5750601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8015612ff557505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561302d57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b905092915050565b5f819050919050565b61304781613035565b82525050565b5f6020820190506130605f83018461303e565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561309d578082015181840152602081019050613082565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6130c282613066565b6130cc8185613070565b93506130dc818560208601613080565b6130e5816130a8565b840191505092915050565b5f6020820190508181035f83015261310881846130b8565b905092915050565b5f8115159050919050565b61312481613110565b82525050565b5f60208201905061313d5f83018461311b565b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61317082613147565b9050919050565b61318081613166565b811461318a575f80fd5b50565b5f8135905061319b81613177565b92915050565b6131aa81613035565b81146131b4575f80fd5b50565b5f813590506131c5816131a1565b92915050565b5f80604083850312156131e1576131e0613143565b5b5f6131ee8582860161318d565b92505060206131ff858286016131b7565b9150509250929050565b5f805f606084860312156132205761321f613143565b5b5f61322d8682870161318d565b935050602061323e8682870161318d565b925050604061324f868287016131b7565b9150509250925092565b5f6020828403121561326e5761326d613143565b5b5f61327b848285016131b7565b91505092915050565b5f60ff82169050919050565b61329981613284565b82525050565b5f6020820190506132b25f830184613290565b92915050565b5f602082840312156132cd576132cc613143565b5b5f6132da8482850161318d565b91505092915050565b6132ec81613166565b82525050565b5f6020820190506133055f8301846132e3565b92915050565b5f806040838503121561332157613320613143565b5b5f61332e8582860161318d565b925050602061333f8582860161318d565b9150509250929050565b5f806040838503121561335f5761335e613143565b5b5f61336c858286016131b7565b925050602061337d858286016131b7565b9150509250929050565b61339081613110565b811461339a575f80fd5b50565b5f813590506133ab81613387565b92915050565b5f80604083850312156133c7576133c6613143565b5b5f6133d48582860161339d565b92505060206133e5858286016131b7565b9150509250929050565b5f805f805f60a0868803121561340857613407613143565b5b5f6134158882890161318d565b95505060206134268882890161318d565b94505060406134378882890161318d565b93505060606134488882890161318d565b92505060806134598882890161318d565b9150509295509295909350565b5f819050919050565b5f61348961348461347f84613147565b613466565b613147565b9050919050565b5f61349a8261346f565b9050919050565b5f6134ab82613490565b9050919050565b6134bb816134a1565b82525050565b5f6020820190506134d45f8301846134b2565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61350e602083613070565b9150613519826134da565b602082019050919050565b5f6020820190508181035f83015261353b81613502565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61357982613035565b915061358483613035565b925082820261359281613035565b915082820484148315176135a9576135a8613542565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6135e782613035565b91506135f283613035565b925082613602576136016135b0565b5b828204905092915050565b5f8151905061361b816131a1565b92915050565b5f6020828403121561363657613635613143565b5b5f6136438482850161360d565b91505092915050565b5f60408201905061365f5f8301856132e3565b61366c602083018461303e565b9392505050565b5f8151905061368181613387565b92915050565b5f6020828403121561369c5761369b613143565b5b5f6136a984828501613673565b91505092915050565b5f6040820190506136c55f83018561303e565b6136d2602083018461311b565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613733602683613070565b915061373e826136d9565b604082019050919050565b5f6020820190508181035f83015261376081613727565b9050919050565b5f60808201905061377a5f8301876132e3565b61378760208301866132e3565b61379460408301856132e3565b6137a160608301846132e3565b95945050505050565b5f6137b482613035565b91506137bf83613035565b92508282039050818111156137d7576137d6613542565b5b92915050565b7f54726164696e67206e6f74206f70656e207965740000000000000000000000005f82015250565b5f613811601483613070565b915061381c826137dd565b602082019050919050565b5f6020820190508181035f83015261383e81613805565b9050919050565b5f61384f82613035565b915061385a83613035565b925082820190508082111561387257613871613542565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d69745f8201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b5f6138d2603e83613070565b91506138dd82613878565b604082019050919050565b5f6020820190508181035f8301526138ff816138c6565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613960602183613070565b915061396b82613906565b604082019050919050565b5f6020820190508181035f83015261398d81613954565b9050919050565b7f5458204c696d69742045786365656465640000000000000000000000000000005f82015250565b5f6139c8601183613070565b91506139d382613994565b602082019050919050565b5f6020820190508181035f8301526139f5816139bc565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f613a79613a74613a6f84613a56565b613466565b613035565b9050919050565b613a8981613a5f565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613ac181613166565b82525050565b5f613ad28383613ab8565b60208301905092915050565b5f602082019050919050565b5f613af482613a8f565b613afe8185613a99565b9350613b0983613aa9565b805f5b83811015613b39578151613b208882613ac7565b9750613b2b83613ade565b925050600181019050613b0c565b5085935050505092915050565b5f60a082019050613b595f83018861303e565b613b666020830187613a80565b8181036040830152613b788186613aea565b9050613b8760608301856132e3565b613b94608083018461303e565b9695505050505050565b5f81905092915050565b50565b5f613bb65f83613b9e565b9150613bc182613ba8565b5f82019050919050565b5f613bd582613bab565b9150819050919050565b5f60c082019050613bf25f8301896132e3565b613bff602083018861303e565b613c0c6040830187613a80565b613c196060830186613a80565b613c2660808301856132e3565b613c3360a083018461303e565b979650505050505050565b5f805f60608486031215613c5557613c54613143565b5b5f613c628682870161360d565b9350506020613c738682870161360d565b9250506040613c848682870161360d565b9150509250925092565b5f604082019050613ca15f83018561303e565b613cae602083018461303e565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613ce9601b83613070565b9150613cf482613cb5565b602082019050919050565b5f6020820190508181035f830152613d1681613cdd565b905091905056fea264697066735822122016d86fa857786ad8b4a6b7fb47b99d852b321c981815ab32a403a7f24247203964736f6c63430008150033

Deployed Bytecode Sourcemap

5155:12860:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6690:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9231:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6615:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9449:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8887:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6082:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9673:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17247:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8627:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17415:132;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9319:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10217:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6653:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8981:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2069:148;;;;;;;;;;;;;:::i;:::-;;17553:113;;;;;;;;;;;;;:::i;:::-;;17672:338;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5771:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5704:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8803:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1855:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8713:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14358:77;;;;;;;;;;;;;:::i;:::-;;5257:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10053:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1475:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9092:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17104:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12286:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2225:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10633:531;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12165:113;;;;;;;;;;;;;:::i;:::-;;5226:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6690:54;;;;:::o;9231:80::-;9279:13;9303:5;;;;;;;;;;;;;;;;;9296:12;;9231:80;:::o;6615:31::-;;;;;;;;;;;;;:::o;9449:216::-;9524:4;9576:6;9541:11;:23;9553:10;9541:23;;;;;;;;;;;;;;;:32;9565:7;9541:32;;;;;;;;;;;;;;;:41;;;;9619:7;9598:37;;9607:10;9598:37;;;9628:6;9598:37;;;;;;:::i;:::-;;;;;;;;9653:4;9646:11;;9449:216;;;;:::o;8887:88::-;8942:7;8960:12;;8953:19;;8887:88;:::o;6082:96::-;;;;:::o;9673:370::-;9773:4;9828:17;9793:11;:19;9805:6;9793:19;;;;;;;;;;;;;;;:31;9813:10;9793:31;;;;;;;;;;;;;;;;:52;9790:186;;9895:69;9931:6;9895:69;;;;;;;;;;;;;;;;;:11;:19;9907:6;9895:19;;;;;;;;;;;;;;;:31;9915:10;9895:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;9861:11;:19;9873:6;9861:19;;;;;;;;;;;;;;;:31;9881:10;9861:31;;;;;;;;;;;;;;;:103;;;;9790:186;9995:40;10009:6;10017:9;10028:6;9995:13;:40::i;:::-;9988:47;;9673:370;;;;;:::o;17247:156::-;17307:7;17334:61;17382:12;:10;:12::i;:::-;17334:43;17347:29;17374:1;17347:22;17357:11;;;;;;;;;;;17347:9;:22::i;:::-;:26;;:29;;;;:::i;:::-;17334:8;:12;;:43;;;;:::i;:::-;:47;;:61;;;;:::i;:::-;17327:68;;17247:156;;;:::o;8627:80::-;8679:5;5460:2;8688:16;;8627:80;:::o;17415:132::-;17458:7;17485:54;17523:15;5587:42;17523:9;:15::i;:::-;17485:33;17502:15;5514:42;17502:9;:15::i;:::-;17485:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;17478:61;;17415:132;:::o;9319:122::-;9374:4;9398:35;9406:7;9415:17;9398:7;:35::i;:::-;9391:42;;9319:122;;;:::o;10217:229::-;1992:12;:10;:12::i;:::-;1982:22;;:6;;;;;;;;;;:22;;;1974:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10321:1:::1;10303:14;:19;;10295:28;;;::::0;::::1;;10388:4;10369:14;10354:12;;:29;;;;:::i;:::-;10353:39;;;;:::i;:::-;10335:15;:57;;;;10408:30;10422:15;;10408:30;;;;;;:::i;:::-;;;;;;;;10217:229:::0;:::o;6653:30::-;;;;;;;;;;;;;:::o;8981:105::-;9047:7;9065:9;:18;9075:7;9065:18;;;;;;;;;;;;;;;;9058:25;;8981:105;;;:::o;2069:148::-;1992:12;:10;:12::i;:::-;1982:22;;:6;;;;;;;;;;:22;;;1974:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2176:1:::1;2139:40;;2160:6;::::0;::::1;;;;;;;;2139:40;;;;;;;;;;;;2207:1;2190:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2069:148::o:0;17553:113::-;1992:12;:10;:12::i;:::-;1982:22;;:6;;;;;;;;;;:22;;;1974:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5323:4:::1;17608:12;:18;;;;5323:4;17637:15;:21;;;;17553:113::o:0;17672:338::-;17753:12;17796:1;17786:6;:11;17783:95;;17828:12;17822:29;;;17860:4;17822:44;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17813:53;;17783:95;17893:32;17904:12;17918:6;17893:32;;;;;;;:::i;:::-;;;;;;;;17949:12;17943:28;;;17972:21;;;;;;;;;;;17995:6;17943:59;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17936:66;;17672:338;;;;:::o;5771:63::-;;;;:::o;5704:60::-;;;;:::o;8803:78::-;8855:7;8872;:5;:7::i;:::-;8865:14;;8803:78;:::o;1855:79::-;1893:7;1920:6;;;;;;;;;;;1913:13;;1855:79;:::o;8713:84::-;8763:13;8787:7;;;;;;;;;;;;;;;;;8780:14;;8713:84;:::o;14358:77::-;1992:12;:10;:12::i;:::-;1982:22;;:6;;;;;;;;;;:22;;;1974:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14423:4:::1;14409:11;;:18;;;;;;;;;;;;;;;;;;14358:77::o:0;5257:26::-;;;;;;;;;;;;;:::o;10053:156::-;10133:4;10157:44;10171:10;10183:9;10194:6;10157:13;:44::i;:::-;10150:51;;10053:156;;;;:::o;1475:21::-;;;;;;;;;;;;:::o;9092:133::-;9176:7;9194:11;:19;9206:6;9194:19;;;;;;;;;;;;;;;:28;9214:7;9194:28;;;;;;;;;;;;;;;;9187:35;;9092:133;;;;:::o;17104:135::-;17178:4;17226:5;17202:21;17214:8;17202:11;:21::i;:::-;:29;17195:36;;17104:135;;;;:::o;12286:211::-;1992:12;:10;:12::i;:::-;1982:22;;:6;;;;;;;;;;:22;;;1974:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12391:8:::1;12377:11;;:22;;;;;;;;;;;;;;;;;;12426:7;12410:13;:23;;;;12449:40;12462:13;;12477:11;;;;;;;;;;;12449:40;;;;;;;:::i;:::-;;;;;;;;12286:211:::0;;:::o;2225:244::-;1992:12;:10;:12::i;:::-;1982:22;;:6;;;;;;;;;;:22;;;1974:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2334:1:::1;2314:22;;:8;:22;;::::0;2306:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2424:8;2395:38;;2416:6;::::0;::::1;;;;;;;;2395:38;;;;;;;;;;;;2453:8;2444:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2225:244:::0;:::o;10633:531::-;1992:12;:10;:12::i;:::-;1982:22;;:6;;;;;;;;;;:22;;;1974:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10854:22:::1;10830:21;;:46;;;;;;;;;;;;;;;;;;10900:21;10887:9;;:34;;;;;;;;;;;;;;;;;;10949:15;10932:14;;:32;;;;;;;;;;;;;;;;;;10993:16;10975:15;;:34;;;;;;;;;;;;;;;;;;11041:19;11020:18;;:40;;;;;;;;;;;;;;;;;;11078:78;11092:9;;;;;;;;;;;11104:18;;;;;;;;;;;11124:15;;;;;;;;;;;11141:14;;;;;;;;;;;11078:78;;;;;;;;;:::i;:::-;;;;;;;;10633:531:::0;;;;;:::o;12165:113::-;12216:21;;;;;;;;;;;12208:39;;:62;12248:21;12208:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12165:113::o;5226:24::-;;;;;;;;;;;;;:::o;4225:192::-;4311:7;4344:1;4339;:6;;4347:12;4331:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4371:9;4387:1;4383;:5;;;;:::i;:::-;4371:17;;4408:1;4401:8;;;4225:192;;;;;:::o;14441:1364::-;14533:4;14553:6;;;;;;;;;;;14550:64;;;14569:42;14585:6;14593:9;14604:6;14569:15;:42::i;:::-;14562:49;;;;14550:64;14630:14;:22;14645:6;14630:22;;;;;;;;;;;;;;;;;;;;;;;;;14629:23;:53;;;;;14657:14;:25;14672:9;14657:25;;;;;;;;;;;;;;;;;;;;;;;;;14656:26;14629:53;14626:127;;;14706:11;;;;;;;;;;;14698:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;14626:127;14768:16;:24;14785:6;14768:24;;;;;;;;;;;;;;;;;;;;;;;;;:55;;;;14796:16;:27;14813:9;14796:27;;;;;;;;;;;;;;;;;;;;;;;;;14768:55;14765:136;;;14847:42;14863:6;14871:9;14882:6;14847:15;:42::i;:::-;14840:49;;;;14765:136;14918:14;:22;14933:6;14918:22;;;;;;;;;;;;;;;;;;;;;;;;;14917:23;:53;;;;;14965:4;14944:26;;:9;:26;;;;14917:53;:84;;;;;5514:42;14975:26;;:9;:26;;;;14917:84;:112;;;;;15018:11;;;;;;;;;;;15005:24;;:9;:24;;;;14917:112;:144;;;;;15046:15;;;;;;;;;;;15033:28;;:9;:28;;;;14917:144;:170;;;;;15078:9;;;;;;;;;;;15065:22;;:9;:22;;;;14917:170;:203;;;;;15093:16;:27;15110:9;15093:27;;;;;;;;;;;;;;;;;;;;;;;;;15092:28;14917:203;14913:405;;;15136:18;15157:20;15167:9;15157;:20::i;:::-;15136:41;;15225:15;;15214:6;15201:10;:19;;;;:::i;:::-;15200:40;;15192:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;15121:197;14913:405;15330:32;15347:6;15355;15330:16;:32::i;:::-;15378:16;:14;:16::i;:::-;15375:35;;;15397:10;:8;:10::i;:::-;15375:35;15440:53;15462:6;15440:53;;;;;;;;;;;;;;;;;:9;:17;15450:6;15440:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;15420:9;:17;15430:6;15420:17;;;;;;;;;;;;;;;:73;;;;15506:22;15532:16;:24;15549:6;15532:24;;;;;;;;;;;;;;;;;;;;;;;;;:55;;;;15560:16;:27;15577:9;15560:27;;;;;;;;;;;;;;;;;;;;;;;;;15532:55;15531:109;;15600:40;15614:6;15622;15630:9;15600:13;:40::i;:::-;15531:109;;;15591:6;15531:109;15506:134;;15674:40;15699:14;15674:9;:20;15684:9;15674:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;15651:9;:20;15661:9;15651:20;;;;;;;;;;;;;;;:63;;;;15749:9;15732:43;;15741:6;15732:43;;;15760:14;15732:43;;;;;;:::i;:::-;;;;;;;;15793:4;15786:11;;;14441:1364;;;;;;:::o;4423:250::-;4481:7;4510:1;4505;:6;4501:47;;4535:1;4528:8;;;;4501:47;4560:9;4576:1;4572;:5;;;;:::i;:::-;4560:17;;4605:1;4600;4596;:5;;;;:::i;:::-;:10;4588:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;4664:1;4657:8;;;4423:250;;;;;:::o;5016:132::-;5074:7;5101:39;5105:1;5108;5101:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;5094:46;;5016:132;;;;:::o;4679:136::-;4737:7;4764:43;4768:1;4771;4764:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4757:50;;4679:136;;;;:::o;1196:115::-;1249:15;1292:10;1277:26;;1196:115;:::o;11733:424::-;11827:4;11834:17;11854:33;11869:6;11877:9;11854:14;:33::i;:::-;:69;;11917:6;11854:69;;;11899:15;;11890:6;:24;;;;:::i;:::-;11854:69;11834:89;;11954:56;11976:9;11954:56;;;;;;;;;;;;;;;;;:9;:17;11964:6;11954:17;;;;;;;;;;;;;;;;:21;;:56;;;;;:::i;:::-;11934:9;:17;11944:6;11934:17;;;;;;;;;;;;;;;:76;;;;12044:32;12069:6;12044:9;:20;12054:9;12044:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;12021:9;:20;12031:9;12021:20;;;;;;;;;;;;;;;:55;;;;12109:9;12092:35;;12101:6;12092:35;;;12120:6;12092:35;;;;;;:::i;:::-;;;;;;;;12145:4;12138:11;;;11733:424;;;;;:::o;10454:171::-;10555:12;;10545:6;:22;;:50;;;;10571:16;:24;10588:6;10571:24;;;;;;;;;;;;;;;;;;;;;;;;;10545:50;10537:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;10454:171;;:::o;11303:204::-;11352:4;11390:11;;;;;;;;;;;11376:25;;:10;:25;;;;:45;;;;;11415:6;;;;;;;;;;;11414:7;11376:45;:69;;;;;11434:11;;;;;;;;;;;11376:69;:123;;;;;11486:13;;11458:9;:24;11476:4;11458:24;;;;;;;;;;;;;;;;:41;;11376:123;11369:130;;11303:204;:::o;12505:1847::-;6801:4;6792:6;;:13;;;;;;;;;;;;;;;;;;12554:27:::1;12584:41;12595:8;;12605:19;;12584:10;:41::i;:::-;:63;;12632:15;;12584:63;;;12628:1;12584:63;12554:93;;12658:23;12684:59;12741:1;12684:52;12727:8;;12684:38;12702:19;12684:13;;:17;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;12658:85;;12754:20;12777:34;12795:15;12777:13;;:17;;:34;;;;:::i;:::-;12754:57;;12824:21;12862:1;12848:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12824:40;;12893:4;12875;12880:1;12875:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12919:4;;;;;;;;;;;12909;12914:1;12909:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;12936:21;12960;12936:45;;12994:6;;;;;;;;;;;:57;;;13066:12;13093:1;13109:4;13136;13156:15;12994:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13195:17;13215:40;13241:13;13215:21;:25;;:40;;;;:::i;:::-;13195:60;;13268:19;13290:40;13303:26;13327:1;13303:19;:23;;:26;;;;:::i;:::-;13290:8;;:12;;:40;;;;:::i;:::-;13268:62;;13351:26;13380:58;13436:1;13380:51;13419:11;13380:34;13394:19;13380:9;:13;;:34;;;;:::i;:::-;:38;;:51;;;;:::i;:::-;:55;;:58;;;;:::i;:::-;13351:87;;13449:26;13478:44;13510:11;13478:27;13492:12;;13478:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;13449:73;;13533:24;13560:42;13590:11;13560:25;13574:10;;13560:9;:13;;:25;;;;:::i;:::-;:29;;:42;;;;:::i;:::-;13533:69;;13613:20;13636:38;13662:11;13636:21;13650:6;;13636:9;:13;;:21;;;;:::i;:::-;:25;;:38;;;;:::i;:::-;13613:61;;13688:15;13716:9;;;;;;;;;;;13708:24;;13740:18;13708:55;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13687:76;;;13798:14;;;;;;;;;;;13790:28;;13826:12;13790:53;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13774:69;;;;;13878:18;;;;;;;;;;;13870:32;;13910:16;13870:61;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13854:77;;;;;13965:5;13952:18;;14004:1;13986:15;:19;13983:362;;;14021:6;;;;;;;;;;;:22;;;14051:18;14097:4;14121:15;14155:1;14175::::0;14195:21:::1;;;;;;;;;;;14235:15;14021:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14285:48;14297:18;14317:15;14285:48;;;;;;;:::i;:::-;;;;;;;;13983:362;12543:1809;;;;;;;;;;;;6819:5:::0;6810:6;;:14;;;;;;;;;;;;;;;;;;12505:1847::o;15811:1042::-;15903:7;15923:15;15941;;15923:33;;15967:22;16020:11;;;;;;;;;;;16007:24;;:9;:24;;;16004:197;;16052:21;16062:9;;;;;;;;;;;16052;:21::i;:::-;16034:39;;;;;:::i;:::-;;;16098:11;;16088:21;;16004:197;;;16141:11;;;;;;;;;;;16131:21;;:6;:21;;;16128:73;;16179:10;;16169:20;;16128:73;16004:197;16211:17;16231:53;16280:3;16269:8;;:14;;;;:::i;:::-;16231:33;16256:7;16231:20;16242:8;;16231:6;:10;;:20;;;;:::i;:::-;:24;;:33;;;;:::i;:::-;:37;;:53;;;;:::i;:::-;16211:73;;16295:18;16316:36;16343:8;;16316:22;16330:7;;16316:9;:13;;:22;;;;:::i;:::-;:26;;:36;;;;:::i;:::-;16295:57;;16363:22;16388:25;16402:10;16388:9;:13;;:25;;;;:::i;:::-;16363:50;;16451:44;16480:14;16451:9;:24;16469:4;16451:24;;;;;;;;;;;;;;;;:28;;:44;;;;:::i;:::-;16424:9;:24;16442:4;16424:24;;;;;;;;;;;;;;;:71;;;;16535:42;16566:10;16535:9;:26;16545:15;;;;;;;;;;;16535:26;;;;;;;;;;;;;;;;:30;;:42;;;;:::i;:::-;16506:9;:26;16516:15;;;;;;;;;;;16506:26;;;;;;;;;;;;;;;:71;;;;16618:4;16593:47;;16602:6;16593:47;;;16625:14;16593:47;;;;;;:::i;:::-;;;;;;;;16677:1;16664:10;:14;16661:144;;;16709:28;16726:10;16709:12;;:16;;:28;;;;:::i;:::-;16694:12;:43;;;;5587:42;16757:34;;16766:6;16757:34;;;16780:10;16757:34;;;;;;:::i;:::-;;;;;;;;16661:144;16824:21;16835:9;16824:6;:10;;:21;;;;:::i;:::-;16817:28;;;;;;;15811:1042;;;;;:::o;4036:181::-;4094:7;4114:9;4130:1;4126;:5;;;;:::i;:::-;4114:17;;4155:1;4150;:6;;4142:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;4208:1;4201:8;;;4036:181;;;;:::o;4821:189::-;4907:7;4939:1;4935;:5;4942:12;4927:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4966:9;4982:1;4978;:5;;;;:::i;:::-;4966:17;;5001:1;4994:8;;;4821:189;;;;;:::o;11515:212::-;11597:4;11634:11;;;;;;;;;;;11621:24;;:9;:24;;;:47;;;;;11659:9;;;;;;;;;;;11649:19;;:6;:19;;;11621:47;:72;;;;;11691:1;11673:20;;:6;:20;;;;11621:72;:98;;;;;11717:1;11697:22;;:9;:22;;;;11621:98;11614:105;;11515:212;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1784:90::-;1818:7;1861:5;1854:13;1847:21;1836:32;;1784:90;;;:::o;1880:109::-;1961:21;1976:5;1961:21;:::i;:::-;1956:3;1949:34;1880:109;;:::o;1995:210::-;2082:4;2120:2;2109:9;2105:18;2097:26;;2133:65;2195:1;2184:9;2180:17;2171:6;2133:65;:::i;:::-;1995:210;;;;:::o;2292:117::-;2401:1;2398;2391:12;2538:126;2575:7;2615:42;2608:5;2604:54;2593:65;;2538:126;;;:::o;2670:96::-;2707:7;2736:24;2754:5;2736:24;:::i;:::-;2725:35;;2670:96;;;:::o;2772:122::-;2845:24;2863:5;2845:24;:::i;:::-;2838:5;2835:35;2825:63;;2884:1;2881;2874:12;2825:63;2772:122;:::o;2900:139::-;2946:5;2984:6;2971:20;2962:29;;3000:33;3027:5;3000:33;:::i;:::-;2900:139;;;;:::o;3045:122::-;3118:24;3136:5;3118:24;:::i;:::-;3111:5;3108:35;3098:63;;3157:1;3154;3147:12;3098:63;3045:122;:::o;3173:139::-;3219:5;3257:6;3244:20;3235:29;;3273:33;3300:5;3273:33;:::i;:::-;3173:139;;;;:::o;3318:474::-;3386:6;3394;3443:2;3431:9;3422:7;3418:23;3414:32;3411:119;;;3449:79;;:::i;:::-;3411:119;3569:1;3594:53;3639:7;3630:6;3619:9;3615:22;3594:53;:::i;:::-;3584:63;;3540:117;3696:2;3722:53;3767:7;3758:6;3747:9;3743:22;3722:53;:::i;:::-;3712:63;;3667:118;3318:474;;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:329::-;4482:6;4531:2;4519:9;4510:7;4506:23;4502:32;4499:119;;;4537:79;;:::i;:::-;4499:119;4657:1;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4628:117;4423:329;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:329::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:118::-;5610:24;5628:5;5610:24;:::i;:::-;5605:3;5598:37;5523:118;;:::o;5647:222::-;5740:4;5778:2;5767:9;5763:18;5755:26;;5791:71;5859:1;5848:9;5844:17;5835:6;5791:71;:::i;:::-;5647:222;;;;:::o;5875:474::-;5943:6;5951;6000:2;5988:9;5979:7;5975:23;5971:32;5968:119;;;6006:79;;:::i;:::-;5968:119;6126:1;6151:53;6196:7;6187:6;6176:9;6172:22;6151:53;:::i;:::-;6141:63;;6097:117;6253:2;6279:53;6324:7;6315:6;6304:9;6300:22;6279:53;:::i;:::-;6269:63;;6224:118;5875:474;;;;;:::o;6355:::-;6423:6;6431;6480:2;6468:9;6459:7;6455:23;6451:32;6448:119;;;6486:79;;:::i;:::-;6448:119;6606:1;6631:53;6676:7;6667:6;6656:9;6652:22;6631:53;:::i;:::-;6621:63;;6577:117;6733:2;6759:53;6804:7;6795:6;6784:9;6780:22;6759:53;:::i;:::-;6749:63;;6704:118;6355:474;;;;;:::o;6835:116::-;6905:21;6920:5;6905:21;:::i;:::-;6898:5;6895:32;6885:60;;6941:1;6938;6931:12;6885:60;6835:116;:::o;6957:133::-;7000:5;7038:6;7025:20;7016:29;;7054:30;7078:5;7054:30;:::i;:::-;6957:133;;;;:::o;7096:468::-;7161:6;7169;7218:2;7206:9;7197:7;7193:23;7189:32;7186:119;;;7224:79;;:::i;:::-;7186:119;7344:1;7369:50;7411:7;7402:6;7391:9;7387:22;7369:50;:::i;:::-;7359:60;;7315:114;7468:2;7494:53;7539:7;7530:6;7519:9;7515:22;7494:53;:::i;:::-;7484:63;;7439:118;7096:468;;;;;:::o;7570:911::-;7665:6;7673;7681;7689;7697;7746:3;7734:9;7725:7;7721:23;7717:33;7714:120;;;7753:79;;:::i;:::-;7714:120;7873:1;7898:53;7943:7;7934:6;7923:9;7919:22;7898:53;:::i;:::-;7888:63;;7844:117;8000:2;8026:53;8071:7;8062:6;8051:9;8047:22;8026:53;:::i;:::-;8016:63;;7971:118;8128:2;8154:53;8199:7;8190:6;8179:9;8175:22;8154:53;:::i;:::-;8144:63;;8099:118;8256:2;8282:53;8327:7;8318:6;8307:9;8303:22;8282:53;:::i;:::-;8272:63;;8227:118;8384:3;8411:53;8456:7;8447:6;8436:9;8432:22;8411:53;:::i;:::-;8401:63;;8355:119;7570:911;;;;;;;;:::o;8487:60::-;8515:3;8536:5;8529:12;;8487:60;;;:::o;8553:142::-;8603:9;8636:53;8654:34;8663:24;8681:5;8663:24;:::i;:::-;8654:34;:::i;:::-;8636:53;:::i;:::-;8623:66;;8553:142;;;:::o;8701:126::-;8751:9;8784:37;8815:5;8784:37;:::i;:::-;8771:50;;8701:126;;;:::o;8833:144::-;8901:9;8934:37;8965:5;8934:37;:::i;:::-;8921:50;;8833:144;;;:::o;8983:167::-;9088:55;9137:5;9088:55;:::i;:::-;9083:3;9076:68;8983:167;;:::o;9156:258::-;9267:4;9305:2;9294:9;9290:18;9282:26;;9318:89;9404:1;9393:9;9389:17;9380:6;9318:89;:::i;:::-;9156:258;;;;:::o;9420:182::-;9560:34;9556:1;9548:6;9544:14;9537:58;9420:182;:::o;9608:366::-;9750:3;9771:67;9835:2;9830:3;9771:67;:::i;:::-;9764:74;;9847:93;9936:3;9847:93;:::i;:::-;9965:2;9960:3;9956:12;9949:19;;9608:366;;;:::o;9980:419::-;10146:4;10184:2;10173:9;10169:18;10161:26;;10233:9;10227:4;10223:20;10219:1;10208:9;10204:17;10197:47;10261:131;10387:4;10261:131;:::i;:::-;10253:139;;9980:419;;;:::o;10405:180::-;10453:77;10450:1;10443:88;10550:4;10547:1;10540:15;10574:4;10571:1;10564:15;10591:410;10631:7;10654:20;10672:1;10654:20;:::i;:::-;10649:25;;10688:20;10706:1;10688:20;:::i;:::-;10683:25;;10743:1;10740;10736:9;10765:30;10783:11;10765:30;:::i;:::-;10754:41;;10944:1;10935:7;10931:15;10928:1;10925:22;10905:1;10898:9;10878:83;10855:139;;10974:18;;:::i;:::-;10855:139;10639:362;10591:410;;;;:::o;11007:180::-;11055:77;11052:1;11045:88;11152:4;11149:1;11142:15;11176:4;11173:1;11166:15;11193:185;11233:1;11250:20;11268:1;11250:20;:::i;:::-;11245:25;;11284:20;11302:1;11284:20;:::i;:::-;11279:25;;11323:1;11313:35;;11328:18;;:::i;:::-;11313:35;11370:1;11367;11363:9;11358:14;;11193:185;;;;:::o;11384:143::-;11441:5;11472:6;11466:13;11457:22;;11488:33;11515:5;11488:33;:::i;:::-;11384:143;;;;:::o;11533:351::-;11603:6;11652:2;11640:9;11631:7;11627:23;11623:32;11620:119;;;11658:79;;:::i;:::-;11620:119;11778:1;11803:64;11859:7;11850:6;11839:9;11835:22;11803:64;:::i;:::-;11793:74;;11749:128;11533:351;;;;:::o;11890:332::-;12011:4;12049:2;12038:9;12034:18;12026:26;;12062:71;12130:1;12119:9;12115:17;12106:6;12062:71;:::i;:::-;12143:72;12211:2;12200:9;12196:18;12187:6;12143:72;:::i;:::-;11890:332;;;;;:::o;12228:137::-;12282:5;12313:6;12307:13;12298:22;;12329:30;12353:5;12329:30;:::i;:::-;12228:137;;;;:::o;12371:345::-;12438:6;12487:2;12475:9;12466:7;12462:23;12458:32;12455:119;;;12493:79;;:::i;:::-;12455:119;12613:1;12638:61;12691:7;12682:6;12671:9;12667:22;12638:61;:::i;:::-;12628:71;;12584:125;12371:345;;;;:::o;12722:320::-;12837:4;12875:2;12864:9;12860:18;12852:26;;12888:71;12956:1;12945:9;12941:17;12932:6;12888:71;:::i;:::-;12969:66;13031:2;13020:9;13016:18;13007:6;12969:66;:::i;:::-;12722:320;;;;;:::o;13048:225::-;13188:34;13184:1;13176:6;13172:14;13165:58;13257:8;13252:2;13244:6;13240:15;13233:33;13048:225;:::o;13279:366::-;13421:3;13442:67;13506:2;13501:3;13442:67;:::i;:::-;13435:74;;13518:93;13607:3;13518:93;:::i;:::-;13636:2;13631:3;13627:12;13620:19;;13279:366;;;:::o;13651:419::-;13817:4;13855:2;13844:9;13840:18;13832:26;;13904:9;13898:4;13894:20;13890:1;13879:9;13875:17;13868:47;13932:131;14058:4;13932:131;:::i;:::-;13924:139;;13651:419;;;:::o;14076:553::-;14253:4;14291:3;14280:9;14276:19;14268:27;;14305:71;14373:1;14362:9;14358:17;14349:6;14305:71;:::i;:::-;14386:72;14454:2;14443:9;14439:18;14430:6;14386:72;:::i;:::-;14468;14536:2;14525:9;14521:18;14512:6;14468:72;:::i;:::-;14550;14618:2;14607:9;14603:18;14594:6;14550:72;:::i;:::-;14076:553;;;;;;;:::o;14635:194::-;14675:4;14695:20;14713:1;14695:20;:::i;:::-;14690:25;;14729:20;14747:1;14729:20;:::i;:::-;14724:25;;14773:1;14770;14766:9;14758:17;;14797:1;14791:4;14788:11;14785:37;;;14802:18;;:::i;:::-;14785:37;14635:194;;;;:::o;14835:170::-;14975:22;14971:1;14963:6;14959:14;14952:46;14835:170;:::o;15011:366::-;15153:3;15174:67;15238:2;15233:3;15174:67;:::i;:::-;15167:74;;15250:93;15339:3;15250:93;:::i;:::-;15368:2;15363:3;15359:12;15352:19;;15011:366;;;:::o;15383:419::-;15549:4;15587:2;15576:9;15572:18;15564:26;;15636:9;15630:4;15626:20;15622:1;15611:9;15607:17;15600:47;15664:131;15790:4;15664:131;:::i;:::-;15656:139;;15383:419;;;:::o;15808:191::-;15848:3;15867:20;15885:1;15867:20;:::i;:::-;15862:25;;15901:20;15919:1;15901:20;:::i;:::-;15896:25;;15944:1;15941;15937:9;15930:16;;15965:3;15962:1;15959:10;15956:36;;;15972:18;;:::i;:::-;15956:36;15808:191;;;;:::o;16005:249::-;16145:34;16141:1;16133:6;16129:14;16122:58;16214:32;16209:2;16201:6;16197:15;16190:57;16005:249;:::o;16260:366::-;16402:3;16423:67;16487:2;16482:3;16423:67;:::i;:::-;16416:74;;16499:93;16588:3;16499:93;:::i;:::-;16617:2;16612:3;16608:12;16601:19;;16260:366;;;:::o;16632:419::-;16798:4;16836:2;16825:9;16821:18;16813:26;;16885:9;16879:4;16875:20;16871:1;16860:9;16856:17;16849:47;16913:131;17039:4;16913:131;:::i;:::-;16905:139;;16632:419;;;:::o;17057:220::-;17197:34;17193:1;17185:6;17181:14;17174:58;17266:3;17261:2;17253:6;17249:15;17242:28;17057:220;:::o;17283:366::-;17425:3;17446:67;17510:2;17505:3;17446:67;:::i;:::-;17439:74;;17522:93;17611:3;17522:93;:::i;:::-;17640:2;17635:3;17631:12;17624:19;;17283:366;;;:::o;17655:419::-;17821:4;17859:2;17848:9;17844:18;17836:26;;17908:9;17902:4;17898:20;17894:1;17883:9;17879:17;17872:47;17936:131;18062:4;17936:131;:::i;:::-;17928:139;;17655:419;;;:::o;18080:167::-;18220:19;18216:1;18208:6;18204:14;18197:43;18080:167;:::o;18253:366::-;18395:3;18416:67;18480:2;18475:3;18416:67;:::i;:::-;18409:74;;18492:93;18581:3;18492:93;:::i;:::-;18610:2;18605:3;18601:12;18594:19;;18253:366;;;:::o;18625:419::-;18791:4;18829:2;18818:9;18814:18;18806:26;;18878:9;18872:4;18868:20;18864:1;18853:9;18849:17;18842:47;18906:131;19032:4;18906:131;:::i;:::-;18898:139;;18625:419;;;:::o;19050:180::-;19098:77;19095:1;19088:88;19195:4;19192:1;19185:15;19219:4;19216:1;19209:15;19236:180;19284:77;19281:1;19274:88;19381:4;19378:1;19371:15;19405:4;19402:1;19395:15;19422:85;19467:7;19496:5;19485:16;;19422:85;;;:::o;19513:158::-;19571:9;19604:61;19622:42;19631:32;19657:5;19631:32;:::i;:::-;19622:42;:::i;:::-;19604:61;:::i;:::-;19591:74;;19513:158;;;:::o;19677:147::-;19772:45;19811:5;19772:45;:::i;:::-;19767:3;19760:58;19677:147;;:::o;19830:114::-;19897:6;19931:5;19925:12;19915:22;;19830:114;;;:::o;19950:184::-;20049:11;20083:6;20078:3;20071:19;20123:4;20118:3;20114:14;20099:29;;19950:184;;;;:::o;20140:132::-;20207:4;20230:3;20222:11;;20260:4;20255:3;20251:14;20243:22;;20140:132;;;:::o;20278:108::-;20355:24;20373:5;20355:24;:::i;:::-;20350:3;20343:37;20278:108;;:::o;20392:179::-;20461:10;20482:46;20524:3;20516:6;20482:46;:::i;:::-;20560:4;20555:3;20551:14;20537:28;;20392:179;;;;:::o;20577:113::-;20647:4;20679;20674:3;20670:14;20662:22;;20577:113;;;:::o;20726:732::-;20845:3;20874:54;20922:5;20874:54;:::i;:::-;20944:86;21023:6;21018:3;20944:86;:::i;:::-;20937:93;;21054:56;21104:5;21054:56;:::i;:::-;21133:7;21164:1;21149:284;21174:6;21171:1;21168:13;21149:284;;;21250:6;21244:13;21277:63;21336:3;21321:13;21277:63;:::i;:::-;21270:70;;21363:60;21416:6;21363:60;:::i;:::-;21353:70;;21209:224;21196:1;21193;21189:9;21184:14;;21149:284;;;21153:14;21449:3;21442:10;;20850:608;;;20726:732;;;;:::o;21464:831::-;21727:4;21765:3;21754:9;21750:19;21742:27;;21779:71;21847:1;21836:9;21832:17;21823:6;21779:71;:::i;:::-;21860:80;21936:2;21925:9;21921:18;21912:6;21860:80;:::i;:::-;21987:9;21981:4;21977:20;21972:2;21961:9;21957:18;21950:48;22015:108;22118:4;22109:6;22015:108;:::i;:::-;22007:116;;22133:72;22201:2;22190:9;22186:18;22177:6;22133:72;:::i;:::-;22215:73;22283:3;22272:9;22268:19;22259:6;22215:73;:::i;:::-;21464:831;;;;;;;;:::o;22301:147::-;22402:11;22439:3;22424:18;;22301:147;;;;:::o;22454:114::-;;:::o;22574:398::-;22733:3;22754:83;22835:1;22830:3;22754:83;:::i;:::-;22747:90;;22846:93;22935:3;22846:93;:::i;:::-;22964:1;22959:3;22955:11;22948:18;;22574:398;;;:::o;22978:379::-;23162:3;23184:147;23327:3;23184:147;:::i;:::-;23177:154;;23348:3;23341:10;;22978:379;;;:::o;23363:807::-;23612:4;23650:3;23639:9;23635:19;23627:27;;23664:71;23732:1;23721:9;23717:17;23708:6;23664:71;:::i;:::-;23745:72;23813:2;23802:9;23798:18;23789:6;23745:72;:::i;:::-;23827:80;23903:2;23892:9;23888:18;23879:6;23827:80;:::i;:::-;23917;23993:2;23982:9;23978:18;23969:6;23917:80;:::i;:::-;24007:73;24075:3;24064:9;24060:19;24051:6;24007:73;:::i;:::-;24090;24158:3;24147:9;24143:19;24134:6;24090:73;:::i;:::-;23363:807;;;;;;;;;:::o;24176:663::-;24264:6;24272;24280;24329:2;24317:9;24308:7;24304:23;24300:32;24297:119;;;24335:79;;:::i;:::-;24297:119;24455:1;24480:64;24536:7;24527:6;24516:9;24512:22;24480:64;:::i;:::-;24470:74;;24426:128;24593:2;24619:64;24675:7;24666:6;24655:9;24651:22;24619:64;:::i;:::-;24609:74;;24564:129;24732:2;24758:64;24814:7;24805:6;24794:9;24790:22;24758:64;:::i;:::-;24748:74;;24703:129;24176:663;;;;;:::o;24845:332::-;24966:4;25004:2;24993:9;24989:18;24981:26;;25017:71;25085:1;25074:9;25070:17;25061:6;25017:71;:::i;:::-;25098:72;25166:2;25155:9;25151:18;25142:6;25098:72;:::i;:::-;24845:332;;;;;:::o;25183:177::-;25323:29;25319:1;25311:6;25307:14;25300:53;25183:177;:::o;25366:366::-;25508:3;25529:67;25593:2;25588:3;25529:67;:::i;:::-;25522:74;;25605:93;25694:3;25605:93;:::i;:::-;25723:2;25718:3;25714:12;25707:19;;25366:366;;;:::o;25738:419::-;25904:4;25942:2;25931:9;25927:18;25919:26;;25991:9;25985:4;25981:20;25977:1;25966:9;25962:17;25955:47;26019:131;26145:4;26019:131;:::i;:::-;26011:139;;25738:419;;;:::o

Swarm Source

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