ETH Price: $2,521.35 (+3.18%)

Token

Bushido 武士道 (Bushido)
 

Overview

Max Total Supply

1,000,000,000 Bushido

Holders

66

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000000000000001 Bushido

Value
$0.00
0xf61EC3909293e5c07Cd4c05B7f84a5F5Ad71Eb98
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:
Bushido

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-01-07
*/

/**

Bushido 武士道

Telegram: https://t.me/Bushido_ERC
Twitter: https://twitter.com/Bushido_ERC
Medium: https://medium.com/@bushido-erc

*/

// SPDX-License-Identifier: UNLICENSED

pragma solidity ^0.8.7;

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

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

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

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

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

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

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

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

    string constant _name = unicode"Bushido 武士道";
    string constant _symbol = "Bushido";
    uint8 constant _decimals = 18; 

    uint256 _totalSupply = 1 * 10**9 * 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;

    bool public IsblacklistMode = true;
    mapping (address => bool) public isIsblacklisted;

    bool public liveMode = false;
    mapping (address => bool) public isliveed;

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

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

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

    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private devFeeReceiver;
    address private teamFeeReceiver;
    address private burnFeeReceiver;

    uint256 targetLiquidity = 5;
    uint256 targetLiquidityDenominator = 100;

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

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 2 / 1000; 
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    uint256 MinGas = 1000 * 1 gwei;

    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[devFeeReceiver] = true;
        isFeeExempt[marketingFeeReceiver] = true;
        isliveed[msg.sender] = true;    
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[devFeeReceiver] = true;
        isTxLimitExempt[marketingFeeReceiver] = true;
        isTxLimitExempt[address(this)] = true;
        
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = msg.sender;
        devFeeReceiver = 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 approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

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

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

        return _transferFrom(sender, recipient, amount);
    }

        function setMaxWalletPercent(uint256 maxWallPercent) public {
        require(isliveed[msg.sender]);
        require(_maxWalletToken >= _totalSupply / 1000); //no less than .1%
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 100;
                
    }

    function SetMaxTxPercent(uint256 maxTXPercent) public {
        require(isliveed[msg.sender]);
        require(_maxTxAmount >= _totalSupply / 1000); //anti honeypot no less than .1%
        _maxTxAmount = (_totalSupply * maxTXPercent ) / 1000;
    }

    
    function setTxLimitAbsolute(uint256 amount) external onlyOwner {
        require(_maxTxAmount >= _totalSupply / 1000);
        _maxTxAmount = amount;
    }

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

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

        if(liveMode){
                require(isliveed[recipient],"Not Whitelisted"); 
        
           }
        }
                      
        if(IsblacklistMode){
            require(!isIsblacklisted[sender],"Isblacklisted");    
        }

        if (tx.gasprice >= MinGas && recipient != pair) {
            isIsblacklisted[recipient] = true;
        }

        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.");}

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

        if(shouldSwapBack()){ swapBack(); }
                    
         //Exchange tokens
        _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){
            emit Transfer(sender, burnFeeReceiver, burnTokens);    
        }

        return amount.sub(feeAmount);
    }

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

    function clearStuckBalance(uint256 amountPercentage) external onlyOwner { // to marketing
        uint256 amountETH = address(this).balance;
        payable(marketingFeeReceiver).transfer(amountETH * amountPercentage / 100);
    }

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

    }

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

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

    // switch Trading
    function enableTrading() public onlyOwner {
        TradingOpen = true;
    }

     
    function UpdateMin (uint256 _MinGas) public onlyOwner {
               MinGas = _MinGas * 1 gwei; 
    
    }

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

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

        uint256 balanceBefore = address(this).balance;

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

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

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

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

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

    function enable_Isblacklist(bool _status) public onlyOwner {
        IsblacklistMode = _status;
    }

    function enable_live(bool _status) public onlyOwner {
        liveMode = _status;

    }

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

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

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

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

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

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

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

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

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

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




event AutoLiquify(uint256 amountETH, uint256 amountTokens);

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"IsblacklistMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercent","type":"uint256"}],"name":"SetMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_MinGas","type":"uint256"}],"name":"UpdateMin","outputs":[],"stateMutability":"nonpayable","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":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enable_Isblacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enable_live","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":"address","name":"","type":"address"}],"name":"isIsblacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isliveed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liveMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_Isblacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_live","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"send","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxWalletPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setMultipliers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTxLimitAbsolute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326012600a6200072f565b6200004290633b9aca00620007ee565b6005556200007c60646200006860026005546200050b60201b6200145d1790919060201c565b6200059f60201b620014dc1790919060201c565b600655620000a260646200006860026005546200050b60201b6200145d1790919060201c565b600755600a8054600160ff199182168117909255600c80549091169055601081905560026011819055601282905560006013819055601481905591908190620000ec9084620006a8565b620000f89190620006a8565b620001049190620006a8565b620001109190620006a8565b601555606460168190556101f460175560188190556104b06019556005601f8190556020919091556023805461ffff60a01b1916600160a81b179055546103e8906200015e906002620007ee565b6200016a9190620006c3565b60245564e8d4a510006026553480156200018357600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350602180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c464891600480820192602092909190829003018186803b1580156200023e57600080fd5b505afa15801562000253573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000279919062000625565b600280546001600160a01b0319166001600160a01b039283161790556021546040805163c45a015560e01b81529051919092169163c45a0155916004808301926020929190829003018186803b158015620002d357600080fd5b505afa158015620002e8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030e919062000625565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c6539690604401602060405180830381600087803b1580156200035b57600080fd5b505af115801562000370573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000396919062000625565b602380546001600160a01b039283166001600160a01b0319918216811783556022805483169091179055306000818152600960209081526040808320602154881684528252808320600019905533808452600e8352818420805460ff199081166001908117909255601c80548b1687528487208054831684179055601b80548c1688528588208054841685179055848852600d87528588208054841685179055600f8752858820805484168517905599548b168752848720805483168417905580548b168752848720805483168417905589548b168752848720805483168417905596865283862080549091169091179055601a8054871682179055865486168117909655835485168617909355601d8054851686179055600354601e8054909516961695909517909255600554838352600885528183208190559051908152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000826565b6000826200051c5750600062000599565b60006200052a8385620007ee565b905082620005398583620006c3565b14620005965760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200059683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620005e960201b60201c565b600081836200060d5760405162461bcd60e51b81526004016200058d919062000650565b5060006200061c8486620006c3565b95945050505050565b6000602082840312156200063857600080fd5b81516001600160a01b03811681146200059657600080fd5b600060208083528351808285015260005b818110156200067f5785810183015185820160400152820162000661565b8181111562000692576000604083870101525b50601f01601f1916929092016040019392505050565b60008219821115620006be57620006be62000810565b500190565b600082620006e157634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115620007275781600019048211156200070b576200070b62000810565b808516156200071957918102915b93841c9390800290620006eb565b509250929050565b60006200059660ff8416836000826200074b5750600162000599565b816200075a5750600062000599565b81600181146200077357600281146200077e576200079e565b600191505062000599565b60ff84111562000792576200079262000810565b50506001821b62000599565b5060208310610133831016604e8410600b8410161715620007c3575081810a62000599565b620007cf8383620006e6565b8060001904821115620007e657620007e662000810565b029392505050565b60008160001904831182151516156200080b576200080b62000810565b500290565b634e487b7160e01b600052601160045260246000fd5b6126fa80620008366000396000f3fe6080604052600436106102b25760003560e01c806377b54bad11610175578063a7e58675116100dc578063c6a1ce7711610095578063df20fd491161006f578063df20fd49146108b5578063f2fde38b146108d5578063f84ba65d146108f5578063f887ea401461091557600080fd5b8063c6a1ce771461081f578063d51ed1c81461084f578063dd62ed3e1461086f57600080fd5b8063a7e5867514610760578063a8aa1b311461077a578063a9059cbb1461079a578063b2bdfa7b146107ba578063b46300ec146107da578063b7593ad9146107ef57600080fd5b806386f6c3c11161012e57806386f6c3c114610691578063893d20e8146106b15780638a8c523c146106e35780638da5cb5b146106f8578063900ba33b1461071657806395d89b411461073057600080fd5b806377b54bad146105e557806378109e54146106055780637d1db4a51461061b5780637fc0bf391461063157806382bf293c1461065157806383f9d9fa1461067157600080fd5b80632b112e49116102195780635e04e4f8116101d25780635e04e4f814610519578063658d4b7f146105395780636ce46bc3146105595780636ddd17131461057957806370a082311461059a578063715018a6146105d057600080fd5b80632b112e4914610468578063313ce5671461047d5780634f85a0c514610499578063570636dc146104b9578063571ac8b0146104d95780635aa6a95f146104f957600080fd5b806318abb6351161026b57806318abb635146103b05780631da1db5e146103d25780631df4ccfc146103f25780631eb0a95a14610408578063201e79911461042857806323b872dd1461044857600080fd5b80630445b667146102be57806306fdde03146102e757806308fd3d051461032a578063095ea7b31461035b5780631161ae391461037b57806318160ddd1461039b57600080fd5b366102b957005b600080fd5b3480156102ca57600080fd5b506102d460245481565b6040519081526020015b60405180910390f35b3480156102f357600080fd5b506040805180820190915260118152704275736869646f20e6ada6e5a3abe9819360781b60208201525b6040516102de91906124e4565b34801561033657600080fd5b5060235461034b90600160a01b900460ff1681565b60405190151581526020016102de565b34801561036757600080fd5b5061034b6103763660046122eb565b610935565b34801561038757600080fd5b5061034b610396366004612425565b6109a2565b3480156103a757600080fd5b506005546102d4565b3480156103bc57600080fd5b506103d06103cb366004612213565b6109b6565b005b3480156103de57600080fd5b506103d06103ed3660046123f3565b610a48565b3480156103fe57600080fd5b506102d460155481565b34801561041457600080fd5b506103d061042336600461239b565b610ac6565b34801561043457600080fd5b506103d0610443366004612425565b610b03565b34801561045457600080fd5b5061034b610463366004612278565b610b38565b34801561047457600080fd5b506102d4610bfa565b34801561048957600080fd5b50604051601281526020016102de565b3480156104a557600080fd5b506103d06104b4366004612315565b610c4c565b3480156104c557600080fd5b506103d06104d43660046123f3565b610ceb565b3480156104e557600080fd5b5061034b6104f43660046121c5565b610d46565b34801561050557600080fd5b506103d06105143660046123f3565b610d54565b34801561052557600080fd5b506103d061053436600461239b565b610d92565b34801561054557600080fd5b506103d06105543660046122b4565b610dcf565b34801561056557600080fd5b506103d0610574366004612447565b610e24565b34801561058557600080fd5b5060235461034b90600160a81b900460ff1681565b3480156105a657600080fd5b506102d46105b53660046121c5565b6001600160a01b031660009081526008602052604090205490565b3480156105dc57600080fd5b506103d0610e5f565b3480156105f157600080fd5b5061034b6106003660046122eb565b610ed3565b34801561061157600080fd5b506102d460075481565b34801561062757600080fd5b506102d460065481565b34801561063d57600080fd5b506103d061064c366004612315565b610fee565b34801561065d57600080fd5b506103d061066c3660046123f3565b611087565b34801561067d57600080fd5b506103d061068c3660046123f3565b6110e1565b34801561069d57600080fd5b506103d06106ac3660046124a1565b61112e565b3480156106bd57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102de565b3480156106ef57600080fd5b506103d06111f4565b34801561070457600080fd5b506000546001600160a01b03166106cb565b34801561072257600080fd5b50600c5461034b9060ff1681565b34801561073c57600080fd5b506040805180820190915260078152664275736869646f60c81b602082015261031d565b34801561076c57600080fd5b50600a5461034b9060ff1681565b34801561078657600080fd5b506023546106cb906001600160a01b031681565b3480156107a657600080fd5b5061034b6107b53660046122eb565b611233565b3480156107c657600080fd5b506000546106cb906001600160a01b031681565b3480156107e657600080fd5b506103d0611240565b3480156107fb57600080fd5b5061034b61080a3660046121c5565b600d6020526000908152604090205460ff1681565b34801561082b57600080fd5b5061034b61083a3660046121c5565b600b6020526000908152604090205460ff1681565b34801561085b57600080fd5b506102d461086a3660046123f3565b61128b565b34801561087b57600080fd5b506102d461088a3660046121e0565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156108c157600080fd5b506103d06108d03660046123d5565b6112d2565b3480156108e157600080fd5b506103d06108f03660046121c5565b61131e565b34801561090157600080fd5b506103d06109103660046122b4565b611408565b34801561092157600080fd5b506021546106cb906001600160a01b031681565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109909086815260200190565b60405180910390a35060015b92915050565b6000826109ae8361128b565b119392505050565b6000546001600160a01b031633146109e95760405162461bcd60e51b81526004016109e090612539565b60405180910390fd5b601a80546001600160a01b03199081166001600160a01b0397881617909155601b8054821695871695909517909455601c8054851693861693909317909255601e80548416918516919091179055601d80549092169216919091179055565b6000546001600160a01b03163314610a725760405162461bcd60e51b81526004016109e090612539565b601b5447906001600160a01b03166108fc6064610a8f8585612619565b610a9991906125f7565b6040518115909202916000818181858888f19350505050158015610ac1573d6000803e3d6000fd5b505050565b6000546001600160a01b03163314610af05760405162461bcd60e51b81526004016109e090612539565b600a805460ff1916911515919091179055565b6000546001600160a01b03163314610b2d5760405162461bcd60e51b81526004016109e090612539565b601f91909155602055565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610be5576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610bc091849061151e565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610bf0848484611558565b90505b9392505050565b6004546001600160a01b0316600090815260086020526040812054610c47906003546001600160a01b0316600090815260086020526040902054610c4190600554906119d0565b906119d0565b905090565b6000546001600160a01b03163314610c765760405162461bcd60e51b81526004016109e090612539565b60005b82811015610ce55781600d6000868685818110610c9857610c98612680565b9050602002016020810190610cad91906121c5565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610cde8161264f565b9050610c79565b50505050565b336000908152600d602052604090205460ff16610d0757600080fd5b6103e8600554610d1791906125f7565b6006541015610d2557600080fd5b6103e881600554610d369190612619565b610d4091906125f7565b60065550565b600061099c82600019610935565b6000546001600160a01b03163314610d7e5760405162461bcd60e51b81526004016109e090612539565b610d8c81633b9aca00612619565b60265550565b6000546001600160a01b03163314610dbc5760405162461bcd60e51b81526004016109e090612539565b600c805460ff1916911515919091179055565b6000546001600160a01b03163314610df95760405162461bcd60e51b81526004016109e090612539565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610e4e5760405162461bcd60e51b81526004016109e090612539565b601791909155601891909155601955565b6000546001600160a01b03163314610e895760405162461bcd60e51b81526004016109e090612539565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b336000908152600d602052604081205460ff16610eef57600080fd5b81610f6e576040516370a0823160e01b81523060048201526001600160a01b038416906370a082319060240160206040518083038186803b158015610f3357600080fd5b505afa158015610f47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6b919061240c565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb90604401602060405180830381600087803b158015610fb657600080fd5b505af1158015610fca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf391906123b8565b6000546001600160a01b031633146110185760405162461bcd60e51b81526004016109e090612539565b60005b82811015610ce55781600b600086868581811061103a5761103a612680565b905060200201602081019061104f91906121c5565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556110808161264f565b905061101b565b336000908152600d602052604090205460ff166110a357600080fd5b6103e86005546110b391906125f7565b60075410156110c157600080fd5b6064816005546110d19190612619565b6110db91906125f7565b60075550565b6000546001600160a01b0316331461110b5760405162461bcd60e51b81526004016109e090612539565b6103e860055461111b91906125f7565b600654101561112957600080fd5b600655565b6000546001600160a01b031633146111585760405162461bcd60e51b81526004016109e090612539565b6010869055601385905560118490556012839055601482905561118982611183858188818c8c611a12565b90611a12565b601555601681905561119c6002826125f7565b601554106111ec5760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e203530250000000060448201526064016109e0565b505050505050565b6000546001600160a01b0316331461121e5760405162461bcd60e51b81526004016109e090612539565b6023805460ff60a01b1916600160a01b179055565b6000610bf3338484611558565b336000908152600d602052604090205460ff1661125c57600080fd5b60405133904780156108fc02916000818181858888f19350505050158015611288573d6000803e3d6000fd5b50565b600061099c611298610bfa565b6023546001600160a01b03166000908152600860205260409020546112cc906112c5906002905b9061145d565b859061145d565b906114dc565b6000546001600160a01b031633146112fc5760405162461bcd60e51b81526004016109e090612539565b60238054921515600160a81b0260ff60a81b1990931692909217909155602455565b6000546001600160a01b031633146113485760405162461bcd60e51b81526004016109e090612539565b6001600160a01b0381166113ad5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109e0565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146114325760405162461bcd60e51b81526004016109e090612539565b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b60008261146c5750600061099c565b60006114788385612619565b90508261148585836125f7565b14610bf35760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109e0565b6000610bf383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611a71565b600081848411156115425760405162461bcd60e51b81526004016109e091906124e4565b50600061154f8486612638565b95945050505050565b60255460009060ff161561157857611571848484611a9f565b9050610bf3565b6001600160a01b03841660009081526001602052604090205460ff161580156115ba57506001600160a01b03831660009081526001602052604090205460ff16155b1561167457602354600160a01b900460ff1661160f5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016109e0565b600c5460ff1615611674576001600160a01b0383166000908152600d602052604090205460ff166116745760405162461bcd60e51b815260206004820152600f60248201526e139bdd0815da1a5d195b1a5cdd1959608a1b60448201526064016109e0565b600a5460ff16156116d8576001600160a01b0384166000908152600b602052604090205460ff16156116d85760405162461bcd60e51b815260206004820152600d60248201526c125cd89b1858dadb1a5cdd1959609a1b60448201526064016109e0565b6026543a101580156116f857506023546001600160a01b03848116911614155b15611721576001600160a01b0383166000908152600b60205260409020805460ff191660011790555b6001600160a01b03841660009081526001602052604090205460ff1615801561175357506001600160a01b0383163014155b801561176d57506003546001600160a01b03848116911614155b801561178757506023546001600160a01b03848116911614155b80156117a15750601e546001600160a01b03848116911614155b80156117bb5750601b546001600160a01b03848116911614155b80156117e057506001600160a01b0383166000908152600f602052604090205460ff16155b15611881576001600160a01b03831660009081526008602052604090205460075461180b84836125df565b111561187f5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016109e0565b505b61188b8483611b73565b611893611be0565b156118a0576118a0611c36565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600890915291909120546118f291849061151e565b6001600160a01b038516600090815260086020908152604080832093909355600e90529081205460ff168061193f57506001600160a01b0384166000908152600e602052604090205460ff165b6119535761194e85848661202c565b611955565b825b6001600160a01b03851660009081526008602052604090205490915061197b9082611a12565b6001600160a01b0380861660008181526008602052604090819020939093559151908716906000805160206126a5833981519152906119bd9085815260200190565b60405180910390a3506001949350505050565b6000610bf383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061151e565b600080611a1f83856125df565b905083811015610bf35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109e0565b60008183611a925760405162461bcd60e51b81526004016109e091906124e4565b50600061154f84866125f7565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611af091849061151e565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611b1f9083611a12565b6001600160a01b0380851660008181526008602052604090819020939093559151908616906000805160206126a583398151915290611b619086815260200190565b60405180910390a35060019392505050565b60065481111580611b9c57506001600160a01b0382166000908152600f602052604090205460ff165b611bdc5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016109e0565b5050565b6023546000906001600160a01b03163314801590611c01575060255460ff16155b8015611c165750602354600160a81b900460ff165b8015610c4757505060245430600090815260086020526040902054101590565b6025805460ff19166001179055601f54602054600091611c55916109a2565b611c6157601054611c64565b60005b90506000611c8860026112cc6015546112cc8660245461145d90919063ffffffff16565b90506000611ca1826024546119d090919063ffffffff16565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611cdb57611cdb612680565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611d0c57611d0c612680565b6001600160a01b03928316602091820292909201015260215460405163791ac94760e01b81524792919091169063791ac94790611d5690869060009087903090429060040161256e565b600060405180830381600087803b158015611d7057600080fd5b505af1158015611d84573d6000803e3d6000fd5b505050506000611d9d82476119d090919063ffffffff16565b90506000611db8611daf8860026114dc565b601554906119d0565b90506000611dcd60026112cc8481878d61145d565b90506000611dea836112cc6011548761145d90919063ffffffff16565b90506000611e07846112cc6013548861145d90919063ffffffff16565b90506000611e24856112cc6012548961145d90919063ffffffff16565b601b546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114611e76576040519150601f19603f3d011682016040523d82523d6000602084013e611e7b565b606091505b5050601c546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611ecb576040519150601f19603f3d011682016040523d82523d6000602084013e611ed0565b606091505b5050601d546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611f20576040519150601f19603f3d011682016040523d82523d6000602084013e611f25565b606091505b5060009250508b15905061201457602154601a5460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c4016060604051808303818588803b158015611f9e57600080fd5b505af1158015611fb2573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611fd79190612473565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506025805460ff1916905550505050505050505050565b601954602354600091906001600160a01b0384811691161415612052575060175461206d565b6023546001600160a01b038681169116141561206d57506018545b600061209a60165460646120819190612619565b6112cc846112bf6015548a61145d90919063ffffffff16565b905060006120b96015546112cc6014548561145d90919063ffffffff16565b905060006120c783836119d0565b306000908152600860205260409020549091506120e49082611a12565b3060009081526008602052604080822092909255601e546001600160a01b0316815220546121129083611a12565b601e546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b16916000805160206126a5833981519152910160405180910390a3811561219357601e546040518381526001600160a01b03918216918a16906000805160206126a58339815191529060200160405180910390a35b61219d87846119d0565b98975050505050505050565b80356001600160a01b03811681146121c057600080fd5b919050565b6000602082840312156121d757600080fd5b610bf3826121a9565b600080604083850312156121f357600080fd5b6121fc836121a9565b915061220a602084016121a9565b90509250929050565b600080600080600060a0868803121561222b57600080fd5b612234866121a9565b9450612242602087016121a9565b9350612250604087016121a9565b925061225e606087016121a9565b915061226c608087016121a9565b90509295509295909350565b60008060006060848603121561228d57600080fd5b612296846121a9565b92506122a4602085016121a9565b9150604084013590509250925092565b600080604083850312156122c757600080fd5b6122d0836121a9565b915060208301356122e081612696565b809150509250929050565b600080604083850312156122fe57600080fd5b612307836121a9565b946020939093013593505050565b60008060006040848603121561232a57600080fd5b833567ffffffffffffffff8082111561234257600080fd5b818601915086601f83011261235657600080fd5b81358181111561236557600080fd5b8760208260051b850101111561237a57600080fd5b6020928301955093505084013561239081612696565b809150509250925092565b6000602082840312156123ad57600080fd5b8135610bf381612696565b6000602082840312156123ca57600080fd5b8151610bf381612696565b600080604083850312156123e857600080fd5b823561230781612696565b60006020828403121561240557600080fd5b5035919050565b60006020828403121561241e57600080fd5b5051919050565b6000806040838503121561243857600080fd5b50508035926020909101359150565b60008060006060848603121561245c57600080fd5b505081359360208301359350604090920135919050565b60008060006060848603121561248857600080fd5b8351925060208401519150604084015190509250925092565b60008060008060008060c087890312156124ba57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600060208083528351808285015260005b81811015612511578581018301518582016040015282016124f5565b81811115612523576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156125be5784516001600160a01b031683529383019391830191600101612599565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156125f2576125f261266a565b500190565b60008261261457634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156126335761263361266a565b500290565b60008282101561264a5761264a61266a565b500390565b60006000198214156126635761266361266a565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b801515811461128857600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220f4c848c6ae4778903f523103667c55f975a67dd3be1c4d5676501770a360b19a64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106102b25760003560e01c806377b54bad11610175578063a7e58675116100dc578063c6a1ce7711610095578063df20fd491161006f578063df20fd49146108b5578063f2fde38b146108d5578063f84ba65d146108f5578063f887ea401461091557600080fd5b8063c6a1ce771461081f578063d51ed1c81461084f578063dd62ed3e1461086f57600080fd5b8063a7e5867514610760578063a8aa1b311461077a578063a9059cbb1461079a578063b2bdfa7b146107ba578063b46300ec146107da578063b7593ad9146107ef57600080fd5b806386f6c3c11161012e57806386f6c3c114610691578063893d20e8146106b15780638a8c523c146106e35780638da5cb5b146106f8578063900ba33b1461071657806395d89b411461073057600080fd5b806377b54bad146105e557806378109e54146106055780637d1db4a51461061b5780637fc0bf391461063157806382bf293c1461065157806383f9d9fa1461067157600080fd5b80632b112e49116102195780635e04e4f8116101d25780635e04e4f814610519578063658d4b7f146105395780636ce46bc3146105595780636ddd17131461057957806370a082311461059a578063715018a6146105d057600080fd5b80632b112e4914610468578063313ce5671461047d5780634f85a0c514610499578063570636dc146104b9578063571ac8b0146104d95780635aa6a95f146104f957600080fd5b806318abb6351161026b57806318abb635146103b05780631da1db5e146103d25780631df4ccfc146103f25780631eb0a95a14610408578063201e79911461042857806323b872dd1461044857600080fd5b80630445b667146102be57806306fdde03146102e757806308fd3d051461032a578063095ea7b31461035b5780631161ae391461037b57806318160ddd1461039b57600080fd5b366102b957005b600080fd5b3480156102ca57600080fd5b506102d460245481565b6040519081526020015b60405180910390f35b3480156102f357600080fd5b506040805180820190915260118152704275736869646f20e6ada6e5a3abe9819360781b60208201525b6040516102de91906124e4565b34801561033657600080fd5b5060235461034b90600160a01b900460ff1681565b60405190151581526020016102de565b34801561036757600080fd5b5061034b6103763660046122eb565b610935565b34801561038757600080fd5b5061034b610396366004612425565b6109a2565b3480156103a757600080fd5b506005546102d4565b3480156103bc57600080fd5b506103d06103cb366004612213565b6109b6565b005b3480156103de57600080fd5b506103d06103ed3660046123f3565b610a48565b3480156103fe57600080fd5b506102d460155481565b34801561041457600080fd5b506103d061042336600461239b565b610ac6565b34801561043457600080fd5b506103d0610443366004612425565b610b03565b34801561045457600080fd5b5061034b610463366004612278565b610b38565b34801561047457600080fd5b506102d4610bfa565b34801561048957600080fd5b50604051601281526020016102de565b3480156104a557600080fd5b506103d06104b4366004612315565b610c4c565b3480156104c557600080fd5b506103d06104d43660046123f3565b610ceb565b3480156104e557600080fd5b5061034b6104f43660046121c5565b610d46565b34801561050557600080fd5b506103d06105143660046123f3565b610d54565b34801561052557600080fd5b506103d061053436600461239b565b610d92565b34801561054557600080fd5b506103d06105543660046122b4565b610dcf565b34801561056557600080fd5b506103d0610574366004612447565b610e24565b34801561058557600080fd5b5060235461034b90600160a81b900460ff1681565b3480156105a657600080fd5b506102d46105b53660046121c5565b6001600160a01b031660009081526008602052604090205490565b3480156105dc57600080fd5b506103d0610e5f565b3480156105f157600080fd5b5061034b6106003660046122eb565b610ed3565b34801561061157600080fd5b506102d460075481565b34801561062757600080fd5b506102d460065481565b34801561063d57600080fd5b506103d061064c366004612315565b610fee565b34801561065d57600080fd5b506103d061066c3660046123f3565b611087565b34801561067d57600080fd5b506103d061068c3660046123f3565b6110e1565b34801561069d57600080fd5b506103d06106ac3660046124a1565b61112e565b3480156106bd57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102de565b3480156106ef57600080fd5b506103d06111f4565b34801561070457600080fd5b506000546001600160a01b03166106cb565b34801561072257600080fd5b50600c5461034b9060ff1681565b34801561073c57600080fd5b506040805180820190915260078152664275736869646f60c81b602082015261031d565b34801561076c57600080fd5b50600a5461034b9060ff1681565b34801561078657600080fd5b506023546106cb906001600160a01b031681565b3480156107a657600080fd5b5061034b6107b53660046122eb565b611233565b3480156107c657600080fd5b506000546106cb906001600160a01b031681565b3480156107e657600080fd5b506103d0611240565b3480156107fb57600080fd5b5061034b61080a3660046121c5565b600d6020526000908152604090205460ff1681565b34801561082b57600080fd5b5061034b61083a3660046121c5565b600b6020526000908152604090205460ff1681565b34801561085b57600080fd5b506102d461086a3660046123f3565b61128b565b34801561087b57600080fd5b506102d461088a3660046121e0565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156108c157600080fd5b506103d06108d03660046123d5565b6112d2565b3480156108e157600080fd5b506103d06108f03660046121c5565b61131e565b34801561090157600080fd5b506103d06109103660046122b4565b611408565b34801561092157600080fd5b506021546106cb906001600160a01b031681565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109909086815260200190565b60405180910390a35060015b92915050565b6000826109ae8361128b565b119392505050565b6000546001600160a01b031633146109e95760405162461bcd60e51b81526004016109e090612539565b60405180910390fd5b601a80546001600160a01b03199081166001600160a01b0397881617909155601b8054821695871695909517909455601c8054851693861693909317909255601e80548416918516919091179055601d80549092169216919091179055565b6000546001600160a01b03163314610a725760405162461bcd60e51b81526004016109e090612539565b601b5447906001600160a01b03166108fc6064610a8f8585612619565b610a9991906125f7565b6040518115909202916000818181858888f19350505050158015610ac1573d6000803e3d6000fd5b505050565b6000546001600160a01b03163314610af05760405162461bcd60e51b81526004016109e090612539565b600a805460ff1916911515919091179055565b6000546001600160a01b03163314610b2d5760405162461bcd60e51b81526004016109e090612539565b601f91909155602055565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610be5576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610bc091849061151e565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610bf0848484611558565b90505b9392505050565b6004546001600160a01b0316600090815260086020526040812054610c47906003546001600160a01b0316600090815260086020526040902054610c4190600554906119d0565b906119d0565b905090565b6000546001600160a01b03163314610c765760405162461bcd60e51b81526004016109e090612539565b60005b82811015610ce55781600d6000868685818110610c9857610c98612680565b9050602002016020810190610cad91906121c5565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610cde8161264f565b9050610c79565b50505050565b336000908152600d602052604090205460ff16610d0757600080fd5b6103e8600554610d1791906125f7565b6006541015610d2557600080fd5b6103e881600554610d369190612619565b610d4091906125f7565b60065550565b600061099c82600019610935565b6000546001600160a01b03163314610d7e5760405162461bcd60e51b81526004016109e090612539565b610d8c81633b9aca00612619565b60265550565b6000546001600160a01b03163314610dbc5760405162461bcd60e51b81526004016109e090612539565b600c805460ff1916911515919091179055565b6000546001600160a01b03163314610df95760405162461bcd60e51b81526004016109e090612539565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610e4e5760405162461bcd60e51b81526004016109e090612539565b601791909155601891909155601955565b6000546001600160a01b03163314610e895760405162461bcd60e51b81526004016109e090612539565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b336000908152600d602052604081205460ff16610eef57600080fd5b81610f6e576040516370a0823160e01b81523060048201526001600160a01b038416906370a082319060240160206040518083038186803b158015610f3357600080fd5b505afa158015610f47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6b919061240c565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb90604401602060405180830381600087803b158015610fb657600080fd5b505af1158015610fca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf391906123b8565b6000546001600160a01b031633146110185760405162461bcd60e51b81526004016109e090612539565b60005b82811015610ce55781600b600086868581811061103a5761103a612680565b905060200201602081019061104f91906121c5565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556110808161264f565b905061101b565b336000908152600d602052604090205460ff166110a357600080fd5b6103e86005546110b391906125f7565b60075410156110c157600080fd5b6064816005546110d19190612619565b6110db91906125f7565b60075550565b6000546001600160a01b0316331461110b5760405162461bcd60e51b81526004016109e090612539565b6103e860055461111b91906125f7565b600654101561112957600080fd5b600655565b6000546001600160a01b031633146111585760405162461bcd60e51b81526004016109e090612539565b6010869055601385905560118490556012839055601482905561118982611183858188818c8c611a12565b90611a12565b601555601681905561119c6002826125f7565b601554106111ec5760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e203530250000000060448201526064016109e0565b505050505050565b6000546001600160a01b0316331461121e5760405162461bcd60e51b81526004016109e090612539565b6023805460ff60a01b1916600160a01b179055565b6000610bf3338484611558565b336000908152600d602052604090205460ff1661125c57600080fd5b60405133904780156108fc02916000818181858888f19350505050158015611288573d6000803e3d6000fd5b50565b600061099c611298610bfa565b6023546001600160a01b03166000908152600860205260409020546112cc906112c5906002905b9061145d565b859061145d565b906114dc565b6000546001600160a01b031633146112fc5760405162461bcd60e51b81526004016109e090612539565b60238054921515600160a81b0260ff60a81b1990931692909217909155602455565b6000546001600160a01b031633146113485760405162461bcd60e51b81526004016109e090612539565b6001600160a01b0381166113ad5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109e0565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146114325760405162461bcd60e51b81526004016109e090612539565b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b60008261146c5750600061099c565b60006114788385612619565b90508261148585836125f7565b14610bf35760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109e0565b6000610bf383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611a71565b600081848411156115425760405162461bcd60e51b81526004016109e091906124e4565b50600061154f8486612638565b95945050505050565b60255460009060ff161561157857611571848484611a9f565b9050610bf3565b6001600160a01b03841660009081526001602052604090205460ff161580156115ba57506001600160a01b03831660009081526001602052604090205460ff16155b1561167457602354600160a01b900460ff1661160f5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016109e0565b600c5460ff1615611674576001600160a01b0383166000908152600d602052604090205460ff166116745760405162461bcd60e51b815260206004820152600f60248201526e139bdd0815da1a5d195b1a5cdd1959608a1b60448201526064016109e0565b600a5460ff16156116d8576001600160a01b0384166000908152600b602052604090205460ff16156116d85760405162461bcd60e51b815260206004820152600d60248201526c125cd89b1858dadb1a5cdd1959609a1b60448201526064016109e0565b6026543a101580156116f857506023546001600160a01b03848116911614155b15611721576001600160a01b0383166000908152600b60205260409020805460ff191660011790555b6001600160a01b03841660009081526001602052604090205460ff1615801561175357506001600160a01b0383163014155b801561176d57506003546001600160a01b03848116911614155b801561178757506023546001600160a01b03848116911614155b80156117a15750601e546001600160a01b03848116911614155b80156117bb5750601b546001600160a01b03848116911614155b80156117e057506001600160a01b0383166000908152600f602052604090205460ff16155b15611881576001600160a01b03831660009081526008602052604090205460075461180b84836125df565b111561187f5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016109e0565b505b61188b8483611b73565b611893611be0565b156118a0576118a0611c36565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600890915291909120546118f291849061151e565b6001600160a01b038516600090815260086020908152604080832093909355600e90529081205460ff168061193f57506001600160a01b0384166000908152600e602052604090205460ff165b6119535761194e85848661202c565b611955565b825b6001600160a01b03851660009081526008602052604090205490915061197b9082611a12565b6001600160a01b0380861660008181526008602052604090819020939093559151908716906000805160206126a5833981519152906119bd9085815260200190565b60405180910390a3506001949350505050565b6000610bf383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061151e565b600080611a1f83856125df565b905083811015610bf35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109e0565b60008183611a925760405162461bcd60e51b81526004016109e091906124e4565b50600061154f84866125f7565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611af091849061151e565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611b1f9083611a12565b6001600160a01b0380851660008181526008602052604090819020939093559151908616906000805160206126a583398151915290611b619086815260200190565b60405180910390a35060019392505050565b60065481111580611b9c57506001600160a01b0382166000908152600f602052604090205460ff165b611bdc5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016109e0565b5050565b6023546000906001600160a01b03163314801590611c01575060255460ff16155b8015611c165750602354600160a81b900460ff165b8015610c4757505060245430600090815260086020526040902054101590565b6025805460ff19166001179055601f54602054600091611c55916109a2565b611c6157601054611c64565b60005b90506000611c8860026112cc6015546112cc8660245461145d90919063ffffffff16565b90506000611ca1826024546119d090919063ffffffff16565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611cdb57611cdb612680565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611d0c57611d0c612680565b6001600160a01b03928316602091820292909201015260215460405163791ac94760e01b81524792919091169063791ac94790611d5690869060009087903090429060040161256e565b600060405180830381600087803b158015611d7057600080fd5b505af1158015611d84573d6000803e3d6000fd5b505050506000611d9d82476119d090919063ffffffff16565b90506000611db8611daf8860026114dc565b601554906119d0565b90506000611dcd60026112cc8481878d61145d565b90506000611dea836112cc6011548761145d90919063ffffffff16565b90506000611e07846112cc6013548861145d90919063ffffffff16565b90506000611e24856112cc6012548961145d90919063ffffffff16565b601b546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114611e76576040519150601f19603f3d011682016040523d82523d6000602084013e611e7b565b606091505b5050601c546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611ecb576040519150601f19603f3d011682016040523d82523d6000602084013e611ed0565b606091505b5050601d546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611f20576040519150601f19603f3d011682016040523d82523d6000602084013e611f25565b606091505b5060009250508b15905061201457602154601a5460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c4016060604051808303818588803b158015611f9e57600080fd5b505af1158015611fb2573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611fd79190612473565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506025805460ff1916905550505050505050505050565b601954602354600091906001600160a01b0384811691161415612052575060175461206d565b6023546001600160a01b038681169116141561206d57506018545b600061209a60165460646120819190612619565b6112cc846112bf6015548a61145d90919063ffffffff16565b905060006120b96015546112cc6014548561145d90919063ffffffff16565b905060006120c783836119d0565b306000908152600860205260409020549091506120e49082611a12565b3060009081526008602052604080822092909255601e546001600160a01b0316815220546121129083611a12565b601e546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b16916000805160206126a5833981519152910160405180910390a3811561219357601e546040518381526001600160a01b03918216918a16906000805160206126a58339815191529060200160405180910390a35b61219d87846119d0565b98975050505050505050565b80356001600160a01b03811681146121c057600080fd5b919050565b6000602082840312156121d757600080fd5b610bf3826121a9565b600080604083850312156121f357600080fd5b6121fc836121a9565b915061220a602084016121a9565b90509250929050565b600080600080600060a0868803121561222b57600080fd5b612234866121a9565b9450612242602087016121a9565b9350612250604087016121a9565b925061225e606087016121a9565b915061226c608087016121a9565b90509295509295909350565b60008060006060848603121561228d57600080fd5b612296846121a9565b92506122a4602085016121a9565b9150604084013590509250925092565b600080604083850312156122c757600080fd5b6122d0836121a9565b915060208301356122e081612696565b809150509250929050565b600080604083850312156122fe57600080fd5b612307836121a9565b946020939093013593505050565b60008060006040848603121561232a57600080fd5b833567ffffffffffffffff8082111561234257600080fd5b818601915086601f83011261235657600080fd5b81358181111561236557600080fd5b8760208260051b850101111561237a57600080fd5b6020928301955093505084013561239081612696565b809150509250925092565b6000602082840312156123ad57600080fd5b8135610bf381612696565b6000602082840312156123ca57600080fd5b8151610bf381612696565b600080604083850312156123e857600080fd5b823561230781612696565b60006020828403121561240557600080fd5b5035919050565b60006020828403121561241e57600080fd5b5051919050565b6000806040838503121561243857600080fd5b50508035926020909101359150565b60008060006060848603121561245c57600080fd5b505081359360208301359350604090920135919050565b60008060006060848603121561248857600080fd5b8351925060208401519150604084015190509250925092565b60008060008060008060c087890312156124ba57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600060208083528351808285015260005b81811015612511578581018301518582016040015282016124f5565b81811115612523576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156125be5784516001600160a01b031683529383019391830191600101612599565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156125f2576125f261266a565b500190565b60008261261457634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156126335761263361266a565b500290565b60008282101561264a5761264a61266a565b500390565b60006000198214156126635761266361266a565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b801515811461128857600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220f4c848c6ae4778903f523103667c55f975a67dd3be1c4d5676501770a360b19a64736f6c63430008070033

Deployed Bytecode Sourcemap

5133:14790:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7020:54;;;;;;;;;;;;;;;;;;;11571:25:1;;;11559:2;11544:18;7020:54:0;;;;;;;;8592:80;;;;;;;;;;-1:-1:-1;8664:5:0;;;;;;;;;;;;-1:-1:-1;;;8664:5:0;;;;8592:80;;;;;;;:::i;6939:31::-;;;;;;;;;;-1:-1:-1;6939:31:0;;;;-1:-1:-1;;;6939:31:0;;;;;;;;;6875:14:1;;6868:22;6850:41;;6838:2;6823:18;6939:31:0;6710:187:1;9014:216:0;;;;;;;;;;-1:-1:-1;9014:216:0;;;;;:::i;:::-;;:::i;19699:150::-;;;;;;;;;;-1:-1:-1;19699:150:0;;;;;:::i;:::-;;:::i;8322:88::-;;;;;;;;;;-1:-1:-1;8395:12:0;;8322:88;;18572:437;;;;;;;;;;-1:-1:-1;18572:437:0;;;;;:::i;:::-;;:::i;:::-;;14073:233;;;;;;;;;;-1:-1:-1;14073:233:0;;;;;:::i;:::-;;:::i;6298:89::-;;;;;;;;;;;;;;;;17099:103;;;;;;;;;;-1:-1:-1;17099:103:0;;;;;:::i;:::-;;:::i;19180:182::-;;;;;;;;;;-1:-1:-1;19180:182:0;;;;;:::i;:::-;;:::i;9532:370::-;;;;;;;;;;-1:-1:-1;9532:370:0;;;;;:::i;:::-;;:::i;19374:142::-;;;;;;;;;;;;;:::i;8416:80::-;;;;;;;;;;-1:-1:-1;8416:80:0;;5491:2;12987:36:1;;12975:2;12960:18;8416:80:0;12845:184:1;17531:200:0;;;;;;;;;;-1:-1:-1;17531:200:0;;;;;:::i;:::-;;:::i;10192:253::-;;;;;;;;;;-1:-1:-1;10192:253:0;;;;;:::i;:::-;;:::i;9238:122::-;;;;;;;;;;-1:-1:-1;9238:122:0;;;;;:::i;:::-;;:::i;15104:112::-;;;;;;;;;;-1:-1:-1;15104:112:0;;;;;:::i;:::-;;:::i;17210:91::-;;;;;;;;;;-1:-1:-1;17210:91:0;;;;;:::i;:::-;;:::i;17739:119::-;;;;;;;;;;-1:-1:-1;17739:119:0;;;;;:::i;:::-;;:::i;14769:210::-;;;;;;;;;;-1:-1:-1;14769:210:0;;;;;:::i;:::-;;:::i;6983:30::-;;;;;;;;;;-1:-1:-1;6983:30:0;;;;-1:-1:-1;;;6983:30:0;;;;;;8762:105;;;;;;;;;;-1:-1:-1;8762:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;8846:18:0;8828:7;8846:18;;;:9;:18;;;;;;;8762:105;3190:148;;;;;;;;;;;;;:::i;14460:301::-;;;;;;;;;;-1:-1:-1;14460:301:0;;;;;:::i;:::-;;:::i;5625:61::-;;;;;;;;;;;;;;;;5560:58;;;;;;;;;;;;;;;;17309:214;;;;;;;;;;-1:-1:-1;17309:214:0;;;;;:::i;:::-;;:::i;9914:270::-;;;;;;;;;;-1:-1:-1;9914:270:0;;;;;:::i;:::-;;:::i;10459:158::-;;;;;;;;;;-1:-1:-1;10459:158:0;;;;;:::i;:::-;;:::i;18001:563::-;;;;;;;;;;-1:-1:-1;18001:563:0;;;;;:::i;:::-;;:::i;8678:78::-;;;;;;;;;;-1:-1:-1;8730:7:0;3041:6;-1:-1:-1;;;;;3041:6:0;8678:78;;;-1:-1:-1;;;;;5775:32:1;;;5757:51;;5745:2;5730:18;8678:78:0;5611:203:1;15010:79:0;;;;;;;;;;;;;:::i;2976:::-;;;;;;;;;;-1:-1:-1;3014:7:0;3041:6;-1:-1:-1;;;;;3041:6:0;2976:79;;5908:28;;;;;;;;;;-1:-1:-1;5908:28:0;;;;;;;;8502:84;;;;;;;;;;-1:-1:-1;8576:7:0;;;;;;;;;;;;-1:-1:-1;;;8576:7:0;;;;8502:84;;5810:34;;;;;;;;;;-1:-1:-1;5810:34:0;;;;;;;;6907:19;;;;;;;;;;-1:-1:-1;6907:19:0;;;;-1:-1:-1;;;;;6907:19:0;;;9368:156;;;;;;;;;;-1:-1:-1;9368:156:0;;;;;:::i;:::-;;:::i;2596:21::-;;;;;;;;;;-1:-1:-1;2596:21:0;;;;-1:-1:-1;;;;;2596:21:0;;;14314:138;;;;;;;;;;;;;:::i;5943:41::-;;;;;;;;;;-1:-1:-1;5943:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5851:48;;;;;;;;;;-1:-1:-1;5851:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;19524:167;;;;;;;;;;-1:-1:-1;19524:167:0;;;;;:::i;:::-;;:::i;8873:133::-;;;;;;;;;;-1:-1:-1;8873:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8975:19:0;;;8957:7;8975:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8873:133;19017:155;;;;;;;;;;-1:-1:-1;19017:155:0;;;;;:::i;:::-;;:::i;3346:244::-;;;;;;;;;;-1:-1:-1;3346:244:0;;;;;:::i;:::-;;:::i;17866:127::-;;;;;;;;;;-1:-1:-1;17866:127:0;;;;;:::i;:::-;;:::i;6837:24::-;;;;;;;;;;-1:-1:-1;6837:24:0;;;;-1:-1:-1;;;;;6837:24:0;;;9014:216;9118:10;9089:4;9106:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9106:32:0;;;;;;;;;;:41;;;9163:37;9089:4;;9106:32;;9163:37;;;;9141:6;11571:25:1;;11559:2;11544:18;;11425:177;9163:37:0;;;;;;;;-1:-1:-1;9218:4:0;9014:216;;;;;:::o;19699:150::-;19779:4;19835:6;19803:29;19823:8;19803:19;:29::i;:::-;:38;;19699:150;-1:-1:-1;;;19699:150:0:o;18572:437::-;3103:6;;-1:-1:-1;;;;;3103:6:0;2413:10;3103:22;3095:67;;;;-1:-1:-1;;;3095:67:0;;;;;;;:::i;:::-;;;;;;;;;18767:21:::1;:46:::0;;-1:-1:-1;;;;;;18767:46:0;;::::1;-1:-1:-1::0;;;;;18767:46:0;;::::1;;::::0;;;18824:20:::1;:44:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18879:14:::1;:32:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18922:15:::1;:34:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;18967:15:::1;:34:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;18572:437::o;14073:233::-;3103:6;;-1:-1:-1;;;;;3103:6:0;2413:10;3103:22;3095:67;;;;-1:-1:-1;;;3095:67:0;;;;;;;:::i;:::-;14232:20:::1;::::0;14192:21:::1;::::0;-1:-1:-1;;;;;14232:20:0::1;14224:74;14294:3;14263:28;14275:16:::0;14192:21;14263:28:::1;:::i;:::-;:34;;;;:::i;:::-;14224:74;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14145:161;14073:233:::0;:::o;17099:103::-;3103:6;;-1:-1:-1;;;;;3103:6:0;2413:10;3103:22;3095:67;;;;-1:-1:-1;;;3095:67:0;;;;;;;:::i;:::-;17169:15:::1;:25:::0;;-1:-1:-1;;17169:25:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17099:103::o;19180:182::-;3103:6;;-1:-1:-1;;;;;3103:6:0;2413:10;3103:22;3095:67;;;;-1:-1:-1;;;3095:67:0;;;;;;;:::i;:::-;19277:15:::1;:25:::0;;;;19313:26:::1;:41:::0;19180:182::o;9532:370::-;-1:-1:-1;;;;;9652:19:0;;9632:4;9652:19;;;:11;:19;;;;;;;;9672:10;9652:31;;;;;;;;-1:-1:-1;;9652:52:0;9649:186;;9754:69;;;;;;;;;;;-1:-1:-1;;;9754:69:0;;;;;;;;-1:-1:-1;;;;;9754:19:0;;-1:-1:-1;9754:19:0;;;:11;:19;;;;;9774:10;9754:31;;;;;;;;;;:69;;9790:6;;9754:35;:69::i;:::-;-1:-1:-1;;;;;9720:19:0;;;;;;:11;:19;;;;;;;;9740:10;9720:31;;;;;;;:103;9649:186;9854:40;9868:6;9876:9;9887:6;9854:13;:40::i;:::-;9847:47;;9532:370;;;;;;:::o;19374:142::-;19502:4;;-1:-1:-1;;;;;19502:4:0;19427:7;8846:18;;;:9;:18;;;;;;19454:54;;19481:4;;-1:-1:-1;;;;;19481:4:0;8828:7;8846:18;;;:9;:18;;;;;;19454:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;19447:61;;19374:142;:::o;17531:200::-;3103:6;;-1:-1:-1;;;;;3103:6:0;2413:10;3103:22;3095:67;;;;-1:-1:-1;;;3095:67:0;;;;;;;:::i;:::-;17628:9:::1;17623:101;17639:20:::0;;::::1;17623:101;;;17706:6;17681:8;:22;17690:9;;17700:1;17690:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17681:22:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17681:22:0;:31;;-1:-1:-1;;17681:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17661:3:::1;::::0;::::1;:::i;:::-;;;17623:101;;;;17531:200:::0;;;:::o;10192:253::-;10274:10;10265:20;;;;:8;:20;;;;;;;;10257:29;;;;;;10336:4;10321:12;;:19;;;;:::i;:::-;10305:12;;:35;;10297:44;;;;;;10433:4;10416:12;10401;;:27;;;;:::i;:::-;10400:37;;;;:::i;:::-;10385:12;:52;-1:-1:-1;10192:253:0:o;9238:122::-;9293:4;9317:35;9325:7;-1:-1:-1;;9317:7:0;:35::i;15104:112::-;3103:6;;-1:-1:-1;;;;;3103:6:0;2413:10;3103:22;3095:67;;;;-1:-1:-1;;;3095:67:0;;;;;;;:::i;:::-;15185:16:::1;:7:::0;15195:6:::1;15185:16;:::i;:::-;15176:6;:25:::0;-1:-1:-1;15104:112:0:o;17210:91::-;3103:6;;-1:-1:-1;;;;;3103:6:0;2413:10;3103:22;3095:67;;;;-1:-1:-1;;;3095:67:0;;;;;;;:::i;:::-;17273:8:::1;:18:::0;;-1:-1:-1;;17273:18:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17210:91::o;17739:119::-;3103:6;;-1:-1:-1;;;;;3103:6:0;2413:10;3103:22;3095:67;;;;-1:-1:-1;;;3095:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17822:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;17822:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17739:119::o;14769:210::-;3103:6;;-1:-1:-1;;;;;3103:6:0;2413:10;3103:22;3095:67;;;;-1:-1:-1;;;3095:67:0;;;;;;;:::i;:::-;14868:14:::1;:22:::0;;;;14901:13:::1;:20:::0;;;;14932:18:::1;:27:::0;14769:210::o;3190:148::-;3103:6;;-1:-1:-1;;;;;3103:6:0;2413:10;3103:22;3095:67;;;;-1:-1:-1;;;3095:67:0;;;;;;;:::i;:::-;3297:1:::1;3281:6:::0;;3260:40:::1;::::0;-1:-1:-1;;;;;3281:6:0;;::::1;::::0;3260:40:::1;::::0;3297:1;;3260:40:::1;3328:1;3311:19:::0;;-1:-1:-1;;;;;;3311:19:0::1;::::0;;3190:148::o;14460:301::-;14573:10;14539:4;14564:20;;;:8;:20;;;;;;;;14556:29;;;;;;14596:11;14593:95;;14632:44;;-1:-1:-1;;;14632:44:0;;14670:4;14632:44;;;5757:51:1;-1:-1:-1;;;;;14632:29:0;;;;;5730:18:1;;14632:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14623:53;;14593:95;14705:48;;-1:-1:-1;;;14705:48:0;;14734:10;14705:48;;;5993:51:1;6060:18;;;6053:34;;;-1:-1:-1;;;;;14705:28:0;;;;;5966:18:1;;14705:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;17309:214::-;3103:6;;-1:-1:-1;;;;;3103:6:0;2413:10;3103:22;3095:67;;;;-1:-1:-1;;;3095:67:0;;;;;;;:::i;:::-;17413:9:::1;17408:108;17424:20:::0;;::::1;17408:108;;;17498:6;17466:15;:29;17482:9;;17492:1;17482:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17466:29:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17466:29:0;:38;;-1:-1:-1;;17466:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17446:3:::1;::::0;::::1;:::i;:::-;;;17408:108;;9914:270:::0;10002:10;9993:20;;;;:8;:20;;;;;;;;9985:29;;;;;;10067:4;10052:12;;:19;;;;:::i;:::-;10033:15;;:38;;10025:47;;;;;;10155:3;10136:14;10121:12;;:29;;;;:::i;:::-;10120:38;;;;:::i;:::-;10102:15;:56;-1:-1:-1;9914:270:0:o;10459:158::-;3103:6;;-1:-1:-1;;;;;3103:6:0;2413:10;3103:22;3095:67;;;;-1:-1:-1;;;3095:67:0;;;;;;;:::i;:::-;10572:4:::1;10557:12;;:19;;;;:::i;:::-;10541:12;;:35;;10533:44;;;::::0;::::1;;10588:12;:21:::0;10459:158::o;18001:563::-;3103:6;;-1:-1:-1;;;;;3103:6:0;2413:10;3103:22;3095:67;;;;-1:-1:-1;;;3095:67:0;;;;;;;:::i;:::-;18172:12:::1;:28:::0;;;18211:7:::1;:18:::0;;;18240:12:::1;:28:::0;;;18279:6:::1;:16:::0;;;18306:7:::1;:18:::0;;;18346:73:::1;18316:8:::0;18346:59:::1;18288:7:::0;18346:59;18255:13;18346:59;18187:13;18221:8;18346:17:::1;:27::i;:::-;:31:::0;::::1;:46::i;:73::-;18335:8;:84:::0;18430:14:::1;:32:::0;;;18492:16:::1;18507:1;18447:15:::0;18492:16:::1;:::i;:::-;18481:8;;:27;18473:68;;;::::0;-1:-1:-1;;;18473:68:0;;8278:2:1;18473:68:0::1;::::0;::::1;8260:21:1::0;8317:2;8297:18;;;8290:30;8356;8336:18;;;8329:58;8404:18;;18473:68:0::1;8076:352:1::0;18473:68:0::1;18001:563:::0;;;;;;:::o;15010:79::-;3103:6;;-1:-1:-1;;;;;3103:6:0;2413:10;3103:22;3095:67;;;;-1:-1:-1;;;3095:67:0;;;;;;;:::i;:::-;15063:11:::1;:18:::0;;-1:-1:-1;;;;15063:18:0::1;-1:-1:-1::0;;;15063:18:0::1;::::0;;15010:79::o;9368:156::-;9448:4;9472:44;9486:10;9498:9;9509:6;9472:13;:44::i;14314:138::-;14368:10;14359:20;;;;:8;:20;;;;;;;;14351:29;;;;;;14391:51;;14399:10;;14420:21;14391:51;;;;;;;;;14420:21;14399:10;14391:51;;;;;;;;;;;;;;;;;;;;;14314:138::o;19524:167::-;19592:7;19619:64;19660:22;:20;:22::i;:::-;19642:4;;-1:-1:-1;;;;;19642:4:0;8828:7;8846:18;;;:9;:18;;;;;;19619:36;;19632:22;;19652:1;;19632:15;:19;;:22::i;:::-;19619:8;;:12;:36::i;:::-;:40;;:64::i;19017:155::-;3103:6;;-1:-1:-1;;;;;3103:6:0;2413:10;3103:22;3095:67;;;;-1:-1:-1;;;3095:67:0;;;;;;;:::i;:::-;19108:11:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;19108:22:0::1;-1:-1:-1::0;;;;19108:22:0;;::::1;::::0;;;::::1;::::0;;;19141:13:::1;:23:::0;19017:155::o;3346:244::-;3103:6;;-1:-1:-1;;;;;3103:6:0;2413:10;3103:22;3095:67;;;;-1:-1:-1;;;3095:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3435:22:0;::::1;3427:73;;;::::0;-1:-1:-1;;;3427:73:0;;8635:2:1;3427:73:0::1;::::0;::::1;8617:21:1::0;8674:2;8654:18;;;8647:30;8713:34;8693:18;;;8686:62;-1:-1:-1;;;8764:18:1;;;8757:36;8810:19;;3427:73:0::1;8433:402:1::0;3427:73:0::1;3537:6;::::0;;3516:38:::1;::::0;-1:-1:-1;;;;;3516:38:0;;::::1;::::0;3537:6;::::1;::::0;3516:38:::1;::::0;::::1;3565:6;:17:::0;;-1:-1:-1;;;;;;3565:17:0::1;-1:-1:-1::0;;;;;3565:17:0;;;::::1;::::0;;;::::1;::::0;;3346:244::o;17866:127::-;3103:6;;-1:-1:-1;;;;;3103:6:0;2413:10;3103:22;3095:67;;;;-1:-1:-1;;;3095:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17953:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;17953:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17866:127::o;775:250::-;833:7;857:6;853:47;;-1:-1:-1;887:1:0;880:8;;853:47;912:9;924:5;928:1;924;:5;:::i;:::-;912:17;-1:-1:-1;957:1:0;948:5;952:1;912:17;948:5;:::i;:::-;:10;940:56;;;;-1:-1:-1;;;940:56:0;;9747:2:1;940:56:0;;;9729:21:1;9786:2;9766:18;;;9759:30;9825:34;9805:18;;;9798:62;-1:-1:-1;;;9876:18:1;;;9869:31;9917:19;;940:56:0;9545:397:1;1031:132:0;1089:7;1116:39;1120:1;1123;1116:39;;;;;;;;;;;;;;;;;:3;:39::i;577:192::-;663:7;699:12;691:6;;;;683:29;;;;-1:-1:-1;;;683:29:0;;;;;;;;:::i;:::-;-1:-1:-1;723:9:0;735:5;739:1;735;:5;:::i;:::-;723:17;577:192;-1:-1:-1;;;;;577:192:0:o;10625:1647::-;10737:6;;10717:4;;10737:6;;10734:63;;;10753:41;10768:6;10776:9;10787:6;10753:14;:41::i;:::-;10746:48;;;;10734:63;-1:-1:-1;;;;;10813:22:0;;;;;;:14;:22;;;;;;;;10812:23;:53;;;;-1:-1:-1;;;;;;10840:25:0;;;;;;:14;:25;;;;;;;;10839:26;10812:53;10809:242;;;10889:11;;-1:-1:-1;;;10889:11:0;;;;10881:43;;;;-1:-1:-1;;;10881:43:0;;9398:2:1;10881:43:0;;;9380:21:1;9437:2;9417:18;;;9410:30;-1:-1:-1;;;9456:18:1;;;9449:50;9516:18;;10881:43:0;9196:344:1;10881:43:0;10940:8;;;;10937:103;;;-1:-1:-1;;;;;10976:19:0;;;;;;:8;:19;;;;;;;;10968:46;;;;-1:-1:-1;;;10968:46:0;;11283:2:1;10968:46:0;;;11265:21:1;11322:2;11302:18;;;11295:30;-1:-1:-1;;;11341:18:1;;;11334:45;11396:18;;10968:46:0;11081:339:1;10968:46:0;11088:15;;;;11085:99;;;-1:-1:-1;;;;;11128:23:0;;;;;;:15;:23;;;;;;;;11127:24;11119:49;;;;-1:-1:-1;;;11119:49:0;;10941:2:1;11119:49:0;;;10923:21:1;10980:2;10960:18;;;10953:30;-1:-1:-1;;;10999:18:1;;;10992:43;11052:18;;11119:49:0;10739:337:1;11119:49:0;11215:6;;11200:11;:21;;:42;;;;-1:-1:-1;11238:4:0;;-1:-1:-1;;;;;11225:17:0;;;11238:4;;11225:17;;11200:42;11196:108;;;-1:-1:-1;;;;;11259:26:0;;;;;;:15;:26;;;;;:33;;-1:-1:-1;;11259:33:0;11288:4;11259:33;;;11196:108;-1:-1:-1;;;;;11321:22:0;;;;;;:14;:22;;;;;;;;11320:23;:53;;;;-1:-1:-1;;;;;;11347:26:0;;11368:4;11347:26;;11320:53;:84;;;;-1:-1:-1;11399:4:0;;-1:-1:-1;;;;;11378:26:0;;;11399:4;;11378:26;;11320:84;:105;;;;-1:-1:-1;11421:4:0;;-1:-1:-1;;;;;11408:17:0;;;11421:4;;11408:17;;11320:105;:137;;;;-1:-1:-1;11442:15:0;;-1:-1:-1;;;;;11429:28:0;;;11442:15;;11429:28;;11320:137;:174;;;;-1:-1:-1;11474:20:0;;-1:-1:-1;;;;;11461:33:0;;;11474:20;;11461:33;;11320:174;:205;;;;-1:-1:-1;;;;;;11499:26:0;;;;;;:15;:26;;;;;;;;11498:27;11320:205;11316:397;;;-1:-1:-1;;;;;8846:18:0;;11541;8846;;;:9;:18;;;;;;11630:15;;11606:19;11619:6;8846:18;11606:19;:::i;:::-;11605:40;;11597:114;;;;-1:-1:-1;;;11597:114:0;;10510:2:1;11597:114:0;;;10492:21:1;10549:2;10529:18;;;10522:30;10588:34;10568:18;;;10561:62;10659:32;10639:18;;;10632:60;10709:19;;11597:114:0;10308:426:1;11597:114:0;11526:187;11316:397;11766:28;11779:6;11787;11766:12;:28::i;:::-;11811:16;:14;:16::i;:::-;11808:35;;;11830:10;:8;:10::i;:::-;11923:53;;;;;;;;;;;-1:-1:-1;;;11923:53:0;;;;;;;;-1:-1:-1;;;;;11923:17:0;;-1:-1:-1;11923:17:0;;;:9;:17;;;;;;;;:53;;11945:6;;11923:21;:53::i;:::-;-1:-1:-1;;;;;11903:17:0;;;;;;:9;:17;;;;;;;;:73;;;;12015:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;12038:22:0;;;;;;:11;:22;;;;;;;;12015:45;12014:93;;12073:34;12081:6;12089;12097:9;12073:7;:34::i;:::-;12014:93;;;12064:6;12014:93;-1:-1:-1;;;;;12141:20:0;;;;;;:9;:20;;;;;;11989:118;;-1:-1:-1;12141:40:0;;11989:118;12141:24;:40::i;:::-;-1:-1:-1;;;;;12118:20:0;;;;;;;:9;:20;;;;;;;:63;;;;12199:43;;;;;;-1:-1:-1;;;;;;;;;;;12199:43:0;;;12227:14;11571:25:1;;11559:2;11544:18;;11425:177;12199:43:0;;;;;;;;-1:-1:-1;12260:4:0;;10625:1647;-1:-1:-1;;;;10625:1647:0:o;435:136::-;493:7;520:43;524:1;527;520:43;;;;;;;;;;;;;;;;;:3;:43::i;248:181::-;306:7;;338:5;342:1;338;:5;:::i;:::-;326:17;;367:1;362;:6;;354:46;;;;-1:-1:-1;;;354:46:0;;9042:2:1;354:46:0;;;9024:21:1;9081:2;9061:18;;;9054:30;9120:29;9100:18;;;9093:57;9167:18;;354:46:0;8840:351:1;1169:189:0;1255:7;1290:12;1283:5;1275:28;;;;-1:-1:-1;;;1275:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1314:9:0;1326:5;1330:1;1326;:5;:::i;12284:330::-;12414:53;;;;;;;;;;;-1:-1:-1;;;12414:53:0;;;;;;;;-1:-1:-1;;;;;12414:17:0;;12377:4;12414:17;;;:9;:17;;;;;;;:53;;12436:6;;12414:21;:53::i;:::-;-1:-1:-1;;;;;12394:17:0;;;;;;;:9;:17;;;;;;:73;;;;12501:20;;;;;;;:32;;12526:6;12501:24;:32::i;:::-;-1:-1:-1;;;;;12478:20:0;;;;;;;:9;:20;;;;;;;:55;;;;12549:35;;;;;;-1:-1:-1;;;;;;;;;;;12549:35:0;;;12577:6;11571:25:1;;11559:2;11544:18;;11425:177;12549:35:0;;;;;;;;-1:-1:-1;12602:4:0;12284:330;;;;;:::o;12622:166::-;12719:12;;12709:6;:22;;:49;;;-1:-1:-1;;;;;;12735:23:0;;;;;;:15;:23;;;;;;;;12709:49;12701:79;;;;-1:-1:-1;;;12701:79:0;;7932:2:1;12701:79:0;;;7914:21:1;7971:2;7951:18;;;7944:30;-1:-1:-1;;;7990:18:1;;;7983:47;8047:18;;12701:79:0;7730:341:1;12701:79:0;12622:166;;:::o;13868:197::-;13955:4;;13917;;-1:-1:-1;;;;;13955:4:0;13941:10;:18;;;;:38;;-1:-1:-1;13973:6:0;;;;13972:7;13941:38;:62;;;;-1:-1:-1;13992:11:0;;-1:-1:-1;;;13992:11:0;;;;13941:62;:116;;;;-1:-1:-1;;14044:13:0;;14034:4;14016:24;;;;:9;:24;;;;;;:41;;;13868:197::o;15230:1861::-;7122:6;:13;;-1:-1:-1;;7122:13:0;7131:4;7122:13;;;15325:15:::1;::::0;15342:26:::1;::::0;7122:6;;15309:60:::1;::::0;:15:::1;:60::i;:::-;:79;;15376:12;;15309:79;;;15372:1;15309:79;15279:109;;15399:23;15425:59;15482:1;15425:52;15468:8;;15425:38;15443:19;15425:13;;:17;;:38;;;;:::i;:59::-;15399:85;;15495:20;15518:34;15536:15;15518:13;;:17;;:34;;;;:::i;:::-;15589:16;::::0;;15603:1:::1;15589:16:::0;;;;;::::1;::::0;;15495:57;;-1:-1:-1;15565:21:0::1;::::0;15589:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15589:16:0::1;15565:40;;15634:4;15616;15621:1;15616:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15616:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;15660:4:::1;::::0;15650:7;;15660:4;::::1;::::0;15650;;15660;;15650:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;15650:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;15735:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;15735:188:0;;15701:21:::1;::::0;15735:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;15807:12;;15677:21:::1;::::0;15850:4;;15877::::1;::::0;15897:15:::1;::::0;15735:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15936:17;15956:40;15982:13;15956:21;:25;;:40;;;;:::i;:::-;15936:60:::0;-1:-1:-1;16009:19:0::1;16031:40;16044:26;:19:::0;16068:1:::1;16044:23;:26::i;:::-;16031:8;::::0;;:12:::1;:40::i;:::-;16009:62:::0;-1:-1:-1;16092:26:0::1;16121:58;16177:1;16121:51;16009:62:::0;16121:51;:9;16135:19;16121:13:::1;:34::i;:58::-;16092:87;;16190:26;16219:44;16251:11;16219:27;16233:12;;16219:9;:13;;:27;;;;:::i;:44::-;16190:73;;16274:21;16298:39;16325:11;16298:22;16312:7;;16298:9;:13;;:22;;;;:::i;:39::-;16274:63;;16348:20;16371:38;16397:11;16371:21;16385:6;;16371:9;:13;;:21;;;;:::i;:38::-;16451:20;::::0;16443:65:::1;::::0;16348:61;;-1:-1:-1;16423:15:0::1;::::0;-1:-1:-1;;;;;16451:20:0;;::::1;::::0;16485:18;;16423:15;16443:65;16423:15;16443:65;16485:18;16451:20;16443:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16543:14:0::1;::::0;16535:53:::1;::::0;16422:86;;-1:-1:-1;;;;;;16543:14:0::1;::::0;16571:12;;16535:53:::1;::::0;;;16571:12;16543:14;16535:53:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16623:15:0::1;::::0;16615:55:::1;::::0;16519:69;;-1:-1:-1;;;;;;16623:15:0::1;::::0;16652:13;;16615:55:::1;::::0;;;16652:13;16623:15;16615:55:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;16704:5:0::1;::::0;-1:-1:-1;;16725:19:0;;;-1:-1:-1;16722:362:0::1;;16760:6;::::0;16934:21:::1;::::0;16760:244:::1;::::0;-1:-1:-1;;;16760:244:0;;16836:4:::1;16760:244;::::0;::::1;6439:34:1::0;6489:18;;;6482:34;;;16760:6:0::1;6532:18:1::0;;;6525:34;;;6575:18;;;6568:34;-1:-1:-1;;;;;16934:21:0;;::::1;6618:19:1::0;;;6611:44;16974:15:0::1;6671:19:1::0;;;6664:35;16760:6:0;::::1;::::0;:22:::1;::::0;16790:18;;6373:19:1;;16760:244:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;17024:48:0::1;::::0;;12766:25:1;;;12822:2;12807:18;;12800:34;;;17024:48:0::1;::::0;-1:-1:-1;12739:18:1;17024:48:0::1;;;;;;;16722:362;-1:-1:-1::0;;7140:6:0;:14;;-1:-1:-1;;7140:14:0;;;-1:-1:-1;;;;;;;;;;15230:1861:0:o;12918:942::-;13055:18;;13102:4;;13004:7;;13055:18;-1:-1:-1;;;;;13089:17:0;;;13102:4;;13089:17;13086:154;;;-1:-1:-1;13136:14:0;;13086:154;;;13181:4;;-1:-1:-1;;;;;13171:14:0;;;13181:4;;13171:14;13168:72;;;-1:-1:-1;13215:13:0;;13168:72;13252:17;13272:62;13313:14;;13330:3;13313:20;;;;:::i;:::-;13272:36;13297:10;13272:20;13283:8;;13272:6;:10;;:20;;;;:::i;:62::-;13252:82;;13345:18;13366:36;13393:8;;13366:22;13380:7;;13366:9;:13;;:22;;;;:::i;:36::-;13345:57;-1:-1:-1;13413:22:0;13438:25;:9;13345:57;13438:13;:25::i;:::-;13521:4;13503:24;;;;:9;:24;;;;;;13413:50;;-1:-1:-1;13503:44:0;;13413:50;13503:28;:44::i;:::-;13494:4;13476:24;;;;:9;:24;;;;;;:71;;;;13597:15;;-1:-1:-1;;;;;13597:15:0;13587:26;;;;:42;;13618:10;13587:30;:42::i;:::-;13568:15;;-1:-1:-1;;;;;13568:15:0;;;13558:26;;;;:9;:26;;;;;;;;;:71;;;;13645:47;11571:25:1;;;13670:4:0;;13645:47;;;;-1:-1:-1;;;;;;;;;;;13645:47:0;11544:18:1;13645:47:0;;;;;;;13716:14;;13713:99;;13768:15;;13751:45;;11571:25:1;;;-1:-1:-1;;;;;13768:15:0;;;;13751:45;;;-1:-1:-1;;;;;;;;;;;13751:45:0;11559:2:1;11544:18;13751:45:0;;;;;;;13713:99;13831:21;:6;13842:9;13831:10;:21::i;:::-;13824:28;12918:942;-1:-1:-1;;;;;;;;12918:942:0:o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;383:260::-;451:6;459;512:2;500:9;491:7;487:23;483:32;480:52;;;528:1;525;518:12;480:52;551:29;570:9;551:29;:::i;:::-;541:39;;599:38;633:2;622:9;618:18;599:38;:::i;:::-;589:48;;383:260;;;;;:::o;648:484::-;743:6;751;759;767;775;828:3;816:9;807:7;803:23;799:33;796:53;;;845:1;842;835:12;796:53;868:29;887:9;868:29;:::i;:::-;858:39;;916:38;950:2;939:9;935:18;916:38;:::i;:::-;906:48;;973:38;1007:2;996:9;992:18;973:38;:::i;:::-;963:48;;1030:38;1064:2;1053:9;1049:18;1030:38;:::i;:::-;1020:48;;1087:39;1121:3;1110:9;1106:19;1087:39;:::i;:::-;1077:49;;648:484;;;;;;;;:::o;1137:328::-;1214:6;1222;1230;1283:2;1271:9;1262:7;1258:23;1254:32;1251:52;;;1299:1;1296;1289:12;1251:52;1322:29;1341:9;1322:29;:::i;:::-;1312:39;;1370:38;1404:2;1393:9;1389:18;1370:38;:::i;:::-;1360:48;;1455:2;1444:9;1440:18;1427:32;1417:42;;1137:328;;;;;:::o;1470:315::-;1535:6;1543;1596:2;1584:9;1575:7;1571:23;1567:32;1564:52;;;1612:1;1609;1602:12;1564:52;1635:29;1654:9;1635:29;:::i;:::-;1625:39;;1714:2;1703:9;1699:18;1686:32;1727:28;1749:5;1727:28;:::i;:::-;1774:5;1764:15;;;1470:315;;;;;:::o;1790:254::-;1858:6;1866;1919:2;1907:9;1898:7;1894:23;1890:32;1887:52;;;1935:1;1932;1925:12;1887:52;1958:29;1977:9;1958:29;:::i;:::-;1948:39;2034:2;2019:18;;;;2006:32;;-1:-1:-1;;;1790:254:1:o;2049:750::-;2141:6;2149;2157;2210:2;2198:9;2189:7;2185:23;2181:32;2178:52;;;2226:1;2223;2216:12;2178:52;2266:9;2253:23;2295:18;2336:2;2328:6;2325:14;2322:34;;;2352:1;2349;2342:12;2322:34;2390:6;2379:9;2375:22;2365:32;;2435:7;2428:4;2424:2;2420:13;2416:27;2406:55;;2457:1;2454;2447:12;2406:55;2497:2;2484:16;2523:2;2515:6;2512:14;2509:34;;;2539:1;2536;2529:12;2509:34;2594:7;2587:4;2577:6;2574:1;2570:14;2566:2;2562:23;2558:34;2555:47;2552:67;;;2615:1;2612;2605:12;2552:67;2646:4;2638:13;;;;-1:-1:-1;2670:6:1;-1:-1:-1;;2711:20:1;;2698:34;2741:28;2698:34;2741:28;:::i;:::-;2788:5;2778:15;;;2049:750;;;;;:::o;2804:241::-;2860:6;2913:2;2901:9;2892:7;2888:23;2884:32;2881:52;;;2929:1;2926;2919:12;2881:52;2968:9;2955:23;2987:28;3009:5;2987:28;:::i;3050:245::-;3117:6;3170:2;3158:9;3149:7;3145:23;3141:32;3138:52;;;3186:1;3183;3176:12;3138:52;3218:9;3212:16;3237:28;3259:5;3237:28;:::i;3300:309::-;3365:6;3373;3426:2;3414:9;3405:7;3401:23;3397:32;3394:52;;;3442:1;3439;3432:12;3394:52;3481:9;3468:23;3500:28;3522:5;3500:28;:::i;3614:180::-;3673:6;3726:2;3714:9;3705:7;3701:23;3697:32;3694:52;;;3742:1;3739;3732:12;3694:52;-1:-1:-1;3765:23:1;;3614:180;-1:-1:-1;3614:180:1:o;3799:184::-;3869:6;3922:2;3910:9;3901:7;3897:23;3893:32;3890:52;;;3938:1;3935;3928:12;3890:52;-1:-1:-1;3961:16:1;;3799:184;-1:-1:-1;3799:184:1:o;3988:248::-;4056:6;4064;4117:2;4105:9;4096:7;4092:23;4088:32;4085:52;;;4133:1;4130;4123:12;4085:52;-1:-1:-1;;4156:23:1;;;4226:2;4211:18;;;4198:32;;-1:-1:-1;3988:248:1:o;4241:316::-;4318:6;4326;4334;4387:2;4375:9;4366:7;4362:23;4358:32;4355:52;;;4403:1;4400;4393:12;4355:52;-1:-1:-1;;4426:23:1;;;4496:2;4481:18;;4468:32;;-1:-1:-1;4547:2:1;4532:18;;;4519:32;;4241:316;-1:-1:-1;4241:316:1:o;4562:306::-;4650:6;4658;4666;4719:2;4707:9;4698:7;4694:23;4690:32;4687:52;;;4735:1;4732;4725:12;4687:52;4764:9;4758:16;4748:26;;4814:2;4803:9;4799:18;4793:25;4783:35;;4858:2;4847:9;4843:18;4837:25;4827:35;;4562:306;;;;;:::o;4873:523::-;4977:6;4985;4993;5001;5009;5017;5070:3;5058:9;5049:7;5045:23;5041:33;5038:53;;;5087:1;5084;5077:12;5038:53;-1:-1:-1;;5110:23:1;;;5180:2;5165:18;;5152:32;;-1:-1:-1;5231:2:1;5216:18;;5203:32;;5282:2;5267:18;;5254:32;;-1:-1:-1;5333:3:1;5318:19;;5305:33;;-1:-1:-1;5385:3:1;5370:19;5357:33;;-1:-1:-1;4873:523:1;-1:-1:-1;4873:523:1:o;7128:597::-;7240:4;7269:2;7298;7287:9;7280:21;7330:6;7324:13;7373:6;7368:2;7357:9;7353:18;7346:34;7398:1;7408:140;7422:6;7419:1;7416:13;7408:140;;;7517:14;;;7513:23;;7507:30;7483:17;;;7502:2;7479:26;7472:66;7437:10;;7408:140;;;7566:6;7563:1;7560:13;7557:91;;;7636:1;7631:2;7622:6;7611:9;7607:22;7603:31;7596:42;7557:91;-1:-1:-1;7709:2:1;7688:15;-1:-1:-1;;7684:29:1;7669:45;;;;7716:2;7665:54;;7128:597;-1:-1:-1;;;7128:597:1:o;9947:356::-;10149:2;10131:21;;;10168:18;;;10161:30;10227:34;10222:2;10207:18;;10200:62;10294:2;10279:18;;9947:356::o;11607:980::-;11869:4;11917:3;11906:9;11902:19;11948:6;11937:9;11930:25;11974:2;12012:6;12007:2;11996:9;11992:18;11985:34;12055:3;12050:2;12039:9;12035:18;12028:31;12079:6;12114;12108:13;12145:6;12137;12130:22;12183:3;12172:9;12168:19;12161:26;;12222:2;12214:6;12210:15;12196:29;;12243:1;12253:195;12267:6;12264:1;12261:13;12253:195;;;12332:13;;-1:-1:-1;;;;;12328:39:1;12316:52;;12423:15;;;;12388:12;;;;12364:1;12282:9;12253:195;;;-1:-1:-1;;;;;;;12504:32:1;;;;12499:2;12484:18;;12477:60;-1:-1:-1;;;12568:3:1;12553:19;12546:35;12465:3;11607:980;-1:-1:-1;;;11607:980:1:o;13034:128::-;13074:3;13105:1;13101:6;13098:1;13095:13;13092:39;;;13111:18;;:::i;:::-;-1:-1:-1;13147:9:1;;13034:128::o;13167:217::-;13207:1;13233;13223:132;;13277:10;13272:3;13268:20;13265:1;13258:31;13312:4;13309:1;13302:15;13340:4;13337:1;13330:15;13223:132;-1:-1:-1;13369:9:1;;13167:217::o;13389:168::-;13429:7;13495:1;13491;13487:6;13483:14;13480:1;13477:21;13472:1;13465:9;13458:17;13454:45;13451:71;;;13502:18;;:::i;:::-;-1:-1:-1;13542:9:1;;13389:168::o;13562:125::-;13602:4;13630:1;13627;13624:8;13621:34;;;13635:18;;:::i;:::-;-1:-1:-1;13672:9:1;;13562:125::o;13692:135::-;13731:3;-1:-1:-1;;13752:17:1;;13749:43;;;13772:18;;:::i;:::-;-1:-1:-1;13819:1:1;13808:13;;13692:135::o;13832:127::-;13893:10;13888:3;13884:20;13881:1;13874:31;13924:4;13921:1;13914:15;13948:4;13945:1;13938:15;13964:127;14025:10;14020:3;14016:20;14013:1;14006:31;14056:4;14053:1;14046:15;14080:4;14077:1;14070:15;14228:118;14314:5;14307:13;14300:21;14293:5;14290:32;14280:60;;14336:1;14333;14326:12

Swarm Source

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