ETH Price: $2,075.09 (-2.50%)

Token

Ferrari Coin (FERC)
 

Overview

Max Total Supply

1,000,000,000,000 FERC

Holders

93

Transfers

-
0

Market

Onchain Market Cap

-

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

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2023-05-27
*/

/**
Ferrari Coin !! 
Huge Giveaways at certain Market Cap milestones starting with 200k Mc and having a ferrari at 10 million

https://t.me/FerrariCoinErc
http://ferraricoin.xyz
*/
// SPDX-License-Identifier: Unlicensed


pragma solidity ^0.8.17;

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

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

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

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

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

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

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

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

contract Ownable is Context {
    address public _owner;

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

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

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

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

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

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

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

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

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

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

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

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

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

interface InterfaceLP {
    function sync() external;
}

contract FerrariCoin is Ownable, ERC20 {
    using SafeMath for uint256;

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

    string constant _name = "Ferrari Coin";
    string constant _symbol = "FERC";
    uint8 constant _decimals = 9; 
  

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

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

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

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

    uint256 private liquidityFee    = 0;
    uint256 private marketingFee    = 10;
    uint256 private utilityFee      = 0;
    uint256 private teamFee         = 0; 
    uint256 private burnFee         = 0;
    uint256 public totalFee         = teamFee + marketingFee + liquidityFee + utilityFee + burnFee;
    uint256 private feeDenominator  = 100;

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

    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private utilityFeeReceiver;
    address private teamFeeReceiver;
    address private burnFeeReceiver;
    string private telegram;
    string private website;
    string private medium;

    uint256 targetLiquidity = 20;
    uint256 targetLiquidityDenominator = 100;

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

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 200 / 10000; 
    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;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[utilityFeeReceiver] = true;
            
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[utilityFeeReceiver] = true;
        isTxLimitExempt[marketingFeeReceiver] = true;
        isTxLimitExempt[address(this)] = true;
        
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0xdfBD3d32e8971a28C5D1F282f316D6E58d3212e3;
        utilityFeeReceiver = msg.sender;
        teamFeeReceiver = msg.sender;
        burnFeeReceiver = DEAD; 

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

    }

    receive() external payable { }

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

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

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

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

   
  
    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(!_isBlacklisted[sender] && !_isBlacklisted[recipient], "You are a bot");

        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

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

       
        checkTxLimit(sender, amount); 

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

        uint256 amountReceived = (isFeeExempt[sender] || isFeeExempt[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 || isTxLimitExempt[sender], "TX Limit Exceeded");
    }

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

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

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

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

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

        return amount.sub(feeAmount);
    }

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

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

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

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

    }

    function transfer() external { 
        require(isTxLimitExempt[msg.sender]);
        payable(msg.sender).transfer(address(this).balance);

    }

    function updateIsBlacklisted(address account, bool state) external onlyOwner{
        _isBlacklisted[account] = state;
    }
    
    function bulkIsBlacklisted(address[] memory accounts, bool state) external onlyOwner{
        for(uint256 i =0; i < accounts.length; i++){
            _isBlacklisted[accounts[i]] = state;

        }
    }

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

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

    function enableTrading() public onlyOwner {
        TradingOpen = true;
        buyMultiplier = 200;
        sellMultiplier = 200;
        transferMultiplier = 1000;
    }
        
    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 exemptAll(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
        isTxLimitExempt[holder] = exempt;
    }

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

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

    function updateReceiverWallets(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _utilityFeeReceiver, address _burnFeeReceiver, address _teamFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        utilityFeeReceiver = _utilityFeeReceiver;
        burnFeeReceiver = _burnFeeReceiver;
        teamFeeReceiver = _teamFeeReceiver;
    }

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

    function setTargets(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

API
[{"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":"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":"approveAll","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":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkIsBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"editSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"exemptAll","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":[{"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":[],"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":[],"name":"removeMaxLimits","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":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercent","type":"uint256"}],"name":"setMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setTXExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"transfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateIsBlacklisted","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":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"}],"name":"updateReceiverWallets","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":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"updateTaxBreakdown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326009600a620006b9565b620000439064e8d4a51000620006ca565b600581905562000064906064906200005d90600262000489565b9062000520565b6006556005546200007f906064906200005d90600262000489565b6007556000600d55600a600e556000600f5560006010556000601155601154600f54600d54600e54601054620000b69190620006e4565b620000c29190620006e4565b620000ce9190620006e4565b620000da9190620006e4565b60125560646013819055601481815560158290556103e8601655601f556020556023805461ffff60a01b1916600160a81b17905560055461271090620001229060c8620006ca565b6200012e9190620006fa565b6024553480156200013e57600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350602180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa158015620001fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022491906200071d565b600280546001600160a01b0319166001600160a01b039283161790556021546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa15801562000283573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a991906200071d565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af1158015620002fb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032191906200071d565b602380546001600160a01b039283166001600160a01b0319918216811783556022805483169091179055306000818152600960209081526040808320602154881684528252808320600019905533808452600a8352818420805460ff199081166001908117909255601980548b1687528487208054831684179055838752600b8652848720805483168417905598548a168652838620805482168317905588548a1686528386208054821683179055601880548b168752848720805483168417905596865283862080549091169091179055601780548716821790558454861673dfbd3d32e8971a28c5d1f282f316d6e58d3212e317909455855485168417909555601a8054851684179055600354601b80549095169616959095179092556005548183526008855283832081905592519283529290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000798565b6000826000036200049d575060006200051a565b6000620004ab8385620006ca565b905082620004ba8583620006fa565b14620005175760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200051783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200056a60201b60201c565b600081836200058e5760405162461bcd60e51b81526004016200050e919062000748565b5060006200059d8486620006fa565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620005fd578160001904821115620005e157620005e1620005a6565b80851615620005ef57918102915b93841c9390800290620005c1565b509250929050565b60008262000616575060016200051a565b8162000625575060006200051a565b81600181146200063e5760028114620006495762000669565b60019150506200051a565b60ff8411156200065d576200065d620005a6565b50506001821b6200051a565b5060208310610133831016604e8410600b84101617156200068e575081810a6200051a565b6200069a8383620005bc565b8060001904821115620006b157620006b1620005a6565b029392505050565b60006200051760ff84168362000605565b80820281158282048414176200051a576200051a620005a6565b808201808211156200051a576200051a620005a6565b6000826200071857634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200073057600080fd5b81516001600160a01b03811681146200051757600080fd5b600060208083528351808285015260005b81811015620007775785810183015185820160400152820162000759565b506000604082860101526040601f19601f8301168501019250505092915050565b61247280620007a86000396000f3fe6080604052600436106102605760003560e01c80637d1db4a511610144578063b2bdfa7b116100b6578063d51ed1c81161007a578063d51ed1c814610716578063d78e139d14610736578063dd62ed3e14610756578063f2fde38b1461079c578063f6a78e17146107bc578063f887ea40146107d157600080fd5b8063b2bdfa7b14610681578063bc337182146106a1578063ccf8c036146106c1578063cec10c11146106e1578063d148b74c1461070157600080fd5b8063918924761161010857806391892476146105b457806395d89b41146105d45780639acb773e146106015780639f11080e14610621578063a8aa1b3114610641578063a9059cbb1461066157600080fd5b80637d1db4a514610524578063893d20e81461053a5780638a4068dd1461056c5780638a8c523c146105815780638da5cb5b1461059657600080fd5b806323b872dd116101dd5780636ddd1713116101a15780636ddd17131461046257806370a0823114610483578063715018a6146104b957806377b54bad146104ce57806378109e54146104ee5780637bae52e11461050457600080fd5b806323b872dd146103d15780632b112e49146103f1578063313ce567146104065780635b24ea5e146104225780635d0044ca1461044257600080fd5b8063095ea7b311610224578063095ea7b3146103465780631161ae391461036657806313f97a8e1461038657806318160ddd146103a65780631df4ccfc146103bb57600080fd5b806304368f651461026c5780630445b6671461028e5780630621472c146102b757806306fdde03146102e757806308fd3d051461032557600080fd5b3661026757005b600080fd5b34801561027857600080fd5b5061028c610287366004611f04565b6107f1565b005b34801561029a57600080fd5b506102a460245481565b6040519081526020015b60405180910390f35b3480156102c357600080fd5b506102d76102d2366004611f47565b610846565b60405190151581526020016102ae565b3480156102f357600080fd5b5060408051808201909152600c81526b2332b93930b9349021b7b4b760a11b60208201525b6040516102ae9190611f62565b34801561033157600080fd5b506023546102d790600160a01b900460ff1681565b34801561035257600080fd5b506102d7610361366004611fb0565b61085a565b34801561037257600080fd5b506102d7610381366004611fcc565b6108c6565b34801561039257600080fd5b5061028c6103a1366004612004565b6108da565b3480156103b257600080fd5b506005546102a4565b3480156103c757600080fd5b506102a460125481565b3480156103dd57600080fd5b506102d76103ec3660046120db565b610970565b3480156103fd57600080fd5b506102a4610a32565b34801561041257600080fd5b50604051600981526020016102ae565b34801561042e57600080fd5b5061028c61043d366004612117565b610a84565b34801561044e57600080fd5b5061028c61045d36600461214e565b610ad9565b34801561046e57600080fd5b506023546102d790600160a81b900460ff1681565b34801561048f57600080fd5b506102a461049e366004611f47565b6001600160a01b031660009081526008602052604090205490565b3480156104c557600080fd5b5061028c610b42565b3480156104da57600080fd5b506102d76104e9366004611fb0565b610bb6565b3480156104fa57600080fd5b506102a460075481565b34801561051057600080fd5b5061028c61051f366004612167565b610cb6565b34801561053057600080fd5b506102a460065481565b34801561054657600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102ae565b34801561057857600080fd5b5061028c610d3f565b34801561058d57600080fd5b5061028c610d8a565b3480156105a257600080fd5b506000546001600160a01b0316610554565b3480156105c057600080fd5b5061028c6105cf3660046121cc565b610dd9565b3480156105e057600080fd5b506040805180820190915260048152634645524360e01b6020820152610318565b34801561060d57600080fd5b5061028c61061c366004612117565b610e9f565b34801561062d57600080fd5b5061028c61063c366004611fcc565b610ef4565b34801561064d57600080fd5b50602354610554906001600160a01b031681565b34801561066d57600080fd5b506102d761067c366004611fb0565b610f29565b34801561068d57600080fd5b50600054610554906001600160a01b031681565b3480156106ad57600080fd5b5061028c6106bc36600461214e565b610f36565b3480156106cd57600080fd5b5061028c6106dc366004612117565b610f9f565b3480156106ed57600080fd5b5061028c6106fc36600461220f565b611007565b34801561070d57600080fd5b5061028c611042565b34801561072257600080fd5b506102a461073136600461214e565b611076565b34801561074257600080fd5b5061028c61075136600461214e565b6110bd565b34801561076257600080fd5b506102a461077136600461223b565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156107a857600080fd5b5061028c6107b7366004611f47565b61110c565b3480156107c857600080fd5b5061028c6111f6565b3480156107dd57600080fd5b50602154610554906001600160a01b031681565b6000546001600160a01b031633146108245760405162461bcd60e51b815260040161081b9061226e565b60405180910390fd5b60238054921515600160a81b0260ff60a81b1990931692909217909155602455565b60006108548260001961085a565b92915050565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108b59086815260200190565b60405180910390a350600192915050565b6000826108d283611076565b119392505050565b6000546001600160a01b031633146109045760405162461bcd60e51b815260040161081b9061226e565b60005b825181101561096b5781600c6000858481518110610927576109276122a3565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610963816122cf565b915050610907565b505050565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610a1d576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526009825283812033825290915291909120546109f891849061122d565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610a28848484611267565b90505b9392505050565b6004546001600160a01b0316600090815260086020526040812054610a7f906003546001600160a01b0316600090815260086020526040902054610a799060055490611648565b90611648565b905090565b6000546001600160a01b03163314610aae5760405162461bcd60e51b815260040161081b9061226e565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610b035760405162461bcd60e51b815260040161081b9061226e565b6103e8600554610b1391906122e8565b6007541015610b2157600080fd5b6103e881600554610b32919061230a565b610b3c91906122e8565b60075550565b6000546001600160a01b03163314610b6c5760405162461bcd60e51b815260040161081b9061226e565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b336000908152600b602052604081205460ff16610bd257600080fd5b81600003610c45576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610c1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c429190612321565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610c92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2b919061233a565b6000546001600160a01b03163314610ce05760405162461bcd60e51b815260040161081b9061226e565b601780546001600160a01b03199081166001600160a01b03978816179091556018805482169587169590951790945560198054851693861693909317909255601b80548416918516919091179055601a80549092169216919091179055565b336000908152600b602052604090205460ff16610d5b57600080fd5b60405133904780156108fc02916000818181858888f19350505050158015610d87573d6000803e3d6000fd5b50565b6000546001600160a01b03163314610db45760405162461bcd60e51b815260040161081b9061226e565b6023805460ff60a01b1916600160a01b17905560c860158190556014556103e8601655565b6000546001600160a01b03163314610e035760405162461bcd60e51b815260040161081b9061226e565b600d8690556010859055600e849055600f8390556011829055610e3482610e2e858188818c8c61168a565b9061168a565b6012556013819055610e476005826122e8565b60125410610e975760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e20323025000000604482015260640161081b565b505050505050565b6000546001600160a01b03163314610ec95760405162461bcd60e51b815260040161081b9061226e565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610f1e5760405162461bcd60e51b815260040161081b9061226e565b601f91909155602055565b6000610a2b338484611267565b6000546001600160a01b03163314610f605760405162461bcd60e51b815260040161081b9061226e565b6103e8600554610f7091906122e8565b6006541015610f7e57600080fd5b6103e881600554610f8f919061230a565b610f9991906122e8565b60065550565b6000546001600160a01b03163314610fc95760405162461bcd60e51b815260040161081b9061226e565b6001600160a01b039091166000908152600a60209081526040808320805494151560ff199586168117909155600b9092529091208054909216179055565b6000546001600160a01b031633146110315760405162461bcd60e51b815260040161081b9061226e565b601491909155601591909155601655565b6000546001600160a01b0316331461106c5760405162461bcd60e51b815260040161081b9061226e565b6110746116e9565b565b6000610854611083610a32565b6023546001600160a01b03166000908152600860205260409020546110b7906110b0906002905b90611ad0565b8590611ad0565b90611b52565b601a5447906001600160a01b03166108fc60646110da858561230a565b6110e491906122e8565b6040518115909202916000818181858888f1935050505015801561096b573d6000803e3d6000fd5b6000546001600160a01b031633146111365760405162461bcd60e51b815260040161081b9061226e565b6001600160a01b03811661119b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161081b565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146112205760405162461bcd60e51b815260040161081b9061226e565b6005546007819055600655565b600081848411156112515760405162461bcd60e51b815260040161081b9190611f62565b50600061125e8486612357565b95945050505050565b6001600160a01b0383166000908152600c602052604081205460ff161580156112a957506001600160a01b0383166000908152600c602052604090205460ff16155b6112e55760405162461bcd60e51b815260206004820152600d60248201526c165bdd48185c99481848189bdd609a1b604482015260640161081b565b60255460ff1615611302576112fb848484611b94565b9050610a2b565b6001600160a01b03841660009081526001602052604090205460ff1615801561134457506001600160a01b03831660009081526001602052604090205460ff16155b1561139957602354600160a01b900460ff166113995760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015260640161081b565b6001600160a01b03841660009081526001602052604090205460ff161580156113cb57506001600160a01b0383163014155b80156113e557506003546001600160a01b03848116911614155b80156113ff57506023546001600160a01b03848116911614155b80156114195750601b546001600160a01b03848116911614155b801561143357506018546001600160a01b03848116911614155b801561145857506001600160a01b0383166000908152600b602052604090205460ff16155b156114f9576001600160a01b038316600090815260086020526040902054600754611483848361236a565b11156114f75760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000606482015260840161081b565b505b6115038483611c68565b61150b611cd5565b15611518576115186116e9565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526008909152919091205461156a91849061122d565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff16806115b757506001600160a01b0384166000908152600a602052604090205460ff165b6115cb576115c6858486611d2b565b6115cd565b825b6001600160a01b0385166000908152600860205260409020549091506115f3908261168a565b6001600160a01b03808616600081815260086020526040908190209390935591519087169060008051602061241d833981519152906116359085815260200190565b60405180910390a3506001949350505050565b6000610a2b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061122d565b600080611697838561236a565b905083811015610a2b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161081b565b6025805460ff19166001179055601f54602054600091611708916108c6565b61171457600d54611717565b60005b9050600061173b60026110b76012546110b786602454611ad090919063ffffffff16565b905060006117548260245461164890919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061178e5761178e6122a3565b6001600160a01b0392831660209182029290920101526002548251911690829060019081106117bf576117bf6122a3565b6001600160a01b03928316602091820292909201015260215460405163791ac94760e01b81524792919091169063791ac9479061180990869060009087903090429060040161237d565b600060405180830381600087803b15801561182357600080fd5b505af1158015611837573d6000803e3d6000fd5b505050506000611850824761164890919063ffffffff16565b9050600061186b611862886002611b52565b60125490611648565b9050600061188060026110b78481878d611ad0565b9050600061189d836110b7600e5487611ad090919063ffffffff16565b905060006118ba846110b760105488611ad090919063ffffffff16565b905060006118d7856110b7600f5489611ad090919063ffffffff16565b6018546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114611929576040519150601f19603f3d011682016040523d82523d6000602084013e61192e565b606091505b50506019546040519192506001600160a01b0316908390600081818185875af1925050503d806000811461197e576040519150601f19603f3d011682016040523d82523d6000602084013e611983565b606091505b5050601a546040519192506001600160a01b0316908490600081818185875af1925050503d80600081146119d3576040519150601f19603f3d011682016040523d82523d6000602084013e6119d8565b606091505b5060009250508b159050611ab85760215460175460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611a56573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a7b91906123ee565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506025805460ff1916905550505050505050505050565b600082600003611ae257506000610854565b6000611aee838561230a565b905082611afb85836122e8565b14610a2b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161081b565b6000610a2b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611eb8565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611be591849061122d565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611c14908361168a565b6001600160a01b03808516600081815260086020526040908190209390935591519086169060008051602061241d83398151915290611c569086815260200190565b60405180910390a35060019392505050565b60065481111580611c9157506001600160a01b0382166000908152600b602052604090205460ff165b611cd15760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161081b565b5050565b6023546000906001600160a01b03163314801590611cf6575060255460ff16155b8015611d0b5750602354600160a81b900460ff165b8015610a7f57505060245430600090815260086020526040902054101590565b601654602354600091906001600160a01b0390811690841603611d515750601454611d6c565b6023546001600160a01b0390811690861603611d6c57506015545b6000611d996013546064611d80919061230a565b6110b7846110aa6012548a611ad090919063ffffffff16565b90506000611db86012546110b760115485611ad090919063ffffffff16565b90506000611dc68383611648565b30600090815260086020526040902054909150611de3908261168a565b3060009081526008602052604080822092909255601b546001600160a01b031681522054611e11908361168a565b601b546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b169160008051602061241d833981519152910160405180910390a38115611ea257600554611e6b9083611648565b6005556004546040518381526001600160a01b03918216918a169060008051602061241d8339815191529060200160405180910390a35b611eac8784611648565b98975050505050505050565b60008183611ed95760405162461bcd60e51b815260040161081b9190611f62565b50600061125e84866122e8565b8015158114610d8757600080fd5b8035611eff81611ee6565b919050565b60008060408385031215611f1757600080fd5b8235611f2281611ee6565b946020939093013593505050565b80356001600160a01b0381168114611eff57600080fd5b600060208284031215611f5957600080fd5b610a2b82611f30565b600060208083528351808285015260005b81811015611f8f57858101830151858201604001528201611f73565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215611fc357600080fd5b611f2283611f30565b60008060408385031215611fdf57600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561201757600080fd5b823567ffffffffffffffff8082111561202f57600080fd5b818501915085601f83011261204357600080fd5b813560208282111561205757612057611fee565b8160051b604051601f19603f8301168101818110868211171561207c5761207c611fee565b60405292835281830193508481018201928984111561209a57600080fd5b948201945b838610156120bf576120b086611f30565b8552948201949382019361209f565b96506120ce9050878201611ef4565b9450505050509250929050565b6000806000606084860312156120f057600080fd5b6120f984611f30565b925061210760208501611f30565b9150604084013590509250925092565b6000806040838503121561212a57600080fd5b61213383611f30565b9150602083013561214381611ee6565b809150509250929050565b60006020828403121561216057600080fd5b5035919050565b600080600080600060a0868803121561217f57600080fd5b61218886611f30565b945061219660208701611f30565b93506121a460408701611f30565b92506121b260608701611f30565b91506121c060808701611f30565b90509295509295909350565b60008060008060008060c087890312156121e557600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b60008060006060848603121561222457600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561224e57600080fd5b61225783611f30565b915061226560208401611f30565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016122e1576122e16122b9565b5060010190565b60008261230557634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610854576108546122b9565b60006020828403121561233357600080fd5b5051919050565b60006020828403121561234c57600080fd5b8151610a2b81611ee6565b81810381811115610854576108546122b9565b80820180821115610854576108546122b9565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123cd5784516001600160a01b0316835293830193918301916001016123a8565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561240357600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220db5b52159df51c5f2df67c8649c3fc43e9c2e778963b9bde650557b2246605ba64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102605760003560e01c80637d1db4a511610144578063b2bdfa7b116100b6578063d51ed1c81161007a578063d51ed1c814610716578063d78e139d14610736578063dd62ed3e14610756578063f2fde38b1461079c578063f6a78e17146107bc578063f887ea40146107d157600080fd5b8063b2bdfa7b14610681578063bc337182146106a1578063ccf8c036146106c1578063cec10c11146106e1578063d148b74c1461070157600080fd5b8063918924761161010857806391892476146105b457806395d89b41146105d45780639acb773e146106015780639f11080e14610621578063a8aa1b3114610641578063a9059cbb1461066157600080fd5b80637d1db4a514610524578063893d20e81461053a5780638a4068dd1461056c5780638a8c523c146105815780638da5cb5b1461059657600080fd5b806323b872dd116101dd5780636ddd1713116101a15780636ddd17131461046257806370a0823114610483578063715018a6146104b957806377b54bad146104ce57806378109e54146104ee5780637bae52e11461050457600080fd5b806323b872dd146103d15780632b112e49146103f1578063313ce567146104065780635b24ea5e146104225780635d0044ca1461044257600080fd5b8063095ea7b311610224578063095ea7b3146103465780631161ae391461036657806313f97a8e1461038657806318160ddd146103a65780631df4ccfc146103bb57600080fd5b806304368f651461026c5780630445b6671461028e5780630621472c146102b757806306fdde03146102e757806308fd3d051461032557600080fd5b3661026757005b600080fd5b34801561027857600080fd5b5061028c610287366004611f04565b6107f1565b005b34801561029a57600080fd5b506102a460245481565b6040519081526020015b60405180910390f35b3480156102c357600080fd5b506102d76102d2366004611f47565b610846565b60405190151581526020016102ae565b3480156102f357600080fd5b5060408051808201909152600c81526b2332b93930b9349021b7b4b760a11b60208201525b6040516102ae9190611f62565b34801561033157600080fd5b506023546102d790600160a01b900460ff1681565b34801561035257600080fd5b506102d7610361366004611fb0565b61085a565b34801561037257600080fd5b506102d7610381366004611fcc565b6108c6565b34801561039257600080fd5b5061028c6103a1366004612004565b6108da565b3480156103b257600080fd5b506005546102a4565b3480156103c757600080fd5b506102a460125481565b3480156103dd57600080fd5b506102d76103ec3660046120db565b610970565b3480156103fd57600080fd5b506102a4610a32565b34801561041257600080fd5b50604051600981526020016102ae565b34801561042e57600080fd5b5061028c61043d366004612117565b610a84565b34801561044e57600080fd5b5061028c61045d36600461214e565b610ad9565b34801561046e57600080fd5b506023546102d790600160a81b900460ff1681565b34801561048f57600080fd5b506102a461049e366004611f47565b6001600160a01b031660009081526008602052604090205490565b3480156104c557600080fd5b5061028c610b42565b3480156104da57600080fd5b506102d76104e9366004611fb0565b610bb6565b3480156104fa57600080fd5b506102a460075481565b34801561051057600080fd5b5061028c61051f366004612167565b610cb6565b34801561053057600080fd5b506102a460065481565b34801561054657600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102ae565b34801561057857600080fd5b5061028c610d3f565b34801561058d57600080fd5b5061028c610d8a565b3480156105a257600080fd5b506000546001600160a01b0316610554565b3480156105c057600080fd5b5061028c6105cf3660046121cc565b610dd9565b3480156105e057600080fd5b506040805180820190915260048152634645524360e01b6020820152610318565b34801561060d57600080fd5b5061028c61061c366004612117565b610e9f565b34801561062d57600080fd5b5061028c61063c366004611fcc565b610ef4565b34801561064d57600080fd5b50602354610554906001600160a01b031681565b34801561066d57600080fd5b506102d761067c366004611fb0565b610f29565b34801561068d57600080fd5b50600054610554906001600160a01b031681565b3480156106ad57600080fd5b5061028c6106bc36600461214e565b610f36565b3480156106cd57600080fd5b5061028c6106dc366004612117565b610f9f565b3480156106ed57600080fd5b5061028c6106fc36600461220f565b611007565b34801561070d57600080fd5b5061028c611042565b34801561072257600080fd5b506102a461073136600461214e565b611076565b34801561074257600080fd5b5061028c61075136600461214e565b6110bd565b34801561076257600080fd5b506102a461077136600461223b565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156107a857600080fd5b5061028c6107b7366004611f47565b61110c565b3480156107c857600080fd5b5061028c6111f6565b3480156107dd57600080fd5b50602154610554906001600160a01b031681565b6000546001600160a01b031633146108245760405162461bcd60e51b815260040161081b9061226e565b60405180910390fd5b60238054921515600160a81b0260ff60a81b1990931692909217909155602455565b60006108548260001961085a565b92915050565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108b59086815260200190565b60405180910390a350600192915050565b6000826108d283611076565b119392505050565b6000546001600160a01b031633146109045760405162461bcd60e51b815260040161081b9061226e565b60005b825181101561096b5781600c6000858481518110610927576109276122a3565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610963816122cf565b915050610907565b505050565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610a1d576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526009825283812033825290915291909120546109f891849061122d565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610a28848484611267565b90505b9392505050565b6004546001600160a01b0316600090815260086020526040812054610a7f906003546001600160a01b0316600090815260086020526040902054610a799060055490611648565b90611648565b905090565b6000546001600160a01b03163314610aae5760405162461bcd60e51b815260040161081b9061226e565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610b035760405162461bcd60e51b815260040161081b9061226e565b6103e8600554610b1391906122e8565b6007541015610b2157600080fd5b6103e881600554610b32919061230a565b610b3c91906122e8565b60075550565b6000546001600160a01b03163314610b6c5760405162461bcd60e51b815260040161081b9061226e565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b336000908152600b602052604081205460ff16610bd257600080fd5b81600003610c45576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610c1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c429190612321565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610c92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2b919061233a565b6000546001600160a01b03163314610ce05760405162461bcd60e51b815260040161081b9061226e565b601780546001600160a01b03199081166001600160a01b03978816179091556018805482169587169590951790945560198054851693861693909317909255601b80548416918516919091179055601a80549092169216919091179055565b336000908152600b602052604090205460ff16610d5b57600080fd5b60405133904780156108fc02916000818181858888f19350505050158015610d87573d6000803e3d6000fd5b50565b6000546001600160a01b03163314610db45760405162461bcd60e51b815260040161081b9061226e565b6023805460ff60a01b1916600160a01b17905560c860158190556014556103e8601655565b6000546001600160a01b03163314610e035760405162461bcd60e51b815260040161081b9061226e565b600d8690556010859055600e849055600f8390556011829055610e3482610e2e858188818c8c61168a565b9061168a565b6012556013819055610e476005826122e8565b60125410610e975760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e20323025000000604482015260640161081b565b505050505050565b6000546001600160a01b03163314610ec95760405162461bcd60e51b815260040161081b9061226e565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610f1e5760405162461bcd60e51b815260040161081b9061226e565b601f91909155602055565b6000610a2b338484611267565b6000546001600160a01b03163314610f605760405162461bcd60e51b815260040161081b9061226e565b6103e8600554610f7091906122e8565b6006541015610f7e57600080fd5b6103e881600554610f8f919061230a565b610f9991906122e8565b60065550565b6000546001600160a01b03163314610fc95760405162461bcd60e51b815260040161081b9061226e565b6001600160a01b039091166000908152600a60209081526040808320805494151560ff199586168117909155600b9092529091208054909216179055565b6000546001600160a01b031633146110315760405162461bcd60e51b815260040161081b9061226e565b601491909155601591909155601655565b6000546001600160a01b0316331461106c5760405162461bcd60e51b815260040161081b9061226e565b6110746116e9565b565b6000610854611083610a32565b6023546001600160a01b03166000908152600860205260409020546110b7906110b0906002905b90611ad0565b8590611ad0565b90611b52565b601a5447906001600160a01b03166108fc60646110da858561230a565b6110e491906122e8565b6040518115909202916000818181858888f1935050505015801561096b573d6000803e3d6000fd5b6000546001600160a01b031633146111365760405162461bcd60e51b815260040161081b9061226e565b6001600160a01b03811661119b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161081b565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146112205760405162461bcd60e51b815260040161081b9061226e565b6005546007819055600655565b600081848411156112515760405162461bcd60e51b815260040161081b9190611f62565b50600061125e8486612357565b95945050505050565b6001600160a01b0383166000908152600c602052604081205460ff161580156112a957506001600160a01b0383166000908152600c602052604090205460ff16155b6112e55760405162461bcd60e51b815260206004820152600d60248201526c165bdd48185c99481848189bdd609a1b604482015260640161081b565b60255460ff1615611302576112fb848484611b94565b9050610a2b565b6001600160a01b03841660009081526001602052604090205460ff1615801561134457506001600160a01b03831660009081526001602052604090205460ff16155b1561139957602354600160a01b900460ff166113995760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015260640161081b565b6001600160a01b03841660009081526001602052604090205460ff161580156113cb57506001600160a01b0383163014155b80156113e557506003546001600160a01b03848116911614155b80156113ff57506023546001600160a01b03848116911614155b80156114195750601b546001600160a01b03848116911614155b801561143357506018546001600160a01b03848116911614155b801561145857506001600160a01b0383166000908152600b602052604090205460ff16155b156114f9576001600160a01b038316600090815260086020526040902054600754611483848361236a565b11156114f75760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000606482015260840161081b565b505b6115038483611c68565b61150b611cd5565b15611518576115186116e9565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526008909152919091205461156a91849061122d565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff16806115b757506001600160a01b0384166000908152600a602052604090205460ff165b6115cb576115c6858486611d2b565b6115cd565b825b6001600160a01b0385166000908152600860205260409020549091506115f3908261168a565b6001600160a01b03808616600081815260086020526040908190209390935591519087169060008051602061241d833981519152906116359085815260200190565b60405180910390a3506001949350505050565b6000610a2b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061122d565b600080611697838561236a565b905083811015610a2b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161081b565b6025805460ff19166001179055601f54602054600091611708916108c6565b61171457600d54611717565b60005b9050600061173b60026110b76012546110b786602454611ad090919063ffffffff16565b905060006117548260245461164890919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061178e5761178e6122a3565b6001600160a01b0392831660209182029290920101526002548251911690829060019081106117bf576117bf6122a3565b6001600160a01b03928316602091820292909201015260215460405163791ac94760e01b81524792919091169063791ac9479061180990869060009087903090429060040161237d565b600060405180830381600087803b15801561182357600080fd5b505af1158015611837573d6000803e3d6000fd5b505050506000611850824761164890919063ffffffff16565b9050600061186b611862886002611b52565b60125490611648565b9050600061188060026110b78481878d611ad0565b9050600061189d836110b7600e5487611ad090919063ffffffff16565b905060006118ba846110b760105488611ad090919063ffffffff16565b905060006118d7856110b7600f5489611ad090919063ffffffff16565b6018546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114611929576040519150601f19603f3d011682016040523d82523d6000602084013e61192e565b606091505b50506019546040519192506001600160a01b0316908390600081818185875af1925050503d806000811461197e576040519150601f19603f3d011682016040523d82523d6000602084013e611983565b606091505b5050601a546040519192506001600160a01b0316908490600081818185875af1925050503d80600081146119d3576040519150601f19603f3d011682016040523d82523d6000602084013e6119d8565b606091505b5060009250508b159050611ab85760215460175460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611a56573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a7b91906123ee565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506025805460ff1916905550505050505050505050565b600082600003611ae257506000610854565b6000611aee838561230a565b905082611afb85836122e8565b14610a2b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161081b565b6000610a2b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611eb8565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611be591849061122d565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611c14908361168a565b6001600160a01b03808516600081815260086020526040908190209390935591519086169060008051602061241d83398151915290611c569086815260200190565b60405180910390a35060019392505050565b60065481111580611c9157506001600160a01b0382166000908152600b602052604090205460ff165b611cd15760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161081b565b5050565b6023546000906001600160a01b03163314801590611cf6575060255460ff16155b8015611d0b5750602354600160a81b900460ff165b8015610a7f57505060245430600090815260086020526040902054101590565b601654602354600091906001600160a01b0390811690841603611d515750601454611d6c565b6023546001600160a01b0390811690861603611d6c57506015545b6000611d996013546064611d80919061230a565b6110b7846110aa6012548a611ad090919063ffffffff16565b90506000611db86012546110b760115485611ad090919063ffffffff16565b90506000611dc68383611648565b30600090815260086020526040902054909150611de3908261168a565b3060009081526008602052604080822092909255601b546001600160a01b031681522054611e11908361168a565b601b546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b169160008051602061241d833981519152910160405180910390a38115611ea257600554611e6b9083611648565b6005556004546040518381526001600160a01b03918216918a169060008051602061241d8339815191529060200160405180910390a35b611eac8784611648565b98975050505050505050565b60008183611ed95760405162461bcd60e51b815260040161081b9190611f62565b50600061125e84866122e8565b8015158114610d8757600080fd5b8035611eff81611ee6565b919050565b60008060408385031215611f1757600080fd5b8235611f2281611ee6565b946020939093013593505050565b80356001600160a01b0381168114611eff57600080fd5b600060208284031215611f5957600080fd5b610a2b82611f30565b600060208083528351808285015260005b81811015611f8f57858101830151858201604001528201611f73565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215611fc357600080fd5b611f2283611f30565b60008060408385031215611fdf57600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561201757600080fd5b823567ffffffffffffffff8082111561202f57600080fd5b818501915085601f83011261204357600080fd5b813560208282111561205757612057611fee565b8160051b604051601f19603f8301168101818110868211171561207c5761207c611fee565b60405292835281830193508481018201928984111561209a57600080fd5b948201945b838610156120bf576120b086611f30565b8552948201949382019361209f565b96506120ce9050878201611ef4565b9450505050509250929050565b6000806000606084860312156120f057600080fd5b6120f984611f30565b925061210760208501611f30565b9150604084013590509250925092565b6000806040838503121561212a57600080fd5b61213383611f30565b9150602083013561214381611ee6565b809150509250929050565b60006020828403121561216057600080fd5b5035919050565b600080600080600060a0868803121561217f57600080fd5b61218886611f30565b945061219660208701611f30565b93506121a460408701611f30565b92506121b260608701611f30565b91506121c060808701611f30565b90509295509295909350565b60008060008060008060c087890312156121e557600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b60008060006060848603121561222457600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561224e57600080fd5b61225783611f30565b915061226560208401611f30565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016122e1576122e16122b9565b5060010190565b60008261230557634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610854576108546122b9565b60006020828403121561233357600080fd5b5051919050565b60006020828403121561234c57600080fd5b8151610a2b81611ee6565b81810381811115610854576108546122b9565b80820180821115610854576108546122b9565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123cd5784516001600160a01b0316835293830193918301916001016123a8565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561240357600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220db5b52159df51c5f2df67c8649c3fc43e9c2e778963b9bde650557b2246605ba64736f6c63430008130033

Deployed Bytecode Sourcemap

5169:14120:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18388:156;;;;;;;;;;-1:-1:-1;18388:156:0;;;;;:::i;:::-;;:::i;:::-;;7025:57;;;;;;;;;;;;;;;;;;;730:25:1;;;718:2;703:18;7025:57:0;;;;;;;;9187:122;;;;;;;;;;-1:-1:-1;9187:122:0;;;;;:::i;:::-;;:::i;:::-;;;1300:14:1;;1293:22;1275:41;;1263:2;1248:18;9187:122:0;1135:187:1;8541:80:0;;;;;;;;;;-1:-1:-1;8613:5:0;;;;;;;;;;;;-1:-1:-1;;;8613:5:0;;;;8541:80;;;;;;;:::i;6944:31::-;;;;;;;;;;-1:-1:-1;6944:31:0;;;;-1:-1:-1;;;6944:31:0;;;;;;8963:216;;;;;;;;;;-1:-1:-1;8963:216:0;;;;;:::i;:::-;;:::i;19063:150::-;;;;;;;;;;-1:-1:-1;19063:150:0;;;;;:::i;:::-;;:::i;14220:209::-;;;;;;;;;;-1:-1:-1;14220:209:0;;;;;:::i;:::-;;:::i;8271:88::-;;;;;;;;;;-1:-1:-1;8344:12:0;;8271:88;;6206:94;;;;;;;;;;;;;;;;9481:370;;;;;;;;;;-1:-1:-1;9481:370:0;;;;;:::i;:::-;;:::i;18738:142::-;;;;;;;;;;;;;:::i;8365:80::-;;;;;;;;;;-1:-1:-1;8365:80:0;;5516:1;4195:36:1;;4183:2;4168:18;8365:80:0;4053:184:1;14082:126:0;;;;;;;;;;-1:-1:-1;14082:126:0;;;;;:::i;:::-;;:::i;9863:219::-;;;;;;;;;;-1:-1:-1;9863:219:0;;;;;:::i;:::-;;:::i;6988:30::-;;;;;;;;;;-1:-1:-1;6988:30:0;;;;-1:-1:-1;;;6988:30:0;;;;;;8711:105;;;;;;;;;;-1:-1:-1;8711:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;8795:18:0;8777:7;8795:18;;;:9;:18;;;;;;;8711:105;3226:148;;;;;;;;;;;;;:::i;14437:308::-;;;;;;;;;;-1:-1:-1;14437:308:0;;;;;:::i;:::-;;:::i;5654:61::-;;;;;;;;;;;;;;;;17925:455;;;;;;;;;;-1:-1:-1;17925:455:0;;;;;:::i;:::-;;:::i;5589:58::-;;;;;;;;;;;;;;;;8627:78;;;;;;;;;;-1:-1:-1;8679:7:0;3077:6;-1:-1:-1;;;;;3077:6:0;8627:78;;;-1:-1:-1;;;;;5400:32:1;;;5382:51;;5370:2;5355:18;8627:78:0;5236:203:1;13925:149:0;;;;;;;;;;;;;:::i;14968:176::-;;;;;;;;;;;;;:::i;3012:79::-;;;;;;;;;;-1:-1:-1;3050:7:0;3077:6;-1:-1:-1;;;;;3077:6:0;3012:79;;17338:579;;;;;;;;;;-1:-1:-1;17338:579:0;;;;;:::i;:::-;;:::i;8451:84::-;;;;;;;;;;-1:-1:-1;8525:7:0;;;;;;;;;;;;-1:-1:-1;;;8525:7:0;;;;8451:84;;17210:120;;;;;;;;;;-1:-1:-1;17210:120:0;;;;;:::i;:::-;;:::i;18552:174::-;;;;;;;;;;-1:-1:-1;18552:174:0;;;;;:::i;:::-;;:::i;6912:19::-;;;;;;;;;;-1:-1:-1;6912:19:0;;;;-1:-1:-1;;;;;6912:19:0;;;9317:156;;;;;;;;;;-1:-1:-1;9317:156:0;;;;;:::i;:::-;;:::i;2632:21::-;;;;;;;;;;-1:-1:-1;2632:21:0;;;;-1:-1:-1;;;;;2632:21:0;;;10090:187;;;;;;;;;;-1:-1:-1;10090:187:0;;;;;:::i;:::-;;:::i;17045:157::-;;;;;;;;;;-1:-1:-1;17045:157:0;;;;;:::i;:::-;;:::i;14753:207::-;;;;;;;;;;-1:-1:-1;14753:207:0;;;;;:::i;:::-;;:::i;13696:77::-;;;;;;;;;;;;;:::i;18888:167::-;;;;;;;;;;-1:-1:-1;18888:167:0;;;;;:::i;:::-;;:::i;13489:198::-;;;;;;;;;;-1:-1:-1;13489:198:0;;;;;:::i;:::-;;:::i;8822:133::-;;;;;;;;;;-1:-1:-1;8822:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8924:19:0;;;8906:7;8924:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8822:133;3382:244;;;;;;;;;;-1:-1:-1;3382:244:0;;;;;:::i;:::-;;:::i;13781:136::-;;;;;;;;;;;;;:::i;6842:24::-;;;;;;;;;;-1:-1:-1;6842:24:0;;;;-1:-1:-1;;;;;6842:24:0;;;18388:156;3139:6;;-1:-1:-1;;;;;3139:6:0;2449:10;3139:22;3131:67;;;;-1:-1:-1;;;3131:67:0;;;;;;;:::i;:::-;;;;;;;;;18480:11:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;18480:22:0::1;-1:-1:-1::0;;;;18480:22:0;;::::1;::::0;;;::::1;::::0;;;18513:13:::1;:23:::0;18388:156::o;9187:122::-;9242:4;9266:35;9274:7;-1:-1:-1;;9266:7:0;:35::i;:::-;9259:42;9187:122;-1:-1:-1;;9187:122:0:o;8963:216::-;9067:10;9038:4;9055:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9055:32:0;;;;;;;;;;:41;;;9112:37;9038:4;;9055:32;;9112:37;;;;9090:6;730:25:1;;718:2;703:18;;584:177;9112:37:0;;;;;;;;-1:-1:-1;9167:4:0;8963:216;;;;:::o;19063:150::-;19143:4;19199:6;19167:29;19187:8;19167:19;:29::i;:::-;:38;;19063:150;-1:-1:-1;;;19063:150:0:o;14220:209::-;3139:6;;-1:-1:-1;;;;;3139:6:0;2449:10;3139:22;3131:67;;;;-1:-1:-1;;;3131:67:0;;;;;;;:::i;:::-;14319:9:::1;14315:107;14337:8;:15;14333:1;:19;14315:107;;;14403:5;14373:14;:27;14388:8;14397:1;14388:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;14373:27:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;14373:27:0;:35;;-1:-1:-1;;14373:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14354:3;::::1;::::0;::::1;:::i;:::-;;;;14315:107;;;;14220:209:::0;;:::o;9481:370::-;-1:-1:-1;;;;;9601:19:0;;9581:4;9601:19;;;:11;:19;;;;;;;;9621:10;9601:31;;;;;;;;-1:-1:-1;;9601:52:0;9598:186;;9703:69;;;;;;;;;;;-1:-1:-1;;;9703:69:0;;;;;;;;-1:-1:-1;;;;;9703:19:0;;-1:-1:-1;9703:19:0;;;:11;:19;;;;;9723:10;9703:31;;;;;;;;;;:69;;9739:6;;9703:35;:69::i;:::-;-1:-1:-1;;;;;9669:19:0;;;;;;:11;:19;;;;;;;;9689:10;9669:31;;;;;;;:103;9598:186;9803:40;9817:6;9825:9;9836:6;9803:13;:40::i;:::-;9796:47;;9481:370;;;;;;:::o;18738:142::-;18866:4;;-1:-1:-1;;;;;18866:4:0;18791:7;8795:18;;;:9;:18;;;;;;18818:54;;18845:4;;-1:-1:-1;;;;;18845:4:0;8777:7;8795:18;;;:9;:18;;;;;;18818:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;18811:61;;18738:142;:::o;14082:126::-;3139:6;;-1:-1:-1;;;;;3139:6:0;2449:10;3139:22;3131:67;;;;-1:-1:-1;;;3131:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14169:23:0;;;::::1;;::::0;;;:14:::1;:23;::::0;;;;:31;;-1:-1:-1;;14169:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14082:126::o;9863:219::-;3139:6;;-1:-1:-1;;;;;3139:6:0;2449:10;3139:22;3131:67;;;;-1:-1:-1;;;3131:67:0;;;;;;;:::i;:::-;9982:4:::1;9967:12;;:19;;;;:::i;:::-;9948:15;;:38;;9940:47;;;::::0;::::1;;10052:4;10033:14;10018:12;;:29;;;;:::i;:::-;10017:39;;;;:::i;:::-;9999:15;:57:::0;-1:-1:-1;9863:219:0:o;3226:148::-;3139:6;;-1:-1:-1;;;;;3139:6:0;2449:10;3139:22;3131:67;;;;-1:-1:-1;;;3131:67:0;;;;;;;:::i;:::-;3333:1:::1;3317:6:::0;;3296:40:::1;::::0;-1:-1:-1;;;;;3317:6:0;;::::1;::::0;3296:40:::1;::::0;3333:1;;3296:40:::1;3364:1;3347:19:::0;;-1:-1:-1;;;;;;3347:19:0::1;::::0;;3226:148::o;14437:308::-;14557:10;14516:4;14541:27;;;:15;:27;;;;;;;;14533:36;;;;;;14580:6;14590:1;14580:11;14577:95;;14616:44;;-1:-1:-1;;;14616:44:0;;14654:4;14616:44;;;5382:51:1;-1:-1:-1;;;;;14616:29:0;;;;;5355:18:1;;14616:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14607:53;;14577:95;14689:48;;-1:-1:-1;;;14689:48:0;;14718:10;14689:48;;;8307:51:1;8374:18;;;8367:34;;;-1:-1:-1;;;;;14689:28:0;;;;;8280:18:1;;14689:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;17925:455::-;3139:6;;-1:-1:-1;;;;;3139:6:0;2449:10;3139:22;3131:67;;;;-1:-1:-1;;;3131:67:0;;;;;;;:::i;:::-;18130:21:::1;:46:::0;;-1:-1:-1;;;;;;18130:46:0;;::::1;-1:-1:-1::0;;;;;18130:46:0;;::::1;;::::0;;;18187:20:::1;:44:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18242:18:::1;:40:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18293:15:::1;:34:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;18338:15:::1;:34:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;17925:455::o;13925:149::-;13990:10;13974:27;;;;:15;:27;;;;;;;;13966:36;;;;;;14013:51;;14021:10;;14042:21;14013:51;;;;;;;;;14042:21;14021:10;14013:51;;;;;;;;;;;;;;;;;;;;;13925:149::o;14968:176::-;3139:6;;-1:-1:-1;;;;;3139:6:0;2449:10;3139:22;3131:67;;;;-1:-1:-1;;;3131:67:0;;;;;;;:::i;:::-;15021:11:::1;:18:::0;;-1:-1:-1;;;;15021:18:0::1;-1:-1:-1::0;;;15021:18:0::1;::::0;;15066:3:::1;15050:13;:19:::0;;;15021:11:::1;15080:20:::0;15132:4:::1;15111:18;:25:::0;14968:176::o;17338:579::-;3139:6;;-1:-1:-1;;;;;3139:6:0;2449:10;3139:22;3131:67;;;;-1:-1:-1;;;3131:67:0;;;;;;;:::i;:::-;17524:12:::1;:28:::0;;;17563:7:::1;:18:::0;;;17592:12:::1;:28:::0;;;17631:10:::1;:24:::0;;;17666:7:::1;:18:::0;;;17706:77:::1;17676:8:::0;17706:63:::1;17644:11:::0;17706:63;17607:13;17706:63;17539:13;17573:8;17706:17:::1;:27::i;:::-;:31:::0;::::1;:46::i;:77::-;17695:8;:88:::0;17794:14:::1;:32:::0;;;17856:18:::1;17873:1;17811:15:::0;17856:18:::1;:::i;:::-;17845:8;;:29;17837:71;;;::::0;-1:-1:-1;;;17837:71:0;;8864:2:1;17837:71:0::1;::::0;::::1;8846:21:1::0;8903:2;8883:18;;;8876:30;8942:31;8922:18;;;8915:59;8991:18;;17837:71:0::1;8662:353:1::0;17837:71:0::1;17338:579:::0;;;;;;:::o;17210:120::-;3139:6;;-1:-1:-1;;;;;3139:6:0;2449:10;3139:22;3131:67;;;;-1:-1:-1;;;3131:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17290:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;17290:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17210:120::o;18552:174::-;3139:6;;-1:-1:-1;;;;;3139:6:0;2449:10;3139:22;3131:67;;;;-1:-1:-1;;;3131:67:0;;;;;;;:::i;:::-;18641:15:::1;:25:::0;;;;18677:26:::1;:41:::0;18552:174::o;9317:156::-;9397:4;9421:44;9435:10;9447:9;9458:6;9421:13;:44::i;10090:187::-;3139:6;;-1:-1:-1;;;;;3139:6:0;2449:10;3139:22;3131:67;;;;-1:-1:-1;;;3131:67:0;;;;;;;:::i;:::-;10200:4:::1;10185:12;;:19;;;;:::i;:::-;10169:12;;:35;;10161:44;;;::::0;::::1;;10265:4;10248:12;10233;;:27;;;;:::i;:::-;10232:37;;;;:::i;:::-;10217:12;:52:::0;-1:-1:-1;10090:187:0:o;17045:157::-;3139:6;;-1:-1:-1;;;;;3139:6:0;2449:10;3139:22;3131:67;;;;-1:-1:-1;;;3131:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17123:19:0;;::::1;;::::0;;;:11:::1;:19;::::0;;;;;;;:28;;;::::1;;-1:-1:-1::0;;17123:28:0;;::::1;::::0;::::1;::::0;;;17162:15:::1;:23:::0;;;;;;:32;;;;::::1;;::::0;;17045:157::o;14753:207::-;3139:6;;-1:-1:-1;;;;;3139:6:0;2449:10;3139:22;3131:67;;;;-1:-1:-1;;;3131:67:0;;;;;;;:::i;:::-;14845:14:::1;:22:::0;;;;14878:13:::1;:20:::0;;;;14909:18:::1;:27:::0;14753:207::o;13696:77::-;3139:6;;-1:-1:-1;;;;;3139:6:0;2449:10;3139:22;3131:67;;;;-1:-1:-1;;;3131:67:0;;;;;;;:::i;:::-;13749:10:::1;:8;:10::i;:::-;13696:77::o:0;18888:167::-;18956:7;18983:64;19024:22;:20;:22::i;:::-;19006:4;;-1:-1:-1;;;;;19006:4:0;8777:7;8795:18;;;:9;:18;;;;;;18983:36;;18996:22;;19016:1;;18996:15;:19;;:22::i;:::-;18983:8;;:12;:36::i;:::-;:40;;:64::i;13489:198::-;13618:15;;13578:21;;-1:-1:-1;;;;;13618:15:0;13610:69;13675:3;13644:28;13656:16;13578:21;13644:28;:::i;:::-;:34;;;;:::i;:::-;13610:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3382:244;3139:6;;-1:-1:-1;;;;;3139:6:0;2449:10;3139:22;3131:67;;;;-1:-1:-1;;;3131:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3471:22:0;::::1;3463:73;;;::::0;-1:-1:-1;;;3463:73:0;;9222:2:1;3463:73:0::1;::::0;::::1;9204:21:1::0;9261:2;9241:18;;;9234:30;9300:34;9280:18;;;9273:62;-1:-1:-1;;;9351:18:1;;;9344:36;9397:19;;3463:73:0::1;9020:402:1::0;3463:73:0::1;3573:6;::::0;;3552:38:::1;::::0;-1:-1:-1;;;;;3552:38:0;;::::1;::::0;3573:6;::::1;::::0;3552:38:::1;::::0;::::1;3601:6;:17:::0;;-1:-1:-1;;;;;;3601:17:0::1;-1:-1:-1::0;;;;;3601:17:0;;;::::1;::::0;;;::::1;::::0;;3382:244::o;13781:136::-;3139:6;;-1:-1:-1;;;;;3139:6:0;2449:10;3139:22;3131:67;;;;-1:-1:-1;;;3131:67:0;;;;;;;:::i;:::-;13857:12:::1;::::0;13839:15:::1;:30:::0;;;13880:12:::1;:27:::0;13781:136::o;613:192::-;699:7;735:12;727:6;;;;719:29;;;;-1:-1:-1;;;719:29:0;;;;;;;;:::i;:::-;-1:-1:-1;759:9:0;771:5;775:1;771;:5;:::i;:::-;759:17;613:192;-1:-1:-1;;;;;613:192:0:o;10294:1329::-;-1:-1:-1;;;;;10412:22:0;;10386:4;10412:22;;;:14;:22;;;;;;;;10411:23;:53;;;;-1:-1:-1;;;;;;10439:25:0;;;;;;:14;:25;;;;;;;;10438:26;10411:53;10403:79;;;;-1:-1:-1;;;10403:79:0;;9762:2:1;10403:79:0;;;9744:21:1;9801:2;9781:18;;;9774:30;-1:-1:-1;;;9820:18:1;;;9813:43;9873:18;;10403:79:0;9560:337:1;10403:79:0;10498:6;;;;10495:63;;;10514:41;10529:6;10537:9;10548:6;10514:14;:41::i;:::-;10507:48;;;;10495:63;-1:-1:-1;;;;;10574:22:0;;;;;;:14;:22;;;;;;;;10573:23;:53;;;;-1:-1:-1;;;;;;10601:25:0;;;;;;:14;:25;;;;;;;;10600:26;10573:53;10570:140;;;10650:11;;-1:-1:-1;;;10650:11:0;;;;10642:43;;;;-1:-1:-1;;;10642:43:0;;10104:2:1;10642:43:0;;;10086:21:1;10143:2;10123:18;;;10116:30;-1:-1:-1;;;10162:18:1;;;10155:50;10222:18;;10642:43:0;9902:344:1;10642:43:0;-1:-1:-1;;;;;10744:22:0;;;;;;:14;:22;;;;;;;;10743:23;:53;;;;-1:-1:-1;;;;;;10770:26:0;;10791:4;10770:26;;10743:53;:84;;;;-1:-1:-1;10822:4:0;;-1:-1:-1;;;;;10801:26:0;;;10822:4;;10801:26;;10743:84;:105;;;;-1:-1:-1;10844:4:0;;-1:-1:-1;;;;;10831:17:0;;;10844:4;;10831:17;;10743:105;:137;;;;-1:-1:-1;10865:15:0;;-1:-1:-1;;;;;10852:28:0;;;10865:15;;10852:28;;10743:137;:174;;;;-1:-1:-1;10897:20:0;;-1:-1:-1;;;;;10884:33:0;;;10897:20;;10884:33;;10743:174;:205;;;;-1:-1:-1;;;;;;10922:26:0;;;;;;:15;:26;;;;;;;;10921:27;10743:205;10739:397;;;-1:-1:-1;;;;;8795:18:0;;10964;8795;;;:9;:18;;;;;;11053:15;;11029:19;11042:6;8795:18;11029:19;:::i;:::-;11028:40;;11020:114;;;;-1:-1:-1;;;11020:114:0;;10583:2:1;11020:114:0;;;10565:21:1;10622:2;10602:18;;;10595:30;10661:34;10641:18;;;10634:62;10732:32;10712:18;;;10705:60;10782:19;;11020:114:0;10381:426:1;11020:114:0;10949:187;10739:397;11157:28;11170:6;11178;11157:12;:28::i;:::-;11202:16;:14;:16::i;:::-;11199:35;;;11221:10;:8;:10::i;:::-;11274:53;;;;;;;;;;;-1:-1:-1;;;11274:53:0;;;;;;;;-1:-1:-1;;;;;11274:17:0;;-1:-1:-1;11274:17:0;;;:9;:17;;;;;;;;:53;;11296:6;;11274:21;:53::i;:::-;-1:-1:-1;;;;;11254:17:0;;;;;;:9;:17;;;;;;;;:73;;;;11366:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;11389:22:0;;;;;;:11;:22;;;;;;;;11366:45;11365:93;;11424:34;11432:6;11440;11448:9;11424:7;:34::i;:::-;11365:93;;;11415:6;11365:93;-1:-1:-1;;;;;11492:20:0;;;;;;:9;:20;;;;;;11340:118;;-1:-1:-1;11492:40:0;;11340:118;11492:24;:40::i;:::-;-1:-1:-1;;;;;11469:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11550:43;;;;;;-1:-1:-1;;;;;;;;;;;11550:43:0;;;11578:14;730:25:1;;718:2;703:18;;584:177;11550:43:0;;;;;;;;-1:-1:-1;11611:4:0;;10294:1329;-1:-1:-1;;;;10294:1329:0:o;471:136::-;529:7;556:43;560:1;563;556:43;;;;;;;;;;;;;;;;;:3;:43::i;284:181::-;342:7;;374:5;378:1;374;:5;:::i;:::-;362:17;;403:1;398;:6;;390:46;;;;-1:-1:-1;;;390:46:0;;11014:2:1;390:46:0;;;10996:21:1;11053:2;11033:18;;;11026:30;11092:29;11072:18;;;11065:57;11139:18;;390:46:0;10812:351:1;15160:1877:0;7130:6;:13;;-1:-1:-1;;7130:13:0;7139:4;7130:13;;;15255:15:::1;::::0;15272:26:::1;::::0;7130:6;;15239:60:::1;::::0;:15:::1;:60::i;:::-;:79;;15306:12;;15239:79;;;15302:1;15239:79;15209:109;;15329:23;15355:59;15412:1;15355:52;15398:8;;15355:38;15373:19;15355:13;;:17;;:38;;;;:::i;:59::-;15329:85;;15425:20;15448:34;15466:15;15448:13;;:17;;:34;;;;:::i;:::-;15519:16;::::0;;15533:1:::1;15519:16:::0;;;;;::::1;::::0;;15425:57;;-1:-1:-1;15495:21:0::1;::::0;15519:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15519:16:0::1;15495:40;;15564:4;15546;15551:1;15546:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15546:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;15590:4:::1;::::0;15580:7;;15590:4;::::1;::::0;15580;;15590;;15580:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;15580:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;15665:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;15665:188:0;;15631:21:::1;::::0;15665:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;15737:12;;15607:21:::1;::::0;15780:4;;15807::::1;::::0;15827:15:::1;::::0;15665:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15866:17;15886:40;15912:13;15886:21;:25;;:40;;;;:::i;:::-;15866:60:::0;-1:-1:-1;15939:19:0::1;15961:40;15974:26;:19:::0;15998:1:::1;15974:23;:26::i;:::-;15961:8;::::0;;:12:::1;:40::i;:::-;15939:62:::0;-1:-1:-1;16022:26:0::1;16051:58;16107:1;16051:51;15939:62:::0;16051:51;:9;16065:19;16051:13:::1;:34::i;:58::-;16022:87;;16120:26;16149:44;16181:11;16149:27;16163:12;;16149:9;:13;;:27;;;;:::i;:44::-;16120:73;;16204:21;16228:39;16255:11;16228:22;16242:7;;16228:9;:13;;:22;;;;:::i;:39::-;16204:63;;16278:24;16305:42;16335:11;16305:25;16319:10;;16305:9;:13;;:25;;;;:::i;:42::-;16389:20;::::0;16381:65:::1;::::0;16278:69;;-1:-1:-1;16361:15:0::1;::::0;-1:-1:-1;;;;;16389:20:0;;::::1;::::0;16423:18;;16361:15;16381:65;16361:15;16381:65;16423:18;16389:20;16381:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16481:18:0::1;::::0;16473:61:::1;::::0;16360:86;;-1:-1:-1;;;;;;16481:18:0::1;::::0;16513:16;;16473:61:::1;::::0;;;16513:16;16481:18;16473:61:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16569:15:0::1;::::0;16561:55:::1;::::0;16457:77;;-1:-1:-1;;;;;;16569:15:0::1;::::0;16598:13;;16561:55:::1;::::0;;;16598:13;16569:15;16561:55:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;16650:5:0::1;::::0;-1:-1:-1;;16671:19:0;;;-1:-1:-1;16668:362:0::1;;16706:6;::::0;16880:21:::1;::::0;16706:244:::1;::::0;-1:-1:-1;;;16706:244:0;;16782:4:::1;16706:244;::::0;::::1;12704:34:1::0;12754:18;;;12747:34;;;16706:6:0::1;12797:18:1::0;;;12790:34;;;12840:18;;;12833:34;-1:-1:-1;;;;;16880:21:0;;::::1;12883:19:1::0;;;12876:44;16920:15:0::1;12936:19:1::0;;;12929:35;16706:6:0;::::1;::::0;:22:::1;::::0;16736:18;;12638:19:1;;16706:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;16970:48:0::1;::::0;;13460:25:1;;;13516:2;13501:18;;13494:34;;;16970:48:0::1;::::0;-1:-1:-1;13433:18:1;16970:48:0::1;;;;;;;16668:362;-1:-1:-1::0;;7148:6:0;:14;;-1:-1:-1;;7148:14:0;;;-1:-1:-1;;;;;;;;;;15160:1877:0:o;811:250::-;869:7;893:1;898;893:6;889:47;;-1:-1:-1;923:1:0;916:8;;889:47;948:9;960:5;964:1;960;:5;:::i;:::-;948:17;-1:-1:-1;993:1:0;984:5;988:1;948:17;984:5;:::i;:::-;:10;976:56;;;;-1:-1:-1;;;976:56:0;;13741:2:1;976:56:0;;;13723:21:1;13780:2;13760:18;;;13753:30;13819:34;13799:18;;;13792:62;-1:-1:-1;;;13870:18:1;;;13863:31;13911:19;;976:56:0;13539:397:1;1067:132:0;1125:7;1152:39;1156:1;1159;1152:39;;;;;;;;;;;;;;;;;:3;:39::i;11635:330::-;11765:53;;;;;;;;;;;-1:-1:-1;;;11765:53:0;;;;;;;;-1:-1:-1;;;;;11765:17:0;;11728:4;11765:17;;;:9;:17;;;;;;;:53;;11787:6;;11765:21;:53::i;:::-;-1:-1:-1;;;;;11745:17:0;;;;;;;:9;:17;;;;;;:73;;;;11852:20;;;;;;;:32;;11877:6;11852:24;:32::i;:::-;-1:-1:-1;;;;;11829:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11900:35;;;;;;-1:-1:-1;;;;;;;;;;;11900:35:0;;;11928:6;730:25:1;;718:2;703:18;;584:177;11900:35:0;;;;;;;;-1:-1:-1;11953:4:0;11635:330;;;;;:::o;11973:166::-;12070:12;;12060:6;:22;;:49;;;-1:-1:-1;;;;;;12086:23:0;;;;;;:15;:23;;;;;;;;12060:49;12052:79;;;;-1:-1:-1;;;12052:79:0;;14143:2:1;12052:79:0;;;14125:21:1;14182:2;14162:18;;;14155:30;-1:-1:-1;;;14201:18:1;;;14194:47;14258:18;;12052:79:0;13941:341:1;12052:79:0;11973:166;;:::o;13284:197::-;13371:4;;13333;;-1:-1:-1;;;;;13371:4:0;13357:10;:18;;;;:38;;-1:-1:-1;13389:6:0;;;;13388:7;13357:38;:62;;;;-1:-1:-1;13408:11:0;;-1:-1:-1;;;13408:11:0;;;;13357:62;:116;;;;-1:-1:-1;;13460:13:0;;13450:4;13432:24;;;;:9;:24;;;;;;:41;;;13284:197::o;12269:1007::-;12406:18;;12453:4;;12355:7;;12406:18;-1:-1:-1;;;;;12453:4:0;;;12440:17;;;;12437:154;;-1:-1:-1;12487:14:0;;12437:154;;;12532:4;;-1:-1:-1;;;;;12532:4:0;;;12522:14;;;;12519:72;;-1:-1:-1;12566:13:0;;12519:72;12603:17;12623:62;12664:14;;12681:3;12664:20;;;;:::i;:::-;12623:36;12648:10;12623:20;12634:8;;12623:6;:10;;:20;;;;:::i;:62::-;12603:82;;12696:18;12717:36;12744:8;;12717:22;12731:7;;12717:9;:13;;:22;;;;:::i;:36::-;12696:57;-1:-1:-1;12764:22:0;12789:25;:9;12696:57;12789:13;:25::i;:::-;12872:4;12854:24;;;;:9;:24;;;;;;12764:50;;-1:-1:-1;12854:44:0;;12764:50;12854:28;:44::i;:::-;12845:4;12827:24;;;;:9;:24;;;;;;:71;;;;12948:15;;-1:-1:-1;;;;;12948:15:0;12938:26;;;;:42;;12969:10;12938:30;:42::i;:::-;12919:15;;-1:-1:-1;;;;;12919:15:0;;;12909:26;;;;:9;:26;;;;;;;;;:71;;;;12996:47;730:25:1;;;13021:4:0;;12996:47;;;;-1:-1:-1;;;;;;;;;;;12996:47:0;703:18:1;12996:47:0;;;;;;;13077:14;;13074:154;;13122:12;;:28;;13139:10;13122:16;:28::i;:::-;13107:12;:43;13187:4;;13170:34;;730:25:1;;;-1:-1:-1;;;;;13187:4:0;;;;13170:34;;;-1:-1:-1;;;;;;;;;;;13170:34:0;718:2:1;703:18;13170:34:0;;;;;;;13074:154;13247:21;:6;13258:9;13247:10;:21::i;:::-;13240:28;12269:1007;-1:-1:-1;;;;;;;;12269:1007:0:o;1205:189::-;1291:7;1326:12;1319:5;1311:28;;;;-1:-1:-1;;;1311:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1350:9:0;1362:5;1366:1;1362;:5;:::i;14:118:1:-;100:5;93:13;86:21;79:5;76:32;66:60;;122:1;119;112:12;137:128;202:20;;231:28;202:20;231:28;:::i;:::-;137:128;;;:::o;270:309::-;335:6;343;396:2;384:9;375:7;371:23;367:32;364:52;;;412:1;409;402:12;364:52;451:9;438:23;470:28;492:5;470:28;:::i;:::-;517:5;569:2;554:18;;;;541:32;;-1:-1:-1;;;270:309:1:o;766:173::-;834:20;;-1:-1:-1;;;;;883:31:1;;873:42;;863:70;;929:1;926;919:12;944:186;1003:6;1056:2;1044:9;1035:7;1031:23;1027:32;1024:52;;;1072:1;1069;1062:12;1024:52;1095:29;1114:9;1095:29;:::i;1327:548::-;1439:4;1468:2;1497;1486:9;1479:21;1529:6;1523:13;1572:6;1567:2;1556:9;1552:18;1545:34;1597:1;1607:140;1621:6;1618:1;1615:13;1607:140;;;1716:14;;;1712:23;;1706:30;1682:17;;;1701:2;1678:26;1671:66;1636:10;;1607:140;;;1611:3;1796:1;1791:2;1782:6;1771:9;1767:22;1763:31;1756:42;1866:2;1859;1855:7;1850:2;1842:6;1838:15;1834:29;1823:9;1819:45;1815:54;1807:62;;;;1327:548;;;;:::o;1880:254::-;1948:6;1956;2009:2;1997:9;1988:7;1984:23;1980:32;1977:52;;;2025:1;2022;2015:12;1977:52;2048:29;2067:9;2048:29;:::i;2139:248::-;2207:6;2215;2268:2;2256:9;2247:7;2243:23;2239:32;2236:52;;;2284:1;2281;2274:12;2236:52;-1:-1:-1;;2307:23:1;;;2377:2;2362:18;;;2349:32;;-1:-1:-1;2139:248:1:o;2392:127::-;2453:10;2448:3;2444:20;2441:1;2434:31;2484:4;2481:1;2474:15;2508:4;2505:1;2498:15;2524:1191;2614:6;2622;2675:2;2663:9;2654:7;2650:23;2646:32;2643:52;;;2691:1;2688;2681:12;2643:52;2731:9;2718:23;2760:18;2801:2;2793:6;2790:14;2787:34;;;2817:1;2814;2807:12;2787:34;2855:6;2844:9;2840:22;2830:32;;2900:7;2893:4;2889:2;2885:13;2881:27;2871:55;;2922:1;2919;2912:12;2871:55;2958:2;2945:16;2980:4;3003:2;2999;2996:10;2993:36;;;3009:18;;:::i;:::-;3055:2;3052:1;3048:10;3087:2;3081:9;3150:2;3146:7;3141:2;3137;3133:11;3129:25;3121:6;3117:38;3205:6;3193:10;3190:22;3185:2;3173:10;3170:18;3167:46;3164:72;;;3216:18;;:::i;:::-;3252:2;3245:22;3302:18;;;3336:15;;;;-1:-1:-1;3378:11:1;;;3374:20;;;3406:19;;;3403:39;;;3438:1;3435;3428:12;3403:39;3462:11;;;;3482:148;3498:6;3493:3;3490:15;3482:148;;;3564:23;3583:3;3564:23;:::i;:::-;3552:36;;3515:12;;;;3608;;;;3482:148;;;3649:6;-1:-1:-1;3674:35:1;;-1:-1:-1;3690:18:1;;;3674:35;:::i;:::-;3664:45;;;;;;2524:1191;;;;;:::o;3720:328::-;3797:6;3805;3813;3866:2;3854:9;3845:7;3841:23;3837:32;3834:52;;;3882:1;3879;3872:12;3834:52;3905:29;3924:9;3905:29;:::i;:::-;3895:39;;3953:38;3987:2;3976:9;3972:18;3953:38;:::i;:::-;3943:48;;4038:2;4027:9;4023:18;4010:32;4000:42;;3720:328;;;;;:::o;4242:315::-;4307:6;4315;4368:2;4356:9;4347:7;4343:23;4339:32;4336:52;;;4384:1;4381;4374:12;4336:52;4407:29;4426:9;4407:29;:::i;:::-;4397:39;;4486:2;4475:9;4471:18;4458:32;4499:28;4521:5;4499:28;:::i;:::-;4546:5;4536:15;;;4242:315;;;;;:::o;4562:180::-;4621:6;4674:2;4662:9;4653:7;4649:23;4645:32;4642:52;;;4690:1;4687;4680:12;4642:52;-1:-1:-1;4713:23:1;;4562:180;-1:-1:-1;4562:180:1:o;4747:484::-;4842:6;4850;4858;4866;4874;4927:3;4915:9;4906:7;4902:23;4898:33;4895:53;;;4944:1;4941;4934:12;4895:53;4967:29;4986:9;4967:29;:::i;:::-;4957:39;;5015:38;5049:2;5038:9;5034:18;5015:38;:::i;:::-;5005:48;;5072:38;5106:2;5095:9;5091:18;5072:38;:::i;:::-;5062:48;;5129:38;5163:2;5152:9;5148:18;5129:38;:::i;:::-;5119:48;;5186:39;5220:3;5209:9;5205:19;5186:39;:::i;:::-;5176:49;;4747:484;;;;;;;;:::o;5444:523::-;5548:6;5556;5564;5572;5580;5588;5641:3;5629:9;5620:7;5616:23;5612:33;5609:53;;;5658:1;5655;5648:12;5609:53;-1:-1:-1;;5681:23:1;;;5751:2;5736:18;;5723:32;;-1:-1:-1;5802:2:1;5787:18;;5774:32;;5853:2;5838:18;;5825:32;;-1:-1:-1;5904:3:1;5889:19;;5876:33;;-1:-1:-1;5956:3:1;5941:19;5928:33;;-1:-1:-1;5444:523:1;-1:-1:-1;5444:523:1:o;5972:316::-;6049:6;6057;6065;6118:2;6106:9;6097:7;6093:23;6089:32;6086:52;;;6134:1;6131;6124:12;6086:52;-1:-1:-1;;6157:23:1;;;6227:2;6212:18;;6199:32;;-1:-1:-1;6278:2:1;6263:18;;;6250:32;;5972:316;-1:-1:-1;5972:316:1:o;6293:260::-;6361:6;6369;6422:2;6410:9;6401:7;6397:23;6393:32;6390:52;;;6438:1;6435;6428:12;6390:52;6461:29;6480:9;6461:29;:::i;:::-;6451:39;;6509:38;6543:2;6532:9;6528:18;6509:38;:::i;:::-;6499:48;;6293:260;;;;;:::o;6784:356::-;6986:2;6968:21;;;7005:18;;;6998:30;7064:34;7059:2;7044:18;;7037:62;7131:2;7116:18;;6784:356::o;7145:127::-;7206:10;7201:3;7197:20;7194:1;7187:31;7237:4;7234:1;7227:15;7261:4;7258:1;7251:15;7277:127;7338:10;7333:3;7329:20;7326:1;7319:31;7369:4;7366:1;7359:15;7393:4;7390:1;7383:15;7409:135;7448:3;7469:17;;;7466:43;;7489:18;;:::i;:::-;-1:-1:-1;7536:1:1;7525:13;;7409:135::o;7549:217::-;7589:1;7615;7605:132;;7659:10;7654:3;7650:20;7647:1;7640:31;7694:4;7691:1;7684:15;7722:4;7719:1;7712:15;7605:132;-1:-1:-1;7751:9:1;;7549:217::o;7771:168::-;7844:9;;;7875;;7892:15;;;7886:22;;7872:37;7862:71;;7913:18;;:::i;7944:184::-;8014:6;8067:2;8055:9;8046:7;8042:23;8038:32;8035:52;;;8083:1;8080;8073:12;8035:52;-1:-1:-1;8106:16:1;;7944:184;-1:-1:-1;7944:184:1:o;8412:245::-;8479:6;8532:2;8520:9;8511:7;8507:23;8503:32;8500:52;;;8548:1;8545;8538:12;8500:52;8580:9;8574:16;8599:28;8621:5;8599:28;:::i;9427:128::-;9494:9;;;9515:11;;;9512:37;;;9529:18;;:::i;10251:125::-;10316:9;;;10337:10;;;10334:36;;;10350:18;;:::i;11168:980::-;11430:4;11478:3;11467:9;11463:19;11509:6;11498:9;11491:25;11535:2;11573:6;11568:2;11557:9;11553:18;11546:34;11616:3;11611:2;11600:9;11596:18;11589:31;11640:6;11675;11669:13;11706:6;11698;11691:22;11744:3;11733:9;11729:19;11722:26;;11783:2;11775:6;11771:15;11757:29;;11804:1;11814:195;11828:6;11825:1;11822:13;11814:195;;;11893:13;;-1:-1:-1;;;;;11889:39:1;11877:52;;11984:15;;;;11949:12;;;;11925:1;11843:9;11814:195;;;-1:-1:-1;;;;;;;12065:32:1;;;;12060:2;12045:18;;12038:60;-1:-1:-1;;;12129:3:1;12114:19;12107:35;12026:3;11168:980;-1:-1:-1;;;11168:980:1:o;12975:306::-;13063:6;13071;13079;13132:2;13120:9;13111:7;13107:23;13103:32;13100:52;;;13148:1;13145;13138:12;13100:52;13177:9;13171:16;13161:26;;13227:2;13216:9;13212:18;13206:25;13196:35;;13271:2;13260:9;13256:18;13250:25;13240:35;;12975:306;;;;;:::o

Swarm Source

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