ETH Price: $2,609.15 (+1.08%)
Gas: 6.99 Gwei

Token

Skynet AI (Skynet)
 

Overview

Max Total Supply

1,000,000,000,000,000 Skynet

Holders

271

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
405,875,825,009.617370817 Skynet

Value
$0.00
0x29bf086bf3948e2d266bde3b6c7a5947381214d6
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:
SkynetAI

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 100 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-03-28
*/

/* 


*/


// SPDX-License-Identifier: Unlicensed


pragma solidity 0.8.17;

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

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

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

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

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

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

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

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

contract Ownable is Context {
    address public _owner;

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

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

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

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

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

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

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

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

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

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

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

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

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

    string constant _name = "Skynet AI";
    string constant _symbol = "Skynet";
    uint8 constant _decimals = 9; 
  

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

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

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

    
    mapping (address => bool) isFeeexcused;
    mapping (address => bool) isTxLimitexcused;

    uint256 private liquidityFee    = 1;
    uint256 private marketingFee    = 2;
    uint256 private devFee          = 2;
    uint256 private teamFee         = 1; 
    uint256 private burnFee         = 0;
    uint256 public totalFee         = teamFee + marketingFee + liquidityFee + devFee + burnFee;
    uint256 private feeDenominator  = 100;

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

    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private devFeeReceiver;
    address private teamFeeReceiver;
    address private burnFeeReceiver;
    
    uint256 targetLiquidity = 30;
    uint256 targetLiquidityDenominator = 100;

    IDEXRouter public router;
    InterfaceLP private pairContract;
    address public pair;
    
    bool public TradingOpen = false; 

    bool public launchMode = false;
    mapping (address => bool) public islaunched;   

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 20 / 1000; 
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }
    
    constructor () {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        pairContract = InterfaceLP(pair);
       
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        isFeeexcused[msg.sender] = true;
        isFeeexcused[devFeeReceiver] = true;
            
        isTxLimitexcused[msg.sender] = true;
        isTxLimitexcused[pair] = true;
        isTxLimitexcused[devFeeReceiver] = true;
        isTxLimitexcused[marketingFeeReceiver] = true;
        isTxLimitexcused[address(this)] = true;
        
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0x3aC6F8Ec36daA56d52E4C410Bb7C36711de564Ee;
        devFeeReceiver = 0xe38e5c7F7325891546938040894da2e0aA798Fe1;
        teamFeeReceiver = msg.sender;
        burnFeeReceiver = DEAD; 

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

    }

    receive() external payable { }

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

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

    function 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 setWalletPercent(uint256 maxWallPercent) external onlyOwner {
         require(_maxWalletToken >= _totalSupply / 1000); 
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 1000;
                
    }

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

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

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

        

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

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

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

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

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

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

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

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

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

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

        return amount.sub(feeAmount);
    }

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

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

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

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

    }

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

    }

    function removeForeignToken(address tokenAddress, uint256 tokens) public returns (bool) {
               if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
        return ERC20(tokenAddress).transfer(autoLiquidityReceiver, tokens);
    }

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

     function enableLaunch(bool _status) public onlyOwner {
        launchMode = _status;
    }

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

    function allowTrading() public onlyOwner {
        launchMode = false;
        buyMultiplier = 500;
        sellMultiplier = 700;
        transferMultiplier = 1900;
    }

    function stepOne() public onlyOwner {
        buyMultiplier = 200;
        sellMultiplier = 400;
        transferMultiplier = 0;
    }

     function stepTwo() public onlyOwner {
        buyMultiplier = 100;
        sellMultiplier = 200;
        transferMultiplier = 0;
    }
    
    function goLive() public onlyOwner {
        TradingOpen = true;
        launchMode = true;
    }
        
    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 amountETHdev = amountETH.mul(devFee).div(totalETHFee);

        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}("");
        (tmpSuccess,) = payable(devFeeReceiver).call{value: amountETHdev}("");
        (tmpSuccess,) = payable(teamFeeReceiver).call{value: amountETHteam}("");
        
        tmpSuccess = false;

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

    function setInternalAddress(address holder, bool excused) external onlyOwner {
        isFeeexcused[holder] = excused;
        isTxLimitexcused[holder] = excused;
    }

    function setNoTxLimit(address holder, bool excused) external onlyOwner {
        isTxLimitexcused[holder] = excused;
    }

    function updateTaxAllocation(uint256 _liquidityFee, uint256 _teamFee, uint256 _marketingFee, uint256 _devFee, uint256 _burnFee, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        teamFee = _teamFee;
        marketingFee = _marketingFee;
        devFee = _devFee;
        burnFee = _burnFee;
        totalFee = _liquidityFee.add(_teamFee).add(_marketingFee).add(_devFee).add(_burnFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator / 5, "Fees can not be more than 20%"); 
    }

    function updateTaxWallets(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _devFeeReceiver, address _burnFeeReceiver, address _teamFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        devFeeReceiver = _devFeeReceiver;
        burnFeeReceiver = _burnFeeReceiver;
        teamFeeReceiver = _teamFeeReceiver;
    }

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

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

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

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

  


event AutoLiquify(uint256 amountETH, uint256 amountTokens);

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"allowTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableLaunch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"goLive","outputs":[],"stateMutability":"nonpayable","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":"","type":"address"}],"name":"islaunched","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manageLaunch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"removeForeignToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"excused","type":"bool"}],"name":"setInternalAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"excused","type":"bool"}],"name":"setNoTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setRatio","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapAndLiquify","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercent","type":"uint256"}],"name":"setTXPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setWalletPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stepOne","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stepTwo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"updateTaxAllocation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"}],"name":"updateTaxWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326009600a620006f5565b620000459066038d7ea4c6800062000706565b6005556200007f6103e86200006b60058054620004c560201b620013621790919060201c565b6200055c60201b620013e41790919060201c565b600655620000a56103e86200006b60058054620004c560201b620013621790919060201c565b6007556001600c8190556002600d819055600e819055600f8290556000601081905591620000d4828262000720565b620000e0919062000720565b620000ec919062000720565b620000f8919062000720565b60115560646012819055601381905560148181556015829055601e601b55601c91909155601f805461ffff60a01b191690556021805460ff191660011790556005546103e8916200014a919062000706565b62000156919062000736565b6022553480156200016657600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000226573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024c919062000759565b600280546001600160a01b0319166001600160a01b03928316179055601d546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015620002ab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d1919062000759565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000323573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000349919062000759565b601f80546001600160a01b039283166001600160a01b031991821681178355601e805483169091179055306000818152600960209081526040808320601d54881684528252808320600019905533808452600a8352818420805460ff199081166001908117909255601880548b1687528487208054831684179055838752600b8652848720805483168417905598548a168652838620805482168317905588548a1686528386208054821683179055601780548b1687528487208054831684179055968652838620805490911690911790556016805487168217905584548616733ac6f8ec36daa56d52e4c410bb7c36711de564ee179094558554851673e38e5c7f7325891546938040894da2e0aa798fe11790955560198054851684179055600354601a80549095169616959095179092556005548183526008855283832081905592519283529290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620007d4565b600082600003620004d95750600062000556565b6000620004e7838562000706565b905082620004f6858362000736565b14620005535760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200055383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620005a660201b60201c565b60008183620005ca5760405162461bcd60e51b81526004016200054a919062000784565b506000620005d9848662000736565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620006395781600019048211156200061d576200061d620005e2565b808516156200062b57918102915b93841c9390800290620005fd565b509250929050565b600082620006525750600162000556565b81620006615750600062000556565b81600181146200067a57600281146200068557620006a5565b600191505062000556565b60ff841115620006995762000699620005e2565b50506001821b62000556565b5060208310610133831016604e8410600b8410161715620006ca575081810a62000556565b620006d68383620005f8565b8060001904821115620006ed57620006ed620005e2565b029392505050565b60006200055360ff84168362000641565b8082028115828204841417620005565762000556620005e2565b80820180821115620005565762000556620005e2565b6000826200075457634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200076c57600080fd5b81516001600160a01b03811681146200055357600080fd5b600060208083528351808285015260005b81811015620007b35785810183015185820160400152820162000795565b506000604082860101526040601f19601f8301168501019250505092915050565b61252d80620007e46000396000f3fe6080604052600436106102975760003560e01c806378109e541161015a578063b2bdfa7b116100c1578063d78e139d1161007a578063d78e139d146107be578063dd62ed3e146107de578063f2fde38b14610824578063f429389014610844578063f785ccd014610859578063f887ea401461087957600080fd5b8063b2bdfa7b14610708578063b37dd69014610728578063ca3e4d0514610749578063d148b74c14610769578063d51ed1c81461077e578063d6aeedca1461079e57600080fd5b806395d89b411161011357806395d89b411461064457806398f4efc614610673578063a67931d314610693578063a8aa1b31146106a8578063a9059cbb146106c8578063a983e4c8146106e857600080fd5b806378109e54146105885780637ade962d1461059e5780637d1db4a5146105be5780637fa4a5bb146105d4578063893d20e8146105f45780638da5cb5b1461062657600080fd5b80632c28f579116101fe57806361a077b2116101b757806361a077b2146104d55780636ddd1713146104f55780637007546b1461050f57806370a082311461053e578063715018a61461055e578063751039fc1461057357600080fd5b80632c28f5791461042f5780632e5b4c4314610444578063313ce567146104595780633ee6daf714610475578063571ac8b0146104955780635accb597146104b557600080fd5b80631161ae39116102505780631161ae391461038f57806315eb53b4146103af57806318160ddd146103cf5780631df4ccfc146103e457806323b872dd146103fa5780632b112e491461041a57600080fd5b80630445b667146102a357806306fdde03146102cc57806308fd3d0514610307578063095ea7b3146103385780630b3cbe361461035857806311107c681461036f57600080fd5b3661029e57005b600080fd5b3480156102af57600080fd5b506102b960225481565b6040519081526020015b60405180910390f35b3480156102d857600080fd5b50604080518082019091526009815268536b796e657420414960b81b60208201525b6040516102c39190611ff6565b34801561031357600080fd5b50601f5461032890600160a01b900460ff1681565b60405190151581526020016102c3565b34801561034457600080fd5b50610328610353366004612060565b610899565b34801561036457600080fd5b5061036d610906565b005b34801561037b57600080fd5b5061036d61038a366004612098565b61094b565b34801561039b57600080fd5b506103286103aa3660046120b5565b610993565b3480156103bb57600080fd5b5061036d6103ca3660046120d7565b6109a7565b3480156103db57600080fd5b506005546102b9565b3480156103f057600080fd5b506102b960115481565b34801561040657600080fd5b5061032861041536600461215d565b610a46565b34801561042657600080fd5b506102b9610b08565b34801561043b57600080fd5b5061036d610b51565b34801561045057600080fd5b5061036d610b92565b34801561046557600080fd5b50604051600981526020016102c3565b34801561048157600080fd5b5061036d610490366004612199565b610bdd565b3480156104a157600080fd5b506103286104b03660046121d0565b610c32565b3480156104c157600080fd5b5061036d6104d03660046121eb565b610c40565b3480156104e157600080fd5b5061036d6104f0366004612204565b610ca9565b34801561050157600080fd5b506021546103289060ff1681565b34801561051b57600080fd5b5061032861052a3660046121d0565b602080526000908152604090205460ff1681565b34801561054a57600080fd5b506102b96105593660046121d0565b610d6f565b34801561056a57600080fd5b5061036d610d8a565b34801561057f57600080fd5b5061036d610dfe565b34801561059457600080fd5b506102b960075481565b3480156105aa57600080fd5b5061036d6105b93660046121eb565b610e35565b3480156105ca57600080fd5b506102b960065481565b3480156105e057600080fd5b5061036d6105ef366004612199565b610e9e565b34801561060057600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102c3565b34801561063257600080fd5b506000546001600160a01b031661060e565b34801561065057600080fd5b5060408051808201909152600681526514dade5b995d60d21b60208201526102fa565b34801561067f57600080fd5b5061036d61068e366004612247565b610f06565b34801561069f57600080fd5b5061036d610f47565b3480156106b457600080fd5b50601f5461060e906001600160a01b031681565b3480156106d457600080fd5b506103286106e3366004612060565b610f82565b3480156106f457600080fd5b5061036d610703366004612265565b610f8f565b34801561071457600080fd5b5060005461060e906001600160a01b031681565b34801561073457600080fd5b50601f5461032890600160a81b900460ff1681565b34801561075557600080fd5b5061036d610764366004612291565b610fca565b34801561077557600080fd5b5061036d611053565b34801561078a57600080fd5b506102b96107993660046121eb565b611087565b3480156107aa57600080fd5b506103286107b9366004612060565b6110c7565b3480156107ca57600080fd5b5061036d6107d93660046121eb565b6111b3565b3480156107ea57600080fd5b506102b96107f93660046122f6565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561083057600080fd5b5061036d61083f3660046121d0565b611207565b34801561085057600080fd5b5061036d6112f1565b34801561086557600080fd5b5061036d6108743660046120b5565b61132d565b34801561088557600080fd5b50601d5461060e906001600160a01b031681565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108f49086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146109395760405162461bcd60e51b815260040161093090612329565b60405180910390fd5b60c86014556101906013556000601555565b6000546001600160a01b031633146109755760405162461bcd60e51b815260040161093090612329565b601f8054911515600160a81b0260ff60a81b19909216919091179055565b60008261099f83611087565b119392505050565b6000546001600160a01b031633146109d15760405162461bcd60e51b815260040161093090612329565b60005b82811015610a405781602060008686858181106109f3576109f361235e565b9050602002016020810190610a0891906121d0565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610a398161238a565b90506109d4565b50505050565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610af3576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610ace918490611426565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610afe848484611460565b90505b9392505050565b600454600090610b4c90610b24906001600160a01b0316610d6f565b600354610b4690610b3d906001600160a01b0316610d6f565b60055490611823565b90611823565b905090565b6000546001600160a01b03163314610b7b5760405162461bcd60e51b815260040161093090612329565b601f805461ffff60a01b191661010160a01b179055565b6000546001600160a01b03163314610bbc5760405162461bcd60e51b815260040161093090612329565b601f805460ff60a81b191690556101f46014556102bc60135561076c601555565b6000546001600160a01b03163314610c075760405162461bcd60e51b815260040161093090612329565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b600061090082600019610899565b6000546001600160a01b03163314610c6a5760405162461bcd60e51b815260040161093090612329565b6103e8600554610c7a91906123a3565b6007541015610c8857600080fd5b6103e881600554610c9991906123c5565b610ca391906123a3565b60075550565b6000546001600160a01b03163314610cd35760405162461bcd60e51b815260040161093090612329565b600c869055600f859055600d849055600e8390556010829055610d0482610cfe858188818c8c611865565b90611865565b6011556012819055610d176005826123a3565b60115410610d675760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e203230250000006044820152606401610930565b505050505050565b6001600160a01b031660009081526008602052604090205490565b6000546001600160a01b03163314610db45760405162461bcd60e51b815260040161093090612329565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610e285760405162461bcd60e51b815260040161093090612329565b6005546007819055600655565b6000546001600160a01b03163314610e5f5760405162461bcd60e51b815260040161093090612329565b6103e8600554610e6f91906123a3565b6006541015610e7d57600080fd5b6103e881600554610e8e91906123c5565b610e9891906123a3565b60065550565b6000546001600160a01b03163314610ec85760405162461bcd60e51b815260040161093090612329565b6001600160a01b039091166000908152600a60209081526040808320805494151560ff199586168117909155600b9092529091208054909216179055565b6000546001600160a01b03163314610f305760405162461bcd60e51b815260040161093090612329565b6021805460ff191692151592909217909155602255565b6000546001600160a01b03163314610f715760405162461bcd60e51b815260040161093090612329565b606460145560c86013556000601555565b6000610b01338484611460565b6000546001600160a01b03163314610fb95760405162461bcd60e51b815260040161093090612329565b601391909155601491909155601555565b6000546001600160a01b03163314610ff45760405162461bcd60e51b815260040161093090612329565b601680546001600160a01b03199081166001600160a01b03978816179091556017805482169587169590951790945560188054851693861693909317909255601a80548416918516919091179055601980549092169216919091179055565b6000546001600160a01b0316331461107d5760405162461bcd60e51b815260040161093090612329565b6110856118c4565b565b6000610900611094610b08565b601f546110c1906110ba906002906110b4906001600160a01b0316610d6f565b90611362565b8590611362565b906113e4565b60008160000361113c576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015611115573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113991906123dc565b91505b60165460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303816000875af115801561118f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0191906123f5565b60195447906001600160a01b03166108fc60646111d085856123c5565b6111da91906123a3565b6040518115909202916000818181858888f19350505050158015611202573d6000803e3d6000fd5b505050565b6000546001600160a01b031633146112315760405162461bcd60e51b815260040161093090612329565b6001600160a01b0381166112965760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610930565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6016546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561132a573d6000803e3d6000fd5b50565b6000546001600160a01b031633146113575760405162461bcd60e51b815260040161093090612329565b601b91909155601c55565b60008260000361137457506000610900565b600061138083856123c5565b90508261138d85836123a3565b14610b015760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610930565b6000610b0183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611cab565b6000818484111561144a5760405162461bcd60e51b81526004016109309190611ff6565b5060006114578486612412565b95945050505050565b60235460009060ff161561148057611479848484611cd9565b9050610b01565b6001600160a01b03841660009081526001602052604090205460ff161580156114c257506001600160a01b03831660009081526001602052604090205460ff16155b1561157f57601f54600160a01b900460ff166115175760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610930565b601f54600160a81b900460ff161561157f576001600160a01b038316600090815260208052604090205460ff1661157f5760405162461bcd60e51b815260206004820152600c60248201526b139bdd081b185d5b98da195960a21b6044820152606401610930565b6001600160a01b03841660009081526001602052604090205460ff161580156115b157506001600160a01b0383163014155b80156115cb57506003546001600160a01b03848116911614155b80156115e55750601f546001600160a01b03848116911614155b80156115ff5750601a546001600160a01b03848116911614155b801561161957506017546001600160a01b03848116911614155b801561163e57506001600160a01b0383166000908152600b602052604090205460ff16155b156116d457600061164e84610d6f565b60075490915061165e8483612425565b11156116d25760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610930565b505b6116de8483611dad565b6116e6611e1a565b156116f3576116f36118c4565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260089091529190912054611745918490611426565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff168061179257506001600160a01b0384166000908152600a602052604090205460ff165b6117a6576117a1858486611e69565b6117a8565b825b6001600160a01b0385166000908152600860205260409020549091506117ce9082611865565b6001600160a01b0380861660008181526008602052604090819020939093559151908716906000805160206124d8833981519152906118109085815260200190565b60405180910390a3506001949350505050565b6000610b0183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611426565b6000806118728385612425565b905083811015610b015760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610930565b6023805460ff19166001179055601b54601c546000916118e391610993565b6118ef57600c546118f2565b60005b9050600061191660026110c16011546110c18660225461136290919063ffffffff16565b9050600061192f8260225461182390919063ffffffff16565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106119695761196961235e565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061199a5761199a61235e565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac947906119e4908690600090879030904290600401612438565b600060405180830381600087803b1580156119fe57600080fd5b505af1158015611a12573d6000803e3d6000fd5b505050506000611a2b824761182390919063ffffffff16565b90506000611a46611a3d8860026113e4565b60115490611823565b90506000611a5b60026110c18481878d611362565b90506000611a78836110c1600d548761136290919063ffffffff16565b90506000611a95846110c1600f548861136290919063ffffffff16565b90506000611ab2856110c1600e548961136290919063ffffffff16565b6017546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114611b04576040519150601f19603f3d011682016040523d82523d6000602084013e611b09565b606091505b50506018546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611b59576040519150601f19603f3d011682016040523d82523d6000602084013e611b5e565b606091505b50506019546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611bae576040519150601f19603f3d011682016040523d82523d6000602084013e611bb3565b606091505b5060009250508b159050611c9357601d5460165460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611c31573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611c5691906124a9565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506023805460ff1916905550505050505050505050565b60008183611ccc5760405162461bcd60e51b81526004016109309190611ff6565b50600061145784866123a3565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611d2a918490611426565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611d599083611865565b6001600160a01b0380851660008181526008602052604090819020939093559151908616906000805160206124d883398151915290611d9b9086815260200190565b60405180910390a35060019392505050565b60065481111580611dd657506001600160a01b0382166000908152600b602052604090205460ff165b611e165760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610930565b5050565b601f546000906001600160a01b03163314801590611e3b575060235460ff16155b8015611e49575060215460ff165b8015610b4c57505060225430600090815260086020526040902054101590565b601554601f54600091906001600160a01b0390811690841603611e8f5750601354611eaa565b601f546001600160a01b0390811690861603611eaa57506014545b6000611ed76012546064611ebe91906123c5565b6110c1846110b46011548a61136290919063ffffffff16565b90506000611ef66011546110c16010548561136290919063ffffffff16565b90506000611f048383611823565b30600090815260086020526040902054909150611f219082611865565b3060009081526008602052604080822092909255601a546001600160a01b031681522054611f4f9083611865565b601a546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b16916000805160206124d8833981519152910160405180910390a38115611fe057600554611fa99083611823565b6005556004546040518381526001600160a01b03918216918a16906000805160206124d88339815191529060200160405180910390a35b611fea8784611823565b98975050505050505050565b600060208083528351808285015260005b8181101561202357858101830151858201604001528201612007565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461205b57600080fd5b919050565b6000806040838503121561207357600080fd5b61207c83612044565b946020939093013593505050565b801515811461132a57600080fd5b6000602082840312156120aa57600080fd5b8135610b018161208a565b600080604083850312156120c857600080fd5b50508035926020909101359150565b6000806000604084860312156120ec57600080fd5b833567ffffffffffffffff8082111561210457600080fd5b818601915086601f83011261211857600080fd5b81358181111561212757600080fd5b8760208260051b850101111561213c57600080fd5b602092830195509350508401356121528161208a565b809150509250925092565b60008060006060848603121561217257600080fd5b61217b84612044565b925061218960208501612044565b9150604084013590509250925092565b600080604083850312156121ac57600080fd5b6121b583612044565b915060208301356121c58161208a565b809150509250929050565b6000602082840312156121e257600080fd5b610b0182612044565b6000602082840312156121fd57600080fd5b5035919050565b60008060008060008060c0878903121561221d57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b6000806040838503121561225a57600080fd5b823561207c8161208a565b60008060006060848603121561227a57600080fd5b505081359360208301359350604090920135919050565b600080600080600060a086880312156122a957600080fd5b6122b286612044565b94506122c060208701612044565b93506122ce60408701612044565b92506122dc60608701612044565b91506122ea60808701612044565b90509295509295909350565b6000806040838503121561230957600080fd5b61231283612044565b915061232060208401612044565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161239c5761239c612374565b5060010190565b6000826123c057634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761090057610900612374565b6000602082840312156123ee57600080fd5b5051919050565b60006020828403121561240757600080fd5b8151610b018161208a565b8181038181111561090057610900612374565b8082018082111561090057610900612374565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156124885784516001600160a01b031683529383019391830191600101612463565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156124be57600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212209d02b62def3bf0744c422342b8b9c2eb66aa0a2f41266a6e73963edbd866f9be64736f6c63430008110033

Deployed Bytecode

0x6080604052600436106102975760003560e01c806378109e541161015a578063b2bdfa7b116100c1578063d78e139d1161007a578063d78e139d146107be578063dd62ed3e146107de578063f2fde38b14610824578063f429389014610844578063f785ccd014610859578063f887ea401461087957600080fd5b8063b2bdfa7b14610708578063b37dd69014610728578063ca3e4d0514610749578063d148b74c14610769578063d51ed1c81461077e578063d6aeedca1461079e57600080fd5b806395d89b411161011357806395d89b411461064457806398f4efc614610673578063a67931d314610693578063a8aa1b31146106a8578063a9059cbb146106c8578063a983e4c8146106e857600080fd5b806378109e54146105885780637ade962d1461059e5780637d1db4a5146105be5780637fa4a5bb146105d4578063893d20e8146105f45780638da5cb5b1461062657600080fd5b80632c28f579116101fe57806361a077b2116101b757806361a077b2146104d55780636ddd1713146104f55780637007546b1461050f57806370a082311461053e578063715018a61461055e578063751039fc1461057357600080fd5b80632c28f5791461042f5780632e5b4c4314610444578063313ce567146104595780633ee6daf714610475578063571ac8b0146104955780635accb597146104b557600080fd5b80631161ae39116102505780631161ae391461038f57806315eb53b4146103af57806318160ddd146103cf5780631df4ccfc146103e457806323b872dd146103fa5780632b112e491461041a57600080fd5b80630445b667146102a357806306fdde03146102cc57806308fd3d0514610307578063095ea7b3146103385780630b3cbe361461035857806311107c681461036f57600080fd5b3661029e57005b600080fd5b3480156102af57600080fd5b506102b960225481565b6040519081526020015b60405180910390f35b3480156102d857600080fd5b50604080518082019091526009815268536b796e657420414960b81b60208201525b6040516102c39190611ff6565b34801561031357600080fd5b50601f5461032890600160a01b900460ff1681565b60405190151581526020016102c3565b34801561034457600080fd5b50610328610353366004612060565b610899565b34801561036457600080fd5b5061036d610906565b005b34801561037b57600080fd5b5061036d61038a366004612098565b61094b565b34801561039b57600080fd5b506103286103aa3660046120b5565b610993565b3480156103bb57600080fd5b5061036d6103ca3660046120d7565b6109a7565b3480156103db57600080fd5b506005546102b9565b3480156103f057600080fd5b506102b960115481565b34801561040657600080fd5b5061032861041536600461215d565b610a46565b34801561042657600080fd5b506102b9610b08565b34801561043b57600080fd5b5061036d610b51565b34801561045057600080fd5b5061036d610b92565b34801561046557600080fd5b50604051600981526020016102c3565b34801561048157600080fd5b5061036d610490366004612199565b610bdd565b3480156104a157600080fd5b506103286104b03660046121d0565b610c32565b3480156104c157600080fd5b5061036d6104d03660046121eb565b610c40565b3480156104e157600080fd5b5061036d6104f0366004612204565b610ca9565b34801561050157600080fd5b506021546103289060ff1681565b34801561051b57600080fd5b5061032861052a3660046121d0565b602080526000908152604090205460ff1681565b34801561054a57600080fd5b506102b96105593660046121d0565b610d6f565b34801561056a57600080fd5b5061036d610d8a565b34801561057f57600080fd5b5061036d610dfe565b34801561059457600080fd5b506102b960075481565b3480156105aa57600080fd5b5061036d6105b93660046121eb565b610e35565b3480156105ca57600080fd5b506102b960065481565b3480156105e057600080fd5b5061036d6105ef366004612199565b610e9e565b34801561060057600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102c3565b34801561063257600080fd5b506000546001600160a01b031661060e565b34801561065057600080fd5b5060408051808201909152600681526514dade5b995d60d21b60208201526102fa565b34801561067f57600080fd5b5061036d61068e366004612247565b610f06565b34801561069f57600080fd5b5061036d610f47565b3480156106b457600080fd5b50601f5461060e906001600160a01b031681565b3480156106d457600080fd5b506103286106e3366004612060565b610f82565b3480156106f457600080fd5b5061036d610703366004612265565b610f8f565b34801561071457600080fd5b5060005461060e906001600160a01b031681565b34801561073457600080fd5b50601f5461032890600160a81b900460ff1681565b34801561075557600080fd5b5061036d610764366004612291565b610fca565b34801561077557600080fd5b5061036d611053565b34801561078a57600080fd5b506102b96107993660046121eb565b611087565b3480156107aa57600080fd5b506103286107b9366004612060565b6110c7565b3480156107ca57600080fd5b5061036d6107d93660046121eb565b6111b3565b3480156107ea57600080fd5b506102b96107f93660046122f6565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561083057600080fd5b5061036d61083f3660046121d0565b611207565b34801561085057600080fd5b5061036d6112f1565b34801561086557600080fd5b5061036d6108743660046120b5565b61132d565b34801561088557600080fd5b50601d5461060e906001600160a01b031681565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108f49086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146109395760405162461bcd60e51b815260040161093090612329565b60405180910390fd5b60c86014556101906013556000601555565b6000546001600160a01b031633146109755760405162461bcd60e51b815260040161093090612329565b601f8054911515600160a81b0260ff60a81b19909216919091179055565b60008261099f83611087565b119392505050565b6000546001600160a01b031633146109d15760405162461bcd60e51b815260040161093090612329565b60005b82811015610a405781602060008686858181106109f3576109f361235e565b9050602002016020810190610a0891906121d0565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610a398161238a565b90506109d4565b50505050565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610af3576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610ace918490611426565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610afe848484611460565b90505b9392505050565b600454600090610b4c90610b24906001600160a01b0316610d6f565b600354610b4690610b3d906001600160a01b0316610d6f565b60055490611823565b90611823565b905090565b6000546001600160a01b03163314610b7b5760405162461bcd60e51b815260040161093090612329565b601f805461ffff60a01b191661010160a01b179055565b6000546001600160a01b03163314610bbc5760405162461bcd60e51b815260040161093090612329565b601f805460ff60a81b191690556101f46014556102bc60135561076c601555565b6000546001600160a01b03163314610c075760405162461bcd60e51b815260040161093090612329565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b600061090082600019610899565b6000546001600160a01b03163314610c6a5760405162461bcd60e51b815260040161093090612329565b6103e8600554610c7a91906123a3565b6007541015610c8857600080fd5b6103e881600554610c9991906123c5565b610ca391906123a3565b60075550565b6000546001600160a01b03163314610cd35760405162461bcd60e51b815260040161093090612329565b600c869055600f859055600d849055600e8390556010829055610d0482610cfe858188818c8c611865565b90611865565b6011556012819055610d176005826123a3565b60115410610d675760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e203230250000006044820152606401610930565b505050505050565b6001600160a01b031660009081526008602052604090205490565b6000546001600160a01b03163314610db45760405162461bcd60e51b815260040161093090612329565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610e285760405162461bcd60e51b815260040161093090612329565b6005546007819055600655565b6000546001600160a01b03163314610e5f5760405162461bcd60e51b815260040161093090612329565b6103e8600554610e6f91906123a3565b6006541015610e7d57600080fd5b6103e881600554610e8e91906123c5565b610e9891906123a3565b60065550565b6000546001600160a01b03163314610ec85760405162461bcd60e51b815260040161093090612329565b6001600160a01b039091166000908152600a60209081526040808320805494151560ff199586168117909155600b9092529091208054909216179055565b6000546001600160a01b03163314610f305760405162461bcd60e51b815260040161093090612329565b6021805460ff191692151592909217909155602255565b6000546001600160a01b03163314610f715760405162461bcd60e51b815260040161093090612329565b606460145560c86013556000601555565b6000610b01338484611460565b6000546001600160a01b03163314610fb95760405162461bcd60e51b815260040161093090612329565b601391909155601491909155601555565b6000546001600160a01b03163314610ff45760405162461bcd60e51b815260040161093090612329565b601680546001600160a01b03199081166001600160a01b03978816179091556017805482169587169590951790945560188054851693861693909317909255601a80548416918516919091179055601980549092169216919091179055565b6000546001600160a01b0316331461107d5760405162461bcd60e51b815260040161093090612329565b6110856118c4565b565b6000610900611094610b08565b601f546110c1906110ba906002906110b4906001600160a01b0316610d6f565b90611362565b8590611362565b906113e4565b60008160000361113c576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015611115573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113991906123dc565b91505b60165460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303816000875af115801561118f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0191906123f5565b60195447906001600160a01b03166108fc60646111d085856123c5565b6111da91906123a3565b6040518115909202916000818181858888f19350505050158015611202573d6000803e3d6000fd5b505050565b6000546001600160a01b031633146112315760405162461bcd60e51b815260040161093090612329565b6001600160a01b0381166112965760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610930565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6016546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561132a573d6000803e3d6000fd5b50565b6000546001600160a01b031633146113575760405162461bcd60e51b815260040161093090612329565b601b91909155601c55565b60008260000361137457506000610900565b600061138083856123c5565b90508261138d85836123a3565b14610b015760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610930565b6000610b0183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611cab565b6000818484111561144a5760405162461bcd60e51b81526004016109309190611ff6565b5060006114578486612412565b95945050505050565b60235460009060ff161561148057611479848484611cd9565b9050610b01565b6001600160a01b03841660009081526001602052604090205460ff161580156114c257506001600160a01b03831660009081526001602052604090205460ff16155b1561157f57601f54600160a01b900460ff166115175760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610930565b601f54600160a81b900460ff161561157f576001600160a01b038316600090815260208052604090205460ff1661157f5760405162461bcd60e51b815260206004820152600c60248201526b139bdd081b185d5b98da195960a21b6044820152606401610930565b6001600160a01b03841660009081526001602052604090205460ff161580156115b157506001600160a01b0383163014155b80156115cb57506003546001600160a01b03848116911614155b80156115e55750601f546001600160a01b03848116911614155b80156115ff5750601a546001600160a01b03848116911614155b801561161957506017546001600160a01b03848116911614155b801561163e57506001600160a01b0383166000908152600b602052604090205460ff16155b156116d457600061164e84610d6f565b60075490915061165e8483612425565b11156116d25760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610930565b505b6116de8483611dad565b6116e6611e1a565b156116f3576116f36118c4565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260089091529190912054611745918490611426565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff168061179257506001600160a01b0384166000908152600a602052604090205460ff165b6117a6576117a1858486611e69565b6117a8565b825b6001600160a01b0385166000908152600860205260409020549091506117ce9082611865565b6001600160a01b0380861660008181526008602052604090819020939093559151908716906000805160206124d8833981519152906118109085815260200190565b60405180910390a3506001949350505050565b6000610b0183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611426565b6000806118728385612425565b905083811015610b015760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610930565b6023805460ff19166001179055601b54601c546000916118e391610993565b6118ef57600c546118f2565b60005b9050600061191660026110c16011546110c18660225461136290919063ffffffff16565b9050600061192f8260225461182390919063ffffffff16565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106119695761196961235e565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061199a5761199a61235e565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac947906119e4908690600090879030904290600401612438565b600060405180830381600087803b1580156119fe57600080fd5b505af1158015611a12573d6000803e3d6000fd5b505050506000611a2b824761182390919063ffffffff16565b90506000611a46611a3d8860026113e4565b60115490611823565b90506000611a5b60026110c18481878d611362565b90506000611a78836110c1600d548761136290919063ffffffff16565b90506000611a95846110c1600f548861136290919063ffffffff16565b90506000611ab2856110c1600e548961136290919063ffffffff16565b6017546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114611b04576040519150601f19603f3d011682016040523d82523d6000602084013e611b09565b606091505b50506018546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611b59576040519150601f19603f3d011682016040523d82523d6000602084013e611b5e565b606091505b50506019546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611bae576040519150601f19603f3d011682016040523d82523d6000602084013e611bb3565b606091505b5060009250508b159050611c9357601d5460165460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611c31573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611c5691906124a9565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506023805460ff1916905550505050505050505050565b60008183611ccc5760405162461bcd60e51b81526004016109309190611ff6565b50600061145784866123a3565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611d2a918490611426565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611d599083611865565b6001600160a01b0380851660008181526008602052604090819020939093559151908616906000805160206124d883398151915290611d9b9086815260200190565b60405180910390a35060019392505050565b60065481111580611dd657506001600160a01b0382166000908152600b602052604090205460ff165b611e165760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610930565b5050565b601f546000906001600160a01b03163314801590611e3b575060235460ff16155b8015611e49575060215460ff165b8015610b4c57505060225430600090815260086020526040902054101590565b601554601f54600091906001600160a01b0390811690841603611e8f5750601354611eaa565b601f546001600160a01b0390811690861603611eaa57506014545b6000611ed76012546064611ebe91906123c5565b6110c1846110b46011548a61136290919063ffffffff16565b90506000611ef66011546110c16010548561136290919063ffffffff16565b90506000611f048383611823565b30600090815260086020526040902054909150611f219082611865565b3060009081526008602052604080822092909255601a546001600160a01b031681522054611f4f9083611865565b601a546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b16916000805160206124d8833981519152910160405180910390a38115611fe057600554611fa99083611823565b6005556004546040518381526001600160a01b03918216918a16906000805160206124d88339815191529060200160405180910390a35b611fea8784611823565b98975050505050505050565b600060208083528351808285015260005b8181101561202357858101830151858201604001528201612007565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461205b57600080fd5b919050565b6000806040838503121561207357600080fd5b61207c83612044565b946020939093013593505050565b801515811461132a57600080fd5b6000602082840312156120aa57600080fd5b8135610b018161208a565b600080604083850312156120c857600080fd5b50508035926020909101359150565b6000806000604084860312156120ec57600080fd5b833567ffffffffffffffff8082111561210457600080fd5b818601915086601f83011261211857600080fd5b81358181111561212757600080fd5b8760208260051b850101111561213c57600080fd5b602092830195509350508401356121528161208a565b809150509250925092565b60008060006060848603121561217257600080fd5b61217b84612044565b925061218960208501612044565b9150604084013590509250925092565b600080604083850312156121ac57600080fd5b6121b583612044565b915060208301356121c58161208a565b809150509250929050565b6000602082840312156121e257600080fd5b610b0182612044565b6000602082840312156121fd57600080fd5b5035919050565b60008060008060008060c0878903121561221d57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b6000806040838503121561225a57600080fd5b823561207c8161208a565b60008060006060848603121561227a57600080fd5b505081359360208301359350604090920135919050565b600080600080600060a086880312156122a957600080fd5b6122b286612044565b94506122c060208701612044565b93506122ce60408701612044565b92506122dc60608701612044565b91506122ea60808701612044565b90509295509295909350565b6000806040838503121561230957600080fd5b61231283612044565b915061232060208401612044565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161239c5761239c612374565b5060010190565b6000826123c057634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761090057610900612374565b6000602082840312156123ee57600080fd5b5051919050565b60006020828403121561240757600080fd5b8151610b018161208a565b8181038181111561090057610900612374565b8082018082111561090057610900612374565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156124885784516001600160a01b031683529383019391830191600101612463565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156124be57600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212209d02b62def3bf0744c422342b8b9c2eb66aa0a2f41266a6e73963edbd866f9be64736f6c63430008110033

Deployed Bytecode Sourcemap

4997:14463:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6794:55;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;6794:55:0;;;;;;;;8335:80;;;;;;;;;;-1:-1:-1;8407:5:0;;;;;;;;;;;;-1:-1:-1;;;8407:5:0;;;;8335:80;;;;;;;:::i;6624:31::-;;;;;;;;;;-1:-1:-1;6624:31:0;;;;-1:-1:-1;;;6624:31:0;;;;;;;;;914:14:1;;907:22;889:41;;877:2;862:18;6624:31:0;749:187:1;8757:216:0;;;;;;;;;;-1:-1:-1;8757:216:0;;;;;:::i;:::-;;:::i;14953:138::-;;;;;;;;;;;;;:::i;:::-;;14459:92;;;;;;;;;;-1:-1:-1;14459:92:0;;;;;:::i;:::-;;:::i;19234:150::-;;;;;;;;;;-1:-1:-1;19234:150:0;;;;;:::i;:::-;;:::i;14559:203::-;;;;;;;;;;-1:-1:-1;14559:203:0;;;;;:::i;:::-;;:::i;8065:88::-;;;;;;;;;;-1:-1:-1;8138:12:0;;8065:88;;5978:90;;;;;;;;;;;;;;;;9275:370;;;;;;;;;;-1:-1:-1;9275:370:0;;;;;:::i;:::-;;:::i;18909:142::-;;;;;;;;;;;;;:::i;15250:100::-;;;;;;;;;;;;;:::i;14770:175::-;;;;;;;;;;;;;:::i;8159:80::-;;;;;;;;;;-1:-1:-1;8159:80:0;;5340:1;3230:36:1;;3218:2;3203:18;8159:80:0;3088:184:1;17414:124:0;;;;;;;;;;-1:-1:-1;17414:124:0;;;;;:::i;:::-;;:::i;8981:122::-;;;;;;;;;;-1:-1:-1;8981:122:0;;;;;:::i;:::-;;:::i;9657:223::-;;;;;;;;;;-1:-1:-1;9657:223:0;;;;;:::i;:::-;;:::i;17546:564::-;;;;;;;;;;-1:-1:-1;17546:564:0;;;;;:::i;:::-;;:::i;6757:30::-;;;;;;;;;;-1:-1:-1;6757:30:0;;;;;;;;6702:43;;;;;;;;;;-1:-1:-1;6702:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8505:105;;;;;;;;;;-1:-1:-1;8505:105:0;;;;;:::i;:::-;;:::i;3054:148::-;;;;;;;;;;;;;:::i;13682:133::-;;;;;;;;;;;;;:::i;5479:62::-;;;;;;;;;;;;;;;;9888:191;;;;;;;;;;-1:-1:-1;9888:191:0;;;;;:::i;:::-;;:::i;5413:59::-;;;;;;;;;;;;;;;;17235:171;;;;;;;;;;-1:-1:-1;17235:171:0;;;;;:::i;:::-;;:::i;8421:78::-;;;;;;;;;;-1:-1:-1;8473:7:0;2905:6;-1:-1:-1;;;;;2905:6:0;8421:78;;;-1:-1:-1;;;;;4665:32:1;;;4647:51;;4635:2;4620:18;8421:78:0;4501:203:1;2840:79:0;;;;;;;;;;-1:-1:-1;2878:7:0;2905:6;-1:-1:-1;;;;;2905:6:0;2840:79;;8245:84;;;;;;;;;;-1:-1:-1;8319:7:0;;;;;;;;;;;;-1:-1:-1;;;8319:7:0;;;;8245:84;;18564:153;;;;;;;;;;-1:-1:-1;18564:153:0;;;;;:::i;:::-;;:::i;15100:138::-;;;;;;;;;;;;;:::i;6592:19::-;;;;;;;;;;-1:-1:-1;6592:19:0;;;;-1:-1:-1;;;;;6592:19:0;;;9111:156;;;;;;;;;;-1:-1:-1;9111:156:0;;;;;:::i;:::-;;:::i;14244:206::-;;;;;;;;;;-1:-1:-1;14244:206:0;;;;;:::i;:::-;;:::i;2460:21::-;;;;;;;;;;-1:-1:-1;2460:21:0;;;;-1:-1:-1;;;;;2460:21:0;;;6665:30;;;;;;;;;;-1:-1:-1;6665:30:0;;;;-1:-1:-1;;;6665:30:0;;;;;;18118:438;;;;;;;;;;-1:-1:-1;18118:438:0;;;;;:::i;:::-;;:::i;13597:77::-;;;;;;;;;;;;;:::i;19059:167::-;;;;;;;;;;-1:-1:-1;19059:167:0;;;;;:::i;:::-;;:::i;13951:285::-;;;;;;;;;;-1:-1:-1;13951:285:0;;;;;:::i;:::-;;:::i;13390:198::-;;;;;;;;;;-1:-1:-1;13390:198:0;;;;;:::i;:::-;;:::i;8616:133::-;;;;;;;;;;-1:-1:-1;8616:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8718:19:0;;;8700:7;8718:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8616:133;3210:244;;;;;;;;;;-1:-1:-1;3210:244:0;;;;;:::i;:::-;;:::i;13823:120::-;;;;;;;;;;;;;:::i;18725:172::-;;;;;;;;;;-1:-1:-1;18725:172:0;;;;;:::i;:::-;;:::i;6522:24::-;;;;;;;;;;-1:-1:-1;6522:24:0;;;;-1:-1:-1;;;;;6522:24:0;;;8757:216;8861:10;8832:4;8849:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8849:32:0;;;;;;;;;;:41;;;8906:37;8832:4;;8849:32;;8906:37;;;;8884:6;160:25:1;;148:2;133:18;;14:177;8906:37:0;;;;;;;;-1:-1:-1;8961:4:0;8757:216;;;;;:::o;14953:138::-;2967:6;;-1:-1:-1;;;;;2967:6:0;2277:10;2967:22;2959:67;;;;-1:-1:-1;;;2959:67:0;;;;;;;:::i;:::-;;;;;;;;;15016:3:::1;15000:13;:19:::0;15047:3:::1;15030:14;:20:::0;-1:-1:-1;15061:18:0::1;:22:::0;14953:138::o;14459:92::-;2967:6;;-1:-1:-1;;;;;2967:6:0;2277:10;2967:22;2959:67;;;;-1:-1:-1;;;2959:67:0;;;;;;;:::i;:::-;14523:10:::1;:20:::0;;;::::1;;-1:-1:-1::0;;;14523:20:0::1;-1:-1:-1::0;;;;14523:20:0;;::::1;::::0;;;::::1;::::0;;14459:92::o;19234:150::-;19314:4;19370:6;19338:29;19358:8;19338:19;:29::i;:::-;:38;;19234:150;-1:-1:-1;;;19234:150:0:o;14559:203::-;2967:6;;-1:-1:-1;;;;;2967:6:0;2277:10;2967:22;2959:67;;;;-1:-1:-1;;;2959:67:0;;;;;;;:::i;:::-;14657:9:::1;14652:103;14668:20:::0;;::::1;14652:103;;;14737:6;14710:10;:24;14721:9;;14731:1;14721:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14710:24:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;14710:24:0;:33;;-1:-1:-1;;14710:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14690:3:::1;::::0;::::1;:::i;:::-;;;14652:103;;;;14559:203:::0;;;:::o;9275:370::-;-1:-1:-1;;;;;9395:19:0;;9375:4;9395:19;;;:11;:19;;;;;;;;9415:10;9395:31;;;;;;;;-1:-1:-1;;9395:52:0;9392:186;;9497:69;;;;;;;;;;;-1:-1:-1;;;9497:69:0;;;;;;;;-1:-1:-1;;;;;9497:19:0;;-1:-1:-1;9497:19:0;;;:11;:19;;;;;9517:10;9497:31;;;;;;;;;;:69;;9533:6;;9497:35;:69::i;:::-;-1:-1:-1;;;;;9463:19:0;;;;;;:11;:19;;;;;;;;9483:10;9463:31;;;;;;;:103;9392:186;9597:40;9611:6;9619:9;9630:6;9597:13;:40::i;:::-;9590:47;;9275:370;;;;;;:::o;18909:142::-;19037:4;;18962:7;;18989:54;;19027:15;;-1:-1:-1;;;;;19037:4:0;19027:9;:15::i;:::-;19016:4;;18989:33;;19006:15;;-1:-1:-1;;;;;19016:4:0;19006:9;:15::i;:::-;18989:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;18982:61;;18909:142;:::o;15250:100::-;2967:6;;-1:-1:-1;;;;;2967:6:0;2277:10;2967:22;2959:67;;;;-1:-1:-1;;;2959:67:0;;;;;;;:::i;:::-;15296:11:::1;:18:::0;;-1:-1:-1;;;;15325:17:0;-1:-1:-1;;;15325:17:0;;;15250:100::o;14770:175::-;2967:6;;-1:-1:-1;;;;;2967:6:0;2277:10;2967:22;2959:67;;;;-1:-1:-1;;;2959:67:0;;;;;;;:::i;:::-;14822:10:::1;:18:::0;;-1:-1:-1;;;;14822:18:0::1;::::0;;14867:3:::1;14851:13;:19:::0;14898:3:::1;14881:14;:20:::0;14933:4:::1;14822:10;14912:25:::0;14770:175::o;17414:124::-;2967:6;;-1:-1:-1;;;;;2967:6:0;2277:10;2967:22;2959:67;;;;-1:-1:-1;;;2959:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17496:24:0;;;::::1;;::::0;;;:16:::1;:24;::::0;;;;:34;;-1:-1:-1;;17496:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17414:124::o;8981:122::-;9036:4;9060:35;9068:7;-1:-1:-1;;9060:7:0;:35::i;9657:223::-;2967:6;;-1:-1:-1;;;;;2967:6:0;2277:10;2967:22;2959:67;;;;-1:-1:-1;;;2959:67:0;;;;;;;:::i;:::-;9780:4:::1;9765:12;;:19;;;;:::i;:::-;9746:15;;:38;;9738:47;;;::::0;::::1;;9850:4;9831:14;9816:12;;:29;;;;:::i;:::-;9815:39;;;;:::i;:::-;9797:15;:57:::0;-1:-1:-1;9657:223:0:o;17546:564::-;2967:6;;-1:-1:-1;;;;;2967:6:0;2277:10;2967:22;2959:67;;;;-1:-1:-1;;;2959:67:0;;;;;;;:::i;:::-;17729:12:::1;:28:::0;;;17768:7:::1;:18:::0;;;17797:12:::1;:28:::0;;;17836:6:::1;:16:::0;;;17863:7:::1;:18:::0;;;17903:73:::1;17873:8:::0;17903:59:::1;17845:7:::0;17903:59;17812:13;17903:59;17744:13;17778:8;17903:17:::1;:27::i;:::-;:31:::0;::::1;:46::i;:73::-;17892:8;:84:::0;17987:14:::1;:32:::0;;;18049:18:::1;18066:1;18004:15:::0;18049:18:::1;:::i;:::-;18038:8;;:29;18030:71;;;::::0;-1:-1:-1;;;18030:71:0;;7686:2:1;18030:71:0::1;::::0;::::1;7668:21:1::0;7725:2;7705:18;;;7698:30;7764:31;7744:18;;;7737:59;7813:18;;18030:71:0::1;7484:353:1::0;18030:71:0::1;17546:564:::0;;;;;;:::o;8505:105::-;-1:-1:-1;;;;;8589:18:0;8571:7;8589:18;;;:9;:18;;;;;;;8505:105::o;3054:148::-;2967:6;;-1:-1:-1;;;;;2967:6:0;2277:10;2967:22;2959:67;;;;-1:-1:-1;;;2959:67:0;;;;;;;:::i;:::-;3161:1:::1;3145:6:::0;;3124:40:::1;::::0;-1:-1:-1;;;;;3145:6:0;;::::1;::::0;3124:40:::1;::::0;3161:1;;3124:40:::1;3192:1;3175:19:::0;;-1:-1:-1;;;;;;3175:19:0::1;::::0;;3054:148::o;13682:133::-;2967:6;;-1:-1:-1;;;;;2967:6:0;2277:10;2967:22;2959:67;;;;-1:-1:-1;;;2959:67:0;;;;;;;:::i;:::-;13755:12:::1;::::0;13737:15:::1;:30:::0;;;13778:12:::1;:27:::0;13682:133::o;9888:191::-;2967:6;;-1:-1:-1;;;;;2967:6:0;2277:10;2967:22;2959:67;;;;-1:-1:-1;;;2959:67:0;;;;;;;:::i;:::-;10002:4:::1;9987:12;;:19;;;;:::i;:::-;9971:12;;:35;;9963:44;;;::::0;::::1;;10067:4;10050:12;10035;;:27;;;;:::i;:::-;10034:37;;;;:::i;:::-;10019:12;:52:::0;-1:-1:-1;9888:191:0:o;17235:171::-;2967:6;;-1:-1:-1;;;;;2967:6:0;2277:10;2967:22;2959:67;;;;-1:-1:-1;;;2959:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17323:20:0;;::::1;;::::0;;;:12:::1;:20;::::0;;;;;;;:30;;;::::1;;-1:-1:-1::0;;17323:30:0;;::::1;::::0;::::1;::::0;;;17364:16:::1;:24:::0;;;;;;:34;;;;::::1;;::::0;;17235:171::o;18564:153::-;2967:6;;-1:-1:-1;;;;;2967:6:0;2277:10;2967:22;2959:67;;;;-1:-1:-1;;;2959:67:0;;;;;;;:::i;:::-;18653:11:::1;:22:::0;;-1:-1:-1;;18653:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;18686:13:::1;:23:::0;18564:153::o;15100:138::-;2967:6;;-1:-1:-1;;;;;2967:6:0;2277:10;2967:22;2959:67;;;;-1:-1:-1;;;2959:67:0;;;;;;;:::i;:::-;15163:3:::1;15147:13;:19:::0;15194:3:::1;15177:14;:20:::0;-1:-1:-1;15208:18:0::1;:22:::0;15100:138::o;9111:156::-;9191:4;9215:44;9229:10;9241:9;9252:6;9215:13;:44::i;14244:206::-;2967:6;;-1:-1:-1;;;;;2967:6:0;2277:10;2967:22;2959:67;;;;-1:-1:-1;;;2959:67:0;;;;;;;:::i;:::-;14335:14:::1;:22:::0;;;;14368:13:::1;:20:::0;;;;14399:18:::1;:27:::0;14244:206::o;18118:438::-;2967:6;;-1:-1:-1;;;;;2967:6:0;2277:10;2967:22;2959:67;;;;-1:-1:-1;;;2959:67:0;;;;;;;:::i;:::-;18314:21:::1;:46:::0;;-1:-1:-1;;;;;;18314:46:0;;::::1;-1:-1:-1::0;;;;;18314:46:0;;::::1;;::::0;;;18371:20:::1;:44:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18426:14:::1;:32:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18469:15:::1;:34:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;18514:15:::1;:34:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;18118:438::o;13597:77::-;2967:6;;-1:-1:-1;;;;;2967:6:0;2277:10;2967:22;2959:67;;;;-1:-1:-1;;;2959:67:0;;;;;;;:::i;:::-;13650:10:::1;:8;:10::i;:::-;13597:77::o:0;19059:167::-;19127:7;19154:64;19195:22;:20;:22::i;:::-;19177:4;;19154:36;;19167:22;;19187:1;;19167:15;;-1:-1:-1;;;;;19177:4:0;19167:9;:15::i;:::-;:19;;:22::i;:::-;19154:8;;:12;:36::i;:::-;:40;;:64::i;13951:285::-;14033:4;14060:6;14070:1;14060:11;14057:95;;14096:44;;-1:-1:-1;;;14096:44:0;;14134:4;14096:44;;;4647:51:1;-1:-1:-1;;;;;14096:29:0;;;;;4620:18:1;;14096:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14087:53;;14057:95;14198:21;;14169:59;;-1:-1:-1;;;14169:59:0;;-1:-1:-1;;;;;14198:21:0;;;14169:59;;;8205:51:1;8272:18;;;8265:34;;;14169:28:0;;;;;;8178:18:1;;14169:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;13390:198::-;13519:15;;13479:21;;-1:-1:-1;;;;;13519:15:0;13511:69;13576:3;13545:28;13557:16;13479:21;13545:28;:::i;:::-;:34;;;;:::i;:::-;13511:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13448:140;13390:198;:::o;3210:244::-;2967:6;;-1:-1:-1;;;;;2967:6:0;2277:10;2967:22;2959:67;;;;-1:-1:-1;;;2959:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3299:22:0;::::1;3291:73;;;::::0;-1:-1:-1;;;3291:73:0;;8762:2:1;3291:73:0::1;::::0;::::1;8744:21:1::0;8801:2;8781:18;;;8774:30;8840:34;8820:18;;;8813:62;-1:-1:-1;;;8891:18:1;;;8884:36;8937:19;;3291:73:0::1;8560:402:1::0;3291:73:0::1;3401:6;::::0;;3380:38:::1;::::0;-1:-1:-1;;;;;3380:38:0;;::::1;::::0;3401:6;::::1;::::0;3380:38:::1;::::0;::::1;3429:6;:17:::0;;-1:-1:-1;;;;;;3429:17:0::1;-1:-1:-1::0;;;;;3429:17:0;;;::::1;::::0;;;::::1;::::0;;3210:244::o;13823:120::-;13879:21;;13871:62;;-1:-1:-1;;;;;13879:21:0;;;;13911;13871:62;;;;;13879:21;13871:62;13879:21;13871:62;13911:21;13879;13871:62;;;;;;;;;;;;;;;;;;;;;13823:120::o;18725:172::-;2967:6;;-1:-1:-1;;;;;2967:6:0;2277:10;2967:22;2959:67;;;;-1:-1:-1;;;2959:67:0;;;;;;;:::i;:::-;18812:15:::1;:25:::0;;;;18848:26:::1;:41:::0;18725:172::o;639:250::-;697:7;721:1;726;721:6;717:47;;-1:-1:-1;751:1:0;744:8;;717:47;776:9;788:5;792:1;788;:5;:::i;:::-;776:17;-1:-1:-1;821:1:0;812:5;816:1;776:17;812:5;:::i;:::-;:10;804:56;;;;-1:-1:-1;;;804:56:0;;9169:2:1;804:56:0;;;9151:21:1;9208:2;9188:18;;;9181:30;9247:34;9227:18;;;9220:62;-1:-1:-1;;;9298:18:1;;;9291:31;9339:19;;804:56:0;8967:397:1;895:132:0;953:7;980:39;984:1;987;980:39;;;;;;;;;;;;;;;;;:3;:39::i;441:192::-;527:7;563:12;555:6;;;;547:29;;;;-1:-1:-1;;;547:29:0;;;;;;;;:::i;:::-;-1:-1:-1;587:9:0;599:5;603:1;599;:5;:::i;:::-;587:17;441:192;-1:-1:-1;;;;;441:192:0:o;10095:1427::-;10207:6;;10187:4;;10207:6;;10204:63;;;10223:41;10238:6;10246:9;10257:6;10223:14;:41::i;:::-;10216:48;;;;10204:63;-1:-1:-1;;;;;10283:22:0;;;;;;:14;:22;;;;;;;;10282:23;:53;;;;-1:-1:-1;;;;;;10310:25:0;;;;;;:14;:25;;;;;;;;10309:26;10282:53;10279:245;;;10359:11;;-1:-1:-1;;;10359:11:0;;;;10351:43;;;;-1:-1:-1;;;10351:43:0;;9704:2:1;10351:43:0;;;9686:21:1;9743:2;9723:18;;;9716:30;-1:-1:-1;;;9762:18:1;;;9755:50;9822:18;;10351:43:0;9502:344:1;10351:43:0;10423:10;;-1:-1:-1;;;10423:10:0;;;;10420:93;;;-1:-1:-1;;;;;10461:21:0;;;;;;:10;:21;;;;;;;;10453:45;;;;-1:-1:-1;;;10453:45:0;;10053:2:1;10453:45:0;;;10035:21:1;10092:2;10072:18;;;10065:30;-1:-1:-1;;;10111:18:1;;;10104:42;10163:18;;10453:45:0;9851:336:1;10453:45:0;-1:-1:-1;;;;;10556:22:0;;;;;;:14;:22;;;;;;;;10555:23;:53;;;;-1:-1:-1;;;;;;10582:26:0;;10603:4;10582:26;;10555:53;:84;;;;-1:-1:-1;10634:4:0;;-1:-1:-1;;;;;10613:26:0;;;10634:4;;10613:26;;10555:84;:105;;;;-1:-1:-1;10656:4:0;;-1:-1:-1;;;;;10643:17:0;;;10656:4;;10643:17;;10555:105;:137;;;;-1:-1:-1;10677:15:0;;-1:-1:-1;;;;;10664:28:0;;;10677:15;;10664:28;;10555:137;:174;;;;-1:-1:-1;10709:20:0;;-1:-1:-1;;;;;10696:33:0;;;10709:20;;10696:33;;10555:174;:206;;;;-1:-1:-1;;;;;;10734:27:0;;;;;;:16;:27;;;;;;;;10733:28;10555:206;10551:398;;;10777:18;10798:20;10808:9;10798;:20::i;:::-;10866:15;;10777:41;;-1:-1:-1;10842:19:0;10855:6;10777:41;10842:19;:::i;:::-;10841:40;;10833:114;;;;-1:-1:-1;;;10833:114:0;;10524:2:1;10833:114:0;;;10506:21:1;10563:2;10543:18;;;10536:30;10602:34;10582:18;;;10575:62;10673:32;10653:18;;;10646:60;10723:19;;10833:114:0;10322:426:1;10833:114:0;10762:187;10551:398;11014:28;11027:6;11035;11014:12;:28::i;:::-;11059:16;:14;:16::i;:::-;11056:35;;;11078:10;:8;:10::i;:::-;11171:53;;;;;;;;;;;-1:-1:-1;;;11171:53:0;;;;;;;;-1:-1:-1;;;;;11171:17:0;;-1:-1:-1;11171:17:0;;;:9;:17;;;;;;;;:53;;11193:6;;11171:21;:53::i;:::-;-1:-1:-1;;;;;11151:17:0;;;;;;:9;:17;;;;;;;;:73;;;;11263:12;:20;;;;;;;;;:47;;-1:-1:-1;;;;;;11287:23:0;;;;;;:12;:23;;;;;;;;11263:47;11262:95;;11323:34;11331:6;11339;11347:9;11323:7;:34::i;:::-;11262:95;;;11314:6;11262:95;-1:-1:-1;;;;;11391:20:0;;;;;;:9;:20;;;;;;11237:120;;-1:-1:-1;11391:40:0;;11237:120;11391:24;:40::i;:::-;-1:-1:-1;;;;;11368:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11449:43;;;;;;-1:-1:-1;;;;;;;;;;;11449:43:0;;;11477:14;160:25:1;;148:2;133:18;;14:177;11449:43:0;;;;;;;;-1:-1:-1;11510:4:0;;10095:1427;-1:-1:-1;;;;10095:1427:0:o;299:136::-;357:7;384:43;388:1;391;384:43;;;;;;;;;;;;;;;;;:3;:43::i;112:181::-;170:7;;202:5;206:1;202;:5;:::i;:::-;190:17;;231:1;226;:6;;218:46;;;;-1:-1:-1;;;218:46:0;;10955:2:1;218:46:0;;;10937:21:1;10994:2;10974:18;;;10967:30;11033:29;11013:18;;;11006:57;11080:18;;218:46:0;10753:351:1;15366:1861:0;6897:6;:13;;-1:-1:-1;;6897:13:0;6906:4;6897:13;;;15461:15:::1;::::0;15478:26:::1;::::0;6897:6;;15445:60:::1;::::0;:15:::1;:60::i;:::-;:79;;15512:12;;15445:79;;;15508:1;15445:79;15415:109;;15535:23;15561:59;15618:1;15561:52;15604:8;;15561:38;15579:19;15561:13;;:17;;:38;;;;:::i;:59::-;15535:85;;15631:20;15654:34;15672:15;15654:13;;:17;;:34;;;;:::i;:::-;15725:16;::::0;;15739:1:::1;15725:16:::0;;;;;::::1;::::0;;15631:57;;-1:-1:-1;15701:21:0::1;::::0;15725:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15725:16:0::1;15701:40;;15770:4;15752;15757:1;15752:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15752:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;15796:4:::1;::::0;15786:7;;15796:4;::::1;::::0;15786;;15796;;15786:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;15786:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;15871:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;15871:188:0;;15837:21:::1;::::0;15871:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;15943:12;;15813:21:::1;::::0;15986:4;;16013::::1;::::0;16033:15:::1;::::0;15871:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16072:17;16092:40;16118:13;16092:21;:25;;:40;;;;:::i;:::-;16072:60:::0;-1:-1:-1;16145:19:0::1;16167:40;16180:26;:19:::0;16204:1:::1;16180:23;:26::i;:::-;16167:8;::::0;;:12:::1;:40::i;:::-;16145:62:::0;-1:-1:-1;16228:26:0::1;16257:58;16313:1;16257:51;16145:62:::0;16257:51;:9;16271:19;16257:13:::1;:34::i;:58::-;16228:87;;16326:26;16355:44;16387:11;16355:27;16369:12;;16355:9;:13;;:27;;;;:::i;:44::-;16326:73;;16410:21;16434:39;16461:11;16434:22;16448:7;;16434:9;:13;;:22;;;;:::i;:39::-;16410:63;;16484:20;16507:38;16533:11;16507:21;16521:6;;16507:9;:13;;:21;;;;:::i;:38::-;16587:20;::::0;16579:65:::1;::::0;16484:61;;-1:-1:-1;16559:15:0::1;::::0;-1:-1:-1;;;;;16587:20:0;;::::1;::::0;16621:18;;16559:15;16579:65;16559:15;16579:65;16621:18;16587:20;16579:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16679:14:0::1;::::0;16671:53:::1;::::0;16558:86;;-1:-1:-1;;;;;;16679:14:0::1;::::0;16707:12;;16671:53:::1;::::0;;;16707:12;16679:14;16671:53:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16759:15:0::1;::::0;16751:55:::1;::::0;16655:69;;-1:-1:-1;;;;;;16759:15:0::1;::::0;16788:13;;16751:55:::1;::::0;;;16788:13;16759:15;16751:55:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;16840:5:0::1;::::0;-1:-1:-1;;16861:19:0;;;-1:-1:-1;16858:362:0::1;;16896:6;::::0;17070:21:::1;::::0;16896:244:::1;::::0;-1:-1:-1;;;16896:244:0;;16972:4:::1;16896:244;::::0;::::1;12777:34:1::0;12827:18;;;12820:34;;;16896:6:0::1;12870:18:1::0;;;12863:34;;;12913:18;;;12906:34;-1:-1:-1;;;;;17070:21:0;;::::1;12956:19:1::0;;;12949:44;17110:15:0::1;13009:19:1::0;;;13002:35;16896:6:0;::::1;::::0;:22:::1;::::0;16926:18;;12711:19:1;;16896:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;17160:48:0::1;::::0;;13533:25:1;;;13589:2;13574:18;;13567:34;;;17160:48:0::1;::::0;-1:-1:-1;13506:18:1;17160:48:0::1;;;;;;;16858:362;-1:-1:-1::0;;6915:6:0;:14;;-1:-1:-1;;6915:14:0;;;-1:-1:-1;;;;;;;;;;15366:1861:0:o;1033:189::-;1119:7;1154:12;1147:5;1139:28;;;;-1:-1:-1;;;1139:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1178:9:0;1190:5;1194:1;1190;:5;:::i;11534:330::-;11664:53;;;;;;;;;;;-1:-1:-1;;;11664:53:0;;;;;;;;-1:-1:-1;;;;;11664:17:0;;11627:4;11664:17;;;:9;:17;;;;;;;:53;;11686:6;;11664:21;:53::i;:::-;-1:-1:-1;;;;;11644:17:0;;;;;;;:9;:17;;;;;;:73;;;;11751:20;;;;;;;:32;;11776:6;11751:24;:32::i;:::-;-1:-1:-1;;;;;11728:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11799:35;;;;;;-1:-1:-1;;;;;;;;;;;11799:35:0;;;11827:6;160:25:1;;148:2;133:18;;14:177;11799:35:0;;;;;;;;-1:-1:-1;11852:4:0;11534:330;;;;;:::o;11872:167::-;11969:12;;11959:6;:22;;:50;;;-1:-1:-1;;;;;;11985:24:0;;;;;;:16;:24;;;;;;;;11959:50;11951:80;;;;-1:-1:-1;;;11951:80:0;;13814:2:1;11951:80:0;;;13796:21:1;13853:2;13833:18;;;13826:30;-1:-1:-1;;;13872:18:1;;;13865:47;13929:18;;11951:80:0;13612:341:1;11951:80:0;11872:167;;:::o;13185:197::-;13272:4;;13234;;-1:-1:-1;;;;;13272:4:0;13258:10;:18;;;;:38;;-1:-1:-1;13290:6:0;;;;13289:7;13258:38;:62;;;;-1:-1:-1;13309:11:0;;;;13258:62;:116;;;;-1:-1:-1;;13361:13:0;;13351:4;13333:24;;;;:9;:24;;;;;;:41;;;13185:197::o;12170:1007::-;12307:18;;12354:4;;12256:7;;12307:18;-1:-1:-1;;;;;12354:4:0;;;12341:17;;;;12338:154;;-1:-1:-1;12388:14:0;;12338:154;;;12433:4;;-1:-1:-1;;;;;12433:4:0;;;12423:14;;;;12420:72;;-1:-1:-1;12467:13:0;;12420:72;12504:17;12524:62;12565:14;;12582:3;12565:20;;;;:::i;:::-;12524:36;12549:10;12524:20;12535:8;;12524:6;:10;;:20;;;;:::i;:62::-;12504:82;;12597:18;12618:36;12645:8;;12618:22;12632:7;;12618:9;:13;;:22;;;;:::i;:36::-;12597:57;-1:-1:-1;12665:22:0;12690:25;:9;12597:57;12690:13;:25::i;:::-;12773:4;12755:24;;;;:9;:24;;;;;;12665:50;;-1:-1:-1;12755:44:0;;12665:50;12755:28;:44::i;:::-;12746:4;12728:24;;;;:9;:24;;;;;;:71;;;;12849:15;;-1:-1:-1;;;;;12849:15:0;12839:26;;;;:42;;12870:10;12839:30;:42::i;:::-;12820:15;;-1:-1:-1;;;;;12820:15:0;;;12810:26;;;;:9;:26;;;;;;;;;:71;;;;12897:47;160:25:1;;;12922:4:0;;12897:47;;;;-1:-1:-1;;;;;;;;;;;12897:47:0;133:18:1;12897:47:0;;;;;;;12978:14;;12975:154;;13023:12;;:28;;13040:10;13023:16;:28::i;:::-;13008:12;:43;13088:4;;13071:34;;160:25:1;;;-1:-1:-1;;;;;13088:4:0;;;;13071:34;;;-1:-1:-1;;;;;;;;;;;13071:34:0;148:2:1;133:18;13071:34:0;;;;;;;12975:154;13148:21;:6;13159:9;13148:10;:21::i;:::-;13141:28;12170:1007;-1:-1:-1;;;;;;;;12170:1007:0:o;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;941:173::-;1009:20;;-1:-1:-1;;;;;1058:31:1;;1048:42;;1038:70;;1104:1;1101;1094:12;1038:70;941:173;;;:::o;1119:254::-;1187:6;1195;1248:2;1236:9;1227:7;1223:23;1219:32;1216:52;;;1264:1;1261;1254:12;1216:52;1287:29;1306:9;1287:29;:::i;:::-;1277:39;1363:2;1348:18;;;;1335:32;;-1:-1:-1;;;1119:254:1:o;1378:118::-;1464:5;1457:13;1450:21;1443:5;1440:32;1430:60;;1486:1;1483;1476:12;1501:241;1557:6;1610:2;1598:9;1589:7;1585:23;1581:32;1578:52;;;1626:1;1623;1616:12;1578:52;1665:9;1652:23;1684:28;1706:5;1684:28;:::i;1747:248::-;1815:6;1823;1876:2;1864:9;1855:7;1851:23;1847:32;1844:52;;;1892:1;1889;1882:12;1844:52;-1:-1:-1;;1915:23:1;;;1985:2;1970:18;;;1957:32;;-1:-1:-1;1747:248:1:o;2000:750::-;2092:6;2100;2108;2161:2;2149:9;2140:7;2136:23;2132:32;2129:52;;;2177:1;2174;2167:12;2129:52;2217:9;2204:23;2246:18;2287:2;2279:6;2276:14;2273:34;;;2303:1;2300;2293:12;2273:34;2341:6;2330:9;2326:22;2316:32;;2386:7;2379:4;2375:2;2371:13;2367:27;2357:55;;2408:1;2405;2398:12;2357:55;2448:2;2435:16;2474:2;2466:6;2463:14;2460:34;;;2490:1;2487;2480:12;2460:34;2545:7;2538:4;2528:6;2525:1;2521:14;2517:2;2513:23;2509:34;2506:47;2503:67;;;2566:1;2563;2556:12;2503:67;2597:4;2589:13;;;;-1:-1:-1;2621:6:1;-1:-1:-1;;2662:20:1;;2649:34;2692:28;2649:34;2692:28;:::i;:::-;2739:5;2729:15;;;2000:750;;;;;:::o;2755:328::-;2832:6;2840;2848;2901:2;2889:9;2880:7;2876:23;2872:32;2869:52;;;2917:1;2914;2907:12;2869:52;2940:29;2959:9;2940:29;:::i;:::-;2930:39;;2988:38;3022:2;3011:9;3007:18;2988:38;:::i;:::-;2978:48;;3073:2;3062:9;3058:18;3045:32;3035:42;;2755:328;;;;;:::o;3277:315::-;3342:6;3350;3403:2;3391:9;3382:7;3378:23;3374:32;3371:52;;;3419:1;3416;3409:12;3371:52;3442:29;3461:9;3442:29;:::i;:::-;3432:39;;3521:2;3510:9;3506:18;3493:32;3534:28;3556:5;3534:28;:::i;:::-;3581:5;3571:15;;;3277:315;;;;;:::o;3597:186::-;3656:6;3709:2;3697:9;3688:7;3684:23;3680:32;3677:52;;;3725:1;3722;3715:12;3677:52;3748:29;3767:9;3748:29;:::i;3788:180::-;3847:6;3900:2;3888:9;3879:7;3875:23;3871:32;3868:52;;;3916:1;3913;3906:12;3868:52;-1:-1:-1;3939:23:1;;3788:180;-1:-1:-1;3788:180:1:o;3973:523::-;4077:6;4085;4093;4101;4109;4117;4170:3;4158:9;4149:7;4145:23;4141:33;4138:53;;;4187:1;4184;4177:12;4138:53;-1:-1:-1;;4210:23:1;;;4280:2;4265:18;;4252:32;;-1:-1:-1;4331:2:1;4316:18;;4303:32;;4382:2;4367:18;;4354:32;;-1:-1:-1;4433:3:1;4418:19;;4405:33;;-1:-1:-1;4485:3:1;4470:19;4457:33;;-1:-1:-1;3973:523:1;-1:-1:-1;3973:523:1:o;4709:309::-;4774:6;4782;4835:2;4823:9;4814:7;4810:23;4806:32;4803:52;;;4851:1;4848;4841:12;4803:52;4890:9;4877:23;4909:28;4931:5;4909:28;:::i;5023:316::-;5100:6;5108;5116;5169:2;5157:9;5148:7;5144:23;5140:32;5137:52;;;5185:1;5182;5175:12;5137:52;-1:-1:-1;;5208:23:1;;;5278:2;5263:18;;5250:32;;-1:-1:-1;5329:2:1;5314:18;;;5301:32;;5023:316;-1:-1:-1;5023:316:1:o;5344:484::-;5439:6;5447;5455;5463;5471;5524:3;5512:9;5503:7;5499:23;5495:33;5492:53;;;5541:1;5538;5531:12;5492:53;5564:29;5583:9;5564:29;:::i;:::-;5554:39;;5612:38;5646:2;5635:9;5631:18;5612:38;:::i;:::-;5602:48;;5669:38;5703:2;5692:9;5688:18;5669:38;:::i;:::-;5659:48;;5726:38;5760:2;5749:9;5745:18;5726:38;:::i;:::-;5716:48;;5783:39;5817:3;5806:9;5802:19;5783:39;:::i;:::-;5773:49;;5344:484;;;;;;;;:::o;5833:260::-;5901:6;5909;5962:2;5950:9;5941:7;5937:23;5933:32;5930:52;;;5978:1;5975;5968:12;5930:52;6001:29;6020:9;6001:29;:::i;:::-;5991:39;;6049:38;6083:2;6072:9;6068:18;6049:38;:::i;:::-;6039:48;;5833:260;;;;;:::o;6324:356::-;6526:2;6508:21;;;6545:18;;;6538:30;6604:34;6599:2;6584:18;;6577:62;6671:2;6656:18;;6324:356::o;6685:127::-;6746:10;6741:3;6737:20;6734:1;6727:31;6777:4;6774:1;6767:15;6801:4;6798:1;6791:15;6817:127;6878:10;6873:3;6869:20;6866:1;6859:31;6909:4;6906:1;6899:15;6933:4;6930:1;6923:15;6949:135;6988:3;7009:17;;;7006:43;;7029:18;;:::i;:::-;-1:-1:-1;7076:1:1;7065:13;;6949:135::o;7089:217::-;7129:1;7155;7145:132;;7199:10;7194:3;7190:20;7187:1;7180:31;7234:4;7231:1;7224:15;7262:4;7259:1;7252:15;7145:132;-1:-1:-1;7291:9:1;;7089:217::o;7311:168::-;7384:9;;;7415;;7432:15;;;7426:22;;7412:37;7402:71;;7453:18;;:::i;7842:184::-;7912:6;7965:2;7953:9;7944:7;7940:23;7936:32;7933:52;;;7981:1;7978;7971:12;7933:52;-1:-1:-1;8004:16:1;;7842:184;-1:-1:-1;7842:184:1:o;8310:245::-;8377:6;8430:2;8418:9;8409:7;8405:23;8401:32;8398:52;;;8446:1;8443;8436:12;8398:52;8478:9;8472:16;8497:28;8519:5;8497:28;:::i;9369:128::-;9436:9;;;9457:11;;;9454:37;;;9471:18;;:::i;10192:125::-;10257:9;;;10278:10;;;10275:36;;;10291:18;;:::i;11241:980::-;11503:4;11551:3;11540:9;11536:19;11582:6;11571:9;11564:25;11608:2;11646:6;11641:2;11630:9;11626:18;11619:34;11689:3;11684:2;11673:9;11669:18;11662:31;11713:6;11748;11742:13;11779:6;11771;11764:22;11817:3;11806:9;11802:19;11795:26;;11856:2;11848:6;11844:15;11830:29;;11877:1;11887:195;11901:6;11898:1;11895:13;11887:195;;;11966:13;;-1:-1:-1;;;;;11962:39:1;11950:52;;12057:15;;;;12022:12;;;;11998:1;11916:9;11887:195;;;-1:-1:-1;;;;;;;12138:32:1;;;;12133:2;12118:18;;12111:60;-1:-1:-1;;;12202:3:1;12187:19;12180:35;12099:3;11241:980;-1:-1:-1;;;11241:980:1:o;13048:306::-;13136:6;13144;13152;13205:2;13193:9;13184:7;13180:23;13176:32;13173:52;;;13221:1;13218;13211:12;13173:52;13250:9;13244:16;13234:26;;13300:2;13289:9;13285:18;13279:25;13269:35;;13344:2;13333:9;13329:18;13323:25;13313:35;;13048:306;;;;;:::o

Swarm Source

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