ETH Price: $3,603.48 (+4.56%)
Gas: 9.85 Gwei
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer215232812024-12-31 15:15:353 days ago1735658135IN
MOPE: MOPE Token
0 ETH0.0018469321.67889723
Approve214697722024-12-24 3:52:5910 days ago1735012379IN
MOPE: MOPE Token
0 ETH0.000138835.72560813
Approve214640902024-12-23 8:48:1111 days ago1734943691IN
MOPE: MOPE Token
0 ETH0.000124765.14545016
Approve214285292024-12-18 9:29:3516 days ago1734514175IN
MOPE: MOPE Token
0 ETH0.0002543910.49123643
Approve214118192024-12-16 1:32:5918 days ago1734312779IN
MOPE: MOPE Token
0 ETH0.0003171713.080591
Approve213867302024-12-12 13:29:5922 days ago1734010199IN
MOPE: MOPE Token
0 ETH0.0005737723.66263795
Approve213405062024-12-06 2:34:5928 days ago1733452499IN
MOPE: MOPE Token
0 ETH0.0004456918.38057184
Approve213209262024-12-03 8:56:5931 days ago1733216219IN
MOPE: MOPE Token
0 ETH0.0004078916.82162018
Approve211986872024-11-16 7:12:5948 days ago1731741179IN
MOPE: MOPE Token
0 ETH0.0007403115.93027282
Approve211461692024-11-08 23:20:1156 days ago1731108011IN
MOPE: MOPE Token
0 ETH0.0004770110.31519068
Approve211425582024-11-08 11:14:5956 days ago1731064499IN
MOPE: MOPE Token
0 ETH0.0003863414.71915316
Approve211192192024-11-05 5:00:2359 days ago1730782823IN
MOPE: MOPE Token
0 ETH0.000106672.29553856
Approve211128232024-11-04 7:34:3560 days ago1730705675IN
MOPE: MOPE Token
0 ETH0.000301886.49610037
Approve211123652024-11-04 6:02:5960 days ago1730700179IN
MOPE: MOPE Token
0 ETH0.000178453.83511463
Approve211038252024-11-03 1:26:4761 days ago1730597207IN
MOPE: MOPE Token
0 ETH0.000085323.51882694
Approve210134262024-10-21 10:42:1174 days ago1729507331IN
MOPE: MOPE Token
0 ETH0.000351887.56211194
Approve209983512024-10-19 8:14:3576 days ago1729325675IN
MOPE: MOPE Token
0 ETH0.0002464710.1647043
Approve209946142024-10-18 19:43:2377 days ago1729280603IN
MOPE: MOPE Token
0 ETH0.0007536416.21721932
Approve209929612024-10-18 14:10:5977 days ago1729260659IN
MOPE: MOPE Token
0 ETH0.0019598342.11795578
Approve209915612024-10-18 9:30:1177 days ago1729243811IN
MOPE: MOPE Token
0 ETH0.0014863131.94998659
Approve209915612024-10-18 9:30:1177 days ago1729243811IN
MOPE: MOPE Token
0 ETH0.0014863131.94998659
Approve209895362024-10-18 2:42:4777 days ago1729219367IN
MOPE: MOPE Token
0 ETH0.0008550818.4
Approve209741522024-10-15 23:09:4780 days ago1729033787IN
MOPE: MOPE Token
0 ETH0.0004768310.24745641
Approve209739232024-10-15 22:23:4780 days ago1729031027IN
MOPE: MOPE Token
0 ETH0.000435299.3571308
Approve209737002024-10-15 21:39:1180 days ago1729028351IN
MOPE: MOPE Token
0 ETH0.0006456713.89395512
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
203356732024-07-18 20:03:47169 days ago1721333027
MOPE: MOPE Token
0.36459853 ETH
203305882024-07-18 3:00:23169 days ago1721271623
MOPE: MOPE Token
0.00335366 ETH
203305882024-07-18 3:00:23169 days ago1721271623
MOPE: MOPE Token
0.01006099 ETH
203305882024-07-18 3:00:23169 days ago1721271623
MOPE: MOPE Token
0.01676832 ETH
203305772024-07-18 2:58:11169 days ago1721271491
MOPE: MOPE Token
0.03477602 ETH
203305772024-07-18 2:58:11169 days ago1721271491
MOPE: MOPE Token
0.10432806 ETH
203305772024-07-18 2:58:11169 days ago1721271491
MOPE: MOPE Token
0.17388011 ETH
203305742024-07-18 2:57:35169 days ago1721271455
MOPE: MOPE Token
0.03802636 ETH
203305742024-07-18 2:57:35169 days ago1721271455
MOPE: MOPE Token
0.1140791 ETH
203305742024-07-18 2:57:35169 days ago1721271455
MOPE: MOPE Token
0.19013184 ETH
203305742024-07-18 2:57:35169 days ago1721271455
MOPE: MOPE Token
0.04175502 ETH
203305742024-07-18 2:57:35169 days ago1721271455
MOPE: MOPE Token
0.12526506 ETH
203305742024-07-18 2:57:35169 days ago1721271455
MOPE: MOPE Token
0.20877511 ETH
203305582024-07-18 2:54:23169 days ago1721271263
MOPE: MOPE Token
0.02316011 ETH
203305582024-07-18 2:54:23169 days ago1721271263
MOPE: MOPE Token
0.06948034 ETH
203305582024-07-18 2:54:23169 days ago1721271263
MOPE: MOPE Token
0.11580057 ETH
203305532024-07-18 2:53:23169 days ago1721271203
MOPE: MOPE Token
0.01644994 ETH
203305532024-07-18 2:53:23169 days ago1721271203
MOPE: MOPE Token
0.04934984 ETH
203305532024-07-18 2:53:23169 days ago1721271203
MOPE: MOPE Token
0.08224973 ETH
203305532024-07-18 2:53:23169 days ago1721271203
MOPE: MOPE Token
0.01796443 ETH
203305532024-07-18 2:53:23169 days ago1721271203
MOPE: MOPE Token
0.0538933 ETH
203305532024-07-18 2:53:23169 days ago1721271203
MOPE: MOPE Token
0.08982217 ETH
203305532024-07-18 2:53:23169 days ago1721271203
MOPE: MOPE Token
0.01969831 ETH
203305532024-07-18 2:53:23169 days ago1721271203
MOPE: MOPE Token
0.05909494 ETH
203305532024-07-18 2:53:23169 days ago1721271203
MOPE: MOPE Token
0.09849157 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MoggedPepe

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-07-18
*/

/* 

https://t.me/MoggedPepeETH

https://twitter.com/moggedpepeeth

https://moggedpepe.xyz/

https://t.me/MopeMemes

The Frog That Stays Mogged

*/




// SPDX-License-Identifier: UNLICENSED


pragma solidity 0.8.26;

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

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

    string constant _name = "Mogged Pepe";
    string constant _symbol = "MOPE";
    uint8 constant _decimals = 9; 


    event AutoLiquify(uint256 amountETH, uint256 amountTokens);
    event EditTax(uint8 Buy, uint8 Sell, uint8 Transfer);
    event setFeeExempt(address Wallet, bool Exempt);
    event setTXExempt(address Wallet, bool Exempt);
    event clearERC(uint256 amount);
    event removeToken(address TokenAddressCleared, uint256 Amount);
    event set_Wallets(address marketingFeeReceiver, address utilityFeeReceiver,address burnfeeReceiver,address projectFeeReceiver);
    event set_MaxHolding(uint256 maxWallet);
    event set_TXLimit(uint256 maxTX);
    event set_ContractSells(uint256 Amount, bool Enabled);
  
    uint256 _totalSupply =  420690000000 * 10**_decimals; 

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

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;  
    mapping (address => bool) isfeeexempt;
    mapping (address => bool) istxLimitExempt;
    mapping (address => bool) isTimelockExempt;

    uint256 private liquidityFee    = 1;
    uint256 private marketingFee    = 3;
    uint256 private projectFee      = 0;
    uint256 private utilityFee      = 1; 
    uint256 private burnfee         = 0;
    uint256 public totalFee         = utilityFee + marketingFee + liquidityFee + projectFee + burnfee;
    uint256 private feeDenominator  = 100;

    uint256 sellmultiplier = 100;
    uint256 buymultiplier = 100;
    uint256 wallettowalletmultiplier = 100; 

    address private uniLPReceiver;
    address private marketingFeeReceiver;
    address private projectFeeReceiver;
    address private utilityFeeReceiver;
    address private burnfeeReceiver;

    uint256 setproportion = 30;
    uint256 setproportionDenominator = 100;
    
    IDEXRouter public router;
    InterfaceLP private pairContract;
    address public pair;
    
    bool public TradingOpen = false; 

    bool public buyCooldownEnabled = true;
    uint8 public cooldownTimerInterval = 5;
    mapping (address => uint) private cooldownTimer;
   
    bool public contractSellEnabled = true;
    uint256 public contractsellthreshold = _totalSupply * 20 / 1000; 
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }
    
    constructor () {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        pairContract = InterfaceLP(pair);
       
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        isfeeexempt[msg.sender] = true;            
        istxLimitExempt[msg.sender] = true;
        istxLimitExempt[pair] = true;
        istxLimitExempt[marketingFeeReceiver] = true;
        istxLimitExempt[address(this)] = true;
        isTimelockExempt[msg.sender] = true;
        isTimelockExempt[DEAD] = true;
        isTimelockExempt[address(this)] = true;
        
        uniLPReceiver = msg.sender;
        marketingFeeReceiver = 0x4f9CF24353c3EE82d22E93df24Da9A04dBDBf943;
        projectFeeReceiver = msg.sender;
        utilityFeeReceiver = msg.sender;
        burnfeeReceiver = DEAD; 

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

    }

    receive() external payable { }

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

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

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

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

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

        return _transferFrom(sender, recipient, amount);
    }

        function setMaxWallet(uint256 maxWallPercent) external onlyOwner {
         require(maxWallPercent >= 1); 
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 1000;
        emit set_MaxHolding(_maxWalletToken);
                
    }

     
    function disableCooldown() public onlyOwner {
        buyCooldownEnabled = false;    
    }

    function cooldownSettings(bool _status, uint8 _interval) public onlyOwner {
        buyCooldownEnabled = _status;
        cooldownTimerInterval = _interval;
    }


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

    function zeroTax () external onlyOwner {
            buymultiplier = 0;
            sellmultiplier = 0;
            wallettowalletmultiplier = 0;
            contractsellthreshold = _totalSupply * 1 / 100;
            
            
    }
      
    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 (!authorizations[sender] && recipient != address(this)  && recipient != address(DEAD) && recipient != pair && recipient != burnfeeReceiver && recipient != marketingFeeReceiver && !istxLimitExempt[recipient]){
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");}

        if (sender == pair && buyCooldownEnabled && !isTimelockExempt[recipient]) {
            require(cooldownTimer[recipient] < block.timestamp,"Please wait between buys");
            cooldownTimer[recipient] = block.timestamp + cooldownTimerInterval;
        }

        checkTxLimit(sender, amount);  

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

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

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

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

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

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        
        uint256 percent = wallettowalletmultiplier;
        if(recipient == pair) {
            percent = sellmultiplier;
        } else if(sender == pair) {
            percent = buymultiplier;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(percent).div(feeDenominator * 100);
        uint256 burnTokens = feeAmount.mul(burnfee).div(totalFee);
        uint256 contractTokens = feeAmount.sub(burnTokens);
        _balances[address(this)] = _balances[address(this)].add(contractTokens);
        _balances[burnfeeReceiver] = _balances[burnfeeReceiver].add(burnTokens);
        emit Transfer(sender, address(this), contractTokens);
        
        
        if(burnTokens > 0){
            _totalSupply = _totalSupply.sub(burnTokens);
            emit Transfer(sender, ZERO, burnTokens);  
        
        }

        return amount.sub(feeAmount);
    }

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

  
     function clearStuckEther() external { 
             payable(projectFeeReceiver).transfer(address(this).balance);
            
    }

   function clearForeignERCToken(address tokenAddress, uint256 tokens) external returns (bool success) {
            require(tokenAddress != address(this), "tokenAddress can not be the native token");
             if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
        emit removeToken(tokenAddress, tokens);
        return ERC20(tokenAddress).transfer(uniLPReceiver, tokens);
    }

    function setMultipliers(uint256 _percentonbuy, uint256 _percentonsell, uint256 _wallettransfer) external onlyOwner {
        sellmultiplier = _percentonsell;
        buymultiplier = _percentonbuy;
        wallettowalletmultiplier = _wallettransfer;    
          
    }
       
    function enableTrading() public onlyOwner {
        TradingOpen = true;
        buymultiplier = 500;
        sellmultiplier = 700;
        wallettowalletmultiplier = 1000;
                              
    }

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

              
    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = checkproportion(setproportion, setproportionDenominator) ? 0 : liquidityFee;
        uint256 amountToLiquify = contractsellthreshold.mul(dynamicLiquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = contractsellthreshold.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 amountETHutility = amountETH.mul(utilityFee).div(totalETHFee);
        uint256 amountETHdev = amountETH.mul(projectFee).div(totalETHFee);

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

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                uniLPReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }
    
  
    function set_fees() internal {
      
        emit EditTax( uint8(totalFee.mul(buymultiplier).div(100)),
            uint8(totalFee.mul(sellmultiplier).div(100)),
            uint8(totalFee.mul(wallettowalletmultiplier).div(100))
            );
    }
    
    function setFees(uint256 _liquidityFee, uint256 _utilityFee, uint256 _marketingFee, uint256 _projectFee, uint256 _burnfee, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        utilityFee = _utilityFee;
        marketingFee = _marketingFee;
        projectFee = _projectFee;
        burnfee = _burnfee;
        totalFee = _liquidityFee.add(_utilityFee).add(_marketingFee).add(_projectFee).add(_burnfee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator / 4, "Fees can not be more than 25%"); 
        set_fees();
    }

   
    function setFeeReceivers(address _uniLPReceiver, address _marketingFeeReceiver, address _projectFeeReceiver, address _burnfeeReceiver, address _utilityFeeReceiver) external onlyOwner {
        uniLPReceiver = _uniLPReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        projectFeeReceiver = _projectFeeReceiver;
        burnfeeReceiver = _burnfeeReceiver;
        utilityFeeReceiver = _utilityFeeReceiver;

        emit set_Wallets(marketingFeeReceiver, utilityFeeReceiver, burnfeeReceiver, projectFeeReceiver);
    }


    function setContractsells(bool _enabled, uint256 _amount) external onlyOwner {
        contractSellEnabled = _enabled;
        contractsellthreshold = _amount;
        emit set_ContractSells(contractsellthreshold, contractSellEnabled);
    }

    function checkproportion(uint256 ratio, uint256 accuracy) public view returns (bool) {
        return showthreshold(accuracy) > ratio;
    }

    function showthreshold(uint256 accuracy) public view returns (uint256) {
        return accuracy.mul(balanceOf(pair).mul(2)).div(showSupply());
    }
    
    function showSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }


}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"amount","type":"uint256"}],"name":"clearERC","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"TokenAddressCleared","type":"address"},{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"}],"name":"removeToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Exempt","type":"bool"}],"name":"setFeeExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Exempt","type":"bool"}],"name":"setTXExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"Enabled","type":"bool"}],"name":"set_ContractSells","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"set_MaxHolding","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxTX","type":"uint256"}],"name":"set_TXLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"marketingFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"utilityFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"burnfeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"projectFeeReceiver","type":"address"}],"name":"set_Wallets","type":"event"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"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":[],"name":"buyCooldownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"ratio","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"checkproportion","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearForeignERCToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractSellEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractsellthreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"},{"internalType":"uint8","name":"_interval","type":"uint8"}],"name":"cooldownSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cooldownTimerInterval","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"disableCooldown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setContractsells","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_uniLPReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_projectFeeReceiver","type":"address"},{"internalType":"address","name":"_burnfeeReceiver","type":"address"},{"internalType":"address","name":"_utilityFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_utilityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_projectFee","type":"uint256"},{"internalType":"uint256","name":"_burnfee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTimelockExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_percentonbuy","type":"uint256"},{"internalType":"uint256","name":"_percentonsell","type":"uint256"},{"internalType":"uint256","name":"_wallettransfer","type":"uint256"}],"name":"setMultipliers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"showSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"showthreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"zeroTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526100106009600a61066e565b61001f906461f313f88061067c565b600381905561003d906103e89061003790600f61046f565b906104fb565b600455600354610056906103e89061003790600f61046f565b6005556001600b556003600c555f600d556001600e555f600f55600f54600d54600b54600c54600e546100899190610693565b6100939190610693565b61009d9190610693565b6100a79190610693565b60105560646011819055601281905560138190556014818155601e601a819055601b92909255815462ffffff60a01b191661050160a81b179091556020805460ff191660011790556003546103e891610100919061067c565b61010a91906106a6565b602155348015610118575f80fd5b505f80546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa1580156101d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101f891906106c5565b600280546001600160a01b0319166001600160a01b03928316179055601c546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015610254573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061027891906106c5565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303815f875af11580156102c6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ea91906106c5565b601e80546001600160a01b039283166001600160a01b031991821681178355601d805483169091179055305f818152600760209081526040808320601c548816845282528083205f1990553380845260088352818420805460ff199081166001908117909255600985528386208054821683179055975489168552828520805489168217905560168054909916855282852080548916821790558585528285208054891682179055818552600a845282852080548916821790557f20677881080440a9b3c87e826370bb5d9c2f74efd4dede686d52d77a6a09f8bb805489168217905594845281842080549097169094179095556015805485168417905585548416734f9cf24353c3ee82d22e93df24da9a04dbdbf9431790955560178054841683179055601880548416831790556019805490931661dead179092556003548183526006855283832081905592519283529290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610720565b5f825f0361047e57505f6104f5565b5f610489838561067c565b90508261049685836106a6565b146104f25760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f6104f283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061054260201b60201c565b5f81836105625760405162461bcd60e51b81526004016104e991906106eb565b505f61056e84866106a6565b95945050505050565b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156105c6578085048111156105aa576105aa610577565b60018416156105b857908102905b60019390931c92800261058f565b935093915050565b5f826105dc575060016104f5565b816105e857505f6104f5565b81600181146105fe576002811461060857610624565b60019150506104f5565b60ff84111561061957610619610577565b50506001821b6104f5565b5060208310610133831016604e8410600b8410161715610647575081810a6104f5565b6106535f19848461058b565b805f190482111561066657610666610577565b029392505050565b5f6104f260ff8416836105ce565b80820281158282048414176104f5576104f5610577565b808201808211156104f5576104f5610577565b5f826106c057634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156106d5575f80fd5b81516001600160a01b03811681146104f2575f80fd5b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6123108061072d5f395ff3fe608060405260043610610241575f3560e01c8063722b62ad11610134578063a8aa1b31116100b3578063cf4d094b11610078578063cf4d094b14610684578063cfd8d949146106a3578063dd62ed3e146106c2578063e0dca26e14610706578063f2fde38b1461071a578063f887ea4014610739575f80fd5b8063a8aa1b31146105f5578063a9059cbb14610614578063b2bdfa7b14610633578063b53d8d2914610651578063ca38b2d914610670575f80fd5b806386f6c3c1116100f957806386f6c3c11461054a578063893d20e8146105695780638a8c523c146105995780638da5cb5b146105ad57806395d89b41146105c9575f80fd5b8063722b62ad146104cd578063751039fc146104ed57806375e1a3131461050157806378109e54146105205780637d1db4a514610535575f80fd5b806348b98ef5116101c05780635fb9340c116101855780635fb9340c14610432578063617fe0ed146104465780636ce46bc31461046657806370a0823114610485578063715018a6146104b9575f80fd5b806348b98ef5146103a857806350db71fb146103c157806355265669146103e0578063571ac8b0146103f45780635d0044ca14610413575f80fd5b80631df4ccfc116102065780631df4ccfc1461031f57806323b872dd146103345780632e6ac10614610353578063308302d314610372578063313ce56714610387575f80fd5b806306fdde031461024c57806308fd3d0514610291578063095ea7b3146102c157806318160ddd146102e057806318abb635146102fe575f80fd5b3661024857005b5f80fd5b348015610257575f80fd5b5060408051808201909152600b81526a4d6f67676564205065706560a81b60208201525b6040516102889190611ea9565b60405180910390f35b34801561029c575f80fd5b50601e546102b190600160a01b900460ff1681565b6040519015158152602001610288565b3480156102cc575f80fd5b506102b16102db366004611ef9565b610758565b3480156102eb575f80fd5b506003545b604051908152602001610288565b348015610309575f80fd5b5061031d610318366004611f21565b6107c4565b005b34801561032a575f80fd5b506102f060105481565b34801561033f575f80fd5b506102b161034e366004611f82565b6108a4565b34801561035e575f80fd5b506102b161036d366004611fbc565b610962565b34801561037d575f80fd5b506102f060215481565b348015610392575f80fd5b5060095b60405160ff9091168152602001610288565b3480156103b3575f80fd5b506020546102b19060ff1681565b3480156103cc575f80fd5b5061031d6103db366004611fe9565b610975565b3480156103eb575f80fd5b506102f06109c8565b3480156103ff575f80fd5b506102b161040e36600461201e565b610a38565b34801561041e575f80fd5b5061031d61042d366004612037565b610a44565b34801561043d575f80fd5b5061031d610ad0565b348015610451575f80fd5b50601e546102b190600160a81b900460ff1681565b348015610471575f80fd5b5061031d61048036600461204e565b610b08565b348015610490575f80fd5b506102f061049f36600461201e565b6001600160a01b03165f9081526006602052604090205490565b3480156104c4575f80fd5b5061031d610b42565b3480156104d8575f80fd5b50601e5461039690600160b01b900460ff1681565b3480156104f8575f80fd5b5061031d610bb3565b34801561050c575f80fd5b5061031d61051b366004612077565b610be9565b34801561052b575f80fd5b506102f060055481565b348015610540575f80fd5b506102f060045481565b348015610555575f80fd5b5061031d610564366004612093565b610c6b565b348015610574575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610288565b3480156105a4575f80fd5b5061031d610d38565b3480156105b8575f80fd5b505f546001600160a01b0316610581565b3480156105d4575f80fd5b506040805180820190915260048152634d4f504560e01b602082015261027b565b348015610600575f80fd5b50601e54610581906001600160a01b031681565b34801561061f575f80fd5b506102b161062e366004611ef9565b610d88565b34801561063e575f80fd5b505f54610581906001600160a01b031681565b34801561065c575f80fd5b506102b161066b366004611ef9565b610d94565b34801561067b575f80fd5b5061031d610f24565b34801561068f575f80fd5b506102f061069e366004612037565b610f5d565b3480156106ae575f80fd5b5061031d6106bd3660046120d2565b610fa2565b3480156106cd575f80fd5b506102f06106dc366004612103565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b348015610711575f80fd5b5061031d611002565b348015610725575f80fd5b5061031d61073436600461201e565b611059565b348015610744575f80fd5b50601c54610581906001600160a01b031681565b335f8181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107b29086815260200190565b60405180910390a35060015b92915050565b5f546001600160a01b031633146107f65760405162461bcd60e51b81526004016107ed90612134565b60405180910390fd5b601580546001600160a01b038781166001600160a01b031992831617909255601680548784169083168117909155601780548785169084168117909155601980548786169085168117909155601880549587169590941685179093556040805192835260208301949094529281019190915260608101919091527fd57a6cc80e12ea4e450dcae918d555702c8ad353993d8e23acc138382c6c7f649060800160405180910390a15050505050565b6001600160a01b0383165f9081526007602090815260408083203384529091528120545f191461094d576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f908152600782528381203382529091529190912054610929918490611140565b6001600160a01b0385165f9081526007602090815260408083203384529091529020555b610958848484611178565b90505b9392505050565b5f8261096d83610f5d565b119392505050565b5f546001600160a01b0316331461099e5760405162461bcd60e51b81526004016107ed90612134565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b60066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85461dead5f9081527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e22546003549192610a33929091610a2d91906115b4565b906115b4565b905090565b5f6107be825f19610758565b5f546001600160a01b03163314610a6d5760405162461bcd60e51b81526004016107ed90612134565b6001811015610a7a575f80fd5b6103e881600354610a8b919061217d565b610a959190612194565b60058190556040519081527f494fd99b13a8a3670e91a40af1b1ffec73968d010de2a178aa17556d7d353f339060200160405180910390a150565b5f546001600160a01b03163314610af95760405162461bcd60e51b81526004016107ed90612134565b601e805460ff60a81b19169055565b5f546001600160a01b03163314610b315760405162461bcd60e51b81526004016107ed90612134565b601291909155601391909155601455565b5f546001600160a01b03163314610b6b5760405162461bcd60e51b81526004016107ed90612134565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314610bdc5760405162461bcd60e51b81526004016107ed90612134565b6003546004819055600555565b5f546001600160a01b03163314610c125760405162461bcd60e51b81526004016107ed90612134565b6020805460ff1916831515908117825560218390556040805184815260ff9092161515928201929092527f392f1d6148f51babec2021798dc4b53898c421ad141fcd1babe8ac1bff909f79910160405180910390a15050565b5f546001600160a01b03163314610c945760405162461bcd60e51b81526004016107ed90612134565b600b869055600e859055600c849055600d839055600f829055610cc582610cbf858188818c8c6115f5565b906115f5565b6010556011819055610cd8600482612194565b60105410610d285760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e2032352500000060448201526064016107ed565b610d30611653565b505050505050565b5f546001600160a01b03163314610d615760405162461bcd60e51b81526004016107ed90612134565b601e805460ff60a01b1916600160a01b1790556101f46013556102bc6012556103e8601455565b5f61095b338484611178565b5f306001600160a01b03841603610dfe5760405162461bcd60e51b815260206004820152602860248201527f746f6b656e416464726573732063616e206e6f7420626520746865206e6174696044820152673b32903a37b5b2b760c11b60648201526084016107ed565b815f03610e6e576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610e47573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e6b91906121b3565b91505b604080516001600160a01b0385168152602081018490527f13baf1e647d68ca9451d9fc896ee1c75b4337b7804451971e549ca6d1e24287d910160405180910390a160155460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303815f875af1158015610f00573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061095b91906121ca565b6017546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610f5a573d5f803e3d5ffd5b50565b5f6107be610f696109c8565b601e546001600160a01b03165f90815260066020526040902054610f9c90610f95906002905b906116ee565b85906116ee565b9061176c565b5f546001600160a01b03163314610fcb5760405162461bcd60e51b81526004016107ed90612134565b601e805461ffff60a81b1916600160a81b9315159390930260ff60b01b191692909217600160b01b60ff9290921691909102179055565b5f546001600160a01b0316331461102b5760405162461bcd60e51b81526004016107ed90612134565b5f6013819055601281905560145560035460649061104a90600161217d565b6110549190612194565b602155565b5f546001600160a01b031633146110825760405162461bcd60e51b81526004016107ed90612134565b6001600160a01b0381166110e75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107ed565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f81848411156111635760405162461bcd60e51b81526004016107ed9190611ea9565b505f61116f84866121e5565b95945050505050565b6022545f9060ff1615611197576111908484846117ad565b905061095b565b6001600160a01b0384165f9081526001602052604090205460ff161580156111d757506001600160a01b0383165f9081526001602052604090205460ff16155b1561122c57601e54600160a01b900460ff1661122c5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016107ed565b6001600160a01b0384165f9081526001602052604090205460ff1615801561125d57506001600160a01b0383163014155b801561127457506001600160a01b03831661dead14155b801561128e5750601e546001600160a01b03848116911614155b80156112a857506019546001600160a01b03848116911614155b80156112c257506016546001600160a01b03848116911614155b80156112e657506001600160a01b0383165f9081526009602052604090205460ff16155b15611386576001600160a01b0383165f9081526006602052604090205460055461131084836121f8565b11156113845760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016107ed565b505b601e546001600160a01b0385811691161480156113ac5750601e54600160a81b900460ff165b80156113d057506001600160a01b0383165f908152600a602052604090205460ff16155b1561146b576001600160a01b0383165f908152601f6020526040902054421161143b5760405162461bcd60e51b815260206004820152601860248201527f506c656173652077616974206265747765656e2062757973000000000000000060448201526064016107ed565b601e5461145290600160b01b900460ff16426121f8565b6001600160a01b0384165f908152601f60205260409020555b611475848361187d565b61147d6118e9565b1561148a5761148a611936565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f908152600690915291909120546114db918490611140565b6001600160a01b0385165f90815260066020908152604080832093909355600890529081205460ff168061152657506001600160a01b0384165f9081526008602052604090205460ff165b61153a57611535858486611cfe565b61153c565b825b6001600160a01b0385165f9081526006602052604090205490915061156190826115f5565b6001600160a01b038086165f8181526006602052604090819020939093559151908716905f805160206122bb833981519152906115a19085815260200190565b60405180910390a3506001949350505050565b5f61095b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611140565b5f8061160183856121f8565b90508381101561095b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107ed565b7f8cc651ceed4360bdb07d4dfc17daa4a6fa17092a313d2464a582a73e9b9328006116906064610f9c6013546010546116ee90919063ffffffff16565b6116ac6064610f9c6012546010546116ee90919063ffffffff16565b6116c86064610f9c6014546010546116ee90919063ffffffff16565b6040805160ff9485168152928416602084015292168183015290519081900360600190a1565b5f825f036116fd57505f6107be565b5f611708838561217d565b9050826117158583612194565b1461095b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107ed565b5f61095b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e7d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f9081526006909152918220546117fd918490611140565b6001600160a01b038086165f90815260066020526040808220939093559085168152205461182b90836115f5565b6001600160a01b038085165f8181526006602052604090819020939093559151908616905f805160206122bb8339815191529061186b9086815260200190565b60405180910390a35060019392505050565b600454811115806118a557506001600160a01b0382165f9081526009602052604090205460ff165b6118e55760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016107ed565b5050565b601e545f906001600160a01b03163314801590611909575060225460ff16155b8015611917575060205460ff165b8015610a33575050602154305f90815260066020526040902054101590565b6022805460ff19166001179055601a54601b545f9161195491610962565b61196057600b54611962565b5f5b90505f6119856002610f9c601054610f9c866021546116ee90919063ffffffff16565b90505f61199d826021546115b490919063ffffffff16565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f815181106119d5576119d561220b565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611a0657611a0661220b565b6001600160a01b039283166020918202929092010152601c5460405163791ac94760e01b81524792919091169063791ac94790611a4f9086905f9087903090429060040161221f565b5f604051808303815f87803b158015611a66575f80fd5b505af1158015611a78573d5f803e3d5ffd5b505050505f611a9082476115b490919063ffffffff16565b90505f611aaa611aa188600261176c565b601054906115b4565b90505f611abe6002610f9c8481878d6116ee565b90505f611ada83610f9c600c54876116ee90919063ffffffff16565b90505f611af684610f9c600e54886116ee90919063ffffffff16565b90505f611b1285610f9c600d54896116ee90919063ffffffff16565b6016546040519192505f916001600160a01b039091169085908381818185875af1925050503d805f8114611b61576040519150601f19603f3d011682016040523d82523d5f602084013e611b66565b606091505b50506017546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114611bb3576040519150601f19603f3d011682016040523d82523d5f602084013e611bb8565b606091505b50506018546040519192506001600160a01b03169084905f81818185875af1925050503d805f8114611c05576040519150601f19603f3d011682016040523d82523d5f602084013e611c0a565b606091505b505f9250508b159050611ce657601c5460155460405163f305d71960e01b8152306004820152602481018e90525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611c84573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611ca9919061228f565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506022805460ff1916905550505050505050505050565b601454601e545f91906001600160a01b0390811690841603611d235750601254611d3e565b601e546001600160a01b0390811690861603611d3e57506013545b5f611d6a6011546064611d51919061217d565b610f9c84610f8f6010548a6116ee90919063ffffffff16565b90505f611d88601054610f9c600f54856116ee90919063ffffffff16565b90505f611d9583836115b4565b305f90815260066020526040902054909150611db190826115f5565b305f90815260066020526040808220929092556019546001600160a01b031681522054611dde90836115f5565b6019546001600160a01b039081165f9081526006602090815260409182902093909355518381523092918b16915f805160206122bb833981519152910160405180910390a38115611e6757600354611e3690836115b4565b6003556040518281525f906001600160a01b038a16905f805160206122bb8339815191529060200160405180910390a35b611e7187846115b4565b98975050505050505050565b5f8183611e9d5760405162461bcd60e51b81526004016107ed9190611ea9565b505f61116f8486612194565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114611ef4575f80fd5b919050565b5f8060408385031215611f0a575f80fd5b611f1383611ede565b946020939093013593505050565b5f805f805f60a08688031215611f35575f80fd5b611f3e86611ede565b9450611f4c60208701611ede565b9350611f5a60408701611ede565b9250611f6860608701611ede565b9150611f7660808701611ede565b90509295509295909350565b5f805f60608486031215611f94575f80fd5b611f9d84611ede565b9250611fab60208501611ede565b929592945050506040919091013590565b5f8060408385031215611fcd575f80fd5b50508035926020909101359150565b8015158114610f5a575f80fd5b5f8060408385031215611ffa575f80fd5b61200383611ede565b9150602083013561201381611fdc565b809150509250929050565b5f6020828403121561202e575f80fd5b61095b82611ede565b5f60208284031215612047575f80fd5b5035919050565b5f805f60608486031215612060575f80fd5b505081359360208301359350604090920135919050565b5f8060408385031215612088575f80fd5b8235611f1381611fdc565b5f805f805f8060c087890312156120a8575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b5f80604083850312156120e3575f80fd5b82356120ee81611fdc565b9150602083013560ff81168114612013575f80fd5b5f8060408385031215612114575f80fd5b61211d83611ede565b915061212b60208401611ede565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176107be576107be612169565b5f826121ae57634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156121c3575f80fd5b5051919050565b5f602082840312156121da575f80fd5b815161095b81611fdc565b818103818111156107be576107be612169565b808201808211156107be576107be612169565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b8181101561226f5783516001600160a01b0316835260209384019390920191600101612248565b50506001600160a01b039590951660608401525050608001529392505050565b5f805f606084860312156122a1575f80fd5b505081516020830151604090930151909492935091905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220b3155636a7f14ab8d1e246cb8c9d46673e6c4b4740ba55c71a6301f0521ef63c64736f6c634300081a0033

Deployed Bytecode

0x608060405260043610610241575f3560e01c8063722b62ad11610134578063a8aa1b31116100b3578063cf4d094b11610078578063cf4d094b14610684578063cfd8d949146106a3578063dd62ed3e146106c2578063e0dca26e14610706578063f2fde38b1461071a578063f887ea4014610739575f80fd5b8063a8aa1b31146105f5578063a9059cbb14610614578063b2bdfa7b14610633578063b53d8d2914610651578063ca38b2d914610670575f80fd5b806386f6c3c1116100f957806386f6c3c11461054a578063893d20e8146105695780638a8c523c146105995780638da5cb5b146105ad57806395d89b41146105c9575f80fd5b8063722b62ad146104cd578063751039fc146104ed57806375e1a3131461050157806378109e54146105205780637d1db4a514610535575f80fd5b806348b98ef5116101c05780635fb9340c116101855780635fb9340c14610432578063617fe0ed146104465780636ce46bc31461046657806370a0823114610485578063715018a6146104b9575f80fd5b806348b98ef5146103a857806350db71fb146103c157806355265669146103e0578063571ac8b0146103f45780635d0044ca14610413575f80fd5b80631df4ccfc116102065780631df4ccfc1461031f57806323b872dd146103345780632e6ac10614610353578063308302d314610372578063313ce56714610387575f80fd5b806306fdde031461024c57806308fd3d0514610291578063095ea7b3146102c157806318160ddd146102e057806318abb635146102fe575f80fd5b3661024857005b5f80fd5b348015610257575f80fd5b5060408051808201909152600b81526a4d6f67676564205065706560a81b60208201525b6040516102889190611ea9565b60405180910390f35b34801561029c575f80fd5b50601e546102b190600160a01b900460ff1681565b6040519015158152602001610288565b3480156102cc575f80fd5b506102b16102db366004611ef9565b610758565b3480156102eb575f80fd5b506003545b604051908152602001610288565b348015610309575f80fd5b5061031d610318366004611f21565b6107c4565b005b34801561032a575f80fd5b506102f060105481565b34801561033f575f80fd5b506102b161034e366004611f82565b6108a4565b34801561035e575f80fd5b506102b161036d366004611fbc565b610962565b34801561037d575f80fd5b506102f060215481565b348015610392575f80fd5b5060095b60405160ff9091168152602001610288565b3480156103b3575f80fd5b506020546102b19060ff1681565b3480156103cc575f80fd5b5061031d6103db366004611fe9565b610975565b3480156103eb575f80fd5b506102f06109c8565b3480156103ff575f80fd5b506102b161040e36600461201e565b610a38565b34801561041e575f80fd5b5061031d61042d366004612037565b610a44565b34801561043d575f80fd5b5061031d610ad0565b348015610451575f80fd5b50601e546102b190600160a81b900460ff1681565b348015610471575f80fd5b5061031d61048036600461204e565b610b08565b348015610490575f80fd5b506102f061049f36600461201e565b6001600160a01b03165f9081526006602052604090205490565b3480156104c4575f80fd5b5061031d610b42565b3480156104d8575f80fd5b50601e5461039690600160b01b900460ff1681565b3480156104f8575f80fd5b5061031d610bb3565b34801561050c575f80fd5b5061031d61051b366004612077565b610be9565b34801561052b575f80fd5b506102f060055481565b348015610540575f80fd5b506102f060045481565b348015610555575f80fd5b5061031d610564366004612093565b610c6b565b348015610574575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610288565b3480156105a4575f80fd5b5061031d610d38565b3480156105b8575f80fd5b505f546001600160a01b0316610581565b3480156105d4575f80fd5b506040805180820190915260048152634d4f504560e01b602082015261027b565b348015610600575f80fd5b50601e54610581906001600160a01b031681565b34801561061f575f80fd5b506102b161062e366004611ef9565b610d88565b34801561063e575f80fd5b505f54610581906001600160a01b031681565b34801561065c575f80fd5b506102b161066b366004611ef9565b610d94565b34801561067b575f80fd5b5061031d610f24565b34801561068f575f80fd5b506102f061069e366004612037565b610f5d565b3480156106ae575f80fd5b5061031d6106bd3660046120d2565b610fa2565b3480156106cd575f80fd5b506102f06106dc366004612103565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b348015610711575f80fd5b5061031d611002565b348015610725575f80fd5b5061031d61073436600461201e565b611059565b348015610744575f80fd5b50601c54610581906001600160a01b031681565b335f8181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107b29086815260200190565b60405180910390a35060015b92915050565b5f546001600160a01b031633146107f65760405162461bcd60e51b81526004016107ed90612134565b60405180910390fd5b601580546001600160a01b038781166001600160a01b031992831617909255601680548784169083168117909155601780548785169084168117909155601980548786169085168117909155601880549587169590941685179093556040805192835260208301949094529281019190915260608101919091527fd57a6cc80e12ea4e450dcae918d555702c8ad353993d8e23acc138382c6c7f649060800160405180910390a15050505050565b6001600160a01b0383165f9081526007602090815260408083203384529091528120545f191461094d576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f908152600782528381203382529091529190912054610929918490611140565b6001600160a01b0385165f9081526007602090815260408083203384529091529020555b610958848484611178565b90505b9392505050565b5f8261096d83610f5d565b119392505050565b5f546001600160a01b0316331461099e5760405162461bcd60e51b81526004016107ed90612134565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b60066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85461dead5f9081527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e22546003549192610a33929091610a2d91906115b4565b906115b4565b905090565b5f6107be825f19610758565b5f546001600160a01b03163314610a6d5760405162461bcd60e51b81526004016107ed90612134565b6001811015610a7a575f80fd5b6103e881600354610a8b919061217d565b610a959190612194565b60058190556040519081527f494fd99b13a8a3670e91a40af1b1ffec73968d010de2a178aa17556d7d353f339060200160405180910390a150565b5f546001600160a01b03163314610af95760405162461bcd60e51b81526004016107ed90612134565b601e805460ff60a81b19169055565b5f546001600160a01b03163314610b315760405162461bcd60e51b81526004016107ed90612134565b601291909155601391909155601455565b5f546001600160a01b03163314610b6b5760405162461bcd60e51b81526004016107ed90612134565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314610bdc5760405162461bcd60e51b81526004016107ed90612134565b6003546004819055600555565b5f546001600160a01b03163314610c125760405162461bcd60e51b81526004016107ed90612134565b6020805460ff1916831515908117825560218390556040805184815260ff9092161515928201929092527f392f1d6148f51babec2021798dc4b53898c421ad141fcd1babe8ac1bff909f79910160405180910390a15050565b5f546001600160a01b03163314610c945760405162461bcd60e51b81526004016107ed90612134565b600b869055600e859055600c849055600d839055600f829055610cc582610cbf858188818c8c6115f5565b906115f5565b6010556011819055610cd8600482612194565b60105410610d285760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e2032352500000060448201526064016107ed565b610d30611653565b505050505050565b5f546001600160a01b03163314610d615760405162461bcd60e51b81526004016107ed90612134565b601e805460ff60a01b1916600160a01b1790556101f46013556102bc6012556103e8601455565b5f61095b338484611178565b5f306001600160a01b03841603610dfe5760405162461bcd60e51b815260206004820152602860248201527f746f6b656e416464726573732063616e206e6f7420626520746865206e6174696044820152673b32903a37b5b2b760c11b60648201526084016107ed565b815f03610e6e576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610e47573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e6b91906121b3565b91505b604080516001600160a01b0385168152602081018490527f13baf1e647d68ca9451d9fc896ee1c75b4337b7804451971e549ca6d1e24287d910160405180910390a160155460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303815f875af1158015610f00573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061095b91906121ca565b6017546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610f5a573d5f803e3d5ffd5b50565b5f6107be610f696109c8565b601e546001600160a01b03165f90815260066020526040902054610f9c90610f95906002905b906116ee565b85906116ee565b9061176c565b5f546001600160a01b03163314610fcb5760405162461bcd60e51b81526004016107ed90612134565b601e805461ffff60a81b1916600160a81b9315159390930260ff60b01b191692909217600160b01b60ff9290921691909102179055565b5f546001600160a01b0316331461102b5760405162461bcd60e51b81526004016107ed90612134565b5f6013819055601281905560145560035460649061104a90600161217d565b6110549190612194565b602155565b5f546001600160a01b031633146110825760405162461bcd60e51b81526004016107ed90612134565b6001600160a01b0381166110e75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107ed565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f81848411156111635760405162461bcd60e51b81526004016107ed9190611ea9565b505f61116f84866121e5565b95945050505050565b6022545f9060ff1615611197576111908484846117ad565b905061095b565b6001600160a01b0384165f9081526001602052604090205460ff161580156111d757506001600160a01b0383165f9081526001602052604090205460ff16155b1561122c57601e54600160a01b900460ff1661122c5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016107ed565b6001600160a01b0384165f9081526001602052604090205460ff1615801561125d57506001600160a01b0383163014155b801561127457506001600160a01b03831661dead14155b801561128e5750601e546001600160a01b03848116911614155b80156112a857506019546001600160a01b03848116911614155b80156112c257506016546001600160a01b03848116911614155b80156112e657506001600160a01b0383165f9081526009602052604090205460ff16155b15611386576001600160a01b0383165f9081526006602052604090205460055461131084836121f8565b11156113845760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016107ed565b505b601e546001600160a01b0385811691161480156113ac5750601e54600160a81b900460ff165b80156113d057506001600160a01b0383165f908152600a602052604090205460ff16155b1561146b576001600160a01b0383165f908152601f6020526040902054421161143b5760405162461bcd60e51b815260206004820152601860248201527f506c656173652077616974206265747765656e2062757973000000000000000060448201526064016107ed565b601e5461145290600160b01b900460ff16426121f8565b6001600160a01b0384165f908152601f60205260409020555b611475848361187d565b61147d6118e9565b1561148a5761148a611936565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f908152600690915291909120546114db918490611140565b6001600160a01b0385165f90815260066020908152604080832093909355600890529081205460ff168061152657506001600160a01b0384165f9081526008602052604090205460ff165b61153a57611535858486611cfe565b61153c565b825b6001600160a01b0385165f9081526006602052604090205490915061156190826115f5565b6001600160a01b038086165f8181526006602052604090819020939093559151908716905f805160206122bb833981519152906115a19085815260200190565b60405180910390a3506001949350505050565b5f61095b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611140565b5f8061160183856121f8565b90508381101561095b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107ed565b7f8cc651ceed4360bdb07d4dfc17daa4a6fa17092a313d2464a582a73e9b9328006116906064610f9c6013546010546116ee90919063ffffffff16565b6116ac6064610f9c6012546010546116ee90919063ffffffff16565b6116c86064610f9c6014546010546116ee90919063ffffffff16565b6040805160ff9485168152928416602084015292168183015290519081900360600190a1565b5f825f036116fd57505f6107be565b5f611708838561217d565b9050826117158583612194565b1461095b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107ed565b5f61095b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e7d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f9081526006909152918220546117fd918490611140565b6001600160a01b038086165f90815260066020526040808220939093559085168152205461182b90836115f5565b6001600160a01b038085165f8181526006602052604090819020939093559151908616905f805160206122bb8339815191529061186b9086815260200190565b60405180910390a35060019392505050565b600454811115806118a557506001600160a01b0382165f9081526009602052604090205460ff165b6118e55760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016107ed565b5050565b601e545f906001600160a01b03163314801590611909575060225460ff16155b8015611917575060205460ff165b8015610a33575050602154305f90815260066020526040902054101590565b6022805460ff19166001179055601a54601b545f9161195491610962565b61196057600b54611962565b5f5b90505f6119856002610f9c601054610f9c866021546116ee90919063ffffffff16565b90505f61199d826021546115b490919063ffffffff16565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f815181106119d5576119d561220b565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611a0657611a0661220b565b6001600160a01b039283166020918202929092010152601c5460405163791ac94760e01b81524792919091169063791ac94790611a4f9086905f9087903090429060040161221f565b5f604051808303815f87803b158015611a66575f80fd5b505af1158015611a78573d5f803e3d5ffd5b505050505f611a9082476115b490919063ffffffff16565b90505f611aaa611aa188600261176c565b601054906115b4565b90505f611abe6002610f9c8481878d6116ee565b90505f611ada83610f9c600c54876116ee90919063ffffffff16565b90505f611af684610f9c600e54886116ee90919063ffffffff16565b90505f611b1285610f9c600d54896116ee90919063ffffffff16565b6016546040519192505f916001600160a01b039091169085908381818185875af1925050503d805f8114611b61576040519150601f19603f3d011682016040523d82523d5f602084013e611b66565b606091505b50506017546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114611bb3576040519150601f19603f3d011682016040523d82523d5f602084013e611bb8565b606091505b50506018546040519192506001600160a01b03169084905f81818185875af1925050503d805f8114611c05576040519150601f19603f3d011682016040523d82523d5f602084013e611c0a565b606091505b505f9250508b159050611ce657601c5460155460405163f305d71960e01b8152306004820152602481018e90525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611c84573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611ca9919061228f565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506022805460ff1916905550505050505050505050565b601454601e545f91906001600160a01b0390811690841603611d235750601254611d3e565b601e546001600160a01b0390811690861603611d3e57506013545b5f611d6a6011546064611d51919061217d565b610f9c84610f8f6010548a6116ee90919063ffffffff16565b90505f611d88601054610f9c600f54856116ee90919063ffffffff16565b90505f611d9583836115b4565b305f90815260066020526040902054909150611db190826115f5565b305f90815260066020526040808220929092556019546001600160a01b031681522054611dde90836115f5565b6019546001600160a01b039081165f9081526006602090815260409182902093909355518381523092918b16915f805160206122bb833981519152910160405180910390a38115611e6757600354611e3690836115b4565b6003556040518281525f906001600160a01b038a16905f805160206122bb8339815191529060200160405180910390a35b611e7187846115b4565b98975050505050505050565b5f8183611e9d5760405162461bcd60e51b81526004016107ed9190611ea9565b505f61116f8486612194565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114611ef4575f80fd5b919050565b5f8060408385031215611f0a575f80fd5b611f1383611ede565b946020939093013593505050565b5f805f805f60a08688031215611f35575f80fd5b611f3e86611ede565b9450611f4c60208701611ede565b9350611f5a60408701611ede565b9250611f6860608701611ede565b9150611f7660808701611ede565b90509295509295909350565b5f805f60608486031215611f94575f80fd5b611f9d84611ede565b9250611fab60208501611ede565b929592945050506040919091013590565b5f8060408385031215611fcd575f80fd5b50508035926020909101359150565b8015158114610f5a575f80fd5b5f8060408385031215611ffa575f80fd5b61200383611ede565b9150602083013561201381611fdc565b809150509250929050565b5f6020828403121561202e575f80fd5b61095b82611ede565b5f60208284031215612047575f80fd5b5035919050565b5f805f60608486031215612060575f80fd5b505081359360208301359350604090920135919050565b5f8060408385031215612088575f80fd5b8235611f1381611fdc565b5f805f805f8060c087890312156120a8575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b5f80604083850312156120e3575f80fd5b82356120ee81611fdc565b9150602083013560ff81168114612013575f80fd5b5f8060408385031215612114575f80fd5b61211d83611ede565b915061212b60208401611ede565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176107be576107be612169565b5f826121ae57634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156121c3575f80fd5b5051919050565b5f602082840312156121da575f80fd5b815161095b81611fdc565b818103818111156107be576107be612169565b808201808211156107be576107be612169565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b8181101561226f5783516001600160a01b0316835260209384019390920191600101612248565b50506001600160a01b039590951660608401525050608001529392505050565b5f805f606084860312156122a1575f80fd5b505081516020830151604090930151909492935091905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220b3155636a7f14ab8d1e246cb8c9d46673e6c4b4740ba55c71a6301f0521ef63c64736f6c634300081a0033

Deployed Bytecode Sourcemap

5155:15027:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9257:80;;;;;;;;;;-1:-1:-1;9329:5:0;;;;;;;;;;;;-1:-1:-1;;;9329:5:0;;;;9257:80;;;;;;;:::i;:::-;;;;;;;;7475:31;;;;;;;;;;-1:-1:-1;7475:31:0;;;;-1:-1:-1;;;7475:31:0;;;;;;;;;602:14:1;;595:22;577:41;;565:2;550:18;7475:31:0;437:187:1;9679:216:0;;;;;;;;;;-1:-1:-1;9679:216:0;;;;;:::i;:::-;;:::i;8987:88::-;;;;;;;;;;-1:-1:-1;9060:12:0;;8987:88;;;1258:25:1;;;1246:2;1231:18;8987:88:0;1112:177:1;18925:542:0;;;;;;;;;;-1:-1:-1;18925:542:0;;;;;:::i;:::-;;:::i;:::-;;6821:97;;;;;;;;;;;;;;;;10197:370;;;;;;;;;;-1:-1:-1;10197:370:0;;;;;:::i;:::-;;:::i;19730:142::-;;;;;;;;;;-1:-1:-1;19730:142:0;;;;;:::i;:::-;;:::i;7709:63::-;;;;;;;;;;;;;;;;9081:80;;;;;;;;;;-1:-1:-1;5519:1:0;9081:80;;;2685:4:1;2673:17;;;2655:36;;2643:2;2628:18;9081:80:0;2513:184:1;7664:38:0;;;;;;;;;;-1:-1:-1;7664:38:0;;;;;;;;11117:129;;;;;;;;;;-1:-1:-1;11117:129:0;;;;;:::i;:::-;;:::i;20043:132::-;;;;;;;;;;;;;:::i;9903:122::-;;;;;;;;;;-1:-1:-1;9903:122:0;;;;;:::i;:::-;;:::i;10579:247::-;;;;;;;;;;-1:-1:-1;10579:247:0;;;;;:::i;:::-;;:::i;10841:93::-;;;;;;;;;;;;;:::i;7516:37::-;;;;;;;;;;-1:-1:-1;7516:37:0;;;;-1:-1:-1;;;7516:37:0;;;;;;15466:274;;;;;;;;;;-1:-1:-1;15466:274:0;;;;;:::i;:::-;;:::i;9427:105::-;;;;;;;;;;-1:-1:-1;9427:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;9511:18:0;9493:7;9511:18;;;:9;:18;;;;;;;9427:105;2069:148;;;;;;;;;;;;;:::i;7560:38::-;;;;;;;;;;-1:-1:-1;7560:38:0;;;;-1:-1:-1;;;7560:38:0;;;;;;15979:139;;;;;;;;;;;;;:::i;19477:245::-;;;;;;;;;;-1:-1:-1;19477:245:0;;;;;:::i;:::-;;:::i;6280:63::-;;;;;;;;;;;;;;;;6213:60;;;;;;;;;;;;;;;;18311:601;;;;;;;;;;-1:-1:-1;18311:601:0;;;;;:::i;:::-;;:::i;9343:78::-;;;;;;;;;;-1:-1:-1;9395:7:0;1920:6;-1:-1:-1;;;;;1920:6:0;9343:78;;;-1:-1:-1;;;;;5402:32:1;;;5384:51;;5372:2;5357:18;9343:78:0;5238:203:1;15755:214:0;;;;;;;;;;;;;:::i;1855:79::-;;;;;;;;;;-1:-1:-1;1893:7:0;1920:6;-1:-1:-1;;;;;1920:6:0;1855:79;;9167:84;;;;;;;;;;-1:-1:-1;9241:7:0;;;;;;;;;;;;-1:-1:-1;;;9241:7:0;;;;9167:84;;7443:19;;;;;;;;;;-1:-1:-1;7443:19:0;;;;-1:-1:-1;;;;;7443:19:0;;;10033:156;;;;;;;;;;-1:-1:-1;10033:156:0;;;;;:::i;:::-;;:::i;1475:21::-;;;;;;;;;;-1:-1:-1;1475:21:0;;;;-1:-1:-1;;;;;1475:21:0;;;15025:433;;;;;;;;;;-1:-1:-1;15025:433:0;;;;;:::i;:::-;;:::i;14884:134::-;;;;;;;;;;;;;:::i;19880:151::-;;;;;;;;;;-1:-1:-1;19880:151:0;;;;;:::i;:::-;;:::i;10942:165::-;;;;;;;;;;-1:-1:-1;10942:165:0;;;;;:::i;:::-;;:::i;9538:133::-;;;;;;;;;;-1:-1:-1;9538:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;9640:19:0;;;9622:7;9640:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;9538:133;11254:244;;;;;;;;;;;;;:::i;2225:::-;;;;;;;;;;-1:-1:-1;2225:244:0;;;;;:::i;:::-;;:::i;7373:24::-;;;;;;;;;;-1:-1:-1;7373:24:0;;;;-1:-1:-1;;;;;7373:24:0;;;9679:216;9783:10;9754:4;9771:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9771:32:0;;;;;;;;;;:41;;;9828:37;9754:4;;9771:32;;9828:37;;;;9806:6;1258:25:1;;1246:2;1231:18;;1112:177;9828:37:0;;;;;;;;-1:-1:-1;9883:4:0;9679:216;;;;;:::o;18925:542::-;1982:6;;-1:-1:-1;;;;;1982:6:0;1292:10;1982:22;1974:67;;;;-1:-1:-1;;;1974:67:0;;;;;;;:::i;:::-;;;;;;;;;19119:13:::1;:30:::0;;-1:-1:-1;;;;;19119:30:0;;::::1;-1:-1:-1::0;;;;;;19119:30:0;;::::1;;::::0;;;19160:20:::1;:44:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;19215:18:::1;:40:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;19266:15:::1;:34:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;19311:18:::1;:40:::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;;19369:90:::1;::::0;;6940:51:1;;;7022:2;7007:18;;7000:60;;;;7076:18;;;7069:60;;;;7160:2;7145:18;;7138:60;;;;19369:90:0::1;::::0;6927:3:1;6912:19;19369:90:0::1;;;;;;;18925:542:::0;;;;;:::o;10197:370::-;-1:-1:-1;;;;;10317:19:0;;10297:4;10317:19;;;:11;:19;;;;;;;;10337:10;10317:31;;;;;;;;-1:-1:-1;;10317:52:0;10314:186;;10419:69;;;;;;;;;;;-1:-1:-1;;;10419:69:0;;;;;;;;-1:-1:-1;;;;;10419:19:0;;-1:-1:-1;10419:19:0;;;:11;:19;;;;;10439:10;10419:31;;;;;;;;;;:69;;10455:6;;10419:35;:69::i;:::-;-1:-1:-1;;;;;10385:19:0;;;;;;:11;:19;;;;;;;;10405:10;10385:31;;;;;;;:103;10314:186;10519:40;10533:6;10541:9;10552:6;10519:13;:40::i;:::-;10512:47;;10197:370;;;;;;:::o;19730:142::-;19809:4;19859:5;19833:23;19847:8;19833:13;:23::i;:::-;:31;;19730:142;-1:-1:-1;;;19730:142:0:o;11117:129::-;1982:6;;-1:-1:-1;;;;;1982:6:0;1292:10;1982:22;1974:67;;;;-1:-1:-1;;;1974:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11205:24:0;;;::::1;;::::0;;;:16:::1;:24;::::0;;;;:33;;-1:-1:-1;;11205:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11117:129::o;20043:132::-;9511:9;:18;;;;5279:42;20086:7;9511:18;;;;;20113:12;;20086:7;;20113:54;;9511:18;;20113:33;;:12;:16;:33::i;:::-;:37;;:54::i;:::-;20106:61;;20043:132;:::o;9903:122::-;9958:4;9982:35;9990:7;-1:-1:-1;;9982:7:0;:35::i;10579:247::-;1982:6;;-1:-1:-1;;;;;1982:6:0;1292:10;1982:22;1974:67;;;;-1:-1:-1;;;1974:67:0;;;;;;;:::i;:::-;10682:1:::1;10664:14;:19;;10656:28;;;::::0;::::1;;10749:4;10730:14;10715:12;;:29;;;;:::i;:::-;10714:39;;;;:::i;:::-;10696:15;:57:::0;;;10769:31:::1;::::0;1258:25:1;;;10769:31:0::1;::::0;1246:2:1;1231:18;10769:31:0::1;;;;;;;10579:247:::0;:::o;10841:93::-;1982:6;;-1:-1:-1;;;;;1982:6:0;1292:10;1982:22;1974:67;;;;-1:-1:-1;;;1974:67:0;;;;;;;:::i;:::-;10896:18:::1;:26:::0;;-1:-1:-1;;;;10896:26:0::1;::::0;;10841:93::o;15466:274::-;1982:6;;-1:-1:-1;;;;;1982:6:0;1292:10;1982:22;1974:67;;;;-1:-1:-1;;;1974:67:0;;;;;;;:::i;:::-;15592:14:::1;:31:::0;;;;15634:13:::1;:29:::0;;;;15674:24:::1;:42:::0;15466:274::o;2069:148::-;1982:6;;-1:-1:-1;;;;;1982:6:0;1292:10;1982:22;1974:67;;;;-1:-1:-1;;;1974:67:0;;;;;;;:::i;:::-;2176:1:::1;2160:6:::0;;2139:40:::1;::::0;-1:-1:-1;;;;;2160:6:0;;::::1;::::0;2139:40:::1;::::0;2176:1;;2139:40:::1;2207:1;2190:19:::0;;-1:-1:-1;;;;;;2190:19:0::1;::::0;;2069:148::o;15979:139::-;1982:6;;-1:-1:-1;;;;;1982:6:0;1292:10;1982:22;1974:67;;;;-1:-1:-1;;;1974:67:0;;;;;;;:::i;:::-;16053:12:::1;::::0;16038::::1;:27:::0;;;16080:15:::1;:30:::0;15979:139::o;19477:245::-;1982:6;;-1:-1:-1;;;;;1982:6:0;1292:10;1982:22;1974:67;;;;-1:-1:-1;;;1974:67:0;;;;;;;:::i;:::-;19565:19:::1;:30:::0;;-1:-1:-1;;19565:30:0::1;::::0;::::1;;::::0;;::::1;::::0;;19606:21:::1;:31:::0;;;19653:61:::1;::::0;;7904:25:1;;;19565:30:0::1;19694:19:::0;;;7972:14:1;7965:22;7945:18;;;7938:50;;;;19653:61:0::1;::::0;7877:18:1;19653:61:0::1;;;;;;;19477:245:::0;;:::o;18311:601::-;1982:6;;-1:-1:-1;;;;;1982:6:0;1292:10;1982:22;1974:67;;;;-1:-1:-1;;;1974:67:0;;;;;;;:::i;:::-;18489:12:::1;:28:::0;;;18528:10:::1;:24:::0;;;18563:12:::1;:28:::0;;;18602:10:::1;:24:::0;;;18637:7:::1;:18:::0;;;18677:80:::1;18647:8:::0;18677:66:::1;18615:11:::0;18677:66;18578:13;18677:66;18504:13;18541:11;18677:17:::1;:30::i;:::-;:34:::0;::::1;:49::i;:80::-;18666:8;:91:::0;18768:14:::1;:32:::0;;;18830:18:::1;18847:1;18785:15:::0;18830:18:::1;:::i;:::-;18819:8;;:29;18811:71;;;::::0;-1:-1:-1;;;18811:71:0;;8201:2:1;18811:71:0::1;::::0;::::1;8183:21:1::0;8240:2;8220:18;;;8213:30;8279:31;8259:18;;;8252:59;8328:18;;18811:71:0::1;7999:353:1::0;18811:71:0::1;18894:10;:8;:10::i;:::-;18311:601:::0;;;;;;:::o;15755:214::-;1982:6;;-1:-1:-1;;;;;1982:6:0;1292:10;1982:22;1974:67;;;;-1:-1:-1;;;1974:67:0;;;;;;;:::i;:::-;15808:11:::1;:18:::0;;-1:-1:-1;;;;15808:18:0::1;-1:-1:-1::0;;;15808:18:0::1;::::0;;15853:3:::1;15837:13;:19:::0;15884:3:::1;15867:14;:20:::0;15925:4:::1;15808:11;15898:31:::0;15755:214::o;10033:156::-;10113:4;10137:44;10151:10;10163:9;10174:6;10137:13;:44::i;15025:433::-;15111:12;15172:4;-1:-1:-1;;;;;15148:29:0;;;15140:82;;;;-1:-1:-1;;;15140:82:0;;8559:2:1;15140:82:0;;;8541:21:1;8598:2;8578:18;;;8571:30;8637:34;8617:18;;;8610:62;-1:-1:-1;;;8688:18:1;;;8681:38;8736:19;;15140:82:0;8357:404:1;15140:82:0;15241:6;15251:1;15241:11;15238:95;;15277:44;;-1:-1:-1;;;15277:44:0;;15315:4;15277:44;;;5384:51:1;-1:-1:-1;;;;;15277:29:0;;;;;5357:18:1;;15277:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15268:53;;15238:95;15348:33;;;-1:-1:-1;;;;;9193:32:1;;9175:51;;9257:2;9242:18;;9235:34;;;15348:33:0;;9148:18:1;15348:33:0;;;;;;;15428:13;;15399:51;;-1:-1:-1;;;15399:51:0;;-1:-1:-1;;;;;15428:13:0;;;15399:51;;;9175::1;9242:18;;;9235:34;;;15399:28:0;;;;;;9148:18:1;;15399:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14884:134::-;14945:18;;14937:59;;-1:-1:-1;;;;;14945:18:0;;;;14974:21;14937:59;;;;;14945:18;14937:59;14945:18;14937:59;14974:21;14945:18;14937:59;;;;;;;;;;;;;;;;;;;;;14884:134::o;19880:151::-;19942:7;19969:54;20010:12;:10;:12::i;:::-;19992:4;;-1:-1:-1;;;;;19992:4:0;9493:7;9511:18;;;:9;:18;;;;;;19969:36;;19982:22;;20002:1;;19982:15;:19;;:22::i;:::-;19969:8;;:12;:36::i;:::-;:40;;:54::i;10942:165::-;1982:6;;-1:-1:-1;;;;;1982:6:0;1292:10;1982:22;1974:67;;;;-1:-1:-1;;;1974:67:0;;;;;;;:::i;:::-;11027:18:::1;:28:::0;;-1:-1:-1;;;;11066:33:0;-1:-1:-1;;;11027:28:0;::::1;;::::0;;;::::1;-1:-1:-1::0;;;;11066:33:0;;;;;-1:-1:-1;;;11027:28:0::1;11066:33:::0;;;::::1;::::0;;;::::1;;::::0;;10942:165::o;11254:244::-;1982:6;;-1:-1:-1;;;;;1982:6:0;1292:10;1982:22;1974:67;;;;-1:-1:-1;;;1974:67:0;;;;;;;:::i;:::-;11324:1:::1;11308:13;:17:::0;;;11340:14:::1;:18:::0;;;11373:24:::1;:28:::0;11440:12:::1;::::0;11459:3:::1;::::0;11440:16:::1;::::0;-1:-1:-1;11440:16:0::1;:::i;:::-;:22;;;;:::i;:::-;11416:21;:46:::0;11254:244::o;2225:::-;1982:6;;-1:-1:-1;;;;;1982:6:0;1292:10;1982:22;1974:67;;;;-1:-1:-1;;;1974:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2314:22:0;::::1;2306:73;;;::::0;-1:-1:-1;;;2306:73:0;;9732:2:1;2306:73:0::1;::::0;::::1;9714:21:1::0;9771:2;9751:18;;;9744:30;9810:34;9790:18;;;9783:62;-1:-1:-1;;;9861:18:1;;;9854:36;9907:19;;2306:73:0::1;9530:402:1::0;2306:73:0::1;2416:6;::::0;;2395:38:::1;::::0;-1:-1:-1;;;;;2395:38:0;;::::1;::::0;2416:6;::::1;::::0;2395:38:::1;::::0;::::1;2444:6;:17:::0;;-1:-1:-1;;;;;;2444:17:0::1;-1:-1:-1::0;;;;;2444:17:0;;;::::1;::::0;;;::::1;::::0;;2225:244::o;4367:192::-;4453:7;4489:12;4481:6;;;;4473:29;;;;-1:-1:-1;;;4473:29:0;;;;;;;;:::i;:::-;-1:-1:-1;4513:9:0;4525:5;4529:1;4525;:5;:::i;:::-;4513:17;4367:192;-1:-1:-1;;;;;4367:192:0:o;11512:1498::-;11624:6;;11604:4;;11624:6;;11621:63;;;11640:41;11655:6;11663:9;11674:6;11640:14;:41::i;:::-;11633:48;;;;11621:63;-1:-1:-1;;;;;11700:22:0;;;;;;:14;:22;;;;;;;;11699:23;:53;;;;-1:-1:-1;;;;;;11727:25:0;;;;;;:14;:25;;;;;;;;11726:26;11699:53;11696:139;;;11776:11;;-1:-1:-1;;;11776:11:0;;;;11768:43;;;;-1:-1:-1;;;11768:43:0;;10272:2:1;11768:43:0;;;10254:21:1;10311:2;10291:18;;;10284:30;-1:-1:-1;;;10330:18:1;;;10323:50;10390:18;;11768:43:0;10070:344:1;11768:43:0;-1:-1:-1;;;;;11877:22:0;;;;;;:14;:22;;;;;;;;11876:23;:53;;;;-1:-1:-1;;;;;;11903:26:0;;11924:4;11903:26;;11876:53;:84;;;;-1:-1:-1;;;;;;11934:26:0;;5279:42;11934:26;;11876:84;:105;;;;-1:-1:-1;11977:4:0;;-1:-1:-1;;;;;11964:17:0;;;11977:4;;11964:17;;11876:105;:137;;;;-1:-1:-1;11998:15:0;;-1:-1:-1;;;;;11985:28:0;;;11998:15;;11985:28;;11876:137;:174;;;;-1:-1:-1;12030:20:0;;-1:-1:-1;;;;;12017:33:0;;;12030:20;;12017:33;;11876:174;:205;;;;-1:-1:-1;;;;;;12055:26:0;;;;;;:15;:26;;;;;;;;12054:27;11876:205;11872:397;;;-1:-1:-1;;;;;9511:18:0;;12097;9511;;;:9;:18;;;;;;12186:15;;12162:19;12175:6;9511:18;12162:19;:::i;:::-;12161:40;;12153:114;;;;-1:-1:-1;;;12153:114:0;;10751:2:1;12153:114:0;;;10733:21:1;10790:2;10770:18;;;10763:30;10829:34;10809:18;;;10802:62;10900:32;10880:18;;;10873:60;10950:19;;12153:114:0;10549:426:1;12153:114:0;12082:187;11872:397;12295:4;;-1:-1:-1;;;;;12285:14:0;;;12295:4;;12285:14;:36;;;;-1:-1:-1;12303:18:0;;-1:-1:-1;;;12303:18:0;;;;12285:36;:68;;;;-1:-1:-1;;;;;;12326:27:0;;;;;;:16;:27;;;;;;;;12325:28;12285:68;12281:260;;;-1:-1:-1;;;;;12378:24:0;;;;;;:13;:24;;;;;;12405:15;-1:-1:-1;12370:78:0;;;;-1:-1:-1;;;12370:78:0;;11182:2:1;12370:78:0;;;11164:21:1;11221:2;11201:18;;;11194:30;11260:26;11240:18;;;11233:54;11304:18;;12370:78:0;10980:348:1;12370:78:0;12508:21;;12490:39;;-1:-1:-1;;;12508:21:0;;;;12490:15;:39;:::i;:::-;-1:-1:-1;;;;;12463:24:0;;;;;;:13;:24;;;;;:66;12281:260;12553:28;12566:6;12574;12553:12;:28::i;:::-;12599:16;:14;:16::i;:::-;12596:35;;;12618:10;:8;:10::i;:::-;12661:53;;;;;;;;;;;-1:-1:-1;;;12661:53:0;;;;;;;;-1:-1:-1;;;;;12661:17:0;;-1:-1:-1;12661:17:0;;;:9;:17;;;;;;;;:53;;12683:6;;12661:21;:53::i;:::-;-1:-1:-1;;;;;12641:17:0;;;;;;:9;:17;;;;;;;;:73;;;;12753:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;12776:22:0;;;;;;:11;:22;;;;;;;;12753:45;12752:93;;12811:34;12819:6;12827;12835:9;12811:7;:34::i;:::-;12752:93;;;12802:6;12752:93;-1:-1:-1;;;;;12879:20:0;;;;;;:9;:20;;;;;;12727:118;;-1:-1:-1;12879:40:0;;12727:118;12879:24;:40::i;:::-;-1:-1:-1;;;;;12856:20:0;;;;;;;:9;:20;;;;;;;:63;;;;12937:43;;;;;;-1:-1:-1;;;;;;;;;;;12937:43:0;;;12965:14;1258:25:1;;1246:2;1231:18;;1112:177;12937:43:0;;;;;;;;-1:-1:-1;12998:4:0;;11512:1498;-1:-1:-1;;;;11512:1498:0:o;4225:136::-;4283:7;4310:43;4314:1;4317;4310:43;;;;;;;;;;;;;;;;;:3;:43::i;4038:181::-;4096:7;;4128:5;4132:1;4128;:5;:::i;:::-;4116:17;;4157:1;4152;:6;;4144:46;;;;-1:-1:-1;;;4144:46:0;;11535:2:1;4144:46:0;;;11517:21:1;11574:2;11554:18;;;11547:30;11613:29;11593:18;;;11586:57;11660:18;;4144:46:0;11333:351:1;18043:256:0;18096:195;18111:36;18143:3;18111:27;18124:13;;18111:8;;:12;;:27;;;;:::i;:36::-;18169:37;18202:3;18169:28;18182:14;;18169:8;;:12;;:28;;;;:::i;:37::-;18228:47;18271:3;18228:38;18241:24;;18228:8;;:12;;:38;;;;:::i;:47::-;18096:195;;;11909:4:1;11897:17;;;11879:36;;11951:17;;;11946:2;11931:18;;11924:45;12005:17;;11985:18;;;11978:45;18096:195:0;;;;;;11867:2:1;18096:195:0;;;18043:256::o;4565:250::-;4623:7;4647:1;4652;4647:6;4643:47;;-1:-1:-1;4677:1:0;4670:8;;4643:47;4702:9;4714:5;4718:1;4714;:5;:::i;:::-;4702:17;-1:-1:-1;4747:1:0;4738:5;4742:1;4702:17;4738:5;:::i;:::-;:10;4730:56;;;;-1:-1:-1;;;4730:56:0;;12236:2:1;4730:56:0;;;12218:21:1;12275:2;12255:18;;;12248:30;12314:34;12294:18;;;12287:62;-1:-1:-1;;;12365:18:1;;;12358:31;12406:19;;4730:56:0;12034:397:1;4821:132:0;4879:7;4906:39;4910:1;4913;4906:39;;;;;;;;;;;;;;;;;:3;:39::i;13019:330::-;13149:53;;;;;;;;;;;-1:-1:-1;;;13149:53:0;;;;;;;;-1:-1:-1;;;;;13149:17:0;;13112:4;13149:17;;;:9;:17;;;;;;;:53;;13171:6;;13149:21;:53::i;:::-;-1:-1:-1;;;;;13129:17:0;;;;;;;:9;:17;;;;;;:73;;;;13236:20;;;;;;;:32;;13261:6;13236:24;:32::i;:::-;-1:-1:-1;;;;;13213:20:0;;;;;;;:9;:20;;;;;;;:55;;;;13284:35;;;;;;-1:-1:-1;;;;;;;;;;;13284:35:0;;;13312:6;1258:25:1;;1246:2;1231:18;;1112:177;13284:35:0;;;;;;;;-1:-1:-1;13337:4:0;13019:330;;;;;:::o;13357:166::-;13454:12;;13444:6;:22;;:49;;;-1:-1:-1;;;;;;13470:23:0;;;;;;:15;:23;;;;;;;;13444:49;13436:79;;;;-1:-1:-1;;;13436:79:0;;12638:2:1;13436:79:0;;;12620:21:1;12677:2;12657:18;;;12650:30;-1:-1:-1;;;12696:18:1;;;12689:47;12753:18;;13436:79:0;12436:341:1;13436:79:0;13357:166;;:::o;14658:213::-;14745:4;;14707;;-1:-1:-1;;;;;14745:4:0;14731:10;:18;;;;:38;;-1:-1:-1;14763:6:0;;;;14762:7;14731:38;:70;;;;-1:-1:-1;14782:19:0;;;;14731:70;:132;;;;-1:-1:-1;;14842:21:0;;14832:4;14814:24;;;;:9;:24;;;;;;:49;;;14658:213::o;16142:1885::-;7820:6;:13;;-1:-1:-1;;7820:13:0;7829:4;7820:13;;;16237::::1;::::0;16252:24:::1;::::0;7820:6;;16221:56:::1;::::0;:15:::1;:56::i;:::-;:75;;16284:12;;16221:75;;;16280:1;16221:75;16191:105;;16307:23;16333:67;16398:1;16333:60;16384:8;;16333:46;16359:19;16333:21;;:25;;:46;;;;:::i;:67::-;16307:93;;16411:20;16434:42;16460:15;16434:21;;:25;;:42;;;;:::i;:::-;16513:16;::::0;;16527:1:::1;16513:16:::0;;;;;::::1;::::0;;16411:65;;-1:-1:-1;16489:21:0::1;::::0;16513:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;16513:16:0::1;16489:40;;16558:4;16540;16545:1;16540:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16540:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;16584:4:::1;::::0;16574:7;;16584:4;::::1;::::0;16574;;16584;;16574:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;16574:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;16659:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;16659:188:0;;16625:21:::1;::::0;16659:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;16731:12;;16601:21:::1;::::0;16774:4;;16801::::1;::::0;16821:15:::1;::::0;16659:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16860:17;16880:40;16906:13;16880:21;:25;;:40;;;;:::i;:::-;16860:60:::0;-1:-1:-1;16933:19:0::1;16955:40;16968:26;:19:::0;16992:1:::1;16968:23;:26::i;:::-;16955:8;::::0;;:12:::1;:40::i;:::-;16933:62:::0;-1:-1:-1;17016:26:0::1;17045:58;17101:1;17045:51;16933:62:::0;17045:51;:9;17059:19;17045:13:::1;:34::i;:58::-;17016:87;;17114:26;17143:44;17175:11;17143:27;17157:12;;17143:9;:13;;:27;;;;:::i;:44::-;17114:73;;17198:24;17225:42;17255:11;17225:25;17239:10;;17225:9;:13;;:25;;;;:::i;:42::-;17198:69;;17278:20;17301:42;17331:11;17301:25;17315:10;;17301:9;:13;;:25;;;;:::i;:42::-;17385:20;::::0;17377:65:::1;::::0;17278;;-1:-1:-1;17357:15:0::1;::::0;-1:-1:-1;;;;;17385:20:0;;::::1;::::0;17419:18;;17357:15;17377:65;17357:15;17377:65;17419:18;17385:20;17377:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;17477:18:0::1;::::0;17469:57:::1;::::0;17356:86;;-1:-1:-1;;;;;;17477:18:0::1;::::0;17509:12;;17469:57:::1;::::0;;;17509:12;17477:18;17469:57:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;17561:18:0::1;::::0;17553:61:::1;::::0;17453:73;;-1:-1:-1;;;;;;17561:18:0::1;::::0;17593:16;;17553:61:::1;::::0;;;17593:16;17561:18;17553:61:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;17648:5:0::1;::::0;-1:-1:-1;;17669:19:0;;;-1:-1:-1;17666:354:0::1;;17704:6;::::0;17878:13:::1;::::0;17704:236:::1;::::0;-1:-1:-1;;;17704:236:0;;17780:4:::1;17704:236;::::0;::::1;14523:51:1::0;14590:18;;;14583:34;;;17704:6:0::1;14633:18:1::0;;;14626:34;;;14676:18;;;14669:34;-1:-1:-1;;;;;17878:13:0;;::::1;14719:19:1::0;;;14712:61;17910:15:0::1;14789:19:1::0;;;14782:35;17704:6:0;::::1;::::0;:22:::1;::::0;17734:18;;14495:19:1;;17704:236:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;17960:48:0::1;::::0;;15463:25:1;;;15519:2;15504:18;;15497:34;;;17960:48:0::1;::::0;-1:-1:-1;15436:18:1;17960:48:0::1;;;;;;;17666:354;-1:-1:-1::0;;7838:6:0;:14;;-1:-1:-1;;7838:14:0;;;-1:-1:-1;;;;;;;;;;16142:1885:0:o;13653:997::-;13787:24;;13838:4;;13739:7;;13787:24;-1:-1:-1;;;;;13838:4:0;;;13825:17;;;;13822:148;;-1:-1:-1;13869:14:0;;13822:148;;;13914:4;;-1:-1:-1;;;;;13914:4:0;;;13904:14;;;;13901:69;;-1:-1:-1;13945:13:0;;13901:69;13982:17;14002:59;14040:14;;14057:3;14040:20;;;;:::i;:::-;14002:33;14027:7;14002:20;14013:8;;14002:6;:10;;:20;;;;:::i;:59::-;13982:79;;14072:18;14093:36;14120:8;;14093:22;14107:7;;14093:9;:13;;:22;;;;:::i;:36::-;14072:57;-1:-1:-1;14140:22:0;14165:25;:9;14072:57;14165:13;:25::i;:::-;14246:4;14228:24;;;;:9;:24;;;;;;14140:50;;-1:-1:-1;14228:44:0;;14140:50;14228:28;:44::i;:::-;14219:4;14201:24;;;;:9;:24;;;;;;:71;;;;14322:15;;-1:-1:-1;;;;;14322:15:0;14312:26;;;;:42;;14343:10;14312:30;:42::i;:::-;14293:15;;-1:-1:-1;;;;;14293:15:0;;;14283:26;;;;:9;:26;;;;;;;;;:71;;;;14370:47;1258:25:1;;;14395:4:0;;14370:47;;;;-1:-1:-1;;;;;;;;;;;14370:47:0;1231:18:1;14370:47:0;;;;;;;14451:14;;14448:154;;14496:12;;:28;;14513:10;14496:16;:28::i;:::-;14481:12;:43;14544:34;;1258:25:1;;;5352:42:0;;-1:-1:-1;;;;;14544:34:0;;;-1:-1:-1;;;;;;;;;;;14544:34:0;1246:2:1;1231:18;14544:34:0;;;;;;;14448:154;14621:21;:6;14632:9;14621:10;:21::i;:::-;14614:28;13653:997;-1:-1:-1;;;;;;;;13653:997:0:o;4959:189::-;5045:7;5080:12;5073:5;5065:28;;;;-1:-1:-1;;;5065:28:0;;;;;;;;:::i;:::-;-1:-1:-1;5104:9:0;5116:5;5120:1;5116;:5;:::i;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;629:173::-;697:20;;-1:-1:-1;;;;;746:31:1;;736:42;;726:70;;792:1;789;782:12;726:70;629:173;;;:::o;807:300::-;875:6;883;936:2;924:9;915:7;911:23;907:32;904:52;;;952:1;949;942:12;904:52;975:29;994:9;975:29;:::i;:::-;965:39;1073:2;1058:18;;;;1045:32;;-1:-1:-1;;;807:300:1:o;1294:484::-;1389:6;1397;1405;1413;1421;1474:3;1462:9;1453:7;1449:23;1445:33;1442:53;;;1491:1;1488;1481:12;1442:53;1514:29;1533:9;1514:29;:::i;:::-;1504:39;;1562:38;1596:2;1585:9;1581:18;1562:38;:::i;:::-;1552:48;;1619:38;1653:2;1642:9;1638:18;1619:38;:::i;:::-;1609:48;;1676:38;1710:2;1699:9;1695:18;1676:38;:::i;:::-;1666:48;;1733:39;1767:3;1756:9;1752:19;1733:39;:::i;:::-;1723:49;;1294:484;;;;;;;;:::o;1783:374::-;1860:6;1868;1876;1929:2;1917:9;1908:7;1904:23;1900:32;1897:52;;;1945:1;1942;1935:12;1897:52;1968:29;1987:9;1968:29;:::i;:::-;1958:39;;2016:38;2050:2;2039:9;2035:18;2016:38;:::i;:::-;1783:374;;2006:48;;-1:-1:-1;;;2123:2:1;2108:18;;;;2095:32;;1783:374::o;2162:346::-;2230:6;2238;2291:2;2279:9;2270:7;2266:23;2262:32;2259:52;;;2307:1;2304;2297:12;2259:52;-1:-1:-1;;2352:23:1;;;2472:2;2457:18;;;2444:32;;-1:-1:-1;2162:346:1:o;2702:118::-;2788:5;2781:13;2774:21;2767:5;2764:32;2754:60;;2810:1;2807;2800:12;2825:315;2890:6;2898;2951:2;2939:9;2930:7;2926:23;2922:32;2919:52;;;2967:1;2964;2957:12;2919:52;2990:29;3009:9;2990:29;:::i;:::-;2980:39;;3069:2;3058:9;3054:18;3041:32;3082:28;3104:5;3082:28;:::i;:::-;3129:5;3119:15;;;2825:315;;;;;:::o;3145:186::-;3204:6;3257:2;3245:9;3236:7;3232:23;3228:32;3225:52;;;3273:1;3270;3263:12;3225:52;3296:29;3315:9;3296:29;:::i;3336:226::-;3395:6;3448:2;3436:9;3427:7;3423:23;3419:32;3416:52;;;3464:1;3461;3454:12;3416:52;-1:-1:-1;3509:23:1;;3336:226;-1:-1:-1;3336:226:1:o;3567:466::-;3644:6;3652;3660;3713:2;3701:9;3692:7;3688:23;3684:32;3681:52;;;3729:1;3726;3719:12;3681:52;-1:-1:-1;;3774:23:1;;;3894:2;3879:18;;3866:32;;-1:-1:-1;3997:2:1;3982:18;;;3969:32;;3567:466;-1:-1:-1;3567:466:1:o;4038:361::-;4103:6;4111;4164:2;4152:9;4143:7;4139:23;4135:32;4132:52;;;4180:1;4177;4170:12;4132:52;4219:9;4206:23;4238:28;4260:5;4238:28;:::i;4404:829::-;4508:6;4516;4524;4532;4540;4548;4601:3;4589:9;4580:7;4576:23;4572:33;4569:53;;;4618:1;4615;4608:12;4569:53;-1:-1:-1;;4663:23:1;;;4783:2;4768:18;;4755:32;;-1:-1:-1;4886:2:1;4871:18;;4858:32;;4989:2;4974:18;;4961:32;;-1:-1:-1;5092:3:1;5077:19;;5064:33;;-1:-1:-1;5196:3:1;5181:19;5168:33;;-1:-1:-1;4404:829:1;-1:-1:-1;4404:829:1:o;5446:406::-;5509:6;5517;5570:2;5558:9;5549:7;5545:23;5541:32;5538:52;;;5586:1;5583;5576:12;5538:52;5625:9;5612:23;5644:28;5666:5;5644:28;:::i;:::-;5691:5;-1:-1:-1;5748:2:1;5733:18;;5720:32;5796:4;5783:18;;5771:31;;5761:59;;5816:1;5813;5806:12;5857:260;5925:6;5933;5986:2;5974:9;5965:7;5961:23;5957:32;5954:52;;;6002:1;5999;5992:12;5954:52;6025:29;6044:9;6025:29;:::i;:::-;6015:39;;6073:38;6107:2;6096:9;6092:18;6073:38;:::i;:::-;6063:48;;5857:260;;;;;:::o;6348:356::-;6550:2;6532:21;;;6569:18;;;6562:30;6628:34;6623:2;6608:18;;6601:62;6695:2;6680:18;;6348:356::o;7209:127::-;7270:10;7265:3;7261:20;7258:1;7251:31;7301:4;7298:1;7291:15;7325:4;7322:1;7315:15;7341:168;7414:9;;;7445;;7462:15;;;7456:22;;7442:37;7432:71;;7483:18;;:::i;7514:217::-;7554:1;7580;7570:132;;7624:10;7619:3;7615:20;7612:1;7605:31;7659:4;7656:1;7649:15;7687:4;7684:1;7677:15;7570:132;-1:-1:-1;7716:9:1;;7514:217::o;8766:230::-;8836:6;8889:2;8877:9;8868:7;8864:23;8860:32;8857:52;;;8905:1;8902;8895:12;8857:52;-1:-1:-1;8950:16:1;;8766:230;-1:-1:-1;8766:230:1:o;9280:245::-;9347:6;9400:2;9388:9;9379:7;9375:23;9371:32;9368:52;;;9416:1;9413;9406:12;9368:52;9448:9;9442:16;9467:28;9489:5;9467:28;:::i;9937:128::-;10004:9;;;10025:11;;;10022:37;;;10039:18;;:::i;10419:125::-;10484:9;;;10505:10;;;10502:36;;;10518:18;;:::i;12914:127::-;12975:10;12970:3;12966:20;12963:1;12956:31;13006:4;13003:1;12996:15;13030:4;13027:1;13020:15;13046:959;13308:4;13356:3;13345:9;13341:19;13387:6;13376:9;13369:25;13430:6;13425:2;13414:9;13410:18;13403:34;13473:3;13468:2;13457:9;13453:18;13446:31;13497:6;13532;13526:13;13563:6;13555;13548:22;13601:3;13590:9;13586:19;13579:26;;13640:2;13632:6;13628:15;13614:29;;13661:1;13671:195;13685:6;13682:1;13679:13;13671:195;;;13750:13;;-1:-1:-1;;;;;13746:39:1;13734:52;;13815:2;13841:15;;;;13806:12;;;;13782:1;13700:9;13671:195;;;-1:-1:-1;;;;;;;13922:32:1;;;;13917:2;13902:18;;13895:60;-1:-1:-1;;13986:3:1;13971:19;13964:35;13883:3;13046:959;-1:-1:-1;;;13046:959:1:o;14828:456::-;14916:6;14924;14932;14985:2;14973:9;14964:7;14960:23;14956:32;14953:52;;;15001:1;14998;14991:12;14953:52;-1:-1:-1;;15046:16:1;;15152:2;15137:18;;15131:25;15248:2;15233:18;;;15227:25;15046:16;;15131:25;;-1:-1:-1;15227:25:1;14828:456;-1:-1:-1;14828:456:1:o

Swarm Source

ipfs://b3155636a7f14ab8d1e246cb8c9d46673e6c4b4740ba55c71a6301f0521ef63c

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

OVERVIEW

The Mog and Pepe hype comes the combined Mogged Pepe / MOPE , a meme token on the ethereum chain which has reached the millions already.

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.