ETH Price: $3,703.84 (+2.93%)

Token

ERC-20: TM3 (TM3)
 

Overview

Max Total Supply

645,000,000 TM3

Holders

121

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
260,000 TM3

Value
$0.00
0xE4a8c76e3F315147a1Da276440b7D08762d2C3a4
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x25643C70...741A40245
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
JustPump

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : JustPump.sol
// SPDX-License-Identifier: Unlicensed
// Copyright (c) JustPump Labs https://justpump.pro

pragma solidity ^0.8.26;

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


abstract contract ReentrancyGuard {

    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;

    uint256 private _status;

    constructor() {
        _status = _NOT_ENTERED;
    }


    modifier nonReentrant() {
        _nonReentrantBefore();
        _;
        _nonReentrantAfter();
    }

    function _nonReentrantBefore() private {
        require(_status != _ENTERED, "reentrant call");

        _status = _ENTERED;
    }

    function _nonReentrantAfter() private {
        _status = _NOT_ENTERED;
    }
    function _reentrancyGuardEntered() internal view returns (bool) {
        return _status == _ENTERED;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    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);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "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, "multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "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;
    }
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "modulo by zero");
    }
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

library Address {
    function isContract(address account) internal view returns (bool) {
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "insufficient");
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "unable");
    }
    
}

contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
    function owner() public view returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(_owner == _msgSender(), "not owner");
        _;
    }
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0x000000000000000000000000000000000000dEaD));
        _owner = address(0x000000000000000000000000000000000000dEaD);
    }
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "0 address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

    function createPair(address tokenA, address tokenB) external returns (address pair);

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

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

    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);

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

    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 ILiquidityLocker {
    function lock(
        address owner,
        address token,
        bool isLpToken,
        uint256 amount,
        uint256 unlockDate,
        string memory description
    ) external returns (uint256 id);
}


contract JustPump is Context, IERC20, Ownable, ReentrancyGuard {
    using SafeMath for uint256;
    using Address for address;

    uint256 public  immutable pumpfee;
    address private immutable pumptreasury;
    uint256 private accumulatedEth;

    uint8 private _decimals = 18;
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private isExcludedFromFee;
    mapping (address => address) public invite;
    mapping (address => uint256) public mintNUm;

    string private _name;
    string private _symbol;
    string public Logo;
    string public Website;
    string public Twitter;
    string public Discord;
    string public Telegram;
    string public Description;

    uint256 public onePrice;
    uint256 public oneAmount;
    uint256 public WalletMintCap;
    uint256 public _totalSupply;
    uint256 public MintAndLPAmount;
    uint256 public FundAmount;
    uint256 public DonationVitalikAmount;
    uint256 public LPlockDuration;
    uint256 public MintTime;
    bool public MintWhileAddLP;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapPair;
    bool public iSwap = false;

    ILiquidityLocker public liquidityLocker;
    bool public liquidityLocked = false;
    
    address public contractCreator;
    uint256 public startTime;
    uint256 public endTime;

    event LiquidityLocked(uint256 amount, uint256 unlockDate);
    event Refund(address indexed user, uint256 tokenAmount, uint256 ethAmount);

     constructor(
        string memory name_,
        string memory symbol_,
        string memory logo_,
        string memory website_,
        string memory twitter_,
        string memory discord_,
        string memory telegram_,
        string memory description_,
        uint256 onePrice_,
        uint256 oneAmount_,
        uint256 walletMintCap_,
        uint256 totalSupply_,
        uint256 mintAndLPAmount_,
        uint256 fundAmount_,
        uint256 donationVitalikAmount_,
        uint256 lpLockDuration_,
        uint256 mintTime_,
        bool mintWhileAddLP_,
        address creator_,
        address pumptreasury_,
        uint256 pumpfee_
    ) {   
        _name = name_;
        _symbol = symbol_;
        Logo = logo_;
        Website = website_;
        Twitter = twitter_;
        Discord = discord_;
        Telegram = telegram_;
        Description = description_;
        onePrice = onePrice_;
        oneAmount = oneAmount_;
        WalletMintCap = walletMintCap_;
        _totalSupply = totalSupply_;
        MintAndLPAmount = mintAndLPAmount_;
        FundAmount = fundAmount_;
        DonationVitalikAmount = donationVitalikAmount_;
        LPlockDuration = lpLockDuration_;
        MintTime = mintTime_;
        MintWhileAddLP = mintWhileAddLP_;
        
        contractCreator = creator_;
        pumptreasury = pumptreasury_;
        pumpfee = pumpfee_;
        startTime = block.timestamp;
        endTime = startTime + MintTime;


        liquidityLocker = ILiquidityLocker(0x71B5759d73262FBb223956913ecF4ecC51057641);
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2);
        uniswapV2Router = _uniswapV2Router;

        _allowances[address(this)][address(uniswapV2Router)] = _totalSupply;
        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D] = true;

        _balances[address(this)] = MintAndLPAmount;
        emit Transfer(address(0), address(this), MintAndLPAmount);

        _balances[creator_] = FundAmount;
        emit Transfer(address(0), creator_, FundAmount);

        address donationVitalikRecipient = 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045;
        _balances[donationVitalikRecipient] = DonationVitalikAmount;
        emit Transfer(address(0), donationVitalikRecipient, DonationVitalikAmount);
       
        renounceOwnership();
    }

    function name() public view returns (string memory) {
        return _name;
    }
    function symbol() public view returns (string memory) {
        return _symbol;
    }
    function decimals() public view returns (uint8) {
        return _decimals;
    }
    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }
    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }
    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "below 0"));
        return true;
    }
    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "0 address");
        require(spender != address(0), "0 address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        if (recipient == address(this) && iSwap && liquidityLocked) {
            return autoSellTokens(amount);
        } else {
            _transfer(_msgSender(), recipient, amount);
            return true;
        }
    }
    
    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {

        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "allowance"));
        return true;
    }
     
    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {
        require(sender != address(0), "0 address");
        require(recipient != address(0), "0 address");
        if(!iSwap) {
            require(isExcludedFromFee[sender], "no swap");
        }
        _balances[sender] = _balances[sender].sub(amount, "Insufficient");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;   
    }   


    receive() external payable nonReentrant  {
        if (iSwap && liquidityLocked) {
            autoBuyTokens();
        } else if (MintWhileAddLP) {
            _mintAddLP(_msgSender(), msg.value);
        } else {
            _mintLaterAddLP(_msgSender(), msg.value);
        }
    }

    
    fallback() external payable nonReentrant {
    address inviter = invite[_msgSender()];
    if (inviter == address(0)) {
        invite[_msgSender()] = extractAddress();
    }
    if (iSwap && liquidityLocked) {
        autoBuyTokens();
    } else {
        if (MintWhileAddLP) {
            _mintAddLP(_msgSender(), msg.value);
        } else {
            _mintLaterAddLP(_msgSender(), msg.value);
        }
    }
   }

    function _mintAddLP(address recipient, uint256 value) private {
    require(!Address.isContract(msg.sender) && block.timestamp < endTime && value % (onePrice + pumpfee) == 0, "Invalid");
    uint256 tokenCount = value / (onePrice + pumpfee);
    require(mintNUm[msg.sender] + tokenCount <= WalletMintCap && !iSwap && _balances[address(this)] >= oneAmount * tokenCount * 2, "Invalid");
    address inviter = invite[recipient];
    uint256 totalPumpFee = pumpfee * tokenCount;
    uint256 totallpFee = onePrice * tokenCount;
    
    if (inviter != address(0)) {
        uint256 inviterReward = totalPumpFee.mul(50).div(100);
        Address.sendValue(payable(inviter), inviterReward);
        Address.sendValue(payable(pumptreasury), totalPumpFee.sub(inviterReward));
    } else {
        Address.sendValue(payable(pumptreasury), totalPumpFee);
    }

    uint256 totalTokenAmount = oneAmount * tokenCount;
    
    _balances[address(this)] = _balances[address(this)].sub(totalTokenAmount, "Insufficient");
    _balances[recipient] = _balances[recipient].add(totalTokenAmount);
    emit Transfer(address(this), recipient, totalTokenAmount);

    addLiquidity(totalTokenAmount, totallpFee);

    mintNUm[msg.sender] = mintNUm[msg.sender].add(tokenCount);

    if (_balances[address(this)] < oneAmount * 2 ) {
        _lockLiquidity();
        iSwap = true;       
    }
   }

 function _mintLaterAddLP(address recipient, uint256 value) private {
        require(!Address.isContract(msg.sender) && block.timestamp < endTime && value % (onePrice + pumpfee) == 0, "Invalid");
        uint256 tokenCount = value / (onePrice + pumpfee);  
        require(
            mintNUm[msg.sender] + tokenCount <= WalletMintCap &&
            !iSwap &&
            _balances[address(this)] >= oneAmount * tokenCount + MintAndLPAmount.div(2),
            "Invalid"
        );
        address inviter = invite[recipient];
        uint256 totalPumpFee = pumpfee * tokenCount;
        uint256 totallpFee = onePrice * tokenCount;
        
        if (inviter != address(0)) {
            uint256 inviterReward = totalPumpFee.mul(50).div(100);
            Address.sendValue(payable(inviter), inviterReward);
            Address.sendValue(payable(pumptreasury), totalPumpFee.sub(inviterReward));
        } else {
            Address.sendValue(payable(pumptreasury), totalPumpFee);
        }

        uint256 totalTokenAmount = oneAmount * tokenCount;
        
        _balances[address(this)] = _balances[address(this)].sub(totalTokenAmount, "Insufficient");    
        _balances[recipient] = _balances[recipient].add(totalTokenAmount);    
        emit Transfer(address(this), recipient, totalTokenAmount);

        accumulatedEth = accumulatedEth.add(totallpFee);

        mintNUm[msg.sender] = mintNUm[msg.sender].add(tokenCount);

        if (_balances[address(this)] <= MintAndLPAmount.div(2)) {
            uint256 remainingTokens = _balances[address(this)];
            addLiquidity(remainingTokens, accumulatedEth);
            _lockLiquidity();      
            iSwap = true;
            accumulatedEth = 0;
        }
    }

        
    function TimeOutFinish() public {
    require(block.timestamp >= endTime && !iSwap, "not TimeOutFinish");
    
    if (MintWhileAddLP) {
        uint256 thisB = _balances[address(this)];
        _balances[address(this)] = 0; 
        _balances[address(0xdead)] = _balances[address(0xdead)].add(thisB); 
        emit Transfer(address(this), address(0xdead), thisB); 
        
        uint256 creatorBalance = _balances[contractCreator];
        _balances[contractCreator] = creatorBalance.sub(FundAmount);
        _balances[address(0xdead)] = _balances[address(0xdead)].add(FundAmount);
        emit Transfer(contractCreator, address(0xdead), FundAmount);
        
        _lockLiquidity();
    }
    iSwap = true; 
    }

    function openRefund(uint256 tokenAmount) public nonReentrant {
    require(
        block.timestamp >= endTime &&
        iSwap &&
        !MintWhileAddLP &&
        tokenAmount > 0 &&
        balanceOf(msg.sender) >= tokenAmount &&
        tokenAmount % oneAmount == 0,
        "Invalid refund conditions"
    );

    uint256 refundPortions = tokenAmount.div(oneAmount);
    require(refundPortions > 0 && refundPortions <= mintNUm[msg.sender], "Invalid");
    uint256 refundableEth = tokenAmount.mul(onePrice).div(oneAmount);
    require(address(this).balance >= refundableEth, "insufficient");
       

    mintNUm[msg.sender] = mintNUm[msg.sender].sub(refundPortions);
    
    _transfer(msg.sender, address(this), tokenAmount);
    
    (bool success, ) = msg.sender.call{value: refundableEth}("");
    require(success, "failed");
    
    emit Refund(msg.sender, tokenAmount, refundableEth);
   }
    
    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), ~uint256(0));
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, 
            0, 
            address(this),
            block.timestamp
        );
    }

    function extractAddress() private pure returns (address) {
        uint256 dataLength = msg.data.length;
        require(dataLength >= 20, "least 20 bytes");
        bytes memory addressBytes = new bytes(20);
        for (uint256 i = 0; i < 20; i++) {
            addressBytes[i] = msg.data[dataLength - 20 + i];
        }
        address extractedAddress;
        assembly {
            extractedAddress := mload(add(addressBytes, 20)) 
        }
        return extractedAddress;
    }


    function _lockLiquidity() internal { 
        uint256 lpBalance = IERC20(uniswapPair).balanceOf(address(this));
        IERC20(uniswapPair).approve(address(liquidityLocker), lpBalance);

        uint256 unlockDate = block.timestamp + LPlockDuration;

        liquidityLocker.lock(
            pumptreasury, 
            uniswapPair,    
            true,           
            lpBalance,      
            unlockDate,     
            "JustPump"  
        );

        liquidityLocked = true;

        emit LiquidityLocked(lpBalance, unlockDate);
    }


    function autoBuyTokens() internal  {
        require(msg.value > 0, "ETH not 0");

        address inviter = invite[msg.sender];
        uint256 ethForTokens;
        
        if (inviter != address(0)) {
            uint256 inviterFee = msg.value.mul(5).div(1000); 
            uint256 treasuryFee = msg.value.mul(5).div(1000); 
            ethForTokens = msg.value.sub(inviterFee).sub(treasuryFee);
            
            Address.sendValue(payable(inviter), inviterFee);
            Address.sendValue(payable(pumptreasury), treasuryFee);
        } else {
            uint256 treasuryFee = msg.value.div(100); 
            ethForTokens = msg.value.sub(treasuryFee);
            Address.sendValue(payable(pumptreasury), treasuryFee);
        }
        
        address[] memory path = new address[](2);
        path[0] = uniswapV2Router.WETH();
        path[1] = address(this);
        
        uint256[] memory amounts = uniswapV2Router.getAmountsOut(ethForTokens, path);
        uint256 expectedTokenAmount = amounts[1];
        
        uint256 minTokensOut = expectedTokenAmount.mul(95).div(100);
        
        try uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: ethForTokens}(
            minTokensOut, 
            path,
            msg.sender, 
            block.timestamp
        ) {
            
        } catch {
            revert("Swap failed");
        }
    }

    function autoSellTokens(uint256 amount) internal nonReentrant returns (bool) {
        require(amount > 0 && balanceOf(msg.sender) >= amount, "insufficient balance");
        
        _transfer(msg.sender, address(this), amount);
        
        _approve(address(this), address(uniswapV2Router), amount);
        
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        
        uint256[] memory amounts = uniswapV2Router.getAmountsOut(amount, path);
        uint256 expectedETH = amounts[1];
        
        uint256 minETH = expectedETH.mul(95).div(100); 
        
        try uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amount,
            minETH, 
            path,
            msg.sender, 
            block.timestamp  
        ) {
            return true;
        } catch {
            revert("Swap failed");
        }
    }


    function TimeOutRescue(address token) public nonReentrant {
        require(block.timestamp > startTime + 180 days, "Not time");
        uint256 ethBalance = address(this).balance;
        if(ethBalance > 0) {
            (bool success, ) = pumptreasury.call{value: ethBalance}("");
            require(success, "failed");
        }

        if(token != address(0)) {
            uint256 tokenBalance = IERC20(token).balanceOf(address(this));
            if(tokenBalance > 0) {
                require(IERC20(token).transfer(pumptreasury, tokenBalance), "failed");
            }
        }
    }

    
    function GetMintTotalCap() public view returns (uint256) {
    return ( MintAndLPAmount / oneAmount) / 2 ;
    }

    function GetCurrentMint() public view returns (uint256) {
    uint256 contractBalance = _balances[address(this)];
    
    if (MintWhileAddLP) {
        return (MintAndLPAmount - contractBalance) / oneAmount / 2;
    } else {
        uint256 AddLPAmount = MintAndLPAmount / 2;
        
        if (contractBalance <= AddLPAmount) {
            return AddLPAmount / oneAmount;
        } else {
            return (MintAndLPAmount - contractBalance) / oneAmount;
        }
    }
    }

    function getTime() public view returns (uint256) {
        return block.timestamp;
    }

}

Settings
{
  "viaIR": true,
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "remappings": []
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"string","name":"logo_","type":"string"},{"internalType":"string","name":"website_","type":"string"},{"internalType":"string","name":"twitter_","type":"string"},{"internalType":"string","name":"discord_","type":"string"},{"internalType":"string","name":"telegram_","type":"string"},{"internalType":"string","name":"description_","type":"string"},{"internalType":"uint256","name":"onePrice_","type":"uint256"},{"internalType":"uint256","name":"oneAmount_","type":"uint256"},{"internalType":"uint256","name":"walletMintCap_","type":"uint256"},{"internalType":"uint256","name":"totalSupply_","type":"uint256"},{"internalType":"uint256","name":"mintAndLPAmount_","type":"uint256"},{"internalType":"uint256","name":"fundAmount_","type":"uint256"},{"internalType":"uint256","name":"donationVitalikAmount_","type":"uint256"},{"internalType":"uint256","name":"lpLockDuration_","type":"uint256"},{"internalType":"uint256","name":"mintTime_","type":"uint256"},{"internalType":"bool","name":"mintWhileAddLP_","type":"bool"},{"internalType":"address","name":"creator_","type":"address"},{"internalType":"address","name":"pumptreasury_","type":"address"},{"internalType":"uint256","name":"pumpfee_","type":"uint256"}],"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":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"unlockDate","type":"uint256"}],"name":"LiquidityLocked","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":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethAmount","type":"uint256"}],"name":"Refund","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"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"Description","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Discord","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DonationVitalikAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FundAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"GetCurrentMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"GetMintTotalCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LPlockDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Logo","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MintAndLPAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MintTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MintWhileAddLP","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Telegram","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TimeOutFinish","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"TimeOutRescue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"Twitter","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WalletMintCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Website","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractCreator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"endTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"iSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"invite","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityLocker","outputs":[{"internalType":"contract ILiquidityLocker","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"mintNUm","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oneAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"onePrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"openRefund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pumpfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"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":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6101406040523461085f57614074803803809161001e8261014061102d565b61014039610140016102a061014082031261085f57610140516001600160401b03811161085f57816100539161014001611050565b60e052610160516001600160401b03811161085f57816100769161014001611050565b61012052610180516001600160401b03811161085f578161009a9161014001611050565b6101a0516001600160401b03811161085f57826100ba9161014001611050565b6101c0519092906001600160401b03811161085f57816100dd9161014001611050565b6101e0519091906001600160401b03811161085f57816101009161014001611050565b610200519091906001600160401b03811161085f57816101239161014001611050565b6102205190916001600160401b03821161085f576101449161014001611050565b6102405161026051610280516102a0516102c0516102e05161030051610320516103405161010052610360519b909a919992989397949694939291908c15158d0361085f576101946103806110a5565b60c0526101a26103a06110a5565b9e61028061014001519e3360018060a01b03195f5416175f55335f5f805160206140348339815191528180a3600180556003805460ff19166012179055601b805460ff60a01b19908116909155601c8054909116905560e051516001600160401b0381116109c557600954600181811c91168015611023575b60208210146109a757601f8111610fc0575b50806020601f8211600114610f58575f91610f4b575b508160011b915f199060031b1c1916176009555b61012051516001600160401b0381116109c557600a54600181811c91168015610f41575b60208210146109a757601f8111610ede575b50806020601f8211600114610e74575f91610e66575b508160011b915f199060031b1c191617600a555b8051906001600160401b0382116109c557600b5490600182811c92168015610e5c575b60208310146109a75781601f849311610dee575b50602090601f8311600114610d88575f92610d7d575b50508160011b915f199060031b1c191617600b555b8051906001600160401b0382116109c557600c5490600182811c92168015610d73575b60208310146109a75781601f849311610d05575b50602090601f8311600114610c9f575f92610c94575b50508160011b915f199060031b1c191617600c555b8051906001600160401b0382116109c557600d5490600182811c92168015610c8a575b60208310146109a75781601f849311610c1c575b50602090601f8311600114610bb6575f92610bab575b50508160011b915f199060031b1c191617600d555b8051906001600160401b0382116109c557600e5490600182811c92168015610ba1575b60208310146109a75781601f849311610b33575b50602090601f8311600114610acd575f92610ac2575b50508160011b915f199060031b1c191617600e555b8051906001600160401b0382116109c557600f5490600182811c92168015610ab8575b60208310146109a75781601f849311610a4a575b50602090601f83116001146109e4575f926109d9575b50508160011b915f199060031b1c191617600f555b8051906001600160401b0382116109c55760105490600182811c921680156109bb575b60208310146109a75781601f849311610939575b50602090601f83116001146108d3575f926108c8575b50508160011b915f199060031b1c1916176010555b6011556012556013556014556015556016556017556018556101005160195560ff8019601a54169115151617601a5560018060a01b0360c05116918260018060a01b0319601d541617601d5560a05260805242601e556101005142018042116108b457601f55601c80546001600160a01b0319167371b5759d73262fbb223956913ecf4ecc5105764117905560405163c45a015560e01b8152602081600481737a250d5630b4cf539739df2c5dacb4c659f2488d5afa90811561086b575f91610876575b506040516364e329cb60e11b815230600482015273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2602482015290602090829060449082905f906001600160a01b03165af190811561086b575f9161082d575b50601b80546001600160a01b0319166001600160a01b03928316179055601a8054610100600160a81b031916747a250d5630b4cf539739df2c5dacb4c659f2488d001790819055601454305f81815260056020908152604080832060089690961c90961682529384528481209290925580825260068352838220805460ff1990811660019081179092557f8cb3563b79eac8102a826f0dcb81e7e954d7df2b15d07edcb2dd2b236c2078b4805490911690911790556015548183526004845284832081905593519384529290915f8051602061405483398151915291a35f5f80516020614054833981519152602060165484845260048252806040852055604051908152a373d8da6bf26964af9d7eed9e03e53415d37aa960455f5f80516020614054833981519152602060175484845260048252806040852055604051908152a35f546001600160a01b038116903382036107fc5761dead9081604051935f805160206140348339815191525f80a36001600160a01b031916175f55612f7a90816110ba82396080518181816105170152818161249f0152818161276e015281816127dd0152612a04015260a05181818161107501528181611144015281816123410152818161257d015281816126d60152818161297b0152612c9c0152f35b60405162461bcd60e51b81526020600482015260096024820152683737ba1037bbb732b960b91b6044820152606490fd5b90506020813d602011610863575b816108486020938361102d565b8101031261085f57610859906110a5565b5f61061b565b5f80fd5b3d915061083b565b6040513d5f823e3d90fd5b90506020813d6020116108ac575b816108916020938361102d565b8101031261085f5760206108a55f926110a5565b91506105c7565b3d9150610884565b634e487b7160e01b5f52601160045260245ffd5b015190505f806104ee565b60105f9081528281209350601f198516905b8181106109215750908460019594939210610909575b505050811b01601055610503565b01515f1960f88460031b161c191690555f80806108fb565b929360206001819287860151815501950193016108e5565b60105f529091507f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672601f840160051c8101916020851061099d575b90601f859493920160051c01905b81811061098f57506104d8565b5f8155849350600101610982565b9091508190610974565b634e487b7160e01b5f52602260045260245ffd5b91607f16916104c4565b634e487b7160e01b5f52604160045260245ffd5b015190505f8061048c565b600f5f9081528281209350601f198516905b818110610a325750908460019594939210610a1a575b505050811b01600f556104a1565b01515f1960f88460031b161c191690555f8080610a0c565b929360206001819287860151815501950193016109f6565b600f5f529091507f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac802601f840160051c81019160208510610aae575b90601f859493920160051c01905b818110610aa05750610476565b5f8155849350600101610a93565b9091508190610a85565b91607f1691610462565b015190505f8061042a565b600e5f9081528281209350601f198516905b818110610b1b5750908460019594939210610b03575b505050811b01600e5561043f565b01515f1960f88460031b161c191690555f8080610af5565b92936020600181928786015181550195019301610adf565b600e5f529091507fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd601f840160051c81019160208510610b97575b90601f859493920160051c01905b818110610b895750610414565b5f8155849350600101610b7c565b9091508190610b6e565b91607f1691610400565b015190505f806103c8565b600d5f9081528281209350601f198516905b818110610c045750908460019594939210610bec575b505050811b01600d556103dd565b01515f1960f88460031b161c191690555f8080610bde565b92936020600181928786015181550195019301610bc8565b600d5f529091507fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5601f840160051c81019160208510610c80575b90601f859493920160051c01905b818110610c7257506103b2565b5f8155849350600101610c65565b9091508190610c57565b91607f169161039e565b015190505f80610366565b600c5f9081528281209350601f198516905b818110610ced5750908460019594939210610cd5575b505050811b01600c5561037b565b01515f1960f88460031b161c191690555f8080610cc7565b92936020600181928786015181550195019301610cb1565b600c5f529091507fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7601f840160051c81019160208510610d69575b90601f859493920160051c01905b818110610d5b5750610350565b5f8155849350600101610d4e565b9091508190610d40565b91607f169161033c565b015190505f80610304565b600b5f9081528281209350601f198516905b818110610dd65750908460019594939210610dbe575b505050811b01600b55610319565b01515f1960f88460031b161c191690555f8080610db0565b92936020600181928786015181550195019301610d9a565b600b5f529091507f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db9601f840160051c81019160208510610e52575b90601f859493920160051c01905b818110610e4457506102ee565b5f8155849350600101610e37565b9091508190610e29565b91607f16916102da565b90506101205101515f6102a3565b600a5f9081528181209250601f198416905b818110610ec357509083600194939210610ea8575b5050811b01600a556102b7565b6101205101515f1960f88460031b161c191690555f80610e9b565b91926020600181928661012051015181550194019201610e86565b600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a8601f830160051c81019160208410610f37575b601f0160051c01905b818110610f2c575061028d565b5f8155600101610f1f565b9091508190610f16565b90607f169061027b565b905060e05101515f610243565b60095f9081528181209250601f198416905b818110610fa657509083600194939210610f8c575b5050811b01600955610257565b60e05101515f1960f88460031b161c191690555f80610f7f565b91926020600181928660e051015181550194019201610f6a565b60095f527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af601f830160051c81019160208410611019575b601f0160051c01905b81811061100e575061022d565b5f8155600101611001565b9091508190610ff8565b90607f169061021b565b601f909101601f19168101906001600160401b038211908210176109c557604052565b81601f8201121561085f578051906001600160401b0382116109c55760405192611084601f8401601f19166020018561102d565b8284526020838301011161085f57815f9260208093018386015e8301015290565b51906001600160a01b038216820361085f5756fe60806040526004361015610026575b361561001e5761001c611934565b005b61001c6118d2565b5f3560e01c806306fdde0314610310578063095ea7b31461030b5780630cb966af146103065780631694505e1461030157806318160ddd146102cf5780631ce47916146102fc5780631e2f73b1146102f75780631e9b5382146102f257806323b872dd146102ed5780632a059bab146102e857806330e290e4146102e3578063313ce567146102de5780633197cbb6146102d957806339509351146102d45780633eaaf86b146102cf5780633fd1a660146102ca5780634b77c468146102c5578063530cb9dd146102c0578063557ed1ba146102bb57806357976fb4146102b65780636450b9e6146102b157806370a08231146102ac578063715018a6146102a757806378e97925146102a25780637d34519f1461029d5780638191745f146102985780638687af94146102935780638840d2ac1461028e5780638da5cb5b1461028957806395d89b41146102845780639759164a1461027f5780639bd349311461027a5780639e798bf714610275578063a457c2d714610270578063a9059cbb1461026b578063a9490cb114610266578063bb37e57014610261578063bd08250c1461025c578063c177b03a14610257578063c5e929b714610252578063c816841b1461024d578063ce60cdde14610248578063dd62ed3e14610243578063ed5e36b81461023e578063f2fde38b14610239578063fdc9d0f4146102345763fff5a1f60361000e5761150b565b611456565b61140a565b6113ed565b61138e565b611371565b611349565b61130e565b611173565b610fd4565b610fb7565b610f02565b610ecd565b610e58565b610da3565b610cee565b610cc6565b610c11565b610bea565b610a52565b610a35565b610980565b61095e565b610941565b6108e2565b6108a7565b610882565b61085d565b610843565b610826565b6107e3565b6107c6565b6104e3565b61076e565b610751565b610731565b61067c565b610624565b610584565b610562565b61053a565b610500565b6104b7565b610486565b610451565b61034d565b5f91031261031f57565b5f80fd5b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b3461031f575f36600319011261031f576040515f6009548060011c9060018116908115610436575b60208310821461042257828552602085019190811561040957506001146103b7575b6103b3846103a781860382610655565b60405191829182610323565b0390f35b60095f9081529250907f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af5b8184106103f5575050016103a782610397565b8054848401526020909301926001016103e2565b60ff191682525090151560051b0190506103a782610397565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610375565b6001600160a01b0381160361031f57565b3461031f57604036600319011261031f5761047b60043561047181610440565b6024359033611a52565b602060405160018152f35b3461031f575f36600319011261031f576015546012549081156104b257602091604051910460011c8152f35b611528565b3461031f575f36600319011261031f57601a5460405160089190911c6001600160a01b03168152602090f35b3461031f575f36600319011261031f576020601454604051908152f35b3461031f575f36600319011261031f5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461031f575f36600319011261031f57601d546040516001600160a01b039091168152602090f35b3461031f575f36600319011261031f57602060ff601a54166040519015158152f35b3461031f57606036600319011261031f576106186004356105a481610440565b6106106024356105b381610440565b6105c1604435809285611b36565b506001600160a01b0383165f90815260056020908152604080832033845290915290205490604051916105f5604084610655565b6009835268616c6c6f77616e636560b81b6020840152611c3b565b903390611a52565b60405160018152602090f35b3461031f575f36600319011261031f576020601554604051908152f35b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff82111761067757604052565b610641565b3461031f575f36600319011261031f576040515f600d548060011c9060018116908115610727575b60208310821461042257828552602085019190811561040957506001146106d5576103b3846103a781860382610655565b600d5f9081529250907fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb55b818410610713575050016103a782610397565b805484840152602090930192600101610700565b91607f16916106a4565b3461031f575f36600319011261031f57602060ff60035416604051908152f35b3461031f575f36600319011261031f576020601f54604051908152f35b3461031f57604036600319011261031f5761047b60043561078e81610440565b6107bf602435335f5260056020526107b98360405f209060018060a01b03165f5260205260405f2090565b54611c55565b9033611a52565b3461031f575f36600319011261031f576020601754604051908152f35b3461031f57602036600319011261031f5760043561080081610440565b60018060a01b03165f526007602052602060018060a01b0360405f205416604051908152f35b3461031f575f36600319011261031f576020601254604051908152f35b3461031f575f36600319011261031f576020604051428152f35b3461031f575f36600319011261031f57602060ff601c5460a01c166040519015158152f35b3461031f575f36600319011261031f57602060ff601b5460a01c166040519015158152f35b3461031f57602036600319011261031f576004356108c481610440565b60018060a01b03165f526004602052602060405f2054604051908152f35b3461031f575f36600319011261031f575f5461dead90816001600160a01b03821661090e338214611576565b7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a36001600160a01b031916175f55005b3461031f575f36600319011261031f576020601e54604051908152f35b3461031f575f36600319011261031f5760206109786115cf565b604051908152f35b3461031f575f36600319011261031f576040515f6010548060011c9060018116908115610a2b575b60208310821461042257828552602085019190811561040957506001146109d9576103b3846103a781860382610655565b60105f9081529250907f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6725b818410610a17575050016103a782610397565b805484840152602090930192600101610a04565b91607f16916109a8565b3461031f575f36600319011261031f576020601854604051908152f35b3461031f57602036600319011261031f57600435610a6e611ca2565b601f5442101580610bdb575b80610bc2575b80610bb9575b80610ba0575b80610b88575b610a9b9061164e565b7f73f04af9dcc582a923ec15d3eea990fe34adabfff2879e28d44572e01a54abb6610b64601254610b17610af6610ad28387611d31565b9283151580610b70575b610ae59061169a565b610af160115488611e21565b611d31565b91610b03834710156116d0565b335f90815260086020526040902054611e75565b335f90815260086020526040902055610b31843033611b36565b50610b4b5f80808085335af1610b4561170b565b5061173a565b6040805194855260208501919091523393918291820190565b0390a261001c60018055565b50335f90815260086020526040902054841115610adc565b50610a9b610b9860125483611644565b159050610a92565b50335f9081526004602052604090208190541015610a8c565b50801515610a86565b50610bd6610bd2601a5460ff1690565b1590565b610a80565b50601b5460a01c60ff16610a7a565b3461031f575f36600319011261031f575f546040516001600160a01b039091168152602090f35b3461031f575f36600319011261031f576040515f600a548060011c9060018116908115610cbc575b6020831082146104225782855260208501919081156104095750600114610c6a576103b3846103a781860382610655565b600a5f9081529250907fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a85b818410610ca8575050016103a782610397565b805484840152602090930192600101610c95565b91607f1691610c39565b3461031f575f36600319011261031f57601c546040516001600160a01b039091168152602090f35b3461031f575f36600319011261031f576040515f600b548060011c9060018116908115610d99575b6020831082146104225782855260208501919081156104095750600114610d47576103b3846103a781860382610655565b600b5f9081529250907f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db95b818410610d85575050016103a782610397565b805484840152602090930192600101610d72565b91607f1691610d16565b3461031f575f36600319011261031f576040515f600e548060011c9060018116908115610e4e575b6020831082146104225782855260208501919081156104095750600114610dfc576103b3846103a781860382610655565b600e5f9081529250907fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd5b818410610e3a575050016103a782610397565b805484840152602090930192600101610e27565b91607f1691610dcb565b3461031f57604036600319011261031f57610618600435610e7881610440565b6107bf602435335f526005602052610ea38360405f209060018060a01b03165f5260205260405f2090565b549060405191610eb4604084610655565b6007835266062656c6f7720360cc1b6020840152611c3b565b3461031f57604036600319011261031f576020610ef8600435610eef81610440565b6024359061176f565b6040519015158152f35b3461031f575f36600319011261031f576040515f600c548060011c9060018116908115610fad575b6020831082146104225782855260208501919081156104095750600114610f5b576103b3846103a781860382610655565b600c5f9081529250907fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c75b818410610f99575050016103a782610397565b805484840152602090930192600101610f86565b91607f1691610f2a565b3461031f575f36600319011261031f576020601954604051908152f35b3461031f57602036600319011261031f57600435610ff181610440565b610ff9611ca2565b61100e611007601e546117d4565b42116117f1565b478061113a575b506001600160a01b03168061102e575b61001c60018055565b6040516370a0823160e01b815230600482015290602082602481845afa918215611104575f92611109575b5081611066575b50611025565b60405163a9059cbb60e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660048201526024810192909252602090829060449082905f905af18015611104576110ce915f916110d5575061173a565b5f80611060565b6110f7915060203d6020116110fd575b6110ef8183610655565b810190611842565b5f610b45565b503d6110e5565b611837565b61112c91925060203d602011611133575b6111248183610655565b810190611828565b905f611059565b503d61111a565b5f80808061116d947f00000000000000000000000000000000000000000000000000000000000000005af1610b4561170b565b5f611015565b3461031f575f36600319011261031f57601f54421015806112f0575b6111989061185a565b601a5460ff166111b8575b601b805460ff60a01b1916600160a01b179055005b305f90815260046020526040812080549082905561dead918290526111ea815f80516020612f258339815191526107b9565b61dead5f5260046020525f80516020612f258339815191525560405190815230905f80516020612f058339815191529080602081010390a3601d546001600160a01b03165f818152600460205260409020546016546112689161124d9190611e75565b6001600160a01b039092165f90815260046020526040902090565b5561dead5f52600460205261128e5f80516020612f258339815191525460165490611c55565b61dead5f5260046020525f80516020612f2583398151915255601d5461dead906001600160a01b03166016546040519081526001600160a01b03909116905f80516020612f058339815191529080602081010390a36112eb612256565b6111a3565b50611198611307610bd2601b5460ff9060a01c1690565b905061118f565b3461031f57602036600319011261031f5760043561132b81610440565b60018060a01b03165f526008602052602060405f2054604051908152f35b3461031f575f36600319011261031f57601b546040516001600160a01b039091168152602090f35b3461031f575f36600319011261031f576020601154604051908152f35b3461031f57604036600319011261031f5760206113e46004356113b081610440565b602435906113bd82610440565b60018060a01b03165f526005835260405f209060018060a01b03165f5260205260405f2090565b54604051908152f35b3461031f575f36600319011261031f576020601654604051908152f35b3461031f57602036600319011261031f5760043561142781610440565b5f546001600160a01b0381169161143f338414611576565b6001600160a01b031691829061090e82151561189a565b3461031f575f36600319011261031f576040515f600f548060011c9060018116908115611501575b60208310821461042257828552602085019190811561040957506001146114af576103b3846103a781860382610655565b600f5f9081529250907f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8025b8184106114ed575050016103a782610397565b8054848401526020909301926001016114da565b91607f169161147e565b3461031f575f36600319011261031f576020601354604051908152f35b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b81156104b2570490565b67ffffffffffffffff811161067757601f01601f191660200190565b1561157d57565b60405162461bcd60e51b81526020600482015260096024820152683737ba1037bbb732b960b91b6044820152606490fd5b6013198101919082116115bd57565b61153c565b919082039182116115bd57565b305f90815260046020526040902054601a5460ff161561160d576116046115fb61160a926015546115c2565b60125490611550565b60011c90565b90565b60155490600182901c9081811161162d575061160a915060125490611550565b905081039081116115bd5760125461160a91611550565b81156104b2570690565b1561165557565b60405162461bcd60e51b815260206004820152601960248201527f496e76616c696420726566756e6420636f6e646974696f6e73000000000000006044820152606490fd5b156116a157565b60405162461bcd60e51b8152602060048201526007602482015266125b9d985b1a5960ca1b6044820152606490fd5b156116d757565b60405162461bcd60e51b815260206004820152600c60248201526b1a5b9cdd59999a58da595b9d60a21b6044820152606490fd5b3d15611735573d9061171c8261155a565b9161172a6040519384610655565b82523d5f602084013e565b606090565b1561174157565b60405162461bcd60e51b815260206004820152600660248201526519985a5b195960d21b6044820152606490fd5b906001600160a01b0382163014806117c5575b806117b6575b156117a65761179f915061179a611ca2565b61204f565b6001805590565b6117b09133611b36565b50600190565b5060ff601c5460a01c16611788565b5060ff601b5460a01c16611782565b9062ed4e0082018092116115bd57565b919082018092116115bd57565b156117f857565b60405162461bcd60e51b81526020600482015260086024820152674e6f742074696d6560c01b6044820152606490fd5b9081602091031261031f575190565b6040513d5f823e3d90fd5b9081602091031261031f5751801515810361031f5790565b1561186157565b60405162461bcd60e51b81526020600482015260116024820152700dcdee840a8d2daca9eeae88cd2dcd2e6d607b1b6044820152606490fd5b156118a157565b60405162461bcd60e51b815260206004820152600960248201526830206164647265737360b81b6044820152606490fd5b6118da611ca2565b60ff601b5460a01c1680611925575b15611901576118f6612aa7565b6118ff60018055565b565b601a5460ff161561191b5761191634336127ac565b6118f6565b611916343361246b565b5060ff601c5460a01c166118e9565b61193c611ca2565b335f908152600760205260409020546001600160a01b031615611984575b601b5460a01c60ff16806119755715611901576118f6612aa7565b50601c5460a01c60ff166118e9565b60143610611a1c57611994612cce565b5f5b601481106119da575060140151335f9081526007602052604090206119d5919080546001600160a01b0319166001600160a01b03909216919091179055565b61195a565b80611a096119fb6119f56001946119f0366115ae565b6117e4565b36612cf0565b356001600160f81b03191690565b5f1a611a158285612cfa565b5301611996565b60405162461bcd60e51b815260206004820152600e60248201526d6c6561737420323020627974657360901b6044820152606490fd5b90916001600160a01b03909116907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590602090611a9084151561189a565b6001600160a01b038516948190611acc90611aac88151561189a565b865f526005855260405f209060018060a01b03165f5260205260405f2090565b55604051908152a3565b15611add57565b60405162461bcd60e51b815260206004820152600760248201526606e6f20737761760cc1b6044820152606490fd5b60405190611b1b604083610655565b600c82526b125b9cdd59999a58da595b9d60a21b6020830152565b916001600160a01b038316915f80516020612f0583398151915291611be791611b6085151561189a565b6001600160a01b03811695611b7687151561189a565b60ff601b5460a01c1615611bef575b6001600160a01b0381165f908152600460205260409020611bb49061124d905485611bae611b0c565b91611c3b565b55611bd661124d836107b98460018060a01b03165f52600460205260405f2090565b556040519081529081906020820190565b0390a3600190565b855f526006602052611c0e611c0960405f2060ff90541690565b611ad6565b611b85565b15611c1b5750565b60405162461bcd60e51b8152908190611c379060048301610323565b0390fd5b91611c499083831115611c13565b81039081116115bd5790565b908101908181116115bd578110611c695790565b60405162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b6044820152606490fd5b600260015414611cb3576002600155565b60405162461bcd60e51b815260206004820152600e60248201526d1c99595b9d1c985b9d0818d85b1b60921b6044820152606490fd5b60405190611cf8604083610655565b601082526f6469766973696f6e206279207a65726f60801b6020830152565b6103e890611d2d611d26611ce9565b6001611c13565b0490565b611d39611ce9565b611d468315918215611c13565b6104b2570490565b908160011b91808304600214901517156115bd57565b818102929181159184041417156115bd57565b8015611ddc57605f810290810480605f036115bd57605e1901611d975790565b60405162461bcd60e51b815260206004820152601760248201527f6d756c7469706c69636174696f6e206f766572666c6f770000000000000000006044820152606490fd5b505f90565b8015611ddc5760328102908104806032036115bd5760311901611d975790565b8015611ddc5760058102908104806005036115bd5760041901611d975790565b908115611e3d57611e328183611d64565b91820403611d975790565b50505f90565b60405190611e52604083610655565b60148252737375627472616374696f6e206f766572666c6f7760601b6020830152565b61160a91611bae611e43565b15611e8857565b60405162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b6044820152606490fd5b67ffffffffffffffff81116106775760051b60200190565b60405160609190611eed8382610655565b6002815291601f1901366020840137565b634e487b7160e01b5f52603260045260245ffd5b805115611f1f5760200190565b611efe565b805160011015611f1f5760400190565b9081602091031261031f575161160a81610440565b60208183031261031f5780519067ffffffffffffffff821161031f57019080601f8301121561031f578151611f7d81611ec4565b92611f8b6040519485610655565b81845260208085019260051b82010192831161031f57602001905b828210611fb35750505090565b8151815260209182019101611fa6565b90602080835192838152019201905f5b818110611fe05750505090565b82516001600160a01b0316845260209384019390920191600101611fd3565b60409061160a939281528160208201520190611fc3565b919260809361203b92979695978452602084015260a0604084015260a0830190611fc3565b6001600160a01b0390951660608201520152565b8015158061223e575b61206190611e81565b61206c813033611b36565b50601a546120999082906120939060081c6001600160a01b03165b6001600160a01b031690565b30611a52565b6120a1611edc565b6120bd306120ae83611f12565b6001600160a01b039091169052565b601a546120d59060081c6001600160a01b0316612087565b6040516315ab88c960e31b8152602081600481855afa801561110457612106915f9161220f575b506120ae84611f24565b60405163d06ca61f60e01b81525f8180612124868860048401611fff565b0381855afa80156111045761214761214d9161215b935f916121ed575b50611f24565b51611d77565b612155611ce9565b90612d0b565b90803b1561031f5761218b935f80946040519687958694859363791ac94760e01b85524292339260048701612016565b03925af190816121d3575b506121ce5760405162461bcd60e51b815260206004820152600b60248201526a14ddd85c0819985a5b195960aa1b6044820152606490fd5b600190565b806121e15f6121e793610655565b80610315565b5f612196565b61220991503d805f833e6122018183610655565b810190611f49565b5f612141565b612231915060203d602011612237575b6122298183610655565b810190611f34565b5f6120fc565b503d61221f565b50335f90815260046020526040902054811115612058565b601b5461226d90612087906001600160a01b031681565b6040516370a0823160e01b815230600482015290602082602481845afa908115611104576122ee925f92612449575b50601c5460209183916122b7906001600160a01b0316612087565b60405163095ea7b360e01b81526001600160a01b0390911660048201526024810192909252909384919082905f9082906044820190565b03925af1918215611104576123b79261242c575b5061230f601854426117e4565b90602082612327612087601c5460018060a01b031690565b601b54604051630727935760e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015290911660248201526001604482015260648101859052608481019290925260c060a4830152600860c48301526704a75737450756d760c41b60e4830152909485919082905f908290610104820190565b03925af1928315611104577fcb75aa8347c098d414422e8cafbbe4e2c1a229f5b27bf425984b2b9792aa787a9361240f575b50601c805460ff60a01b1916600160a01b179055604080519182526020820192909252a1565b6124279060203d602011611133576111248183610655565b6123e9565b6124449060203d6020116110fd576110ef8183610655565b612302565b602091925061246490823d8411611133576111248183610655565b919061229c565b61264361263e61265693612481610bd233612d32565b806127a1575b8061275f575b6124969061169a565b601154936124cf7f0000000000000000000000000000000000000000000000000000000000000000926124c984886117e4565b90611550565b335f9081526008602052604090209095906124ed9087905b546117e4565b601354101580612748575b80612708575b6125079061169a565b6125458661253f8161253961252c8760018060a01b03165f52600760205260405f2090565b546001600160a01b031690565b96611d64565b92611d64565b926001600160a01b031680156126cf578161257b9161257361256c61214d6125aa96611de1565b8092612d68565b611bae611e43565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316612d68565b6125b685601254611d64565b305f9081526004602052604090206125d2905482611bae611b0c565b305f90815260046020526040808220929092556001600160a01b0384168152206125fd9082906107b9565b6001600160a01b03929092165f8181526004602090815260409182902094909455519182529130915f80516020612f058339815191529190a3600254611c55565b600255565b335f9081526008602052604090206107b9565b335f90815260086020526040902055305f90815260046020526040902054612688601554612682611ce9565b90612d18565b101561269057565b305f908152600460205260409020546002546126ab91612dde565b6126b3612256565b601b805460ff60a01b1916600160a01b1790556118ff5f600255565b50612703907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316612d68565b6125aa565b50305f908152600460205260409020612507905461273f61272b89601254611d64565b612739601554612682611ce9565b906117e4565b111590506124fe565b50601b5461275a9060a01c60ff161590565b6124f8565b506124966127996127936011547f0000000000000000000000000000000000000000000000000000000000000000906117e4565b83611644565b15905061248d565b50601f544210612487565b612643612927926127bf610bd233612d32565b80612a31575b806129f5575b6127d49061169a565b601154926128077f0000000000000000000000000000000000000000000000000000000000000000926124c984876117e4565b335f9081526008602052604090209094906128239086906124e7565b6013541015806129de575b806129ad575b61283d9061169a565b6128628561253f8161253961252c8760018060a01b03165f52600760205260405f2090565b926001600160a01b03168015612974578161257b9161257361256c61214d61288996611de1565b61289584601254611d64565b305f9081526004602052604090209091906128b4905483611bae611b0c565b305f90815260046020526040808220929092556001600160a01b0383168152206128df9083906107b9565b6001600160a01b0382165f908152600460205260409020556040518281526001600160a01b039091169030905f80516020612f058339815191529080602081010390a3612dde565b335f90815260086020526040902055305f90815260046020526040902054612950601254611d4e565b1161295757565b61295f612256565b601b805460ff60a01b1916600160a01b179055565b506129a8907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316612d68565b612889565b50305f90815260046020526040902061283d90546129d56129d088601254611d64565b611d4e565b11159050612834565b50601b546129f09060a01c60ff161590565b61282e565b506127d4612a296127936011547f0000000000000000000000000000000000000000000000000000000000000000906117e4565b1590506127cb565b50601f5442106127c5565b15612a4357565b60405162461bcd60e51b81526020600482015260096024820152680455448206e6f7420360bc1b6044820152606490fd5b90606092612a9391969594968352608060208401526080830190611fc3565b6001600160a01b0390951660408201520152565b612ab2341515612a3c565b335f908152600760205260409020612ac99061252c565b6001600160a01b03168015612c7257612b2b612af5612ae734611e01565b612aef611ce9565b90612d24565b61257b612b09612b0434611e01565b611d17565b91612b2583612b20612b19611e43565b8434611c3b565b611e75565b94612d68565b612b33611edc565b601a54909190612b4e9060081c6001600160a01b0316612087565b916040516315ab88c960e31b8152602081600481875afa801561110457612b80915f91612c53575b506120ae83611f12565b612b8d306120ae83611f24565b60405163d06ca61f60e01b81525f8180612bab858760048401611fff565b0381875afa80156111045761214761214d91612bcd935f916121ed5750611f24565b92803b1561031f5760405163b6f9de9560e01b8152935f93859384928391612bfc914291339160048601612a74565b03925af19081612c3f575b506118ff5760405162461bcd60e51b815260206004820152600b60248201526a14ddd85c0819985a5b195960aa1b6044820152606490fd5b806121e15f612c4d93610655565b5f612c07565b612c6c915060203d602011612237576122298183610655565b5f612b76565b50612c84612c7e611ce9565b34612d0b565b612cc9612c99612c92611e43565b8334611c3b565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316612d68565b612b2b565b60408051909190612cdf8382610655565b6014815291601f1901366020840137565b811015611f1f5790565b908151811015611f1f570160200190565b611d2d6064926001611c13565b90611604906001611c13565b611d2d6103e8926001611c13565b3f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114159081612d61575090565b9050151590565b5f8080938193612d7a824710156116d0565b6001600160a01b03165af1612d8d61170b565b5015612d9557565b60405162461bcd60e51b8152602060048201526006602482015265756e61626c6560d01b6044820152606490fd5b9081606091031261031f578051916040602083015192015190565b601a54606091612ec69160081c6001600160a01b031630612e0081151561189a565b6001600160a01b03821691612e1683151561189a565b5f8281526005602090815260408083206001600160a01b039094168352929052205f1990557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206040515f198152a3601a54612e7e9060081c6001600160a01b0316612087565b60405163f305d71960e01b8152306004820181905260248201939093525f60448201819052606482015260848101929092524260a483015290938492839190829060c4820190565b03925af1801561110457612ed75750565b612ef89060603d606011612efd575b612ef08183610655565b810190612dc3565b505050565b503d612ee656feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dda2646970667358221220f64b037b69c0b86aaefdb7dd52a3fa68d99130c200985c1526e6b64dfd0aa7df64736f6c634300081a00338be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef00000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002e00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000036000000000000000000000000000000000000000000000000000000000000003a000000000000000000000000000000000000000000000000000000000000003e0000000000000000000000000000000000000000000000000000000000000042000000000000000000000000000000000000000000000000000000000000004600000000000000000000000000000000000000000000000000005543df729c000000000000000000000000000000000000000000000000d8d726b7177a8000000000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000462d919d9d6f3b51000000000000000000000000000000000000000000000000457bb11fdb3df8d4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1e07dc231427d00000000000000000000000000000000000000000000000000000000000000000ed4e000000000000000000000000000000000000000000000000000000000000278d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000121639f1ae1e3cc69ed32fca70d9bde95596e9840000000000000000000000002886df2241de0593f150d8f096464e29128420860000000000000000000000000000000000000000000000000001c6bf526340000000000000000000000000000000000000000000000000000000000000000003544d3300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003544d330000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f68747470733a2f2f6a75737470756d702e70726f2f636f696e2f302e706e67000000000000000000000000000000000000000000000000000000000000000001780000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000017800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000178000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001780000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d9544d3320697320616e20696e6e6f76617469766520746f6b656e2070726f746f636f6c207468617420656e61626c65732066616972204d696e74206d656368616e69736d732c2066756c6c79206164647320616e64206c6f636b73204c502c20616c6c6f7773206469726563742074726164696e67207468726f756768207472616e73666572732c20616e642070726f7669646573204d45562070726f74656374696f6e2c20656e737572696e672074686520666169726e65737320616e64207365637572697479206f66207472616e73616374696f6e732e00000000000000

Deployed Bytecode

0x60806040526004361015610026575b361561001e5761001c611934565b005b61001c6118d2565b5f3560e01c806306fdde0314610310578063095ea7b31461030b5780630cb966af146103065780631694505e1461030157806318160ddd146102cf5780631ce47916146102fc5780631e2f73b1146102f75780631e9b5382146102f257806323b872dd146102ed5780632a059bab146102e857806330e290e4146102e3578063313ce567146102de5780633197cbb6146102d957806339509351146102d45780633eaaf86b146102cf5780633fd1a660146102ca5780634b77c468146102c5578063530cb9dd146102c0578063557ed1ba146102bb57806357976fb4146102b65780636450b9e6146102b157806370a08231146102ac578063715018a6146102a757806378e97925146102a25780637d34519f1461029d5780638191745f146102985780638687af94146102935780638840d2ac1461028e5780638da5cb5b1461028957806395d89b41146102845780639759164a1461027f5780639bd349311461027a5780639e798bf714610275578063a457c2d714610270578063a9059cbb1461026b578063a9490cb114610266578063bb37e57014610261578063bd08250c1461025c578063c177b03a14610257578063c5e929b714610252578063c816841b1461024d578063ce60cdde14610248578063dd62ed3e14610243578063ed5e36b81461023e578063f2fde38b14610239578063fdc9d0f4146102345763fff5a1f60361000e5761150b565b611456565b61140a565b6113ed565b61138e565b611371565b611349565b61130e565b611173565b610fd4565b610fb7565b610f02565b610ecd565b610e58565b610da3565b610cee565b610cc6565b610c11565b610bea565b610a52565b610a35565b610980565b61095e565b610941565b6108e2565b6108a7565b610882565b61085d565b610843565b610826565b6107e3565b6107c6565b6104e3565b61076e565b610751565b610731565b61067c565b610624565b610584565b610562565b61053a565b610500565b6104b7565b610486565b610451565b61034d565b5f91031261031f57565b5f80fd5b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b3461031f575f36600319011261031f576040515f6009548060011c9060018116908115610436575b60208310821461042257828552602085019190811561040957506001146103b7575b6103b3846103a781860382610655565b60405191829182610323565b0390f35b60095f9081529250907f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af5b8184106103f5575050016103a782610397565b8054848401526020909301926001016103e2565b60ff191682525090151560051b0190506103a782610397565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610375565b6001600160a01b0381160361031f57565b3461031f57604036600319011261031f5761047b60043561047181610440565b6024359033611a52565b602060405160018152f35b3461031f575f36600319011261031f576015546012549081156104b257602091604051910460011c8152f35b611528565b3461031f575f36600319011261031f57601a5460405160089190911c6001600160a01b03168152602090f35b3461031f575f36600319011261031f576020601454604051908152f35b3461031f575f36600319011261031f5760206040517f0000000000000000000000000000000000000000000000000001c6bf526340008152f35b3461031f575f36600319011261031f57601d546040516001600160a01b039091168152602090f35b3461031f575f36600319011261031f57602060ff601a54166040519015158152f35b3461031f57606036600319011261031f576106186004356105a481610440565b6106106024356105b381610440565b6105c1604435809285611b36565b506001600160a01b0383165f90815260056020908152604080832033845290915290205490604051916105f5604084610655565b6009835268616c6c6f77616e636560b81b6020840152611c3b565b903390611a52565b60405160018152602090f35b3461031f575f36600319011261031f576020601554604051908152f35b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff82111761067757604052565b610641565b3461031f575f36600319011261031f576040515f600d548060011c9060018116908115610727575b60208310821461042257828552602085019190811561040957506001146106d5576103b3846103a781860382610655565b600d5f9081529250907fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb55b818410610713575050016103a782610397565b805484840152602090930192600101610700565b91607f16916106a4565b3461031f575f36600319011261031f57602060ff60035416604051908152f35b3461031f575f36600319011261031f576020601f54604051908152f35b3461031f57604036600319011261031f5761047b60043561078e81610440565b6107bf602435335f5260056020526107b98360405f209060018060a01b03165f5260205260405f2090565b54611c55565b9033611a52565b3461031f575f36600319011261031f576020601754604051908152f35b3461031f57602036600319011261031f5760043561080081610440565b60018060a01b03165f526007602052602060018060a01b0360405f205416604051908152f35b3461031f575f36600319011261031f576020601254604051908152f35b3461031f575f36600319011261031f576020604051428152f35b3461031f575f36600319011261031f57602060ff601c5460a01c166040519015158152f35b3461031f575f36600319011261031f57602060ff601b5460a01c166040519015158152f35b3461031f57602036600319011261031f576004356108c481610440565b60018060a01b03165f526004602052602060405f2054604051908152f35b3461031f575f36600319011261031f575f5461dead90816001600160a01b03821661090e338214611576565b7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a36001600160a01b031916175f55005b3461031f575f36600319011261031f576020601e54604051908152f35b3461031f575f36600319011261031f5760206109786115cf565b604051908152f35b3461031f575f36600319011261031f576040515f6010548060011c9060018116908115610a2b575b60208310821461042257828552602085019190811561040957506001146109d9576103b3846103a781860382610655565b60105f9081529250907f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6725b818410610a17575050016103a782610397565b805484840152602090930192600101610a04565b91607f16916109a8565b3461031f575f36600319011261031f576020601854604051908152f35b3461031f57602036600319011261031f57600435610a6e611ca2565b601f5442101580610bdb575b80610bc2575b80610bb9575b80610ba0575b80610b88575b610a9b9061164e565b7f73f04af9dcc582a923ec15d3eea990fe34adabfff2879e28d44572e01a54abb6610b64601254610b17610af6610ad28387611d31565b9283151580610b70575b610ae59061169a565b610af160115488611e21565b611d31565b91610b03834710156116d0565b335f90815260086020526040902054611e75565b335f90815260086020526040902055610b31843033611b36565b50610b4b5f80808085335af1610b4561170b565b5061173a565b6040805194855260208501919091523393918291820190565b0390a261001c60018055565b50335f90815260086020526040902054841115610adc565b50610a9b610b9860125483611644565b159050610a92565b50335f9081526004602052604090208190541015610a8c565b50801515610a86565b50610bd6610bd2601a5460ff1690565b1590565b610a80565b50601b5460a01c60ff16610a7a565b3461031f575f36600319011261031f575f546040516001600160a01b039091168152602090f35b3461031f575f36600319011261031f576040515f600a548060011c9060018116908115610cbc575b6020831082146104225782855260208501919081156104095750600114610c6a576103b3846103a781860382610655565b600a5f9081529250907fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a85b818410610ca8575050016103a782610397565b805484840152602090930192600101610c95565b91607f1691610c39565b3461031f575f36600319011261031f57601c546040516001600160a01b039091168152602090f35b3461031f575f36600319011261031f576040515f600b548060011c9060018116908115610d99575b6020831082146104225782855260208501919081156104095750600114610d47576103b3846103a781860382610655565b600b5f9081529250907f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db95b818410610d85575050016103a782610397565b805484840152602090930192600101610d72565b91607f1691610d16565b3461031f575f36600319011261031f576040515f600e548060011c9060018116908115610e4e575b6020831082146104225782855260208501919081156104095750600114610dfc576103b3846103a781860382610655565b600e5f9081529250907fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd5b818410610e3a575050016103a782610397565b805484840152602090930192600101610e27565b91607f1691610dcb565b3461031f57604036600319011261031f57610618600435610e7881610440565b6107bf602435335f526005602052610ea38360405f209060018060a01b03165f5260205260405f2090565b549060405191610eb4604084610655565b6007835266062656c6f7720360cc1b6020840152611c3b565b3461031f57604036600319011261031f576020610ef8600435610eef81610440565b6024359061176f565b6040519015158152f35b3461031f575f36600319011261031f576040515f600c548060011c9060018116908115610fad575b6020831082146104225782855260208501919081156104095750600114610f5b576103b3846103a781860382610655565b600c5f9081529250907fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c75b818410610f99575050016103a782610397565b805484840152602090930192600101610f86565b91607f1691610f2a565b3461031f575f36600319011261031f576020601954604051908152f35b3461031f57602036600319011261031f57600435610ff181610440565b610ff9611ca2565b61100e611007601e546117d4565b42116117f1565b478061113a575b506001600160a01b03168061102e575b61001c60018055565b6040516370a0823160e01b815230600482015290602082602481845afa918215611104575f92611109575b5081611066575b50611025565b60405163a9059cbb60e01b81527f0000000000000000000000002886df2241de0593f150d8f096464e29128420866001600160a01b031660048201526024810192909252602090829060449082905f905af18015611104576110ce915f916110d5575061173a565b5f80611060565b6110f7915060203d6020116110fd575b6110ef8183610655565b810190611842565b5f610b45565b503d6110e5565b611837565b61112c91925060203d602011611133575b6111248183610655565b810190611828565b905f611059565b503d61111a565b5f80808061116d947f0000000000000000000000002886df2241de0593f150d8f096464e29128420865af1610b4561170b565b5f611015565b3461031f575f36600319011261031f57601f54421015806112f0575b6111989061185a565b601a5460ff166111b8575b601b805460ff60a01b1916600160a01b179055005b305f90815260046020526040812080549082905561dead918290526111ea815f80516020612f258339815191526107b9565b61dead5f5260046020525f80516020612f258339815191525560405190815230905f80516020612f058339815191529080602081010390a3601d546001600160a01b03165f818152600460205260409020546016546112689161124d9190611e75565b6001600160a01b039092165f90815260046020526040902090565b5561dead5f52600460205261128e5f80516020612f258339815191525460165490611c55565b61dead5f5260046020525f80516020612f2583398151915255601d5461dead906001600160a01b03166016546040519081526001600160a01b03909116905f80516020612f058339815191529080602081010390a36112eb612256565b6111a3565b50611198611307610bd2601b5460ff9060a01c1690565b905061118f565b3461031f57602036600319011261031f5760043561132b81610440565b60018060a01b03165f526008602052602060405f2054604051908152f35b3461031f575f36600319011261031f57601b546040516001600160a01b039091168152602090f35b3461031f575f36600319011261031f576020601154604051908152f35b3461031f57604036600319011261031f5760206113e46004356113b081610440565b602435906113bd82610440565b60018060a01b03165f526005835260405f209060018060a01b03165f5260205260405f2090565b54604051908152f35b3461031f575f36600319011261031f576020601654604051908152f35b3461031f57602036600319011261031f5760043561142781610440565b5f546001600160a01b0381169161143f338414611576565b6001600160a01b031691829061090e82151561189a565b3461031f575f36600319011261031f576040515f600f548060011c9060018116908115611501575b60208310821461042257828552602085019190811561040957506001146114af576103b3846103a781860382610655565b600f5f9081529250907f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8025b8184106114ed575050016103a782610397565b8054848401526020909301926001016114da565b91607f169161147e565b3461031f575f36600319011261031f576020601354604051908152f35b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b81156104b2570490565b67ffffffffffffffff811161067757601f01601f191660200190565b1561157d57565b60405162461bcd60e51b81526020600482015260096024820152683737ba1037bbb732b960b91b6044820152606490fd5b6013198101919082116115bd57565b61153c565b919082039182116115bd57565b305f90815260046020526040902054601a5460ff161561160d576116046115fb61160a926015546115c2565b60125490611550565b60011c90565b90565b60155490600182901c9081811161162d575061160a915060125490611550565b905081039081116115bd5760125461160a91611550565b81156104b2570690565b1561165557565b60405162461bcd60e51b815260206004820152601960248201527f496e76616c696420726566756e6420636f6e646974696f6e73000000000000006044820152606490fd5b156116a157565b60405162461bcd60e51b8152602060048201526007602482015266125b9d985b1a5960ca1b6044820152606490fd5b156116d757565b60405162461bcd60e51b815260206004820152600c60248201526b1a5b9cdd59999a58da595b9d60a21b6044820152606490fd5b3d15611735573d9061171c8261155a565b9161172a6040519384610655565b82523d5f602084013e565b606090565b1561174157565b60405162461bcd60e51b815260206004820152600660248201526519985a5b195960d21b6044820152606490fd5b906001600160a01b0382163014806117c5575b806117b6575b156117a65761179f915061179a611ca2565b61204f565b6001805590565b6117b09133611b36565b50600190565b5060ff601c5460a01c16611788565b5060ff601b5460a01c16611782565b9062ed4e0082018092116115bd57565b919082018092116115bd57565b156117f857565b60405162461bcd60e51b81526020600482015260086024820152674e6f742074696d6560c01b6044820152606490fd5b9081602091031261031f575190565b6040513d5f823e3d90fd5b9081602091031261031f5751801515810361031f5790565b1561186157565b60405162461bcd60e51b81526020600482015260116024820152700dcdee840a8d2daca9eeae88cd2dcd2e6d607b1b6044820152606490fd5b156118a157565b60405162461bcd60e51b815260206004820152600960248201526830206164647265737360b81b6044820152606490fd5b6118da611ca2565b60ff601b5460a01c1680611925575b15611901576118f6612aa7565b6118ff60018055565b565b601a5460ff161561191b5761191634336127ac565b6118f6565b611916343361246b565b5060ff601c5460a01c166118e9565b61193c611ca2565b335f908152600760205260409020546001600160a01b031615611984575b601b5460a01c60ff16806119755715611901576118f6612aa7565b50601c5460a01c60ff166118e9565b60143610611a1c57611994612cce565b5f5b601481106119da575060140151335f9081526007602052604090206119d5919080546001600160a01b0319166001600160a01b03909216919091179055565b61195a565b80611a096119fb6119f56001946119f0366115ae565b6117e4565b36612cf0565b356001600160f81b03191690565b5f1a611a158285612cfa565b5301611996565b60405162461bcd60e51b815260206004820152600e60248201526d6c6561737420323020627974657360901b6044820152606490fd5b90916001600160a01b03909116907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590602090611a9084151561189a565b6001600160a01b038516948190611acc90611aac88151561189a565b865f526005855260405f209060018060a01b03165f5260205260405f2090565b55604051908152a3565b15611add57565b60405162461bcd60e51b815260206004820152600760248201526606e6f20737761760cc1b6044820152606490fd5b60405190611b1b604083610655565b600c82526b125b9cdd59999a58da595b9d60a21b6020830152565b916001600160a01b038316915f80516020612f0583398151915291611be791611b6085151561189a565b6001600160a01b03811695611b7687151561189a565b60ff601b5460a01c1615611bef575b6001600160a01b0381165f908152600460205260409020611bb49061124d905485611bae611b0c565b91611c3b565b55611bd661124d836107b98460018060a01b03165f52600460205260405f2090565b556040519081529081906020820190565b0390a3600190565b855f526006602052611c0e611c0960405f2060ff90541690565b611ad6565b611b85565b15611c1b5750565b60405162461bcd60e51b8152908190611c379060048301610323565b0390fd5b91611c499083831115611c13565b81039081116115bd5790565b908101908181116115bd578110611c695790565b60405162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b6044820152606490fd5b600260015414611cb3576002600155565b60405162461bcd60e51b815260206004820152600e60248201526d1c99595b9d1c985b9d0818d85b1b60921b6044820152606490fd5b60405190611cf8604083610655565b601082526f6469766973696f6e206279207a65726f60801b6020830152565b6103e890611d2d611d26611ce9565b6001611c13565b0490565b611d39611ce9565b611d468315918215611c13565b6104b2570490565b908160011b91808304600214901517156115bd57565b818102929181159184041417156115bd57565b8015611ddc57605f810290810480605f036115bd57605e1901611d975790565b60405162461bcd60e51b815260206004820152601760248201527f6d756c7469706c69636174696f6e206f766572666c6f770000000000000000006044820152606490fd5b505f90565b8015611ddc5760328102908104806032036115bd5760311901611d975790565b8015611ddc5760058102908104806005036115bd5760041901611d975790565b908115611e3d57611e328183611d64565b91820403611d975790565b50505f90565b60405190611e52604083610655565b60148252737375627472616374696f6e206f766572666c6f7760601b6020830152565b61160a91611bae611e43565b15611e8857565b60405162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b6044820152606490fd5b67ffffffffffffffff81116106775760051b60200190565b60405160609190611eed8382610655565b6002815291601f1901366020840137565b634e487b7160e01b5f52603260045260245ffd5b805115611f1f5760200190565b611efe565b805160011015611f1f5760400190565b9081602091031261031f575161160a81610440565b60208183031261031f5780519067ffffffffffffffff821161031f57019080601f8301121561031f578151611f7d81611ec4565b92611f8b6040519485610655565b81845260208085019260051b82010192831161031f57602001905b828210611fb35750505090565b8151815260209182019101611fa6565b90602080835192838152019201905f5b818110611fe05750505090565b82516001600160a01b0316845260209384019390920191600101611fd3565b60409061160a939281528160208201520190611fc3565b919260809361203b92979695978452602084015260a0604084015260a0830190611fc3565b6001600160a01b0390951660608201520152565b8015158061223e575b61206190611e81565b61206c813033611b36565b50601a546120999082906120939060081c6001600160a01b03165b6001600160a01b031690565b30611a52565b6120a1611edc565b6120bd306120ae83611f12565b6001600160a01b039091169052565b601a546120d59060081c6001600160a01b0316612087565b6040516315ab88c960e31b8152602081600481855afa801561110457612106915f9161220f575b506120ae84611f24565b60405163d06ca61f60e01b81525f8180612124868860048401611fff565b0381855afa80156111045761214761214d9161215b935f916121ed575b50611f24565b51611d77565b612155611ce9565b90612d0b565b90803b1561031f5761218b935f80946040519687958694859363791ac94760e01b85524292339260048701612016565b03925af190816121d3575b506121ce5760405162461bcd60e51b815260206004820152600b60248201526a14ddd85c0819985a5b195960aa1b6044820152606490fd5b600190565b806121e15f6121e793610655565b80610315565b5f612196565b61220991503d805f833e6122018183610655565b810190611f49565b5f612141565b612231915060203d602011612237575b6122298183610655565b810190611f34565b5f6120fc565b503d61221f565b50335f90815260046020526040902054811115612058565b601b5461226d90612087906001600160a01b031681565b6040516370a0823160e01b815230600482015290602082602481845afa908115611104576122ee925f92612449575b50601c5460209183916122b7906001600160a01b0316612087565b60405163095ea7b360e01b81526001600160a01b0390911660048201526024810192909252909384919082905f9082906044820190565b03925af1918215611104576123b79261242c575b5061230f601854426117e4565b90602082612327612087601c5460018060a01b031690565b601b54604051630727935760e01b81526001600160a01b037f0000000000000000000000002886df2241de0593f150d8f096464e29128420868116600483015290911660248201526001604482015260648101859052608481019290925260c060a4830152600860c48301526704a75737450756d760c41b60e4830152909485919082905f908290610104820190565b03925af1928315611104577fcb75aa8347c098d414422e8cafbbe4e2c1a229f5b27bf425984b2b9792aa787a9361240f575b50601c805460ff60a01b1916600160a01b179055604080519182526020820192909252a1565b6124279060203d602011611133576111248183610655565b6123e9565b6124449060203d6020116110fd576110ef8183610655565b612302565b602091925061246490823d8411611133576111248183610655565b919061229c565b61264361263e61265693612481610bd233612d32565b806127a1575b8061275f575b6124969061169a565b601154936124cf7f0000000000000000000000000000000000000000000000000001c6bf52634000926124c984886117e4565b90611550565b335f9081526008602052604090209095906124ed9087905b546117e4565b601354101580612748575b80612708575b6125079061169a565b6125458661253f8161253961252c8760018060a01b03165f52600760205260405f2090565b546001600160a01b031690565b96611d64565b92611d64565b926001600160a01b031680156126cf578161257b9161257361256c61214d6125aa96611de1565b8092612d68565b611bae611e43565b7f0000000000000000000000002886df2241de0593f150d8f096464e29128420866001600160a01b0316612d68565b6125b685601254611d64565b305f9081526004602052604090206125d2905482611bae611b0c565b305f90815260046020526040808220929092556001600160a01b0384168152206125fd9082906107b9565b6001600160a01b03929092165f8181526004602090815260409182902094909455519182529130915f80516020612f058339815191529190a3600254611c55565b600255565b335f9081526008602052604090206107b9565b335f90815260086020526040902055305f90815260046020526040902054612688601554612682611ce9565b90612d18565b101561269057565b305f908152600460205260409020546002546126ab91612dde565b6126b3612256565b601b805460ff60a01b1916600160a01b1790556118ff5f600255565b50612703907f0000000000000000000000002886df2241de0593f150d8f096464e29128420866001600160a01b0316612d68565b6125aa565b50305f908152600460205260409020612507905461273f61272b89601254611d64565b612739601554612682611ce9565b906117e4565b111590506124fe565b50601b5461275a9060a01c60ff161590565b6124f8565b506124966127996127936011547f0000000000000000000000000000000000000000000000000001c6bf52634000906117e4565b83611644565b15905061248d565b50601f544210612487565b612643612927926127bf610bd233612d32565b80612a31575b806129f5575b6127d49061169a565b601154926128077f0000000000000000000000000000000000000000000000000001c6bf52634000926124c984876117e4565b335f9081526008602052604090209094906128239086906124e7565b6013541015806129de575b806129ad575b61283d9061169a565b6128628561253f8161253961252c8760018060a01b03165f52600760205260405f2090565b926001600160a01b03168015612974578161257b9161257361256c61214d61288996611de1565b61289584601254611d64565b305f9081526004602052604090209091906128b4905483611bae611b0c565b305f90815260046020526040808220929092556001600160a01b0383168152206128df9083906107b9565b6001600160a01b0382165f908152600460205260409020556040518281526001600160a01b039091169030905f80516020612f058339815191529080602081010390a3612dde565b335f90815260086020526040902055305f90815260046020526040902054612950601254611d4e565b1161295757565b61295f612256565b601b805460ff60a01b1916600160a01b179055565b506129a8907f0000000000000000000000002886df2241de0593f150d8f096464e29128420866001600160a01b0316612d68565b612889565b50305f90815260046020526040902061283d90546129d56129d088601254611d64565b611d4e565b11159050612834565b50601b546129f09060a01c60ff161590565b61282e565b506127d4612a296127936011547f0000000000000000000000000000000000000000000000000001c6bf52634000906117e4565b1590506127cb565b50601f5442106127c5565b15612a4357565b60405162461bcd60e51b81526020600482015260096024820152680455448206e6f7420360bc1b6044820152606490fd5b90606092612a9391969594968352608060208401526080830190611fc3565b6001600160a01b0390951660408201520152565b612ab2341515612a3c565b335f908152600760205260409020612ac99061252c565b6001600160a01b03168015612c7257612b2b612af5612ae734611e01565b612aef611ce9565b90612d24565b61257b612b09612b0434611e01565b611d17565b91612b2583612b20612b19611e43565b8434611c3b565b611e75565b94612d68565b612b33611edc565b601a54909190612b4e9060081c6001600160a01b0316612087565b916040516315ab88c960e31b8152602081600481875afa801561110457612b80915f91612c53575b506120ae83611f12565b612b8d306120ae83611f24565b60405163d06ca61f60e01b81525f8180612bab858760048401611fff565b0381875afa80156111045761214761214d91612bcd935f916121ed5750611f24565b92803b1561031f5760405163b6f9de9560e01b8152935f93859384928391612bfc914291339160048601612a74565b03925af19081612c3f575b506118ff5760405162461bcd60e51b815260206004820152600b60248201526a14ddd85c0819985a5b195960aa1b6044820152606490fd5b806121e15f612c4d93610655565b5f612c07565b612c6c915060203d602011612237576122298183610655565b5f612b76565b50612c84612c7e611ce9565b34612d0b565b612cc9612c99612c92611e43565b8334611c3b565b917f0000000000000000000000002886df2241de0593f150d8f096464e29128420866001600160a01b0316612d68565b612b2b565b60408051909190612cdf8382610655565b6014815291601f1901366020840137565b811015611f1f5790565b908151811015611f1f570160200190565b611d2d6064926001611c13565b90611604906001611c13565b611d2d6103e8926001611c13565b3f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114159081612d61575090565b9050151590565b5f8080938193612d7a824710156116d0565b6001600160a01b03165af1612d8d61170b565b5015612d9557565b60405162461bcd60e51b8152602060048201526006602482015265756e61626c6560d01b6044820152606490fd5b9081606091031261031f578051916040602083015192015190565b601a54606091612ec69160081c6001600160a01b031630612e0081151561189a565b6001600160a01b03821691612e1683151561189a565b5f8281526005602090815260408083206001600160a01b039094168352929052205f1990557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206040515f198152a3601a54612e7e9060081c6001600160a01b0316612087565b60405163f305d71960e01b8152306004820181905260248201939093525f60448201819052606482015260848101929092524260a483015290938492839190829060c4820190565b03925af1801561110457612ed75750565b612ef89060603d606011612efd575b612ef08183610655565b810190612dc3565b505050565b503d612ee656feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dda2646970667358221220f64b037b69c0b86aaefdb7dd52a3fa68d99130c200985c1526e6b64dfd0aa7df64736f6c634300081a0033

Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.