ETH Price: $2,739.93 (-0.52%)

Token

WITCOIN (WTC)
 

Overview

Max Total Supply

993,289,632,454,596.913897617 WTC

Holders

176

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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:
WITCOIN

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-23
*/

/* 

https://x.com/witcoinerc
https://t.me/WitcoinERC
https://witcoin.tech/

The Next Generation User Friendly Passive Miner Accessible to All

Based off the Goerli Testnet Mining Protocol, users will mine via there PC / Mobile for ease of use. No fancy equipment needed, even the slowest machines can still earn.

*/


// SPDX-License-Identifier: Unlicensed


pragma solidity 0.8.21;

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

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

    string constant _name = "WITCOIN";
    string constant _symbol = "WTC";
    uint8 constant _decimals = 9; 
  

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

    uint256 public _maxTxAmount = _totalSupply.mul(1).div(100);
    uint256 public _maxWalletToken = _totalSupply.mul(1).div(100);

    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    = 1;
    uint256 private utilityFee      = 1;
    uint256 private teamFee         = 1; 
    uint256 private miningFee       = 0;
    uint256 public totalFee         = teamFee + marketingFee + liquidityFee + utilityFee + miningFee;
    uint256 private feeDenominator  = 100;

    uint256 sellMultiplier = 500;
    uint256 buyMultiplier = 400;
    uint256 transferMultiplier = 100; 

    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private utilityFeeReceiver;
    address private teamFeeReceiver;
    address private miningFeeReceiver;
    
    uint256 targetLiquidity = 20;
    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 * 60 / 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[utilityFeeReceiver] = true;
            
        isTxLimitexcused[msg.sender] = true;
        isTxLimitexcused[pair] = true;
        isTxLimitexcused[utilityFeeReceiver] = true;
        isTxLimitexcused[marketingFeeReceiver] = true;
        isTxLimitexcused[address(this)] = true;
        
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0x79bE66A25AD406c173fe0D9A4333a93531003853;
        utilityFeeReceiver = 0x79bE66A25AD406c173fe0D9A4333a93531003853;
        teamFeeReceiver = msg.sender;
        miningFeeReceiver = 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 _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 != miningFeeReceiver && 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 miningTokens = feeAmount.mul(miningFee).div(totalFee);
        uint256 contractTokens = feeAmount.sub(miningTokens);

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

        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 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 addKOL(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 = 750;
        transferMultiplier = 1000;
    }

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

     function stepTwo() public onlyOwner {
        buyMultiplier = 100;
        sellMultiplier = 100;
        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 amountETHutility = amountETH.mul(utilityFee).div(totalETHFee);

        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}("");
        (tmpSuccess,) = payable(utilityFeeReceiver).call{value: amountETHutility}("");
        (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 _utilityFee, uint256 _miningFee, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        teamFee = _teamFee;
        marketingFee = _marketingFee;
        utilityFee = _utilityFee;
        miningFee = _miningFee;
        totalFee = _liquidityFee.add(_teamFee).add(_marketingFee).add(_utilityFee).add(_miningFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator / 5, "Fees can not be more than 20%"); 
    }

    function updateTaxWallets(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _utilityFeeReceiver, address _miningFeeReceiver, address _teamFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        utilityFeeReceiver = _utilityFeeReceiver;
        miningFeeReceiver = _miningFeeReceiver;
        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":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"addKOL","outputs":[],"stateMutability":"nonpayable","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":[],"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":"_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":"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":"_utilityFee","type":"uint256"},{"internalType":"uint256","name":"_miningFee","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":"_utilityFeeReceiver","type":"address"},{"internalType":"address","name":"_miningFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"}],"name":"updateTaxWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326009600a620006a6565b620000459066038d7ea4c68000620006b6565b600581905562000066906064906200005f90600162000483565b9062000516565b60065560055462000081906064906200005f90600162000483565b6007556001600c819055600d819055600e819055600f8190555f60108190559080620000ae8180620006d0565b620000ba9190620006d0565b620000c69190620006d0565b620000d29190620006d0565b601155606460128190556101f460135561019060149081556015829055601b55601c55601f805461ffff60a01b191690556021805460ff191660011790556005546103e8906200012490603c620006b6565b620001309190620006e6565b6022553480156200013f575f80fd5b505f80546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa158015620001fc573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000222919062000706565b600280546001600160a01b0319166001600160a01b03928316179055601d546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa1580156200027f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002a5919062000706565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303815f875af1158015620002f4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200031a919062000706565b601f80546001600160a01b039283166001600160a01b031991821681178355601e805483169091179055305f818152600960209081526040808320601d548816845282528083205f19905533808452600a8352818420805460ff199081166001908117909255601880548b1687528487208054831684179055838752600b8652848720805483168417905598548a168652838620805482168317905588548a1686528386208054821683179055601780548b16875284872080548316841790559686528386208054909116909117905560168054871682179055845486167379be66a25ad406c173fe0d9a4333a935310038539081179095558654861690941790955560198054851684179055600354601a80549095169616959095179092556005548183526008855283832081905592519283529290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36200077b565b5f825f036200049457505f62000510565b5f620004a18385620006b6565b905082620004b08583620006e6565b146200050d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f6200050d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200055f60201b60201c565b5f8183620005825760405162461bcd60e51b81526004016200050491906200072e565b505f620005908486620006e6565b95945050505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620005ed57815f1904821115620005d157620005d162000599565b80851615620005df57918102915b93841c9390800290620005b2565b509250929050565b5f82620006055750600162000510565b816200061357505f62000510565b81600181146200062c5760028114620006375762000657565b600191505062000510565b60ff8411156200064b576200064b62000599565b50506001821b62000510565b5060208310610133831016604e8410600b84101617156200067c575081810a62000510565b620006888383620005ad565b805f19048211156200069e576200069e62000599565b029392505050565b5f6200050d60ff841683620005f5565b808202811582820484141762000510576200051062000599565b8082018082111562000510576200051062000599565b5f826200070157634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121562000717575f80fd5b81516001600160a01b03811681146200050d575f80fd5b5f6020808352835180828501525f5b818110156200075b578581018301518582016040015282016200073d565b505f604082860101526040601f19601f8301168501019250505092915050565b61235f80620007895f395ff3fe608060405260043610610278575f3560e01c8063751039fc1161014a578063a983e4c8116100be578063d78e139d11610078578063d78e139d1461074d578063dd62ed3e1461076c578063f2fde38b146107b0578063f4293890146107cf578063f785ccd0146107e3578063f887ea4014610802575f80fd5b8063a983e4c814610693578063b2bdfa7b146106b2578063b37dd690146106d0578063ca3e4d05146106f0578063d51ed1c81461070f578063d6aeedca1461072e575f80fd5b80638da5cb5b1161010f5780638da5cb5b146105db57806395d89b41146105f757806398f4efc614610622578063a67931d314610641578063a8aa1b3114610655578063a9059cbb14610674575f80fd5b8063751039fc1461054e57806378109e54146105625780637d1db4a5146105775780637fa4a5bb1461058c578063893d20e8146105ab575f80fd5b80632c28f579116101ec57806361a077b2116101a657806361a077b2146104825780636cd333fd146104a15780636ddd1713146104c05780637007546b146104d957806370a0823114610506578063715018a61461053a575f80fd5b80632c28f579146103e25780632e5b4c43146103f6578063313ce5671461040a5780633ee6daf714610425578063571ac8b0146104445780635accb59714610463575f80fd5b806311107c681161023d57806311107c68146103485780631161ae391461036757806318160ddd146103865780631df4ccfc1461039a57806323b872dd146103af5780632b112e49146103ce575f80fd5b80630445b6671461028357806306fdde03146102ab57806308fd3d05146102e3578063095ea7b3146103135780630b3cbe3614610332575f80fd5b3661027f57005b5f80fd5b34801561028e575f80fd5b5061029860225481565b6040519081526020015b60405180910390f35b3480156102b6575f80fd5b506040805180820190915260078152662ba4aa21a7a4a760c91b60208201525b6040516102a29190611e63565b3480156102ee575f80fd5b50601f5461030390600160a01b900460ff1681565b60405190151581526020016102a2565b34801561031e575f80fd5b5061030361032d366004611ec9565b610821565b34801561033d575f80fd5b5061034661088d565b005b348015610353575f80fd5b50610346610362366004611efe565b6108d0565b348015610372575f80fd5b50610303610381366004611f19565b610917565b348015610391575f80fd5b50600554610298565b3480156103a5575f80fd5b5061029860115481565b3480156103ba575f80fd5b506103036103c9366004611f39565b61092a565b3480156103d9575f80fd5b506102986109e8565b3480156103ed575f80fd5b50610346610a38565b348015610401575f80fd5b50610346610a78565b348015610415575f80fd5b50604051600981526020016102a2565b348015610430575f80fd5b5061034661043f366004611f72565b610ac2565b34801561044f575f80fd5b5061030361045e366004611fa7565b610b15565b34801561046e575f80fd5b5061034661047d366004611fc0565b610b21565b34801561048d575f80fd5b5061034661049c366004611fd7565b610b88565b3480156104ac575f80fd5b506103466104bb366004612016565b610c4d565b3480156104cb575f80fd5b506021546103039060ff1681565b3480156104e4575f80fd5b506103036104f3366004611fa7565b602080525f908152604090205460ff1681565b348015610511575f80fd5b50610298610520366004611fa7565b6001600160a01b03165f9081526008602052604090205490565b348015610545575f80fd5b50610346610ce8565b348015610559575f80fd5b50610346610d59565b34801561056d575f80fd5b5061029860075481565b348015610582575f80fd5b5061029860065481565b348015610597575f80fd5b506103466105a6366004611f72565b610d8f565b3480156105b6575f80fd5b505f546001600160a01b03165b6040516001600160a01b0390911681526020016102a2565b3480156105e6575f80fd5b505f546001600160a01b03166105c3565b348015610602575f80fd5b5060408051808201909152600381526257544360e81b60208201526102d6565b34801561062d575f80fd5b5061034661063c366004612095565b610df5565b34801561064c575f80fd5b50610346610e35565b348015610660575f80fd5b50601f546105c3906001600160a01b031681565b34801561067f575f80fd5b5061030361068e366004611ec9565b610e6e565b34801561069e575f80fd5b506103466106ad3660046120b1565b610e7a565b3480156106bd575f80fd5b505f546105c3906001600160a01b031681565b3480156106db575f80fd5b50601f5461030390600160a81b900460ff1681565b3480156106fb575f80fd5b5061034661070a3660046120da565b610eb4565b34801561071a575f80fd5b50610298610729366004611fc0565b610f3c565b348015610739575f80fd5b50610303610748366004611ec9565b610f81565b348015610758575f80fd5b50610346610767366004611fc0565b611066565b348015610777575f80fd5b5061029861078636600461213b565b6001600160a01b039182165f90815260096020908152604080832093909416825291909152205490565b3480156107bb575f80fd5b506103466107ca366004611fa7565b6110b7565b3480156107da575f80fd5b5061034661119e565b3480156107ee575f80fd5b506103466107fd366004611f19565b6111d7565b34801561080d575f80fd5b50601d546105c3906001600160a01b031681565b335f8181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061087b9086815260200190565b60405180910390a35060015b92915050565b5f546001600160a01b031633146108bf5760405162461bcd60e51b81526004016108b69061216c565b60405180910390fd5b60c86014556101906013555f601555565b5f546001600160a01b031633146108f95760405162461bcd60e51b81526004016108b69061216c565b601f8054911515600160a81b0260ff60a81b19909216919091179055565b5f8261092283610f3c565b119392505050565b6001600160a01b0383165f9081526009602090815260408083203384529091528120545f19146109d3576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f9081526009825283812033825290915291909120546109af91849061120b565b6001600160a01b0385165f9081526009602090815260408083203384529091529020555b6109de848484611243565b90505b9392505050565b6004546001600160a01b03165f90815260086020526040812054610a33906003546001600160a01b03165f90815260086020526040902054610a2d9060055490611604565b90611604565b905090565b5f546001600160a01b03163314610a615760405162461bcd60e51b81526004016108b69061216c565b601f805461ffff60a01b191661010160a01b179055565b5f546001600160a01b03163314610aa15760405162461bcd60e51b81526004016108b69061216c565b601f805460ff60a81b191690556101f46014556102ee6013556103e8601555565b5f546001600160a01b03163314610aeb5760405162461bcd60e51b81526004016108b69061216c565b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b5f610887825f19610821565b5f546001600160a01b03163314610b4a5760405162461bcd60e51b81526004016108b69061216c565b6103e8600554610b5a91906121b5565b6007541015610b67575f80fd5b6103e881600554610b7891906121d4565b610b8291906121b5565b60075550565b5f546001600160a01b03163314610bb15760405162461bcd60e51b81526004016108b69061216c565b600c869055600f859055600d849055600e8390556010829055610be282610bdc858188818c8c611645565b90611645565b6011556012819055610bf56005826121b5565b60115410610c455760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e2032302500000060448201526064016108b6565b505050505050565b5f546001600160a01b03163314610c765760405162461bcd60e51b81526004016108b69061216c565b5f5b82811015610ce2578160205f868685818110610c9657610c966121eb565b9050602002016020810190610cab9190611fa7565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055610cdb816121ff565b9050610c78565b50505050565b5f546001600160a01b03163314610d115760405162461bcd60e51b81526004016108b69061216c565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314610d825760405162461bcd60e51b81526004016108b69061216c565b6005546007819055600655565b5f546001600160a01b03163314610db85760405162461bcd60e51b81526004016108b69061216c565b6001600160a01b039091165f908152600a60209081526040808320805494151560ff199586168117909155600b9092529091208054909216179055565b5f546001600160a01b03163314610e1e5760405162461bcd60e51b81526004016108b69061216c565b6021805460ff191692151592909217909155602255565b5f546001600160a01b03163314610e5e5760405162461bcd60e51b81526004016108b69061216c565b606460148190556013555f601555565b5f6109e1338484611243565b5f546001600160a01b03163314610ea35760405162461bcd60e51b81526004016108b69061216c565b601391909155601491909155601555565b5f546001600160a01b03163314610edd5760405162461bcd60e51b81526004016108b69061216c565b601680546001600160a01b03199081166001600160a01b03978816179091556017805482169587169590951790945560188054851693861693909317909255601a80548416918516919091179055601980549092169216919091179055565b5f610887610f486109e8565b601f546001600160a01b03165f90815260086020526040902054610f7b90610f74906002905b906116a3565b85906116a3565b90611721565b5f815f03610ff2576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610fcb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fef9190612217565b91505b60165460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303815f875af1158015611042573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109e1919061222e565b60195447906001600160a01b03166108fc606461108385856121d4565b61108d91906121b5565b6040518115909202915f818181858888f193505050501580156110b2573d5f803e3d5ffd5b505050565b5f546001600160a01b031633146110e05760405162461bcd60e51b81526004016108b69061216c565b6001600160a01b0381166111455760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108b6565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6016546040516001600160a01b03909116904780156108fc02915f818181858888f193505050501580156111d4573d5f803e3d5ffd5b50565b5f546001600160a01b031633146112005760405162461bcd60e51b81526004016108b69061216c565b601b91909155601c55565b5f818484111561122e5760405162461bcd60e51b81526004016108b69190611e63565b505f61123a8486612249565b95945050505050565b6023545f9060ff16156112625761125b848484611762565b90506109e1565b6001600160a01b0384165f9081526001602052604090205460ff161580156112a257506001600160a01b0383165f9081526001602052604090205460ff16155b1561135e57601f54600160a01b900460ff166112f75760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016108b6565b601f54600160a81b900460ff161561135e576001600160a01b0383165f90815260208052604090205460ff1661135e5760405162461bcd60e51b815260206004820152600c60248201526b139bdd081b185d5b98da195960a21b60448201526064016108b6565b6001600160a01b0384165f9081526001602052604090205460ff1615801561138f57506001600160a01b0383163014155b80156113a957506003546001600160a01b03848116911614155b80156113c35750601f546001600160a01b03848116911614155b80156113dd5750601a546001600160a01b03848116911614155b80156113f757506017546001600160a01b03848116911614155b801561141b57506001600160a01b0383165f908152600b602052604090205460ff16155b156114bb576001600160a01b0383165f90815260086020526040902054600754611445848361225c565b11156114b95760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016108b6565b505b6114c58483611832565b6114cd61189e565b156114da576114da6118eb565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f9081526008909152919091205461152b91849061120b565b6001600160a01b0385165f90815260086020908152604080832093909355600a90529081205460ff168061157657506001600160a01b0384165f908152600a602052604090205460ff165b61158a57611585858486611cb3565b61158c565b825b6001600160a01b0385165f908152600860205260409020549091506115b19082611645565b6001600160a01b038086165f8181526008602052604090819020939093559151908716905f8051602061230a833981519152906115f19085815260200190565b60405180910390a3506001949350505050565b5f6109e183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061120b565b5f80611651838561225c565b9050838110156109e15760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108b6565b5f825f036116b257505f610887565b5f6116bd83856121d4565b9050826116ca85836121b5565b146109e15760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108b6565b5f6109e183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e37565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f9081526008909152918220546117b291849061120b565b6001600160a01b038086165f9081526008602052604080822093909355908516815220546117e09083611645565b6001600160a01b038085165f8181526008602052604090819020939093559151908616905f8051602061230a833981519152906118209086815260200190565b60405180910390a35060019392505050565b6006548111158061185a57506001600160a01b0382165f908152600b602052604090205460ff165b61189a5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016108b6565b5050565b601f545f906001600160a01b031633148015906118be575060235460ff16155b80156118cc575060215460ff165b8015610a33575050602254305f90815260086020526040902054101590565b6023805460ff19166001179055601b54601c545f9161190991610917565b61191557600c54611917565b5f5b90505f61193a6002610f7b601154610f7b866022546116a390919063ffffffff16565b90505f6119528260225461160490919063ffffffff16565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f8151811061198a5761198a6121eb565b6001600160a01b0392831660209182029290920101526002548251911690829060019081106119bb576119bb6121eb565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac94790611a049086905f9087903090429060040161226f565b5f604051808303815f87803b158015611a1b575f80fd5b505af1158015611a2d573d5f803e3d5ffd5b505050505f611a45824761160490919063ffffffff16565b90505f611a5f611a56886002611721565b60115490611604565b90505f611a736002610f7b8481878d6116a3565b90505f611a8f83610f7b600d54876116a390919063ffffffff16565b90505f611aab84610f7b600f54886116a390919063ffffffff16565b90505f611ac785610f7b600e54896116a390919063ffffffff16565b6017546040519192505f916001600160a01b039091169085908381818185875af1925050503d805f8114611b16576040519150601f19603f3d011682016040523d82523d5f602084013e611b1b565b606091505b50506018546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114611b68576040519150601f19603f3d011682016040523d82523d5f602084013e611b6d565b606091505b50506019546040519192506001600160a01b03169084905f81818185875af1925050503d805f8114611bba576040519150601f19603f3d011682016040523d82523d5f602084013e611bbf565b606091505b505f9250508b159050611c9b57601d5460165460405163f305d71960e01b8152306004820152602481018e90525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611c39573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611c5e91906122de565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506023805460ff1916905550505050505050505050565b601554601f545f91906001600160a01b0390811690841603611cd85750601354611cf3565b601f546001600160a01b0390811690861603611cf357506014545b5f611d1f6012546064611d0691906121d4565b610f7b84610f6e6011548a6116a390919063ffffffff16565b90505f611d3d601154610f7b601054856116a390919063ffffffff16565b90505f611d4a8383611604565b305f90815260086020526040902054909150611d669082611645565b305f9081526008602052604080822092909255601a546001600160a01b031681522054611d939083611645565b601a546001600160a01b039081165f9081526008602090815260409182902093909355518381523092918b16915f8051602061230a833981519152910160405180910390a38115611e2157600554611deb9083611604565b6005556004546040518381526001600160a01b03918216918a16905f8051602061230a8339815191529060200160405180910390a35b611e2b8784611604565b98975050505050505050565b5f8183611e575760405162461bcd60e51b81526004016108b69190611e63565b505f61123a84866121b5565b5f6020808352835180828501525f5b81811015611e8e57858101830151858201604001528201611e72565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611ec4575f80fd5b919050565b5f8060408385031215611eda575f80fd5b611ee383611eae565b946020939093013593505050565b80151581146111d4575f80fd5b5f60208284031215611f0e575f80fd5b81356109e181611ef1565b5f8060408385031215611f2a575f80fd5b50508035926020909101359150565b5f805f60608486031215611f4b575f80fd5b611f5484611eae565b9250611f6260208501611eae565b9150604084013590509250925092565b5f8060408385031215611f83575f80fd5b611f8c83611eae565b91506020830135611f9c81611ef1565b809150509250929050565b5f60208284031215611fb7575f80fd5b6109e182611eae565b5f60208284031215611fd0575f80fd5b5035919050565b5f805f805f8060c08789031215611fec575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b5f805f60408486031215612028575f80fd5b833567ffffffffffffffff8082111561203f575f80fd5b818601915086601f830112612052575f80fd5b813581811115612060575f80fd5b8760208260051b8501011115612074575f80fd5b6020928301955093505084013561208a81611ef1565b809150509250925092565b5f80604083850312156120a6575f80fd5b8235611ee381611ef1565b5f805f606084860312156120c3575f80fd5b505081359360208301359350604090920135919050565b5f805f805f60a086880312156120ee575f80fd5b6120f786611eae565b945061210560208701611eae565b935061211360408701611eae565b925061212160608701611eae565b915061212f60808701611eae565b90509295509295909350565b5f806040838503121561214c575f80fd5b61215583611eae565b915061216360208401611eae565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f826121cf57634e487b7160e01b5f52601260045260245ffd5b500490565b8082028115828204841417610887576108876121a1565b634e487b7160e01b5f52603260045260245ffd5b5f60018201612210576122106121a1565b5060010190565b5f60208284031215612227575f80fd5b5051919050565b5f6020828403121561223e575f80fd5b81516109e181611ef1565b81810381811115610887576108876121a1565b80820180821115610887576108876121a1565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156122bd5784516001600160a01b031683529383019391830191600101612298565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f606084860312156122f0575f80fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212208728e854582562f6da76090e2db7dbd98b6f40069ca793c222dca7a13dcdac1264736f6c63430008150033

Deployed Bytecode

0x608060405260043610610278575f3560e01c8063751039fc1161014a578063a983e4c8116100be578063d78e139d11610078578063d78e139d1461074d578063dd62ed3e1461076c578063f2fde38b146107b0578063f4293890146107cf578063f785ccd0146107e3578063f887ea4014610802575f80fd5b8063a983e4c814610693578063b2bdfa7b146106b2578063b37dd690146106d0578063ca3e4d05146106f0578063d51ed1c81461070f578063d6aeedca1461072e575f80fd5b80638da5cb5b1161010f5780638da5cb5b146105db57806395d89b41146105f757806398f4efc614610622578063a67931d314610641578063a8aa1b3114610655578063a9059cbb14610674575f80fd5b8063751039fc1461054e57806378109e54146105625780637d1db4a5146105775780637fa4a5bb1461058c578063893d20e8146105ab575f80fd5b80632c28f579116101ec57806361a077b2116101a657806361a077b2146104825780636cd333fd146104a15780636ddd1713146104c05780637007546b146104d957806370a0823114610506578063715018a61461053a575f80fd5b80632c28f579146103e25780632e5b4c43146103f6578063313ce5671461040a5780633ee6daf714610425578063571ac8b0146104445780635accb59714610463575f80fd5b806311107c681161023d57806311107c68146103485780631161ae391461036757806318160ddd146103865780631df4ccfc1461039a57806323b872dd146103af5780632b112e49146103ce575f80fd5b80630445b6671461028357806306fdde03146102ab57806308fd3d05146102e3578063095ea7b3146103135780630b3cbe3614610332575f80fd5b3661027f57005b5f80fd5b34801561028e575f80fd5b5061029860225481565b6040519081526020015b60405180910390f35b3480156102b6575f80fd5b506040805180820190915260078152662ba4aa21a7a4a760c91b60208201525b6040516102a29190611e63565b3480156102ee575f80fd5b50601f5461030390600160a01b900460ff1681565b60405190151581526020016102a2565b34801561031e575f80fd5b5061030361032d366004611ec9565b610821565b34801561033d575f80fd5b5061034661088d565b005b348015610353575f80fd5b50610346610362366004611efe565b6108d0565b348015610372575f80fd5b50610303610381366004611f19565b610917565b348015610391575f80fd5b50600554610298565b3480156103a5575f80fd5b5061029860115481565b3480156103ba575f80fd5b506103036103c9366004611f39565b61092a565b3480156103d9575f80fd5b506102986109e8565b3480156103ed575f80fd5b50610346610a38565b348015610401575f80fd5b50610346610a78565b348015610415575f80fd5b50604051600981526020016102a2565b348015610430575f80fd5b5061034661043f366004611f72565b610ac2565b34801561044f575f80fd5b5061030361045e366004611fa7565b610b15565b34801561046e575f80fd5b5061034661047d366004611fc0565b610b21565b34801561048d575f80fd5b5061034661049c366004611fd7565b610b88565b3480156104ac575f80fd5b506103466104bb366004612016565b610c4d565b3480156104cb575f80fd5b506021546103039060ff1681565b3480156104e4575f80fd5b506103036104f3366004611fa7565b602080525f908152604090205460ff1681565b348015610511575f80fd5b50610298610520366004611fa7565b6001600160a01b03165f9081526008602052604090205490565b348015610545575f80fd5b50610346610ce8565b348015610559575f80fd5b50610346610d59565b34801561056d575f80fd5b5061029860075481565b348015610582575f80fd5b5061029860065481565b348015610597575f80fd5b506103466105a6366004611f72565b610d8f565b3480156105b6575f80fd5b505f546001600160a01b03165b6040516001600160a01b0390911681526020016102a2565b3480156105e6575f80fd5b505f546001600160a01b03166105c3565b348015610602575f80fd5b5060408051808201909152600381526257544360e81b60208201526102d6565b34801561062d575f80fd5b5061034661063c366004612095565b610df5565b34801561064c575f80fd5b50610346610e35565b348015610660575f80fd5b50601f546105c3906001600160a01b031681565b34801561067f575f80fd5b5061030361068e366004611ec9565b610e6e565b34801561069e575f80fd5b506103466106ad3660046120b1565b610e7a565b3480156106bd575f80fd5b505f546105c3906001600160a01b031681565b3480156106db575f80fd5b50601f5461030390600160a81b900460ff1681565b3480156106fb575f80fd5b5061034661070a3660046120da565b610eb4565b34801561071a575f80fd5b50610298610729366004611fc0565b610f3c565b348015610739575f80fd5b50610303610748366004611ec9565b610f81565b348015610758575f80fd5b50610346610767366004611fc0565b611066565b348015610777575f80fd5b5061029861078636600461213b565b6001600160a01b039182165f90815260096020908152604080832093909416825291909152205490565b3480156107bb575f80fd5b506103466107ca366004611fa7565b6110b7565b3480156107da575f80fd5b5061034661119e565b3480156107ee575f80fd5b506103466107fd366004611f19565b6111d7565b34801561080d575f80fd5b50601d546105c3906001600160a01b031681565b335f8181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061087b9086815260200190565b60405180910390a35060015b92915050565b5f546001600160a01b031633146108bf5760405162461bcd60e51b81526004016108b69061216c565b60405180910390fd5b60c86014556101906013555f601555565b5f546001600160a01b031633146108f95760405162461bcd60e51b81526004016108b69061216c565b601f8054911515600160a81b0260ff60a81b19909216919091179055565b5f8261092283610f3c565b119392505050565b6001600160a01b0383165f9081526009602090815260408083203384529091528120545f19146109d3576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f9081526009825283812033825290915291909120546109af91849061120b565b6001600160a01b0385165f9081526009602090815260408083203384529091529020555b6109de848484611243565b90505b9392505050565b6004546001600160a01b03165f90815260086020526040812054610a33906003546001600160a01b03165f90815260086020526040902054610a2d9060055490611604565b90611604565b905090565b5f546001600160a01b03163314610a615760405162461bcd60e51b81526004016108b69061216c565b601f805461ffff60a01b191661010160a01b179055565b5f546001600160a01b03163314610aa15760405162461bcd60e51b81526004016108b69061216c565b601f805460ff60a81b191690556101f46014556102ee6013556103e8601555565b5f546001600160a01b03163314610aeb5760405162461bcd60e51b81526004016108b69061216c565b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b5f610887825f19610821565b5f546001600160a01b03163314610b4a5760405162461bcd60e51b81526004016108b69061216c565b6103e8600554610b5a91906121b5565b6007541015610b67575f80fd5b6103e881600554610b7891906121d4565b610b8291906121b5565b60075550565b5f546001600160a01b03163314610bb15760405162461bcd60e51b81526004016108b69061216c565b600c869055600f859055600d849055600e8390556010829055610be282610bdc858188818c8c611645565b90611645565b6011556012819055610bf56005826121b5565b60115410610c455760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e2032302500000060448201526064016108b6565b505050505050565b5f546001600160a01b03163314610c765760405162461bcd60e51b81526004016108b69061216c565b5f5b82811015610ce2578160205f868685818110610c9657610c966121eb565b9050602002016020810190610cab9190611fa7565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055610cdb816121ff565b9050610c78565b50505050565b5f546001600160a01b03163314610d115760405162461bcd60e51b81526004016108b69061216c565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314610d825760405162461bcd60e51b81526004016108b69061216c565b6005546007819055600655565b5f546001600160a01b03163314610db85760405162461bcd60e51b81526004016108b69061216c565b6001600160a01b039091165f908152600a60209081526040808320805494151560ff199586168117909155600b9092529091208054909216179055565b5f546001600160a01b03163314610e1e5760405162461bcd60e51b81526004016108b69061216c565b6021805460ff191692151592909217909155602255565b5f546001600160a01b03163314610e5e5760405162461bcd60e51b81526004016108b69061216c565b606460148190556013555f601555565b5f6109e1338484611243565b5f546001600160a01b03163314610ea35760405162461bcd60e51b81526004016108b69061216c565b601391909155601491909155601555565b5f546001600160a01b03163314610edd5760405162461bcd60e51b81526004016108b69061216c565b601680546001600160a01b03199081166001600160a01b03978816179091556017805482169587169590951790945560188054851693861693909317909255601a80548416918516919091179055601980549092169216919091179055565b5f610887610f486109e8565b601f546001600160a01b03165f90815260086020526040902054610f7b90610f74906002905b906116a3565b85906116a3565b90611721565b5f815f03610ff2576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610fcb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fef9190612217565b91505b60165460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303815f875af1158015611042573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109e1919061222e565b60195447906001600160a01b03166108fc606461108385856121d4565b61108d91906121b5565b6040518115909202915f818181858888f193505050501580156110b2573d5f803e3d5ffd5b505050565b5f546001600160a01b031633146110e05760405162461bcd60e51b81526004016108b69061216c565b6001600160a01b0381166111455760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108b6565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6016546040516001600160a01b03909116904780156108fc02915f818181858888f193505050501580156111d4573d5f803e3d5ffd5b50565b5f546001600160a01b031633146112005760405162461bcd60e51b81526004016108b69061216c565b601b91909155601c55565b5f818484111561122e5760405162461bcd60e51b81526004016108b69190611e63565b505f61123a8486612249565b95945050505050565b6023545f9060ff16156112625761125b848484611762565b90506109e1565b6001600160a01b0384165f9081526001602052604090205460ff161580156112a257506001600160a01b0383165f9081526001602052604090205460ff16155b1561135e57601f54600160a01b900460ff166112f75760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016108b6565b601f54600160a81b900460ff161561135e576001600160a01b0383165f90815260208052604090205460ff1661135e5760405162461bcd60e51b815260206004820152600c60248201526b139bdd081b185d5b98da195960a21b60448201526064016108b6565b6001600160a01b0384165f9081526001602052604090205460ff1615801561138f57506001600160a01b0383163014155b80156113a957506003546001600160a01b03848116911614155b80156113c35750601f546001600160a01b03848116911614155b80156113dd5750601a546001600160a01b03848116911614155b80156113f757506017546001600160a01b03848116911614155b801561141b57506001600160a01b0383165f908152600b602052604090205460ff16155b156114bb576001600160a01b0383165f90815260086020526040902054600754611445848361225c565b11156114b95760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016108b6565b505b6114c58483611832565b6114cd61189e565b156114da576114da6118eb565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f9081526008909152919091205461152b91849061120b565b6001600160a01b0385165f90815260086020908152604080832093909355600a90529081205460ff168061157657506001600160a01b0384165f908152600a602052604090205460ff165b61158a57611585858486611cb3565b61158c565b825b6001600160a01b0385165f908152600860205260409020549091506115b19082611645565b6001600160a01b038086165f8181526008602052604090819020939093559151908716905f8051602061230a833981519152906115f19085815260200190565b60405180910390a3506001949350505050565b5f6109e183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061120b565b5f80611651838561225c565b9050838110156109e15760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108b6565b5f825f036116b257505f610887565b5f6116bd83856121d4565b9050826116ca85836121b5565b146109e15760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108b6565b5f6109e183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e37565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f9081526008909152918220546117b291849061120b565b6001600160a01b038086165f9081526008602052604080822093909355908516815220546117e09083611645565b6001600160a01b038085165f8181526008602052604090819020939093559151908616905f8051602061230a833981519152906118209086815260200190565b60405180910390a35060019392505050565b6006548111158061185a57506001600160a01b0382165f908152600b602052604090205460ff165b61189a5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016108b6565b5050565b601f545f906001600160a01b031633148015906118be575060235460ff16155b80156118cc575060215460ff165b8015610a33575050602254305f90815260086020526040902054101590565b6023805460ff19166001179055601b54601c545f9161190991610917565b61191557600c54611917565b5f5b90505f61193a6002610f7b601154610f7b866022546116a390919063ffffffff16565b90505f6119528260225461160490919063ffffffff16565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f8151811061198a5761198a6121eb565b6001600160a01b0392831660209182029290920101526002548251911690829060019081106119bb576119bb6121eb565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac94790611a049086905f9087903090429060040161226f565b5f604051808303815f87803b158015611a1b575f80fd5b505af1158015611a2d573d5f803e3d5ffd5b505050505f611a45824761160490919063ffffffff16565b90505f611a5f611a56886002611721565b60115490611604565b90505f611a736002610f7b8481878d6116a3565b90505f611a8f83610f7b600d54876116a390919063ffffffff16565b90505f611aab84610f7b600f54886116a390919063ffffffff16565b90505f611ac785610f7b600e54896116a390919063ffffffff16565b6017546040519192505f916001600160a01b039091169085908381818185875af1925050503d805f8114611b16576040519150601f19603f3d011682016040523d82523d5f602084013e611b1b565b606091505b50506018546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114611b68576040519150601f19603f3d011682016040523d82523d5f602084013e611b6d565b606091505b50506019546040519192506001600160a01b03169084905f81818185875af1925050503d805f8114611bba576040519150601f19603f3d011682016040523d82523d5f602084013e611bbf565b606091505b505f9250508b159050611c9b57601d5460165460405163f305d71960e01b8152306004820152602481018e90525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611c39573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611c5e91906122de565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506023805460ff1916905550505050505050505050565b601554601f545f91906001600160a01b0390811690841603611cd85750601354611cf3565b601f546001600160a01b0390811690861603611cf357506014545b5f611d1f6012546064611d0691906121d4565b610f7b84610f6e6011548a6116a390919063ffffffff16565b90505f611d3d601154610f7b601054856116a390919063ffffffff16565b90505f611d4a8383611604565b305f90815260086020526040902054909150611d669082611645565b305f9081526008602052604080822092909255601a546001600160a01b031681522054611d939083611645565b601a546001600160a01b039081165f9081526008602090815260409182902093909355518381523092918b16915f8051602061230a833981519152910160405180910390a38115611e2157600554611deb9083611604565b6005556004546040518381526001600160a01b03918216918a16905f8051602061230a8339815191529060200160405180910390a35b611e2b8784611604565b98975050505050505050565b5f8183611e575760405162461bcd60e51b81526004016108b69190611e63565b505f61123a84866121b5565b5f6020808352835180828501525f5b81811015611e8e57858101830151858201604001528201611e72565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611ec4575f80fd5b919050565b5f8060408385031215611eda575f80fd5b611ee383611eae565b946020939093013593505050565b80151581146111d4575f80fd5b5f60208284031215611f0e575f80fd5b81356109e181611ef1565b5f8060408385031215611f2a575f80fd5b50508035926020909101359150565b5f805f60608486031215611f4b575f80fd5b611f5484611eae565b9250611f6260208501611eae565b9150604084013590509250925092565b5f8060408385031215611f83575f80fd5b611f8c83611eae565b91506020830135611f9c81611ef1565b809150509250929050565b5f60208284031215611fb7575f80fd5b6109e182611eae565b5f60208284031215611fd0575f80fd5b5035919050565b5f805f805f8060c08789031215611fec575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b5f805f60408486031215612028575f80fd5b833567ffffffffffffffff8082111561203f575f80fd5b818601915086601f830112612052575f80fd5b813581811115612060575f80fd5b8760208260051b8501011115612074575f80fd5b6020928301955093505084013561208a81611ef1565b809150509250925092565b5f80604083850312156120a6575f80fd5b8235611ee381611ef1565b5f805f606084860312156120c3575f80fd5b505081359360208301359350604090920135919050565b5f805f805f60a086880312156120ee575f80fd5b6120f786611eae565b945061210560208701611eae565b935061211360408701611eae565b925061212160608701611eae565b915061212f60808701611eae565b90509295509295909350565b5f806040838503121561214c575f80fd5b61215583611eae565b915061216360208401611eae565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f826121cf57634e487b7160e01b5f52601260045260245ffd5b500490565b8082028115828204841417610887576108876121a1565b634e487b7160e01b5f52603260045260245ffd5b5f60018201612210576122106121a1565b5060010190565b5f60208284031215612227575f80fd5b5051919050565b5f6020828403121561223e575f80fd5b81516109e181611ef1565b81810381811115610887576108876121a1565b80820180821115610887576108876121a1565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156122bd5784516001600160a01b031683529383019391830191600101612298565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f606084860312156122f0575f80fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212208728e854582562f6da76090e2db7dbd98b6f40069ca793c222dca7a13dcdac1264736f6c63430008150033

Deployed Bytecode Sourcemap

5313:14278:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7114:55;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;7114:55:0;;;;;;;;8669:80;;;;;;;;;;-1:-1:-1;8741:5:0;;;;;;;;;;;;-1:-1:-1;;;8741:5:0;;;;8669:80;;;;;;;:::i;6944:31::-;;;;;;;;;;-1:-1:-1;6944:31:0;;;;-1:-1:-1;;;6944:31:0;;;;;;;;;914:14:1;;907:22;889:41;;877:2;862:18;6944:31:0;749:187:1;9091:216:0;;;;;;;;;;-1:-1:-1;9091:216:0;;;;;:::i;:::-;;:::i;15026:138::-;;;;;;;;;;;;;:::i;:::-;;14538:92;;;;;;;;;;-1:-1:-1;14538:92:0;;;;;:::i;:::-;;:::i;19365:150::-;;;;;;;;;;-1:-1:-1;19365:150:0;;;;;:::i;:::-;;:::i;8399:88::-;;;;;;;;;;-1:-1:-1;8472:12:0;;8399:88;;6286:96;;;;;;;;;;;;;;;;9609:370;;;;;;;;;;-1:-1:-1;9609:370:0;;;;;:::i;:::-;;:::i;19040:142::-;;;;;;;;;;;;;:::i;15323:100::-;;;;;;;;;;;;;:::i;14843:175::-;;;;;;;;;;;;;:::i;8493:80::-;;;;;;;;;;-1:-1:-1;8493:80:0;;5650:1;2475:36:1;;2463:2;2448:18;8493:80:0;2333:184:1;17503:124:0;;;;;;;;;;-1:-1:-1;17503:124:0;;;;;:::i;:::-;;:::i;9315:122::-;;;;;;;;;;-1:-1:-1;9315:122:0;;;;;:::i;:::-;;:::i;9991:223::-;;;;;;;;;;-1:-1:-1;9991:223:0;;;;;:::i;:::-;;:::i;17635:588::-;;;;;;;;;;-1:-1:-1;17635:588:0;;;;;:::i;:::-;;:::i;14638:197::-;;;;;;;;;;-1:-1:-1;14638:197:0;;;;;:::i;:::-;;:::i;7077:30::-;;;;;;;;;;-1:-1:-1;7077:30:0;;;;;;;;7022:43;;;;;;;;;;-1:-1:-1;7022:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8839:105;;;;;;;;;;-1:-1:-1;8839:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;8923:18:0;8905:7;8923:18;;;:9;:18;;;;;;;8839:105;3370:148;;;;;;;;;;;;;:::i;13761:133::-;;;;;;;;;;;;;:::i;5788:61::-;;;;;;;;;;;;;;;;5723:58;;;;;;;;;;;;;;;;17324:171;;;;;;;;;;-1:-1:-1;17324:171:0;;;;;:::i;:::-;;:::i;8755:78::-;;;;;;;;;;-1:-1:-1;8807:7:0;3221:6;-1:-1:-1;;;;;3221:6:0;8755:78;;;-1:-1:-1;;;;;4665:32:1;;;4647:51;;4635:2;4620:18;8755:78:0;4501:203:1;3156:79:0;;;;;;;;;;-1:-1:-1;3194:7:0;3221:6;-1:-1:-1;;;;;3221:6:0;3156:79;;8579:84;;;;;;;;;;-1:-1:-1;8653:7:0;;;;;;;;;;;;-1:-1:-1;;;8653:7:0;;;;8579:84;;18695:153;;;;;;;;;;-1:-1:-1;18695:153:0;;;;;:::i;:::-;;:::i;15173:138::-;;;;;;;;;;;;;:::i;6912:19::-;;;;;;;;;;-1:-1:-1;6912:19:0;;;;-1:-1:-1;;;;;6912:19:0;;;9445:156;;;;;;;;;;-1:-1:-1;9445:156:0;;;;;:::i;:::-;;:::i;14323:206::-;;;;;;;;;;-1:-1:-1;14323:206:0;;;;;:::i;:::-;;:::i;2776:21::-;;;;;;;;;;-1:-1:-1;2776:21:0;;;;-1:-1:-1;;;;;2776:21:0;;;6985:30;;;;;;;;;;-1:-1:-1;6985:30:0;;;;-1:-1:-1;;;6985:30:0;;;;;;18231:456;;;;;;;;;;-1:-1:-1;18231:456:0;;;;;:::i;:::-;;:::i;19190:167::-;;;;;;;;;;-1:-1:-1;19190:167:0;;;;;:::i;:::-;;:::i;14030:285::-;;;;;;;;;;-1:-1:-1;14030:285:0;;;;;:::i;:::-;;:::i;13548:198::-;;;;;;;;;;-1:-1:-1;13548:198:0;;;;;:::i;:::-;;:::i;8950:133::-;;;;;;;;;;-1:-1:-1;8950:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;9052:19:0;;;9034:7;9052:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8950:133;3526:244;;;;;;;;;;-1:-1:-1;3526:244:0;;;;;:::i;:::-;;:::i;13902:120::-;;;;;;;;;;;;;:::i;18856:172::-;;;;;;;;;;-1:-1:-1;18856:172:0;;;;;:::i;:::-;;:::i;6842:24::-;;;;;;;;;;-1:-1:-1;6842:24:0;;;;-1:-1:-1;;;;;6842:24:0;;;9091:216;9195:10;9166:4;9183:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9183:32:0;;;;;;;;;;:41;;;9240:37;9166:4;;9183:32;;9240:37;;;;9218:6;160:25:1;;148:2;133:18;;14:177;9240:37:0;;;;;;;;-1:-1:-1;9295:4:0;9091:216;;;;;:::o;15026:138::-;3283:6;;-1:-1:-1;;;;;3283:6:0;2593:10;3283:22;3275:67;;;;-1:-1:-1;;;3275:67:0;;;;;;;:::i;:::-;;;;;;;;;15089:3:::1;15073:13;:19:::0;15120:3:::1;15103:14;:20:::0;-1:-1:-1;15134:18:0::1;:22:::0;15026:138::o;14538:92::-;3283:6;;-1:-1:-1;;;;;3283:6:0;2593:10;3283:22;3275:67;;;;-1:-1:-1;;;3275:67:0;;;;;;;:::i;:::-;14602:10:::1;:20:::0;;;::::1;;-1:-1:-1::0;;;14602:20:0::1;-1:-1:-1::0;;;;14602:20:0;;::::1;::::0;;;::::1;::::0;;14538:92::o;19365:150::-;19445:4;19501:6;19469:29;19489:8;19469:19;:29::i;:::-;:38;;19365:150;-1:-1:-1;;;19365:150:0:o;9609:370::-;-1:-1:-1;;;;;9729:19:0;;9709:4;9729:19;;;:11;:19;;;;;;;;9749:10;9729:31;;;;;;;;-1:-1:-1;;9729:52:0;9726:186;;9831:69;;;;;;;;;;;-1:-1:-1;;;9831:69:0;;;;;;;;-1:-1:-1;;;;;9831:19:0;;-1:-1:-1;9831:19:0;;;:11;:19;;;;;9851:10;9831:31;;;;;;;;;;:69;;9867:6;;9831:35;:69::i;:::-;-1:-1:-1;;;;;9797:19:0;;;;;;:11;:19;;;;;;;;9817:10;9797:31;;;;;;;:103;9726:186;9931:40;9945:6;9953:9;9964:6;9931:13;:40::i;:::-;9924:47;;9609:370;;;;;;:::o;19040:142::-;19168:4;;-1:-1:-1;;;;;19168:4:0;19093:7;8923:18;;;:9;:18;;;;;;19120:54;;19147:4;;-1:-1:-1;;;;;19147:4:0;8905:7;8923:18;;;:9;:18;;;;;;19120:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;19113:61;;19040:142;:::o;15323:100::-;3283:6;;-1:-1:-1;;;;;3283:6:0;2593:10;3283:22;3275:67;;;;-1:-1:-1;;;3275:67:0;;;;;;;:::i;:::-;15369:11:::1;:18:::0;;-1:-1:-1;;;;15398:17:0;-1:-1:-1;;;15398:17:0;;;15323:100::o;14843:175::-;3283:6;;-1:-1:-1;;;;;3283:6:0;2593:10;3283:22;3275:67;;;;-1:-1:-1;;;3275:67:0;;;;;;;:::i;:::-;14895:10:::1;:18:::0;;-1:-1:-1;;;;14895:18:0::1;::::0;;14940:3:::1;14924:13;:19:::0;14971:3:::1;14954:14;:20:::0;15006:4:::1;14895:10;14985:25:::0;14843:175::o;17503:124::-;3283:6;;-1:-1:-1;;;;;3283:6:0;2593:10;3283:22;3275:67;;;;-1:-1:-1;;;3275:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17585:24:0;;;::::1;;::::0;;;:16:::1;:24;::::0;;;;:34;;-1:-1:-1;;17585:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17503:124::o;9315:122::-;9370:4;9394:35;9402:7;-1:-1:-1;;9394:7:0;:35::i;9991:223::-;3283:6;;-1:-1:-1;;;;;3283:6:0;2593:10;3283:22;3275:67;;;;-1:-1:-1;;;3275:67:0;;;;;;;:::i;:::-;10114:4:::1;10099:12;;:19;;;;:::i;:::-;10080:15;;:38;;10072:47;;;::::0;::::1;;10184:4;10165:14;10150:12;;:29;;;;:::i;:::-;10149:39;;;;:::i;:::-;10131:15;:57:::0;-1:-1:-1;9991:223:0:o;17635:588::-;3283:6;;-1:-1:-1;;;;;3283:6:0;2593:10;3283:22;3275:67;;;;-1:-1:-1;;;3275:67:0;;;;;;;:::i;:::-;17824:12:::1;:28:::0;;;17863:7:::1;:18:::0;;;17892:12:::1;:28:::0;;;17931:10:::1;:24:::0;;;17966:9:::1;:22:::0;;;18010:79:::1;17978:10:::0;18010:63:::1;17944:11:::0;18010:63;17907:13;18010:63;17839:13;17873:8;18010:17:::1;:27::i;:::-;:31:::0;::::1;:46::i;:79::-;17999:8;:90:::0;18100:14:::1;:32:::0;;;18162:18:::1;18179:1;18117:15:::0;18162:18:::1;:::i;:::-;18151:8;;:29;18143:71;;;::::0;-1:-1:-1;;;18143:71:0;;7414:2:1;18143:71:0::1;::::0;::::1;7396:21:1::0;7453:2;7433:18;;;7426:30;7492:31;7472:18;;;7465:59;7541:18;;18143:71:0::1;7212:353:1::0;18143:71:0::1;17635:588:::0;;;;;;:::o;14638:197::-;3283:6;;-1:-1:-1;;;;;3283:6:0;2593:10;3283:22;3275:67;;;;-1:-1:-1;;;3275:67:0;;;;;;;:::i;:::-;14730:9:::1;14725:103;14741:20:::0;;::::1;14725:103;;;14810:6;14783:10;:24;14794:9;;14804:1;14794:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14783:24:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;14783:24:0;:33;;-1:-1:-1;;14783:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14763:3:::1;::::0;::::1;:::i;:::-;;;14725:103;;;;14638:197:::0;;;:::o;3370:148::-;3283:6;;-1:-1:-1;;;;;3283:6:0;2593:10;3283:22;3275:67;;;;-1:-1:-1;;;3275:67:0;;;;;;;:::i;:::-;3477:1:::1;3461:6:::0;;3440:40:::1;::::0;-1:-1:-1;;;;;3461:6:0;;::::1;::::0;3440:40:::1;::::0;3477:1;;3440:40:::1;3508:1;3491:19:::0;;-1:-1:-1;;;;;;3491:19:0::1;::::0;;3370:148::o;13761:133::-;3283:6;;-1:-1:-1;;;;;3283:6:0;2593:10;3283:22;3275:67;;;;-1:-1:-1;;;3275:67:0;;;;;;;:::i;:::-;13834:12:::1;::::0;13816:15:::1;:30:::0;;;13857:12:::1;:27:::0;13761:133::o;17324:171::-;3283:6;;-1:-1:-1;;;;;3283:6:0;2593:10;3283:22;3275:67;;;;-1:-1:-1;;;3275:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17412:20:0;;::::1;;::::0;;;:12:::1;:20;::::0;;;;;;;:30;;;::::1;;-1:-1:-1::0;;17412:30:0;;::::1;::::0;::::1;::::0;;;17453:16:::1;:24:::0;;;;;;:34;;;;::::1;;::::0;;17324:171::o;18695:153::-;3283:6;;-1:-1:-1;;;;;3283:6:0;2593:10;3283:22;3275:67;;;;-1:-1:-1;;;3275:67:0;;;;;;;:::i;:::-;18784:11:::1;:22:::0;;-1:-1:-1;;18784:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;18817:13:::1;:23:::0;18695:153::o;15173:138::-;3283:6;;-1:-1:-1;;;;;3283:6:0;2593:10;3283:22;3275:67;;;;-1:-1:-1;;;3275:67:0;;;;;;;:::i;:::-;15236:3:::1;15220:13;:19:::0;;;15250:14:::1;:20:::0;-1:-1:-1;15281:18:0::1;:22:::0;15173:138::o;9445:156::-;9525:4;9549:44;9563:10;9575:9;9586:6;9549:13;:44::i;14323:206::-;3283:6;;-1:-1:-1;;;;;3283:6:0;2593:10;3283:22;3275:67;;;;-1:-1:-1;;;3275:67:0;;;;;;;:::i;:::-;14414:14:::1;:22:::0;;;;14447:13:::1;:20:::0;;;;14478:18:::1;:27:::0;14323:206::o;18231:456::-;3283:6;;-1:-1:-1;;;;;3283:6:0;2593:10;3283:22;3275:67;;;;-1:-1:-1;;;3275:67:0;;;;;;;:::i;:::-;18433:21:::1;:46:::0;;-1:-1:-1;;;;;;18433:46:0;;::::1;-1:-1:-1::0;;;;;18433:46:0;;::::1;;::::0;;;18490:20:::1;:44:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18545:18:::1;:40:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18596:17:::1;:38:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;18645:15:::1;:34:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;18231:456::o;19190:167::-;19258:7;19285:64;19326:22;:20;:22::i;:::-;19308:4;;-1:-1:-1;;;;;19308:4:0;8905:7;8923:18;;;:9;:18;;;;;;19285:36;;19298:22;;19318:1;;19298:15;:19;;:22::i;:::-;19285:8;;:12;:36::i;:::-;:40;;:64::i;14030:285::-;14112:4;14139:6;14149:1;14139:11;14136:95;;14175:44;;-1:-1:-1;;;14175:44:0;;14213:4;14175:44;;;4647:51:1;-1:-1:-1;;;;;14175:29:0;;;;;4620:18:1;;14175:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14166:53;;14136:95;14277:21;;14248:59;;-1:-1:-1;;;14248:59:0;;-1:-1:-1;;;;;14277:21:0;;;14248:59;;;8205:51:1;8272:18;;;8265:34;;;14248:28:0;;;;;;8178:18:1;;14248:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;13548:198::-;13677:15;;13637:21;;-1:-1:-1;;;;;13677:15:0;13669:69;13734:3;13703:28;13715:16;13637:21;13703:28;:::i;:::-;:34;;;;:::i;:::-;13669:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13606:140;13548:198;:::o;3526:244::-;3283:6;;-1:-1:-1;;;;;3283:6:0;2593:10;3283:22;3275:67;;;;-1:-1:-1;;;3275:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3615:22:0;::::1;3607:73;;;::::0;-1:-1:-1;;;3607:73:0;;8762:2:1;3607: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;;3607:73:0::1;8560:402:1::0;3607:73:0::1;3717:6;::::0;;3696:38:::1;::::0;-1:-1:-1;;;;;3696:38:0;;::::1;::::0;3717:6;::::1;::::0;3696:38:::1;::::0;::::1;3745:6;:17:::0;;-1:-1:-1;;;;;;3745:17:0::1;-1:-1:-1::0;;;;;3745:17:0;;;::::1;::::0;;;::::1;::::0;;3526:244::o;13902:120::-;13958:21;;13950:62;;-1:-1:-1;;;;;13958:21:0;;;;13990;13950:62;;;;;13958:21;13950:62;13958:21;13950:62;13990:21;13958;13950:62;;;;;;;;;;;;;;;;;;;;;13902:120::o;18856:172::-;3283:6;;-1:-1:-1;;;;;3283:6:0;2593:10;3283:22;3275:67;;;;-1:-1:-1;;;3275:67:0;;;;;;;:::i;:::-;18943:15:::1;:25:::0;;;;18979:26:::1;:41:::0;18856:172::o;757:192::-;843:7;879:12;871:6;;;;863:29;;;;-1:-1:-1;;;863:29:0;;;;;;;;:::i;:::-;-1:-1:-1;903:9:0;915:5;919:1;915;:5;:::i;:::-;903:17;757:192;-1:-1:-1;;;;;757:192:0:o;10233:1429::-;10345:6;;10325:4;;10345:6;;10342:63;;;10361:41;10376:6;10384:9;10395:6;10361:14;:41::i;:::-;10354:48;;;;10342:63;-1:-1:-1;;;;;10421:22:0;;;;;;:14;:22;;;;;;;;10420:23;:53;;;;-1:-1:-1;;;;;;10448:25:0;;;;;;:14;:25;;;;;;;;10447:26;10420:53;10417:245;;;10497:11;;-1:-1:-1;;;10497:11:0;;;;10489:43;;;;-1:-1:-1;;;10489:43:0;;9302:2:1;10489:43:0;;;9284:21:1;9341:2;9321:18;;;9314:30;-1:-1:-1;;;9360:18:1;;;9353:50;9420:18;;10489:43:0;9100:344:1;10489:43:0;10561:10;;-1:-1:-1;;;10561:10:0;;;;10558:93;;;-1:-1:-1;;;;;10599:21:0;;;;;;:10;:21;;;;;;;;10591:45;;;;-1:-1:-1;;;10591:45:0;;9651:2:1;10591:45:0;;;9633:21:1;9690:2;9670:18;;;9663:30;-1:-1:-1;;;9709:18:1;;;9702:42;9761:18;;10591:45:0;9449:336:1;10591:45:0;-1:-1:-1;;;;;10694:22:0;;;;;;:14;:22;;;;;;;;10693:23;:53;;;;-1:-1:-1;;;;;;10720:26:0;;10741:4;10720:26;;10693:53;:84;;;;-1:-1:-1;10772:4:0;;-1:-1:-1;;;;;10751:26:0;;;10772:4;;10751:26;;10693:84;:105;;;;-1:-1:-1;10794:4:0;;-1:-1:-1;;;;;10781:17:0;;;10794:4;;10781:17;;10693:105;:139;;;;-1:-1:-1;10815:17:0;;-1:-1:-1;;;;;10802:30:0;;;10815:17;;10802:30;;10693:139;:176;;;;-1:-1:-1;10849:20:0;;-1:-1:-1;;;;;10836:33:0;;;10849:20;;10836:33;;10693:176;:208;;;;-1:-1:-1;;;;;;10874:27:0;;;;;;:16;:27;;;;;;;;10873:28;10693:208;10689:400;;;-1:-1:-1;;;;;8923:18:0;;10917;8923;;;:9;:18;;;;;;11006:15;;10982:19;10995:6;8923:18;10982:19;:::i;:::-;10981:40;;10973:114;;;;-1:-1:-1;;;10973:114:0;;10122:2:1;10973:114:0;;;10104:21:1;10161:2;10141:18;;;10134:30;10200:34;10180:18;;;10173:62;10271:32;10251:18;;;10244:60;10321:19;;10973:114:0;9920:426:1;10973:114:0;10902:187;10689:400;11154:28;11167:6;11175;11154:12;:28::i;:::-;11199:16;:14;:16::i;:::-;11196:35;;;11218:10;:8;:10::i;:::-;11311:53;;;;;;;;;;;-1:-1:-1;;;11311:53:0;;;;;;;;-1:-1:-1;;;;;11311:17:0;;-1:-1:-1;11311:17:0;;;:9;:17;;;;;;;;:53;;11333:6;;11311:21;:53::i;:::-;-1:-1:-1;;;;;11291:17:0;;;;;;:9;:17;;;;;;;;:73;;;;11403:12;:20;;;;;;;;;:47;;-1:-1:-1;;;;;;11427:23:0;;;;;;:12;:23;;;;;;;;11403:47;11402:95;;11463:34;11471:6;11479;11487:9;11463:7;:34::i;:::-;11402:95;;;11454:6;11402:95;-1:-1:-1;;;;;11531:20:0;;;;;;:9;:20;;;;;;11377:120;;-1:-1:-1;11531:40:0;;11377:120;11531:24;:40::i;:::-;-1:-1:-1;;;;;11508:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11589:43;;;;;;-1:-1:-1;;;;;;;;;;;11589:43:0;;;11617:14;160:25:1;;148:2;133:18;;14:177;11589:43:0;;;;;;;;-1:-1:-1;11650:4:0;;10233:1429;-1:-1:-1;;;;10233:1429:0:o;615:136::-;673:7;700:43;704:1;707;700:43;;;;;;;;;;;;;;;;;:3;:43::i;428:181::-;486:7;;518:5;522:1;518;:5;:::i;:::-;506:17;;547:1;542;:6;;534:46;;;;-1:-1:-1;;;534:46:0;;10553:2:1;534:46:0;;;10535:21:1;10592:2;10572:18;;;10565:30;10631:29;10611:18;;;10604:57;10678:18;;534:46:0;10351:351:1;955:250:0;1013:7;1037:1;1042;1037:6;1033:47;;-1:-1:-1;1067:1:0;1060:8;;1033:47;1092:9;1104:5;1108:1;1104;:5;:::i;:::-;1092:17;-1:-1:-1;1137:1:0;1128:5;1132:1;1092:17;1128:5;:::i;:::-;:10;1120:56;;;;-1:-1:-1;;;1120:56:0;;10909:2:1;1120:56:0;;;10891:21:1;10948:2;10928:18;;;10921:30;10987:34;10967:18;;;10960:62;-1:-1:-1;;;11038:18:1;;;11031:31;11079:19;;1120:56:0;10707:397:1;1211:132:0;1269:7;1296:39;1300:1;1303;1296:39;;;;;;;;;;;;;;;;;:3;:39::i;11674:330::-;11804:53;;;;;;;;;;;-1:-1:-1;;;11804:53:0;;;;;;;;-1:-1:-1;;;;;11804:17:0;;11767:4;11804:17;;;:9;:17;;;;;;;:53;;11826:6;;11804:21;:53::i;:::-;-1:-1:-1;;;;;11784:17:0;;;;;;;:9;:17;;;;;;:73;;;;11891:20;;;;;;;:32;;11916:6;11891:24;:32::i;:::-;-1:-1:-1;;;;;11868:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11939:35;;;;;;-1:-1:-1;;;;;;;;;;;11939:35:0;;;11967:6;160:25:1;;148:2;133:18;;14:177;11939:35:0;;;;;;;;-1:-1:-1;11992:4:0;11674:330;;;;;:::o;12012:167::-;12109:12;;12099:6;:22;;:50;;;-1:-1:-1;;;;;;12125:24:0;;;;;;:16;:24;;;;;;;;12099:50;12091:80;;;;-1:-1:-1;;;12091:80:0;;11311:2:1;12091:80:0;;;11293:21:1;11350:2;11330:18;;;11323:30;-1:-1:-1;;;11369:18:1;;;11362:47;11426:18;;12091:80:0;11109:341:1;12091:80:0;12012:167;;:::o;13343:197::-;13430:4;;13392;;-1:-1:-1;;;;;13430:4:0;13416:10;:18;;;;:38;;-1:-1:-1;13448:6:0;;;;13447:7;13416:38;:62;;;;-1:-1:-1;13467:11:0;;;;13416:62;:116;;;;-1:-1:-1;;13519:13:0;;13509:4;13491:24;;;;:9;:24;;;;;;:41;;;13343:197::o;15439:1877::-;7217:6;:13;;-1:-1:-1;;7217:13:0;7226:4;7217:13;;;15534:15:::1;::::0;15551:26:::1;::::0;7217:6;;15518:60:::1;::::0;:15:::1;:60::i;:::-;:79;;15585:12;;15518:79;;;15581:1;15518:79;15488:109;;15608:23;15634:59;15691:1;15634:52;15677:8;;15634:38;15652:19;15634:13;;:17;;:38;;;;:::i;:59::-;15608:85;;15704:20;15727:34;15745:15;15727:13;;:17;;:34;;;;:::i;:::-;15798:16;::::0;;15812:1:::1;15798:16:::0;;;;;::::1;::::0;;15704:57;;-1:-1:-1;15774:21:0::1;::::0;15798:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15798:16:0::1;15774:40;;15843:4;15825;15830:1;15825:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15825:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;15869:4:::1;::::0;15859:7;;15869:4;::::1;::::0;15859;;15869;;15859:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;15859:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;15944:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;15944:188:0;;15910:21:::1;::::0;15944:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;16016:12;;15886:21:::1;::::0;16059:4;;16086::::1;::::0;16106:15:::1;::::0;15944:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16145:17;16165:40;16191:13;16165:21;:25;;:40;;;;:::i;:::-;16145:60:::0;-1:-1:-1;16218:19:0::1;16240:40;16253:26;:19:::0;16277:1:::1;16253:23;:26::i;:::-;16240:8;::::0;;:12:::1;:40::i;:::-;16218:62:::0;-1:-1:-1;16301:26:0::1;16330:58;16386:1;16330:51;16218:62:::0;16330:51;:9;16344:19;16330:13:::1;:34::i;:58::-;16301:87;;16399:26;16428:44;16460:11;16428:27;16442:12;;16428:9;:13;;:27;;;;:::i;:44::-;16399:73;;16483:21;16507:39;16534:11;16507:22;16521:7;;16507:9;:13;;:22;;;;:::i;:39::-;16483:63;;16557:24;16584:42;16614:11;16584:25;16598:10;;16584:9;:13;;:25;;;;:::i;:42::-;16668:20;::::0;16660:65:::1;::::0;16557:69;;-1:-1:-1;16640:15:0::1;::::0;-1:-1:-1;;;;;16668:20:0;;::::1;::::0;16702:18;;16640:15;16660:65;16640:15;16660:65;16702:18;16668:20;16660:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16760:18:0::1;::::0;16752:61:::1;::::0;16639:86;;-1:-1:-1;;;;;;16760:18:0::1;::::0;16792:16;;16752:61:::1;::::0;;;16792:16;16760:18;16752:61:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16848:15:0::1;::::0;16840:55:::1;::::0;16736:77;;-1:-1:-1;;;;;;16848:15:0::1;::::0;16877:13;;16840:55:::1;::::0;;;16877:13;16848:15;16840:55:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;16929:5:0::1;::::0;-1:-1:-1;;16950:19:0;;;-1:-1:-1;16947:362:0::1;;16985:6;::::0;17159:21:::1;::::0;16985:244:::1;::::0;-1:-1:-1;;;16985:244:0;;17061:4:::1;16985:244;::::0;::::1;13123:34:1::0;13173:18;;;13166:34;;;16985:6:0::1;13216:18:1::0;;;13209:34;;;13259:18;;;13252:34;-1:-1:-1;;;;;17159:21:0;;::::1;13302:19:1::0;;;13295:44;17199:15:0::1;13355:19:1::0;;;13348:35;16985:6:0;::::1;::::0;:22:::1;::::0;17015:18;;13057:19:1;;16985:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;17249:48:0::1;::::0;;13879:25:1;;;13935:2;13920:18;;13913:34;;;17249:48:0::1;::::0;-1:-1:-1;13852:18:1;17249:48:0::1;;;;;;;16947:362;-1:-1:-1::0;;7235:6:0;:14;;-1:-1:-1;;7235:14:0;;;-1:-1:-1;;;;;;;;;;15439:1877:0:o;12310:1025::-;12447:18;;12494:4;;12396:7;;12447:18;-1:-1:-1;;;;;12494:4:0;;;12481:17;;;;12478:154;;-1:-1:-1;12528:14:0;;12478:154;;;12573:4;;-1:-1:-1;;;;;12573:4:0;;;12563:14;;;;12560:72;;-1:-1:-1;12607:13:0;;12560:72;12644:17;12664:62;12705:14;;12722:3;12705:20;;;;:::i;:::-;12664:36;12689:10;12664:20;12675:8;;12664:6;:10;;:20;;;;:::i;:62::-;12644:82;;12737:20;12760:38;12789:8;;12760:24;12774:9;;12760;:13;;:24;;;;:::i;:38::-;12737:61;-1:-1:-1;12809:22:0;12834:27;:9;12737:61;12834:13;:27::i;:::-;12919:4;12901:24;;;;:9;:24;;;;;;12809:52;;-1:-1:-1;12901:44:0;;12809:52;12901:28;:44::i;:::-;12892:4;12874:24;;;;:9;:24;;;;;;:71;;;;12997:17;;-1:-1:-1;;;;;12997:17:0;12987:28;;;;:46;;13020:12;12987:32;:46::i;:::-;12966:17;;-1:-1:-1;;;;;12966:17:0;;;12956:28;;;;:9;:28;;;;;;;;;:77;;;;13049:47;160:25:1;;;13074:4:0;;13049:47;;;;-1:-1:-1;;;;;;;;;;;13049:47:0;133:18:1;13049:47:0;;;;;;;13130:16;;13127:160;;13177:12;;:30;;13194:12;13177:16;:30::i;:::-;13162:12;:45;13244:4;;13227:36;;160:25:1;;;-1:-1:-1;;;;;13244:4:0;;;;13227:36;;;-1:-1:-1;;;;;;;;;;;13227:36:0;148:2:1;133:18;13227:36:0;;;;;;;13127:160;13306:21;:6;13317:9;13306:10;:21::i;:::-;13299:28;12310:1025;-1:-1:-1;;;;;;;;12310:1025:0:o;1349:189::-;1435:7;1470:12;1463:5;1455:28;;;;-1:-1:-1;;;1455:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1494:9:0;1506:5;1510:1;1506;:5;:::i;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:328::-;2077:6;2085;2093;2146:2;2134:9;2125:7;2121:23;2117:32;2114:52;;;2162:1;2159;2152:12;2114:52;2185:29;2204:9;2185:29;:::i;:::-;2175:39;;2233:38;2267:2;2256:9;2252:18;2233:38;:::i;:::-;2223:48;;2318:2;2307:9;2303:18;2290:32;2280:42;;2000:328;;;;;:::o;2522:315::-;2587:6;2595;2648:2;2636:9;2627:7;2623:23;2619:32;2616:52;;;2664:1;2661;2654:12;2616:52;2687:29;2706:9;2687:29;:::i;:::-;2677:39;;2766:2;2755:9;2751:18;2738:32;2779:28;2801:5;2779:28;:::i;:::-;2826:5;2816:15;;;2522:315;;;;;:::o;2842:186::-;2901:6;2954:2;2942:9;2933:7;2929:23;2925:32;2922:52;;;2970:1;2967;2960:12;2922:52;2993:29;3012:9;2993:29;:::i;3033:180::-;3092:6;3145:2;3133:9;3124:7;3120:23;3116:32;3113:52;;;3161:1;3158;3151:12;3113:52;-1:-1:-1;3184:23:1;;3033:180;-1:-1:-1;3033:180:1:o;3218:523::-;3322:6;3330;3338;3346;3354;3362;3415:3;3403:9;3394:7;3390:23;3386:33;3383:53;;;3432:1;3429;3422:12;3383:53;-1:-1:-1;;3455:23:1;;;3525:2;3510:18;;3497:32;;-1:-1:-1;3576:2:1;3561:18;;3548:32;;3627:2;3612:18;;3599:32;;-1:-1:-1;3678:3:1;3663:19;;3650:33;;-1:-1:-1;3730:3:1;3715:19;3702:33;;-1:-1:-1;3218:523:1;-1:-1:-1;3218:523:1:o;3746:750::-;3838:6;3846;3854;3907:2;3895:9;3886:7;3882:23;3878:32;3875:52;;;3923:1;3920;3913:12;3875:52;3963:9;3950:23;3992:18;4033:2;4025:6;4022:14;4019:34;;;4049:1;4046;4039:12;4019:34;4087:6;4076:9;4072:22;4062:32;;4132:7;4125:4;4121:2;4117:13;4113:27;4103:55;;4154:1;4151;4144:12;4103:55;4194:2;4181:16;4220:2;4212:6;4209:14;4206:34;;;4236:1;4233;4226:12;4206:34;4291:7;4284:4;4274:6;4271:1;4267:14;4263:2;4259:23;4255:34;4252:47;4249:67;;;4312:1;4309;4302:12;4249:67;4343:4;4335:13;;;;-1:-1:-1;4367:6:1;-1:-1:-1;;4408:20:1;;4395:34;4438:28;4395:34;4438:28;:::i;:::-;4485:5;4475:15;;;3746:750;;;;;:::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:217;6857:1;6883;6873:132;;6927:10;6922:3;6918:20;6915:1;6908:31;6962:4;6959:1;6952:15;6990:4;6987:1;6980:15;6873:132;-1:-1:-1;7019:9:1;;6817:217::o;7039:168::-;7112:9;;;7143;;7160:15;;;7154:22;;7140:37;7130:71;;7181:18;;:::i;7570:127::-;7631:10;7626:3;7622:20;7619:1;7612:31;7662:4;7659:1;7652:15;7686:4;7683:1;7676:15;7702:135;7741:3;7762:17;;;7759:43;;7782:18;;:::i;:::-;-1:-1:-1;7829:1:1;7818:13;;7702:135::o;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;8967:128::-;9034:9;;;9055:11;;;9052:37;;;9069:18;;:::i;9790:125::-;9855:9;;;9876:10;;;9873:36;;;9889:18;;:::i;11587:980::-;11849:4;11897:3;11886:9;11882:19;11928:6;11917:9;11910:25;11954:2;11992:6;11987:2;11976:9;11972:18;11965:34;12035:3;12030:2;12019:9;12015:18;12008:31;12059:6;12094;12088:13;12125:6;12117;12110:22;12163:3;12152:9;12148:19;12141:26;;12202:2;12194:6;12190:15;12176:29;;12223:1;12233:195;12247:6;12244:1;12241:13;12233:195;;;12312:13;;-1:-1:-1;;;;;12308:39:1;12296:52;;12403:15;;;;12368:12;;;;12344:1;12262:9;12233:195;;;-1:-1:-1;;;;;;;12484:32:1;;;;12479:2;12464:18;;12457:60;-1:-1:-1;;;12548:3:1;12533:19;12526:35;12445:3;11587:980;-1:-1:-1;;;11587:980:1:o;13394:306::-;13482:6;13490;13498;13551:2;13539:9;13530:7;13526:23;13522:32;13519:52;;;13567:1;13564;13557:12;13519:52;13596:9;13590:16;13580:26;;13646:2;13635:9;13631:18;13625:25;13615:35;;13690:2;13679:9;13675:18;13669:25;13659:35;;13394:306;;;;;:::o

Swarm Source

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