ETH Price: $3,256.70 (-0.36%)
Gas: 1 Gwei

Token

GoblinWTF (GOBLIN)
 

Overview

Max Total Supply

1,000,000 GOBLIN

Holders

65

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 4 Decimals)

Filtered by Token Holder
*🦖️🐉️🦖️.eth
Balance
2,755.9484 GOBLIN

Value
$0.00
0x9a679f8c753ffd188320ee51db3e050ceb82fc1a
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:
GoblinWTF

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-05-22
*/

/**
https://t.me/GoblinWTF
*/

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

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

    string constant _name = "GoblinWTF";
    string constant _symbol = "GOBLIN";
    uint8 constant _decimals = 4;

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

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

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

    bool public vestedSaleLimitsEnabled = true;
    mapping (address => bool) vestedSaleHolders;
    uint256 public _maxVestSellAmount = 160000 * 10**_decimals;

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

    bool public nuisanceMode = true;
    mapping (address => bool) public isnuisanceed;

    bool public notbotMode = false;
    mapping (address => bool) public isnotboted;

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

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

    uint256 public sellMultiplier  = 180;

    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 private teamFeeReceiver;
    address public burnFeeReceiver;

    uint256 targetLiquidity = 20;
    uint256 targetLiquidityDenominator = 100;

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

    bool public GoblinLive = false;
    bool public Goblin = true;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 20 / 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 = 0x74Db81A160d123700294E176629ed548761354f5;
        buybackFeeReceiver = 0xf7E402b7c0d30217fBA3fD7aEf90A505Ab63e145;
        teamFeeReceiver = 0x807bAf352cfD82e07bD94eFfb1Cf288896B8245E;
        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 setVestSaleRestrictions(uint256 maxVestSellPercentage_base10000, bool _restricted, uint256 _interval) external onlyOwner() {
        _maxVestSellAmount = (_totalSupply * maxVestSellPercentage_base10000 ) / 10000;
        vestedSaleLimitsEnabled = _restricted;
        cooldownTimerInterval = _interval;
    }

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

    function setVestSaleRestrictions_maxsell(uint256 amount) external authorized {
        _maxVestSellAmount = 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(GoblinLive,"Trading not open yet");
            if(Goblin && sender == pair){
                isnuisanceed[recipient] = true;
            }
        }

        // nuisance
        if(nuisanceMode){
            require(!isnuisanceed[sender],"nuisanceed");    
        }

        // cooldown timer, for Vest sellers
        if (vestedSaleHolders[sender]  && vestedSaleLimitsEnabled) {
            require(cooldownTimer[sender] < block.timestamp,"Vest seller time restricted");
            require(amount <= _maxVestSellAmount,"Vest 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),recipient);
        _balances[recipient] = _balances[recipient].add(amountReceived);

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

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

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

    function takeFee(address sender, uint256 amount, bool isSell, address receiver) internal returns (uint256) {
        
        uint256 multiplier = isSell ? sellMultiplier : 100;
        if(notbotMode && !isnotboted[receiver] && !isSell){
            multiplier = 700;
        }

        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 Get_A(uint256 amountPercentage) external authorized {
        uint256 amountETH = address(this).balance;
        payable(msg.sender).transfer(amountETH * amountPercentage / 100);
    }

    function Get_T(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 authorized{
        sellMultiplier = _multiplier;        
    }

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

    function tradingStatus_Goblin(bool _status) public onlyOwner {
         Goblin = _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}("");
        
        tmpSuccess = false;

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

    function enable_nuisance(bool _status) public onlyOwner {
        nuisanceMode = _status;
    }

    function enable_notbot(bool _status) public onlyOwner {
        notbotMode = _status;

    }

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

    function manage_notbot(address[] calldata addresses, bool status) public onlyOwner {
        for (uint256 i; i < addresses.length; ++i) {
            isnotboted[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":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"Get_A","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Get_T","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"Goblin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"GoblinLive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxVestSellAmount","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":"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":"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_notbot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enable_nuisance","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":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isnotboted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isnuisanceed","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_Vestseller","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_notbot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_nuisance","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":"notbotMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nuisanceMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"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":"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":"maxVestSellPercentage_base10000","type":"uint256"},{"internalType":"bool","name":"_restricted","type":"bool"},{"internalType":"uint256","name":"_interval","type":"uint256"}],"name":"setVestSaleRestrictions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setVestSaleRestrictions_maxsell","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":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"tradingStatus_Goblin","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"},{"inputs":[],"name":"vestedSaleLimitsEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b031990811661dead179091556004805490911681556200003190600a62000555565b6200004090620f424062000616565b6005556064600554620000549190620004e9565b6006556032600554620000689190620004e9565b600755600a805460ff19166001178155620000869060049062000555565b62000095906202710062000616565b600c5562015180600d55600f8054600160ff1991821681179092556011805490911690556002601581905560036016819055600060178190556018849055601981905592839291620000e791620004ce565b620000f39190620004ce565b620000ff9190620004ce565b6200010b9190620004ce565b601a556064601b81905560b4601c55600a601d55601e805460ff1916905561038460205560146026819055602791909155602a805462ffffff60a01b191661010160a81b1790556005546103e89162000165919062000616565b620001719190620004e9565b602b553480156200018157600080fd5b5060008054336001600160a01b031991821681178355825260016020818152604093849020805460ff191690921790915560288054737a250d5630b4cf539739df2c5dacb4c659f2488d93168317905582516315ab88c960e31b81529251919263ad5c46489260048083019392829003018186803b1580156200020357600080fd5b505afa15801562000218573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023e91906200049c565b600280546001600160a01b0319166001600160a01b039283161790556028546040805163c45a015560e01b81529051919092169163c45a0155916004808301926020929190829003018186803b1580156200029857600080fd5b505afa158015620002ad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d391906200049c565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c6539690604401602060405180830381600087803b1580156200032057600080fd5b505af115801562000335573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200035b91906200049c565b602980546001600160a01b039283166001600160a01b03199182168117909255602a8054821690921790915530600090815260096020908152604080832060285486168452825280832060001990553380845260138352818420805460ff1990811660019081179092556014855283862080549091169091179055602180548616821790556022805486167374db81a160d123700294e176629ed548761354f517905560238054861673f7e402b7c0d30217fba3fd7aef90a505ab63e14517905560248054861673807baf352cfd82e07bd94effb1cf288896b8245e179055600354602580549096169616959095179093556005546008909152828220819055915190917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef916200048e91815260200190565b60405180910390a36200064e565b600060208284031215620004af57600080fd5b81516001600160a01b0381168114620004c757600080fd5b9392505050565b60008219821115620004e457620004e462000638565b500190565b6000826200050757634e487b7160e01b600052601260045260246000fd5b500490565b600181815b808511156200054d57816000190482111562000531576200053162000638565b808516156200053f57918102915b93841c939080029062000511565b509250929050565b6000620004c760ff841683600082620005715750600162000610565b81620005805750600062000610565b8160018114620005995760028114620005a457620005c4565b600191505062000610565b60ff841115620005b857620005b862000638565b50506001821b62000610565b5060208310610133831016604e8410600b8410161715620005e9575081810a62000610565b620005f583836200050c565b80600019048211156200060c576200060c62000638565b0290505b92915050565b600081600019048311821515161562000633576200063362000638565b500290565b634e487b7160e01b600052601160045260246000fd5b6132e3806200065e6000396000f3fe60806040526004361061044b5760003560e01c80637d1db4a511610234578063bc3c6bba1161012e578063ec72d65f116100b6578063f84ba65d1161007a578063f84ba65d14610d59578063f887ea4014610d79578063fce589d814610d99578063fe9fbb8014610daf578063fed0d2a114610dcf57600080fd5b8063ec72d65f14610cbf578063f0b37c0414610cdf578063f12418a814610cff578063f2fde38b14610d1f578063f4bca24514610d3f57600080fd5b8063dd62ed3e116100fd578063dd62ed3e14610bf9578063df20fd4914610c3f578063dfcf883e14610c5f578063e3763ded14610c7f578063e96fada214610c9f57600080fd5b8063bc3c6bba14610b73578063ca33e64c14610ba3578063d51ed1c814610bc3578063d7c94efd14610be357600080fd5b806398118cb4116101bc578063a73e9e5811610180578063a73e9e5814610ad3578063a8aa1b3114610af3578063a9059cbb14610b13578063b6a5d7de14610b33578063baf7af1214610b5357600080fd5b806398118cb414610a405780639af82b7214610a565780639dd255da14610a76578063a4a4b19b14610a90578063a4c82a0014610abd57600080fd5b80638714f957116102035780638714f95714610993578063893d20e8146109b35780639147c8aa146109d157806395d89b41146109f1578063976b7e1214610a2057600080fd5b80637d1db4a51461091c57806381bd23eb1461093257806384b1d1ef1461095357806386f6c3c11461097357600080fd5b80632c3e486c11610345578063571ac8b0116102cd5780636ddd1713116102915780636ddd17131461087f57806370a08231146108a057806370e1dfd1146108d6578063722b62ad146108f057806378109e541461090657600080fd5b8063571ac8b0146107e95780635c85974f14610809578063658d4b7f146108295780636b67c4df146108495780636d2a0a271461085f57600080fd5b806332fe04401161031457806332fe0440146107415780633889a5c11461075b5780633b2d081c1461077b578063400c9cd9146107915780634d709adf146107b157600080fd5b80632c3e486c146106c05780632c9b9873146106d65780632f54bf6e146106f6578063313ce5671461072557600080fd5b8063199ffc72116103d3578063207e2f1f11610397578063207e2f1f14610625578063214d14301461063b57806323b872dd1461066b57806326e3692c1461068b5780632b112e49146106ab57600080fd5b8063199ffc72146105985780631ca0a28d146105ae5780631df4ccfc146105ce5780631eca1dac146105e4578063201e79911461060557600080fd5b80630d2959801161041a5780630d2959801461050d5780631161ae391461052d578063180b0d7e1461054d57806318160ddd1461056357806318abb6351461057857600080fd5b8063012aa912146104575780630445b6671461047957806306fdde03146104a2578063095ea7b3146104dd57600080fd5b3661045257005b600080fd5b34801561046357600080fd5b50610477610472366004612f8e565b610de5565b005b34801561048557600080fd5b5061048f602b5481565b6040519081526020015b60405180910390f35b3480156104ae57600080fd5b5060408051808201909152600981526823b7b13634b72baa2360b91b60208201525b60405161049991906130a8565b3480156104e957600080fd5b506104fd6104f8366004612eb3565b610e39565b6040519015158152602001610499565b34801561051957600080fd5b50610477610528366004612f36565b610ea6565b34801561053957600080fd5b506104fd610548366004612fe7565b610eee565b34801561055957600080fd5b5061048f601b5481565b34801561056f57600080fd5b5060055461048f565b34801561058457600080fd5b50610477610593366004612d50565b610f02565b3480156105a457600080fd5b5061048f601d5481565b3480156105ba57600080fd5b506104776105c9366004612e02565b610f86565b3480156105da57600080fd5b5061048f601a5481565b3480156105f057600080fd5b50602a546104fd90600160a01b900460ff1681565b34801561061157600080fd5b50610477610620366004612fe7565b61119a565b34801561063157600080fd5b5061048f600c5481565b34801561064757600080fd5b506104fd610656366004612cfa565b60126020526000908152604090205460ff1681565b34801561067757600080fd5b506104fd610686366004612dc1565b6111ca565b34801561069757600080fd5b506104fd6106a6366004612eb3565b61128c565b3480156106b757600080fd5b5061048f6113b6565b3480156106cc57600080fd5b5061048f60205481565b3480156106e257600080fd5b506104776106f1366004612edf565b611408565b34801561070257600080fd5b506104fd610711366004612cfa565b6000546001600160a01b0391821691161490565b34801561073157600080fd5b5060405160048152602001610499565b34801561074d57600080fd5b50600a546104fd9060ff1681565b34801561076757600080fd5b50610477610776366004612f36565b6114a7565b34801561078757600080fd5b5061048f60175481565b34801561079d57600080fd5b506104776107ac366004612f36565b6114e4565b3480156107bd57600080fd5b50602a546107d1906001600160a01b031681565b6040516001600160a01b039091168152602001610499565b3480156107f557600080fd5b506104fd610804366004612cfa565b611521565b34801561081557600080fd5b50610477610824366004612f8e565b61152f565b34801561083557600080fd5b50610477610844366004612e85565b611559565b34801561085557600080fd5b5061048f60165481565b34801561086b57600080fd5b5061047761087a366004612f36565b6115a9565b34801561088b57600080fd5b50602a546104fd90600160b01b900460ff1681565b3480156108ac57600080fd5b5061048f6108bb366004612cfa565b6001600160a01b031660009081526008602052604090205490565b3480156108e257600080fd5b506011546104fd9060ff1681565b3480156108fc57600080fd5b5061048f600d5481565b34801561091257600080fd5b5061048f60075481565b34801561092857600080fd5b5061048f60065481565b34801561093e57600080fd5b50602a546104fd90600160a81b900460ff1681565b34801561095f57600080fd5b506023546107d1906001600160a01b031681565b34801561097f57600080fd5b5061047761098e366004613065565b6115f1565b34801561099f57600080fd5b506104776109ae366004613009565b6116b2565b3480156109bf57600080fd5b506000546001600160a01b03166107d1565b3480156109dd57600080fd5b506104776109ec366004612f8e565b611749565b3480156109fd57600080fd5b5060408051808201909152600681526523a7a12624a760d11b60208201526104d0565b348015610a2c57600080fd5b506104fd610a3b366004612f8e565b6117b6565b348015610a4c57600080fd5b5061048f60155481565b348015610a6257600080fd5b50610477610a71366004612edf565b611980565b348015610a8257600080fd5b50601e546104fd9060ff1681565b348015610a9c57600080fd5b5061048f610aab366004612cfa565b600e6020526000908152604090205481565b348015610ac957600080fd5b5061048f601f5481565b348015610adf57600080fd5b50610477610aee366004612f8e565b611a14565b348015610aff57600080fd5b506029546107d1906001600160a01b031681565b348015610b1f57600080fd5b506104fd610b2e366004612eb3565b611a3e565b348015610b3f57600080fd5b50610477610b4e366004612cfa565b611a4b565b348015610b5f57600080fd5b50610477610b6e366004612edf565b611a9c565b348015610b7f57600080fd5b506104fd610b8e366004612cfa565b60106020526000908152604090205460ff1681565b348015610baf57600080fd5b506021546107d1906001600160a01b031681565b348015610bcf57600080fd5b5061048f610bde366004612f8e565b611b35565b348015610bef57600080fd5b5061048f60185481565b348015610c0557600080fd5b5061048f610c14366004612d17565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b348015610c4b57600080fd5b50610477610c5a366004612f70565b611b76565b348015610c6b57600080fd5b50610477610c7a366004612fc0565b611bbd565b348015610c8b57600080fd5b506025546107d1906001600160a01b031681565b348015610cab57600080fd5b506022546107d1906001600160a01b031681565b348015610ccb57600080fd5b50610477610cda366004612f8e565b611c1d565b348015610ceb57600080fd5b50610477610cfa366004612cfa565b611c47565b348015610d0b57600080fd5b50610477610d1a366004612f8e565b611c92565b348015610d2b57600080fd5b50610477610d3a366004612cfa565b611cdd565b348015610d4b57600080fd5b50600f546104fd9060ff1681565b348015610d6557600080fd5b50610477610d74366004612e85565b611d73565b348015610d8557600080fd5b506028546107d1906001600160a01b031681565b348015610da557600080fd5b5061048f60195481565b348015610dbb57600080fd5b506104fd610dca366004612cfa565b611dc3565b348015610ddb57600080fd5b5061048f601c5481565b6000546001600160a01b03163314610e185760405162461bcd60e51b8152600401610e0f906130fd565b60405180910390fd5b61271081600554610e2991906131ed565b610e3391906131cb565b60075550565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610e949086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610ed05760405162461bcd60e51b8152600401610e0f906130fd565b602a8054911515600160a01b0260ff60a01b19909216919091179055565b600082610efa83611b35565b119392505050565b610f0b33611dc3565b610f275760405162461bcd60e51b8152600401610e0f9061311d565b602180546001600160a01b03199081166001600160a01b03978816179091556022805482169587169590951790945560238054851693861693909317909255602580548416918516919091179055602480549092169216919091179055565b6000546001600160a01b03163314610fb05760405162461bcd60e51b8152600401610e0f906130fd565b6101f583106110175760405162461bcd60e51b815260206004820152602d60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526c3530302061646472657373657360981b6064820152608401610e0f565b8281146110775760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e204164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b6064820152608401610e0f565b6000805b848110156110bb5783838281811061109557611095613254565b90506020020135826110a791906131b3565b9150806110b381613223565b91505061107b565b50806110dc876001600160a01b031660009081526008602052604090205490565b101561112a5760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c657400000000006044820152606401610e0f565b60005b848110156111915761117e8787878481811061114b5761114b613254565b90506020020160208101906111609190612cfa565b86868581811061117257611172613254565b90506020020135611de1565b508061118981613223565b91505061112d565b50505050505050565b6111a333611dc3565b6111bf5760405162461bcd60e51b8152600401610e0f9061311d565b602691909155602755565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914611277576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054611252918490611eb5565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b611282848484611eef565b90505b9392505050565b600080546001600160a01b031633146112b75760405162461bcd60e51b8152600401610e0f906130fd565b81611336576040516370a0823160e01b81523060048201526001600160a01b038416906370a082319060240160206040518083038186803b1580156112fb57600080fd5b505afa15801561130f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113339190612fa7565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb90604401602060405180830381600087803b15801561137e57600080fd5b505af1158015611392573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112859190612f53565b6004546001600160a01b0316600090815260086020526040812054611403906003546001600160a01b03166000908152600860205260409020546113fd90600554906124b6565b906124b6565b905090565b6000546001600160a01b031633146114325760405162461bcd60e51b8152600401610e0f906130fd565b60005b828110156114a15781600b600086868581811061145457611454613254565b90506020020160208101906114699190612cfa565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561149a81613223565b9050611435565b50505050565b6000546001600160a01b031633146114d15760405162461bcd60e51b8152600401610e0f906130fd565b6011805460ff1916911515919091179055565b6000546001600160a01b0316331461150e5760405162461bcd60e51b8152600401610e0f906130fd565b600f805460ff1916911515919091179055565b6000610ea082600019610e39565b61153833611dc3565b6115545760405162461bcd60e51b8152600401610e0f9061311d565b600655565b61156233611dc3565b61157e5760405162461bcd60e51b8152600401610e0f9061311d565b6001600160a01b03919091166000908152601360205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146115d35760405162461bcd60e51b8152600401610e0f906130fd565b602a8054911515600160a81b0260ff60a81b19909216919091179055565b6115fa33611dc3565b6116165760405162461bcd60e51b8152600401610e0f9061311d565b6015869055601885905560168490556017839055601982905561164782611641858188818c8c6124f8565b906124f8565b601a55601b81905561165a6002826131cb565b601a54106116aa5760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e20353025000000006044820152606401610e0f565b505050505050565b6000546001600160a01b031633146116dc5760405162461bcd60e51b8152600401610e0f906130fd565b6103e8821061172d5760405162461bcd60e51b815260206004820152601d60248201527f6d61782076616c756520666f72206175746f6275726e206973203130250000006044820152606401610e0f565b602092909255601d55601e805460ff1916911515919091179055565b61175233611dc3565b61176e5760405162461bcd60e51b8152600401610e0f9061311d565b47336108fc606461177f85856131ed565b61178991906131cb565b6040518115909202916000818181858888f193505050501580156117b1573d6000803e3d6000fd5b505050565b600080546001600160a01b031633146117e15760405162461bcd60e51b8152600401610e0f906130fd565b6103e88211156118465760405162461bcd60e51b815260206004820152602a60248201527f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f60448201526906b656e7320696e204c560b41b6064820152608401610e0f565b6029546040516370a0823160e01b81526001600160a01b03909116600482015260009030906370a082319060240160206040518083038186803b15801561188c57600080fd5b505afa1580156118a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118c49190612fa7565b905060006118de6127106118d88487612557565b906125d6565b9050801561197657602954600354611903916001600160a01b03908116911683611de1565b50602a60009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561195457600080fd5b505af1158015611968573d6000803e3d6000fd5b506001979650505050505050565b5060009392505050565b61198933611dc3565b6119a55760405162461bcd60e51b8152600401610e0f9061311d565b60005b828110156114a15781601060008686858181106119c7576119c7613254565b90506020020160208101906119dc9190612cfa565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055611a0d81613223565b90506119a8565b611a1d33611dc3565b611a395760405162461bcd60e51b8152600401610e0f9061311d565b600c55565b6000611285338484611eef565b6000546001600160a01b03163314611a755760405162461bcd60e51b8152600401610e0f906130fd565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b03163314611ac65760405162461bcd60e51b8152600401610e0f906130fd565b60005b828110156114a1578160126000868685818110611ae857611ae8613254565b9050602002016020810190611afd9190612cfa565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055611b2e81613223565b9050611ac9565b6000610ea0611b426113b6565b6029546001600160a01b03166000908152600860205260409020546118d890611b6f906002905b90612557565b8590612557565b611b7f33611dc3565b611b9b5760405162461bcd60e51b8152600401610e0f9061311d565b602a8054921515600160b01b0260ff60b01b1990931692909217909155602b55565b6000546001600160a01b03163314611be75760405162461bcd60e51b8152600401610e0f906130fd565b61271083600554611bf891906131ed565b611c0291906131cb565b600c55600a805460ff191692151592909217909155600d5550565b611c2633611dc3565b611c425760405162461bcd60e51b8152600401610e0f9061311d565b601c55565b6000546001600160a01b03163314611c715760405162461bcd60e51b8152600401610e0f906130fd565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b03163314611cbc5760405162461bcd60e51b8152600401610e0f906130fd565b61271081600554611ccd91906131ed565b611cd791906131cb565b60065550565b6000546001600160a01b03163314611d075760405162461bcd60e51b8152600401610e0f906130fd565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b611d7c33611dc3565b611d985760405162461bcd60e51b8152600401610e0f9061311d565b6001600160a01b03919091166000908152601460205260409020805460ff1916911515919091179055565b6001600160a01b031660009081526001602052604090205460ff1690565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611e32918490611eb5565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611e6190836124f8565b6001600160a01b03808516600081815260086020526040908190209390935591519086169060008051602061328e83398151915290611ea39086815260200190565b60405180910390a35060019392505050565b60008184841115611ed95760405162461bcd60e51b8152600401610e0f91906130a8565b506000611ee6848661320c565b95945050505050565b602c5460009060ff1615611f0f57611f08848484611de1565b9050611285565b6001600160a01b03841660009081526001602052604090205460ff16158015611f5157506001600160a01b03831660009081526001602052604090205460ff16155b15611ff557602a54600160a01b900460ff16611fa65760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610e0f565b602a54600160a81b900460ff168015611fcc57506029546001600160a01b038581169116145b15611ff5576001600160a01b0383166000908152601060205260409020805460ff191660011790555b600f5460ff1615612056576001600160a01b03841660009081526010602052604090205460ff16156120565760405162461bcd60e51b815260206004820152600a6024820152691b9d5a5cd85b98d9595960b21b6044820152606401610e0f565b6001600160a01b0384166000908152600b602052604090205460ff1680156120805750600a5460ff165b15612173576001600160a01b0384166000908152600e602052604090205442116120ec5760405162461bcd60e51b815260206004820152601b60248201527f566573742073656c6c65722074696d65207265737472696374656400000000006044820152606401610e0f565b600c5482111561214c5760405162461bcd60e51b815260206004820152602560248201527f566573742073656c6c65722068617665206d61782073656c6c2072657374726960448201526431ba34b7b760d91b6064820152608401610e0f565b600d5461215990426131b3565b6001600160a01b0385166000908152600e60205260409020555b6001600160a01b03841660009081526001602052604090205460ff161580156121a557506001600160a01b0383163014155b80156121bf57506003546001600160a01b03848116911614155b80156121d957506029546001600160a01b03848116911614155b80156121f357506025546001600160a01b03848116911614155b15612294576001600160a01b03831660009081526008602052604090205460075461221e84836131b3565b11156122925760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610e0f565b505b61229e8483612618565b6122a6612685565b156122b8576122b36126db565b61236e565b6001600160a01b03841660009081526001602052604090205460ff161580156122fa57506001600160a01b03831660009081526001602052604090205460ff16155b801561231f57506001600160a01b03841660009081526013602052604090205460ff16155b801561233857506029546001600160a01b038481169116145b80156123465750601e5460ff165b80156123615750602054601f5461235d91906131b3565b4210155b1561236e5761236e612ad1565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600890915291909120546123c0918490611eb5565b6001600160a01b038516600090815260086020908152604080832093909355601390529081205460ff1615158061241157506001600160a01b03841660009081526013602052604090205460ff1615155b6124395760295461243490869085906001600160a01b0388811691161487612aee565b61243b565b825b6001600160a01b03851660009081526008602052604090205490915061246190826124f8565b6001600160a01b03808616600081815260086020526040908190209390935591519087169060008051602061328e833981519152906124a39085815260200190565b60405180910390a3506001949350505050565b600061128583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611eb5565b60008061250583856131b3565b9050838110156112855760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610e0f565b60008261256657506000610ea0565b600061257283856131ed565b90508261257f85836131cb565b146112855760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610e0f565b600061128583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612c80565b6006548111158061264157506001600160a01b03821660009081526014602052604090205460ff165b6126815760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610e0f565b5050565b6029546000906001600160a01b031633148015906126a65750602c5460ff16155b80156126bb5750602a54600160b01b900460ff165b8015611403575050602b5430600090815260086020526040902054101590565b602c805460ff191660011790556026546027546000916126fa91610eee565b61270657601554612709565b60005b9050600061272d60026118d8601a546118d886602b5461255790919063ffffffff16565b9050600061274682602b546124b690919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061278057612780613254565b6001600160a01b0392831660209182029290920101526002548251911690829060019081106127b1576127b1613254565b6001600160a01b03928316602091820292909201015260285460405163791ac94760e01b81524792919091169063791ac947906127fb908690600090879030904290600401613142565b600060405180830381600087803b15801561281557600080fd5b505af1158015612829573d6000803e3d6000fd5b50505050600061284282476124b690919063ffffffff16565b9050600061285d6128548860026125d6565b601a54906124b6565b9050600061287260026118d88481878d612557565b9050600061288f836118d86016548761255790919063ffffffff16565b905060006128ac846118d86018548861255790919063ffffffff16565b905060006128c9856118d86017548961255790919063ffffffff16565b6022546040519192506000916001600160a01b039091169085908381818185875af1925050503d806000811461291b576040519150601f19603f3d011682016040523d82523d6000602084013e612920565b606091505b50506023546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114612970576040519150601f19603f3d011682016040523d82523d6000602084013e612975565b606091505b50506024546040519192506001600160a01b0316908490600081818185875af1925050503d80600081146129c5576040519150601f19603f3d011682016040523d82523d6000602084013e6129ca565b606091505b5060009250508b159050612ab95760285460215460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c4016060604051808303818588803b158015612a4357600080fd5b505af1158015612a57573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612a7c9190613037565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050602c805460ff1916905550505050505050505050565b6000612ade601d546117b6565b90508015612aeb5742601f555b50565b60008083612afd576064612b01565b601c545b60115490915060ff168015612b2f57506001600160a01b03831660009081526012602052604090205460ff16155b8015612b39575083155b15612b4357506102bc5b6000612b70601b546064612b5791906131ed565b6118d884611b69601a548b61255790919063ffffffff16565b90506000612b8f601a546118d86019548561255790919063ffffffff16565b90506000612b9d83836124b6565b30600090815260086020526040902054909150612bba90826124f8565b30600090815260086020526040808220929092556025546001600160a01b031681522054612be890836124f8565b6025546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918c169160008051602061328e833981519152910160405180910390a38115612c69576025546040518381526001600160a01b03918216918b169060008051602061328e8339815191529060200160405180910390a35b612c7388846124b6565b9998505050505050505050565b60008183612ca15760405162461bcd60e51b8152600401610e0f91906130a8565b506000611ee684866131cb565b60008083601f840112612cc057600080fd5b50813567ffffffffffffffff811115612cd857600080fd5b6020830191508360208260051b8501011115612cf357600080fd5b9250929050565b600060208284031215612d0c57600080fd5b81356112858161326a565b60008060408385031215612d2a57600080fd5b8235612d358161326a565b91506020830135612d458161326a565b809150509250929050565b600080600080600060a08688031215612d6857600080fd5b8535612d738161326a565b94506020860135612d838161326a565b93506040860135612d938161326a565b92506060860135612da38161326a565b91506080860135612db38161326a565b809150509295509295909350565b600080600060608486031215612dd657600080fd5b8335612de18161326a565b92506020840135612df18161326a565b929592945050506040919091013590565b600080600080600060608688031215612e1a57600080fd5b8535612e258161326a565b9450602086013567ffffffffffffffff80821115612e4257600080fd5b612e4e89838a01612cae565b90965094506040880135915080821115612e6757600080fd5b50612e7488828901612cae565b969995985093965092949392505050565b60008060408385031215612e9857600080fd5b8235612ea38161326a565b91506020830135612d458161327f565b60008060408385031215612ec657600080fd5b8235612ed18161326a565b946020939093013593505050565b600080600060408486031215612ef457600080fd5b833567ffffffffffffffff811115612f0b57600080fd5b612f1786828701612cae565b9094509250506020840135612f2b8161327f565b809150509250925092565b600060208284031215612f4857600080fd5b81356112858161327f565b600060208284031215612f6557600080fd5b81516112858161327f565b60008060408385031215612f8357600080fd5b8235612ed18161327f565b600060208284031215612fa057600080fd5b5035919050565b600060208284031215612fb957600080fd5b5051919050565b600080600060608486031215612fd557600080fd5b833592506020840135612df18161327f565b60008060408385031215612ffa57600080fd5b50508035926020909101359150565b60008060006060848603121561301e57600080fd5b83359250602084013591506040840135612f2b8161327f565b60008060006060848603121561304c57600080fd5b8351925060208401519150604084015190509250925092565b60008060008060008060c0878903121561307e57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600060208083528351808285015260005b818110156130d5578581018301518582016040015282016130b9565b818111156130e7576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156131925784516001600160a01b03168352938301939183019160010161316d565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156131c6576131c661323e565b500190565b6000826131e857634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156132075761320761323e565b500290565b60008282101561321e5761321e61323e565b500390565b60006000198214156132375761323761323e565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114612aeb57600080fd5b8015158114612aeb57600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220d19375e384771f453e9cdddf3950256be5351d5897da778295d6ded359319a3364736f6c63430008070033

Deployed Bytecode

0x60806040526004361061044b5760003560e01c80637d1db4a511610234578063bc3c6bba1161012e578063ec72d65f116100b6578063f84ba65d1161007a578063f84ba65d14610d59578063f887ea4014610d79578063fce589d814610d99578063fe9fbb8014610daf578063fed0d2a114610dcf57600080fd5b8063ec72d65f14610cbf578063f0b37c0414610cdf578063f12418a814610cff578063f2fde38b14610d1f578063f4bca24514610d3f57600080fd5b8063dd62ed3e116100fd578063dd62ed3e14610bf9578063df20fd4914610c3f578063dfcf883e14610c5f578063e3763ded14610c7f578063e96fada214610c9f57600080fd5b8063bc3c6bba14610b73578063ca33e64c14610ba3578063d51ed1c814610bc3578063d7c94efd14610be357600080fd5b806398118cb4116101bc578063a73e9e5811610180578063a73e9e5814610ad3578063a8aa1b3114610af3578063a9059cbb14610b13578063b6a5d7de14610b33578063baf7af1214610b5357600080fd5b806398118cb414610a405780639af82b7214610a565780639dd255da14610a76578063a4a4b19b14610a90578063a4c82a0014610abd57600080fd5b80638714f957116102035780638714f95714610993578063893d20e8146109b35780639147c8aa146109d157806395d89b41146109f1578063976b7e1214610a2057600080fd5b80637d1db4a51461091c57806381bd23eb1461093257806384b1d1ef1461095357806386f6c3c11461097357600080fd5b80632c3e486c11610345578063571ac8b0116102cd5780636ddd1713116102915780636ddd17131461087f57806370a08231146108a057806370e1dfd1146108d6578063722b62ad146108f057806378109e541461090657600080fd5b8063571ac8b0146107e95780635c85974f14610809578063658d4b7f146108295780636b67c4df146108495780636d2a0a271461085f57600080fd5b806332fe04401161031457806332fe0440146107415780633889a5c11461075b5780633b2d081c1461077b578063400c9cd9146107915780634d709adf146107b157600080fd5b80632c3e486c146106c05780632c9b9873146106d65780632f54bf6e146106f6578063313ce5671461072557600080fd5b8063199ffc72116103d3578063207e2f1f11610397578063207e2f1f14610625578063214d14301461063b57806323b872dd1461066b57806326e3692c1461068b5780632b112e49146106ab57600080fd5b8063199ffc72146105985780631ca0a28d146105ae5780631df4ccfc146105ce5780631eca1dac146105e4578063201e79911461060557600080fd5b80630d2959801161041a5780630d2959801461050d5780631161ae391461052d578063180b0d7e1461054d57806318160ddd1461056357806318abb6351461057857600080fd5b8063012aa912146104575780630445b6671461047957806306fdde03146104a2578063095ea7b3146104dd57600080fd5b3661045257005b600080fd5b34801561046357600080fd5b50610477610472366004612f8e565b610de5565b005b34801561048557600080fd5b5061048f602b5481565b6040519081526020015b60405180910390f35b3480156104ae57600080fd5b5060408051808201909152600981526823b7b13634b72baa2360b91b60208201525b60405161049991906130a8565b3480156104e957600080fd5b506104fd6104f8366004612eb3565b610e39565b6040519015158152602001610499565b34801561051957600080fd5b50610477610528366004612f36565b610ea6565b34801561053957600080fd5b506104fd610548366004612fe7565b610eee565b34801561055957600080fd5b5061048f601b5481565b34801561056f57600080fd5b5060055461048f565b34801561058457600080fd5b50610477610593366004612d50565b610f02565b3480156105a457600080fd5b5061048f601d5481565b3480156105ba57600080fd5b506104776105c9366004612e02565b610f86565b3480156105da57600080fd5b5061048f601a5481565b3480156105f057600080fd5b50602a546104fd90600160a01b900460ff1681565b34801561061157600080fd5b50610477610620366004612fe7565b61119a565b34801561063157600080fd5b5061048f600c5481565b34801561064757600080fd5b506104fd610656366004612cfa565b60126020526000908152604090205460ff1681565b34801561067757600080fd5b506104fd610686366004612dc1565b6111ca565b34801561069757600080fd5b506104fd6106a6366004612eb3565b61128c565b3480156106b757600080fd5b5061048f6113b6565b3480156106cc57600080fd5b5061048f60205481565b3480156106e257600080fd5b506104776106f1366004612edf565b611408565b34801561070257600080fd5b506104fd610711366004612cfa565b6000546001600160a01b0391821691161490565b34801561073157600080fd5b5060405160048152602001610499565b34801561074d57600080fd5b50600a546104fd9060ff1681565b34801561076757600080fd5b50610477610776366004612f36565b6114a7565b34801561078757600080fd5b5061048f60175481565b34801561079d57600080fd5b506104776107ac366004612f36565b6114e4565b3480156107bd57600080fd5b50602a546107d1906001600160a01b031681565b6040516001600160a01b039091168152602001610499565b3480156107f557600080fd5b506104fd610804366004612cfa565b611521565b34801561081557600080fd5b50610477610824366004612f8e565b61152f565b34801561083557600080fd5b50610477610844366004612e85565b611559565b34801561085557600080fd5b5061048f60165481565b34801561086b57600080fd5b5061047761087a366004612f36565b6115a9565b34801561088b57600080fd5b50602a546104fd90600160b01b900460ff1681565b3480156108ac57600080fd5b5061048f6108bb366004612cfa565b6001600160a01b031660009081526008602052604090205490565b3480156108e257600080fd5b506011546104fd9060ff1681565b3480156108fc57600080fd5b5061048f600d5481565b34801561091257600080fd5b5061048f60075481565b34801561092857600080fd5b5061048f60065481565b34801561093e57600080fd5b50602a546104fd90600160a81b900460ff1681565b34801561095f57600080fd5b506023546107d1906001600160a01b031681565b34801561097f57600080fd5b5061047761098e366004613065565b6115f1565b34801561099f57600080fd5b506104776109ae366004613009565b6116b2565b3480156109bf57600080fd5b506000546001600160a01b03166107d1565b3480156109dd57600080fd5b506104776109ec366004612f8e565b611749565b3480156109fd57600080fd5b5060408051808201909152600681526523a7a12624a760d11b60208201526104d0565b348015610a2c57600080fd5b506104fd610a3b366004612f8e565b6117b6565b348015610a4c57600080fd5b5061048f60155481565b348015610a6257600080fd5b50610477610a71366004612edf565b611980565b348015610a8257600080fd5b50601e546104fd9060ff1681565b348015610a9c57600080fd5b5061048f610aab366004612cfa565b600e6020526000908152604090205481565b348015610ac957600080fd5b5061048f601f5481565b348015610adf57600080fd5b50610477610aee366004612f8e565b611a14565b348015610aff57600080fd5b506029546107d1906001600160a01b031681565b348015610b1f57600080fd5b506104fd610b2e366004612eb3565b611a3e565b348015610b3f57600080fd5b50610477610b4e366004612cfa565b611a4b565b348015610b5f57600080fd5b50610477610b6e366004612edf565b611a9c565b348015610b7f57600080fd5b506104fd610b8e366004612cfa565b60106020526000908152604090205460ff1681565b348015610baf57600080fd5b506021546107d1906001600160a01b031681565b348015610bcf57600080fd5b5061048f610bde366004612f8e565b611b35565b348015610bef57600080fd5b5061048f60185481565b348015610c0557600080fd5b5061048f610c14366004612d17565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b348015610c4b57600080fd5b50610477610c5a366004612f70565b611b76565b348015610c6b57600080fd5b50610477610c7a366004612fc0565b611bbd565b348015610c8b57600080fd5b506025546107d1906001600160a01b031681565b348015610cab57600080fd5b506022546107d1906001600160a01b031681565b348015610ccb57600080fd5b50610477610cda366004612f8e565b611c1d565b348015610ceb57600080fd5b50610477610cfa366004612cfa565b611c47565b348015610d0b57600080fd5b50610477610d1a366004612f8e565b611c92565b348015610d2b57600080fd5b50610477610d3a366004612cfa565b611cdd565b348015610d4b57600080fd5b50600f546104fd9060ff1681565b348015610d6557600080fd5b50610477610d74366004612e85565b611d73565b348015610d8557600080fd5b506028546107d1906001600160a01b031681565b348015610da557600080fd5b5061048f60195481565b348015610dbb57600080fd5b506104fd610dca366004612cfa565b611dc3565b348015610ddb57600080fd5b5061048f601c5481565b6000546001600160a01b03163314610e185760405162461bcd60e51b8152600401610e0f906130fd565b60405180910390fd5b61271081600554610e2991906131ed565b610e3391906131cb565b60075550565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610e949086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610ed05760405162461bcd60e51b8152600401610e0f906130fd565b602a8054911515600160a01b0260ff60a01b19909216919091179055565b600082610efa83611b35565b119392505050565b610f0b33611dc3565b610f275760405162461bcd60e51b8152600401610e0f9061311d565b602180546001600160a01b03199081166001600160a01b03978816179091556022805482169587169590951790945560238054851693861693909317909255602580548416918516919091179055602480549092169216919091179055565b6000546001600160a01b03163314610fb05760405162461bcd60e51b8152600401610e0f906130fd565b6101f583106110175760405162461bcd60e51b815260206004820152602d60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526c3530302061646472657373657360981b6064820152608401610e0f565b8281146110775760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e204164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b6064820152608401610e0f565b6000805b848110156110bb5783838281811061109557611095613254565b90506020020135826110a791906131b3565b9150806110b381613223565b91505061107b565b50806110dc876001600160a01b031660009081526008602052604090205490565b101561112a5760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c657400000000006044820152606401610e0f565b60005b848110156111915761117e8787878481811061114b5761114b613254565b90506020020160208101906111609190612cfa565b86868581811061117257611172613254565b90506020020135611de1565b508061118981613223565b91505061112d565b50505050505050565b6111a333611dc3565b6111bf5760405162461bcd60e51b8152600401610e0f9061311d565b602691909155602755565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914611277576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054611252918490611eb5565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b611282848484611eef565b90505b9392505050565b600080546001600160a01b031633146112b75760405162461bcd60e51b8152600401610e0f906130fd565b81611336576040516370a0823160e01b81523060048201526001600160a01b038416906370a082319060240160206040518083038186803b1580156112fb57600080fd5b505afa15801561130f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113339190612fa7565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb90604401602060405180830381600087803b15801561137e57600080fd5b505af1158015611392573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112859190612f53565b6004546001600160a01b0316600090815260086020526040812054611403906003546001600160a01b03166000908152600860205260409020546113fd90600554906124b6565b906124b6565b905090565b6000546001600160a01b031633146114325760405162461bcd60e51b8152600401610e0f906130fd565b60005b828110156114a15781600b600086868581811061145457611454613254565b90506020020160208101906114699190612cfa565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561149a81613223565b9050611435565b50505050565b6000546001600160a01b031633146114d15760405162461bcd60e51b8152600401610e0f906130fd565b6011805460ff1916911515919091179055565b6000546001600160a01b0316331461150e5760405162461bcd60e51b8152600401610e0f906130fd565b600f805460ff1916911515919091179055565b6000610ea082600019610e39565b61153833611dc3565b6115545760405162461bcd60e51b8152600401610e0f9061311d565b600655565b61156233611dc3565b61157e5760405162461bcd60e51b8152600401610e0f9061311d565b6001600160a01b03919091166000908152601360205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146115d35760405162461bcd60e51b8152600401610e0f906130fd565b602a8054911515600160a81b0260ff60a81b19909216919091179055565b6115fa33611dc3565b6116165760405162461bcd60e51b8152600401610e0f9061311d565b6015869055601885905560168490556017839055601982905561164782611641858188818c8c6124f8565b906124f8565b601a55601b81905561165a6002826131cb565b601a54106116aa5760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e20353025000000006044820152606401610e0f565b505050505050565b6000546001600160a01b031633146116dc5760405162461bcd60e51b8152600401610e0f906130fd565b6103e8821061172d5760405162461bcd60e51b815260206004820152601d60248201527f6d61782076616c756520666f72206175746f6275726e206973203130250000006044820152606401610e0f565b602092909255601d55601e805460ff1916911515919091179055565b61175233611dc3565b61176e5760405162461bcd60e51b8152600401610e0f9061311d565b47336108fc606461177f85856131ed565b61178991906131cb565b6040518115909202916000818181858888f193505050501580156117b1573d6000803e3d6000fd5b505050565b600080546001600160a01b031633146117e15760405162461bcd60e51b8152600401610e0f906130fd565b6103e88211156118465760405162461bcd60e51b815260206004820152602a60248201527f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f60448201526906b656e7320696e204c560b41b6064820152608401610e0f565b6029546040516370a0823160e01b81526001600160a01b03909116600482015260009030906370a082319060240160206040518083038186803b15801561188c57600080fd5b505afa1580156118a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118c49190612fa7565b905060006118de6127106118d88487612557565b906125d6565b9050801561197657602954600354611903916001600160a01b03908116911683611de1565b50602a60009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561195457600080fd5b505af1158015611968573d6000803e3d6000fd5b506001979650505050505050565b5060009392505050565b61198933611dc3565b6119a55760405162461bcd60e51b8152600401610e0f9061311d565b60005b828110156114a15781601060008686858181106119c7576119c7613254565b90506020020160208101906119dc9190612cfa565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055611a0d81613223565b90506119a8565b611a1d33611dc3565b611a395760405162461bcd60e51b8152600401610e0f9061311d565b600c55565b6000611285338484611eef565b6000546001600160a01b03163314611a755760405162461bcd60e51b8152600401610e0f906130fd565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b03163314611ac65760405162461bcd60e51b8152600401610e0f906130fd565b60005b828110156114a1578160126000868685818110611ae857611ae8613254565b9050602002016020810190611afd9190612cfa565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055611b2e81613223565b9050611ac9565b6000610ea0611b426113b6565b6029546001600160a01b03166000908152600860205260409020546118d890611b6f906002905b90612557565b8590612557565b611b7f33611dc3565b611b9b5760405162461bcd60e51b8152600401610e0f9061311d565b602a8054921515600160b01b0260ff60b01b1990931692909217909155602b55565b6000546001600160a01b03163314611be75760405162461bcd60e51b8152600401610e0f906130fd565b61271083600554611bf891906131ed565b611c0291906131cb565b600c55600a805460ff191692151592909217909155600d5550565b611c2633611dc3565b611c425760405162461bcd60e51b8152600401610e0f9061311d565b601c55565b6000546001600160a01b03163314611c715760405162461bcd60e51b8152600401610e0f906130fd565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b03163314611cbc5760405162461bcd60e51b8152600401610e0f906130fd565b61271081600554611ccd91906131ed565b611cd791906131cb565b60065550565b6000546001600160a01b03163314611d075760405162461bcd60e51b8152600401610e0f906130fd565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b611d7c33611dc3565b611d985760405162461bcd60e51b8152600401610e0f9061311d565b6001600160a01b03919091166000908152601460205260409020805460ff1916911515919091179055565b6001600160a01b031660009081526001602052604090205460ff1690565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611e32918490611eb5565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611e6190836124f8565b6001600160a01b03808516600081815260086020526040908190209390935591519086169060008051602061328e83398151915290611ea39086815260200190565b60405180910390a35060019392505050565b60008184841115611ed95760405162461bcd60e51b8152600401610e0f91906130a8565b506000611ee6848661320c565b95945050505050565b602c5460009060ff1615611f0f57611f08848484611de1565b9050611285565b6001600160a01b03841660009081526001602052604090205460ff16158015611f5157506001600160a01b03831660009081526001602052604090205460ff16155b15611ff557602a54600160a01b900460ff16611fa65760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610e0f565b602a54600160a81b900460ff168015611fcc57506029546001600160a01b038581169116145b15611ff5576001600160a01b0383166000908152601060205260409020805460ff191660011790555b600f5460ff1615612056576001600160a01b03841660009081526010602052604090205460ff16156120565760405162461bcd60e51b815260206004820152600a6024820152691b9d5a5cd85b98d9595960b21b6044820152606401610e0f565b6001600160a01b0384166000908152600b602052604090205460ff1680156120805750600a5460ff165b15612173576001600160a01b0384166000908152600e602052604090205442116120ec5760405162461bcd60e51b815260206004820152601b60248201527f566573742073656c6c65722074696d65207265737472696374656400000000006044820152606401610e0f565b600c5482111561214c5760405162461bcd60e51b815260206004820152602560248201527f566573742073656c6c65722068617665206d61782073656c6c2072657374726960448201526431ba34b7b760d91b6064820152608401610e0f565b600d5461215990426131b3565b6001600160a01b0385166000908152600e60205260409020555b6001600160a01b03841660009081526001602052604090205460ff161580156121a557506001600160a01b0383163014155b80156121bf57506003546001600160a01b03848116911614155b80156121d957506029546001600160a01b03848116911614155b80156121f357506025546001600160a01b03848116911614155b15612294576001600160a01b03831660009081526008602052604090205460075461221e84836131b3565b11156122925760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610e0f565b505b61229e8483612618565b6122a6612685565b156122b8576122b36126db565b61236e565b6001600160a01b03841660009081526001602052604090205460ff161580156122fa57506001600160a01b03831660009081526001602052604090205460ff16155b801561231f57506001600160a01b03841660009081526013602052604090205460ff16155b801561233857506029546001600160a01b038481169116145b80156123465750601e5460ff165b80156123615750602054601f5461235d91906131b3565b4210155b1561236e5761236e612ad1565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600890915291909120546123c0918490611eb5565b6001600160a01b038516600090815260086020908152604080832093909355601390529081205460ff1615158061241157506001600160a01b03841660009081526013602052604090205460ff1615155b6124395760295461243490869085906001600160a01b0388811691161487612aee565b61243b565b825b6001600160a01b03851660009081526008602052604090205490915061246190826124f8565b6001600160a01b03808616600081815260086020526040908190209390935591519087169060008051602061328e833981519152906124a39085815260200190565b60405180910390a3506001949350505050565b600061128583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611eb5565b60008061250583856131b3565b9050838110156112855760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610e0f565b60008261256657506000610ea0565b600061257283856131ed565b90508261257f85836131cb565b146112855760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610e0f565b600061128583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612c80565b6006548111158061264157506001600160a01b03821660009081526014602052604090205460ff165b6126815760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610e0f565b5050565b6029546000906001600160a01b031633148015906126a65750602c5460ff16155b80156126bb5750602a54600160b01b900460ff165b8015611403575050602b5430600090815260086020526040902054101590565b602c805460ff191660011790556026546027546000916126fa91610eee565b61270657601554612709565b60005b9050600061272d60026118d8601a546118d886602b5461255790919063ffffffff16565b9050600061274682602b546124b690919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061278057612780613254565b6001600160a01b0392831660209182029290920101526002548251911690829060019081106127b1576127b1613254565b6001600160a01b03928316602091820292909201015260285460405163791ac94760e01b81524792919091169063791ac947906127fb908690600090879030904290600401613142565b600060405180830381600087803b15801561281557600080fd5b505af1158015612829573d6000803e3d6000fd5b50505050600061284282476124b690919063ffffffff16565b9050600061285d6128548860026125d6565b601a54906124b6565b9050600061287260026118d88481878d612557565b9050600061288f836118d86016548761255790919063ffffffff16565b905060006128ac846118d86018548861255790919063ffffffff16565b905060006128c9856118d86017548961255790919063ffffffff16565b6022546040519192506000916001600160a01b039091169085908381818185875af1925050503d806000811461291b576040519150601f19603f3d011682016040523d82523d6000602084013e612920565b606091505b50506023546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114612970576040519150601f19603f3d011682016040523d82523d6000602084013e612975565b606091505b50506024546040519192506001600160a01b0316908490600081818185875af1925050503d80600081146129c5576040519150601f19603f3d011682016040523d82523d6000602084013e6129ca565b606091505b5060009250508b159050612ab95760285460215460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c4016060604051808303818588803b158015612a4357600080fd5b505af1158015612a57573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612a7c9190613037565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050602c805460ff1916905550505050505050505050565b6000612ade601d546117b6565b90508015612aeb5742601f555b50565b60008083612afd576064612b01565b601c545b60115490915060ff168015612b2f57506001600160a01b03831660009081526012602052604090205460ff16155b8015612b39575083155b15612b4357506102bc5b6000612b70601b546064612b5791906131ed565b6118d884611b69601a548b61255790919063ffffffff16565b90506000612b8f601a546118d86019548561255790919063ffffffff16565b90506000612b9d83836124b6565b30600090815260086020526040902054909150612bba90826124f8565b30600090815260086020526040808220929092556025546001600160a01b031681522054612be890836124f8565b6025546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918c169160008051602061328e833981519152910160405180910390a38115612c69576025546040518381526001600160a01b03918216918b169060008051602061328e8339815191529060200160405180910390a35b612c7388846124b6565b9998505050505050505050565b60008183612ca15760405162461bcd60e51b8152600401610e0f91906130a8565b506000611ee684866131cb565b60008083601f840112612cc057600080fd5b50813567ffffffffffffffff811115612cd857600080fd5b6020830191508360208260051b8501011115612cf357600080fd5b9250929050565b600060208284031215612d0c57600080fd5b81356112858161326a565b60008060408385031215612d2a57600080fd5b8235612d358161326a565b91506020830135612d458161326a565b809150509250929050565b600080600080600060a08688031215612d6857600080fd5b8535612d738161326a565b94506020860135612d838161326a565b93506040860135612d938161326a565b92506060860135612da38161326a565b91506080860135612db38161326a565b809150509295509295909350565b600080600060608486031215612dd657600080fd5b8335612de18161326a565b92506020840135612df18161326a565b929592945050506040919091013590565b600080600080600060608688031215612e1a57600080fd5b8535612e258161326a565b9450602086013567ffffffffffffffff80821115612e4257600080fd5b612e4e89838a01612cae565b90965094506040880135915080821115612e6757600080fd5b50612e7488828901612cae565b969995985093965092949392505050565b60008060408385031215612e9857600080fd5b8235612ea38161326a565b91506020830135612d458161327f565b60008060408385031215612ec657600080fd5b8235612ed18161326a565b946020939093013593505050565b600080600060408486031215612ef457600080fd5b833567ffffffffffffffff811115612f0b57600080fd5b612f1786828701612cae565b9094509250506020840135612f2b8161327f565b809150509250925092565b600060208284031215612f4857600080fd5b81356112858161327f565b600060208284031215612f6557600080fd5b81516112858161327f565b60008060408385031215612f8357600080fd5b8235612ed18161327f565b600060208284031215612fa057600080fd5b5035919050565b600060208284031215612fb957600080fd5b5051919050565b600080600060608486031215612fd557600080fd5b833592506020840135612df18161327f565b60008060408385031215612ffa57600080fd5b50508035926020909101359150565b60008060006060848603121561301e57600080fd5b83359250602084013591506040840135612f2b8161327f565b60008060006060848603121561304c57600080fd5b8351925060208401519150604084015190509250925092565b60008060008060008060c0878903121561307e57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600060208083528351808285015260005b818110156130d5578581018301518582016040015282016130b9565b818111156130e7576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156131925784516001600160a01b03168352938301939183019160010161316d565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156131c6576131c661323e565b500190565b6000826131e857634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156132075761320761323e565b500290565b60008282101561321e5761321e61323e565b500390565b60006000198214156132375761323761323e565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114612aeb57600080fd5b8015158114612aeb57600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220d19375e384771f453e9cdddf3950256be5351d5897da778295d6ded359319a3364736f6c63430008070033

Deployed Bytecode Sourcemap

4772:17044:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9650:181;;;;;;;;;;-1:-1:-1;9650:181:0;;;;;:::i;:::-;;:::i;:::-;;7027:55;;;;;;;;;;;;;;;;;;;16683:25:1;;;16671:2;16656:18;7027:55:0;;;;;;;;8332:80;;;;;;;;;;-1:-1:-1;8404:5:0;;;;;;;;;;;;-1:-1:-1;;;8404:5:0;;;;8332:80;;;;;;;:::i;8754:216::-;;;;;;;;;;-1:-1:-1;8754:216:0;;;;;:::i;:::-;;:::i;:::-;;;9491:14:1;;9484:22;9466:41;;9454:2;9439:18;8754:216:0;9326:187:1;15341:93:0;;;;;;;;;;-1:-1:-1;15341:93:0;;;;;:::i;:::-;;:::i;20048:150::-;;;;;;;;;;-1:-1:-1;20048:150:0;;;;;:::i;:::-;;:::i;6258:36::-;;;;;;;;;;;;;;;;8062:88;;;;;;;;;;-1:-1:-1;8135:12:0;;8062:88;;18906:450;;;;;;;;;;-1:-1:-1;18906:450:0;;;;;:::i;:::-;;:::i;6348:36::-;;;;;;;;;;;;;;;;20226:594;;;;;;;;;;-1:-1:-1;20226:594:0;;;;;:::i;:::-;;:::i;6158:93::-;;;;;;;;;;;;;;;;6919:30;;;;;;;;;;-1:-1:-1;6919:30:0;;;;-1:-1:-1;;;6919:30:0;;;;;;19528:183;;;;;;;;;;-1:-1:-1;19528:183:0;;;;;:::i;:::-;;:::i;5502:58::-;;;;;;;;;;;;;;;;5807:43;;;;;;;;;;-1:-1:-1;5807:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9272:370;;;;;;;;;;-1:-1:-1;9272:370:0;;;;;:::i;:::-;;:::i;14917:261::-;;;;;;;;;;-1:-1:-1;14917:261:0;;;;;:::i;:::-;;:::i;19723:142::-;;;;;;;;;;;;;:::i;6484:43::-;;;;;;;;;;;;;;;;10350:215;;;;;;;;;;-1:-1:-1;10350:215:0;;;;;:::i;:::-;;:::i;2780:103::-;;;;;;;;;;-1:-1:-1;2780:103:0;;;;;:::i;:::-;2835:4;2870:5;-1:-1:-1;;;;;2859:16:0;;;2870:5;;2859:16;;2780:103;8156:80;;;;;;;;;;-1:-1:-1;8156:80:0;;5107:1;18099:36:1;;18087:2;18072:18;8156:80:0;17957:184:1;5403:42:0;;;;;;;;;;-1:-1:-1;5403:42:0;;;;;;;;17537:95;;;;;;;;;;-1:-1:-1;17537:95:0;;;;;:::i;:::-;;:::i;6035:34::-;;;;;;;;;;;;;;;;17432:97;;;;;;;;;;-1:-1:-1;17432:97:0;;;;;:::i;:::-;;:::i;6879:31::-;;;;;;;;;;-1:-1:-1;6879:31:0;;;;-1:-1:-1;;;;;6879:31:0;;;;;;-1:-1:-1;;;;;8175:32:1;;;8157:51;;8145:2;8130:18;6879:31:0;8011:203:1;8978:122:0;;;;;;;;;;-1:-1:-1;8978:122:0;;;;;:::i;:::-;;:::i;10704:96::-;;;;;;;;;;-1:-1:-1;10704:96:0;;;;;:::i;:::-;;:::i;18069:120::-;;;;;;;;;;-1:-1:-1;18069:120:0;;;;;:::i;:::-;;:::i;5994:34::-;;;;;;;;;;;;;;;;15442:97;;;;;;;;;;-1:-1:-1;15442:97:0;;;;;:::i;:::-;;:::i;6990:30::-;;;;;;;;;;-1:-1:-1;6990:30:0;;;;-1:-1:-1;;;6990:30:0;;;;;;8502:105;;;;;;;;;;-1:-1:-1;8502:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;8586:18:0;8568:7;8586:18;;;:9;:18;;;;;;;8502:105;5770:30;;;;;;;;;;-1:-1:-1;5770:30:0;;;;;;;;5569:47;;;;;;;;;;;;;;;;5229:50;;;;;;;;;;;;;;;;5174:48;;;;;;;;;;;;;;;;6956:25;;;;;;;;;;-1:-1:-1;6956:25:0;;;;-1:-1:-1;;;6956:25:0;;;;;;6621:33;;;;;;;;;;-1:-1:-1;6621:33:0;;;;-1:-1:-1;;;;;6621:33:0;;;18333:565;;;;;;;;;;-1:-1:-1;18333:565:0;;;;;:::i;:::-;;:::i;20822:262::-;;;;;;;;;;-1:-1:-1;20822:262:0;;;;;:::i;:::-;;:::i;8418:78::-;;;;;;;;;;-1:-1:-1;8470:7:0;8488:5;-1:-1:-1;;;;;8488:5:0;8418:78;;14713:196;;;;;;;;;;-1:-1:-1;14713:196:0;;;;;:::i;:::-;;:::i;8242:84::-;;;;;;;;;;-1:-1:-1;8316:7:0;;;;;;;;;;;;-1:-1:-1;;;8316:7:0;;;;8242:84;;21088:498;;;;;;;;;;-1:-1:-1;21088:498:0;;;;;:::i;:::-;;:::i;5953:34::-;;;;;;;;;;;;;;;;17640:209;;;;;;;;;;-1:-1:-1;17640:209:0;;;;;:::i;:::-;;:::i;6406:35::-;;;;;;;;;;-1:-1:-1;6406:35:0;;;;;;;;5623:46;;;;;;;;;;-1:-1:-1;5623:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;6448:29;;;;;;;;;;;;;;;;10573:123;;;;;;;;;;-1:-1:-1;10573:123:0;;;;;:::i;:::-;;:::i;6853:19::-;;;;;;;;;;-1:-1:-1;6853:19:0;;;;-1:-1:-1;;;;;6853:19:0;;;9108:156;;;;;;;;;;-1:-1:-1;9108:156:0;;;;;:::i;:::-;;:::i;2573:94::-;;;;;;;;;;-1:-1:-1;2573:94:0;;;;;:::i;:::-;;:::i;17857:204::-;;;;;;;;;;-1:-1:-1;17857:204:0;;;;;:::i;:::-;;:::i;5716:45::-;;;;;;;;;;-1:-1:-1;5716:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6536:36;;;;;;;;;;-1:-1:-1;6536:36:0;;;;-1:-1:-1;;;;;6536:36:0;;;19873:167;;;;;;;;;;-1:-1:-1;19873:167:0;;;;;:::i;:::-;;:::i;6076:34::-;;;;;;;;;;;;;;;;8613:133;;;;;;;;;;-1:-1:-1;8613:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8715:19:0;;;8697:7;8715:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8613:133;19364:156;;;;;;;;;;-1:-1:-1;19364:156:0;;;;;:::i;:::-;;:::i;10021:321::-;;;;;;;;;;-1:-1:-1;10021:321:0;;;;;:::i;:::-;;:::i;6699:30::-;;;;;;;;;;-1:-1:-1;6699:30:0;;;;-1:-1:-1;;;;;6699:30:0;;;6579:35;;;;;;;;;;-1:-1:-1;6579:35:0;;;;-1:-1:-1;;;;;6579:35:0;;;15186:124;;;;;;;;;;-1:-1:-1;15186:124:0;;;;;:::i;:::-;;:::i;2675:97::-;;;;;;;;;;-1:-1:-1;2675:97:0;;;;;:::i;:::-;;:::i;9837:176::-;;;;;;;;;;-1:-1:-1;9837:176:0;;;;;:::i;:::-;;:::i;3006:173::-;;;;;;;;;;-1:-1:-1;3006:173:0;;;;;:::i;:::-;;:::i;5678:31::-;;;;;;;;;;-1:-1:-1;5678:31:0;;;;;;;;18197:128;;;;;;;;;;-1:-1:-1;18197:128:0;;;;;:::i;:::-;;:::i;6822:24::-;;;;;;;;;;-1:-1:-1;6822:24:0;;;;-1:-1:-1;;;;;6822:24:0;;;6117:34;;;;;;;;;;;;;;;;2891:107;;;;;;;;;;-1:-1:-1;2891:107:0;;;;;:::i;:::-;;:::i;6303:36::-;;;;;;;;;;;;;;;;9650:181;2835:4;2870:5;-1:-1:-1;;;;;2870:5:0;2432:10;2859:16;2416:38;;;;-1:-1:-1;;;2416:38:0;;;;;;;:::i;:::-;;;;;;;;;9818:5:::1;9789:24;9774:12;;:39;;;;:::i;:::-;9773:50;;;;:::i;:::-;9755:15;:68:::0;-1:-1:-1;9650:181:0:o;8754:216::-;8858:10;8829:4;8846:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8846:32:0;;;;;;;;;;:41;;;8903:37;8829:4;;8846:32;;8903:37;;;;8881:6;16683:25:1;;16671:2;16656:18;;16537:177;8903:37:0;;;;;;;;-1:-1:-1;8958:4:0;8754:216;;;;;:::o;15341:93::-;2835:4;2870:5;-1:-1:-1;;;;;2870:5:0;2432:10;2859:16;2416:38;;;;-1:-1:-1;;;2416:38:0;;;;;;;:::i;:::-;15406:10:::1;:20:::0;;;::::1;;-1:-1:-1::0;;;15406:20:0::1;-1:-1:-1::0;;;;15406:20:0;;::::1;::::0;;;::::1;::::0;;15341:93::o;20048:150::-;20128:4;20184:6;20152:29;20172:8;20152:19;:29::i;:::-;:38;;20048:150;-1:-1:-1;;;20048:150:0:o;18906:450::-;2514:24;2527:10;2514:12;:24::i;:::-;2506:48;;;;-1:-1:-1;;;2506:48:0;;;;;;;:::i;:::-;19106:21:::1;:46:::0;;-1:-1:-1;;;;;;19106:46:0;;::::1;-1:-1:-1::0;;;;;19106:46:0;;::::1;;::::0;;;19163:20:::1;:44:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;19218:18:::1;:40:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;19269:15:::1;:34:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;19314:15:::1;:34:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;18906:450::o;20226:594::-;2835:4;2870:5;-1:-1:-1;;;;;2870:5:0;2432:10;2859:16;2416:38;;;;-1:-1:-1;;;2416:38:0;;;;;;;:::i;:::-;20375:3:::1;20356:22:::0;::::1;20348:79;;;::::0;-1:-1:-1;;;20348:79:0;;15651:2:1;20348:79:0::1;::::0;::::1;15633:21:1::0;15690:2;15670:18;;;15663:30;15729:34;15709:18;;;15702:62;-1:-1:-1;;;15780:18:1;;;15773:43;15833:19;;20348:79:0::1;15449:409:1::0;20348:79:0::1;20442:33:::0;;::::1;20434:85;;;::::0;-1:-1:-1;;;20434:85:0;;10775:2:1;20434: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;;20434:85:0::1;10573:404:1::0;20434:85:0::1;20528:12;20557:6:::0;20553:82:::1;20567:20:::0;;::::1;20553:82;;;20618:6;;20625:1;20618:9;;;;;;;:::i;:::-;;;;;;;20611:4;:16;;;;:::i;:::-;20604:23:::0;-1:-1:-1;20589:3:0;::::1;::::0;::::1;:::i;:::-;;;;20553:82;;;;20670:4;20651:15;20661:4;-1:-1:-1::0;;;;;8586:18:0;8568:7;8586:18;;;:9;:18;;;;;;;8502:105;20651:15:::1;:23;;20643:63;;;::::0;-1:-1:-1;;;20643:63:0;;12601:2:1;20643:63:0::1;::::0;::::1;12583:21:1::0;12640:2;12620:18;;;12613:30;12679:29;12659:18;;;12652:57;12726:18;;20643:63:0::1;12399:351:1::0;20643:63:0::1;20719:6;20715:102;20729:20:::0;;::::1;20715:102;;;20766:43;20781:4;20786:9;;20796:1;20786:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;20799:6;;20806:1;20799:9;;;;;;;:::i;:::-;;;;;;;20766:14;:43::i;:::-;-1:-1:-1::0;20751:3:0;::::1;::::0;::::1;:::i;:::-;;;;20715:102;;;;20339:481;20226:594:::0;;;;;:::o;19528:183::-;2514:24;2527:10;2514:12;:24::i;:::-;2506:48;;;;-1:-1:-1;;;2506:48:0;;;;;;;:::i;:::-;19626:15:::1;:25:::0;;;;19662:26:::1;:41:::0;19528:183::o;9272:370::-;-1:-1:-1;;;;;9392:19:0;;9372:4;9392:19;;;:11;:19;;;;;;;;9412:10;9392:31;;;;;;;;-1:-1:-1;;9392:52:0;9389:186;;9494:69;;;;;;;;;;;-1:-1:-1;;;9494:69:0;;;;;;;;-1:-1:-1;;;;;9494:19:0;;-1:-1:-1;9494:19:0;;;:11;:19;;;;;9514:10;9494:31;;;;;;;;;;:69;;9530:6;;9494:35;:69::i;:::-;-1:-1:-1;;;;;9460:19:0;;;;;;:11;:19;;;;;;;;9480:10;9460:31;;;;;;;:103;9389:186;9594:40;9608:6;9616:9;9627:6;9594:13;:40::i;:::-;9587:47;;9272:370;;;;;;:::o;14917:261::-;14996:4;2870:5;;-1:-1:-1;;;;;2870:5:0;2432:10;2859:16;2416:38;;;;-1:-1:-1;;;2416:38:0;;;;;;;:::i;:::-;15013:11;15010:95:::1;;15049:44;::::0;-1:-1:-1;;;15049:44:0;;15087:4:::1;15049:44;::::0;::::1;8157:51:1::0;-1:-1:-1;;;;;15049:29:0;::::1;::::0;::::1;::::0;8130:18:1;;15049:44:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15040:53;;15010:95;15122:48;::::0;-1:-1:-1;;;15122:48:0;;15151:10:::1;15122:48;::::0;::::1;8609:51:1::0;8676:18;;;8669:34;;;-1:-1:-1;;;;;15122:28:0;::::1;::::0;::::1;::::0;8582:18:1;;15122:48:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;19723:142::-:0;19851:4;;-1:-1:-1;;;;;19851:4:0;19776:7;8586:18;;;:9;:18;;;;;;19803:54;;19830:4;;-1:-1:-1;;;;;19830:4:0;8568:7;8586:18;;;:9;:18;;;;;;19803:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;19796:61;;19723:142;:::o;10350:215::-;2835:4;2870:5;-1:-1:-1;;;;;2870:5:0;2432:10;2859:16;2416:38;;;;-1:-1:-1;;;2416:38:0;;;;;;;:::i;:::-;10453:9:::1;10448:110;10464:20:::0;;::::1;10448:110;;;10540:6;10506:17;:31;10524:9;;10534:1;10524:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10506:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;10506:31:0;:40;;-1:-1:-1;;10506:40:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10486:3:::1;::::0;::::1;:::i;:::-;;;10448:110;;;;10350:215:::0;;;:::o;17537:95::-;2835:4;2870:5;-1:-1:-1;;;;;2870:5:0;2432:10;2859:16;2416:38;;;;-1:-1:-1;;;2416:38:0;;;;;;;:::i;:::-;17602:10:::1;:20:::0;;-1:-1:-1;;17602:20:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17537:95::o;17432:97::-;2835:4;2870:5;-1:-1:-1;;;;;2870:5:0;2432:10;2859:16;2416:38;;;;-1:-1:-1;;;2416:38:0;;;;;;;:::i;:::-;17499:12:::1;:22:::0;;-1:-1:-1;;17499:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17432:97::o;8978:122::-;9033:4;9057:35;9065:7;-1:-1:-1;;9057:7:0;:35::i;10704:96::-;2514:24;2527:10;2514:12;:24::i;:::-;2506:48;;;;-1:-1:-1;;;2506:48:0;;;;;;;:::i;:::-;10771:12:::1;:21:::0;10704:96::o;18069:120::-;2514:24;2527:10;2514:12;:24::i;:::-;2506:48;;;;-1:-1:-1;;;2506:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18153:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;18153:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18069:120::o;15442:97::-;2835:4;2870:5;-1:-1:-1;;;;;2870:5:0;2432:10;2859:16;2416:38;;;;-1:-1:-1;;;2416:38:0;;;;;;;:::i;:::-;15515:6:::1;:16:::0;;;::::1;;-1:-1:-1::0;;;15515:16:0::1;-1:-1:-1::0;;;;15515:16:0;;::::1;::::0;;;::::1;::::0;;15442:97::o;18333:565::-;2514:24;2527:10;2514:12;:24::i;:::-;2506:48;;;;-1:-1:-1;;;2506:48:0;;;;;;;:::i;:::-;18509:12:::1;:28:::0;;;18548:7:::1;:18:::0;;;18577:12:::1;:28:::0;;;18616:10:::1;:24:::0;;;18651:7:::1;:18:::0;;;18691:77:::1;18661:8:::0;18691:63:::1;18629:11:::0;18691:63;18592:13;18691:63;18524:13;18558:8;18691:17:::1;:27::i;:::-;:31:::0;::::1;:46::i;:77::-;18680:8;:88:::0;18779:14:::1;:32:::0;;;18841:16:::1;18856:1;18796:15:::0;18841:16:::1;:::i;:::-;18830:8;;:27;18822:68;;;::::0;-1:-1:-1;;;18822:68:0;;11530:2:1;18822:68:0::1;::::0;::::1;11512:21:1::0;11569:2;11549:18;;;11542:30;11608;11588:18;;;11581:58;11656:18;;18822:68:0::1;11328:352:1::0;18822:68:0::1;18333:565:::0;;;;;;:::o;20822:262::-;2835:4;2870:5;-1:-1:-1;;;;;2870:5:0;2432:10;2859:16;2416:38;;;;-1:-1:-1;;;2416:38:0;;;;;;;:::i;:::-;20940:4:::1;20929:8;:15;20921:56;;;::::0;-1:-1:-1;;;20921:56:0;;11887:2:1;20921:56:0::1;::::0;::::1;11869:21:1::0;11926:2;11906:18;;;11899:30;11965:31;11945:18;;;11938:59;12014:18;;20921:56:0::1;11685:353:1::0;20921:56:0::1;20990:15;:23:::0;;;;21020:16:::1;:27:::0;21054:15:::1;:26:::0;;-1:-1:-1;;21054:26:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20822:262::o;14713:196::-;2514:24;2527:10;2514:12;:24::i;:::-;2506:48;;;;-1:-1:-1;;;2506:48:0;;;;;;;:::i;:::-;14805:21:::1;14845:10;14837:64;14897:3;14866:28;14878:16:::0;14805:21;14866:28:::1;:::i;:::-;:34;;;;:::i;:::-;14837:64;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14774:135;14713:196:::0;:::o;21088:498::-;21164:4;2870:5;;-1:-1:-1;;;;;2870:5:0;2432:10;2859:16;2416:38;;;;-1:-1:-1;;;2416:38:0;;;;;;;:::i;:::-;21209:4:::1;21188:17;:25;;21180:80;;;::::0;-1:-1:-1;;;21180:80:0;;15240:2:1;21180:80:0::1;::::0;::::1;15222:21:1::0;15279:2;15259:18;;;15252:30;15318:34;15298:18;;;15291:62;-1:-1:-1;;;15369:18:1;;;15362:40;15419:19;;21180:80:0::1;15038:406:1::0;21180:80:0::1;21312:4;::::0;21297:20:::1;::::0;-1:-1:-1;;;21297:20:0;;-1:-1:-1;;;;;21312:4:0;;::::1;21297:20;::::0;::::1;8157:51:1::0;21277:17:0::1;::::0;21297:4:::1;::::0;:14:::1;::::0;8130:18:1;;21297:20:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21277:40:::0;-1:-1:-1;21328:15:0::1;21346:43;21383:5;21346:32;21277:40:::0;21360:17;21346:13:::1;:32::i;:::-;:36:::0;::::1;:43::i;:::-;21328:61:::0;-1:-1:-1;21414:11:0;;21410:136:::1;;21456:4;::::0;21461::::1;::::0;21441:33:::1;::::0;-1:-1:-1;;;;;21456:4:0;;::::1;::::0;21461::::1;21466:7:::0;21441:14:::1;:33::i;:::-;;21489:12;;;;;;;;;-1:-1:-1::0;;;;;21489:12:0::1;-1:-1:-1::0;;;;;21489:17:0::1;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;21530:4:0::1;::::0;21088:498;-1:-1:-1;;;;;;;21088:498:0:o;21410:136::-:1;-1:-1:-1::0;21573:5:0::1;::::0;21088:498;-1:-1:-1;;;21088:498:0:o;17640:209::-;2514:24;2527:10;2514:12;:24::i;:::-;2506:48;;;;-1:-1:-1;;;2506:48:0;;;;;;;:::i;:::-;17742:9:::1;17737:105;17753:20:::0;;::::1;17737:105;;;17824:6;17795:12;:26;17808:9;;17818:1;17808:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17795:26:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17795:26:0;:35;;-1:-1:-1;;17795:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17775:3:::1;::::0;::::1;:::i;:::-;;;17737:105;;10573:123:::0;2514:24;2527:10;2514:12;:24::i;:::-;2506:48;;;;-1:-1:-1;;;2506:48:0;;;;;;;:::i;:::-;10661:18:::1;:27:::0;10573:123::o;9108:156::-;9188:4;9212:44;9226:10;9238:9;9249:6;9212:13;:44::i;2573:94::-;2835:4;2870:5;-1:-1:-1;;;;;2870:5:0;2432:10;2859:16;2416:38;;;;-1:-1:-1;;;2416:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2633:19:0::1;;::::0;;;2655:4:::1;2633:19;::::0;;;;;;;:26;;-1:-1:-1;;2633:26:0::1;::::0;;::::1;::::0;;2573:94::o;17857:204::-;2835:4;2870:5;-1:-1:-1;;;;;2870:5:0;2432:10;2859:16;2416:38;;;;-1:-1:-1;;;2416:38:0;;;;;;;:::i;:::-;17956:9:::1;17951:103;17967:20:::0;;::::1;17951:103;;;18036:6;18009:10;:24;18020:9;;18030:1;18020:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18009:24:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;18009:24:0;:33;;-1:-1:-1;;18009:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17989:3:::1;::::0;::::1;:::i;:::-;;;17951:103;;19873:167:::0;19941:7;19968:64;20009:22;:20;:22::i;:::-;19991:4;;-1:-1:-1;;;;;19991:4:0;8568:7;8586:18;;;:9;:18;;;;;;19968:36;;19981:22;;20001:1;;19981:15;:19;;:22::i;:::-;19968:8;;:12;:36::i;19364:156::-;2514:24;2527:10;2514:12;:24::i;:::-;2506:48;;;;-1:-1:-1;;;2506:48:0;;;;;;;:::i;:::-;19456:11:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;19456:22:0::1;-1:-1:-1::0;;;;19456:22:0;;::::1;::::0;;;::::1;::::0;;;19489:13:::1;:23:::0;19364:156::o;10021:321::-;2835:4;2870:5;-1:-1:-1;;;;;2870:5:0;2432:10;2859:16;2416:38;;;;-1:-1:-1;;;2416:38:0;;;;;;;:::i;:::-;10237:5:::1;10201:31;10186:12;;:46;;;;:::i;:::-;10185:57;;;;:::i;:::-;10164:18;:78:::0;10253:23:::1;:37:::0;;-1:-1:-1;;10253:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;10301:21:::1;:33:::0;-1:-1:-1;10021:321:0:o;15186:124::-;2514:24;2527:10;2514:12;:24::i;:::-;2506:48;;;;-1:-1:-1;;;2506:48:0;;;;;;;:::i;:::-;15266:14:::1;:28:::0;15186:124::o;2675:97::-;2835:4;2870:5;-1:-1:-1;;;;;2870:5:0;2432:10;2859:16;2416:38;;;;-1:-1:-1;;;2416:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2737:19:0::1;2759:5;2737:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;2737:27:0::1;::::0;;2675:97::o;9837:176::-;2835:4;2870:5;-1:-1:-1;;;;;2870:5:0;2432:10;2859:16;2416:38;;;;-1:-1:-1;;;2416:38:0;;;;;;;:::i;:::-;10000:5:::1;9970:25;9955:12;;:40;;;;:::i;:::-;9954:51;;;;:::i;:::-;9939:12;:66:::0;-1:-1:-1;9837:176:0:o;3006:173::-;2835:4;2870:5;-1:-1:-1;;;;;2870:5:0;2432:10;2859:16;2416:38;;;;-1:-1:-1;;;2416:38:0;;;;;;;:::i;:::-;3082:5:::1;:11:::0;;-1:-1:-1;;;;;;3082:11:0::1;-1:-1:-1::0;;;;;3082:11:0;::::1;::::0;;::::1;::::0;;3104:19;;;-1:-1:-1;3104:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;3104:26:0::1;::::0;;::::1;::::0;;;3146:25;;8157:51:1;;;3146:25:0::1;::::0;8130:18:1;3146:25:0::1;;;;;;;3006:173:::0;:::o;18197:128::-;2514:24;2527:10;2514:12;:24::i;:::-;2506:48;;;;-1:-1:-1;;;2506:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18285:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;18285:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18197:128::o;2891:107::-;-1:-1:-1;;;;;2971:19:0;2947:4;2971:19;;;:14;:19;;;;;;;;;2891:107::o;12962:330::-;13092:53;;;;;;;;;;;-1:-1:-1;;;13092:53:0;;;;;;;;-1:-1:-1;;;;;13092:17:0;;13055:4;13092:17;;;:9;:17;;;;;;;:53;;13114:6;;13092:21;:53::i;:::-;-1:-1:-1;;;;;13072:17:0;;;;;;;:9;:17;;;;;;:73;;;;13179:20;;;;;;;:32;;13204:6;13179:24;:32::i;:::-;-1:-1:-1;;;;;13156:20:0;;;;;;;:9;:20;;;;;;;:55;;;;13227:35;;;;;;-1:-1:-1;;;;;;;;;;;13227:35:0;;;13255:6;16683:25:1;;16671:2;16656:18;;16537:177;13227:35:0;;;;;;;;-1:-1:-1;13280:4:0;12962:330;;;;;:::o;457:192::-;543:7;579:12;571:6;;;;563:29;;;;-1:-1:-1;;;563:29:0;;;;;;;;:::i;:::-;-1:-1:-1;603:9:0;615:5;619:1;615;:5;:::i;:::-;603:17;457:192;-1:-1:-1;;;;;457:192:0:o;10808:2142::-;10920:6;;10900:4;;10920:6;;10917:63;;;10936:41;10951:6;10959:9;10970:6;10936:14;:41::i;:::-;10929:48;;;;10917:63;-1:-1:-1;;;;;10996:22:0;;;;;;:14;:22;;;;;;;;10995:23;:53;;;;-1:-1:-1;;;;;;11023:25:0;;;;;;:14;:25;;;;;;;;11022:26;10995:53;10992:233;;;11072:10;;-1:-1:-1;;;11072:10:0;;;;11064:42;;;;-1:-1:-1;;;11064:42:0;;13363:2:1;11064:42:0;;;13345:21:1;13402:2;13382:18;;;13375:30;-1:-1:-1;;;13421:18:1;;;13414:50;13481:18;;11064:42:0;13161:344:1;11064:42:0;11124:6;;-1:-1:-1;;;11124:6:0;;;;:24;;;;-1:-1:-1;11144:4:0;;-1:-1:-1;;;;;11134:14:0;;;11144:4;;11134:14;11124:24;11121:93;;;-1:-1:-1;;;;;11168:23:0;;;;;;:12;:23;;;;;:30;;-1:-1:-1;;11168:30:0;11194:4;11168:30;;;11121:93;11261:12;;;;11258:90;;;-1:-1:-1;;;;;11298:20:0;;;;;;:12;:20;;;;;;;;11297:21;11289:43;;;;-1:-1:-1;;;11289:43:0;;14470:2:1;11289:43:0;;;14452:21:1;14509:2;14489:18;;;14482:30;-1:-1:-1;;;14528:18:1;;;14521:40;14578:18;;11289:43:0;14268:334:1;11289:43:0;-1:-1:-1;;;;;11409:25:0;;;;;;:17;:25;;;;;;;;:53;;;;-1:-1:-1;11439:23:0;;;;11409:53;11405:336;;;-1:-1:-1;;;;;11487:21:0;;;;;;:13;:21;;;;;;11511:15;-1:-1:-1;11479:78:0;;;;-1:-1:-1;;;11479:78:0;;13712:2:1;11479:78:0;;;13694:21:1;13751:2;13731:18;;;13724:30;13790:29;13770:18;;;13763:57;13837:18;;11479:78:0;13510:351:1;11479:78:0;11590:18;;11580:6;:28;;11572:77;;;;-1:-1:-1;;;11572:77:0;;12957:2:1;11572:77:0;;;12939:21:1;12996:2;12976:18;;;12969:30;13035:34;13015:18;;;13008:62;-1:-1:-1;;;13086:18:1;;;13079:35;13131:19;;11572:77:0;12755:401:1;11572:77:0;11708:21;;11690:39;;:15;:39;:::i;:::-;-1:-1:-1;;;;;11666:21:0;;;;;;:13;:21;;;;;:63;11405:336;-1:-1:-1;;;;;11758:22:0;;;;;;:14;:22;;;;;;;;11757:23;:53;;;;-1:-1:-1;;;;;;11784:26:0;;11805:4;11784:26;;11757:53;:84;;;;-1:-1:-1;11836:4:0;;-1:-1:-1;;;;;11815:26:0;;;11836:4;;11815:26;;11757:84;:105;;;;-1:-1:-1;11858:4:0;;-1:-1:-1;;;;;11845:17:0;;;11858:4;;11845:17;;11757:105;:137;;;;-1:-1:-1;11879:15:0;;-1:-1:-1;;;;;11866:28:0;;;11879:15;;11866:28;;11757:137;11753:329;;;-1:-1:-1;;;;;8586:18:0;;11910;8586;;;:9;:18;;;;;;11999:15;;11975:19;11988:6;8586:18;11975:19;:::i;:::-;11974:40;;11966:114;;;;-1:-1:-1;;;11966:114:0;;14809:2:1;11966:114:0;;;14791:21:1;14848:2;14828:18;;;14821:30;14887:34;14867:18;;;14860:62;14958:32;14938:18;;;14931:60;15008:19;;11966:114:0;14607:426:1;11966:114:0;11895:187;11753:329;12137:28;12150:6;12158;12137:12;:28::i;:::-;12181:16;:14;:16::i;:::-;12178:339;;;12200:10;:8;:10::i;:::-;12178:339;;;-1:-1:-1;;;;;12232:22:0;;;;;;:14;:22;;;;;;;;12231:23;:53;;;;-1:-1:-1;;;;;;12259:25:0;;;;;;:14;:25;;;;;;;;12258:26;12231:53;:95;;;;-1:-1:-1;;;;;;12307:19:0;;;;;;:11;:19;;;;;;;;12306:20;12231:95;:133;;;;-1:-1:-1;12360:4:0;;-1:-1:-1;;;;;12347:17:0;;;12360:4;;12347:17;12231:133;:169;;;;-1:-1:-1;12385:15:0;;;;12231:169;:241;;;;;12457:15;;12440:14;;:32;;;;:::i;:::-;12421:15;:51;;12231:241;12228:289;;;12492:13;:11;:13::i;:::-;12576:53;;;;;;;;;;;-1:-1:-1;;;12576:53:0;;;;;;;;-1:-1:-1;;;;;12576:17:0;;-1:-1:-1;12576:17:0;;;:9;:17;;;;;;;;:53;;12598:6;;12576:21;:53::i;:::-;-1:-1:-1;;;;;12556:17:0;;;;;;:9;:17;;;;;;;;:73;;;;13561:11;:19;;;;;;;;13560:20;12668:22;:51;;;-1:-1:-1;;;;;;13561:19:0;;13536:4;13561:19;;;:11;:19;;;;;;;;13560:20;12694:25;12668:51;12667:118;;12769:4;;12732:53;;12740:6;;12748;;-1:-1:-1;;;;;12756:17:0;;;12769:4;;12756:17;:9;12732:7;:53::i;:::-;12667:118;;;12723:6;12667:118;-1:-1:-1;;;;;12819:20:0;;;;;;:9;:20;;;;;;12642:143;;-1:-1:-1;12819:40:0;;12642:143;12819:24;:40::i;:::-;-1:-1:-1;;;;;12796:20:0;;;;;;;:9;:20;;;;;;;:63;;;;12877:43;;;;;;-1:-1:-1;;;;;;;;;;;12877:43:0;;;12905:14;16683:25:1;;16671:2;16656:18;;16537:177;12877:43:0;;;;;;;;-1:-1:-1;12938:4:0;;10808:2142;-1:-1:-1;;;;10808:2142:0:o;315:136::-;373:7;400:43;404:1;407;400:43;;;;;;;;;;;;;;;;;:3;:43::i;128:181::-;186:7;;218:5;222:1;218;:5;:::i;:::-;206:17;;247:1;242;:6;;234:46;;;;-1:-1:-1;;;234:46:0;;12245:2:1;234:46:0;;;12227:21:1;12284:2;12264:18;;;12257:30;12323:29;12303:18;;;12296:57;12370:18;;234:46:0;12043:351:1;655:250:0;713:7;737:6;733:47;;-1:-1:-1;767:1:0;760:8;;733:47;792:9;804:5;808:1;804;:5;:::i;:::-;792:17;-1:-1:-1;837:1:0;828:5;832:1;792:17;828:5;:::i;:::-;:10;820:56;;;;-1:-1:-1;;;820:56:0;;14068:2:1;820:56:0;;;14050:21:1;14107:2;14087:18;;;14080:30;14146:34;14126:18;;;14119:62;-1:-1:-1;;;14197:18:1;;;14190:31;14238:19;;820:56:0;13866:397:1;911:132:0;969:7;996:39;1000:1;1003;996:39;;;;;;;;;;;;;;;;;:3;:39::i;13300:166::-;13397:12;;13387:6;:22;;:49;;;-1:-1:-1;;;;;;13413:23:0;;;;;;:15;:23;;;;;;;;13387:49;13379:79;;;;-1:-1:-1;;;13379:79:0;;11184:2:1;13379:79:0;;;11166:21:1;11223:2;11203:18;;;11196:30;-1:-1:-1;;;11242:18:1;;;11235:47;11299:18;;13379:79:0;10982:341:1;13379:79:0;13300:166;;:::o;14508:197::-;14595:4;;14557;;-1:-1:-1;;;;;14595:4:0;14581:10;:18;;;;:38;;-1:-1:-1;14613:6:0;;;;14612:7;14581:38;:62;;;;-1:-1:-1;14632:11:0;;-1:-1:-1;;;14632:11:0;;;;14581:62;:116;;;;-1:-1:-1;;14684:13:0;;14674:4;14656:24;;;;:9;:24;;;;;;:41;;;14508:197::o;15547:1877::-;7129:6;:13;;-1:-1:-1;;7129:13:0;7138:4;7129:13;;;15642:15:::1;::::0;15659:26:::1;::::0;7129:6;;15626:60:::1;::::0;:15:::1;:60::i;:::-;:79;;15693:12;;15626:79;;;15689:1;15626:79;15596:109;;15716:23;15742:59;15799:1;15742:52;15785:8;;15742:38;15760:19;15742:13;;:17;;:38;;;;:::i;:59::-;15716:85;;15812:20;15835:34;15853:15;15835:13;;:17;;:34;;;;:::i;:::-;15906:16;::::0;;15920:1:::1;15906:16:::0;;;;;::::1;::::0;;15812:57;;-1:-1:-1;15882:21:0::1;::::0;15906:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15906:16:0::1;15882:40;;15951:4;15933;15938:1;15933:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15933:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;15977:4:::1;::::0;15967:7;;15977:4;::::1;::::0;15967;;15977;;15967:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;15967:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;16052:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;16052:188:0;;16018:21:::1;::::0;16052:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;16124:12;;15994:21:::1;::::0;16167:4;;16194::::1;::::0;16214:15:::1;::::0;16052:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16253:17;16273:40;16299:13;16273:21;:25;;:40;;;;:::i;:::-;16253:60:::0;-1:-1:-1;16326:19:0::1;16348:40;16361:26;:19:::0;16385:1:::1;16361:23;:26::i;:::-;16348:8;::::0;;:12:::1;:40::i;:::-;16326:62:::0;-1:-1:-1;16409:26:0::1;16438:58;16494:1;16438:51;16326:62:::0;16438:51;:9;16452:19;16438:13:::1;:34::i;:58::-;16409:87;;16507:26;16536:44;16568:11;16536:27;16550:12;;16536:9;:13;;:27;;;;:::i;:44::-;16507:73;;16591:21;16615:39;16642:11;16615:22;16629:7;;16615:9;:13;;:22;;;;:::i;:39::-;16591:63;;16665:24;16692:42;16722:11;16692:25;16706:10;;16692:9;:13;;:25;;;;:::i;:42::-;16776:20;::::0;16768:65:::1;::::0;16665:69;;-1:-1:-1;16748:15:0::1;::::0;-1:-1:-1;;;;;16776:20:0;;::::1;::::0;16810:18;;16748:15;16768:65;16748:15;16768:65;16810:18;16776:20;16768:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16868:18:0::1;::::0;16860:61:::1;::::0;16747:86;;-1:-1:-1;;;;;;16868:18:0::1;::::0;16900:16;;16860:61:::1;::::0;;;16900:16;16868:18;16860:61:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16956:15:0::1;::::0;16948:55:::1;::::0;16844:77;;-1:-1:-1;;;;;;16956:15:0::1;::::0;16985:13;;16948:55:::1;::::0;;;16985:13;16956:15;16948:55:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;17037:5:0::1;::::0;-1:-1:-1;;17058:19:0;;;-1:-1:-1;17055:362:0::1;;17093:6;::::0;17267:21:::1;::::0;17093:244:::1;::::0;-1:-1:-1;;;17093:244:0;;17169:4:::1;17093:244;::::0;::::1;9055:34:1::0;9105:18;;;9098:34;;;17093:6:0::1;9148:18:1::0;;;9141:34;;;9191:18;;;9184:34;-1:-1:-1;;;;;17267:21:0;;::::1;9234:19:1::0;;;9227:44;17307:15:0::1;9287:19:1::0;;;9280:35;17093:6:0;::::1;::::0;:22:::1;::::0;17123:18;;8989:19:1;;17093:244:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;17357:48:0::1;::::0;;17878:25:1;;;17934:2;17919:18;;17912:34;;;17357:48:0::1;::::0;-1:-1:-1;17851:18:1;17357:48:0::1;;;;;;;17055:362;-1:-1:-1::0;;7147:6:0;:14;;-1:-1:-1;;7147:14:0;;;-1:-1:-1;;;;;;;;;;15547:1877:0:o;21590:158::-;21629:11;21643:31;21657:16;;21643:13;:31::i;:::-;21629:45;;21684:6;21681:62;;;21720:15;21703:14;:32;21681:62;21622:126;21590:158::o;13596:904::-;13694:7;13724:18;13745:6;:29;;13771:3;13745:29;;;13754:14;;13745:29;13788:10;;13724:50;;-1:-1:-1;13788:10:0;;:35;;;;-1:-1:-1;;;;;;13803:20:0;;;;;;:10;:20;;;;;;;;13802:21;13788:35;:46;;;;;13828:6;13827:7;13788:46;13785:93;;;-1:-1:-1;13863:3:0;13785:93;13890:17;13910:62;13951:14;;13968:3;13951:20;;;;:::i;:::-;13910:36;13935:10;13910:20;13921:8;;13910:6;:10;;:20;;;;:::i;:62::-;13890:82;;13985:18;14006:36;14033:8;;14006:22;14020:7;;14006:9;:13;;:22;;;;:::i;:36::-;13985:57;-1:-1:-1;14053:22:0;14078:25;:9;13985:57;14078:13;:25::i;:::-;14161:4;14143:24;;;;:9;:24;;;;;;14053:50;;-1:-1:-1;14143:44:0;;14053:50;14143:28;:44::i;:::-;14134:4;14116:24;;;;:9;:24;;;;;;:71;;;;14237:15;;-1:-1:-1;;;;;14237:15:0;14227:26;;;;:42;;14258:10;14227:30;:42::i;:::-;14208:15;;-1:-1:-1;;;;;14208:15:0;;;14198:26;;;;:9;:26;;;;;;;;;:71;;;;14285:47;16683:25:1;;;14310:4:0;;14285:47;;;;-1:-1:-1;;;;;;;;;;;14285:47:0;16656:18:1;14285:47:0;;;;;;;14356:14;;14353:99;;14408:15;;14391:45;;16683:25:1;;;-1:-1:-1;;;;;14408:15:0;;;;14391:45;;;-1:-1:-1;;;;;;;;;;;14391:45:0;16671:2:1;16656:18;14391:45:0;;;;;;;14353:99;14471:21;:6;14482:9;14471:10;:21::i;:::-;14464:28;13596:904;-1:-1:-1;;;;;;;;;13596:904:0:o;1049:189::-;1135:7;1170:12;1163:5;1155:28;;;;-1:-1:-1;;;1155:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1194:9:0;1206:5;1210:1;1206;: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;15863:329::-;16065:2;16047:21;;;16104:1;16084:18;;;16077:29;-1:-1:-1;;;16137:2:1;16122:18;;16115:36;16183:2;16168:18;;15863:329::o;16197:335::-;16399:2;16381:21;;;16438:2;16418:18;;;16411:30;-1:-1:-1;;;16472:2:1;16457:18;;16450:41;16523:2;16508:18;;16197:335::o;16719:980::-;16981:4;17029:3;17018:9;17014:19;17060:6;17049:9;17042:25;17086:2;17124:6;17119:2;17108:9;17104:18;17097:34;17167:3;17162:2;17151:9;17147:18;17140:31;17191:6;17226;17220:13;17257:6;17249;17242:22;17295:3;17284:9;17280:19;17273:26;;17334:2;17326:6;17322:15;17308:29;;17355:1;17365:195;17379:6;17376:1;17373:13;17365:195;;;17444:13;;-1:-1:-1;;;;;17440:39:1;17428:52;;17535:15;;;;17500:12;;;;17476:1;17394:9;17365:195;;;-1:-1:-1;;;;;;;17616:32:1;;;;17611:2;17596:18;;17589:60;-1:-1:-1;;;17680:3:1;17665:19;17658:35;17577:3;16719:980;-1:-1:-1;;;16719:980:1:o;18146:128::-;18186:3;18217:1;18213:6;18210:1;18207:13;18204:39;;;18223:18;;:::i;:::-;-1:-1:-1;18259:9:1;;18146:128::o;18279:217::-;18319:1;18345;18335:132;;18389:10;18384:3;18380:20;18377:1;18370:31;18424:4;18421:1;18414:15;18452:4;18449:1;18442:15;18335:132;-1:-1:-1;18481:9:1;;18279:217::o;18501:168::-;18541:7;18607:1;18603;18599:6;18595:14;18592:1;18589:21;18584:1;18577:9;18570:17;18566:45;18563:71;;;18614:18;;:::i;:::-;-1:-1:-1;18654:9:1;;18501:168::o;18674:125::-;18714:4;18742:1;18739;18736:8;18733:34;;;18747:18;;:::i;:::-;-1:-1:-1;18784:9:1;;18674:125::o;18804:135::-;18843:3;-1:-1:-1;;18864:17:1;;18861:43;;;18884:18;;:::i;:::-;-1:-1:-1;18931:1:1;18920:13;;18804:135::o;18944:127::-;19005:10;19000:3;18996:20;18993:1;18986:31;19036:4;19033:1;19026:15;19060:4;19057:1;19050:15;19076:127;19137:10;19132:3;19128:20;19125:1;19118:31;19168:4;19165:1;19158:15;19192:4;19189:1;19182:15;19340:131;-1:-1:-1;;;;;19415:31:1;;19405:42;;19395:70;;19461:1;19458;19451:12;19476:118;19562:5;19555:13;19548:21;19541:5;19538:32;19528:60;;19584:1;19581;19574:12

Swarm Source

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