ETH Price: $2,884.18 (-10.48%)
Gas: 13 Gwei

Token

Gud Night (GN)
 

Overview

Max Total Supply

1,000,000,000,000 GN

Holders

278

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.846166967112828202 GN

Value
$0.00
0x15fc9af8a90cf16dc970a22a783a2030c2cde37d
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:
GUDNIGHT

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-21
*/

/*

https://gudnite.wtf/
https://twitter.com/GudNiteERC
https://t.me/GudNiteERC

⠀⠀⠀⡏⠉⠉⠉⡉⠉⠉⠉⠉⡏⠉⠉⠉⠉⢉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⢹
⡇⠀⠀⠀⢸⣠⢿⢠⠃⡗⠙⡆⢱⣠⠇⠀⢈⣭⣿⠀⡟⠉⢰⣉⡆⠀⠀⠀⠀⢸
⡇⠀⠀⠀⠀⠛⠈⠋⠀⠃⠀⠓⢀⡏⠀⠀⠈⠓⠚⠀⠃⠀⠈⠒⠂⠀⠀⠀⠀⢸
⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠀⠀⠀⠀⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸
⡇⠀⠀⠀⠐⡆⡜⢰⠒⢦⢸⠀⢸⠀⠀⢰⠒⡇⢸⠀⢸⠀⡗⠒⡖⢢⠀⠀⠀⢸
⡇⠀⠀⠀⠀⢸⠃⠘⠶⠋⠘⠒⠚⠀⠀⠘⠒⠃⠘⠒⠚⠀⠃⠀⠃⠘⠀⠀⠀⢸
⠓⠒⠒⠲⢶⡷⢶⡶⣶⡶⢒⠚⠙⠙⠙⠉⠭⣭⠋⢉⣋⣿⡷⢶⣶⠒⠶⠒⠒⠙
⠀⠀⠀⠀⣼⢠⠟⣕⡠⠔⠲⠦⣄⣀⡴⠚⠉⣉⣉⣳⣝⣶⡛⢦⡈⢧⡀⠀⠀⠀
⠀⠀⠀⢀⡇⢸⠞⠁⠔⠊⠉⢉⣩⡟⣒⣋⡵⢚⡩⣅⣴⡒⠿⢆⣷⢸⡇⠀⠀⠀
⠀⠀⠀⠀⡇⢸⠀⠀⢀⡤⡺⠟⣗⡿⢧⡈⢹⠋⠸⣿⢿⣿⣄⣼⡿⠈⡇⠀⠀⠀
⠀⠀⠀⢠⡇⢸⡇⠈⠁⠛⠤⢀⣿⣽⣿⣓⣋⣒⣚⣉⣉⡀⣸⢹⡇⠠⡇⠀⠀⠀
⠀⠀⠀⢸⡇⠈⣇⢀⣠⠤⣖⣻⠭⢥⣐⣒⣒⣒⣒⣒⣒⣛⢿⡾⠁⢰⠇⠀⠀⠀
⠀⠀⠀⠀⣇⠀⢻⣌⡓⠖⠒⠋⠉⠉⠀⠀⠀⠀⠀⠀⣀⣨⣿⢁⡴⠋⠀⠀⠀⠀
⠀⠀⠀⠀⠸⣄⠀⢹⡟⠲⠦⢤⣤⣤⢤⡤⠤⠤⠶⠛⠋⠁⠿⣍⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠟⠶⠼⠇⠀⠀⠀⢀⣀⣀⣀⢀⠀⠀⠀⢀⠀⠀⠘⢆⠀⠀⠀⠀⠀

*/

// SPDX-License-Identifier: Unlicensed


pragma solidity 0.8.21;



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;
}

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;
    }
}

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

    event AutoLiquify(uint256 amountBNB, uint256 amountTokens);
    event EditTax(uint8 Buy, uint8 Sell, uint8 Transfer);
    event ClearStuck(uint256 amount);
    event ClearToken(address TokenAddressCleared, uint256 Amount);
    event set_Receivers(address marketingFeeReceiver, address teamFeeReceiver,address stakingFeeReceiver,address devFeeReceiver);
    event set_Holding(uint256 maxWallPercent);
    event set_SwapBack(uint256 Amount, bool Enabled);

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

    
    string constant _name = "Gud Night";
    string constant _symbol = "GN";
    uint8 constant _decimals = 18; 
  

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

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

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

    
    mapping (address => bool) isFeeexempt;
    mapping (address => bool) isTxLimitexempt;

    uint256 private liquidityFee    = 1;
    uint256 private marketingFee    = 2;
    uint256 private utilityFee      = 1;
    uint256 private developerFee    = 0; 
    uint256 private stakingFee      = 0;
    uint256 private totalFee         = developerFee + marketingFee + liquidityFee + utilityFee + stakingFee;
    uint256 private feeDenominator  = 100;

    uint256 selltax = 900;
    uint256 buytax = 500;
    uint256 wallettowallet = 100; 

    address private LPReceiver;
    address private marketingFeeReceiver;
    address private utilityFeeReceiver;
    address private developerFeeReceiver;
    address private stakingFeeReceiver;
    
    uint256 targetLiquidity = 25;
    uint256 targetLiquidityDenominator = 100;

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

    bool public KOLMode = false;
    mapping (address => bool) public isKOLed;   

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

        isFeeexempt[msg.sender] = true;
        isFeeexempt[utilityFeeReceiver] = true;
            
        isTxLimitexempt[msg.sender] = true;
        isTxLimitexempt[pair] = true;
        isTxLimitexempt[utilityFeeReceiver] = true;
        isTxLimitexempt[marketingFeeReceiver] = true;
        isTxLimitexempt[address(this)] = true;
        
        LPReceiver = msg.sender;
        marketingFeeReceiver = 0x2b83f8284Bd78f22BAA73Fc00B256E0EE59245aF;
        utilityFeeReceiver = msg.sender;
        developerFeeReceiver = msg.sender;
        stakingFeeReceiver = 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 maxWalletRule(uint256 maxWallPercent) external onlyOwner {
        require(_maxWalletToken >= _totalSupply / 1000); 
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 1000;

        emit set_Holding(maxWallPercent);
                
    }

         
    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(KOLMode){
                require(isKOLed[recipient],"Not KOLed"); 
          }
        }
               
        if (!authorizations[sender] && recipient != address(this)  && recipient != address(DEAD) && recipient != pair && recipient != stakingFeeReceiver && 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 percents = wallettowallet;

        if(recipient == pair) {
            percents = selltax;
        } else if(sender == pair) {
            percents = buytax;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(percents).div(feeDenominator * 100);
        uint256 stakingTokens = feeAmount.mul(stakingFee).div(totalFee);
        uint256 contractTokens = feeAmount.sub(stakingTokens);

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

        return amount.sub(feeAmount);
    }

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

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

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

    }

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

    }

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

        emit ClearToken(tokenAddress, tokens);
        return ERC20(tokenAddress).transfer(LPReceiver, tokens);
    }

    function setStructure(uint256 _buypercent, uint256 _sellpercent, uint256 _transpercent) external onlyOwner {
        selltax = _sellpercent;
        buytax = _buypercent;
        wallettowallet = _transpercent;    
          
    }

     function setMode(bool _status) public onlyOwner {
        KOLMode = _status;
    }

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

    function openTrading() public onlyOwner {
        KOLMode = false;
        buytax = 650;
        selltax = 950;
        wallettowallet = 1000;
        set_fees();
    }

    function first() public onlyOwner {
        buytax = 400;
        selltax = 650;
        wallettowallet = 0;
        set_fees();
    }

    function second() public onlyOwner {
        buytax = 250;
        selltax = 400;
        wallettowallet = 0;
        set_fees();
    }

    function goFinal() public onlyOwner {
        buytax = 25;
        selltax = 25;
        wallettowallet = 0;
        set_fees();

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

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

        uint256 balanceBefore = address(this).balance;

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

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

        uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2));
        
        uint256 amountETHLiquidity = amountETH.mul(dynamicLiquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
        uint256 amountETHdeveloper = amountETH.mul(developerFee).div(totalETHFee);
        uint256 amountETHutility = amountETH.mul(utilityFee).div(totalETHFee);

        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}("");
        (tmpSuccess,) = payable(utilityFeeReceiver).call{value: amountETHutility}("");
        (tmpSuccess,) = payable(developerFeeReceiver).call{value: amountETHdeveloper}("");
        
        tmpSuccess = false;

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

     
    function set_fees() internal {
      
        emit EditTax( uint8(totalFee.mul(buytax).div(100)),
            uint8(totalFee.mul(selltax).div(100)),
            uint8(totalFee.mul(wallettowallet).div(100))
            );
    }
    
     function setParameters(uint256 _liquidityFee, uint256 _developerFee, uint256 _marketingFee, uint256 _utilityFee, uint256 _stakingFee, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        developerFee = _developerFee;
        marketingFee = _marketingFee;
        utilityFee = _utilityFee;
        stakingFee = _stakingFee;
        totalFee = _liquidityFee.add(_developerFee).add(_marketingFee).add(_utilityFee).add(_stakingFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator / 5, "Fees can not be more than 20%"); 
        set_fees();
    }

    function setWallets(address _LPReceiver, address _marketingFeeReceiver, address _utilityFeeReceiver, address _stakingFeeReceiver, address _developerFeeReceiver) external onlyOwner {
        LPReceiver = _LPReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        utilityFeeReceiver = _utilityFeeReceiver;
        stakingFeeReceiver = _stakingFeeReceiver;
        developerFeeReceiver = _developerFeeReceiver;
        emit set_Receivers(marketingFeeReceiver, utilityFeeReceiver, stakingFeeReceiver, developerFeeReceiver);
    }

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

      
    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;
    }

    
}

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":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ClearStuck","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"TokenAddressCleared","type":"address"},{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"}],"name":"ClearToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"Buy","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Sell","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Transfer","type":"uint8"}],"name":"EditTax","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"set_Holding","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"marketingFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"teamFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"stakingFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"devFeeReceiver","type":"address"}],"name":"set_Receivers","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"Enabled","type":"bool"}],"name":"set_SwapBack","type":"event"},{"inputs":[],"name":"KOLMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"addMultipleToKOLList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"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":"first","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"goFinal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"gudNight","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isKOLed","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":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"maxWalletRule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","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":"removeAllLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"second","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"setMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_developerFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_utilityFee","type":"uint256"},{"internalType":"uint256","name":"_stakingFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buypercent","type":"uint256"},{"internalType":"uint256","name":"_sellpercent","type":"uint256"},{"internalType":"uint256","name":"_transpercent","type":"uint256"}],"name":"setStructure","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":"address","name":"_LPReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_utilityFeeReceiver","type":"address"},{"internalType":"address","name":"_stakingFeeReceiver","type":"address"},{"internalType":"address","name":"_developerFeeReceiver","type":"address"}],"name":"setWallets","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":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"transfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326012600a620006ab565b620000439064e8d4a51000620006bb565b600581905562000065906103e8906200005e90600c62000488565b906200051b565b60065560055462000081906103e8906200005e90600c62000488565b6007556001600c556002600d556001600e555f600f555f601055601054600e54600c54600d54600f54620000b69190620006d5565b620000c29190620006d5565b620000ce9190620006d5565b620000da9190620006d5565b601155606460128190556103846013556101f460145560158190556019601b55601c55601f805461ffff60a01b191690556021805460ff191660011790556005546103e8906200012c906046620006bb565b620001389190620006eb565b60225534801562000147575f80fd5b505f80546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000204573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200022a91906200070b565b600280546001600160a01b0319166001600160a01b03928316179055601d546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa15801562000287573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002ad91906200070b565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303815f875af1158015620002fc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200032291906200070b565b601f80546001600160a01b039283166001600160a01b031991821681178355601e805483169091179055305f818152600960209081526040808320601d548816845282528083205f19905533808452600a8352818420805460ff199081166001908117909255601880548b1687528487208054831684179055838752600b8652848720805483168417905598548a168652838620805482168317905588548a1686528386208054821683179055601780548b1687528487208054831684179055968652838620805490911690911790556016805487168217905584548616732b83f8284bd78f22baa73fc00b256e0ee59245af1790945585548516841790955560198054851684179055600354601a80549095169616959095179092556005548183526008855283832081905592519283529290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000780565b5f825f036200049957505f62000515565b5f620004a68385620006bb565b905082620004b58583620006eb565b14620005125760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f6200051283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200056460201b60201c565b5f8183620005875760405162461bcd60e51b815260040162000509919062000733565b505f620005958486620006eb565b95945050505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620005f257815f1904821115620005d657620005d66200059e565b80851615620005e457918102915b93841c9390800290620005b7565b509250929050565b5f826200060a5750600162000515565b816200061857505f62000515565b81600181146200063157600281146200063c576200065c565b600191505062000515565b60ff8411156200065057620006506200059e565b50506001821b62000515565b5060208310610133831016604e8410600b841016171562000681575081810a62000515565b6200068d8383620005b2565b805f1904821115620006a357620006a36200059e565b029392505050565b5f6200051260ff841683620005fa565b80820281158282048414176200051557620005156200059e565b808201808211156200051557620005156200059e565b5f826200070657634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156200071c575f80fd5b81516001600160a01b038116811462000512575f80fd5b5f6020808352835180828501525f5b81811015620007605785810183015185820160400152820162000742565b505f604082860101526040601f19601f8301168501019250505092915050565b6123b7806200078e5f395ff3fe608060405260043610610256575f3560e01c806378109e541161013f578063c0cbdea4116100b3578063db05e5cb11610078578063db05e5cb146106d9578063dd62ed3e146106ed578063df20fd4914610731578063ea893be214610750578063f2fde38b14610764578063f887ea4014610783575f80fd5b8063c0cbdea41461063b578063c262ad4c1461065a578063c9567bf914610687578063d51ed1c81461069b578063d78e139d146106ba575f80fd5b80638c33c9e4116101045780638c33c9e41461057a5780638da5cb5b1461059957806395d89b41146105b5578063a8aa1b31146105df578063a9059cbb146105fe578063b2bdfa7b1461061d575f80fd5b806378109e54146104ed5780637d1db4a5146105025780638252879114610517578063893d20e8146105365780638a4068dd14610566575f80fd5b80632b112e49116101d65780635a8ac02d1161019b5780635a8ac02d1461043a5780635d83e1d51461044e5780636ddd17131461046d57806370a0823114610486578063715018a6146104ba57806377b54bad146104ce575f80fd5b80632b112e49146103b9578063313ce567146103cd5780633df4ddf4146103e857806348a1df52146103fc578063571ac8b01461041b575f80fd5b80631161ae391161021c5780631161ae391461033257806318160ddd14610351578063199b3da71461036557806323b872dd1461037b578063282c87491461039a575f80fd5b8062ba4508146102615780630445b6671461029657806306fdde03146102b957806308fd3d05146102f3578063095ea7b314610313575f80fd5b3661025d57005b5f80fd5b34801561026c575f80fd5b50601f5461028190600160a81b900460ff1681565b60405190151581526020015b60405180910390f35b3480156102a1575f80fd5b506102ab60225481565b60405190815260200161028d565b3480156102c4575f80fd5b5060408051808201909152600981526811dd5908139a59da1d60ba1b60208201525b60405161028d9190611ef0565b3480156102fe575f80fd5b50601f5461028190600160a01b900460ff1681565b34801561031e575f80fd5b5061028161032d366004611f56565b6107a2565b34801561033d575f80fd5b5061028161034c366004611f7e565b61080e565b34801561035c575f80fd5b506005546102ab565b348015610370575f80fd5b50610379610821565b005b348015610386575f80fd5b50610281610395366004611f9e565b61086a565b3480156103a5575f80fd5b506103796103b4366004611fd7565b610928565b3480156103c4575f80fd5b506102ab6109f5565b3480156103d8575f80fd5b506040516012815260200161028d565b3480156103f3575f80fd5b50610379610a45565b348015610407575f80fd5b50610379610416366004612023565b610a88565b348015610426575f80fd5b506102816104353660046120a2565b610b23565b348015610445575f80fd5b50610379610b2f565b348015610459575f80fd5b506103796104683660046120bb565b610b6f565b348015610478575f80fd5b506021546102819060ff1681565b348015610491575f80fd5b506102ab6104a03660046120a2565b6001600160a01b03165f9081526008602052604090205490565b3480156104c5575f80fd5b50610379610c09565b3480156104d9575f80fd5b506102816104e8366004611f56565b610c7a565b3480156104f8575f80fd5b506102ab60075481565b34801561050d575f80fd5b506102ab60065481565b348015610522575f80fd5b506103796105313660046120d2565b610da1565b348015610541575f80fd5b505f546001600160a01b03165b6040516001600160a01b03909116815260200161028d565b348015610571575f80fd5b50610379610e77565b348015610585575f80fd5b50610379610594366004612133565b610eb0565b3480156105a4575f80fd5b505f546001600160a01b031661054e565b3480156105c0575f80fd5b5060408051808201909152600281526123a760f11b60208201526102e6565b3480156105ea575f80fd5b50601f5461054e906001600160a01b031681565b348015610609575f80fd5b50610281610618366004611f56565b610ef7565b348015610628575f80fd5b505f5461054e906001600160a01b031681565b348015610646575f80fd5b5061037961065536600461214e565b610f03565b348015610665575f80fd5b506102816106743660046120a2565b602080525f908152604090205460ff1681565b348015610692575f80fd5b50610379610f3d565b3480156106a6575f80fd5b506102ab6106b53660046120bb565b610f8d565b3480156106c5575f80fd5b506103796106d43660046120bb565b610fd2565b3480156106e4575f80fd5b50610379611023565b3480156106f8575f80fd5b506102ab610707366004612177565b6001600160a01b039182165f90815260096020908152604080832093909416825291909152205490565b34801561073c575f80fd5b5061037961074b3660046121a8565b611059565b34801561075b575f80fd5b506103796110da565b34801561076f575f80fd5b5061037961077e3660046120a2565b611119565b34801561078e575f80fd5b50601d5461054e906001600160a01b031681565b335f8181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107fc9086815260200190565b60405180910390a35060015b92915050565b5f8261081983610f8d565b119392505050565b5f546001600160a01b031633146108535760405162461bcd60e51b815260040161084a906121c4565b60405180910390fd5b601f805461ffff60a01b191661010160a01b179055565b6001600160a01b0383165f9081526009602090815260408083203384529091528120545f1914610913576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f9081526009825283812033825290915291909120546108ef918490611200565b6001600160a01b0385165f9081526009602090815260408083203384529091529020555b61091e848484611238565b90505b9392505050565b5f546001600160a01b031633146109515760405162461bcd60e51b815260040161084a906121c4565b600c869055600f859055600d849055600e83905560108290556109828261097c858188818c8c6115f6565b906115f6565b601155601281905561099560058261220d565b601154106109e55760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e20323025000000604482015260640161084a565b6109ed611654565b505050505050565b6004546001600160a01b03165f90815260086020526040812054610a40906003546001600160a01b03165f90815260086020526040902054610a3a90600554906116ef565b906116ef565b905090565b5f546001600160a01b03163314610a6e5760405162461bcd60e51b815260040161084a906121c4565b61019060145561028a6013555f601555610a86611654565b565b5f546001600160a01b03163314610ab15760405162461bcd60e51b815260040161084a906121c4565b5f5b82811015610b1d578160205f868685818110610ad157610ad161222c565b9050602002016020810190610ae691906120a2565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055610b1681612240565b9050610ab3565b50505050565b5f610808825f196107a2565b5f546001600160a01b03163314610b585760405162461bcd60e51b815260040161084a906121c4565b60fa6014556101906013555f601555610a86611654565b5f546001600160a01b03163314610b985760405162461bcd60e51b815260040161084a906121c4565b6103e8600554610ba8919061220d565b6007541015610bb5575f80fd5b6103e881600554610bc69190612258565b610bd0919061220d565b6007556040518181527fe0654e8597f94e34d9eb74dddc2975e840b8613108bf9e8ef6785d786c4bccd19060200160405180910390a150565b5f546001600160a01b03163314610c325760405162461bcd60e51b815260040161084a906121c4565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f815f03610ceb576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610cc4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ce8919061226f565b91505b604080516001600160a01b0385168152602081018490527fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f910160405180910390a160165460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303815f875af1158015610d7d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109219190612286565b5f546001600160a01b03163314610dca5760405162461bcd60e51b815260040161084a906121c4565b601680546001600160a01b038781166001600160a01b031992831617909255601780548784169083168117909155601880548785169084168117909155601a805487861690851681179091556019805495871695909416851790935560408051928352602083019190915281019190915260608101919091527f06cd79b5e338fdebb51e28f829f3333e4fda9663d4732f262d97dbbacf748b159060800160405180910390a15050505050565b6018546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610ead573d5f803e3d5ffd5b50565b5f546001600160a01b03163314610ed95760405162461bcd60e51b815260040161084a906121c4565b601f8054911515600160a81b0260ff60a81b19909216919091179055565b5f610921338484611238565b5f546001600160a01b03163314610f2c5760405162461bcd60e51b815260040161084a906121c4565b601391909155601491909155601555565b5f546001600160a01b03163314610f665760405162461bcd60e51b815260040161084a906121c4565b601f805460ff60a81b1916905561028a6014556103b66013556103e8601555610a86611654565b5f610808610f996109f5565b601f546001600160a01b03165f90815260086020526040902054610fcc90610fc5906002905b90611730565b8590611730565b906117ae565b60185447906001600160a01b03166108fc6064610fef8585612258565b610ff9919061220d565b6040518115909202915f818181858888f1935050505015801561101e573d5f803e3d5ffd5b505050565b5f546001600160a01b0316331461104c5760405162461bcd60e51b815260040161084a906121c4565b6005546007819055600655565b5f546001600160a01b031633146110825760405162461bcd60e51b815260040161084a906121c4565b6021805460ff191683151590811790915560228290556040805183815260ff909216151560208301527f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60910160405180910390a15050565b5f546001600160a01b031633146111035760405162461bcd60e51b815260040161084a906121c4565b601960148190556013555f601555610a86611654565b5f546001600160a01b031633146111425760405162461bcd60e51b815260040161084a906121c4565b6001600160a01b0381166111a75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161084a565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f81848411156112235760405162461bcd60e51b815260040161084a9190611ef0565b505f61122f84866122a1565b95945050505050565b6023545f9060ff1615611257576112508484846117ef565b9050610921565b6001600160a01b0384165f9081526001602052604090205460ff1615801561129757506001600160a01b0383165f9081526001602052604090205460ff16155b1561135057601f54600160a01b900460ff166112ec5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015260640161084a565b601f54600160a81b900460ff1615611350576001600160a01b0383165f90815260208052604090205460ff166113505760405162461bcd60e51b8152602060048201526009602482015268139bdd0812d3d3195960ba1b604482015260640161084a565b6001600160a01b0384165f9081526001602052604090205460ff1615801561138157506001600160a01b0383163014155b801561139b57506003546001600160a01b03848116911614155b80156113b55750601f546001600160a01b03848116911614155b80156113cf5750601a546001600160a01b03848116911614155b80156113e957506017546001600160a01b03848116911614155b801561140d57506001600160a01b0383165f908152600b602052604090205460ff16155b156114ad576001600160a01b0383165f9081526008602052604090205460075461143784836122b4565b11156114ab5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000606482015260840161084a565b505b6114b784836118bf565b6114bf61192b565b156114cc576114cc611978565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f9081526008909152919091205461151d918490611200565b6001600160a01b0385165f90815260086020908152604080832093909355600a90529081205460ff168061156857506001600160a01b0384165f908152600a602052604090205460ff165b61157c57611577858486611d40565b61157e565b825b6001600160a01b0385165f908152600860205260409020549091506115a390826115f6565b6001600160a01b038086165f8181526008602052604090819020939093559151908716905f80516020612362833981519152906115e39085815260200190565b60405180910390a3506001949350505050565b5f8061160283856122b4565b9050838110156109215760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161084a565b7f8cc651ceed4360bdb07d4dfc17daa4a6fa17092a313d2464a582a73e9b9328006116916064610fcc60145460115461173090919063ffffffff16565b6116ad6064610fcc60135460115461173090919063ffffffff16565b6116c96064610fcc60155460115461173090919063ffffffff16565b6040805160ff9485168152928416602084015292168183015290519081900360600190a1565b5f61092183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611200565b5f825f0361173f57505f610808565b5f61174a8385612258565b905082611757858361220d565b146109215760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161084a565b5f61092183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ec4565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f90815260089091529182205461183f918490611200565b6001600160a01b038086165f90815260086020526040808220939093559085168152205461186d90836115f6565b6001600160a01b038085165f8181526008602052604090819020939093559151908616905f80516020612362833981519152906118ad9086815260200190565b60405180910390a35060019392505050565b600654811115806118e757506001600160a01b0382165f908152600b602052604090205460ff165b6119275760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161084a565b5050565b601f545f906001600160a01b0316331480159061194b575060235460ff16155b8015611959575060215460ff165b8015610a40575050602254305f90815260086020526040902054101590565b6023805460ff19166001179055601b54601c545f916119969161080e565b6119a257600c546119a4565b5f5b90505f6119c76002610fcc601154610fcc8660225461173090919063ffffffff16565b90505f6119df826022546116ef90919063ffffffff16565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f81518110611a1757611a1761222c565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611a4857611a4861222c565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac94790611a919086905f908790309042906004016122c7565b5f604051808303815f87803b158015611aa8575f80fd5b505af1158015611aba573d5f803e3d5ffd5b505050505f611ad282476116ef90919063ffffffff16565b90505f611aec611ae38860026117ae565b601154906116ef565b90505f611b006002610fcc8481878d611730565b90505f611b1c83610fcc600d548761173090919063ffffffff16565b90505f611b3884610fcc600f548861173090919063ffffffff16565b90505f611b5485610fcc600e548961173090919063ffffffff16565b6017546040519192505f916001600160a01b039091169085908381818185875af1925050503d805f8114611ba3576040519150601f19603f3d011682016040523d82523d5f602084013e611ba8565b606091505b50506018546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114611bf5576040519150601f19603f3d011682016040523d82523d5f602084013e611bfa565b606091505b50506019546040519192506001600160a01b03169084905f81818185875af1925050503d805f8114611c47576040519150601f19603f3d011682016040523d82523d5f602084013e611c4c565b606091505b505f9250508b159050611d2857601d5460165460405163f305d71960e01b8152306004820152602481018e90525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611cc6573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611ceb9190612336565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506023805460ff1916905550505050505050505050565b601554601f545f91906001600160a01b0390811690841603611d655750601354611d80565b601f546001600160a01b0390811690861603611d8057506014545b5f611dac6012546064611d939190612258565b610fcc84610fbf6011548a61173090919063ffffffff16565b90505f611dca601154610fcc6010548561173090919063ffffffff16565b90505f611dd783836116ef565b305f90815260086020526040902054909150611df390826115f6565b305f9081526008602052604080822092909255601a546001600160a01b031681522054611e2090836115f6565b601a546001600160a01b039081165f9081526008602090815260409182902093909355518381523092918b16915f80516020612362833981519152910160405180910390a38115611eae57600554611e7890836116ef565b6005556004546040518381526001600160a01b03918216918a16905f805160206123628339815191529060200160405180910390a35b611eb887846116ef565b98975050505050505050565b5f8183611ee45760405162461bcd60e51b815260040161084a9190611ef0565b505f61122f848661220d565b5f6020808352835180828501525f5b81811015611f1b57858101830151858201604001528201611eff565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611f51575f80fd5b919050565b5f8060408385031215611f67575f80fd5b611f7083611f3b565b946020939093013593505050565b5f8060408385031215611f8f575f80fd5b50508035926020909101359150565b5f805f60608486031215611fb0575f80fd5b611fb984611f3b565b9250611fc760208501611f3b565b9150604084013590509250925092565b5f805f805f8060c08789031215611fec575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b8015158114610ead575f80fd5b5f805f60408486031215612035575f80fd5b833567ffffffffffffffff8082111561204c575f80fd5b818601915086601f83011261205f575f80fd5b81358181111561206d575f80fd5b8760208260051b8501011115612081575f80fd5b6020928301955093505084013561209781612016565b809150509250925092565b5f602082840312156120b2575f80fd5b61092182611f3b565b5f602082840312156120cb575f80fd5b5035919050565b5f805f805f60a086880312156120e6575f80fd5b6120ef86611f3b565b94506120fd60208701611f3b565b935061210b60408701611f3b565b925061211960608701611f3b565b915061212760808701611f3b565b90509295509295909350565b5f60208284031215612143575f80fd5b813561092181612016565b5f805f60608486031215612160575f80fd5b505081359360208301359350604090920135919050565b5f8060408385031215612188575f80fd5b61219183611f3b565b915061219f60208401611f3b565b90509250929050565b5f80604083850312156121b9575f80fd5b8235611f7081612016565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f8261222757634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60018201612251576122516121f9565b5060010190565b8082028115828204841417610808576108086121f9565b5f6020828403121561227f575f80fd5b5051919050565b5f60208284031215612296575f80fd5b815161092181612016565b81810381811115610808576108086121f9565b80820180821115610808576108086121f9565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156123155784516001600160a01b0316835293830193918301916001016122f0565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215612348575f80fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212209ff334c3f5a95e2621ec6d94618668fa97dfe22d1e108532cc4d8077ba159cb364736f6c63430008150033

Deployed Bytecode

0x608060405260043610610256575f3560e01c806378109e541161013f578063c0cbdea4116100b3578063db05e5cb11610078578063db05e5cb146106d9578063dd62ed3e146106ed578063df20fd4914610731578063ea893be214610750578063f2fde38b14610764578063f887ea4014610783575f80fd5b8063c0cbdea41461063b578063c262ad4c1461065a578063c9567bf914610687578063d51ed1c81461069b578063d78e139d146106ba575f80fd5b80638c33c9e4116101045780638c33c9e41461057a5780638da5cb5b1461059957806395d89b41146105b5578063a8aa1b31146105df578063a9059cbb146105fe578063b2bdfa7b1461061d575f80fd5b806378109e54146104ed5780637d1db4a5146105025780638252879114610517578063893d20e8146105365780638a4068dd14610566575f80fd5b80632b112e49116101d65780635a8ac02d1161019b5780635a8ac02d1461043a5780635d83e1d51461044e5780636ddd17131461046d57806370a0823114610486578063715018a6146104ba57806377b54bad146104ce575f80fd5b80632b112e49146103b9578063313ce567146103cd5780633df4ddf4146103e857806348a1df52146103fc578063571ac8b01461041b575f80fd5b80631161ae391161021c5780631161ae391461033257806318160ddd14610351578063199b3da71461036557806323b872dd1461037b578063282c87491461039a575f80fd5b8062ba4508146102615780630445b6671461029657806306fdde03146102b957806308fd3d05146102f3578063095ea7b314610313575f80fd5b3661025d57005b5f80fd5b34801561026c575f80fd5b50601f5461028190600160a81b900460ff1681565b60405190151581526020015b60405180910390f35b3480156102a1575f80fd5b506102ab60225481565b60405190815260200161028d565b3480156102c4575f80fd5b5060408051808201909152600981526811dd5908139a59da1d60ba1b60208201525b60405161028d9190611ef0565b3480156102fe575f80fd5b50601f5461028190600160a01b900460ff1681565b34801561031e575f80fd5b5061028161032d366004611f56565b6107a2565b34801561033d575f80fd5b5061028161034c366004611f7e565b61080e565b34801561035c575f80fd5b506005546102ab565b348015610370575f80fd5b50610379610821565b005b348015610386575f80fd5b50610281610395366004611f9e565b61086a565b3480156103a5575f80fd5b506103796103b4366004611fd7565b610928565b3480156103c4575f80fd5b506102ab6109f5565b3480156103d8575f80fd5b506040516012815260200161028d565b3480156103f3575f80fd5b50610379610a45565b348015610407575f80fd5b50610379610416366004612023565b610a88565b348015610426575f80fd5b506102816104353660046120a2565b610b23565b348015610445575f80fd5b50610379610b2f565b348015610459575f80fd5b506103796104683660046120bb565b610b6f565b348015610478575f80fd5b506021546102819060ff1681565b348015610491575f80fd5b506102ab6104a03660046120a2565b6001600160a01b03165f9081526008602052604090205490565b3480156104c5575f80fd5b50610379610c09565b3480156104d9575f80fd5b506102816104e8366004611f56565b610c7a565b3480156104f8575f80fd5b506102ab60075481565b34801561050d575f80fd5b506102ab60065481565b348015610522575f80fd5b506103796105313660046120d2565b610da1565b348015610541575f80fd5b505f546001600160a01b03165b6040516001600160a01b03909116815260200161028d565b348015610571575f80fd5b50610379610e77565b348015610585575f80fd5b50610379610594366004612133565b610eb0565b3480156105a4575f80fd5b505f546001600160a01b031661054e565b3480156105c0575f80fd5b5060408051808201909152600281526123a760f11b60208201526102e6565b3480156105ea575f80fd5b50601f5461054e906001600160a01b031681565b348015610609575f80fd5b50610281610618366004611f56565b610ef7565b348015610628575f80fd5b505f5461054e906001600160a01b031681565b348015610646575f80fd5b5061037961065536600461214e565b610f03565b348015610665575f80fd5b506102816106743660046120a2565b602080525f908152604090205460ff1681565b348015610692575f80fd5b50610379610f3d565b3480156106a6575f80fd5b506102ab6106b53660046120bb565b610f8d565b3480156106c5575f80fd5b506103796106d43660046120bb565b610fd2565b3480156106e4575f80fd5b50610379611023565b3480156106f8575f80fd5b506102ab610707366004612177565b6001600160a01b039182165f90815260096020908152604080832093909416825291909152205490565b34801561073c575f80fd5b5061037961074b3660046121a8565b611059565b34801561075b575f80fd5b506103796110da565b34801561076f575f80fd5b5061037961077e3660046120a2565b611119565b34801561078e575f80fd5b50601d5461054e906001600160a01b031681565b335f8181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107fc9086815260200190565b60405180910390a35060015b92915050565b5f8261081983610f8d565b119392505050565b5f546001600160a01b031633146108535760405162461bcd60e51b815260040161084a906121c4565b60405180910390fd5b601f805461ffff60a01b191661010160a01b179055565b6001600160a01b0383165f9081526009602090815260408083203384529091528120545f1914610913576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f9081526009825283812033825290915291909120546108ef918490611200565b6001600160a01b0385165f9081526009602090815260408083203384529091529020555b61091e848484611238565b90505b9392505050565b5f546001600160a01b031633146109515760405162461bcd60e51b815260040161084a906121c4565b600c869055600f859055600d849055600e83905560108290556109828261097c858188818c8c6115f6565b906115f6565b601155601281905561099560058261220d565b601154106109e55760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e20323025000000604482015260640161084a565b6109ed611654565b505050505050565b6004546001600160a01b03165f90815260086020526040812054610a40906003546001600160a01b03165f90815260086020526040902054610a3a90600554906116ef565b906116ef565b905090565b5f546001600160a01b03163314610a6e5760405162461bcd60e51b815260040161084a906121c4565b61019060145561028a6013555f601555610a86611654565b565b5f546001600160a01b03163314610ab15760405162461bcd60e51b815260040161084a906121c4565b5f5b82811015610b1d578160205f868685818110610ad157610ad161222c565b9050602002016020810190610ae691906120a2565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055610b1681612240565b9050610ab3565b50505050565b5f610808825f196107a2565b5f546001600160a01b03163314610b585760405162461bcd60e51b815260040161084a906121c4565b60fa6014556101906013555f601555610a86611654565b5f546001600160a01b03163314610b985760405162461bcd60e51b815260040161084a906121c4565b6103e8600554610ba8919061220d565b6007541015610bb5575f80fd5b6103e881600554610bc69190612258565b610bd0919061220d565b6007556040518181527fe0654e8597f94e34d9eb74dddc2975e840b8613108bf9e8ef6785d786c4bccd19060200160405180910390a150565b5f546001600160a01b03163314610c325760405162461bcd60e51b815260040161084a906121c4565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f815f03610ceb576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610cc4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ce8919061226f565b91505b604080516001600160a01b0385168152602081018490527fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f910160405180910390a160165460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303815f875af1158015610d7d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109219190612286565b5f546001600160a01b03163314610dca5760405162461bcd60e51b815260040161084a906121c4565b601680546001600160a01b038781166001600160a01b031992831617909255601780548784169083168117909155601880548785169084168117909155601a805487861690851681179091556019805495871695909416851790935560408051928352602083019190915281019190915260608101919091527f06cd79b5e338fdebb51e28f829f3333e4fda9663d4732f262d97dbbacf748b159060800160405180910390a15050505050565b6018546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610ead573d5f803e3d5ffd5b50565b5f546001600160a01b03163314610ed95760405162461bcd60e51b815260040161084a906121c4565b601f8054911515600160a81b0260ff60a81b19909216919091179055565b5f610921338484611238565b5f546001600160a01b03163314610f2c5760405162461bcd60e51b815260040161084a906121c4565b601391909155601491909155601555565b5f546001600160a01b03163314610f665760405162461bcd60e51b815260040161084a906121c4565b601f805460ff60a81b1916905561028a6014556103b66013556103e8601555610a86611654565b5f610808610f996109f5565b601f546001600160a01b03165f90815260086020526040902054610fcc90610fc5906002905b90611730565b8590611730565b906117ae565b60185447906001600160a01b03166108fc6064610fef8585612258565b610ff9919061220d565b6040518115909202915f818181858888f1935050505015801561101e573d5f803e3d5ffd5b505050565b5f546001600160a01b0316331461104c5760405162461bcd60e51b815260040161084a906121c4565b6005546007819055600655565b5f546001600160a01b031633146110825760405162461bcd60e51b815260040161084a906121c4565b6021805460ff191683151590811790915560228290556040805183815260ff909216151560208301527f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60910160405180910390a15050565b5f546001600160a01b031633146111035760405162461bcd60e51b815260040161084a906121c4565b601960148190556013555f601555610a86611654565b5f546001600160a01b031633146111425760405162461bcd60e51b815260040161084a906121c4565b6001600160a01b0381166111a75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161084a565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f81848411156112235760405162461bcd60e51b815260040161084a9190611ef0565b505f61122f84866122a1565b95945050505050565b6023545f9060ff1615611257576112508484846117ef565b9050610921565b6001600160a01b0384165f9081526001602052604090205460ff1615801561129757506001600160a01b0383165f9081526001602052604090205460ff16155b1561135057601f54600160a01b900460ff166112ec5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015260640161084a565b601f54600160a81b900460ff1615611350576001600160a01b0383165f90815260208052604090205460ff166113505760405162461bcd60e51b8152602060048201526009602482015268139bdd0812d3d3195960ba1b604482015260640161084a565b6001600160a01b0384165f9081526001602052604090205460ff1615801561138157506001600160a01b0383163014155b801561139b57506003546001600160a01b03848116911614155b80156113b55750601f546001600160a01b03848116911614155b80156113cf5750601a546001600160a01b03848116911614155b80156113e957506017546001600160a01b03848116911614155b801561140d57506001600160a01b0383165f908152600b602052604090205460ff16155b156114ad576001600160a01b0383165f9081526008602052604090205460075461143784836122b4565b11156114ab5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000606482015260840161084a565b505b6114b784836118bf565b6114bf61192b565b156114cc576114cc611978565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f9081526008909152919091205461151d918490611200565b6001600160a01b0385165f90815260086020908152604080832093909355600a90529081205460ff168061156857506001600160a01b0384165f908152600a602052604090205460ff165b61157c57611577858486611d40565b61157e565b825b6001600160a01b0385165f908152600860205260409020549091506115a390826115f6565b6001600160a01b038086165f8181526008602052604090819020939093559151908716905f80516020612362833981519152906115e39085815260200190565b60405180910390a3506001949350505050565b5f8061160283856122b4565b9050838110156109215760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161084a565b7f8cc651ceed4360bdb07d4dfc17daa4a6fa17092a313d2464a582a73e9b9328006116916064610fcc60145460115461173090919063ffffffff16565b6116ad6064610fcc60135460115461173090919063ffffffff16565b6116c96064610fcc60155460115461173090919063ffffffff16565b6040805160ff9485168152928416602084015292168183015290519081900360600190a1565b5f61092183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611200565b5f825f0361173f57505f610808565b5f61174a8385612258565b905082611757858361220d565b146109215760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161084a565b5f61092183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ec4565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f90815260089091529182205461183f918490611200565b6001600160a01b038086165f90815260086020526040808220939093559085168152205461186d90836115f6565b6001600160a01b038085165f8181526008602052604090819020939093559151908616905f80516020612362833981519152906118ad9086815260200190565b60405180910390a35060019392505050565b600654811115806118e757506001600160a01b0382165f908152600b602052604090205460ff165b6119275760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161084a565b5050565b601f545f906001600160a01b0316331480159061194b575060235460ff16155b8015611959575060215460ff165b8015610a40575050602254305f90815260086020526040902054101590565b6023805460ff19166001179055601b54601c545f916119969161080e565b6119a257600c546119a4565b5f5b90505f6119c76002610fcc601154610fcc8660225461173090919063ffffffff16565b90505f6119df826022546116ef90919063ffffffff16565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f81518110611a1757611a1761222c565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611a4857611a4861222c565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac94790611a919086905f908790309042906004016122c7565b5f604051808303815f87803b158015611aa8575f80fd5b505af1158015611aba573d5f803e3d5ffd5b505050505f611ad282476116ef90919063ffffffff16565b90505f611aec611ae38860026117ae565b601154906116ef565b90505f611b006002610fcc8481878d611730565b90505f611b1c83610fcc600d548761173090919063ffffffff16565b90505f611b3884610fcc600f548861173090919063ffffffff16565b90505f611b5485610fcc600e548961173090919063ffffffff16565b6017546040519192505f916001600160a01b039091169085908381818185875af1925050503d805f8114611ba3576040519150601f19603f3d011682016040523d82523d5f602084013e611ba8565b606091505b50506018546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114611bf5576040519150601f19603f3d011682016040523d82523d5f602084013e611bfa565b606091505b50506019546040519192506001600160a01b03169084905f81818185875af1925050503d805f8114611c47576040519150601f19603f3d011682016040523d82523d5f602084013e611c4c565b606091505b505f9250508b159050611d2857601d5460165460405163f305d71960e01b8152306004820152602481018e90525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611cc6573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611ceb9190612336565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506023805460ff1916905550505050505050505050565b601554601f545f91906001600160a01b0390811690841603611d655750601354611d80565b601f546001600160a01b0390811690861603611d8057506014545b5f611dac6012546064611d939190612258565b610fcc84610fbf6011548a61173090919063ffffffff16565b90505f611dca601154610fcc6010548561173090919063ffffffff16565b90505f611dd783836116ef565b305f90815260086020526040902054909150611df390826115f6565b305f9081526008602052604080822092909255601a546001600160a01b031681522054611e2090836115f6565b601a546001600160a01b039081165f9081526008602090815260409182902093909355518381523092918b16915f80516020612362833981519152910160405180910390a38115611eae57600554611e7890836116ef565b6005556004546040518381526001600160a01b03918216918a16905f805160206123628339815191529060200160405180910390a35b611eb887846116ef565b98975050505050505050565b5f8183611ee45760405162461bcd60e51b815260040161084a9190611ef0565b505f61122f848661220d565b5f6020808352835180828501525f5b81811015611f1b57858101830151858201604001528201611eff565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611f51575f80fd5b919050565b5f8060408385031215611f67575f80fd5b611f7083611f3b565b946020939093013593505050565b5f8060408385031215611f8f575f80fd5b50508035926020909101359150565b5f805f60608486031215611fb0575f80fd5b611fb984611f3b565b9250611fc760208501611f3b565b9150604084013590509250925092565b5f805f805f8060c08789031215611fec575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b8015158114610ead575f80fd5b5f805f60408486031215612035575f80fd5b833567ffffffffffffffff8082111561204c575f80fd5b818601915086601f83011261205f575f80fd5b81358181111561206d575f80fd5b8760208260051b8501011115612081575f80fd5b6020928301955093505084013561209781612016565b809150509250925092565b5f602082840312156120b2575f80fd5b61092182611f3b565b5f602082840312156120cb575f80fd5b5035919050565b5f805f805f60a086880312156120e6575f80fd5b6120ef86611f3b565b94506120fd60208701611f3b565b935061210b60408701611f3b565b925061211960608701611f3b565b915061212760808701611f3b565b90509295509295909350565b5f60208284031215612143575f80fd5b813561092181612016565b5f805f60608486031215612160575f80fd5b505081359360208301359350604090920135919050565b5f8060408385031215612188575f80fd5b61219183611f3b565b915061219f60208401611f3b565b90509250929050565b5f80604083850312156121b9575f80fd5b8235611f7081612016565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f8261222757634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60018201612251576122516121f9565b5060010190565b8082028115828204841417610808576108086121f9565b5f6020828403121561227f575f80fd5b5051919050565b5f60208284031215612296575f80fd5b815161092181612016565b81810381811115610808576108086121f9565b80820180821115610808576108086121f9565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156123155784516001600160a01b0316835293830193918301916001016122f0565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215612348575f80fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212209ff334c3f5a95e2621ec6d94618668fa97dfe22d1e108532cc4d8077ba159cb364736f6c63430008150033

Deployed Bytecode Sourcemap

6472:14808:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8600:27;;;;;;;;;;-1:-1:-1;8600:27:0;;;;-1:-1:-1;;;8600:27:0;;;;;;;;;179:14:1;;172:22;154:41;;142:2;127:18;8600:27:0;;;;;;;;8723:55;;;;;;;;;;;;;;;;;;;352:25:1;;;340:2;325:18;8723:55:0;206:177:1;10234:80:0;;;;;;;;;;-1:-1:-1;10306:5:0;;;;;;;;;;;;-1:-1:-1;;;10306:5:0;;;;10234:80;;;;;;;:::i;8559:31::-;;;;;;;;;;-1:-1:-1;8559:31:0;;;;-1:-1:-1;;;8559:31:0;;;;;;10656:216;;;;;;;;;;-1:-1:-1;10656:216:0;;;;;:::i;:::-;;:::i;21119:150::-;;;;;;;;;;-1:-1:-1;21119:150:0;;;;;:::i;:::-;;:::i;9964:88::-;;;;;;;;;;-1:-1:-1;10037:12:0;;9964:88;;17115:99;;;;;;;;;;;;;:::i;:::-;;11174:370;;;;;;;;;;-1:-1:-1;11174:370:0;;;;;:::i;:::-;;:::i;19376:627::-;;;;;;;;;;-1:-1:-1;19376:627:0;;;;;:::i;:::-;;:::i;20794:142::-;;;;;;;;;;;;;:::i;10058:80::-;;;;;;;;;;-1:-1:-1;10058:80:0;;7278:2;2634:36:1;;2622:2;2607:18;10058:80:0;2492:184:1;16667:139:0;;;;;;;;;;;;;:::i;16269:208::-;;;;;;;;;;-1:-1:-1;16269:208:0;;;;;:::i;:::-;;:::i;10880:122::-;;;;;;;;;;-1:-1:-1;10880:122:0;;;;;:::i;:::-;;:::i;16814:140::-;;;;;;;;;;;;;:::i;11552:264::-;;;;;;;;;;-1:-1:-1;11552:264:0;;;;;:::i;:::-;;:::i;8686:30::-;;;;;;;;;;-1:-1:-1;8686:30:0;;;;;;;;10404:105;;;;;;;;;;-1:-1:-1;10404:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;10488:18:0;10470:7;10488:18;;;:9;:18;;;;;;;10404:105;3388:148;;;;;;;;;;;;;:::i;15603:321::-;;;;;;;;;;-1:-1:-1;15603:321:0;;;;;:::i;:::-;;:::i;7419:63::-;;;;;;;;;;;;;;;;7352:60;;;;;;;;;;;;;;;;20011:548;;;;;;;;;;-1:-1:-1;20011:548:0;;;;;:::i;:::-;;:::i;10320:78::-;;;;;;;;;;-1:-1:-1;10372:7:0;3239:6;-1:-1:-1;;;;;3239:6:0;10320:78;;;-1:-1:-1;;;;;4588:32:1;;;4570:51;;4558:2;4543:18;10320:78:0;4424:203:1;15480:115:0;;;;;;;;;;;;;:::i;16177:84::-;;;;;;;;;;-1:-1:-1;16177:84:0;;;;;:::i;:::-;;:::i;3174:79::-;;;;;;;;;;-1:-1:-1;3212:7:0;3239:6;-1:-1:-1;;;;;3239:6:0;3174:79;;10144:84;;;;;;;;;;-1:-1:-1;10218:7:0;;;;;;;;;;;;-1:-1:-1;;;10218:7:0;;;;10144:84;;8527:19;;;;;;;;;;-1:-1:-1;8527:19:0;;;;-1:-1:-1;;;;;8527:19:0;;;11010:156;;;;;;;;;;-1:-1:-1;11010:156:0;;;;;:::i;:::-;;:::i;2794:21::-;;;;;;;;;;-1:-1:-1;2794:21:0;;;;-1:-1:-1;;;;;2794:21:0;;;15932:236;;;;;;;;;;-1:-1:-1;15932:236:0;;;;;:::i;:::-;;:::i;8634:40::-;;;;;;;;;;-1:-1:-1;8634:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16485:174;;;;;;;;;;;;;:::i;20944:167::-;;;;;;;;;;-1:-1:-1;20944:167:0;;;;;:::i;:::-;;:::i;15120:201::-;;;;;;;;;;-1:-1:-1;15120:201:0;;;;;:::i;:::-;;:::i;15336:136::-;;;;;;;;;;;;;:::i;10515:133::-;;;;;;;;;;-1:-1:-1;10515:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;10617:19:0;;;10599:7;10617:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;10515:133;20567:211;;;;;;;;;;-1:-1:-1;20567:211:0;;;;;:::i;:::-;;:::i;16962:141::-;;;;;;;;;;;;;:::i;3544:244::-;;;;;;;;;;-1:-1:-1;3544:244:0;;;;;:::i;:::-;;:::i;8457:24::-;;;;;;;;;;-1:-1:-1;8457:24:0;;;;-1:-1:-1;;;;;8457:24:0;;;10656:216;10760:10;10731:4;10748:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;10748:32:0;;;;;;;;;;:41;;;10805:37;10731:4;;10748:32;;10805:37;;;;10783:6;352:25:1;;340:2;325:18;;206:177;10805:37:0;;;;;;;;-1:-1:-1;10860:4:0;10656:216;;;;;:::o;21119:150::-;21199:4;21255:6;21223:29;21243:8;21223:19;:29::i;:::-;:38;;21119:150;-1:-1:-1;;;21119:150:0:o;17115:99::-;3301:6;;-1:-1:-1;;;;;3301:6:0;2607:10;3301:22;3293:67;;;;-1:-1:-1;;;3293:67:0;;;;;;;:::i;:::-;;;;;;;;;17163:11:::1;:18:::0;;-1:-1:-1;;;;17192:14:0;-1:-1:-1;;;17192:14:0;;;17115:99::o;11174:370::-;-1:-1:-1;;;;;11294:19:0;;11274:4;11294:19;;;:11;:19;;;;;;;;11314:10;11294:31;;;;;;;;-1:-1:-1;;11294:52:0;11291:186;;11396:69;;;;;;;;;;;-1:-1:-1;;;11396:69:0;;;;;;;;-1:-1:-1;;;;;11396:19:0;;-1:-1:-1;11396:19:0;;;:11;:19;;;;;11416:10;11396:31;;;;;;;;;;:69;;11432:6;;11396:35;:69::i;:::-;-1:-1:-1;;;;;11362:19:0;;;;;;:11;:19;;;;;;;;11382:10;11362:31;;;;;;;:103;11291:186;11496:40;11510:6;11518:9;11529:6;11496:13;:40::i;:::-;11489:47;;11174:370;;;;;;:::o;19376:627::-;3301:6;;-1:-1:-1;;;;;3301:6:0;2607:10;3301:22;3293:67;;;;-1:-1:-1;;;3293:67:0;;;;;;;:::i;:::-;19565:12:::1;:28:::0;;;19604:12:::1;:28:::0;;;19643:12:::1;:28:::0;;;19682:10:::1;:24:::0;;;19717:10:::1;:24:::0;;;19763:85:::1;19730:11:::0;19763:68:::1;19695:11:::0;19763:68;19658:13;19763:68;19580:13;19619;19763:17:::1;:32::i;:::-;:36:::0;::::1;:51::i;:85::-;19752:8;:96:::0;19859:14:::1;:32:::0;;;19921:18:::1;19938:1;19876:15:::0;19921:18:::1;:::i;:::-;19910:8;;:29;19902:71;;;::::0;-1:-1:-1;;;19902:71:0;;6921:2:1;19902:71:0::1;::::0;::::1;6903:21:1::0;6960:2;6940:18;;;6933:30;6999:31;6979:18;;;6972:59;7048:18;;19902:71:0::1;6719:353:1::0;19902:71:0::1;19985:10;:8;:10::i;:::-;19376:627:::0;;;;;;:::o;20794:142::-;20922:4;;-1:-1:-1;;;;;20922:4:0;20847:7;10488:18;;;:9;:18;;;;;;20874:54;;20901:4;;-1:-1:-1;;;;;20901:4:0;10470:7;10488:18;;;:9;:18;;;;;;20874:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;20867:61;;20794:142;:::o;16667:139::-;3301:6;;-1:-1:-1;;;;;3301:6:0;2607:10;3301:22;3293:67;;;;-1:-1:-1;;;3293:67:0;;;;;;;:::i;:::-;16721:3:::1;16712:6;:12:::0;16745:3:::1;16735:7;:13:::0;-1:-1:-1;16759:14:0::1;:18:::0;16788:10:::1;:8;:10::i;:::-;16667:139::o:0;16269:208::-;3301:6;;-1:-1:-1;;;;;3301:6:0;2607:10;3301:22;3293:67;;;;-1:-1:-1;;;3293:67:0;;;;;;;:::i;:::-;16375:9:::1;16370:100;16386:20:::0;;::::1;16370:100;;;16452:6;16428:7;:21;16436:9;;16446:1;16436:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16428:21:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;16428:21:0;:30;;-1:-1:-1;;16428:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16408:3:::1;::::0;::::1;:::i;:::-;;;16370:100;;;;16269:208:::0;;;:::o;10880:122::-;10935:4;10959:35;10967:7;-1:-1:-1;;10959:7:0;:35::i;16814:140::-;3301:6;;-1:-1:-1;;;;;3301:6:0;2607:10;3301:22;3293:67;;;;-1:-1:-1;;;3293:67:0;;;;;;;:::i;:::-;16869:3:::1;16860:6;:12:::0;16893:3:::1;16883:7;:13:::0;-1:-1:-1;16907:14:0::1;:18:::0;16936:10:::1;:8;:10::i;11552:264::-:0;3301:6;;-1:-1:-1;;;;;3301:6:0;2607:10;3301:22;3293:67;;;;-1:-1:-1;;;3293:67:0;;;;;;;:::i;:::-;11671:4:::1;11656:12;;:19;;;;:::i;:::-;11637:15;;:38;;11629:47;;;::::0;::::1;;11741:4;11722:14;11707:12;;:29;;;;:::i;:::-;11706:39;;;;:::i;:::-;11688:15;:57:::0;11763:27:::1;::::0;352:25:1;;;11763:27:0::1;::::0;340:2:1;325:18;11763:27:0::1;;;;;;;11552:264:::0;:::o;3388:148::-;3301:6;;-1:-1:-1;;;;;3301:6:0;2607:10;3301:22;3293:67;;;;-1:-1:-1;;;3293:67:0;;;;;;;:::i;:::-;3495:1:::1;3479:6:::0;;3458:40:::1;::::0;-1:-1:-1;;;;;3479:6:0;;::::1;::::0;3458:40:::1;::::0;3495:1;;3458:40:::1;3526:1;3509:19:::0;;-1:-1:-1;;;;;;3509:19:0::1;::::0;;3388:148::o;15603:321::-;15682:4;15709:6;15719:1;15709:11;15706:95;;15745:44;;-1:-1:-1;;;15745:44:0;;15783:4;15745:44;;;4570:51:1;-1:-1:-1;;;;;15745:29:0;;;;;4543:18:1;;15745:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15736:53;;15706:95;15818:32;;;-1:-1:-1;;;;;7903:32:1;;7885:51;;7967:2;7952:18;;7945:34;;;15818:32:0;;7858:18:1;15818:32:0;;;;;;;15897:10;;15868:48;;-1:-1:-1;;;15868:48:0;;-1:-1:-1;;;;;15897:10:0;;;15868:48;;;7885:51:1;7952:18;;;7945:34;;;15868:28:0;;;;;;7858:18:1;;15868:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;20011:548::-;3301:6;;-1:-1:-1;;;;;3301:6:0;2607:10;3301:22;3293:67;;;;-1:-1:-1;;;3293:67:0;;;;;;;:::i;:::-;20202:10:::1;:24:::0;;-1:-1:-1;;;;;20202:24:0;;::::1;-1:-1:-1::0;;;;;;20202:24:0;;::::1;;::::0;;;20237:20:::1;:44:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;20292:18:::1;:40:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;20343:18:::1;:40:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;20394:20:::1;:44:::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;;20454:97:::1;::::0;;8509:34:1;;;8574:2;8559:18;;8552:43;;;;8611:18;;8604:43;;;;8678:2;8663:18;;8656:43;;;;20454:97:0::1;::::0;8458:3:1;8443:19;20454:97:0::1;;;;;;;20011:548:::0;;;;;:::o;15480:115::-;15534:18;;15526:59;;-1:-1:-1;;;;;15534:18:0;;;;15563:21;15526:59;;;;;15534:18;15526:59;15534:18;15526:59;15563:21;15534:18;15526:59;;;;;;;;;;;;;;;;;;;;;15480:115::o;16177:84::-;3301:6;;-1:-1:-1;;;;;3301:6:0;2607:10;3301:22;3293:67;;;;-1:-1:-1;;;3293:67:0;;;;;;;:::i;:::-;16236:7:::1;:17:::0;;;::::1;;-1:-1:-1::0;;;16236:17:0::1;-1:-1:-1::0;;;;16236:17:0;;::::1;::::0;;;::::1;::::0;;16177:84::o;11010:156::-;11090:4;11114:44;11128:10;11140:9;11151:6;11114:13;:44::i;15932:236::-;3301:6;;-1:-1:-1;;;;;3301:6:0;2607:10;3301:22;3293:67;;;;-1:-1:-1;;;3293:67:0;;;;;;;:::i;:::-;16050:7:::1;:22:::0;;;;16083:6:::1;:20:::0;;;;16114:14:::1;:30:::0;15932:236::o;16485:174::-;3301:6;;-1:-1:-1;;;;;3301:6:0;2607:10;3301:22;3293:67;;;;-1:-1:-1;;;3293:67:0;;;;;;;:::i;:::-;16536:7:::1;:15:::0;;-1:-1:-1;;;;16536:15:0::1;::::0;;16571:3:::1;16562:6;:12:::0;16595:3:::1;16585:7;:13:::0;16626:4:::1;16536:7;16609:21:::0;16641:10:::1;:8;:10::i;20944:167::-:0;21012:7;21039:64;21080:22;:20;:22::i;:::-;21062:4;;-1:-1:-1;;;;;21062:4:0;10470:7;10488:18;;;:9;:18;;;;;;21039:36;;21052:22;;21072:1;;21052:15;:19;;:22::i;:::-;21039:8;;:12;:36::i;:::-;:40;;:64::i;15120:201::-;15249:18;;15209:21;;-1:-1:-1;;;;;15249:18:0;15241:72;15309:3;15278:28;15290:16;15209:21;15278:28;:::i;:::-;:34;;;;:::i;:::-;15241:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15178:143;15120:201;:::o;15336:136::-;3301:6;;-1:-1:-1;;;;;3301:6:0;2607:10;3301:22;3293:67;;;;-1:-1:-1;;;3293:67:0;;;;;;;:::i;:::-;15412:12:::1;::::0;15394:15:::1;:30:::0;;;15435:12:::1;:27:::0;15336:136::o;20567:211::-;3301:6;;-1:-1:-1;;;;;3301:6:0;2607:10;3301:22;3293:67;;;;-1:-1:-1;;;3293:67:0;;;;;;;:::i;:::-;20658:11:::1;:22:::0;;-1:-1:-1;;20658:22:0::1;::::0;::::1;;::::0;;::::1;::::0;;;20691:13:::1;:23:::0;;;20730:40:::1;::::0;;8878:25:1;;;20658:22:0::1;20758:11:::0;;;8946:14:1;8939:22;8934:2;8919:18;;8912:50;20730:40:0::1;::::0;8851:18:1;20730:40:0::1;;;;;;;20567:211:::0;;:::o;16962:141::-;3301:6;;-1:-1:-1;;;;;3301:6:0;2607:10;3301:22;3293:67;;;;-1:-1:-1;;;3293:67:0;;;;;;;:::i;:::-;17018:2:::1;17009:6;:11:::0;;;17031:7:::1;:12:::0;-1:-1:-1;17054:14:0::1;:18:::0;17083:10:::1;:8;:10::i;3544:244::-:0;3301:6;;-1:-1:-1;;;;;3301:6:0;2607:10;3301:22;3293:67;;;;-1:-1:-1;;;3293:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3633:22:0;::::1;3625:73;;;::::0;-1:-1:-1;;;3625:73:0;;9175:2:1;3625:73:0::1;::::0;::::1;9157:21:1::0;9214:2;9194:18;;;9187:30;9253:34;9233:18;;;9226:62;-1:-1:-1;;;9304:18:1;;;9297:36;9350:19;;3625:73:0::1;8973:402:1::0;3625:73:0::1;3735:6;::::0;;3714:38:::1;::::0;-1:-1:-1;;;;;3714:38:0;;::::1;::::0;3735:6;::::1;::::0;3714:38:::1;::::0;::::1;3763:6;:17:::0;;-1:-1:-1;;;;;;3763:17:0::1;-1:-1:-1::0;;;;;3763:17:0;;;::::1;::::0;;;::::1;::::0;;3544:244::o;5684:192::-;5770:7;5806:12;5798:6;;;;5790:29;;;;-1:-1:-1;;;5790:29:0;;;;;;;;:::i;:::-;-1:-1:-1;5830:9:0;5842:5;5846:1;5842;:5;:::i;:::-;5830:17;5684:192;-1:-1:-1;;;;;5684:192:0:o;11835:1418::-;11947:6;;11927:4;;11947:6;;11944:63;;;11963:41;11978:6;11986:9;11997:6;11963:14;:41::i;:::-;11956:48;;;;11944:63;-1:-1:-1;;;;;12023:22:0;;;;;;:14;:22;;;;;;;;12022:23;:53;;;;-1:-1:-1;;;;;;12050:25:0;;;;;;:14;:25;;;;;;;;12049:26;12022:53;12019:236;;;12099:11;;-1:-1:-1;;;12099:11:0;;;;12091:43;;;;-1:-1:-1;;;12091:43:0;;9715:2:1;12091:43:0;;;9697:21:1;9754:2;9734:18;;;9727:30;-1:-1:-1;;;9773:18:1;;;9766:50;9833:18;;12091:43:0;9513:344:1;12091:43:0;12163:7;;-1:-1:-1;;;12163:7:0;;;;12160:84;;;-1:-1:-1;;;;;12198:18:0;;;;;;:7;:18;;;;;;;;12190:39;;;;-1:-1:-1;;;12190:39:0;;10064:2:1;12190:39:0;;;10046:21:1;10103:1;10083:18;;;10076:29;-1:-1:-1;;;10121:18:1;;;10114:39;10170:18;;12190:39:0;9862:332:1;12190:39:0;-1:-1:-1;;;;;12287:22:0;;;;;;:14;:22;;;;;;;;12286:23;:53;;;;-1:-1:-1;;;;;;12313:26:0;;12334:4;12313:26;;12286:53;:84;;;;-1:-1:-1;12365:4:0;;-1:-1:-1;;;;;12344:26:0;;;12365:4;;12344:26;;12286:84;:105;;;;-1:-1:-1;12387:4:0;;-1:-1:-1;;;;;12374:17:0;;;12387:4;;12374:17;;12286:105;:140;;;;-1:-1:-1;12408:18:0;;-1:-1:-1;;;;;12395:31:0;;;12408:18;;12395:31;;12286:140;:177;;;;-1:-1:-1;12443:20:0;;-1:-1:-1;;;;;12430:33:0;;;12443:20;;12430:33;;12286:177;:208;;;;-1:-1:-1;;;;;;12468:26:0;;;;;;:15;:26;;;;;;;;12467:27;12286:208;12282:400;;;-1:-1:-1;;;;;10488:18:0;;12510;10488;;;:9;:18;;;;;;12599:15;;12575:19;12588:6;10488:18;12575:19;:::i;:::-;12574:40;;12566:114;;;;-1:-1:-1;;;12566:114:0;;10531:2:1;12566:114:0;;;10513:21:1;10570:2;10550:18;;;10543:30;10609:34;10589:18;;;10582:62;10680:32;10660:18;;;10653:60;10730:19;;12566:114:0;10329:426:1;12566:114:0;12495:187;12282:400;12747:28;12760:6;12768;12747:12;:28::i;:::-;12792:16;:14;:16::i;:::-;12789:35;;;12811:10;:8;:10::i;:::-;12904:53;;;;;;;;;;;-1:-1:-1;;;12904:53:0;;;;;;;;-1:-1:-1;;;;;12904:17:0;;-1:-1:-1;12904:17:0;;;:9;:17;;;;;;;;:53;;12926:6;;12904:21;:53::i;:::-;-1:-1:-1;;;;;12884:17:0;;;;;;:9;:17;;;;;;;;:73;;;;12996:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;13019:22:0;;;;;;:11;:22;;;;;;;;12996:45;12995:93;;13054:34;13062:6;13070;13078:9;13054:7;:34::i;:::-;12995:93;;;13045:6;12995:93;-1:-1:-1;;;;;13122:20:0;;;;;;:9;:20;;;;;;12970:118;;-1:-1:-1;13122:40:0;;12970:118;13122:24;:40::i;:::-;-1:-1:-1;;;;;13099:20:0;;;;;;;:9;:20;;;;;;;:63;;;;13180:43;;;;;;-1:-1:-1;;;;;;;;;;;13180:43:0;;;13208:14;352:25:1;;340:2;325:18;;206:177;13180:43:0;;;;;;;;-1:-1:-1;13241:4:0;;11835:1418;-1:-1:-1;;;;11835:1418:0:o;5355:181::-;5413:7;;5445:5;5449:1;5445;:5;:::i;:::-;5433:17;;5474:1;5469;:6;;5461:46;;;;-1:-1:-1;;;5461:46:0;;10962:2:1;5461:46:0;;;10944:21:1;11001:2;10981:18;;;10974:30;11040:29;11020:18;;;11013:57;11087:18;;5461:46:0;10760:351:1;19131:232:0;19184:171;19199:29;19224:3;19199:20;19212:6;;19199:8;;:12;;:20;;;;:::i;:29::-;19250:30;19276:3;19250:21;19263:7;;19250:8;;:12;;:21;;;;:::i;:30::-;19302:37;19335:3;19302:28;19315:14;;19302:8;;:12;;:28;;;;:::i;:37::-;19184:171;;;11336:4:1;11324:17;;;11306:36;;11378:17;;;11373:2;11358:18;;11351:45;11432:17;;11412:18;;;11405:45;19184:171:0;;;;;;11294:2:1;19184:171:0;;;19131:232::o;5542:136::-;5600:7;5627:43;5631:1;5634;5627:43;;;;;;;;;;;;;;;;;:3;:43::i;5882:250::-;5940:7;5964:1;5969;5964:6;5960:47;;-1:-1:-1;5994:1:0;5987:8;;5960:47;6019:9;6031:5;6035:1;6031;:5;:::i;:::-;6019:17;-1:-1:-1;6064:1:0;6055:5;6059:1;6019:17;6055:5;:::i;:::-;:10;6047:56;;;;-1:-1:-1;;;6047:56:0;;11663:2:1;6047:56:0;;;11645:21:1;11702:2;11682:18;;;11675:30;11741:34;11721:18;;;11714:62;-1:-1:-1;;;11792:18:1;;;11785:31;11833:19;;6047:56:0;11461:397:1;6138:132:0;6196:7;6223:39;6227:1;6230;6223:39;;;;;;;;;;;;;;;;;:3;:39::i;13265:330::-;13395:53;;;;;;;;;;;-1:-1:-1;;;13395:53:0;;;;;;;;-1:-1:-1;;;;;13395:17:0;;13358:4;13395:17;;;:9;:17;;;;;;;:53;;13417:6;;13395:21;:53::i;:::-;-1:-1:-1;;;;;13375:17:0;;;;;;;:9;:17;;;;;;:73;;;;13482:20;;;;;;;:32;;13507:6;13482:24;:32::i;:::-;-1:-1:-1;;;;;13459:20:0;;;;;;;:9;:20;;;;;;;:55;;;;13530:35;;;;;;-1:-1:-1;;;;;;;;;;;13530:35:0;;;13558:6;352:25:1;;340:2;325:18;;206:177;13530:35:0;;;;;;;;-1:-1:-1;13583:4:0;13265:330;;;;;:::o;13603:166::-;13700:12;;13690:6;:22;;:49;;;-1:-1:-1;;;;;;13716:23:0;;;;;;:15;:23;;;;;;;;13690:49;13682:79;;;;-1:-1:-1;;;13682:79:0;;12065:2:1;13682:79:0;;;12047:21:1;12104:2;12084:18;;;12077:30;-1:-1:-1;;;12123:18:1;;;12116:47;12180:18;;13682:79:0;11863:341:1;13682:79:0;13603:166;;:::o;14915:197::-;15002:4;;14964;;-1:-1:-1;;;;;15002:4:0;14988:10;:18;;;;:38;;-1:-1:-1;15020:6:0;;;;15019:7;14988:38;:62;;;;-1:-1:-1;15039:11:0;;;;14988:62;:116;;;;-1:-1:-1;;15091:13:0;;15081:4;15063:24;;;;:9;:24;;;;;;:41;;;14915:197::o;17230:1886::-;8826:6;:13;;-1:-1:-1;;8826:13:0;8835:4;8826:13;;;17325:15:::1;::::0;17342:26:::1;::::0;8826:6;;17309:60:::1;::::0;:15:::1;:60::i;:::-;:79;;17376:12;;17309:79;;;17372:1;17309:79;17279:109;;17399:23;17425:59;17482:1;17425:52;17468:8;;17425:38;17443:19;17425:13;;:17;;:38;;;;:::i;:59::-;17399:85;;17495:20;17518:34;17536:15;17518:13;;:17;;:34;;;;:::i;:::-;17589:16;::::0;;17603:1:::1;17589:16:::0;;;;;::::1;::::0;;17495:57;;-1:-1:-1;17565:21:0::1;::::0;17589:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;17589:16:0::1;17565:40;;17634:4;17616;17621:1;17616:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17616:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;17660:4:::1;::::0;17650:7;;17660:4;::::1;::::0;17650;;17660;;17650:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;17650:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;17735:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;17735:188:0;;17701:21:::1;::::0;17735:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;17807:12;;17677:21:::1;::::0;17850:4;;17877::::1;::::0;17897:15:::1;::::0;17735:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;17936:17;17956:40;17982:13;17956:21;:25;;:40;;;;:::i;:::-;17936:60:::0;-1:-1:-1;18009:19:0::1;18031:40;18044:26;:19:::0;18068:1:::1;18044:23;:26::i;:::-;18031:8;::::0;;:12:::1;:40::i;:::-;18009:62:::0;-1:-1:-1;18092:26:0::1;18121:58;18177:1;18121:51;18009:62:::0;18121:51;:9;18135:19;18121:13:::1;:34::i;:58::-;18092:87;;18190:26;18219:44;18251:11;18219:27;18233:12;;18219:9;:13;;:27;;;;:::i;:44::-;18190:73;;18274:26;18303:44;18335:11;18303:27;18317:12;;18303:9;:13;;:27;;;;:::i;:44::-;18274:73;;18358:24;18385:42;18415:11;18385:25;18399:10;;18385:9;:13;;:25;;;;:::i;:42::-;18469:20;::::0;18461:65:::1;::::0;18358:69;;-1:-1:-1;18441:15:0::1;::::0;-1:-1:-1;;;;;18469:20:0;;::::1;::::0;18503:18;;18441:15;18461:65;18441:15;18461:65;18503:18;18469:20;18461:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;18561:18:0::1;::::0;18553:61:::1;::::0;18440:86;;-1:-1:-1;;;;;;18561:18:0::1;::::0;18593:16;;18553:61:::1;::::0;;;18593:16;18561:18;18553:61:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;18649:20:0::1;::::0;18641:65:::1;::::0;18537:77;;-1:-1:-1;;;;;;18649:20:0::1;::::0;18683:18;;18641:65:::1;::::0;;;18683:18;18649:20;18641:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;18740:5:0::1;::::0;-1:-1:-1;;18761:19:0;;;-1:-1:-1;18758:351:0::1;;18796:6;::::0;18970:10:::1;::::0;18796:233:::1;::::0;-1:-1:-1;;;18796:233:0;;18872:4:::1;18796:233;::::0;::::1;13877:34:1::0;13927:18;;;13920:34;;;18796:6:0::1;13970:18:1::0;;;13963:34;;;14013:18;;;14006:34;-1:-1:-1;;;;;18970:10:0;;::::1;14056:19:1::0;;;14049:44;18999:15:0::1;14109:19:1::0;;;14102:35;18796:6:0;::::1;::::0;:22:::1;::::0;18826:18;;13811:19:1;;18796:233:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;19049:48:0::1;::::0;;14633:25:1;;;14689:2;14674:18;;14667:34;;;19049:48:0::1;::::0;-1:-1:-1;14606:18:1;19049:48:0::1;;;;;;;18758:351;-1:-1:-1::0;;8844:6:0;:14;;-1:-1:-1;;8844:14:0;;;-1:-1:-1;;;;;;;;;;17230:1886:0:o;13899:1008::-;14034:14;;14077:4;;13985:7;;14034:14;-1:-1:-1;;;;;14077:4:0;;;14064:17;;;;14061:136;;-1:-1:-1;14109:7:0;;14061:136;;;14147:4;;-1:-1:-1;;;;;14147:4:0;;;14137:14;;;;14134:63;;-1:-1:-1;14179:6:0;;14134:63;14209:17;14229:60;14268:14;;14285:3;14268:20;;;;:::i;:::-;14229:34;14254:8;14229:20;14240:8;;14229:6;:10;;:20;;;;:::i;:60::-;14209:80;;14300:21;14324:39;14354:8;;14324:25;14338:10;;14324:9;:13;;:25;;;;:::i;:39::-;14300:63;-1:-1:-1;14374:22:0;14399:28;:9;14300:63;14399:13;:28::i;:::-;14485:4;14467:24;;;;:9;:24;;;;;;14374:53;;-1:-1:-1;14467:44:0;;14374:53;14467:28;:44::i;:::-;14458:4;14440:24;;;;:9;:24;;;;;;:71;;;;14564:18;;-1:-1:-1;;;;;14564:18:0;14554:29;;;;:48;;14588:13;14554:33;:48::i;:::-;14532:18;;-1:-1:-1;;;;;14532:18:0;;;14522:29;;;;:9;:29;;;;;;;;;:80;;;;14618:47;352:25:1;;;14643:4:0;;14618:47;;;;-1:-1:-1;;;;;;;;;;;14618:47:0;325:18:1;14618:47:0;;;;;;;14699:17;;14696:163;;14747:12;;:31;;14764:13;14747:16;:31::i;:::-;14732:12;:46;14815:4;;14798:37;;352:25:1;;;-1:-1:-1;;;;;14815:4:0;;;;14798:37;;;-1:-1:-1;;;;;;;;;;;14798:37:0;340:2:1;325:18;14798:37:0;;;;;;;14696:163;14878:21;:6;14889:9;14878:10;:21::i;:::-;14871:28;13899:1008;-1:-1:-1;;;;;;;;13899:1008:0:o;6276:189::-;6362:7;6397:12;6390:5;6382:28;;;;-1:-1:-1;;;6382:28:0;;;;;;;;:::i;:::-;-1:-1:-1;6421:9:0;6433:5;6437:1;6433;:5;:::i;388:548:1:-;500:4;529:2;558;547:9;540:21;590:6;584:13;633:6;628:2;617:9;613:18;606:34;658:1;668:140;682:6;679:1;676:13;668:140;;;777:14;;;773:23;;767:30;743:17;;;762:2;739:26;732:66;697:10;;668:140;;;672:3;857:1;852:2;843:6;832:9;828:22;824:31;817:42;927:2;920;916:7;911:2;903:6;899:15;895:29;884:9;880:45;876:54;868:62;;;;388:548;;;;:::o;941:173::-;1009:20;;-1:-1:-1;;;;;1058:31:1;;1048:42;;1038:70;;1104:1;1101;1094:12;1038:70;941:173;;;:::o;1119:254::-;1187:6;1195;1248:2;1236:9;1227:7;1223:23;1219:32;1216:52;;;1264:1;1261;1254:12;1216:52;1287:29;1306:9;1287:29;:::i;:::-;1277:39;1363:2;1348:18;;;;1335:32;;-1:-1:-1;;;1119:254:1:o;1378:248::-;1446:6;1454;1507:2;1495:9;1486:7;1482:23;1478:32;1475:52;;;1523:1;1520;1513:12;1475:52;-1:-1:-1;;1546:23:1;;;1616:2;1601:18;;;1588:32;;-1:-1:-1;1378:248:1:o;1631:328::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1816:29;1835:9;1816:29;:::i;:::-;1806:39;;1864:38;1898:2;1887:9;1883:18;1864:38;:::i;:::-;1854:48;;1949:2;1938:9;1934:18;1921:32;1911:42;;1631:328;;;;;:::o;1964:523::-;2068:6;2076;2084;2092;2100;2108;2161:3;2149:9;2140:7;2136:23;2132:33;2129:53;;;2178:1;2175;2168:12;2129:53;-1:-1:-1;;2201:23:1;;;2271:2;2256:18;;2243:32;;-1:-1:-1;2322:2:1;2307:18;;2294:32;;2373:2;2358:18;;2345:32;;-1:-1:-1;2424:3:1;2409:19;;2396:33;;-1:-1:-1;2476:3:1;2461:19;2448:33;;-1:-1:-1;1964:523:1;-1:-1:-1;1964:523:1:o;2681:118::-;2767:5;2760:13;2753:21;2746:5;2743:32;2733:60;;2789:1;2786;2779:12;2804:750;2896:6;2904;2912;2965:2;2953:9;2944:7;2940:23;2936:32;2933:52;;;2981:1;2978;2971:12;2933:52;3021:9;3008:23;3050:18;3091:2;3083:6;3080:14;3077:34;;;3107:1;3104;3097:12;3077:34;3145:6;3134:9;3130:22;3120:32;;3190:7;3183:4;3179:2;3175:13;3171:27;3161:55;;3212:1;3209;3202:12;3161:55;3252:2;3239:16;3278:2;3270:6;3267:14;3264:34;;;3294:1;3291;3284:12;3264:34;3349:7;3342:4;3332:6;3329:1;3325:14;3321:2;3317:23;3313:34;3310:47;3307:67;;;3370:1;3367;3360:12;3307:67;3401:4;3393:13;;;;-1:-1:-1;3425:6:1;-1:-1:-1;;3466:20:1;;3453:34;3496:28;3453:34;3496:28;:::i;:::-;3543:5;3533:15;;;2804:750;;;;;:::o;3559:186::-;3618:6;3671:2;3659:9;3650:7;3646:23;3642:32;3639:52;;;3687:1;3684;3677:12;3639:52;3710:29;3729:9;3710:29;:::i;3750:180::-;3809:6;3862:2;3850:9;3841:7;3837:23;3833:32;3830:52;;;3878:1;3875;3868:12;3830:52;-1:-1:-1;3901:23:1;;3750:180;-1:-1:-1;3750:180:1:o;3935:484::-;4030:6;4038;4046;4054;4062;4115:3;4103:9;4094:7;4090:23;4086:33;4083:53;;;4132:1;4129;4122:12;4083:53;4155:29;4174:9;4155:29;:::i;:::-;4145:39;;4203:38;4237:2;4226:9;4222:18;4203:38;:::i;:::-;4193:48;;4260:38;4294:2;4283:9;4279:18;4260:38;:::i;:::-;4250:48;;4317:38;4351:2;4340:9;4336:18;4317:38;:::i;:::-;4307:48;;4374:39;4408:3;4397:9;4393:19;4374:39;:::i;:::-;4364:49;;3935:484;;;;;;;;:::o;4632:241::-;4688:6;4741:2;4729:9;4720:7;4716:23;4712:32;4709:52;;;4757:1;4754;4747:12;4709:52;4796:9;4783:23;4815:28;4837:5;4815:28;:::i;4878:316::-;4955:6;4963;4971;5024:2;5012:9;5003:7;4999:23;4995:32;4992:52;;;5040:1;5037;5030:12;4992:52;-1:-1:-1;;5063:23:1;;;5133:2;5118:18;;5105:32;;-1:-1:-1;5184:2:1;5169:18;;;5156:32;;4878:316;-1:-1:-1;4878:316:1:o;5199:260::-;5267:6;5275;5328:2;5316:9;5307:7;5303:23;5299:32;5296:52;;;5344:1;5341;5334:12;5296:52;5367:29;5386:9;5367:29;:::i;:::-;5357:39;;5415:38;5449:2;5438:9;5434:18;5415:38;:::i;:::-;5405:48;;5199:260;;;;;:::o;5464:309::-;5529:6;5537;5590:2;5578:9;5569:7;5565:23;5561:32;5558:52;;;5606:1;5603;5596:12;5558:52;5645:9;5632:23;5664:28;5686:5;5664:28;:::i;6004:356::-;6206:2;6188:21;;;6225:18;;;6218:30;6284:34;6279:2;6264:18;;6257:62;6351:2;6336:18;;6004:356::o;6365:127::-;6426:10;6421:3;6417:20;6414:1;6407:31;6457:4;6454:1;6447:15;6481:4;6478:1;6471:15;6497:217;6537:1;6563;6553:132;;6607:10;6602:3;6598:20;6595:1;6588:31;6642:4;6639:1;6632:15;6670:4;6667:1;6660:15;6553:132;-1:-1:-1;6699:9:1;;6497:217::o;7077:127::-;7138:10;7133:3;7129:20;7126:1;7119:31;7169:4;7166:1;7159:15;7193:4;7190:1;7183:15;7209:135;7248:3;7269:17;;;7266:43;;7289:18;;:::i;:::-;-1:-1:-1;7336:1:1;7325:13;;7209:135::o;7349:168::-;7422:9;;;7453;;7470:15;;;7464:22;;7450:37;7440:71;;7491:18;;:::i;7522:184::-;7592:6;7645:2;7633:9;7624:7;7620:23;7616:32;7613:52;;;7661:1;7658;7651:12;7613:52;-1:-1:-1;7684:16:1;;7522:184;-1:-1:-1;7522:184:1:o;7990:245::-;8057:6;8110:2;8098:9;8089:7;8085:23;8081:32;8078:52;;;8126:1;8123;8116:12;8078:52;8158:9;8152:16;8177:28;8199:5;8177:28;:::i;9380:128::-;9447:9;;;9468:11;;;9465:37;;;9482:18;;:::i;10199:125::-;10264:9;;;10285:10;;;10282:36;;;10298:18;;:::i;12341:980::-;12603:4;12651:3;12640:9;12636:19;12682:6;12671:9;12664:25;12708:2;12746:6;12741:2;12730:9;12726:18;12719:34;12789:3;12784:2;12773:9;12769:18;12762:31;12813:6;12848;12842:13;12879:6;12871;12864:22;12917:3;12906:9;12902:19;12895:26;;12956:2;12948:6;12944:15;12930:29;;12977:1;12987:195;13001:6;12998:1;12995:13;12987:195;;;13066:13;;-1:-1:-1;;;;;13062:39:1;13050:52;;13157:15;;;;13122:12;;;;13098:1;13016:9;12987:195;;;-1:-1:-1;;;;;;;13238:32:1;;;;13233:2;13218:18;;13211:60;-1:-1:-1;;;13302:3:1;13287:19;13280:35;13199:3;12341:980;-1:-1:-1;;;12341:980:1:o;14148:306::-;14236:6;14244;14252;14305:2;14293:9;14284:7;14280:23;14276:32;14273:52;;;14321:1;14318;14311:12;14273:52;14350:9;14344:16;14334:26;;14400:2;14389:9;14385:18;14379:25;14369:35;;14444:2;14433:9;14429:18;14423:25;14413:35;;14148:306;;;;;:::o

Swarm Source

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