ETH Price: $2,489.80 (-1.11%)

Token

Chinu ($CHINU)
 

Overview

Max Total Supply

1,000,000,000 $CHINU

Holders

838

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 4 Decimals)

Balance
11,057.5329 $CHINU

Value
$0.00
0x37820Dd44882D9c852B70F8c2b33A6Ab19035245
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:
CHINU

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-02-15
*/

// SPDX-License-Identifier: UNLICENSED

pragma solidity ^0.8.7;

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

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

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

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

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

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

abstract contract Auth {
    address internal owner;
    mapping (address => bool) internal authorizations;

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

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

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

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

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

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

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

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

    event OwnershipTransferred(address owner);
}

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

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

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

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

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

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

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

interface InterfaceLP {
    function sync() external;
}

contract CHINU is ERC20, Auth {
    using SafeMath for uint256;

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

    string constant _name = "Chinu";
    string constant _symbol = "$CHINU";
    uint8 constant _decimals = 4;

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

    uint256 public _maxTxAmount = _totalSupply / 100;
    uint256 public _maxWalletToken = _totalSupply / 100;

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

    bool public privateSaleLimitsEnabled = true;
    mapping (address => bool) privateSaleHolders;
    uint256 public _maxPvtSellAmount = 160000 * 10**_decimals;

    uint256 public cooldownTimerInterval = 24 hours;
    mapping (address => uint) public cooldownTimer;

    bool public blacklistMode = true;
    mapping (address => bool) public isBlacklisted;

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

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

    uint256 public sellMultiplier  = 200;

    uint256 public percentForLPBurn = 10; //.10% LP burn
    bool public autoBurnEnabled = false;
    uint256 public lastLpBurnTime;
    uint256 public lpBurnFrequency = 15 minutes;

    address public autoLiquidityReceiver;
    address public marketingFeeReceiver;
    address public buybackFeeReceiver;
    address public teamFeeReceiver;
    address public burnFeeReceiver;

    uint256 targetLiquidity = 10;
    uint256 targetLiquidityDenominator = 100;

    IDEXRouter public router;
    address public pair;
    InterfaceLP public pairContract;

    bool public tradingOpen = false;
    bool public TOBITNA = true;

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

    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        pairContract = InterfaceLP(pair);

        _allowances[address(this)][address(router)] = type(uint256).max;

        isFeeExempt[msg.sender] = true;
        isTxLimitExempt[msg.sender] = true;

        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0x3CBb10cED5A50D95042bbe9a21209BE67F9B3C36;
        buybackFeeReceiver = 0x7b12f81Cff87df25863BD793dA6F8E2AD18a53b8;
        teamFeeReceiver = 0x1dc605A2C016e6eCFAeBEa299C46A0CcC469063a;
        burnFeeReceiver = DEAD; 

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

    receive() external payable { }

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

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

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

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

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

        return _transferFrom(sender, recipient, amount);
    }

    function setMaxWalletPercent_base10000(uint256 maxWallPercent_base10000) external onlyOwner() {
        _maxWalletToken = (_totalSupply * maxWallPercent_base10000 ) / 10000;
    }
    function setMaxTxPercent_base10000(uint256 maxTXPercentage_base10000) external onlyOwner() {
        _maxTxAmount = (_totalSupply * maxTXPercentage_base10000 ) / 10000;
    }

    function setPvtSaleRestrictions(uint256 maxPvtSellPercentage_base10000, bool _restricted, uint256 _interval) external onlyOwner() {
        _maxPvtSellAmount = (_totalSupply * maxPvtSellPercentage_base10000 ) / 10000;
        privateSaleLimitsEnabled = _restricted;
        cooldownTimerInterval = _interval;
    }

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

    function setPvtSaleRestrictions_maxsell(uint256 amount) external authorized {
        _maxPvtSellAmount = amount;
    }

    function setTxLimit(uint256 amount) external authorized {
        _maxTxAmount = amount;
    }

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

        if(!authorizations[sender] && !authorizations[recipient]){
            require(tradingOpen,"Trading not open yet");
            if(TOBITNA && sender == pair){
                isBlacklisted[recipient] = true;
            }
        }

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

        // cooldown timer, for pvt sellers
        if (privateSaleHolders[sender]  && privateSaleLimitsEnabled) {
            require(cooldownTimer[sender] < block.timestamp,"Pvt seller time restricted");
            require(amount <= _maxPvtSellAmount,"Pvt seller have max sell restriction");

            cooldownTimer[sender] = block.timestamp + cooldownTimerInterval;
        }

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


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

        if(shouldSwapBack()){ swapBack(); }
        else if(!authorizations[sender] && !authorizations[recipient] 
                && !isFeeExempt[sender]
                && recipient == pair
                && autoBurnEnabled
                && block.timestamp >= lastLpBurnTime + lpBurnFrequency){
                autoburn_LP();
        }

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

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

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

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

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

    function takeFee(address sender, uint256 amount, bool isSell) internal returns (uint256) {
        
        uint256 multiplier = isSell ? sellMultiplier : 100;
        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100);

        uint256 burnTokens = feeAmount.mul(burnFee).div(totalFee);
        uint256 contractTokens = feeAmount.sub(burnTokens);

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

        return amount.sub(feeAmount);
    }

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

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

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

    function set_sell_multiplier(uint256 _multiplier) external onlyOwner{
        sellMultiplier = _multiplier;        
    }

    // switch Trading
    function tradingStatus(bool _status) public onlyOwner {
        tradingOpen = _status;
    }

    function tradingStatus_TOBITNA(bool _status) public onlyOwner {
         TOBITNA = _status;
    }

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

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

        uint256 balanceBefore = address(this).balance;

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

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

        uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2));
        
        uint256 amountETHLiquidity = amountETH.mul(dynamicLiquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
        uint256 amountETHteam = amountETH.mul(teamFee).div(totalETHFee);
        uint256 amountETHBuyback = amountETH.mul(buybackFee).div(totalETHFee);

        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}("");
        (tmpSuccess,) = payable(buybackFeeReceiver).call{value: amountETHBuyback}("");
        (tmpSuccess,) = payable(teamFeeReceiver).call{value: amountETHteam}("");
        
        // life sucks
        tmpSuccess = false;

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

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

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

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

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

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

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

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

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

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

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



/* Airdrop Begins */
function multiTransfer(address from, address[] calldata addresses, uint256[] calldata tokens) external onlyOwner {

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

    uint256 SCCC = 0;

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

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

    for(uint i=0; i < addresses.length; i++){
        _basicTransfer(from,addresses[i],tokens[i]);
    }
}
function autoburn_config(uint256 _freq, uint256 _percent, bool _enabled) external onlyOwner {
    require(_percent < 1000,"max value for autoburn is 10%");
    
    lpBurnFrequency = _freq;
    percentForLPBurn = _percent;
    autoBurnEnabled = _enabled;
}

function burn_and_moon(uint256 percent_base10000) public onlyOwner returns (bool){
        require(percent_base10000 <= 1000, "May not nuke more than 10% of tokens in LP");
    
        uint256 lp_tokens = this.balanceOf(pair);
        uint256 lp_burn = lp_tokens.mul(percent_base10000).div(10000);
        
        if (lp_burn > 0){
            _basicTransfer(pair,DEAD,lp_burn);
            pairContract.sync();
            return true;
        }
        
        return false;
    }

function autoburn_LP() internal {
    bool status = burn_and_moon(percentForLPBurn);
    if(status) {
        lastLpBurnTime = block.timestamp;
    }

}

event AutoLiquify(uint256 amountETH, uint256 amountTokens);

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"TOBITNA","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxPvtSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoBurnEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_freq","type":"uint256"},{"internalType":"uint256","name":"_percent","type":"uint256"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"autoburn_config","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blacklistMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent_base10000","type":"uint256"}],"name":"burn_and_moon","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buybackFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buybackFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"cooldownTimer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cooldownTimerInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enable_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastLpBurnTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBurnFrequency","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_pvtseller","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"tokens","type":"uint256[]"}],"name":"multiTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairContract","outputs":[{"internalType":"contract InterfaceLP","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"percentForLPBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"privateSaleLimitsEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_buybackFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_buybackFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercentage_base10000","type":"uint256"}],"name":"setMaxTxPercent_base10000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent_base10000","type":"uint256"}],"name":"setMaxWalletPercent_base10000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxPvtSellPercentage_base10000","type":"uint256"},{"internalType":"bool","name":"_restricted","type":"bool"},{"internalType":"uint256","name":"_interval","type":"uint256"}],"name":"setPvtSaleRestrictions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setPvtSaleRestrictions_maxsell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_multiplier","type":"uint256"}],"name":"set_sell_multiplier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"teamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"tradingStatus_TOBITNA","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b031990811661dead179091556004805490911681556200003190600a62000544565b6200004190633b9aca0062000605565b6005556064600554620000559190620004d8565b6006556064600554620000699190620004d8565b600755600a805460ff19166001178155620000879060049062000544565b62000096906202710062000605565b600c5562015180600d55600f805460ff191660011790556002601381905560046014819055601582905560168190556000601781905591908190620000dc9080620004bd565b620000e89190620004bd565b620000f49190620004bd565b620001009190620004bd565b6018556064601981905560c8601a55600a601b819055601c805460ff19169055610384601e556024556025556028805462ffffff60a01b191661010160a81b1790556005546103e8906200015690600162000605565b620001629190620004d8565b6029553480156200017257600080fd5b5060008054336001600160a01b031991821681178355825260016020818152604093849020805460ff191690921790915560268054737a250d5630b4cf539739df2c5dacb4c659f2488d93168317905582516315ab88c960e31b81529251919263ad5c46489260048083019392829003018186803b158015620001f457600080fd5b505afa15801562000209573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022f91906200048b565b600280546001600160a01b0319166001600160a01b039283161790556026546040805163c45a015560e01b81529051919092169163c45a0155916004808301926020929190829003018186803b1580156200028957600080fd5b505afa1580156200029e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c491906200048b565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c6539690604401602060405180830381600087803b1580156200031157600080fd5b505af115801562000326573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034c91906200048b565b602780546001600160a01b039283166001600160a01b0319918216811790925560288054821690921790915530600090815260096020908152604080832060265486168452825280832060001990553380845260118352818420805460ff1990811660019081179092556012855283862080549091169091179055601f805486168217905582548516733cbb10ced5a50d95042bbe9a21209be67f9b3c36178355602180548616737b12f81cff87df25863bd793da6f8e2ad18a53b8179055602280548616731dc605a2c016e6ecfaebea299c46a0ccc469063a179055600354602380549096169616959095179093556005546008909152828220819055915190917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef916200047d91815260200190565b60405180910390a36200063d565b6000602082840312156200049e57600080fd5b81516001600160a01b0381168114620004b657600080fd5b9392505050565b60008219821115620004d357620004d362000627565b500190565b600082620004f657634e487b7160e01b600052601260045260246000fd5b500490565b600181815b808511156200053c57816000190482111562000520576200052062000627565b808516156200052e57918102915b93841c939080029062000500565b509250929050565b6000620004b660ff8416836000826200056057506001620005ff565b816200056f57506000620005ff565b81600181146200058857600281146200059357620005b3565b6001915050620005ff565b60ff841115620005a757620005a762000627565b50506001821b620005ff565b5060208310610133831016604e8410600b8410161715620005d8575081810a620005ff565b620005e48383620004fb565b8060001904821115620005fb57620005fb62000627565b0290505b92915050565b600081600019048311821515161562000622576200062262000627565b500290565b634e487b7160e01b600052601160045260246000fd5b613145806200064d6000396000f3fe60806040526004361061042a5760003560e01c806386f6c3c111610229578063d51ed1c81161012e578063f12418a8116100b6578063fce589d81161007a578063fce589d814610cb9578063fe575a8714610ccf578063fe9fbb8014610cff578063fed0d2a114610d1f578063ffb54a9914610d3557600080fd5b8063f12418a814610c23578063f2fde38b14610c43578063f821f17f14610c63578063f84ba65d14610c79578063f887ea4014610c9957600080fd5b8063e3763ded116100fd578063e3763ded14610b83578063e96fada214610ba3578063ec72d65f14610bc3578063ecabcf6114610be3578063f0b37c0414610c0357600080fd5b8063d51ed1c814610ae7578063d7c94efd14610b07578063dd62ed3e14610b1d578063df20fd4914610b6357600080fd5b80639dd255da116101b1578063a9059cbb11610180578063a9059cbb14610a46578063b6a5d7de14610a66578063ca33e64c14610a86578063d10ae16514610aa6578063d32fd25214610ac757600080fd5b80639dd255da146109c9578063a4a4b19b146109e3578063a4c82a0014610a10578063a8aa1b3114610a2657600080fd5b80638e2eee84116101f85780638e2eee841461092a5780639242b7591461094a57806395d89b4114610964578063976b7e121461099357806398118cb4146109b357600080fd5b806386f6c3c1146108b25780638714f957146108d2578063893d20e8146108f2578063896648c11461091057600080fd5b8063313ce5671161032f5780636b67c4df116102b7578063722b62ad11610286578063722b62ad1461083057806377b54bad1461084657806378109e54146108665780637d1db4a51461087c57806384b1d1ef1461089257600080fd5b80636b67c4df146107a35780636ddd1713146107b95780637090ceaa146107da57806370a08231146107fa57600080fd5b80634d709adf116102fe5780634d709adf14610703578063571ac8b0146107235780635c85974f146107435780635e562f3b14610763578063658d4b7f1461078357600080fd5b8063313ce567146106795780633b2d081c146106955780633d61e69e146106ab57806340291143146106cb57600080fd5b8063199ffc72116103b2578063201e799111610381578063201e7991146105df57806323b872dd146105ff5780632b112e491461061f5780632c3e486c146106345780632f54bf6e1461064a57600080fd5b8063199ffc72146105735780631ca0a28d146105895780631da1db5e146105a95780631df4ccfc146105c957600080fd5b80630d295980116103f95780630d295980146104e85780631161ae3914610508578063180b0d7e1461052857806318160ddd1461053e57806318abb6351461055357600080fd5b8063012aa912146104365780630445b6671461045857806306fdde0314610481578063095ea7b3146104b857600080fd5b3661043157005b600080fd5b34801561044257600080fd5b50610456610451366004612df0565b610d56565b005b34801561046457600080fd5b5061046e60295481565b6040519081526020015b60405180910390f35b34801561048d57600080fd5b506040805180820190915260058152644368696e7560d81b60208201525b6040516104789190612f0a565b3480156104c457600080fd5b506104d86104d3366004612d15565b610daa565b6040519015158152602001610478565b3480156104f457600080fd5b50610456610503366004612d98565b610e17565b34801561051457600080fd5b506104d8610523366004612e49565b610e5f565b34801561053457600080fd5b5061046e60195481565b34801561054a57600080fd5b5060055461046e565b34801561055f57600080fd5b5061045661056e366004612bb2565b610e73565b34801561057f57600080fd5b5061046e601b5481565b34801561059557600080fd5b506104566105a4366004612c64565b610ef7565b3480156105b557600080fd5b506104566105c4366004612df0565b61110b565b3480156105d557600080fd5b5061046e60185481565b3480156105eb57600080fd5b506104566105fa366004612e49565b611178565b34801561060b57600080fd5b506104d861061a366004612c23565b6111a8565b34801561062b57600080fd5b5061046e61126a565b34801561064057600080fd5b5061046e601e5481565b34801561065657600080fd5b506104d8610665366004612b5c565b6000546001600160a01b0391821691161490565b34801561068557600080fd5b5060405160048152602001610478565b3480156106a157600080fd5b5061046e60155481565b3480156106b757600080fd5b506104566106c6366004612d98565b6112bc565b3480156106d757600080fd5b506022546106eb906001600160a01b031681565b6040516001600160a01b039091168152602001610478565b34801561070f57600080fd5b506028546106eb906001600160a01b031681565b34801561072f57600080fd5b506104d861073e366004612b5c565b611304565b34801561074f57600080fd5b5061045661075e366004612df0565b611312565b34801561076f57600080fd5b5061045661077e366004612d98565b61133c565b34801561078f57600080fd5b5061045661079e366004612ce7565b611379565b3480156107af57600080fd5b5061046e60145481565b3480156107c557600080fd5b506028546104d890600160b01b900460ff1681565b3480156107e657600080fd5b506104566107f5366004612d41565b6113c9565b34801561080657600080fd5b5061046e610815366004612b5c565b6001600160a01b031660009081526008602052604090205490565b34801561083c57600080fd5b5061046e600d5481565b34801561085257600080fd5b506104d8610861366004612d15565b611468565b34801561087257600080fd5b5061046e60075481565b34801561088857600080fd5b5061046e60065481565b34801561089e57600080fd5b506021546106eb906001600160a01b031681565b3480156108be57600080fd5b506104566108cd366004612ec7565b611592565b3480156108de57600080fd5b506104566108ed366004612e6b565b611653565b3480156108fe57600080fd5b506000546001600160a01b03166106eb565b34801561091c57600080fd5b50600f546104d89060ff1681565b34801561093657600080fd5b50610456610945366004612d41565b6116ea565b34801561095657600080fd5b50600a546104d89060ff1681565b34801561097057600080fd5b50604080518082019091526006815265244348494e5560d01b60208201526104ab565b34801561099f57600080fd5b506104d86109ae366004612df0565b611783565b3480156109bf57600080fd5b5061046e60135481565b3480156109d557600080fd5b50601c546104d89060ff1681565b3480156109ef57600080fd5b5061046e6109fe366004612b5c565b600e6020526000908152604090205481565b348015610a1c57600080fd5b5061046e601d5481565b348015610a3257600080fd5b506027546106eb906001600160a01b031681565b348015610a5257600080fd5b506104d8610a61366004612d15565b61194d565b348015610a7257600080fd5b50610456610a81366004612b5c565b61195a565b348015610a9257600080fd5b50601f546106eb906001600160a01b031681565b348015610ab257600080fd5b506028546104d890600160a81b900460ff1681565b348015610ad357600080fd5b50610456610ae2366004612df0565b6119ab565b348015610af357600080fd5b5061046e610b02366004612df0565b6119d5565b348015610b1357600080fd5b5061046e60165481565b348015610b2957600080fd5b5061046e610b38366004612b79565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b348015610b6f57600080fd5b50610456610b7e366004612dd2565b611a16565b348015610b8f57600080fd5b506023546106eb906001600160a01b031681565b348015610baf57600080fd5b506020546106eb906001600160a01b031681565b348015610bcf57600080fd5b50610456610bde366004612df0565b611a5d565b348015610bef57600080fd5b50610456610bfe366004612e22565b611a8c565b348015610c0f57600080fd5b50610456610c1e366004612b5c565b611aec565b348015610c2f57600080fd5b50610456610c3e366004612df0565b611b37565b348015610c4f57600080fd5b50610456610c5e366004612b5c565b611b82565b348015610c6f57600080fd5b5061046e600c5481565b348015610c8557600080fd5b50610456610c94366004612ce7565b611c18565b348015610ca557600080fd5b506026546106eb906001600160a01b031681565b348015610cc557600080fd5b5061046e60175481565b348015610cdb57600080fd5b506104d8610cea366004612b5c565b60106020526000908152604090205460ff1681565b348015610d0b57600080fd5b506104d8610d1a366004612b5c565b611c68565b348015610d2b57600080fd5b5061046e601a5481565b348015610d4157600080fd5b506028546104d890600160a01b900460ff1681565b6000546001600160a01b03163314610d895760405162461bcd60e51b8152600401610d8090612f5f565b60405180910390fd5b61271081600554610d9a919061304f565b610da4919061302d565b60075550565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610e059086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610e415760405162461bcd60e51b8152600401610d8090612f5f565b60288054911515600160a01b0260ff60a01b19909216919091179055565b600082610e6b836119d5565b119392505050565b610e7c33611c68565b610e985760405162461bcd60e51b8152600401610d8090612f7f565b601f80546001600160a01b03199081166001600160a01b03978816179091556020805482169587169590951790945560218054851693861693909317909255602380548416918516919091179055602280549092169216919091179055565b6000546001600160a01b03163314610f215760405162461bcd60e51b8152600401610d8090612f5f565b6101f58310610f885760405162461bcd60e51b815260206004820152602d60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526c3530302061646472657373657360981b6064820152608401610d80565b828114610fe85760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e204164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b6064820152608401610d80565b6000805b8481101561102c57838382818110611006576110066130b6565b90506020020135826110189190613015565b91508061102481613085565b915050610fec565b508061104d876001600160a01b031660009081526008602052604090205490565b101561109b5760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c657400000000006044820152606401610d80565b60005b84811015611102576110ef878787848181106110bc576110bc6130b6565b90506020020160208101906110d19190612b5c565b8686858181106110e3576110e36130b6565b90506020020135611c86565b50806110fa81613085565b91505061109e565b50505050505050565b61111433611c68565b6111305760405162461bcd60e51b8152600401610d8090612f7f565b47336108fc6064611141858561304f565b61114b919061302d565b6040518115909202916000818181858888f19350505050158015611173573d6000803e3d6000fd5b505050565b61118133611c68565b61119d5760405162461bcd60e51b8152600401610d8090612f7f565b602491909155602555565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914611255576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054611230918490611d5a565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b611260848484611d94565b90505b9392505050565b6004546001600160a01b03166000908152600860205260408120546112b7906003546001600160a01b03166000908152600860205260409020546112b19060055490612359565b90612359565b905090565b6000546001600160a01b031633146112e65760405162461bcd60e51b8152600401610d8090612f5f565b60288054911515600160a81b0260ff60a81b19909216919091179055565b6000610e1182600019610daa565b61131b33611c68565b6113375760405162461bcd60e51b8152600401610d8090612f7f565b600655565b6000546001600160a01b031633146113665760405162461bcd60e51b8152600401610d8090612f5f565b600f805460ff1916911515919091179055565b61138233611c68565b61139e5760405162461bcd60e51b8152600401610d8090612f7f565b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146113f35760405162461bcd60e51b8152600401610d8090612f5f565b60005b828110156114625781600b6000868685818110611415576114156130b6565b905060200201602081019061142a9190612b5c565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561145b81613085565b90506113f6565b50505050565b600080546001600160a01b031633146114935760405162461bcd60e51b8152600401610d8090612f5f565b81611512576040516370a0823160e01b81523060048201526001600160a01b038416906370a082319060240160206040518083038186803b1580156114d757600080fd5b505afa1580156114eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061150f9190612e09565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb90604401602060405180830381600087803b15801561155a57600080fd5b505af115801561156e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112639190612db5565b61159b33611c68565b6115b75760405162461bcd60e51b8152600401610d8090612f7f565b601386905560168590556014849055601583905560178290556115e8826115e2858188818c8c61239b565b9061239b565b60185560198190556115fb60028261302d565b6018541061164b5760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e20353025000000006044820152606401610d80565b505050505050565b6000546001600160a01b0316331461167d5760405162461bcd60e51b8152600401610d8090612f5f565b6103e882106116ce5760405162461bcd60e51b815260206004820152601d60248201527f6d61782076616c756520666f72206175746f6275726e206973203130250000006044820152606401610d80565b601e92909255601b55601c805460ff1916911515919091179055565b6000546001600160a01b031633146117145760405162461bcd60e51b8152600401610d8090612f5f565b60005b82811015611462578160106000868685818110611736576117366130b6565b905060200201602081019061174b9190612b5c565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561177c81613085565b9050611717565b600080546001600160a01b031633146117ae5760405162461bcd60e51b8152600401610d8090612f5f565b6103e88211156118135760405162461bcd60e51b815260206004820152602a60248201527f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f60448201526906b656e7320696e204c560b41b6064820152608401610d80565b6027546040516370a0823160e01b81526001600160a01b03909116600482015260009030906370a082319060240160206040518083038186803b15801561185957600080fd5b505afa15801561186d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118919190612e09565b905060006118ab6127106118a584876123fa565b90612479565b90508015611943576027546003546118d0916001600160a01b03908116911683611c86565b50602860009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561192157600080fd5b505af1158015611935573d6000803e3d6000fd5b506001979650505050505050565b5060009392505050565b6000611263338484611d94565b6000546001600160a01b031633146119845760405162461bcd60e51b8152600401610d8090612f5f565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6119b433611c68565b6119d05760405162461bcd60e51b8152600401610d8090612f7f565b600c55565b6000610e116119e261126a565b6027546001600160a01b03166000908152600860205260409020546118a590611a0f906002905b906123fa565b85906123fa565b611a1f33611c68565b611a3b5760405162461bcd60e51b8152600401610d8090612f7f565b60288054921515600160b01b0260ff60b01b1990931692909217909155602955565b6000546001600160a01b03163314611a875760405162461bcd60e51b8152600401610d8090612f5f565b601a55565b6000546001600160a01b03163314611ab65760405162461bcd60e51b8152600401610d8090612f5f565b61271083600554611ac7919061304f565b611ad1919061302d565b600c55600a805460ff191692151592909217909155600d5550565b6000546001600160a01b03163314611b165760405162461bcd60e51b8152600401610d8090612f5f565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b03163314611b615760405162461bcd60e51b8152600401610d8090612f5f565b61271081600554611b72919061304f565b611b7c919061302d565b60065550565b6000546001600160a01b03163314611bac5760405162461bcd60e51b8152600401610d8090612f5f565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b611c2133611c68565b611c3d5760405162461bcd60e51b8152600401610d8090612f7f565b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b6001600160a01b031660009081526001602052604090205460ff1690565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611cd7918490611d5a565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611d06908361239b565b6001600160a01b0380851660008181526008602052604090819020939093559151908616906000805160206130f083398151915290611d489086815260200190565b60405180910390a35060019392505050565b60008184841115611d7e5760405162461bcd60e51b8152600401610d809190612f0a565b506000611d8b848661306e565b95945050505050565b602a5460009060ff1615611db457611dad848484611c86565b9050611263565b6001600160a01b03841660009081526001602052604090205460ff16158015611df657506001600160a01b03831660009081526001602052604090205460ff16155b15611e9a57602854600160a01b900460ff16611e4b5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610d80565b602854600160a81b900460ff168015611e7157506027546001600160a01b038581169116145b15611e9a576001600160a01b0383166000908152601060205260409020805460ff191660011790555b600f5460ff1615611efc576001600160a01b03841660009081526010602052604090205460ff1615611efc5760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610d80565b6001600160a01b0384166000908152600b602052604090205460ff168015611f265750600a5460ff165b15612017576001600160a01b0384166000908152600e60205260409020544211611f925760405162461bcd60e51b815260206004820152601a60248201527f5076742073656c6c65722074696d6520726573747269637465640000000000006044820152606401610d80565b600c54821115611ff05760405162461bcd60e51b8152602060048201526024808201527f5076742073656c6c65722068617665206d61782073656c6c20726573747269636044820152633a34b7b760e11b6064820152608401610d80565b600d54611ffd9042613015565b6001600160a01b0385166000908152600e60205260409020555b6001600160a01b03841660009081526001602052604090205460ff1615801561204957506001600160a01b0383163014155b801561206357506003546001600160a01b03848116911614155b801561207d57506027546001600160a01b03848116911614155b801561209757506023546001600160a01b03848116911614155b15612138576001600160a01b0383166000908152600860205260409020546007546120c28483613015565b11156121365760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610d80565b505b61214284836124bb565b61214a612528565b1561215c5761215761257e565b612212565b6001600160a01b03841660009081526001602052604090205460ff1615801561219e57506001600160a01b03831660009081526001602052604090205460ff16155b80156121c357506001600160a01b03841660009081526011602052604090205460ff16155b80156121dc57506027546001600160a01b038481169116145b80156121ea5750601c5460ff165b80156122055750601e54601d546122019190613015565b4210155b1561221257612212612974565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260089091529190912054612264918490611d5a565b6001600160a01b038516600090815260086020908152604080832093909355601190529081205460ff161515806122b557506001600160a01b03841660009081526011602052604090205460ff1615155b6122dc576027546122d790869085906001600160a01b03888116911614612991565b6122de565b825b6001600160a01b038516600090815260086020526040902054909150612304908261239b565b6001600160a01b0380861660008181526008602052604090819020939093559151908716906000805160206130f0833981519152906123469085815260200190565b60405180910390a3506001949350505050565b600061126383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d5a565b6000806123a88385613015565b9050838110156112635760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610d80565b60008261240957506000610e11565b6000612415838561304f565b905082612422858361302d565b146112635760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610d80565b600061126383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ae2565b600654811115806124e457506001600160a01b03821660009081526012602052604090205460ff165b6125245760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610d80565b5050565b6027546000906001600160a01b031633148015906125495750602a5460ff16155b801561255e5750602854600160b01b900460ff165b80156112b757505060295430600090815260086020526040902054101590565b602a805460ff1916600117905560245460255460009161259d91610e5f565b6125a9576013546125ac565b60005b905060006125d060026118a56018546118a5866029546123fa90919063ffffffff16565b905060006125e98260295461235990919063ffffffff16565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110612623576126236130b6565b6001600160a01b039283166020918202929092010152600254825191169082906001908110612654576126546130b6565b6001600160a01b03928316602091820292909201015260265460405163791ac94760e01b81524792919091169063791ac9479061269e908690600090879030904290600401612fa4565b600060405180830381600087803b1580156126b857600080fd5b505af11580156126cc573d6000803e3d6000fd5b5050505060006126e5824761235990919063ffffffff16565b905060006127006126f7886002612479565b60185490612359565b9050600061271560026118a58481878d6123fa565b90506000612732836118a5601454876123fa90919063ffffffff16565b9050600061274f846118a5601654886123fa90919063ffffffff16565b9050600061276c856118a5601554896123fa90919063ffffffff16565b6020546040519192506000916001600160a01b039091169085908381818185875af1925050503d80600081146127be576040519150601f19603f3d011682016040523d82523d6000602084013e6127c3565b606091505b50506021546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114612813576040519150601f19603f3d011682016040523d82523d6000602084013e612818565b606091505b50506022546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114612868576040519150601f19603f3d011682016040523d82523d6000602084013e61286d565b606091505b5060009250508b15905061295c57602654601f5460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c4016060604051808303818588803b1580156128e657600080fd5b505af11580156128fa573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061291f9190612e99565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050602a805460ff1916905550505050505050505050565b6000612981601b54611783565b9050801561298e5742601d555b50565b600080826129a05760646129a4565b601a545b905060006129d360195460646129ba919061304f565b6118a584611a096018548a6123fa90919063ffffffff16565b905060006129f26018546118a5601754856123fa90919063ffffffff16565b90506000612a008383612359565b30600090815260086020526040902054909150612a1d908261239b565b30600090815260086020526040808220929092556023546001600160a01b031681522054612a4b908361239b565b6023546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b16916000805160206130f0833981519152910160405180910390a38115612acc576023546040518381526001600160a01b03918216918a16906000805160206130f08339815191529060200160405180910390a35b612ad68784612359565b98975050505050505050565b60008183612b035760405162461bcd60e51b8152600401610d809190612f0a565b506000611d8b848661302d565b60008083601f840112612b2257600080fd5b50813567ffffffffffffffff811115612b3a57600080fd5b6020830191508360208260051b8501011115612b5557600080fd5b9250929050565b600060208284031215612b6e57600080fd5b8135611263816130cc565b60008060408385031215612b8c57600080fd5b8235612b97816130cc565b91506020830135612ba7816130cc565b809150509250929050565b600080600080600060a08688031215612bca57600080fd5b8535612bd5816130cc565b94506020860135612be5816130cc565b93506040860135612bf5816130cc565b92506060860135612c05816130cc565b91506080860135612c15816130cc565b809150509295509295909350565b600080600060608486031215612c3857600080fd5b8335612c43816130cc565b92506020840135612c53816130cc565b929592945050506040919091013590565b600080600080600060608688031215612c7c57600080fd5b8535612c87816130cc565b9450602086013567ffffffffffffffff80821115612ca457600080fd5b612cb089838a01612b10565b90965094506040880135915080821115612cc957600080fd5b50612cd688828901612b10565b969995985093965092949392505050565b60008060408385031215612cfa57600080fd5b8235612d05816130cc565b91506020830135612ba7816130e1565b60008060408385031215612d2857600080fd5b8235612d33816130cc565b946020939093013593505050565b600080600060408486031215612d5657600080fd5b833567ffffffffffffffff811115612d6d57600080fd5b612d7986828701612b10565b9094509250506020840135612d8d816130e1565b809150509250925092565b600060208284031215612daa57600080fd5b8135611263816130e1565b600060208284031215612dc757600080fd5b8151611263816130e1565b60008060408385031215612de557600080fd5b8235612d33816130e1565b600060208284031215612e0257600080fd5b5035919050565b600060208284031215612e1b57600080fd5b5051919050565b600080600060608486031215612e3757600080fd5b833592506020840135612c53816130e1565b60008060408385031215612e5c57600080fd5b50508035926020909101359150565b600080600060608486031215612e8057600080fd5b83359250602084013591506040840135612d8d816130e1565b600080600060608486031215612eae57600080fd5b8351925060208401519150604084015190509250925092565b60008060008060008060c08789031215612ee057600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600060208083528351808285015260005b81811015612f3757858101830151858201604001528201612f1b565b81811115612f49576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612ff45784516001600160a01b031683529383019391830191600101612fcf565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115613028576130286130a0565b500190565b60008261304a57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615613069576130696130a0565b500290565b600082821015613080576130806130a0565b500390565b6000600019821415613099576130996130a0565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038116811461298e57600080fd5b801515811461298e57600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220b9220d5cf55f28c0a26cabda8d12a924b27b2de3bfbb8a2223e2f2530e6a7d0064736f6c63430008070033

Deployed Bytecode

0x60806040526004361061042a5760003560e01c806386f6c3c111610229578063d51ed1c81161012e578063f12418a8116100b6578063fce589d81161007a578063fce589d814610cb9578063fe575a8714610ccf578063fe9fbb8014610cff578063fed0d2a114610d1f578063ffb54a9914610d3557600080fd5b8063f12418a814610c23578063f2fde38b14610c43578063f821f17f14610c63578063f84ba65d14610c79578063f887ea4014610c9957600080fd5b8063e3763ded116100fd578063e3763ded14610b83578063e96fada214610ba3578063ec72d65f14610bc3578063ecabcf6114610be3578063f0b37c0414610c0357600080fd5b8063d51ed1c814610ae7578063d7c94efd14610b07578063dd62ed3e14610b1d578063df20fd4914610b6357600080fd5b80639dd255da116101b1578063a9059cbb11610180578063a9059cbb14610a46578063b6a5d7de14610a66578063ca33e64c14610a86578063d10ae16514610aa6578063d32fd25214610ac757600080fd5b80639dd255da146109c9578063a4a4b19b146109e3578063a4c82a0014610a10578063a8aa1b3114610a2657600080fd5b80638e2eee84116101f85780638e2eee841461092a5780639242b7591461094a57806395d89b4114610964578063976b7e121461099357806398118cb4146109b357600080fd5b806386f6c3c1146108b25780638714f957146108d2578063893d20e8146108f2578063896648c11461091057600080fd5b8063313ce5671161032f5780636b67c4df116102b7578063722b62ad11610286578063722b62ad1461083057806377b54bad1461084657806378109e54146108665780637d1db4a51461087c57806384b1d1ef1461089257600080fd5b80636b67c4df146107a35780636ddd1713146107b95780637090ceaa146107da57806370a08231146107fa57600080fd5b80634d709adf116102fe5780634d709adf14610703578063571ac8b0146107235780635c85974f146107435780635e562f3b14610763578063658d4b7f1461078357600080fd5b8063313ce567146106795780633b2d081c146106955780633d61e69e146106ab57806340291143146106cb57600080fd5b8063199ffc72116103b2578063201e799111610381578063201e7991146105df57806323b872dd146105ff5780632b112e491461061f5780632c3e486c146106345780632f54bf6e1461064a57600080fd5b8063199ffc72146105735780631ca0a28d146105895780631da1db5e146105a95780631df4ccfc146105c957600080fd5b80630d295980116103f95780630d295980146104e85780631161ae3914610508578063180b0d7e1461052857806318160ddd1461053e57806318abb6351461055357600080fd5b8063012aa912146104365780630445b6671461045857806306fdde0314610481578063095ea7b3146104b857600080fd5b3661043157005b600080fd5b34801561044257600080fd5b50610456610451366004612df0565b610d56565b005b34801561046457600080fd5b5061046e60295481565b6040519081526020015b60405180910390f35b34801561048d57600080fd5b506040805180820190915260058152644368696e7560d81b60208201525b6040516104789190612f0a565b3480156104c457600080fd5b506104d86104d3366004612d15565b610daa565b6040519015158152602001610478565b3480156104f457600080fd5b50610456610503366004612d98565b610e17565b34801561051457600080fd5b506104d8610523366004612e49565b610e5f565b34801561053457600080fd5b5061046e60195481565b34801561054a57600080fd5b5060055461046e565b34801561055f57600080fd5b5061045661056e366004612bb2565b610e73565b34801561057f57600080fd5b5061046e601b5481565b34801561059557600080fd5b506104566105a4366004612c64565b610ef7565b3480156105b557600080fd5b506104566105c4366004612df0565b61110b565b3480156105d557600080fd5b5061046e60185481565b3480156105eb57600080fd5b506104566105fa366004612e49565b611178565b34801561060b57600080fd5b506104d861061a366004612c23565b6111a8565b34801561062b57600080fd5b5061046e61126a565b34801561064057600080fd5b5061046e601e5481565b34801561065657600080fd5b506104d8610665366004612b5c565b6000546001600160a01b0391821691161490565b34801561068557600080fd5b5060405160048152602001610478565b3480156106a157600080fd5b5061046e60155481565b3480156106b757600080fd5b506104566106c6366004612d98565b6112bc565b3480156106d757600080fd5b506022546106eb906001600160a01b031681565b6040516001600160a01b039091168152602001610478565b34801561070f57600080fd5b506028546106eb906001600160a01b031681565b34801561072f57600080fd5b506104d861073e366004612b5c565b611304565b34801561074f57600080fd5b5061045661075e366004612df0565b611312565b34801561076f57600080fd5b5061045661077e366004612d98565b61133c565b34801561078f57600080fd5b5061045661079e366004612ce7565b611379565b3480156107af57600080fd5b5061046e60145481565b3480156107c557600080fd5b506028546104d890600160b01b900460ff1681565b3480156107e657600080fd5b506104566107f5366004612d41565b6113c9565b34801561080657600080fd5b5061046e610815366004612b5c565b6001600160a01b031660009081526008602052604090205490565b34801561083c57600080fd5b5061046e600d5481565b34801561085257600080fd5b506104d8610861366004612d15565b611468565b34801561087257600080fd5b5061046e60075481565b34801561088857600080fd5b5061046e60065481565b34801561089e57600080fd5b506021546106eb906001600160a01b031681565b3480156108be57600080fd5b506104566108cd366004612ec7565b611592565b3480156108de57600080fd5b506104566108ed366004612e6b565b611653565b3480156108fe57600080fd5b506000546001600160a01b03166106eb565b34801561091c57600080fd5b50600f546104d89060ff1681565b34801561093657600080fd5b50610456610945366004612d41565b6116ea565b34801561095657600080fd5b50600a546104d89060ff1681565b34801561097057600080fd5b50604080518082019091526006815265244348494e5560d01b60208201526104ab565b34801561099f57600080fd5b506104d86109ae366004612df0565b611783565b3480156109bf57600080fd5b5061046e60135481565b3480156109d557600080fd5b50601c546104d89060ff1681565b3480156109ef57600080fd5b5061046e6109fe366004612b5c565b600e6020526000908152604090205481565b348015610a1c57600080fd5b5061046e601d5481565b348015610a3257600080fd5b506027546106eb906001600160a01b031681565b348015610a5257600080fd5b506104d8610a61366004612d15565b61194d565b348015610a7257600080fd5b50610456610a81366004612b5c565b61195a565b348015610a9257600080fd5b50601f546106eb906001600160a01b031681565b348015610ab257600080fd5b506028546104d890600160a81b900460ff1681565b348015610ad357600080fd5b50610456610ae2366004612df0565b6119ab565b348015610af357600080fd5b5061046e610b02366004612df0565b6119d5565b348015610b1357600080fd5b5061046e60165481565b348015610b2957600080fd5b5061046e610b38366004612b79565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b348015610b6f57600080fd5b50610456610b7e366004612dd2565b611a16565b348015610b8f57600080fd5b506023546106eb906001600160a01b031681565b348015610baf57600080fd5b506020546106eb906001600160a01b031681565b348015610bcf57600080fd5b50610456610bde366004612df0565b611a5d565b348015610bef57600080fd5b50610456610bfe366004612e22565b611a8c565b348015610c0f57600080fd5b50610456610c1e366004612b5c565b611aec565b348015610c2f57600080fd5b50610456610c3e366004612df0565b611b37565b348015610c4f57600080fd5b50610456610c5e366004612b5c565b611b82565b348015610c6f57600080fd5b5061046e600c5481565b348015610c8557600080fd5b50610456610c94366004612ce7565b611c18565b348015610ca557600080fd5b506026546106eb906001600160a01b031681565b348015610cc557600080fd5b5061046e60175481565b348015610cdb57600080fd5b506104d8610cea366004612b5c565b60106020526000908152604090205460ff1681565b348015610d0b57600080fd5b506104d8610d1a366004612b5c565b611c68565b348015610d2b57600080fd5b5061046e601a5481565b348015610d4157600080fd5b506028546104d890600160a01b900460ff1681565b6000546001600160a01b03163314610d895760405162461bcd60e51b8152600401610d8090612f5f565b60405180910390fd5b61271081600554610d9a919061304f565b610da4919061302d565b60075550565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610e059086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610e415760405162461bcd60e51b8152600401610d8090612f5f565b60288054911515600160a01b0260ff60a01b19909216919091179055565b600082610e6b836119d5565b119392505050565b610e7c33611c68565b610e985760405162461bcd60e51b8152600401610d8090612f7f565b601f80546001600160a01b03199081166001600160a01b03978816179091556020805482169587169590951790945560218054851693861693909317909255602380548416918516919091179055602280549092169216919091179055565b6000546001600160a01b03163314610f215760405162461bcd60e51b8152600401610d8090612f5f565b6101f58310610f885760405162461bcd60e51b815260206004820152602d60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526c3530302061646472657373657360981b6064820152608401610d80565b828114610fe85760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e204164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b6064820152608401610d80565b6000805b8481101561102c57838382818110611006576110066130b6565b90506020020135826110189190613015565b91508061102481613085565b915050610fec565b508061104d876001600160a01b031660009081526008602052604090205490565b101561109b5760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c657400000000006044820152606401610d80565b60005b84811015611102576110ef878787848181106110bc576110bc6130b6565b90506020020160208101906110d19190612b5c565b8686858181106110e3576110e36130b6565b90506020020135611c86565b50806110fa81613085565b91505061109e565b50505050505050565b61111433611c68565b6111305760405162461bcd60e51b8152600401610d8090612f7f565b47336108fc6064611141858561304f565b61114b919061302d565b6040518115909202916000818181858888f19350505050158015611173573d6000803e3d6000fd5b505050565b61118133611c68565b61119d5760405162461bcd60e51b8152600401610d8090612f7f565b602491909155602555565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914611255576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054611230918490611d5a565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b611260848484611d94565b90505b9392505050565b6004546001600160a01b03166000908152600860205260408120546112b7906003546001600160a01b03166000908152600860205260409020546112b19060055490612359565b90612359565b905090565b6000546001600160a01b031633146112e65760405162461bcd60e51b8152600401610d8090612f5f565b60288054911515600160a81b0260ff60a81b19909216919091179055565b6000610e1182600019610daa565b61131b33611c68565b6113375760405162461bcd60e51b8152600401610d8090612f7f565b600655565b6000546001600160a01b031633146113665760405162461bcd60e51b8152600401610d8090612f5f565b600f805460ff1916911515919091179055565b61138233611c68565b61139e5760405162461bcd60e51b8152600401610d8090612f7f565b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146113f35760405162461bcd60e51b8152600401610d8090612f5f565b60005b828110156114625781600b6000868685818110611415576114156130b6565b905060200201602081019061142a9190612b5c565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561145b81613085565b90506113f6565b50505050565b600080546001600160a01b031633146114935760405162461bcd60e51b8152600401610d8090612f5f565b81611512576040516370a0823160e01b81523060048201526001600160a01b038416906370a082319060240160206040518083038186803b1580156114d757600080fd5b505afa1580156114eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061150f9190612e09565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb90604401602060405180830381600087803b15801561155a57600080fd5b505af115801561156e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112639190612db5565b61159b33611c68565b6115b75760405162461bcd60e51b8152600401610d8090612f7f565b601386905560168590556014849055601583905560178290556115e8826115e2858188818c8c61239b565b9061239b565b60185560198190556115fb60028261302d565b6018541061164b5760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e20353025000000006044820152606401610d80565b505050505050565b6000546001600160a01b0316331461167d5760405162461bcd60e51b8152600401610d8090612f5f565b6103e882106116ce5760405162461bcd60e51b815260206004820152601d60248201527f6d61782076616c756520666f72206175746f6275726e206973203130250000006044820152606401610d80565b601e92909255601b55601c805460ff1916911515919091179055565b6000546001600160a01b031633146117145760405162461bcd60e51b8152600401610d8090612f5f565b60005b82811015611462578160106000868685818110611736576117366130b6565b905060200201602081019061174b9190612b5c565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561177c81613085565b9050611717565b600080546001600160a01b031633146117ae5760405162461bcd60e51b8152600401610d8090612f5f565b6103e88211156118135760405162461bcd60e51b815260206004820152602a60248201527f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f60448201526906b656e7320696e204c560b41b6064820152608401610d80565b6027546040516370a0823160e01b81526001600160a01b03909116600482015260009030906370a082319060240160206040518083038186803b15801561185957600080fd5b505afa15801561186d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118919190612e09565b905060006118ab6127106118a584876123fa565b90612479565b90508015611943576027546003546118d0916001600160a01b03908116911683611c86565b50602860009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561192157600080fd5b505af1158015611935573d6000803e3d6000fd5b506001979650505050505050565b5060009392505050565b6000611263338484611d94565b6000546001600160a01b031633146119845760405162461bcd60e51b8152600401610d8090612f5f565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6119b433611c68565b6119d05760405162461bcd60e51b8152600401610d8090612f7f565b600c55565b6000610e116119e261126a565b6027546001600160a01b03166000908152600860205260409020546118a590611a0f906002905b906123fa565b85906123fa565b611a1f33611c68565b611a3b5760405162461bcd60e51b8152600401610d8090612f7f565b60288054921515600160b01b0260ff60b01b1990931692909217909155602955565b6000546001600160a01b03163314611a875760405162461bcd60e51b8152600401610d8090612f5f565b601a55565b6000546001600160a01b03163314611ab65760405162461bcd60e51b8152600401610d8090612f5f565b61271083600554611ac7919061304f565b611ad1919061302d565b600c55600a805460ff191692151592909217909155600d5550565b6000546001600160a01b03163314611b165760405162461bcd60e51b8152600401610d8090612f5f565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b03163314611b615760405162461bcd60e51b8152600401610d8090612f5f565b61271081600554611b72919061304f565b611b7c919061302d565b60065550565b6000546001600160a01b03163314611bac5760405162461bcd60e51b8152600401610d8090612f5f565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b611c2133611c68565b611c3d5760405162461bcd60e51b8152600401610d8090612f7f565b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b6001600160a01b031660009081526001602052604090205460ff1690565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611cd7918490611d5a565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611d06908361239b565b6001600160a01b0380851660008181526008602052604090819020939093559151908616906000805160206130f083398151915290611d489086815260200190565b60405180910390a35060019392505050565b60008184841115611d7e5760405162461bcd60e51b8152600401610d809190612f0a565b506000611d8b848661306e565b95945050505050565b602a5460009060ff1615611db457611dad848484611c86565b9050611263565b6001600160a01b03841660009081526001602052604090205460ff16158015611df657506001600160a01b03831660009081526001602052604090205460ff16155b15611e9a57602854600160a01b900460ff16611e4b5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610d80565b602854600160a81b900460ff168015611e7157506027546001600160a01b038581169116145b15611e9a576001600160a01b0383166000908152601060205260409020805460ff191660011790555b600f5460ff1615611efc576001600160a01b03841660009081526010602052604090205460ff1615611efc5760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610d80565b6001600160a01b0384166000908152600b602052604090205460ff168015611f265750600a5460ff165b15612017576001600160a01b0384166000908152600e60205260409020544211611f925760405162461bcd60e51b815260206004820152601a60248201527f5076742073656c6c65722074696d6520726573747269637465640000000000006044820152606401610d80565b600c54821115611ff05760405162461bcd60e51b8152602060048201526024808201527f5076742073656c6c65722068617665206d61782073656c6c20726573747269636044820152633a34b7b760e11b6064820152608401610d80565b600d54611ffd9042613015565b6001600160a01b0385166000908152600e60205260409020555b6001600160a01b03841660009081526001602052604090205460ff1615801561204957506001600160a01b0383163014155b801561206357506003546001600160a01b03848116911614155b801561207d57506027546001600160a01b03848116911614155b801561209757506023546001600160a01b03848116911614155b15612138576001600160a01b0383166000908152600860205260409020546007546120c28483613015565b11156121365760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610d80565b505b61214284836124bb565b61214a612528565b1561215c5761215761257e565b612212565b6001600160a01b03841660009081526001602052604090205460ff1615801561219e57506001600160a01b03831660009081526001602052604090205460ff16155b80156121c357506001600160a01b03841660009081526011602052604090205460ff16155b80156121dc57506027546001600160a01b038481169116145b80156121ea5750601c5460ff165b80156122055750601e54601d546122019190613015565b4210155b1561221257612212612974565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260089091529190912054612264918490611d5a565b6001600160a01b038516600090815260086020908152604080832093909355601190529081205460ff161515806122b557506001600160a01b03841660009081526011602052604090205460ff1615155b6122dc576027546122d790869085906001600160a01b03888116911614612991565b6122de565b825b6001600160a01b038516600090815260086020526040902054909150612304908261239b565b6001600160a01b0380861660008181526008602052604090819020939093559151908716906000805160206130f0833981519152906123469085815260200190565b60405180910390a3506001949350505050565b600061126383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d5a565b6000806123a88385613015565b9050838110156112635760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610d80565b60008261240957506000610e11565b6000612415838561304f565b905082612422858361302d565b146112635760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610d80565b600061126383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ae2565b600654811115806124e457506001600160a01b03821660009081526012602052604090205460ff165b6125245760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610d80565b5050565b6027546000906001600160a01b031633148015906125495750602a5460ff16155b801561255e5750602854600160b01b900460ff165b80156112b757505060295430600090815260086020526040902054101590565b602a805460ff1916600117905560245460255460009161259d91610e5f565b6125a9576013546125ac565b60005b905060006125d060026118a56018546118a5866029546123fa90919063ffffffff16565b905060006125e98260295461235990919063ffffffff16565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110612623576126236130b6565b6001600160a01b039283166020918202929092010152600254825191169082906001908110612654576126546130b6565b6001600160a01b03928316602091820292909201015260265460405163791ac94760e01b81524792919091169063791ac9479061269e908690600090879030904290600401612fa4565b600060405180830381600087803b1580156126b857600080fd5b505af11580156126cc573d6000803e3d6000fd5b5050505060006126e5824761235990919063ffffffff16565b905060006127006126f7886002612479565b60185490612359565b9050600061271560026118a58481878d6123fa565b90506000612732836118a5601454876123fa90919063ffffffff16565b9050600061274f846118a5601654886123fa90919063ffffffff16565b9050600061276c856118a5601554896123fa90919063ffffffff16565b6020546040519192506000916001600160a01b039091169085908381818185875af1925050503d80600081146127be576040519150601f19603f3d011682016040523d82523d6000602084013e6127c3565b606091505b50506021546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114612813576040519150601f19603f3d011682016040523d82523d6000602084013e612818565b606091505b50506022546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114612868576040519150601f19603f3d011682016040523d82523d6000602084013e61286d565b606091505b5060009250508b15905061295c57602654601f5460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c4016060604051808303818588803b1580156128e657600080fd5b505af11580156128fa573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061291f9190612e99565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050602a805460ff1916905550505050505050505050565b6000612981601b54611783565b9050801561298e5742601d555b50565b600080826129a05760646129a4565b601a545b905060006129d360195460646129ba919061304f565b6118a584611a096018548a6123fa90919063ffffffff16565b905060006129f26018546118a5601754856123fa90919063ffffffff16565b90506000612a008383612359565b30600090815260086020526040902054909150612a1d908261239b565b30600090815260086020526040808220929092556023546001600160a01b031681522054612a4b908361239b565b6023546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b16916000805160206130f0833981519152910160405180910390a38115612acc576023546040518381526001600160a01b03918216918a16906000805160206130f08339815191529060200160405180910390a35b612ad68784612359565b98975050505050505050565b60008183612b035760405162461bcd60e51b8152600401610d809190612f0a565b506000611d8b848661302d565b60008083601f840112612b2257600080fd5b50813567ffffffffffffffff811115612b3a57600080fd5b6020830191508360208260051b8501011115612b5557600080fd5b9250929050565b600060208284031215612b6e57600080fd5b8135611263816130cc565b60008060408385031215612b8c57600080fd5b8235612b97816130cc565b91506020830135612ba7816130cc565b809150509250929050565b600080600080600060a08688031215612bca57600080fd5b8535612bd5816130cc565b94506020860135612be5816130cc565b93506040860135612bf5816130cc565b92506060860135612c05816130cc565b91506080860135612c15816130cc565b809150509295509295909350565b600080600060608486031215612c3857600080fd5b8335612c43816130cc565b92506020840135612c53816130cc565b929592945050506040919091013590565b600080600080600060608688031215612c7c57600080fd5b8535612c87816130cc565b9450602086013567ffffffffffffffff80821115612ca457600080fd5b612cb089838a01612b10565b90965094506040880135915080821115612cc957600080fd5b50612cd688828901612b10565b969995985093965092949392505050565b60008060408385031215612cfa57600080fd5b8235612d05816130cc565b91506020830135612ba7816130e1565b60008060408385031215612d2857600080fd5b8235612d33816130cc565b946020939093013593505050565b600080600060408486031215612d5657600080fd5b833567ffffffffffffffff811115612d6d57600080fd5b612d7986828701612b10565b9094509250506020840135612d8d816130e1565b809150509250925092565b600060208284031215612daa57600080fd5b8135611263816130e1565b600060208284031215612dc757600080fd5b8151611263816130e1565b60008060408385031215612de557600080fd5b8235612d33816130e1565b600060208284031215612e0257600080fd5b5035919050565b600060208284031215612e1b57600080fd5b5051919050565b600080600060608486031215612e3757600080fd5b833592506020840135612c53816130e1565b60008060408385031215612e5c57600080fd5b50508035926020909101359150565b600080600060608486031215612e8057600080fd5b83359250602084013591506040840135612d8d816130e1565b600080600060608486031215612eae57600080fd5b8351925060208401519150604084015190509250925092565b60008060008060008060c08789031215612ee057600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600060208083528351808285015260005b81811015612f3757858101830151858201604001528201612f1b565b81811115612f49576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612ff45784516001600160a01b031683529383019391830191600101612fcf565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115613028576130286130a0565b500190565b60008261304a57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615613069576130696130a0565b500290565b600082821015613080576130806130a0565b500390565b6000600019821415613099576130996130a0565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038116811461298e57600080fd5b801515811461298e57600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220b9220d5cf55f28c0a26cabda8d12a924b27b2de3bfbb8a2223e2f2530e6a7d0064736f6c63430008070033

Deployed Bytecode Sourcemap

4737:16555:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9522:181;;;;;;;;;;-1:-1:-1;9522:181:0;;;;;:::i;:::-;;:::i;:::-;;6900:54;;;;;;;;;;;;;;;;;;;16682:25:1;;;16670:2;16655:18;6900:54:0;;;;;;;;8204:80;;;;;;;;;;-1:-1:-1;8276:5:0;;;;;;;;;;;;-1:-1:-1;;;8276:5:0;;;;8204:80;;;;;;;:::i;8626:216::-;;;;;;;;;;-1:-1:-1;8626:216:0;;;;;:::i;:::-;;:::i;:::-;;;9491:14:1;;9484:22;9466:41;;9454:2;9439:18;8626:216:0;9326:187:1;15101:94:0;;;;;;;;;;-1:-1:-1;15101:94:0;;;;;:::i;:::-;;:::i;19522:150::-;;;;;;;;;;-1:-1:-1;19522:150:0;;;;;:::i;:::-;;:::i;6130:36::-;;;;;;;;;;;;;;;;7934:88;;;;;;;;;;-1:-1:-1;8007:12:0;;7934:88;;18380:450;;;;;;;;;;-1:-1:-1;18380:450:0;;;;;:::i;:::-;;:::i;6220:36::-;;;;;;;;;;;;;;;;19702:594;;;;;;;;;;-1:-1:-1;19702:594:0;;;;;:::i;:::-;;:::i;14452:208::-;;;;;;;;;;-1:-1:-1;14452:208:0;;;;;:::i;:::-;;:::i;6030:93::-;;;;;;;;;;;;;;;;19002:183;;;;;;;;;;-1:-1:-1;19002:183:0;;;;;:::i;:::-;;:::i;9144:370::-;;;;;;;;;;-1:-1:-1;9144:370:0;;;;;:::i;:::-;;:::i;19197:142::-;;;;;;;;;;;;;:::i;6356:43::-;;;;;;;;;;;;;;;;2745:103;;;;;;;;;;-1:-1:-1;2745:103:0;;;;;:::i;:::-;2800:4;2835:5;-1:-1:-1;;;;;2824:16:0;;;2835:5;;2824:16;;2745:103;8028:80;;;;;;;;;;-1:-1:-1;8028:80:0;;5064:1;18098:36:1;;18086:2;18071:18;8028:80:0;17956:184:1;5907:34:0;;;;;;;;;;;;;;;;15203:99;;;;;;;;;;-1:-1:-1;15203:99:0;;;;;:::i;:::-;;:::i;6533:30::-;;;;;;;;;;-1:-1:-1;6533:30:0;;;;-1:-1:-1;;;;;6533:30:0;;;;;;-1:-1:-1;;;;;8175:32:1;;;8157:51;;8145:2;8130:18;6533:30:0;8011:203:1;6750:31:0;;;;;;;;;;-1:-1:-1;6750:31:0;;;;-1:-1:-1;;;;;6750:31:0;;;8850:122;;;;;;;;;;-1:-1:-1;8850:122:0;;;;;:::i;:::-;;:::i;10571:96::-;;;;;;;;;;-1:-1:-1;10571:96:0;;;;;:::i;:::-;;:::i;17218:99::-;;;;;;;;;;-1:-1:-1;17218:99:0;;;;;:::i;:::-;;:::i;17543:120::-;;;;;;;;;;-1:-1:-1;17543:120:0;;;;;:::i;:::-;;:::i;5866:34::-;;;;;;;;;;;;;;;;6863:30;;;;;;;;;;-1:-1:-1;6863:30:0;;;;-1:-1:-1;;;6863:30:0;;;;;;10219:215;;;;;;;;;;-1:-1:-1;10219:215:0;;;;;:::i;:::-;;:::i;8374:105::-;;;;;;;;;;-1:-1:-1;8374:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;8458:18:0;8440:7;8458:18;;;:9;:18;;;;;;;8374:105;5528:47;;;;;;;;;;;;;;;;14668:271;;;;;;;;;;-1:-1:-1;14668:271:0;;;;;:::i;:::-;;:::i;5186:51::-;;;;;;;;;;;;;;;;5131:48;;;;;;;;;;;;;;;;6493:33;;;;;;;;;;-1:-1:-1;6493:33:0;;;;-1:-1:-1;;;;;6493:33:0;;;17807:565;;;;;;;;;;-1:-1:-1;17807:565:0;;;;;:::i;:::-;;:::i;20298:262::-;;;;;;;;;;-1:-1:-1;20298:262:0;;;;;:::i;:::-;;:::i;8290:78::-;;;;;;;;;;-1:-1:-1;8342:7:0;8360:5;-1:-1:-1;;;;;8360:5:0;8290:78;;5637:32;;;;;;;;;;-1:-1:-1;5637:32:0;;;;;;;;17325:210;;;;;;;;;;-1:-1:-1;17325:210:0;;;;;:::i;:::-;;:::i;5361:43::-;;;;;;;;;;-1:-1:-1;5361:43:0;;;;;;;;8114:84;;;;;;;;;;-1:-1:-1;8188:7:0;;;;;;;;;;;;-1:-1:-1;;;8188:7:0;;;;8114:84;;20564:498;;;;;;;;;;-1:-1:-1;20564:498:0;;;;;:::i;:::-;;:::i;5825:34::-;;;;;;;;;;;;;;;;6278:35;;;;;;;;;;-1:-1:-1;6278:35:0;;;;;;;;5582:46;;;;;;;;;;-1:-1:-1;5582:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;6320:29;;;;;;;;;;;;;;;;6724:19;;;;;;;;;;-1:-1:-1;6724:19:0;;;;-1:-1:-1;;;;;6724:19:0;;;8980:156;;;;;;;;;;-1:-1:-1;8980:156:0;;;;;:::i;:::-;;:::i;2538:94::-;;;;;;;;;;-1:-1:-1;2538:94:0;;;;;:::i;:::-;;:::i;6408:36::-;;;;;;;;;;-1:-1:-1;6408:36:0;;;;-1:-1:-1;;;;;6408:36:0;;;6828:26;;;;;;;;;;-1:-1:-1;6828:26:0;;;;-1:-1:-1;;;6828:26:0;;;;;;10442:121;;;;;;;;;;-1:-1:-1;10442:121:0;;;;;:::i;:::-;;:::i;19347:167::-;;;;;;;;;;-1:-1:-1;19347:167:0;;;;;:::i;:::-;;:::i;5948:34::-;;;;;;;;;;;;;;;;8485:133;;;;;;;;;;-1:-1:-1;8485:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8587:19:0;;;8569:7;8587:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8485:133;18838:156;;;;;;;;;;-1:-1:-1;18838:156:0;;;;;:::i;:::-;;:::i;6570:30::-;;;;;;;;;;-1:-1:-1;6570:30:0;;;;-1:-1:-1;;;;;6570:30:0;;;6451:35;;;;;;;;;;-1:-1:-1;6451:35:0;;;;-1:-1:-1;;;;;6451:35:0;;;14947:123;;;;;;;;;;-1:-1:-1;14947:123:0;;;;;:::i;:::-;;:::i;9893:318::-;;;;;;;;;;-1:-1:-1;9893:318:0;;;;;:::i;:::-;;:::i;2640:97::-;;;;;;;;;;-1:-1:-1;2640:97:0;;;;;:::i;:::-;;:::i;9709:176::-;;;;;;;;;;-1:-1:-1;9709:176:0;;;;;:::i;:::-;;:::i;2971:173::-;;;;;;;;;;-1:-1:-1;2971:173:0;;;;;:::i;:::-;;:::i;5462:57::-;;;;;;;;;;;;;;;;17671:128;;;;;;;;;;-1:-1:-1;17671:128:0;;;;;:::i;:::-;;:::i;6693:24::-;;;;;;;;;;-1:-1:-1;6693:24:0;;;;-1:-1:-1;;;;;6693:24:0;;;5989:34;;;;;;;;;;;;;;;;5676:46;;;;;;;;;;-1:-1:-1;5676:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;2856:107;;;;;;;;;;-1:-1:-1;2856:107:0;;;;;:::i;:::-;;:::i;6175:36::-;;;;;;;;;;;;;;;;6790:31;;;;;;;;;;-1:-1:-1;6790:31:0;;;;-1:-1:-1;;;6790:31:0;;;;;;9522:181;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;;;;;;;;;9690:5:::1;9661:24;9646:12;;:39;;;;:::i;:::-;9645:50;;;;:::i;:::-;9627:15;:68:::0;-1:-1:-1;9522:181:0:o;8626:216::-;8730:10;8701:4;8718:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8718:32:0;;;;;;;;;;:41;;;8775:37;8701:4;;8718:32;;8775:37;;;;8753:6;16682:25:1;;16670:2;16655:18;;16536:177;8775:37:0;;;;;;;;-1:-1:-1;8830:4:0;8626:216;;;;;:::o;15101:94::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;15166:11:::1;:21:::0;;;::::1;;-1:-1:-1::0;;;15166:21:0::1;-1:-1:-1::0;;;;15166:21:0;;::::1;::::0;;;::::1;::::0;;15101:94::o;19522:150::-;19602:4;19658:6;19626:29;19646:8;19626:19;:29::i;:::-;:38;;19522:150;-1:-1:-1;;;19522:150:0:o;18380:450::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;18580:21:::1;:46:::0;;-1:-1:-1;;;;;;18580:46:0;;::::1;-1:-1:-1::0;;;;;18580:46:0;;::::1;;::::0;;;18637:20:::1;:44:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18692:18:::1;:40:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18743:15:::1;:34:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;18788:15:::1;:34:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;18380:450::o;19702:594::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;19851:3:::1;19832:22:::0;::::1;19824:79;;;::::0;-1:-1:-1;;;19824:79:0;;14550:2:1;19824:79:0::1;::::0;::::1;14532:21:1::0;14589:2;14569:18;;;14562:30;14628:34;14608:18;;;14601:62;-1:-1:-1;;;14679:18:1;;;14672:43;14732:19;;19824:79:0::1;14348:409:1::0;19824:79:0::1;19918:33:::0;;::::1;19910:85;;;::::0;-1:-1:-1;;;19910:85:0;;10775:2:1;19910:85:0::1;::::0;::::1;10757:21:1::0;10814:2;10794:18;;;10787:30;10853:34;10833:18;;;10826:62;-1:-1:-1;;;10904:18:1;;;10897:38;10952:19;;19910:85:0::1;10573:404:1::0;19910:85:0::1;20004:12;20033:6:::0;20029:82:::1;20043:20:::0;;::::1;20029:82;;;20094:6;;20101:1;20094:9;;;;;;;:::i;:::-;;;;;;;20087:4;:16;;;;:::i;:::-;20080:23:::0;-1:-1:-1;20065:3:0;::::1;::::0;::::1;:::i;:::-;;;;20029:82;;;;20146:4;20127:15;20137:4;-1:-1:-1::0;;;;;8458:18:0;8440:7;8458:18;;;:9;:18;;;;;;;8374:105;20127:15:::1;:23;;20119:63;;;::::0;-1:-1:-1;;;20119:63:0;;12601:2:1;20119:63:0::1;::::0;::::1;12583:21:1::0;12640:2;12620:18;;;12613:30;12679:29;12659:18;;;12652:57;12726:18;;20119:63:0::1;12399:351:1::0;20119:63:0::1;20195:6;20191:102;20205:20:::0;;::::1;20191:102;;;20242:43;20257:4;20262:9;;20272:1;20262:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;20275:6;;20282:1;20275:9;;;;;;;:::i;:::-;;;;;;;20242:14;:43::i;:::-;-1:-1:-1::0;20227:3:0;::::1;::::0;::::1;:::i;:::-;;;;20191:102;;;;19815:481;19702:594:::0;;;;;:::o;14452:208::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;14556:21:::1;14596:10;14588:64;14648:3;14617:28;14629:16:::0;14556:21;14617:28:::1;:::i;:::-;:34;;;;:::i;:::-;14588:64;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14525:135;14452:208:::0;:::o;19002:183::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;19100:15:::1;:25:::0;;;;19136:26:::1;:41:::0;19002:183::o;9144:370::-;-1:-1:-1;;;;;9264:19:0;;9244:4;9264:19;;;:11;:19;;;;;;;;9284:10;9264:31;;;;;;;;-1:-1:-1;;9264:52:0;9261:186;;9366:69;;;;;;;;;;;-1:-1:-1;;;9366:69:0;;;;;;;;-1:-1:-1;;;;;9366:19:0;;-1:-1:-1;9366:19:0;;;:11;:19;;;;;9386:10;9366:31;;;;;;;;;;:69;;9402:6;;9366:35;:69::i;:::-;-1:-1:-1;;;;;9332:19:0;;;;;;:11;:19;;;;;;;;9352:10;9332:31;;;;;;;:103;9261:186;9466:40;9480:6;9488:9;9499:6;9466:13;:40::i;:::-;9459:47;;9144:370;;;;;;:::o;19197:142::-;19325:4;;-1:-1:-1;;;;;19325:4:0;19250:7;8458:18;;;:9;:18;;;;;;19277:54;;19304:4;;-1:-1:-1;;;;;19304:4:0;8440:7;8458:18;;;:9;:18;;;;;;19277:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;19270:61;;19197:142;:::o;15203:99::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;15277:7:::1;:17:::0;;;::::1;;-1:-1:-1::0;;;15277:17:0::1;-1:-1:-1::0;;;;15277:17:0;;::::1;::::0;;;::::1;::::0;;15203:99::o;8850:122::-;8905:4;8929:35;8937:7;-1:-1:-1;;8929:7:0;:35::i;10571:96::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;10638:12:::1;:21:::0;10571:96::o;17218:99::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;17286:13:::1;:23:::0;;-1:-1:-1;;17286:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17218:99::o;17543:120::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17627:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;17627:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17543:120::o;10219:215::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;10321:9:::1;10316:111;10332:20:::0;;::::1;10316:111;;;10409:6;10374:18;:32;10393:9;;10403:1;10393:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10374:32:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;10374:32:0;:41;;-1:-1:-1;;10374:41:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10354:3:::1;::::0;::::1;:::i;:::-;;;10316:111;;;;10219:215:::0;;;:::o;14668:271::-;14757:4;2835:5;;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;14774:11;14771:95:::1;;14810:44;::::0;-1:-1:-1;;;14810:44:0;;14848:4:::1;14810:44;::::0;::::1;8157:51:1::0;-1:-1:-1;;;;;14810:29:0;::::1;::::0;::::1;::::0;8130:18:1;;14810:44:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14801:53;;14771:95;14883:48;::::0;-1:-1:-1;;;14883:48:0;;14912:10:::1;14883:48;::::0;::::1;8609:51:1::0;8676:18;;;8669:34;;;-1:-1:-1;;;;;14883:28:0;::::1;::::0;::::1;::::0;8582:18:1;;14883:48:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;17807:565::-:0;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;17983:12:::1;:28:::0;;;18022:7:::1;:18:::0;;;18051:12:::1;:28:::0;;;18090:10:::1;:24:::0;;;18125:7:::1;:18:::0;;;18165:77:::1;18135:8:::0;18165:63:::1;18103:11:::0;18165:63;18066:13;18165:63;17998:13;18032:8;18165:17:::1;:27::i;:::-;:31:::0;::::1;:46::i;:77::-;18154:8;:88:::0;18253:14:::1;:32:::0;;;18315:16:::1;18330:1;18270:15:::0;18315:16:::1;:::i;:::-;18304:8;;:27;18296:68;;;::::0;-1:-1:-1;;;18296:68:0;;11530:2:1;18296:68:0::1;::::0;::::1;11512:21:1::0;11569:2;11549:18;;;11542:30;11608;11588:18;;;11581:58;11656:18;;18296:68:0::1;11328:352:1::0;18296:68:0::1;17807:565:::0;;;;;;:::o;20298:262::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;20416:4:::1;20405:8;:15;20397:56;;;::::0;-1:-1:-1;;;20397:56:0;;11887:2:1;20397:56:0::1;::::0;::::1;11869:21:1::0;11926:2;11906:18;;;11899:30;11965:31;11945:18;;;11938:59;12014:18;;20397:56:0::1;11685:353:1::0;20397:56:0::1;20466:15;:23:::0;;;;20496:16:::1;:27:::0;20530:15:::1;:26:::0;;-1:-1:-1;;20530:26:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20298:262::o;17325:210::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;17427:9:::1;17422:106;17438:20:::0;;::::1;17422:106;;;17510:6;17480:13;:27;17494:9;;17504:1;17494:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17480:27:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17480:27:0;:36;;-1:-1:-1;;17480:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17460:3:::1;::::0;::::1;:::i;:::-;;;17422:106;;20564:498:::0;20640:4;2835:5;;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;20685:4:::1;20664:17;:25;;20656:80;;;::::0;-1:-1:-1;;;20656:80:0;;14139:2:1;20656:80:0::1;::::0;::::1;14121:21:1::0;14178:2;14158:18;;;14151:30;14217:34;14197:18;;;14190:62;-1:-1:-1;;;14268:18:1;;;14261:40;14318:19;;20656:80:0::1;13937:406:1::0;20656:80:0::1;20788:4;::::0;20773:20:::1;::::0;-1:-1:-1;;;20773:20:0;;-1:-1:-1;;;;;20788:4:0;;::::1;20773:20;::::0;::::1;8157:51:1::0;20753:17:0::1;::::0;20773:4:::1;::::0;:14:::1;::::0;8130:18:1;;20773:20:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20753:40:::0;-1:-1:-1;20804:15:0::1;20822:43;20859:5;20822:32;20753:40:::0;20836:17;20822:13:::1;:32::i;:::-;:36:::0;::::1;:43::i;:::-;20804:61:::0;-1:-1:-1;20890:11:0;;20886:136:::1;;20932:4;::::0;20937::::1;::::0;20917:33:::1;::::0;-1:-1:-1;;;;;20932:4:0;;::::1;::::0;20937::::1;20942:7:::0;20917:14:::1;:33::i;:::-;;20965:12;;;;;;;;;-1:-1:-1::0;;;;;20965:12:0::1;-1:-1:-1::0;;;;;20965:17:0::1;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;21006:4:0::1;::::0;20564:498;-1:-1:-1;;;;;;;20564:498:0:o;20886:136::-:1;-1:-1:-1::0;21049:5:0::1;::::0;20564:498;-1:-1:-1;;;20564:498:0:o;8980:156::-;9060:4;9084:44;9098:10;9110:9;9121:6;9084:13;:44::i;2538:94::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2598:19:0::1;;::::0;;;2620:4:::1;2598:19;::::0;;;;;;;:26;;-1:-1:-1;;2598:26:0::1;::::0;;::::1;::::0;;2538:94::o;10442:121::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;10529:17:::1;:26:::0;10442:121::o;19347:167::-;19415:7;19442:64;19483:22;:20;:22::i;:::-;19465:4;;-1:-1:-1;;;;;19465:4:0;8440:7;8458:18;;;:9;:18;;;;;;19442:36;;19455:22;;19475:1;;19455:15;:19;;:22::i;:::-;19442:8;;:12;:36::i;18838:156::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;18930:11:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;18930:22:0::1;-1:-1:-1::0;;;;18930:22:0;;::::1;::::0;;;::::1;::::0;;;18963:13:::1;:23:::0;18838:156::o;14947:123::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;15026:14:::1;:28:::0;14947:123::o;9893:318::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;10105:5:::1;10070:30;10055:12;;:45;;;;:::i;:::-;10054:56;;;;:::i;:::-;10034:17;:76:::0;10121:24:::1;:38:::0;;-1:-1:-1;;10121:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;10170:21:::1;:33:::0;-1:-1:-1;9893:318:0:o;2640:97::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2702:19:0::1;2724:5;2702:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;2702:27:0::1;::::0;;2640:97::o;9709:176::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;9872:5:::1;9842:25;9827:12;;:40;;;;:::i;:::-;9826:51;;;;:::i;:::-;9811:12;:66:::0;-1:-1:-1;9709:176:0:o;2971:173::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;3047:5:::1;:11:::0;;-1:-1:-1;;;;;;3047:11:0::1;-1:-1:-1::0;;;;;3047:11:0;::::1;::::0;;::::1;::::0;;3069:19;;;-1:-1:-1;3069:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;3069:26:0::1;::::0;;::::1;::::0;;;3111:25;;8157:51:1;;;3111:25:0::1;::::0;8130:18:1;3111:25:0::1;;;;;;;2971:173:::0;:::o;17671:128::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17759:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;17759:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17671:128::o;2856:107::-;-1:-1:-1;;;;;2936:19:0;2912:4;2936:19;;;:14;:19;;;;;;;;;2856:107::o;12824:330::-;12954:53;;;;;;;;;;;-1:-1:-1;;;12954:53:0;;;;;;;;-1:-1:-1;;;;;12954:17:0;;12917:4;12954:17;;;:9;:17;;;;;;;:53;;12976:6;;12954:21;:53::i;:::-;-1:-1:-1;;;;;12934:17:0;;;;;;;:9;:17;;;;;;:73;;;;13041:20;;;;;;;:32;;13066:6;13041:24;:32::i;:::-;-1:-1:-1;;;;;13018:20:0;;;;;;;:9;:20;;;;;;;:55;;;;13089:35;;;;;;-1:-1:-1;;;;;;;;;;;13089:35:0;;;13117:6;16682:25:1;;16670:2;16655:18;;16536:177;13089:35:0;;;;;;;;-1:-1:-1;13142:4:0;12824:330;;;;;:::o;422:192::-;508:7;544:12;536:6;;;;528:29;;;;-1:-1:-1;;;528:29:0;;;;;;;;:::i;:::-;-1:-1:-1;568:9:0;580:5;584:1;580;:5;:::i;:::-;568:17;422:192;-1:-1:-1;;;;;422:192:0:o;10675:2137::-;10787:6;;10767:4;;10787:6;;10784:63;;;10803:41;10818:6;10826:9;10837:6;10803:14;:41::i;:::-;10796:48;;;;10784:63;-1:-1:-1;;;;;10863:22:0;;;;;;:14;:22;;;;;;;;10862:23;:53;;;;-1:-1:-1;;;;;;10890:25:0;;;;;;:14;:25;;;;;;;;10889:26;10862:53;10859:236;;;10939:11;;-1:-1:-1;;;10939:11:0;;;;10931:43;;;;-1:-1:-1;;;10931:43:0;;12957:2:1;10931:43:0;;;12939:21:1;12996:2;12976:18;;;12969:30;-1:-1:-1;;;13015:18:1;;;13008:50;13075:18;;10931:43:0;12755:344:1;10931:43:0;10992:7;;-1:-1:-1;;;10992:7:0;;;;:25;;;;-1:-1:-1;11013:4:0;;-1:-1:-1;;;;;11003:14:0;;;11013:4;;11003:14;10992:25;10989:95;;;-1:-1:-1;;;;;11037:24:0;;;;;;:13;:24;;;;;:31;;-1:-1:-1;;11037:31:0;11064:4;11037:31;;;10989:95;11132:13;;;;11129:93;;;-1:-1:-1;;;;;11170:21:0;;;;;;:13;:21;;;;;;;;11169:22;11161:45;;;;-1:-1:-1;;;11161:45:0;;16398:2:1;11161:45:0;;;16380:21:1;16437:2;16417:18;;;16410:30;-1:-1:-1;;;16456:18:1;;;16449:41;16507:18;;11161:45:0;16196:335:1;11161:45:0;-1:-1:-1;;;;;11282:26:0;;;;;;:18;:26;;;;;;;;:55;;;;-1:-1:-1;11313:24:0;;;;11282:55;11278:335;;;-1:-1:-1;;;;;11362:21:0;;;;;;:13;:21;;;;;;11386:15;-1:-1:-1;11354:77:0;;;;-1:-1:-1;;;11354:77:0;;15703:2:1;11354:77:0;;;15685:21:1;15742:2;15722:18;;;15715:30;15781:28;15761:18;;;15754:56;15827:18;;11354:77:0;15501:350:1;11354:77:0;11464:17;;11454:6;:27;;11446:75;;;;-1:-1:-1;;;11446:75:0;;15298:2:1;11446:75:0;;;15280:21:1;15337:2;15317:18;;;15310:30;15376:34;15356:18;;;15349:62;-1:-1:-1;;;15427:18:1;;;15420:34;15471:19;;11446:75:0;15096:400:1;11446:75:0;11580:21;;11562:39;;:15;:39;:::i;:::-;-1:-1:-1;;;;;11538:21:0;;;;;;:13;:21;;;;;:63;11278:335;-1:-1:-1;;;;;11630:22:0;;;;;;:14;:22;;;;;;;;11629:23;:53;;;;-1:-1:-1;;;;;;11656:26:0;;11677:4;11656:26;;11629:53;:84;;;;-1:-1:-1;11708:4:0;;-1:-1:-1;;;;;11687:26:0;;;11708:4;;11687:26;;11629:84;:105;;;;-1:-1:-1;11730:4:0;;-1:-1:-1;;;;;11717:17:0;;;11730:4;;11717:17;;11629:105;:137;;;;-1:-1:-1;11751:15:0;;-1:-1:-1;;;;;11738:28:0;;;11751:15;;11738:28;;11629:137;11625:329;;;-1:-1:-1;;;;;8458:18:0;;11782;8458;;;:9;:18;;;;;;11871:15;;11847:19;11860:6;8458:18;11847:19;:::i;:::-;11846:40;;11838:114;;;;-1:-1:-1;;;11838:114:0;;13708:2:1;11838:114:0;;;13690:21:1;13747:2;13727:18;;;13720:30;13786:34;13766:18;;;13759:62;13857:32;13837:18;;;13830:60;13907:19;;11838:114:0;13506:426:1;11838:114:0;11767:187;11625:329;12009:28;12022:6;12030;12009:12;:28::i;:::-;12053:16;:14;:16::i;:::-;12050:339;;;12072:10;:8;:10::i;:::-;12050:339;;;-1:-1:-1;;;;;12104:22:0;;;;;;:14;:22;;;;;;;;12103:23;:53;;;;-1:-1:-1;;;;;;12131:25:0;;;;;;:14;:25;;;;;;;;12130:26;12103:53;:95;;;;-1:-1:-1;;;;;;12179:19:0;;;;;;:11;:19;;;;;;;;12178:20;12103:95;:133;;;;-1:-1:-1;12232:4:0;;-1:-1:-1;;;;;12219:17:0;;;12232:4;;12219:17;12103:133;:169;;;;-1:-1:-1;12257:15:0;;;;12103:169;:241;;;;;12329:15;;12312:14;;:32;;;;:::i;:::-;12293:15;:51;;12103:241;12100:289;;;12364:13;:11;:13::i;:::-;12448:53;;;;;;;;;;;-1:-1:-1;;;12448:53:0;;;;;;;;-1:-1:-1;;;;;12448:17:0;;-1:-1:-1;12448:17:0;;;:9;:17;;;;;;;;:53;;12470:6;;12448:21;:53::i;:::-;-1:-1:-1;;;;;12428:17:0;;;;;;:9;:17;;;;;;;;:73;;;;13423:11;:19;;;;;;;;13422:20;12540:22;:51;;;-1:-1:-1;;;;;;13423:19:0;;13398:4;13423:19;;;:11;:19;;;;;;;;13422:20;12566:25;12540:51;12539:108;;12641:4;;12604:43;;12612:6;;12620;;-1:-1:-1;;;;;12628:17:0;;;12641:4;;12628:17;12604:7;:43::i;:::-;12539:108;;;12595:6;12539:108;-1:-1:-1;;;;;12681:20:0;;;;;;:9;:20;;;;;;12514:133;;-1:-1:-1;12681:40:0;;12514:133;12681:24;:40::i;:::-;-1:-1:-1;;;;;12658:20:0;;;;;;;:9;:20;;;;;;;:63;;;;12739:43;;;;;;-1:-1:-1;;;;;;;;;;;12739:43:0;;;12767:14;16682:25:1;;16670:2;16655:18;;16536:177;12739:43:0;;;;;;;;-1:-1:-1;12800:4:0;;10675:2137;-1:-1:-1;;;;10675:2137:0:o;280:136::-;338:7;365:43;369:1;372;365:43;;;;;;;;;;;;;;;;;:3;:43::i;93:181::-;151:7;;183:5;187:1;183;:5;:::i;:::-;171:17;;212:1;207;:6;;199:46;;;;-1:-1:-1;;;199:46:0;;12245:2:1;199:46:0;;;12227:21:1;12284:2;12264:18;;;12257:30;12323:29;12303:18;;;12296:57;12370:18;;199:46:0;12043:351:1;620:250:0;678:7;702:6;698:47;;-1:-1:-1;732:1:0;725:8;;698:47;757:9;769:5;773:1;769;:5;:::i;:::-;757:17;-1:-1:-1;802:1:0;793:5;797:1;757:17;793:5;:::i;:::-;:10;785:56;;;;-1:-1:-1;;;785:56:0;;13306:2:1;785:56:0;;;13288:21:1;13345:2;13325:18;;;13318:30;13384:34;13364:18;;;13357:62;-1:-1:-1;;;13435:18:1;;;13428:31;13476:19;;785:56:0;13104:397:1;876:132:0;934:7;961:39;965:1;968;961:39;;;;;;;;;;;;;;;;;:3;:39::i;13162:166::-;13259:12;;13249:6;:22;;:49;;;-1:-1:-1;;;;;;13275:23:0;;;;;;:15;:23;;;;;;;;13249:49;13241:79;;;;-1:-1:-1;;;13241:79:0;;11184:2:1;13241:79:0;;;11166:21:1;11223:2;11203:18;;;11196:30;-1:-1:-1;;;11242:18:1;;;11235:47;11299:18;;13241:79:0;10982:341:1;13241:79:0;13162:166;;:::o;14247:197::-;14334:4;;14296;;-1:-1:-1;;;;;14334:4:0;14320:10;:18;;;;:38;;-1:-1:-1;14352:6:0;;;;14351:7;14320:38;:62;;;;-1:-1:-1;14371:11:0;;-1:-1:-1;;;14371:11:0;;;;14320:62;:116;;;;-1:-1:-1;;14423:13:0;;14413:4;14395:24;;;;:9;:24;;;;;;:41;;;14247:197::o;15310:1900::-;7001:6;:13;;-1:-1:-1;;7001:13:0;7010:4;7001:13;;;15405:15:::1;::::0;15422:26:::1;::::0;7001:6;;15389:60:::1;::::0;:15:::1;:60::i;:::-;:79;;15456:12;;15389:79;;;15452:1;15389:79;15359:109;;15479:23;15505:59;15562:1;15505:52;15548:8;;15505:38;15523:19;15505:13;;:17;;:38;;;;:::i;:59::-;15479:85;;15575:20;15598:34;15616:15;15598:13;;:17;;:34;;;;:::i;:::-;15669:16;::::0;;15683:1:::1;15669:16:::0;;;;;::::1;::::0;;15575:57;;-1:-1:-1;15645:21:0::1;::::0;15669:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15669:16:0::1;15645:40;;15714:4;15696;15701:1;15696:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15696:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;15740:4:::1;::::0;15730:7;;15740:4;::::1;::::0;15730;;15740;;15730:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;15730:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;15815:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;15815:188:0;;15781:21:::1;::::0;15815:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;15887:12;;15757:21:::1;::::0;15930:4;;15957::::1;::::0;15977:15:::1;::::0;15815:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16016:17;16036:40;16062:13;16036:21;:25;;:40;;;;:::i;:::-;16016:60:::0;-1:-1:-1;16089:19:0::1;16111:40;16124:26;:19:::0;16148:1:::1;16124:23;:26::i;:::-;16111:8;::::0;;:12:::1;:40::i;:::-;16089:62:::0;-1:-1:-1;16172:26:0::1;16201:58;16257:1;16201:51;16089:62:::0;16201:51;:9;16215:19;16201:13:::1;:34::i;:58::-;16172:87;;16270:26;16299:44;16331:11;16299:27;16313:12;;16299:9;:13;;:27;;;;:::i;:44::-;16270:73;;16354:21;16378:39;16405:11;16378:22;16392:7;;16378:9;:13;;:22;;;;:::i;:39::-;16354:63;;16428:24;16455:42;16485:11;16455:25;16469:10;;16455:9;:13;;:25;;;;:::i;:42::-;16539:20;::::0;16531:65:::1;::::0;16428:69;;-1:-1:-1;16511:15:0::1;::::0;-1:-1:-1;;;;;16539:20:0;;::::1;::::0;16573:18;;16511:15;16531:65;16511:15;16531:65;16573:18;16539:20;16531:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16631:18:0::1;::::0;16623:61:::1;::::0;16510:86;;-1:-1:-1;;;;;;16631:18:0::1;::::0;16663:16;;16623:61:::1;::::0;;;16663:16;16631:18;16623:61:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16719:15:0::1;::::0;16711:55:::1;::::0;16607:77;;-1:-1:-1;;;;;;16719:15:0::1;::::0;16748:13;;16711:55:::1;::::0;;;16748:13;16719:15;16711:55:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;16823:5:0::1;::::0;-1:-1:-1;;16844:19:0;;;-1:-1:-1;16841:362:0::1;;16879:6;::::0;17053:21:::1;::::0;16879:244:::1;::::0;-1:-1:-1;;;16879:244:0;;16955:4:::1;16879:244;::::0;::::1;9055:34:1::0;9105:18;;;9098:34;;;16879:6:0::1;9148:18:1::0;;;9141:34;;;9191:18;;;9184:34;-1:-1:-1;;;;;17053:21:0;;::::1;9234:19:1::0;;;9227:44;17093:15:0::1;9287:19:1::0;;;9280:35;16879:6:0;::::1;::::0;:22:::1;::::0;16909:18;;8989:19:1;;16879:244:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;17143:48:0::1;::::0;;17877:25:1;;;17933:2;17918:18;;17911:34;;;17143:48:0::1;::::0;-1:-1:-1;17850:18:1;17143:48:0::1;;;;;;;16841:362;-1:-1:-1::0;;7019:6:0;:14;;-1:-1:-1;;7019:14:0;;;-1:-1:-1;;;;;;;;;;15310:1900:0:o;21066:158::-;21105:11;21119:31;21133:16;;21119:13;:31::i;:::-;21105:45;;21160:6;21157:62;;;21196:15;21179:14;:32;21157:62;21098:126;21066:158::o;13458:781::-;13538:7;13568:18;13589:6;:29;;13615:3;13589:29;;;13598:14;;13589:29;13568:50;;13629:17;13649:62;13690:14;;13707:3;13690:20;;;;:::i;:::-;13649:36;13674:10;13649:20;13660:8;;13649:6;:10;;:20;;;;:::i;:62::-;13629:82;;13724:18;13745:36;13772:8;;13745:22;13759:7;;13745:9;:13;;:22;;;;:::i;:36::-;13724:57;-1:-1:-1;13792:22:0;13817:25;:9;13724:57;13817:13;:25::i;:::-;13900:4;13882:24;;;;:9;:24;;;;;;13792:50;;-1:-1:-1;13882:44:0;;13792:50;13882:28;:44::i;:::-;13873:4;13855:24;;;;:9;:24;;;;;;:71;;;;13976:15;;-1:-1:-1;;;;;13976:15:0;13966:26;;;;:42;;13997:10;13966:30;:42::i;:::-;13947:15;;-1:-1:-1;;;;;13947:15:0;;;13937:26;;;;:9;:26;;;;;;;;;:71;;;;14024:47;16682:25:1;;;14049:4:0;;14024:47;;;;-1:-1:-1;;;;;;;;;;;14024:47:0;16655:18:1;14024:47:0;;;;;;;14095:14;;14092:99;;14147:15;;14130:45;;16682:25:1;;;-1:-1:-1;;;;;14147:15:0;;;;14130:45;;;-1:-1:-1;;;;;;;;;;;14130:45:0;16670:2:1;16655:18;14130:45:0;;;;;;;14092:99;14210:21;:6;14221:9;14210:10;:21::i;:::-;14203:28;13458:781;-1:-1:-1;;;;;;;;13458:781:0:o;1014:189::-;1100:7;1135:12;1128:5;1120:28;;;;-1:-1:-1;;;1120:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1159:9:0;1171:5;1175:1;1171;:5;:::i;14:367:1:-;77:8;87:6;141:3;134:4;126:6;122:17;118:27;108:55;;159:1;156;149:12;108:55;-1:-1:-1;182:20:1;;225:18;214:30;;211:50;;;257:1;254;247:12;211:50;294:4;286:6;282:17;270:29;;354:3;347:4;337:6;334:1;330:14;322:6;318:27;314:38;311:47;308:67;;;371:1;368;361:12;308:67;14:367;;;;;:::o;386:247::-;445:6;498:2;486:9;477:7;473:23;469:32;466:52;;;514:1;511;504:12;466:52;553:9;540:23;572:31;597:5;572:31;:::i;898:388::-;966:6;974;1027:2;1015:9;1006:7;1002:23;998:32;995:52;;;1043:1;1040;1033:12;995:52;1082:9;1069:23;1101:31;1126:5;1101:31;:::i;:::-;1151:5;-1:-1:-1;1208:2:1;1193:18;;1180:32;1221:33;1180:32;1221:33;:::i;:::-;1273:7;1263:17;;;898:388;;;;;:::o;1291:813::-;1386:6;1394;1402;1410;1418;1471:3;1459:9;1450:7;1446:23;1442:33;1439:53;;;1488:1;1485;1478:12;1439:53;1527:9;1514:23;1546:31;1571:5;1546:31;:::i;:::-;1596:5;-1:-1:-1;1653:2:1;1638:18;;1625:32;1666:33;1625:32;1666:33;:::i;:::-;1718:7;-1:-1:-1;1777:2:1;1762:18;;1749:32;1790:33;1749:32;1790:33;:::i;:::-;1842:7;-1:-1:-1;1901:2:1;1886:18;;1873:32;1914:33;1873:32;1914:33;:::i;:::-;1966:7;-1:-1:-1;2025:3:1;2010:19;;1997:33;2039;1997;2039;:::i;:::-;2091:7;2081:17;;;1291:813;;;;;;;;:::o;2109:456::-;2186:6;2194;2202;2255:2;2243:9;2234:7;2230:23;2226:32;2223:52;;;2271:1;2268;2261:12;2223:52;2310:9;2297:23;2329:31;2354:5;2329:31;:::i;:::-;2379:5;-1:-1:-1;2436:2:1;2421:18;;2408:32;2449:33;2408:32;2449:33;:::i;:::-;2109:456;;2501:7;;-1:-1:-1;;;2555:2:1;2540:18;;;;2527:32;;2109:456::o;2570:908::-;2701:6;2709;2717;2725;2733;2786:2;2774:9;2765:7;2761:23;2757:32;2754:52;;;2802:1;2799;2792:12;2754:52;2841:9;2828:23;2860:31;2885:5;2860:31;:::i;:::-;2910:5;-1:-1:-1;2966:2:1;2951:18;;2938:32;2989:18;3019:14;;;3016:34;;;3046:1;3043;3036:12;3016:34;3085:70;3147:7;3138:6;3127:9;3123:22;3085:70;:::i;:::-;3174:8;;-1:-1:-1;3059:96:1;-1:-1:-1;3262:2:1;3247:18;;3234:32;;-1:-1:-1;3278:16:1;;;3275:36;;;3307:1;3304;3297:12;3275:36;;3346:72;3410:7;3399:8;3388:9;3384:24;3346:72;:::i;:::-;2570:908;;;;-1:-1:-1;2570:908:1;;-1:-1:-1;3437:8:1;;3320:98;2570:908;-1:-1:-1;;;2570:908:1:o;3483:382::-;3548:6;3556;3609:2;3597:9;3588:7;3584:23;3580:32;3577:52;;;3625:1;3622;3615:12;3577:52;3664:9;3651:23;3683:31;3708:5;3683:31;:::i;:::-;3733:5;-1:-1:-1;3790:2:1;3775:18;;3762:32;3803:30;3762:32;3803:30;:::i;3870:315::-;3938:6;3946;3999:2;3987:9;3978:7;3974:23;3970:32;3967:52;;;4015:1;4012;4005:12;3967:52;4054:9;4041:23;4073:31;4098:5;4073:31;:::i;:::-;4123:5;4175:2;4160:18;;;;4147:32;;-1:-1:-1;;;3870:315:1:o;4190:566::-;4282:6;4290;4298;4351:2;4339:9;4330:7;4326:23;4322:32;4319:52;;;4367:1;4364;4357:12;4319:52;4407:9;4394:23;4440:18;4432:6;4429:30;4426:50;;;4472:1;4469;4462:12;4426:50;4511:70;4573:7;4564:6;4553:9;4549:22;4511:70;:::i;:::-;4600:8;;-1:-1:-1;4485:96:1;-1:-1:-1;;4685:2:1;4670:18;;4657:32;4698:28;4657:32;4698:28;:::i;:::-;4745:5;4735:15;;;4190:566;;;;;:::o;4761:241::-;4817:6;4870:2;4858:9;4849:7;4845:23;4841:32;4838:52;;;4886:1;4883;4876:12;4838:52;4925:9;4912:23;4944:28;4966:5;4944:28;:::i;5007:245::-;5074:6;5127:2;5115:9;5106:7;5102:23;5098:32;5095:52;;;5143:1;5140;5133:12;5095:52;5175:9;5169:16;5194:28;5216:5;5194:28;:::i;5257:309::-;5322:6;5330;5383:2;5371:9;5362:7;5358:23;5354:32;5351:52;;;5399:1;5396;5389:12;5351:52;5438:9;5425:23;5457:28;5479:5;5457:28;:::i;5571:180::-;5630:6;5683:2;5671:9;5662:7;5658:23;5654:32;5651:52;;;5699:1;5696;5689:12;5651:52;-1:-1:-1;5722:23:1;;5571:180;-1:-1:-1;5571:180:1:o;5756:184::-;5826:6;5879:2;5867:9;5858:7;5854:23;5850:32;5847:52;;;5895:1;5892;5885:12;5847:52;-1:-1:-1;5918:16:1;;5756:184;-1:-1:-1;5756:184:1:o;5945:377::-;6019:6;6027;6035;6088:2;6076:9;6067:7;6063:23;6059:32;6056:52;;;6104:1;6101;6094:12;6056:52;6140:9;6127:23;6117:33;;6200:2;6189:9;6185:18;6172:32;6213:28;6235:5;6213:28;:::i;6327:248::-;6395:6;6403;6456:2;6444:9;6435:7;6431:23;6427:32;6424:52;;;6472:1;6469;6462:12;6424:52;-1:-1:-1;;6495:23:1;;;6565:2;6550:18;;;6537:32;;-1:-1:-1;6327:248:1:o;6580:377::-;6654:6;6662;6670;6723:2;6711:9;6702:7;6698:23;6694:32;6691:52;;;6739:1;6736;6729:12;6691:52;6775:9;6762:23;6752:33;;6832:2;6821:9;6817:18;6804:32;6794:42;;6886:2;6875:9;6871:18;6858:32;6899:28;6921:5;6899:28;:::i;6962:306::-;7050:6;7058;7066;7119:2;7107:9;7098:7;7094:23;7090:32;7087:52;;;7135:1;7132;7125:12;7087:52;7164:9;7158:16;7148:26;;7214:2;7203:9;7199:18;7193:25;7183:35;;7258:2;7247:9;7243:18;7237:25;7227:35;;6962:306;;;;;:::o;7273:523::-;7377:6;7385;7393;7401;7409;7417;7470:3;7458:9;7449:7;7445:23;7441:33;7438:53;;;7487:1;7484;7477:12;7438:53;-1:-1:-1;;7510:23:1;;;7580:2;7565:18;;7552:32;;-1:-1:-1;7631:2:1;7616:18;;7603:32;;7682:2;7667:18;;7654:32;;-1:-1:-1;7733:3:1;7718:19;;7705:33;;-1:-1:-1;7785:3:1;7770:19;7757:33;;-1:-1:-1;7273:523:1;-1:-1:-1;7273:523:1:o;9971:597::-;10083:4;10112:2;10141;10130:9;10123:21;10173:6;10167:13;10216:6;10211:2;10200:9;10196:18;10189:34;10241:1;10251:140;10265:6;10262:1;10259:13;10251:140;;;10360:14;;;10356:23;;10350:30;10326:17;;;10345:2;10322:26;10315:66;10280:10;;10251:140;;;10409:6;10406:1;10403:13;10400:91;;;10479:1;10474:2;10465:6;10454:9;10450:22;10446:31;10439:42;10400:91;-1:-1:-1;10552:2:1;10531:15;-1:-1:-1;;10527:29:1;10512:45;;;;10559:2;10508:54;;9971:597;-1:-1:-1;;;9971:597:1:o;14762:329::-;14964:2;14946:21;;;15003:1;14983:18;;;14976:29;-1:-1:-1;;;15036:2:1;15021:18;;15014:36;15082:2;15067:18;;14762:329::o;15856:335::-;16058:2;16040:21;;;16097:2;16077:18;;;16070:30;-1:-1:-1;;;16131:2:1;16116:18;;16109:41;16182:2;16167:18;;15856:335::o;16718:980::-;16980:4;17028:3;17017:9;17013:19;17059:6;17048:9;17041:25;17085:2;17123:6;17118:2;17107:9;17103:18;17096:34;17166:3;17161:2;17150:9;17146:18;17139:31;17190:6;17225;17219:13;17256:6;17248;17241:22;17294:3;17283:9;17279:19;17272:26;;17333:2;17325:6;17321:15;17307:29;;17354:1;17364:195;17378:6;17375:1;17372:13;17364:195;;;17443:13;;-1:-1:-1;;;;;17439:39:1;17427:52;;17534:15;;;;17499:12;;;;17475:1;17393:9;17364:195;;;-1:-1:-1;;;;;;;17615:32:1;;;;17610:2;17595:18;;17588:60;-1:-1:-1;;;17679:3:1;17664:19;17657:35;17576:3;16718:980;-1:-1:-1;;;16718:980:1:o;18145:128::-;18185:3;18216:1;18212:6;18209:1;18206:13;18203:39;;;18222:18;;:::i;:::-;-1:-1:-1;18258:9:1;;18145:128::o;18278:217::-;18318:1;18344;18334:132;;18388:10;18383:3;18379:20;18376:1;18369:31;18423:4;18420:1;18413:15;18451:4;18448:1;18441:15;18334:132;-1:-1:-1;18480:9:1;;18278:217::o;18500:168::-;18540:7;18606:1;18602;18598:6;18594:14;18591:1;18588:21;18583:1;18576:9;18569:17;18565:45;18562:71;;;18613:18;;:::i;:::-;-1:-1:-1;18653:9:1;;18500:168::o;18673:125::-;18713:4;18741:1;18738;18735:8;18732:34;;;18746:18;;:::i;:::-;-1:-1:-1;18783:9:1;;18673:125::o;18803:135::-;18842:3;-1:-1:-1;;18863:17:1;;18860:43;;;18883:18;;:::i;:::-;-1:-1:-1;18930:1:1;18919:13;;18803:135::o;18943:127::-;19004:10;18999:3;18995:20;18992:1;18985:31;19035:4;19032:1;19025:15;19059:4;19056:1;19049:15;19075:127;19136:10;19131:3;19127:20;19124:1;19117:31;19167:4;19164:1;19157:15;19191:4;19188:1;19181:15;19339:131;-1:-1:-1;;;;;19414:31:1;;19404:42;;19394:70;;19460:1;19457;19450:12;19475:118;19561:5;19554:13;19547:21;19540:5;19537:32;19527:60;;19583:1;19580;19573:12

Swarm Source

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