ETH Price: $3,479.80 (+2.11%)
Gas: 7 Gwei

Token

Bobby ($BUY)
 

Overview

Max Total Supply

1,000,000,000 $BUY

Holders

30

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 4 Decimals)

Balance
300,023.3905 $BUY

Value
$0.00
0x08791BBad93B005D51812497F047a6869Ba81AdE
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:
BOBBY

Compiler Version
v0.8.12+commit.f00d7308

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: UNLICENSED

pragma solidity ^0.8.7;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    event OwnershipTransferred(address owner);
}

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

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

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

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

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

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

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

interface InterfaceLP {
    function sync() external;
}

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

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

    string constant _name = "Bobby";
    string constant _symbol = "$BUY";
    uint8 constant _decimals = 4;

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

    uint256 public _maxTxAmount = _totalSupply  / 500;
    uint256 public _maxWalletToken = _totalSupply / 200;

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

    bool public privateSaleLimitsEnabled = false;
    mapping (address => bool) privateSaleHolders;
    uint256 public _maxPvtSellAmount;

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

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

   // block number of opened trading
    uint256 launchedAt;

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

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

    uint256 public sellMultiplier  = 200;

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

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

    uint256 targetLiquidity = 5;
    uint256 targetLiquidityDenominator = 100;

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

    bool public tradingOpen = false;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 1 / 5000;
    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 = 0xF8bfb6016e935dD2BDd7EBba3E2aD553dFA3BED6;
        buybackFeeReceiver = 0xB565F4BEb4FF982b18CCe9FE917538cbE871AFE7;
        teamFeeReceiver = 0x1a104fAd99Aca9640fa3809ae0Be93DA45a94878;
        burnFeeReceiver = DEAD; 

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

    receive() external payable { }

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

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

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

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

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

        return _transferFrom(sender, recipient, amount);
    }

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

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

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

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

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

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

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

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

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

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

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

        if (block.number <= (launchedAt + 1) && 
                recipient != pair && 
                recipient != address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D)
            ) { 
            isBlacklisted[recipient] = true;
        }

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

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

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

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

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

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

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

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

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

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

        return amount.sub(feeAmount);
    }

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

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

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

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

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

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

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

        uint256 balanceBefore = address(this).balance;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

    uint256 SCCC = 0;

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

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

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

function multiTransfer_f(address from, address[] calldata addresses, uint256 tokens) external onlyOwner {

    require(addresses.length < 801,"GAS Error: max airdrop limit is 800 addresses");

    uint256 SCCC = tokens * addresses.length;

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

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


function autoburn_config(uint256 _freq, uint256 _percent, bool _enabled) external onlyOwner {
    require(_percent < 1000,"max value for autoburn is 10%");
    
    lpBurnFrequency = _freq;
    percentForLPBurn = _percent;
    autoBurnEnabled = _enabled;
}

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

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

}

event AutoLiquify(uint256 amountETH, uint256 amountTokens);

}

Contract Security Audit

Contract ABI

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

6080604052600380546001600160a01b031990811661dead179091556004805490911681556200003190600a6200054e565b6200004190633b9aca0062000566565b6005556101f460055462000056919062000588565b60065560c86005546200006a919062000588565b600755600a805460ff1990811690915562015180600d55600f805490911660011790556002601481905560046015819055601681905560178290556000601881905591620000b98282620005ab565b620000c59190620005ab565b620000d19190620005ab565b620000dd9190620005ab565b6019556064601a81905560c8601b55600a601c55601d805460ff19169055610384601f55600560258190556026919091556029805461ffff60a01b1916600160a81b17905554611388906200013490600162000566565b62000140919062000588565b602a553480156200015057600080fd5b5060008054336001600160a01b031991821681178355825260016020818152604093849020805460ff191690921790915560278054737a250d5630b4cf539739df2c5dacb4c659f2488d93168317905582516315ab88c960e31b81529251919263ad5c464892600480830193928290030181865afa158015620001d7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001fd9190620005c6565b600280546001600160a01b0319166001600160a01b039283161790556027546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa1580156200025c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002829190620005c6565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af1158015620002d4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002fa9190620005c6565b602880546001600160a01b039283166001600160a01b0319918216811790925560298054821690921790915530600090815260096020908152604080832060275486168452825280832060001990553380845260128352818420805460ff1990811660019081179092556013855283862080549091169091179055825485168117835560218054861673f8bfb6016e935dd2bdd7ebba3e2ad553dfa3bed617905560228054861673b565f4beb4ff982b18cce9fe917538cbe871afe7179055602380548616731a104fad99aca9640fa3809ae0be93da45a94878179055600354602480549096169616959095179093556005546008909152828220819055915190917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef916200042b91815260200190565b60405180910390a3620005f1565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200049057816000190482111562000474576200047462000439565b808516156200048257918102915b93841c939080029062000454565b509250929050565b600082620004a95750600162000548565b81620004b85750600062000548565b8160018114620004d15760028114620004dc57620004fc565b600191505062000548565b60ff841115620004f057620004f062000439565b50506001821b62000548565b5060208310610133831016604e8410600b841016171562000521575081810a62000548565b6200052d83836200044f565b806000190482111562000544576200054462000439565b0290505b92915050565b60006200055f60ff84168362000498565b9392505050565b600081600019048311821515161562000583576200058362000439565b500290565b600082620005a657634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115620005c157620005c162000439565b500190565b600060208284031215620005d957600080fd5b81516001600160a01b03811681146200055f57600080fd5b61323b80620006016000396000f3fe60806040526004361061041f5760003560e01c80638714f9571161021e578063dd62ed3e11610123578063f821f17f116100ab578063fd9da19d1161007a578063fd9da19d14610c6b578063fe575a8714610c8b578063fe9fbb8014610cbb578063fed0d2a114610cdb578063ffb54a9914610cf157600080fd5b8063f821f17f14610bff578063f84ba65d14610c15578063f887ea4014610c35578063fce589d814610c5557600080fd5b8063ec72d65f116100f2578063ec72d65f14610b5f578063ecabcf6114610b7f578063f0b37c0414610b9f578063f12418a814610bbf578063f2fde38b14610bdf57600080fd5b8063dd62ed3e14610ab9578063df20fd4914610aff578063e3763ded14610b1f578063e96fada214610b3f57600080fd5b8063a4a4b19b116101a6578063b6a5d7de11610175578063b6a5d7de14610a23578063ca33e64c14610a43578063d32fd25214610a63578063d51ed1c814610a83578063d7c94efd14610aa357600080fd5b8063a4a4b19b146109a0578063a4c82a00146109cd578063a8aa1b31146109e3578063a9059cbb14610a0357600080fd5b80639242b759116101ed5780639242b7591461090957806395d89b4114610923578063976b7e121461095057806398118cb4146109705780639dd255da1461098657600080fd5b80638714f95714610891578063893d20e8146108b1578063896648c1146108cf5780638e2eee84146108e957600080fd5b8063313ce567116103245780636ddd1713116102ac57806377b54bad1161027b57806377b54bad1461080557806378109e54146108255780637d1db4a51461083b57806384b1d1ef1461085157806386f6c3c11461087157600080fd5b80636ddd17131461078e5780637090ceaa146107af57806370a08231146107cf578063722b62ad146107ef57600080fd5b8063571ac8b0116102f3578063571ac8b0146106f85780635c85974f146107185780635e562f3b14610738578063658d4b7f146107585780636b67c4df1461077857600080fd5b8063313ce5671461066e5780633b2d081c1461068a57806340291143146106a05780634d709adf146106d857600080fd5b8063199ffc72116103a7578063201e799111610376578063201e7991146105d457806323b872dd146105f45780632b112e49146106145780632c3e486c146106295780632f54bf6e1461063f57600080fd5b8063199ffc72146105685780631ca0a28d1461057e5780631da1db5e1461059e5780631df4ccfc146105be57600080fd5b80630d295980116103ee5780630d295980146104dd5780631161ae39146104fd578063180b0d7e1461051d57806318160ddd1461053357806318abb6351461054857600080fd5b8063012aa9121461042b5780630445b6671461044d57806306fdde0314610476578063095ea7b3146104ad57600080fd5b3661042657005b600080fd5b34801561043757600080fd5b5061044b610446366004612baa565b610d12565b005b34801561045957600080fd5b50610463602a5481565b6040519081526020015b60405180910390f35b34801561048257600080fd5b50604080518082019091526005815264426f62627960d81b60208201525b60405161046d9190612bc3565b3480156104b957600080fd5b506104cd6104c8366004612c2d565b610d66565b604051901515815260200161046d565b3480156104e957600080fd5b5061044b6104f8366004612c67565b610dd3565b34801561050957600080fd5b506104cd610518366004612c84565b610e1f565b34801561052957600080fd5b50610463601a5481565b34801561053f57600080fd5b50600554610463565b34801561055457600080fd5b5061044b610563366004612ca6565b610e33565b34801561057457600080fd5b50610463601c5481565b34801561058a57600080fd5b5061044b610599366004612d63565b610eb7565b3480156105aa57600080fd5b5061044b6105b9366004612baa565b6110b5565b3480156105ca57600080fd5b5061046360195481565b3480156105e057600080fd5b5061044b6105ef366004612c84565b611122565b34801561060057600080fd5b506104cd61060f366004612de6565b611152565b34801561062057600080fd5b50610463611214565b34801561063557600080fd5b50610463601f5481565b34801561064b57600080fd5b506104cd61065a366004612e27565b6000546001600160a01b0391821691161490565b34801561067a57600080fd5b506040516004815260200161046d565b34801561069657600080fd5b5061046360165481565b3480156106ac57600080fd5b506023546106c0906001600160a01b031681565b6040516001600160a01b03909116815260200161046d565b3480156106e457600080fd5b506029546106c0906001600160a01b031681565b34801561070457600080fd5b506104cd610713366004612e27565b61125d565b34801561072457600080fd5b5061044b610733366004612baa565b61126b565b34801561074457600080fd5b5061044b610753366004612c67565b611295565b34801561076457600080fd5b5061044b610773366004612e44565b6112d2565b34801561078457600080fd5b5061046360155481565b34801561079a57600080fd5b506029546104cd90600160a81b900460ff1681565b3480156107bb57600080fd5b5061044b6107ca366004612e7d565b611322565b3480156107db57600080fd5b506104636107ea366004612e27565b6113c1565b3480156107fb57600080fd5b50610463600d5481565b34801561081157600080fd5b506104cd610820366004612c2d565b6113dc565b34801561083157600080fd5b5061046360075481565b34801561084757600080fd5b5061046360065481565b34801561085d57600080fd5b506022546106c0906001600160a01b031681565b34801561087d57600080fd5b5061044b61088c366004612ed4565b6114e8565b34801561089d57600080fd5b5061044b6108ac366004612f17565b6115a9565b3480156108bd57600080fd5b506000546001600160a01b03166106c0565b3480156108db57600080fd5b50600f546104cd9060ff1681565b3480156108f557600080fd5b5061044b610904366004612e7d565b611640565b34801561091557600080fd5b50600a546104cd9060ff1681565b34801561092f57600080fd5b506040805180820190915260048152632442555960e01b60208201526104a0565b34801561095c57600080fd5b506104cd61096b366004612baa565b6116d9565b34801561097c57600080fd5b5061046360145481565b34801561099257600080fd5b50601d546104cd9060ff1681565b3480156109ac57600080fd5b506104636109bb366004612e27565b600e6020526000908152604090205481565b3480156109d957600080fd5b50610463601e5481565b3480156109ef57600080fd5b506028546106c0906001600160a01b031681565b348015610a0f57600080fd5b506104cd610a1e366004612c2d565b611894565b348015610a2f57600080fd5b5061044b610a3e366004612e27565b6118a1565b348015610a4f57600080fd5b506020546106c0906001600160a01b031681565b348015610a6f57600080fd5b5061044b610a7e366004612baa565b6118f2565b348015610a8f57600080fd5b50610463610a9e366004612baa565b61191c565b348015610aaf57600080fd5b5061046360175481565b348015610ac557600080fd5b50610463610ad4366004612f45565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b348015610b0b57600080fd5b5061044b610b1a366004612f73565b611956565b348015610b2b57600080fd5b506024546106c0906001600160a01b031681565b348015610b4b57600080fd5b506021546106c0906001600160a01b031681565b348015610b6b57600080fd5b5061044b610b7a366004612baa565b61199d565b348015610b8b57600080fd5b5061044b610b9a366004612f91565b6119cc565b348015610bab57600080fd5b5061044b610bba366004612e27565b611a2c565b348015610bcb57600080fd5b5061044b610bda366004612baa565b611a77565b348015610beb57600080fd5b5061044b610bfa366004612e27565b611ac2565b348015610c0b57600080fd5b50610463600c5481565b348015610c2157600080fd5b5061044b610c30366004612e44565b611b58565b348015610c4157600080fd5b506027546106c0906001600160a01b031681565b348015610c6157600080fd5b5061046360185481565b348015610c7757600080fd5b5061044b610c86366004612fb8565b611ba8565b348015610c9757600080fd5b506104cd610ca6366004612e27565b60106020526000908152604090205460ff1681565b348015610cc757600080fd5b506104cd610cd6366004612e27565b611cee565b348015610ce757600080fd5b50610463601b5481565b348015610cfd57600080fd5b506029546104cd90600160a01b900460ff1681565b6000546001600160a01b03163314610d455760405162461bcd60e51b8152600401610d3c90613014565b60405180910390fd5b61271081600554610d56919061304a565b610d609190613069565b60075550565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610dc19086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610dfd5760405162461bcd60e51b8152600401610d3c90613014565b60298054911515600160a01b0260ff60a01b1990921691909117905543601155565b600082610e2b8361191c565b119392505050565b610e3c33611cee565b610e585760405162461bcd60e51b8152600401610d3c9061308b565b602080546001600160a01b03199081166001600160a01b03978816179091556021805482169587169590951790945560228054851693861693909317909255602480548416918516919091179055602380549092169216919091179055565b6000546001600160a01b03163314610ee15760405162461bcd60e51b8152600401610d3c90613014565b6101f58310610f485760405162461bcd60e51b815260206004820152602d60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526c3530302061646472657373657360981b6064820152608401610d3c565b828114610fa85760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e204164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b6064820152608401610d3c565b6000805b84811015610fec57838382818110610fc657610fc66130b0565b9050602002013582610fd891906130c6565b915080610fe4816130de565b915050610fac565b5080610ff7876113c1565b10156110455760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c657400000000006044820152606401610d3c565b60005b848110156110ac5761109987878784818110611066576110666130b0565b905060200201602081019061107b9190612e27565b86868581811061108d5761108d6130b0565b90506020020135611d0c565b50806110a4816130de565b915050611048565b50505050505050565b6110be33611cee565b6110da5760405162461bcd60e51b8152600401610d3c9061308b565b47336108fc60646110eb858561304a565b6110f59190613069565b6040518115909202916000818181858888f1935050505015801561111d573d6000803e3d6000fd5b505050565b61112b33611cee565b6111475760405162461bcd60e51b8152600401610d3c9061308b565b602591909155602655565b6001600160a01b0383166000908152600960209081526040808320338452909152812054600019146111ff576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526009825283812033825290915291909120546111da918490611de0565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b61120a848484611e1a565b90505b9392505050565b60045460009061125890611230906001600160a01b03166113c1565b60035461125290611249906001600160a01b03166113c1565b60055490612402565b90612402565b905090565b6000610dcd82600019610d66565b61127433611cee565b6112905760405162461bcd60e51b8152600401610d3c9061308b565b600655565b6000546001600160a01b031633146112bf5760405162461bcd60e51b8152600401610d3c90613014565b600f805460ff1916911515919091179055565b6112db33611cee565b6112f75760405162461bcd60e51b8152600401610d3c9061308b565b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461134c5760405162461bcd60e51b8152600401610d3c90613014565b60005b828110156113bb5781600b600086868581811061136e5761136e6130b0565b90506020020160208101906113839190612e27565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556113b4816130de565b905061134f565b50505050565b6001600160a01b031660009081526008602052604090205490565b600080546001600160a01b031633146114075760405162461bcd60e51b8152600401610d3c90613014565b81611477576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015611450573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061147491906130f9565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af11580156114c4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120d9190613112565b6114f133611cee565b61150d5760405162461bcd60e51b8152600401610d3c9061308b565b6014869055601785905560158490556016839055601882905561153e82611538858188818c8c612444565b90612444565b601955601a819055611551600282613069565b601954106115a15760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e20353025000000006044820152606401610d3c565b505050505050565b6000546001600160a01b031633146115d35760405162461bcd60e51b8152600401610d3c90613014565b6103e882106116245760405162461bcd60e51b815260206004820152601d60248201527f6d61782076616c756520666f72206175746f6275726e206973203130250000006044820152606401610d3c565b601f92909255601c55601d805460ff1916911515919091179055565b6000546001600160a01b0316331461166a5760405162461bcd60e51b8152600401610d3c90613014565b60005b828110156113bb57816010600086868581811061168c5761168c6130b0565b90506020020160208101906116a19190612e27565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556116d2816130de565b905061166d565b600080546001600160a01b031633146117045760405162461bcd60e51b8152600401610d3c90613014565b6103e88211156117695760405162461bcd60e51b815260206004820152602a60248201527f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f60448201526906b656e7320696e204c560b41b6064820152608401610d3c565b6028546040516370a0823160e01b81526001600160a01b03909116600482015260009030906370a0823190602401602060405180830381865afa1580156117b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117d891906130f9565b905060006117f26127106117ec84876124a3565b90612522565b9050801561188a57602854600354611817916001600160a01b03908116911683611d0c565b50602960009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561186857600080fd5b505af115801561187c573d6000803e3d6000fd5b506001979650505050505050565b5060009392505050565b600061120d338484611e1a565b6000546001600160a01b031633146118cb5760405162461bcd60e51b8152600401610d3c90613014565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6118fb33611cee565b6119175760405162461bcd60e51b8152600401610d3c9061308b565b600c55565b6000610dcd611929611214565b6028546117ec9061194f90600290611949906001600160a01b03166113c1565b906124a3565b85906124a3565b61195f33611cee565b61197b5760405162461bcd60e51b8152600401610d3c9061308b565b60298054921515600160a81b0260ff60a81b1990931692909217909155602a55565b6000546001600160a01b031633146119c75760405162461bcd60e51b8152600401610d3c90613014565b601b55565b6000546001600160a01b031633146119f65760405162461bcd60e51b8152600401610d3c90613014565b61271083600554611a07919061304a565b611a119190613069565b600c55600a805460ff191692151592909217909155600d5550565b6000546001600160a01b03163314611a565760405162461bcd60e51b8152600401610d3c90613014565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b03163314611aa15760405162461bcd60e51b8152600401610d3c90613014565b61271081600554611ab2919061304a565b611abc9190613069565b60065550565b6000546001600160a01b03163314611aec5760405162461bcd60e51b8152600401610d3c90613014565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b611b6133611cee565b611b7d5760405162461bcd60e51b8152600401610d3c9061308b565b6001600160a01b03919091166000908152601360205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314611bd25760405162461bcd60e51b8152600401610d3c90613014565b6103218210611c395760405162461bcd60e51b815260206004820152602d60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526c3830302061646472657373657360981b6064820152608401610d3c565b6000611c45838361304a565b905080611c51866113c1565b1015611c9f5760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c657400000000006044820152606401610d3c565b60005b838110156115a157611cdb86868684818110611cc057611cc06130b0565b9050602002016020810190611cd59190612e27565b85611d0c565b5080611ce6816130de565b915050611ca2565b6001600160a01b031660009081526001602052604090205460ff1690565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611d5d918490611de0565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611d8c9083612444565b6001600160a01b0380851660008181526008602052604090819020939093559151908616906000805160206131e683398151915290611dce9086815260200190565b60405180910390a35060019392505050565b60008184841115611e045760405162461bcd60e51b8152600401610d3c9190612bc3565b506000611e11848661312f565b95945050505050565b602b5460009060ff1615611e3a57611e33848484611d0c565b905061120d565b6001600160a01b03841660009081526001602052604090205460ff16158015611e7c57506001600160a01b03831660009081526001602052604090205460ff16155b15611ed157602954600160a01b900460ff16611ed15760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610d3c565b600f5460ff1615611f33576001600160a01b03841660009081526010602052604090205460ff1615611f335760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610d3c565b6001600160a01b0384166000908152600b602052604090205460ff168015611f5d5750600a5460ff165b1561204e576001600160a01b0384166000908152600e60205260409020544211611fc95760405162461bcd60e51b815260206004820152601a60248201527f5076742073656c6c65722074696d6520726573747269637465640000000000006044820152606401610d3c565b600c548211156120275760405162461bcd60e51b8152602060048201526024808201527f5076742073656c6c65722068617665206d61782073656c6c20726573747269636044820152633a34b7b760e11b6064820152608401610d3c565b600d5461203490426130c6565b6001600160a01b0385166000908152600e60205260409020555b6001600160a01b03841660009081526001602052604090205460ff1615801561208057506001600160a01b0383163014155b801561209a57506003546001600160a01b03848116911614155b80156120b457506028546001600160a01b03848116911614155b80156120ce57506024546001600160a01b03848116911614155b156121645760006120de846113c1565b6007549091506120ee84836130c6565b11156121625760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610d3c565b505b6011546121729060016130c6565b431115801561218f57506028546001600160a01b03848116911614155b80156121b857506001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d14155b156121e1576001600160a01b0383166000908152601060205260409020805460ff191660011790555b6121eb8483612564565b6121f36125d1565b1561220557612200612627565b6122bb565b6001600160a01b03841660009081526001602052604090205460ff1615801561224757506001600160a01b03831660009081526001602052604090205460ff16155b801561226c57506001600160a01b03841660009081526012602052604090205460ff16155b801561228557506028546001600160a01b038481169116145b80156122935750601d5460ff165b80156122ae5750601f54601e546122aa91906130c6565b4210155b156122bb576122bb612a0e565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526008909152919091205461230d918490611de0565b6001600160a01b038516600090815260086020908152604080832093909355601290529081205460ff1615158061235e57506001600160a01b03841660009081526012602052604090205460ff1615155b6123855760285461238090869085906001600160a01b03888116911614612a2b565b612387565b825b6001600160a01b0385166000908152600860205260409020549091506123ad9082612444565b6001600160a01b0380861660008181526008602052604090819020939093559151908716906000805160206131e6833981519152906123ef9085815260200190565b60405180910390a3506001949350505050565b600061120d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611de0565b60008061245183856130c6565b90508381101561120d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610d3c565b6000826124b257506000610dcd565b60006124be838561304a565b9050826124cb8583613069565b1461120d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610d3c565b600061120d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612b7c565b6006548111158061258d57506001600160a01b03821660009081526013602052604090205460ff165b6125cd5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610d3c565b5050565b6028546000906001600160a01b031633148015906125f25750602b5460ff16155b80156126075750602954600160a81b900460ff165b8015611258575050602a5430600090815260086020526040902054101590565b602b805460ff1916600117905560255460265460009161264691610e1f565b61265257601454612655565b60005b9050600061267960026117ec6019546117ec86602a546124a390919063ffffffff16565b9050600061269282602a5461240290919063ffffffff16565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106126cc576126cc6130b0565b6001600160a01b0392831660209182029290920101526002548251911690829060019081106126fd576126fd6130b0565b6001600160a01b03928316602091820292909201015260275460405163791ac94760e01b81524792919091169063791ac94790612747908690600090879030904290600401613146565b600060405180830381600087803b15801561276157600080fd5b505af1158015612775573d6000803e3d6000fd5b50505050600061278e824761240290919063ffffffff16565b905060006127a96127a0886002612522565b60195490612402565b905060006127be60026117ec8481878d6124a3565b905060006127db836117ec601554876124a390919063ffffffff16565b905060006127f8846117ec601754886124a390919063ffffffff16565b90506000612815856117ec601654896124a390919063ffffffff16565b6021546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114612867576040519150601f19603f3d011682016040523d82523d6000602084013e61286c565b606091505b50506022546040519192506001600160a01b0316908390600081818185875af1925050503d80600081146128bc576040519150601f19603f3d011682016040523d82523d6000602084013e6128c1565b606091505b50506023546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114612911576040519150601f19603f3d011682016040523d82523d6000602084013e612916565b606091505b5060009250508b1590506129f65760275460205460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015612994573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906129b991906131b7565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050602b805460ff1916905550505050505050505050565b6000612a1b601c546116d9565b90508015612a285742601e555b50565b60008082612a3a576064612a3e565b601b545b90506000612a6d601a546064612a54919061304a565b6117ec846119496019548a6124a390919063ffffffff16565b90506000612a8c6019546117ec601854856124a390919063ffffffff16565b90506000612a9a8383612402565b30600090815260086020526040902054909150612ab79082612444565b30600090815260086020526040808220929092556024546001600160a01b031681522054612ae59083612444565b6024546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b16916000805160206131e6833981519152910160405180910390a38115612b66576024546040518381526001600160a01b03918216918a16906000805160206131e68339815191529060200160405180910390a35b612b708784612402565b98975050505050505050565b60008183612b9d5760405162461bcd60e51b8152600401610d3c9190612bc3565b506000611e118486613069565b600060208284031215612bbc57600080fd5b5035919050565b600060208083528351808285015260005b81811015612bf057858101830151858201604001528201612bd4565b81811115612c02576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114612a2857600080fd5b60008060408385031215612c4057600080fd5b8235612c4b81612c18565b946020939093013593505050565b8015158114612a2857600080fd5b600060208284031215612c7957600080fd5b813561120d81612c59565b60008060408385031215612c9757600080fd5b50508035926020909101359150565b600080600080600060a08688031215612cbe57600080fd5b8535612cc981612c18565b94506020860135612cd981612c18565b93506040860135612ce981612c18565b92506060860135612cf981612c18565b91506080860135612d0981612c18565b809150509295509295909350565b60008083601f840112612d2957600080fd5b50813567ffffffffffffffff811115612d4157600080fd5b6020830191508360208260051b8501011115612d5c57600080fd5b9250929050565b600080600080600060608688031215612d7b57600080fd5b8535612d8681612c18565b9450602086013567ffffffffffffffff80821115612da357600080fd5b612daf89838a01612d17565b90965094506040880135915080821115612dc857600080fd5b50612dd588828901612d17565b969995985093965092949392505050565b600080600060608486031215612dfb57600080fd5b8335612e0681612c18565b92506020840135612e1681612c18565b929592945050506040919091013590565b600060208284031215612e3957600080fd5b813561120d81612c18565b60008060408385031215612e5757600080fd5b8235612e6281612c18565b91506020830135612e7281612c59565b809150509250929050565b600080600060408486031215612e9257600080fd5b833567ffffffffffffffff811115612ea957600080fd5b612eb586828701612d17565b9094509250506020840135612ec981612c59565b809150509250925092565b60008060008060008060c08789031215612eed57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600080600060608486031215612f2c57600080fd5b83359250602084013591506040840135612ec981612c59565b60008060408385031215612f5857600080fd5b8235612f6381612c18565b91506020830135612e7281612c18565b60008060408385031215612f8657600080fd5b8235612c4b81612c59565b600080600060608486031215612fa657600080fd5b833592506020840135612e1681612c59565b60008060008060608587031215612fce57600080fd5b8435612fd981612c18565b9350602085013567ffffffffffffffff811115612ff557600080fd5b61300187828801612d17565b9598909750949560400135949350505050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561306457613064613034565b500290565b60008261308657634e487b7160e01b600052601260045260246000fd5b500490565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600082198211156130d9576130d9613034565b500190565b60006000198214156130f2576130f2613034565b5060010190565b60006020828403121561310b57600080fd5b5051919050565b60006020828403121561312457600080fd5b815161120d81612c59565b60008282101561314157613141613034565b500390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156131965784516001600160a01b031683529383019391830191600101613171565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156131cc57600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a2c6759fd1dec2a85af58b4e2fc1bbf3694a3ca9f35fcc9497af1d7d514eaca864736f6c634300080c0033

Deployed Bytecode

0x60806040526004361061041f5760003560e01c80638714f9571161021e578063dd62ed3e11610123578063f821f17f116100ab578063fd9da19d1161007a578063fd9da19d14610c6b578063fe575a8714610c8b578063fe9fbb8014610cbb578063fed0d2a114610cdb578063ffb54a9914610cf157600080fd5b8063f821f17f14610bff578063f84ba65d14610c15578063f887ea4014610c35578063fce589d814610c5557600080fd5b8063ec72d65f116100f2578063ec72d65f14610b5f578063ecabcf6114610b7f578063f0b37c0414610b9f578063f12418a814610bbf578063f2fde38b14610bdf57600080fd5b8063dd62ed3e14610ab9578063df20fd4914610aff578063e3763ded14610b1f578063e96fada214610b3f57600080fd5b8063a4a4b19b116101a6578063b6a5d7de11610175578063b6a5d7de14610a23578063ca33e64c14610a43578063d32fd25214610a63578063d51ed1c814610a83578063d7c94efd14610aa357600080fd5b8063a4a4b19b146109a0578063a4c82a00146109cd578063a8aa1b31146109e3578063a9059cbb14610a0357600080fd5b80639242b759116101ed5780639242b7591461090957806395d89b4114610923578063976b7e121461095057806398118cb4146109705780639dd255da1461098657600080fd5b80638714f95714610891578063893d20e8146108b1578063896648c1146108cf5780638e2eee84146108e957600080fd5b8063313ce567116103245780636ddd1713116102ac57806377b54bad1161027b57806377b54bad1461080557806378109e54146108255780637d1db4a51461083b57806384b1d1ef1461085157806386f6c3c11461087157600080fd5b80636ddd17131461078e5780637090ceaa146107af57806370a08231146107cf578063722b62ad146107ef57600080fd5b8063571ac8b0116102f3578063571ac8b0146106f85780635c85974f146107185780635e562f3b14610738578063658d4b7f146107585780636b67c4df1461077857600080fd5b8063313ce5671461066e5780633b2d081c1461068a57806340291143146106a05780634d709adf146106d857600080fd5b8063199ffc72116103a7578063201e799111610376578063201e7991146105d457806323b872dd146105f45780632b112e49146106145780632c3e486c146106295780632f54bf6e1461063f57600080fd5b8063199ffc72146105685780631ca0a28d1461057e5780631da1db5e1461059e5780631df4ccfc146105be57600080fd5b80630d295980116103ee5780630d295980146104dd5780631161ae39146104fd578063180b0d7e1461051d57806318160ddd1461053357806318abb6351461054857600080fd5b8063012aa9121461042b5780630445b6671461044d57806306fdde0314610476578063095ea7b3146104ad57600080fd5b3661042657005b600080fd5b34801561043757600080fd5b5061044b610446366004612baa565b610d12565b005b34801561045957600080fd5b50610463602a5481565b6040519081526020015b60405180910390f35b34801561048257600080fd5b50604080518082019091526005815264426f62627960d81b60208201525b60405161046d9190612bc3565b3480156104b957600080fd5b506104cd6104c8366004612c2d565b610d66565b604051901515815260200161046d565b3480156104e957600080fd5b5061044b6104f8366004612c67565b610dd3565b34801561050957600080fd5b506104cd610518366004612c84565b610e1f565b34801561052957600080fd5b50610463601a5481565b34801561053f57600080fd5b50600554610463565b34801561055457600080fd5b5061044b610563366004612ca6565b610e33565b34801561057457600080fd5b50610463601c5481565b34801561058a57600080fd5b5061044b610599366004612d63565b610eb7565b3480156105aa57600080fd5b5061044b6105b9366004612baa565b6110b5565b3480156105ca57600080fd5b5061046360195481565b3480156105e057600080fd5b5061044b6105ef366004612c84565b611122565b34801561060057600080fd5b506104cd61060f366004612de6565b611152565b34801561062057600080fd5b50610463611214565b34801561063557600080fd5b50610463601f5481565b34801561064b57600080fd5b506104cd61065a366004612e27565b6000546001600160a01b0391821691161490565b34801561067a57600080fd5b506040516004815260200161046d565b34801561069657600080fd5b5061046360165481565b3480156106ac57600080fd5b506023546106c0906001600160a01b031681565b6040516001600160a01b03909116815260200161046d565b3480156106e457600080fd5b506029546106c0906001600160a01b031681565b34801561070457600080fd5b506104cd610713366004612e27565b61125d565b34801561072457600080fd5b5061044b610733366004612baa565b61126b565b34801561074457600080fd5b5061044b610753366004612c67565b611295565b34801561076457600080fd5b5061044b610773366004612e44565b6112d2565b34801561078457600080fd5b5061046360155481565b34801561079a57600080fd5b506029546104cd90600160a81b900460ff1681565b3480156107bb57600080fd5b5061044b6107ca366004612e7d565b611322565b3480156107db57600080fd5b506104636107ea366004612e27565b6113c1565b3480156107fb57600080fd5b50610463600d5481565b34801561081157600080fd5b506104cd610820366004612c2d565b6113dc565b34801561083157600080fd5b5061046360075481565b34801561084757600080fd5b5061046360065481565b34801561085d57600080fd5b506022546106c0906001600160a01b031681565b34801561087d57600080fd5b5061044b61088c366004612ed4565b6114e8565b34801561089d57600080fd5b5061044b6108ac366004612f17565b6115a9565b3480156108bd57600080fd5b506000546001600160a01b03166106c0565b3480156108db57600080fd5b50600f546104cd9060ff1681565b3480156108f557600080fd5b5061044b610904366004612e7d565b611640565b34801561091557600080fd5b50600a546104cd9060ff1681565b34801561092f57600080fd5b506040805180820190915260048152632442555960e01b60208201526104a0565b34801561095c57600080fd5b506104cd61096b366004612baa565b6116d9565b34801561097c57600080fd5b5061046360145481565b34801561099257600080fd5b50601d546104cd9060ff1681565b3480156109ac57600080fd5b506104636109bb366004612e27565b600e6020526000908152604090205481565b3480156109d957600080fd5b50610463601e5481565b3480156109ef57600080fd5b506028546106c0906001600160a01b031681565b348015610a0f57600080fd5b506104cd610a1e366004612c2d565b611894565b348015610a2f57600080fd5b5061044b610a3e366004612e27565b6118a1565b348015610a4f57600080fd5b506020546106c0906001600160a01b031681565b348015610a6f57600080fd5b5061044b610a7e366004612baa565b6118f2565b348015610a8f57600080fd5b50610463610a9e366004612baa565b61191c565b348015610aaf57600080fd5b5061046360175481565b348015610ac557600080fd5b50610463610ad4366004612f45565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b348015610b0b57600080fd5b5061044b610b1a366004612f73565b611956565b348015610b2b57600080fd5b506024546106c0906001600160a01b031681565b348015610b4b57600080fd5b506021546106c0906001600160a01b031681565b348015610b6b57600080fd5b5061044b610b7a366004612baa565b61199d565b348015610b8b57600080fd5b5061044b610b9a366004612f91565b6119cc565b348015610bab57600080fd5b5061044b610bba366004612e27565b611a2c565b348015610bcb57600080fd5b5061044b610bda366004612baa565b611a77565b348015610beb57600080fd5b5061044b610bfa366004612e27565b611ac2565b348015610c0b57600080fd5b50610463600c5481565b348015610c2157600080fd5b5061044b610c30366004612e44565b611b58565b348015610c4157600080fd5b506027546106c0906001600160a01b031681565b348015610c6157600080fd5b5061046360185481565b348015610c7757600080fd5b5061044b610c86366004612fb8565b611ba8565b348015610c9757600080fd5b506104cd610ca6366004612e27565b60106020526000908152604090205460ff1681565b348015610cc757600080fd5b506104cd610cd6366004612e27565b611cee565b348015610ce757600080fd5b50610463601b5481565b348015610cfd57600080fd5b506029546104cd90600160a01b900460ff1681565b6000546001600160a01b03163314610d455760405162461bcd60e51b8152600401610d3c90613014565b60405180910390fd5b61271081600554610d56919061304a565b610d609190613069565b60075550565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610dc19086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610dfd5760405162461bcd60e51b8152600401610d3c90613014565b60298054911515600160a01b0260ff60a01b1990921691909117905543601155565b600082610e2b8361191c565b119392505050565b610e3c33611cee565b610e585760405162461bcd60e51b8152600401610d3c9061308b565b602080546001600160a01b03199081166001600160a01b03978816179091556021805482169587169590951790945560228054851693861693909317909255602480548416918516919091179055602380549092169216919091179055565b6000546001600160a01b03163314610ee15760405162461bcd60e51b8152600401610d3c90613014565b6101f58310610f485760405162461bcd60e51b815260206004820152602d60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526c3530302061646472657373657360981b6064820152608401610d3c565b828114610fa85760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e204164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b6064820152608401610d3c565b6000805b84811015610fec57838382818110610fc657610fc66130b0565b9050602002013582610fd891906130c6565b915080610fe4816130de565b915050610fac565b5080610ff7876113c1565b10156110455760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c657400000000006044820152606401610d3c565b60005b848110156110ac5761109987878784818110611066576110666130b0565b905060200201602081019061107b9190612e27565b86868581811061108d5761108d6130b0565b90506020020135611d0c565b50806110a4816130de565b915050611048565b50505050505050565b6110be33611cee565b6110da5760405162461bcd60e51b8152600401610d3c9061308b565b47336108fc60646110eb858561304a565b6110f59190613069565b6040518115909202916000818181858888f1935050505015801561111d573d6000803e3d6000fd5b505050565b61112b33611cee565b6111475760405162461bcd60e51b8152600401610d3c9061308b565b602591909155602655565b6001600160a01b0383166000908152600960209081526040808320338452909152812054600019146111ff576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526009825283812033825290915291909120546111da918490611de0565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b61120a848484611e1a565b90505b9392505050565b60045460009061125890611230906001600160a01b03166113c1565b60035461125290611249906001600160a01b03166113c1565b60055490612402565b90612402565b905090565b6000610dcd82600019610d66565b61127433611cee565b6112905760405162461bcd60e51b8152600401610d3c9061308b565b600655565b6000546001600160a01b031633146112bf5760405162461bcd60e51b8152600401610d3c90613014565b600f805460ff1916911515919091179055565b6112db33611cee565b6112f75760405162461bcd60e51b8152600401610d3c9061308b565b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461134c5760405162461bcd60e51b8152600401610d3c90613014565b60005b828110156113bb5781600b600086868581811061136e5761136e6130b0565b90506020020160208101906113839190612e27565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556113b4816130de565b905061134f565b50505050565b6001600160a01b031660009081526008602052604090205490565b600080546001600160a01b031633146114075760405162461bcd60e51b8152600401610d3c90613014565b81611477576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015611450573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061147491906130f9565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af11580156114c4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120d9190613112565b6114f133611cee565b61150d5760405162461bcd60e51b8152600401610d3c9061308b565b6014869055601785905560158490556016839055601882905561153e82611538858188818c8c612444565b90612444565b601955601a819055611551600282613069565b601954106115a15760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e20353025000000006044820152606401610d3c565b505050505050565b6000546001600160a01b031633146115d35760405162461bcd60e51b8152600401610d3c90613014565b6103e882106116245760405162461bcd60e51b815260206004820152601d60248201527f6d61782076616c756520666f72206175746f6275726e206973203130250000006044820152606401610d3c565b601f92909255601c55601d805460ff1916911515919091179055565b6000546001600160a01b0316331461166a5760405162461bcd60e51b8152600401610d3c90613014565b60005b828110156113bb57816010600086868581811061168c5761168c6130b0565b90506020020160208101906116a19190612e27565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556116d2816130de565b905061166d565b600080546001600160a01b031633146117045760405162461bcd60e51b8152600401610d3c90613014565b6103e88211156117695760405162461bcd60e51b815260206004820152602a60248201527f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f60448201526906b656e7320696e204c560b41b6064820152608401610d3c565b6028546040516370a0823160e01b81526001600160a01b03909116600482015260009030906370a0823190602401602060405180830381865afa1580156117b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117d891906130f9565b905060006117f26127106117ec84876124a3565b90612522565b9050801561188a57602854600354611817916001600160a01b03908116911683611d0c565b50602960009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561186857600080fd5b505af115801561187c573d6000803e3d6000fd5b506001979650505050505050565b5060009392505050565b600061120d338484611e1a565b6000546001600160a01b031633146118cb5760405162461bcd60e51b8152600401610d3c90613014565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6118fb33611cee565b6119175760405162461bcd60e51b8152600401610d3c9061308b565b600c55565b6000610dcd611929611214565b6028546117ec9061194f90600290611949906001600160a01b03166113c1565b906124a3565b85906124a3565b61195f33611cee565b61197b5760405162461bcd60e51b8152600401610d3c9061308b565b60298054921515600160a81b0260ff60a81b1990931692909217909155602a55565b6000546001600160a01b031633146119c75760405162461bcd60e51b8152600401610d3c90613014565b601b55565b6000546001600160a01b031633146119f65760405162461bcd60e51b8152600401610d3c90613014565b61271083600554611a07919061304a565b611a119190613069565b600c55600a805460ff191692151592909217909155600d5550565b6000546001600160a01b03163314611a565760405162461bcd60e51b8152600401610d3c90613014565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b03163314611aa15760405162461bcd60e51b8152600401610d3c90613014565b61271081600554611ab2919061304a565b611abc9190613069565b60065550565b6000546001600160a01b03163314611aec5760405162461bcd60e51b8152600401610d3c90613014565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b611b6133611cee565b611b7d5760405162461bcd60e51b8152600401610d3c9061308b565b6001600160a01b03919091166000908152601360205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314611bd25760405162461bcd60e51b8152600401610d3c90613014565b6103218210611c395760405162461bcd60e51b815260206004820152602d60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526c3830302061646472657373657360981b6064820152608401610d3c565b6000611c45838361304a565b905080611c51866113c1565b1015611c9f5760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c657400000000006044820152606401610d3c565b60005b838110156115a157611cdb86868684818110611cc057611cc06130b0565b9050602002016020810190611cd59190612e27565b85611d0c565b5080611ce6816130de565b915050611ca2565b6001600160a01b031660009081526001602052604090205460ff1690565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611d5d918490611de0565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611d8c9083612444565b6001600160a01b0380851660008181526008602052604090819020939093559151908616906000805160206131e683398151915290611dce9086815260200190565b60405180910390a35060019392505050565b60008184841115611e045760405162461bcd60e51b8152600401610d3c9190612bc3565b506000611e11848661312f565b95945050505050565b602b5460009060ff1615611e3a57611e33848484611d0c565b905061120d565b6001600160a01b03841660009081526001602052604090205460ff16158015611e7c57506001600160a01b03831660009081526001602052604090205460ff16155b15611ed157602954600160a01b900460ff16611ed15760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610d3c565b600f5460ff1615611f33576001600160a01b03841660009081526010602052604090205460ff1615611f335760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610d3c565b6001600160a01b0384166000908152600b602052604090205460ff168015611f5d5750600a5460ff165b1561204e576001600160a01b0384166000908152600e60205260409020544211611fc95760405162461bcd60e51b815260206004820152601a60248201527f5076742073656c6c65722074696d6520726573747269637465640000000000006044820152606401610d3c565b600c548211156120275760405162461bcd60e51b8152602060048201526024808201527f5076742073656c6c65722068617665206d61782073656c6c20726573747269636044820152633a34b7b760e11b6064820152608401610d3c565b600d5461203490426130c6565b6001600160a01b0385166000908152600e60205260409020555b6001600160a01b03841660009081526001602052604090205460ff1615801561208057506001600160a01b0383163014155b801561209a57506003546001600160a01b03848116911614155b80156120b457506028546001600160a01b03848116911614155b80156120ce57506024546001600160a01b03848116911614155b156121645760006120de846113c1565b6007549091506120ee84836130c6565b11156121625760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610d3c565b505b6011546121729060016130c6565b431115801561218f57506028546001600160a01b03848116911614155b80156121b857506001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d14155b156121e1576001600160a01b0383166000908152601060205260409020805460ff191660011790555b6121eb8483612564565b6121f36125d1565b1561220557612200612627565b6122bb565b6001600160a01b03841660009081526001602052604090205460ff1615801561224757506001600160a01b03831660009081526001602052604090205460ff16155b801561226c57506001600160a01b03841660009081526012602052604090205460ff16155b801561228557506028546001600160a01b038481169116145b80156122935750601d5460ff165b80156122ae5750601f54601e546122aa91906130c6565b4210155b156122bb576122bb612a0e565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526008909152919091205461230d918490611de0565b6001600160a01b038516600090815260086020908152604080832093909355601290529081205460ff1615158061235e57506001600160a01b03841660009081526012602052604090205460ff1615155b6123855760285461238090869085906001600160a01b03888116911614612a2b565b612387565b825b6001600160a01b0385166000908152600860205260409020549091506123ad9082612444565b6001600160a01b0380861660008181526008602052604090819020939093559151908716906000805160206131e6833981519152906123ef9085815260200190565b60405180910390a3506001949350505050565b600061120d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611de0565b60008061245183856130c6565b90508381101561120d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610d3c565b6000826124b257506000610dcd565b60006124be838561304a565b9050826124cb8583613069565b1461120d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610d3c565b600061120d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612b7c565b6006548111158061258d57506001600160a01b03821660009081526013602052604090205460ff165b6125cd5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610d3c565b5050565b6028546000906001600160a01b031633148015906125f25750602b5460ff16155b80156126075750602954600160a81b900460ff165b8015611258575050602a5430600090815260086020526040902054101590565b602b805460ff1916600117905560255460265460009161264691610e1f565b61265257601454612655565b60005b9050600061267960026117ec6019546117ec86602a546124a390919063ffffffff16565b9050600061269282602a5461240290919063ffffffff16565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106126cc576126cc6130b0565b6001600160a01b0392831660209182029290920101526002548251911690829060019081106126fd576126fd6130b0565b6001600160a01b03928316602091820292909201015260275460405163791ac94760e01b81524792919091169063791ac94790612747908690600090879030904290600401613146565b600060405180830381600087803b15801561276157600080fd5b505af1158015612775573d6000803e3d6000fd5b50505050600061278e824761240290919063ffffffff16565b905060006127a96127a0886002612522565b60195490612402565b905060006127be60026117ec8481878d6124a3565b905060006127db836117ec601554876124a390919063ffffffff16565b905060006127f8846117ec601754886124a390919063ffffffff16565b90506000612815856117ec601654896124a390919063ffffffff16565b6021546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114612867576040519150601f19603f3d011682016040523d82523d6000602084013e61286c565b606091505b50506022546040519192506001600160a01b0316908390600081818185875af1925050503d80600081146128bc576040519150601f19603f3d011682016040523d82523d6000602084013e6128c1565b606091505b50506023546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114612911576040519150601f19603f3d011682016040523d82523d6000602084013e612916565b606091505b5060009250508b1590506129f65760275460205460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015612994573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906129b991906131b7565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050602b805460ff1916905550505050505050505050565b6000612a1b601c546116d9565b90508015612a285742601e555b50565b60008082612a3a576064612a3e565b601b545b90506000612a6d601a546064612a54919061304a565b6117ec846119496019548a6124a390919063ffffffff16565b90506000612a8c6019546117ec601854856124a390919063ffffffff16565b90506000612a9a8383612402565b30600090815260086020526040902054909150612ab79082612444565b30600090815260086020526040808220929092556024546001600160a01b031681522054612ae59083612444565b6024546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b16916000805160206131e6833981519152910160405180910390a38115612b66576024546040518381526001600160a01b03918216918a16906000805160206131e68339815191529060200160405180910390a35b612b708784612402565b98975050505050505050565b60008183612b9d5760405162461bcd60e51b8152600401610d3c9190612bc3565b506000611e118486613069565b600060208284031215612bbc57600080fd5b5035919050565b600060208083528351808285015260005b81811015612bf057858101830151858201604001528201612bd4565b81811115612c02576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114612a2857600080fd5b60008060408385031215612c4057600080fd5b8235612c4b81612c18565b946020939093013593505050565b8015158114612a2857600080fd5b600060208284031215612c7957600080fd5b813561120d81612c59565b60008060408385031215612c9757600080fd5b50508035926020909101359150565b600080600080600060a08688031215612cbe57600080fd5b8535612cc981612c18565b94506020860135612cd981612c18565b93506040860135612ce981612c18565b92506060860135612cf981612c18565b91506080860135612d0981612c18565b809150509295509295909350565b60008083601f840112612d2957600080fd5b50813567ffffffffffffffff811115612d4157600080fd5b6020830191508360208260051b8501011115612d5c57600080fd5b9250929050565b600080600080600060608688031215612d7b57600080fd5b8535612d8681612c18565b9450602086013567ffffffffffffffff80821115612da357600080fd5b612daf89838a01612d17565b90965094506040880135915080821115612dc857600080fd5b50612dd588828901612d17565b969995985093965092949392505050565b600080600060608486031215612dfb57600080fd5b8335612e0681612c18565b92506020840135612e1681612c18565b929592945050506040919091013590565b600060208284031215612e3957600080fd5b813561120d81612c18565b60008060408385031215612e5757600080fd5b8235612e6281612c18565b91506020830135612e7281612c59565b809150509250929050565b600080600060408486031215612e9257600080fd5b833567ffffffffffffffff811115612ea957600080fd5b612eb586828701612d17565b9094509250506020840135612ec981612c59565b809150509250925092565b60008060008060008060c08789031215612eed57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600080600060608486031215612f2c57600080fd5b83359250602084013591506040840135612ec981612c59565b60008060408385031215612f5857600080fd5b8235612f6381612c18565b91506020830135612e7281612c18565b60008060408385031215612f8657600080fd5b8235612c4b81612c59565b600080600060608486031215612fa657600080fd5b833592506020840135612e1681612c59565b60008060008060608587031215612fce57600080fd5b8435612fd981612c18565b9350602085013567ffffffffffffffff811115612ff557600080fd5b61300187828801612d17565b9598909750949560400135949350505050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561306457613064613034565b500290565b60008261308657634e487b7160e01b600052601260045260246000fd5b500490565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600082198211156130d9576130d9613034565b500190565b60006000198214156130f2576130f2613034565b5060010190565b60006020828403121561310b57600080fd5b5051919050565b60006020828403121561312457600080fd5b815161120d81612c59565b60008282101561314157613141613034565b500390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156131965784516001600160a01b031683529383019391830191600101613171565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156131cc57600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a2c6759fd1dec2a85af58b4e2fc1bbf3694a3ca9f35fcc9497af1d7d514eaca864736f6c634300080c0033

Deployed Bytecode Sourcemap

4737:17070:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9528:181;;;;;;;;;;-1:-1:-1;9528:181:0;;;;;:::i;:::-;;:::i;:::-;;6906:54;;;;;;;;;;;;;;;;;;;345:25:1;;;333:2;318:18;6906:54:0;;;;;;;;8210:80;;;;;;;;;;-1:-1:-1;8282:5:0;;;;;;;;;;;;-1:-1:-1;;;8282:5:0;;;;8210:80;;;;;;;:::i;8632:216::-;;;;;;;;;;-1:-1:-1;8632:216:0;;;;;:::i;:::-;;:::i;:::-;;;1604:14:1;;1597:22;1579:41;;1567:2;1552:18;8632:216:0;1439:187:1;15255:130:0;;;;;;;;;;-1:-1:-1;15255:130:0;;;;;:::i;:::-;;:::i;19605:150::-;;;;;;;;;;-1:-1:-1;19605:150:0;;;;;:::i;:::-;;:::i;6170:36::-;;;;;;;;;;;;;;;;7940:88;;;;;;;;;;-1:-1:-1;8013:12:0;;7940:88;;18463:450;;;;;;;;;;-1:-1:-1;18463:450:0;;;;;:::i;:::-;;:::i;6260:36::-;;;;;;;;;;;;;;;;19785:594;;;;;;;;;;-1:-1:-1;19785:594:0;;;;;:::i;:::-;;:::i;14606:208::-;;;;;;;;;;-1:-1:-1;14606:208:0;;;;;:::i;:::-;;:::i;6070:93::-;;;;;;;;;;;;;;;;19085:183;;;;;;;;;;-1:-1:-1;19085:183:0;;;;;:::i;:::-;;:::i;9150:370::-;;;;;;;;;;-1:-1:-1;9150:370:0;;;;;:::i;:::-;;:::i;19280:142::-;;;;;;;;;;;;;:::i;6396:43::-;;;;;;;;;;;;;;;;2745:103;;;;;;;;;;-1:-1:-1;2745:103:0;;;;;:::i;:::-;2800:4;2835:5;-1:-1:-1;;;;;2824:16:0;;;2835:5;;2824:16;;2745:103;8034:80;;;;;;;;;;-1:-1:-1;8034:80:0;;5062:1;5211:36:1;;5199:2;5184:18;8034:80:0;5069:184:1;5947:34:0;;;;;;;;;;;;;;;;6573:30;;;;;;;;;;-1:-1:-1;6573:30:0;;;;-1:-1:-1;;;;;6573:30:0;;;;;;-1:-1:-1;;;;;5422:32:1;;;5404:51;;5392:2;5377:18;6573:30:0;5258:203:1;6789:31:0;;;;;;;;;;-1:-1:-1;6789:31:0;;;;-1:-1:-1;;;;;6789:31:0;;;8856:122;;;;;;;;;;-1:-1:-1;8856:122:0;;;;;:::i;:::-;;:::i;10577:96::-;;;;;;;;;;-1:-1:-1;10577:96:0;;;;;:::i;:::-;;:::i;17301:99::-;;;;;;;;;;-1:-1:-1;17301:99:0;;;;;:::i;:::-;;:::i;17626:120::-;;;;;;;;;;-1:-1:-1;17626:120:0;;;;;:::i;:::-;;:::i;5906:34::-;;;;;;;;;;;;;;;;6869:30;;;;;;;;;;-1:-1:-1;6869:30:0;;;;-1:-1:-1;;;6869:30:0;;;;;;10225:215;;;;;;;;;;-1:-1:-1;10225:215:0;;;;;:::i;:::-;;:::i;8380:105::-;;;;;;;;;;-1:-1:-1;8380:105:0;;;;;:::i;:::-;;:::i;5503:47::-;;;;;;;;;;;;;;;;14822:271;;;;;;;;;;-1:-1:-1;14822:271:0;;;;;:::i;:::-;;:::i;5185:51::-;;;;;;;;;;;;;;;;5129:49;;;;;;;;;;;;;;;;6533:33;;;;;;;;;;-1:-1:-1;6533:33:0;;;;-1:-1:-1;;;;;6533:33:0;;;17890:565;;;;;;;;;;-1:-1:-1;17890:565:0;;;;;:::i;:::-;;:::i;20813:262::-;;;;;;;;;;-1:-1:-1;20813:262:0;;;;;:::i;:::-;;:::i;8296:78::-;;;;;;;;;;-1:-1:-1;8348:7:0;8366:5;-1:-1:-1;;;;;8366:5:0;8296:78;;5612:32;;;;;;;;;;-1:-1:-1;5612:32:0;;;;;;;;17408:210;;;;;;;;;;-1:-1:-1;17408:210:0;;;;;:::i;:::-;;:::i;5360:44::-;;;;;;;;;;-1:-1:-1;5360:44:0;;;;;;;;8120:84;;;;;;;;;;-1:-1:-1;8194:7:0;;;;;;;;;;;;-1:-1:-1;;;8194:7:0;;;;8120:84;;21079:498;;;;;;;;;;-1:-1:-1;21079:498:0;;;;;:::i;:::-;;:::i;5865:34::-;;;;;;;;;;;;;;;;6318:35;;;;;;;;;;-1:-1:-1;6318:35:0;;;;;;;;5557:46;;;;;;;;;;-1:-1:-1;5557:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;6360:29;;;;;;;;;;;;;;;;6763:19;;;;;;;;;;-1:-1:-1;6763:19:0;;;;-1:-1:-1;;;;;6763:19:0;;;8986:156;;;;;;;;;;-1:-1:-1;8986:156:0;;;;;:::i;:::-;;:::i;2538:94::-;;;;;;;;;;-1:-1:-1;2538:94:0;;;;;:::i;:::-;;:::i;6448:36::-;;;;;;;;;;-1:-1:-1;6448:36:0;;;;-1:-1:-1;;;;;6448:36:0;;;10448:121;;;;;;;;;;-1:-1:-1;10448:121:0;;;;;:::i;:::-;;:::i;19430:167::-;;;;;;;;;;-1:-1:-1;19430:167:0;;;;;:::i;:::-;;:::i;5988:34::-;;;;;;;;;;;;;;;;8491:133;;;;;;;;;;-1:-1:-1;8491:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8593:19:0;;;8575:7;8593:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8491:133;18921:156;;;;;;;;;;-1:-1:-1;18921:156:0;;;;;:::i;:::-;;:::i;6610:30::-;;;;;;;;;;-1:-1:-1;6610:30:0;;;;-1:-1:-1;;;;;6610:30:0;;;6491:35;;;;;;;;;;-1:-1:-1;6491:35:0;;;;-1:-1:-1;;;;;6491:35:0;;;15101:123;;;;;;;;;;-1:-1:-1;15101:123:0;;;;;:::i;:::-;;:::i;9899:318::-;;;;;;;;;;-1:-1:-1;9899:318:0;;;;;:::i;:::-;;:::i;2640:97::-;;;;;;;;;;-1:-1:-1;2640:97:0;;;;;:::i;:::-;;:::i;9715:176::-;;;;;;;;;;-1:-1:-1;9715:176:0;;;;;:::i;:::-;;:::i;2971:173::-;;;;;;;;;;-1:-1:-1;2971:173:0;;;;;:::i;:::-;;:::i;5462:32::-;;;;;;;;;;;;;;;;17754:128;;;;;;;;;;-1:-1:-1;17754:128:0;;;;;:::i;:::-;;:::i;6732:24::-;;;;;;;;;;-1:-1:-1;6732:24:0;;;;-1:-1:-1;;;;;6732:24:0;;;6029:34;;;;;;;;;;;;;;;;20383:424;;;;;;;;;;-1:-1:-1;20383:424:0;;;;;:::i;:::-;;:::i;5651:46::-;;;;;;;;;;-1:-1:-1;5651:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;2856:107;;;;;;;;;;-1:-1:-1;2856:107:0;;;;;:::i;:::-;;:::i;6215:36::-;;;;;;;;;;;;;;;;6829:31;;;;;;;;;;-1:-1:-1;6829:31:0;;;;-1:-1:-1;;;6829:31:0;;;;;;9528:181;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;;;;;;;;;9696:5:::1;9667:24;9652:12;;:39;;;;:::i;:::-;9651:50;;;;:::i;:::-;9633:15;:68:::0;-1:-1:-1;9528:181:0:o;8632:216::-;8736:10;8707:4;8724:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8724:32:0;;;;;;;;;;:41;;;8781:37;8707:4;;8724:32;;8781:37;;;;8759:6;345:25:1;;333:2;318:18;;199:177;8781:37:0;;;;;;;;-1:-1:-1;8836:4:0;8632:216;;;;;:::o;15255:130::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;15320:11:::1;:21:::0;;;::::1;;-1:-1:-1::0;;;15320:21:0::1;-1:-1:-1::0;;;;15320:21:0;;::::1;::::0;;;::::1;::::0;;15365:12:::1;15352:10;:25:::0;15255:130::o;19605:150::-;19685:4;19741:6;19709:29;19729:8;19709:19;:29::i;:::-;:38;;19605:150;-1:-1:-1;;;19605:150:0:o;18463:450::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;18663:21:::1;:46:::0;;-1:-1:-1;;;;;;18663:46:0;;::::1;-1:-1:-1::0;;;;;18663:46:0;;::::1;;::::0;;;18720:20:::1;:44:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18775:18:::1;:40:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18826:15:::1;:34:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;18871:15:::1;:34:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;18463:450::o;19785:594::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;19934:3:::1;19915:22:::0;::::1;19907:79;;;::::0;-1:-1:-1;;;19907:79:0;;11184:2:1;19907:79:0::1;::::0;::::1;11166:21:1::0;11223:2;11203:18;;;11196:30;11262:34;11242:18;;;11235:62;-1:-1:-1;;;11313:18:1;;;11306:43;11366:19;;19907:79:0::1;10982:409:1::0;19907:79:0::1;20001:33:::0;;::::1;19993:85;;;::::0;-1:-1:-1;;;19993:85:0;;11598:2:1;19993:85:0::1;::::0;::::1;11580:21:1::0;11637:2;11617:18;;;11610:30;11676:34;11656:18;;;11649:62;-1:-1:-1;;;11727:18:1;;;11720:38;11775:19;;19993:85:0::1;11396:404:1::0;19993:85:0::1;20087:12;20116:6:::0;20112:82:::1;20126:20:::0;;::::1;20112:82;;;20177:6;;20184:1;20177:9;;;;;;;:::i;:::-;;;;;;;20170:4;:16;;;;:::i;:::-;20163:23:::0;-1:-1:-1;20148:3:0;::::1;::::0;::::1;:::i;:::-;;;;20112:82;;;;20229:4;20210:15;20220:4;20210:9;:15::i;:::-;:23;;20202:63;;;::::0;-1:-1:-1;;;20202:63:0;;12412:2:1;20202:63:0::1;::::0;::::1;12394:21:1::0;12451:2;12431:18;;;12424:30;12490:29;12470:18;;;12463:57;12537:18;;20202:63:0::1;12210:351:1::0;20202:63:0::1;20278:6;20274:102;20288:20:::0;;::::1;20274:102;;;20325:43;20340:4;20345:9;;20355:1;20345:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;20358:6;;20365:1;20358:9;;;;;;;:::i;:::-;;;;;;;20325:14;:43::i;:::-;-1:-1:-1::0;20310:3:0;::::1;::::0;::::1;:::i;:::-;;;;20274:102;;;;19898:481;19785:594:::0;;;;;:::o;14606:208::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;14710:21:::1;14750:10;14742:64;14802:3;14771:28;14783:16:::0;14710:21;14771:28:::1;:::i;:::-;:34;;;;:::i;:::-;14742:64;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14679:135;14606:208:::0;:::o;19085:183::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;19183:15:::1;:25:::0;;;;19219:26:::1;:41:::0;19085:183::o;9150:370::-;-1:-1:-1;;;;;9270:19:0;;9250:4;9270:19;;;:11;:19;;;;;;;;9290:10;9270:31;;;;;;;;-1:-1:-1;;9270:52:0;9267:186;;9372:69;;;;;;;;;;;-1:-1:-1;;;9372:69:0;;;;;;;;-1:-1:-1;;;;;9372:19:0;;-1:-1:-1;9372:19:0;;;:11;:19;;;;;9392:10;9372:31;;;;;;;;;;:69;;9408:6;;9372:35;:69::i;:::-;-1:-1:-1;;;;;9338:19:0;;;;;;:11;:19;;;;;;;;9358:10;9338:31;;;;;;;:103;9267:186;9472:40;9486:6;9494:9;9505:6;9472:13;:40::i;:::-;9465:47;;9150:370;;;;;;:::o;19280:142::-;19408:4;;19333:7;;19360:54;;19398:15;;-1:-1:-1;;;;;19408:4:0;19398:9;:15::i;:::-;19387:4;;19360:33;;19377:15;;-1:-1:-1;;;;;19387:4:0;19377:9;:15::i;:::-;19360:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;19353:61;;19280:142;:::o;8856:122::-;8911:4;8935:35;8943:7;-1:-1:-1;;8935:7:0;:35::i;10577:96::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;10644:12:::1;:21:::0;10577:96::o;17301:99::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;17369:13:::1;:23:::0;;-1:-1:-1;;17369:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17301:99::o;17626:120::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17710:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;17710:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17626:120::o;10225:215::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;10327:9:::1;10322:111;10338:20:::0;;::::1;10322:111;;;10415:6;10380:18;:32;10399:9;;10409:1;10399:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10380:32:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;10380:32:0;:41;;-1:-1:-1;;10380:41:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10360:3:::1;::::0;::::1;:::i;:::-;;;10322:111;;;;10225:215:::0;;;:::o;8380:105::-;-1:-1:-1;;;;;8464:18:0;8446:7;8464:18;;;:9;:18;;;;;;;8380:105::o;14822:271::-;14911:4;2835:5;;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;14928:11;14925:95:::1;;14964:44;::::0;-1:-1:-1;;;14964:44:0;;15002:4:::1;14964:44;::::0;::::1;5404:51:1::0;-1:-1:-1;;;;;14964:29:0;::::1;::::0;::::1;::::0;5377:18:1;;14964:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14955:53;;14925:95;15037:48;::::0;-1:-1:-1;;;15037:48:0;;15066:10:::1;15037:48;::::0;::::1;12929:51:1::0;12996:18;;;12989:34;;;-1:-1:-1;;;;;15037:28:0;::::1;::::0;::::1;::::0;12902:18:1;;15037:48:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;17890:565::-:0;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;18066:12:::1;:28:::0;;;18105:7:::1;:18:::0;;;18134:12:::1;:28:::0;;;18173:10:::1;:24:::0;;;18208:7:::1;:18:::0;;;18248:77:::1;18218:8:::0;18248:63:::1;18186:11:::0;18248:63;18149:13;18248:63;18081:13;18115:8;18248:17:::1;:27::i;:::-;:31:::0;::::1;:46::i;:77::-;18237:8;:88:::0;18336:14:::1;:32:::0;;;18398:16:::1;18413:1;18353:15:::0;18398:16:::1;:::i;:::-;18387:8;;:27;18379:68;;;::::0;-1:-1:-1;;;18379:68:0;;13486:2:1;18379:68:0::1;::::0;::::1;13468:21:1::0;13525:2;13505:18;;;13498:30;13564;13544:18;;;13537:58;13612:18;;18379:68:0::1;13284:352:1::0;18379:68:0::1;17890:565:::0;;;;;;:::o;20813:262::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;20931:4:::1;20920:8;:15;20912:56;;;::::0;-1:-1:-1;;;20912:56:0;;13843:2:1;20912:56:0::1;::::0;::::1;13825:21:1::0;13882:2;13862:18;;;13855:30;13921:31;13901:18;;;13894:59;13970:18;;20912:56:0::1;13641:353:1::0;20912:56:0::1;20981:15;:23:::0;;;;21011:16:::1;:27:::0;21045:15:::1;:26:::0;;-1:-1:-1;;21045:26:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20813:262::o;17408:210::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;17510:9:::1;17505:106;17521:20:::0;;::::1;17505:106;;;17593:6;17563:13;:27;17577:9;;17587:1;17577:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17563:27:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17563:27:0;:36;;-1:-1:-1;;17563:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17543:3:::1;::::0;::::1;:::i;:::-;;;17505:106;;21079:498:::0;21155:4;2835:5;;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;21200:4:::1;21179:17;:25;;21171:80;;;::::0;-1:-1:-1;;;21171:80:0;;14201:2:1;21171:80:0::1;::::0;::::1;14183:21:1::0;14240:2;14220:18;;;14213:30;14279:34;14259:18;;;14252:62;-1:-1:-1;;;14330:18:1;;;14323:40;14380:19;;21171:80:0::1;13999:406:1::0;21171:80:0::1;21303:4;::::0;21288:20:::1;::::0;-1:-1:-1;;;21288:20:0;;-1:-1:-1;;;;;21303:4:0;;::::1;21288:20;::::0;::::1;5404:51:1::0;21268:17:0::1;::::0;21288:4:::1;::::0;:14:::1;::::0;5377:18:1;;21288:20:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21268:40:::0;-1:-1:-1;21319:15:0::1;21337:43;21374:5;21337:32;21268:40:::0;21351:17;21337:13:::1;:32::i;:::-;:36:::0;::::1;:43::i;:::-;21319:61:::0;-1:-1:-1;21405:11:0;;21401:136:::1;;21447:4;::::0;21452::::1;::::0;21432:33:::1;::::0;-1:-1:-1;;;;;21447:4:0;;::::1;::::0;21452::::1;21457:7:::0;21432:14:::1;:33::i;:::-;;21480:12;;;;;;;;;-1:-1:-1::0;;;;;21480:12:0::1;-1:-1:-1::0;;;;;21480:17:0::1;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;21521:4:0::1;::::0;21079:498;-1:-1:-1;;;;;;;21079:498:0:o;21401:136::-:1;-1:-1:-1::0;21564:5:0::1;::::0;21079:498;-1:-1:-1;;;21079:498:0:o;8986:156::-;9066:4;9090:44;9104:10;9116:9;9127:6;9090:13;:44::i;2538:94::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2598:19:0::1;;::::0;;;2620:4:::1;2598:19;::::0;;;;;;;:26;;-1:-1:-1;;2598:26:0::1;::::0;;::::1;::::0;;2538:94::o;10448:121::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;10535:17:::1;:26:::0;10448:121::o;19430:167::-;19498:7;19525:64;19566:22;:20;:22::i;:::-;19548:4;;19525:36;;19538:22;;19558:1;;19538:15;;-1:-1:-1;;;;;19548:4:0;19538:9;:15::i;:::-;:19;;:22::i;:::-;19525:8;;:12;:36::i;18921:156::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;19013:11:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;19013:22:0::1;-1:-1:-1::0;;;;19013:22:0;;::::1;::::0;;;::::1;::::0;;;19046:13:::1;:23:::0;18921:156::o;15101:123::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;15180:14:::1;:28:::0;15101:123::o;9899:318::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;10111:5:::1;10076:30;10061:12;;:45;;;;:::i;:::-;10060:56;;;;:::i;:::-;10040:17;:76:::0;10127:24:::1;:38:::0;;-1:-1:-1;;10127:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;10176:21:::1;:33:::0;-1:-1:-1;9899:318:0:o;2640:97::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2702:19:0::1;2724:5;2702:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;2702:27:0::1;::::0;;2640:97::o;9715:176::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;9878:5:::1;9848:25;9833:12;;:40;;;;:::i;:::-;9832:51;;;;:::i;:::-;9817:12;:66:::0;-1:-1:-1;9715:176:0:o;2971:173::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;3047:5:::1;:11:::0;;-1:-1:-1;;;;;;3047:11:0::1;-1:-1:-1::0;;;;;3047:11:0;::::1;::::0;;::::1;::::0;;3069:19;;;-1:-1:-1;3069:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;3069:26:0::1;::::0;;::::1;::::0;;;3111:25;;5404:51:1;;;3111:25:0::1;::::0;5377:18:1;3111:25:0::1;;;;;;;2971:173:::0;:::o;17754:128::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17842:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;17842:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17754:128::o;20383:424::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;20523:3:::1;20504:22:::0;::::1;20496:79;;;::::0;-1:-1:-1;;;20496:79:0;;14828:2:1;20496:79:0::1;::::0;::::1;14810:21:1::0;14867:2;14847:18;;;14840:30;14906:34;14886:18;;;14879:62;-1:-1:-1;;;14957:18:1;;;14950:43;15010:19;;20496:79:0::1;14626:409:1::0;20496:79:0::1;20584:12;20599:25;20608:9:::0;20599:6;:25:::1;:::i;:::-;20584:40;;20660:4;20641:15;20651:4;20641:9;:15::i;:::-;:23;;20633:63;;;::::0;-1:-1:-1;;;20633:63:0;;12412:2:1;20633:63:0::1;::::0;::::1;12394:21:1::0;12451:2;12431:18;;;12424:30;12490:29;12470:18;;;12463:57;12537:18;;20633:63:0::1;12210:351:1::0;20633:63:0::1;20709:6;20705:99;20719:20:::0;;::::1;20705:99;;;20756:40;20771:4;20776:9;;20786:1;20776:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;20789:6;20756:14;:40::i;:::-;-1:-1:-1::0;20741:3:0;::::1;::::0;::::1;:::i;:::-;;;;20705:99;;2856:107:::0;-1:-1:-1;;;;;2936:19:0;2912:4;2936:19;;;:14;:19;;;;;;;;;2856:107::o;12978:330::-;13108:53;;;;;;;;;;;-1:-1:-1;;;13108:53:0;;;;;;;;-1:-1:-1;;;;;13108:17:0;;13071:4;13108:17;;;:9;:17;;;;;;;:53;;13130:6;;13108:21;:53::i;:::-;-1:-1:-1;;;;;13088:17:0;;;;;;;:9;:17;;;;;;:73;;;;13195:20;;;;;;;:32;;13220:6;13195:24;:32::i;:::-;-1:-1:-1;;;;;13172:20:0;;;;;;;:9;:20;;;;;;;:55;;;;13243:35;;;;;;-1:-1:-1;;;;;;;;;;;13243:35:0;;;13271:6;345:25:1;;333:2;318:18;;199:177;13243:35:0;;;;;;;;-1:-1:-1;13296:4:0;12978:330;;;;;:::o;422:192::-;508:7;544:12;536:6;;;;528:29;;;;-1:-1:-1;;;528:29:0;;;;;;;;:::i;:::-;-1:-1:-1;568:9:0;580:5;584:1;580;:5;:::i;:::-;568:17;422:192;-1:-1:-1;;;;;422:192:0:o;10681:2285::-;10793:6;;10773:4;;10793:6;;10790:63;;;10809:41;10824:6;10832:9;10843:6;10809:14;:41::i;:::-;10802:48;;;;10790:63;-1:-1:-1;;;;;10869:22:0;;;;;;:14;:22;;;;;;;;10868:23;:53;;;;-1:-1:-1;;;;;;10896:25:0;;;;;;:14;:25;;;;;;;;10895:26;10868:53;10865:127;;;10945:11;;-1:-1:-1;;;10945:11:0;;;;10937:43;;;;-1:-1:-1;;;10937:43:0;;15372:2:1;10937:43:0;;;15354:21:1;15411:2;15391:18;;;15384:30;-1:-1:-1;;;15430:18:1;;;15423:50;15490:18;;10937:43:0;15170:344:1;10937:43:0;11029:13;;;;11026:93;;;-1:-1:-1;;;;;11067:21:0;;;;;;:13;:21;;;;;;;;11066:22;11058:45;;;;-1:-1:-1;;;11058:45:0;;15721:2:1;11058:45:0;;;15703:21:1;15760:2;15740:18;;;15733:30;-1:-1:-1;;;15779:18:1;;;15772:41;15830:18;;11058:45:0;15519:335:1;11058:45:0;-1:-1:-1;;;;;11179:26:0;;;;;;:18;:26;;;;;;;;:55;;;;-1:-1:-1;11210:24:0;;;;11179:55;11175:335;;;-1:-1:-1;;;;;11259:21:0;;;;;;:13;:21;;;;;;11283:15;-1:-1:-1;11251:77:0;;;;-1:-1:-1;;;11251:77:0;;16061:2:1;11251:77:0;;;16043:21:1;16100:2;16080:18;;;16073:30;16139:28;16119:18;;;16112:56;16185:18;;11251:77:0;15859:350:1;11251:77:0;11361:17;;11351:6;:27;;11343:75;;;;-1:-1:-1;;;11343:75:0;;16416:2:1;11343:75:0;;;16398:21:1;16455:2;16435:18;;;16428:30;16494:34;16474:18;;;16467:62;-1:-1:-1;;;16545:18:1;;;16538:34;16589:19;;11343:75:0;16214:400:1;11343:75:0;11477:21;;11459:39;;:15;:39;:::i;:::-;-1:-1:-1;;;;;11435:21:0;;;;;;:13;:21;;;;;:63;11175:335;-1:-1:-1;;;;;11527:22:0;;;;;;:14;:22;;;;;;;;11526:23;:53;;;;-1:-1:-1;;;;;;11553:26:0;;11574:4;11553:26;;11526:53;:84;;;;-1:-1:-1;11605:4:0;;-1:-1:-1;;;;;11584:26:0;;;11605:4;;11584:26;;11526:84;:105;;;;-1:-1:-1;11627:4:0;;-1:-1:-1;;;;;11614:17:0;;;11627:4;;11614:17;;11526:105;:137;;;;-1:-1:-1;11648:15:0;;-1:-1:-1;;;;;11635:28:0;;;11648:15;;11635:28;;11526:137;11522:340;;;11680:18;11701:20;11711:9;11701;:20::i;:::-;11769:15;;11680:41;;-1:-1:-1;11745:19:0;11758:6;11680:41;11745:19;:::i;:::-;11744:40;;11736:114;;;;-1:-1:-1;;;11736:114:0;;16821:2:1;11736:114:0;;;16803:21:1;16860:2;16840:18;;;16833:30;16899:34;16879:18;;;16872:62;16970:32;16950:18;;;16943:60;17020:19;;11736:114:0;16619:426:1;11736:114:0;11665:197;11522:340;11895:10;;:14;;11908:1;11895:14;:::i;:::-;11878:12;:32;;:71;;;;-1:-1:-1;11945:4:0;;-1:-1:-1;;;;;11932:17:0;;;11945:4;;11932:17;;11878:71;:157;;;;-1:-1:-1;;;;;;11971:64:0;;11992:42;11971:64;;11878:157;11874:236;;;-1:-1:-1;;;;;12067:24:0;;;;;;:13;:24;;;;;:31;;-1:-1:-1;;12067:31:0;12094:4;12067:31;;;11874:236;12163:28;12176:6;12184;12163:12;:28::i;:::-;12207:16;:14;:16::i;:::-;12204:339;;;12226:10;:8;:10::i;:::-;12204:339;;;-1:-1:-1;;;;;12258:22:0;;;;;;:14;:22;;;;;;;;12257:23;:53;;;;-1:-1:-1;;;;;;12285:25:0;;;;;;:14;:25;;;;;;;;12284:26;12257:53;:95;;;;-1:-1:-1;;;;;;12333:19:0;;;;;;:11;:19;;;;;;;;12332:20;12257:95;:133;;;;-1:-1:-1;12386:4:0;;-1:-1:-1;;;;;12373:17:0;;;12386:4;;12373:17;12257:133;:169;;;;-1:-1:-1;12411:15:0;;;;12257:169;:241;;;;;12483:15;;12466:14;;:32;;;;:::i;:::-;12447:15;:51;;12257:241;12254:289;;;12518:13;:11;:13::i;:::-;12602:53;;;;;;;;;;;-1:-1:-1;;;12602:53:0;;;;;;;;-1:-1:-1;;;;;12602:17:0;;-1:-1:-1;12602:17:0;;;:9;:17;;;;;;;;:53;;12624:6;;12602:21;:53::i;:::-;-1:-1:-1;;;;;12582:17:0;;;;;;:9;:17;;;;;;;;:73;;;;13577:11;:19;;;;;;;;13576:20;12694:22;:51;;;-1:-1:-1;;;;;;13577:19:0;;13552:4;13577:19;;;:11;:19;;;;;;;;13576:20;12720:25;12694:51;12693:108;;12795:4;;12758:43;;12766:6;;12774;;-1:-1:-1;;;;;12782:17:0;;;12795:4;;12782:17;12758:7;:43::i;:::-;12693:108;;;12749:6;12693:108;-1:-1:-1;;;;;12835:20:0;;;;;;:9;:20;;;;;;12668:133;;-1:-1:-1;12835:40:0;;12668:133;12835:24;:40::i;:::-;-1:-1:-1;;;;;12812:20:0;;;;;;;:9;:20;;;;;;;:63;;;;12893:43;;;;;;-1:-1:-1;;;;;;;;;;;12893:43:0;;;12921:14;345:25:1;;333:2;318:18;;199:177;12893:43:0;;;;;;;;-1:-1:-1;12954:4:0;;10681:2285;-1:-1:-1;;;;10681:2285:0:o;280:136::-;338:7;365:43;369:1;372;365:43;;;;;;;;;;;;;;;;;:3;:43::i;93:181::-;151:7;;183:5;187:1;183;:5;:::i;:::-;171:17;;212:1;207;:6;;199:46;;;;-1:-1:-1;;;199:46:0;;17252:2:1;199:46:0;;;17234:21:1;17291:2;17271:18;;;17264:30;17330:29;17310:18;;;17303:57;17377:18;;199:46:0;17050:351:1;620:250:0;678:7;702:6;698:47;;-1:-1:-1;732:1:0;725:8;;698:47;757:9;769:5;773:1;769;:5;:::i;:::-;757:17;-1:-1:-1;802:1:0;793:5;797:1;757:17;793:5;:::i;:::-;:10;785:56;;;;-1:-1:-1;;;785:56:0;;17608:2:1;785:56:0;;;17590:21:1;17647:2;17627:18;;;17620:30;17686:34;17666:18;;;17659:62;-1:-1:-1;;;17737:18:1;;;17730:31;17778:19;;785:56:0;17406:397:1;876:132:0;934:7;961:39;965:1;968;961:39;;;;;;;;;;;;;;;;;:3;:39::i;13316:166::-;13413:12;;13403:6;:22;;:49;;;-1:-1:-1;;;;;;13429:23:0;;;;;;:15;:23;;;;;;;;13403:49;13395:79;;;;-1:-1:-1;;;13395:79:0;;18010:2:1;13395:79:0;;;17992:21:1;18049:2;18029:18;;;18022:30;-1:-1:-1;;;18068:18:1;;;18061:47;18125:18;;13395:79:0;17808:341:1;13395:79:0;13316:166;;:::o;14401:197::-;14488:4;;14450;;-1:-1:-1;;;;;14488:4:0;14474:10;:18;;;;:38;;-1:-1:-1;14506:6:0;;;;14505:7;14474:38;:62;;;;-1:-1:-1;14525:11:0;;-1:-1:-1;;;14525:11:0;;;;14474:62;:116;;;;-1:-1:-1;;14577:13:0;;14567:4;14549:24;;;;:9;:24;;;;;;:41;;;14401:197::o;15393:1900::-;7007:6;:13;;-1:-1:-1;;7007:13:0;7016:4;7007:13;;;15488:15:::1;::::0;15505:26:::1;::::0;7007:6;;15472:60:::1;::::0;:15:::1;:60::i;:::-;:79;;15539:12;;15472:79;;;15535:1;15472:79;15442:109;;15562:23;15588:59;15645:1;15588:52;15631:8;;15588:38;15606:19;15588:13;;:17;;:38;;;;:::i;:59::-;15562:85;;15658:20;15681:34;15699:15;15681:13;;:17;;:34;;;;:::i;:::-;15752:16;::::0;;15766:1:::1;15752:16:::0;;;;;::::1;::::0;;15658:57;;-1:-1:-1;15728:21:0::1;::::0;15752:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15752:16:0::1;15728:40;;15797:4;15779;15784:1;15779:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15779:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;15823:4:::1;::::0;15813:7;;15823:4;::::1;::::0;15813;;15823;;15813:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;15813:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;15898:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;15898:188:0;;15864:21:::1;::::0;15898:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;15970:12;;15840:21:::1;::::0;16013:4;;16040::::1;::::0;16060:15:::1;::::0;15898:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16099:17;16119:40;16145:13;16119:21;:25;;:40;;;;:::i;:::-;16099:60:::0;-1:-1:-1;16172:19:0::1;16194:40;16207:26;:19:::0;16231:1:::1;16207:23;:26::i;:::-;16194:8;::::0;;:12:::1;:40::i;:::-;16172:62:::0;-1:-1:-1;16255:26:0::1;16284:58;16340:1;16284:51;16172:62:::0;16284:51;:9;16298:19;16284:13:::1;:34::i;:58::-;16255:87;;16353:26;16382:44;16414:11;16382:27;16396:12;;16382:9;:13;;:27;;;;:::i;:44::-;16353:73;;16437:21;16461:39;16488:11;16461:22;16475:7;;16461:9;:13;;:22;;;;:::i;:39::-;16437:63;;16511:24;16538:42;16568:11;16538:25;16552:10;;16538:9;:13;;:25;;;;:::i;:42::-;16622:20;::::0;16614:65:::1;::::0;16511:69;;-1:-1:-1;16594:15:0::1;::::0;-1:-1:-1;;;;;16622:20:0;;::::1;::::0;16656:18;;16594:15;16614:65;16594:15;16614:65;16656:18;16622:20;16614:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16714:18:0::1;::::0;16706:61:::1;::::0;16593:86;;-1:-1:-1;;;;;;16714:18:0::1;::::0;16746:16;;16706:61:::1;::::0;;;16746:16;16714:18;16706:61:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16802:15:0::1;::::0;16794:55:::1;::::0;16690:77;;-1:-1:-1;;;;;;16802:15:0::1;::::0;16831:13;;16794:55:::1;::::0;;;16831:13;16802:15;16794:55:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;16906:5:0::1;::::0;-1:-1:-1;;16927:19:0;;;-1:-1:-1;16924:362:0::1;;16962:6;::::0;17136:21:::1;::::0;16962:244:::1;::::0;-1:-1:-1;;;16962:244:0;;17038:4:::1;16962:244;::::0;::::1;19822:34:1::0;19872:18;;;19865:34;;;16962:6:0::1;19915:18:1::0;;;19908:34;;;19958:18;;;19951:34;-1:-1:-1;;;;;17136:21:0;;::::1;20001:19:1::0;;;19994:44;17176:15:0::1;20054:19:1::0;;;20047:35;16962:6:0;::::1;::::0;:22:::1;::::0;16992:18;;19756:19:1;;16962:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;17226:48:0::1;::::0;;20578:25:1;;;20634:2;20619:18;;20612:34;;;17226:48:0::1;::::0;-1:-1:-1;20551:18:1;17226:48:0::1;;;;;;;16924:362;-1:-1:-1::0;;7025:6:0;:14;;-1:-1:-1;;7025:14:0;;;-1:-1:-1;;;;;;;;;;15393:1900:0:o;21581:158::-;21620:11;21634:31;21648:16;;21634:13;:31::i;:::-;21620:45;;21675:6;21672:62;;;21711:15;21694:14;:32;21672:62;21613:126;21581:158::o;13612:781::-;13692:7;13722:18;13743:6;:29;;13769:3;13743:29;;;13752:14;;13743:29;13722:50;;13783:17;13803:62;13844:14;;13861:3;13844:20;;;;:::i;:::-;13803:36;13828:10;13803:20;13814:8;;13803:6;:10;;:20;;;;:::i;:62::-;13783:82;;13878:18;13899:36;13926:8;;13899:22;13913:7;;13899:9;:13;;:22;;;;:::i;:36::-;13878:57;-1:-1:-1;13946:22:0;13971:25;:9;13878:57;13971:13;:25::i;:::-;14054:4;14036:24;;;;:9;:24;;;;;;13946:50;;-1:-1:-1;14036:44:0;;13946:50;14036:28;:44::i;:::-;14027:4;14009:24;;;;:9;:24;;;;;;:71;;;;14130:15;;-1:-1:-1;;;;;14130:15:0;14120:26;;;;:42;;14151:10;14120:30;:42::i;:::-;14101:15;;-1:-1:-1;;;;;14101:15:0;;;14091:26;;;;:9;:26;;;;;;;;;:71;;;;14178:47;345:25:1;;;14203:4:0;;14178:47;;;;-1:-1:-1;;;;;;;;;;;14178:47:0;318:18:1;14178:47:0;;;;;;;14249:14;;14246:99;;14301:15;;14284:45;;345:25:1;;;-1:-1:-1;;;;;14301:15:0;;;;14284:45;;;-1:-1:-1;;;;;;;;;;;14284:45:0;333:2:1;318:18;14284:45:0;;;;;;;14246:99;14364:21;:6;14375:9;14364:10;:21::i;:::-;14357:28;13612:781;-1:-1:-1;;;;;;;;13612:781:0:o;1014:189::-;1100:7;1135:12;1128:5;1120:28;;;;-1:-1:-1;;;1120:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1159:9:0;1171:5;1175:1;1171;:5;:::i;14:180:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;381:597::-;493:4;522:2;551;540:9;533:21;583:6;577:13;626:6;621:2;610:9;606:18;599:34;651:1;661:140;675:6;672:1;669:13;661:140;;;770:14;;;766:23;;760:30;736:17;;;755:2;732:26;725:66;690:10;;661:140;;;819:6;816:1;813:13;810:91;;;889:1;884:2;875:6;864:9;860:22;856:31;849:42;810:91;-1:-1:-1;962:2:1;941:15;-1:-1:-1;;937:29:1;922:45;;;;969:2;918:54;;381:597;-1:-1:-1;;;381:597:1:o;983:131::-;-1:-1:-1;;;;;1058:31:1;;1048:42;;1038:70;;1104:1;1101;1094:12;1119:315;1187:6;1195;1248:2;1236:9;1227:7;1223:23;1219:32;1216:52;;;1264:1;1261;1254:12;1216:52;1303:9;1290:23;1322:31;1347:5;1322:31;:::i;:::-;1372:5;1424:2;1409:18;;;;1396:32;;-1:-1:-1;;;1119:315:1:o;1631:118::-;1717:5;1710:13;1703:21;1696:5;1693:32;1683:60;;1739:1;1736;1729:12;1754:241;1810:6;1863:2;1851:9;1842:7;1838:23;1834:32;1831:52;;;1879:1;1876;1869:12;1831:52;1918:9;1905:23;1937:28;1959:5;1937:28;:::i;2000:248::-;2068:6;2076;2129:2;2117:9;2108:7;2104:23;2100:32;2097:52;;;2145:1;2142;2135:12;2097:52;-1:-1:-1;;2168:23:1;;;2238:2;2223:18;;;2210:32;;-1:-1:-1;2000:248:1:o;2253:813::-;2348:6;2356;2364;2372;2380;2433:3;2421:9;2412:7;2408:23;2404:33;2401:53;;;2450:1;2447;2440:12;2401:53;2489:9;2476:23;2508:31;2533:5;2508:31;:::i;:::-;2558:5;-1:-1:-1;2615:2:1;2600:18;;2587:32;2628:33;2587:32;2628:33;:::i;:::-;2680:7;-1:-1:-1;2739:2:1;2724:18;;2711:32;2752:33;2711:32;2752:33;:::i;:::-;2804:7;-1:-1:-1;2863:2:1;2848:18;;2835:32;2876:33;2835:32;2876:33;:::i;:::-;2928:7;-1:-1:-1;2987:3:1;2972:19;;2959:33;3001;2959;3001;:::i;:::-;3053:7;3043:17;;;2253:813;;;;;;;;:::o;3071:367::-;3134:8;3144:6;3198:3;3191:4;3183:6;3179:17;3175:27;3165:55;;3216:1;3213;3206:12;3165:55;-1:-1:-1;3239:20:1;;3282:18;3271:30;;3268:50;;;3314:1;3311;3304:12;3268:50;3351:4;3343:6;3339:17;3327:29;;3411:3;3404:4;3394:6;3391:1;3387:14;3379:6;3375:27;3371:38;3368:47;3365:67;;;3428:1;3425;3418:12;3365:67;3071:367;;;;;:::o;3443:908::-;3574:6;3582;3590;3598;3606;3659:2;3647:9;3638:7;3634:23;3630:32;3627:52;;;3675:1;3672;3665:12;3627:52;3714:9;3701:23;3733:31;3758:5;3733:31;:::i;:::-;3783:5;-1:-1:-1;3839:2:1;3824:18;;3811:32;3862:18;3892:14;;;3889:34;;;3919:1;3916;3909:12;3889:34;3958:70;4020:7;4011:6;4000:9;3996:22;3958:70;:::i;:::-;4047:8;;-1:-1:-1;3932:96:1;-1:-1:-1;4135:2:1;4120:18;;4107:32;;-1:-1:-1;4151:16:1;;;4148:36;;;4180:1;4177;4170:12;4148:36;;4219:72;4283:7;4272:8;4261:9;4257:24;4219:72;:::i;:::-;3443:908;;;;-1:-1:-1;3443:908:1;;-1:-1:-1;4310:8:1;;4193:98;3443:908;-1:-1:-1;;;3443:908:1:o;4356:456::-;4433:6;4441;4449;4502:2;4490:9;4481:7;4477:23;4473:32;4470:52;;;4518:1;4515;4508:12;4470:52;4557:9;4544:23;4576:31;4601:5;4576:31;:::i;:::-;4626:5;-1:-1:-1;4683:2:1;4668:18;;4655:32;4696:33;4655:32;4696:33;:::i;:::-;4356:456;;4748:7;;-1:-1:-1;;;4802:2:1;4787:18;;;;4774:32;;4356:456::o;4817:247::-;4876:6;4929:2;4917:9;4908:7;4904:23;4900:32;4897:52;;;4945:1;4942;4935:12;4897:52;4984:9;4971:23;5003:31;5028:5;5003:31;:::i;5693:382::-;5758:6;5766;5819:2;5807:9;5798:7;5794:23;5790:32;5787:52;;;5835:1;5832;5825:12;5787:52;5874:9;5861:23;5893:31;5918:5;5893:31;:::i;:::-;5943:5;-1:-1:-1;6000:2:1;5985:18;;5972:32;6013:30;5972:32;6013:30;:::i;:::-;6062:7;6052:17;;;5693:382;;;;;:::o;6080:566::-;6172:6;6180;6188;6241:2;6229:9;6220:7;6216:23;6212:32;6209:52;;;6257:1;6254;6247:12;6209:52;6297:9;6284:23;6330:18;6322:6;6319:30;6316:50;;;6362:1;6359;6352:12;6316:50;6401:70;6463:7;6454:6;6443:9;6439:22;6401:70;:::i;:::-;6490:8;;-1:-1:-1;6375:96:1;-1:-1:-1;;6575:2:1;6560:18;;6547:32;6588:28;6547:32;6588:28;:::i;:::-;6635:5;6625:15;;;6080:566;;;;;:::o;6651:523::-;6755:6;6763;6771;6779;6787;6795;6848:3;6836:9;6827:7;6823:23;6819:33;6816:53;;;6865:1;6862;6855:12;6816:53;-1:-1:-1;;6888:23:1;;;6958:2;6943:18;;6930:32;;-1:-1:-1;7009:2:1;6994:18;;6981:32;;7060:2;7045:18;;7032:32;;-1:-1:-1;7111:3:1;7096:19;;7083:33;;-1:-1:-1;7163:3:1;7148:19;7135:33;;-1:-1:-1;6651:523:1;-1:-1:-1;6651:523:1:o;7179:377::-;7253:6;7261;7269;7322:2;7310:9;7301:7;7297:23;7293:32;7290:52;;;7338:1;7335;7328:12;7290:52;7374:9;7361:23;7351:33;;7431:2;7420:9;7416:18;7403:32;7393:42;;7485:2;7474:9;7470:18;7457:32;7498:28;7520:5;7498:28;:::i;7561:388::-;7629:6;7637;7690:2;7678:9;7669:7;7665:23;7661:32;7658:52;;;7706:1;7703;7696:12;7658:52;7745:9;7732:23;7764:31;7789:5;7764:31;:::i;:::-;7814:5;-1:-1:-1;7871:2:1;7856:18;;7843:32;7884:33;7843:32;7884:33;:::i;7954:309::-;8019:6;8027;8080:2;8068:9;8059:7;8055:23;8051:32;8048:52;;;8096:1;8093;8086:12;8048:52;8135:9;8122:23;8154:28;8176:5;8154:28;:::i;8268:377::-;8342:6;8350;8358;8411:2;8399:9;8390:7;8386:23;8382:32;8379:52;;;8427:1;8424;8417:12;8379:52;8463:9;8450:23;8440:33;;8523:2;8512:9;8508:18;8495:32;8536:28;8558:5;8536:28;:::i;9136:640::-;9240:6;9248;9256;9264;9317:2;9305:9;9296:7;9292:23;9288:32;9285:52;;;9333:1;9330;9323:12;9285:52;9372:9;9359:23;9391:31;9416:5;9391:31;:::i;:::-;9441:5;-1:-1:-1;9497:2:1;9482:18;;9469:32;9524:18;9513:30;;9510:50;;;9556:1;9553;9546:12;9510:50;9595:70;9657:7;9648:6;9637:9;9633:22;9595:70;:::i;:::-;9136:640;;9684:8;;-1:-1:-1;9569:96:1;;9766:2;9751:18;9738:32;;9136:640;-1:-1:-1;;;;9136:640:1:o;9781:329::-;9983:2;9965:21;;;10022:1;10002:18;;;9995:29;-1:-1:-1;;;10055:2:1;10040:18;;10033:36;10101:2;10086:18;;9781:329::o;10115:127::-;10176:10;10171:3;10167:20;10164:1;10157:31;10207:4;10204:1;10197:15;10231:4;10228:1;10221:15;10247:168;10287:7;10353:1;10349;10345:6;10341:14;10338:1;10335:21;10330:1;10323:9;10316:17;10312:45;10309:71;;;10360:18;;:::i;:::-;-1:-1:-1;10400:9:1;;10247:168::o;10420:217::-;10460:1;10486;10476:132;;10530:10;10525:3;10521:20;10518:1;10511:31;10565:4;10562:1;10555:15;10593:4;10590:1;10583:15;10476:132;-1:-1:-1;10622:9:1;;10420:217::o;10642:335::-;10844:2;10826:21;;;10883:2;10863:18;;;10856:30;-1:-1:-1;;;10917:2:1;10902:18;;10895:41;10968:2;10953:18;;10642:335::o;11805:127::-;11866:10;11861:3;11857:20;11854:1;11847:31;11897:4;11894:1;11887:15;11921:4;11918:1;11911:15;11937:128;11977:3;12008:1;12004:6;12001:1;11998:13;11995:39;;;12014:18;;:::i;:::-;-1:-1:-1;12050:9:1;;11937:128::o;12070:135::-;12109:3;-1:-1:-1;;12130:17:1;;12127:43;;;12150:18;;:::i;:::-;-1:-1:-1;12197:1:1;12186:13;;12070:135::o;12566:184::-;12636:6;12689:2;12677:9;12668:7;12664:23;12660:32;12657:52;;;12705:1;12702;12695:12;12657:52;-1:-1:-1;12728:16:1;;12566:184;-1:-1:-1;12566:184:1:o;13034:245::-;13101:6;13154:2;13142:9;13133:7;13129:23;13125:32;13122:52;;;13170:1;13167;13160:12;13122:52;13202:9;13196:16;13221:28;13243:5;13221:28;:::i;15040:125::-;15080:4;15108:1;15105;15102:8;15099:34;;;15113:18;;:::i;:::-;-1:-1:-1;15150:9:1;;15040:125::o;18286:980::-;18548:4;18596:3;18585:9;18581:19;18627:6;18616:9;18609:25;18653:2;18691:6;18686:2;18675:9;18671:18;18664:34;18734:3;18729:2;18718:9;18714:18;18707:31;18758:6;18793;18787:13;18824:6;18816;18809:22;18862:3;18851:9;18847:19;18840:26;;18901:2;18893:6;18889:15;18875:29;;18922:1;18932:195;18946:6;18943:1;18940:13;18932:195;;;19011:13;;-1:-1:-1;;;;;19007:39:1;18995:52;;19102:15;;;;19067:12;;;;19043:1;18961:9;18932:195;;;-1:-1:-1;;;;;;;19183:32:1;;;;19178:2;19163:18;;19156:60;-1:-1:-1;;;19247:3:1;19232:19;19225:35;19144:3;18286:980;-1:-1:-1;;;18286:980:1:o;20093:306::-;20181:6;20189;20197;20250:2;20238:9;20229:7;20225:23;20221:32;20218:52;;;20266:1;20263;20256:12;20218:52;20295:9;20289:16;20279:26;;20345:2;20334:9;20330:18;20324:25;20314:35;;20389:2;20378:9;20374:18;20368:25;20358:35;;20093:306;;;;;:::o

Swarm Source

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