ETH Price: $2,483.37 (-0.64%)

Token

Luxury Libations (LUX)
 

Overview

Max Total Supply

10,000,000 LUX

Holders

133

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
holysheesh.eth
Balance
100,000 LUX

Value
$0.00
0xc8ee9e0ed56e164f908e0bcfccdcb129fba2a2a2
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:
LUXContract

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-03-08
*/

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

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

abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {
        return payable(address(msg.sender));
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

contract ERC20 is Context, IERC20 {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    uint256 private _totalSupply;
    string private _name;
    string private _symbol;
    uint8 private _decimals;

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

    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 transfer(
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()] - amount
        );
        return true;
    }

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

    function decreaseAllowance(
        address spender,
        uint256 subtractedValue
    ) public virtual returns (bool) {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender] - subtractedValue
        );
        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

        _balances[sender] = _balances[sender] - amount;
        _balances[recipient] = _balances[recipient] + amount;
        emit Transfer(sender, recipient, amount);
    }

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

        _beforeTokenTransfer(address(0), account, amount);

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

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        _balances[account] = _balances[account] - amount;
        _totalSupply = _totalSupply - amount;
        emit Transfer(account, address(0), 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 _setupDecimals(uint8 decimals_) internal {
        _decimals = decimals_;
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        _owner = _msgSender();
        emit OwnershipTransferred(address(0), _owner);
    }

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

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 IUniswapV2Router01 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

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

    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);

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

    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint amountA, uint amountB);

    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint amountToken, uint amountETH);

    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);

    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);

    function swapExactETHForTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable returns (uint[] memory amounts);

    function swapTokensForExactETH(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);

    function swapExactTokensForETH(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);

    function swapETHForExactTokens(
        uint amountOut,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable returns (uint[] memory amounts);

    function quote(
        uint amountA,
        uint reserveA,
        uint reserveB
    ) external pure returns (uint amountB);

    function getAmountOut(
        uint amountIn,
        uint reserveIn,
        uint reserveOut
    ) external pure returns (uint amountOut);

    function getAmountIn(
        uint amountOut,
        uint reserveIn,
        uint reserveOut
    ) external pure returns (uint amountIn);

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

    function getAmountsIn(
        uint amountOut,
        address[] calldata path
    ) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);

    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract LUXContract is ERC20, Ownable {
    uint256 public immutable initialSupply;
    uint256 public immutable percentageBase;

    uint256 public blockStart;
    uint256 public timeStart;

    address public routerAddress;
    uint256 public maxTax;
    uint256 public buyTax;
    uint256 public sellTax;
    address public taxWalletMarketing;
    address public taxWalletAcquisition;

    uint256 public maxWallet;
    uint256 public maxTx;
    uint256 public txCooldown;
    bool public isTxCooldownEnabled;

    uint256 public taxCollected;
    uint256 public taxThreshold;
    uint256 public lastTaxBlock;

    uint256 initialLiquidity;

    mapping(address => uint256) public lastTxTimestamp;
    mapping(address => bool) public exempt;
    mapping(address => bool) public dex;

    bool public tradingEnabled = false;

    constructor() ERC20("Luxury Libations", "LUX") Ownable() {
        initialSupply = 10_000_000 ether;
        percentageBase = 100_000;

        routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
        maxTax = 30_000; // 30%
        buyTax = 30_000; // 30%
        sellTax = 30_000; // 30%

        taxWalletMarketing = 0xcEB01D38ee9E2aF28FF26385B0Fa35a97236Ae88;
        taxWalletAcquisition = 0x9944B898826B267904887a5ddc3b1B22453c0481;

        maxWallet = 1_000; // 1%
        maxTx = 1_000; // 1%
        txCooldown = 15 seconds;
        taxThreshold = 5 minutes;

        isTxCooldownEnabled = true;

        exempt[address(this)] = true;

        initialLiquidity = 1_000_000 ether;

        _mint(address(this), initialLiquidity);
        _mint(msg.sender, initialSupply - initialLiquidity);
        require(
            totalSupply() == initialSupply,
            "Initial supply does not match."
        );
    }

    function addInitialLiquidity() external payable onlyOwner {
        require(blockStart == 0, "Liquidity already added.");

        IUniswapV2Router02 router = IUniswapV2Router02(routerAddress);
        _approve(address(this), routerAddress, ~uint256(0));

        address pair = IUniswapV2Factory(router.factory()).createPair(
            address(this),
            router.WETH()
        );
        dex[pair] = true;

        router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            msg.sender,
            block.timestamp + 15 minutes
        );

        blockStart = block.number;
        timeStart = block.timestamp;
    }

    function setBuyTax(uint256 _tax) external onlyOwner {
        require(_tax <= maxTax, "Tax exceeds maxTax.");
        buyTax = _tax;
        maxTax = _tax;
    }

    function setSellTax(uint256 _tax) external onlyOwner {
        require(_tax <= maxTax, "Tax exceeds maxTax.");
        sellTax = _tax;
        maxTax = _tax;
    }

    function setMaxWallet(uint256 _maxWallet) external onlyOwner {
        maxWallet = _maxWallet;
    }

    function setMaxTx(uint256 _maxTx) external onlyOwner {
        maxTx = _maxTx;
    }

    function setTxCooldownEnabled(bool _enabled) external onlyOwner {
        isTxCooldownEnabled = _enabled;
    }

    function burn(uint256 amount) external {
        _burn(msg.sender, amount);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        uint256 transferAmount = amount;

        if (tradingEnabled == false) {
            require(
                from == owner() || from == address(this) || to == address(this),
                "Trading not open yet"
            );
        }

        if (blockStart == 0) {
            require(
                from == owner() || from == address(this) || to == address(this),
                "Liquidity not added."
            );
        }

        if (dex[from] || dex[to]) {
            uint256 taxRate;

            if (exempt[from] || exempt[to]) {
                taxRate = 0;
            } else if (dex[from]) {
                taxRate = buyTax;
            } else if (dex[to]) {
                taxRate = sellTax;
            } else {
                taxRate = 0;
            }

            uint256 taxAmount = (amount * taxRate) / percentageBase;
            transferAmount = amount - taxAmount;
            super._transfer(from, address(this), taxAmount);
            taxCollected += taxAmount;

            if (!exempt[from]) {
                require(
                    maxTx == 0 ||
                        (dex[to] && from == address(this)) ||
                        amount <= (maxTx * initialSupply) / percentageBase,
                    "Transfer amount exceeds maxTx."
                );

                if (dex[from] || dex[to]) {
                    require(
                        !isTxCooldownEnabled ||
                            dex[from] ||
                            (dex[to] && from == address(this)) ||
                            block.timestamp - lastTxTimestamp[from] >=
                            txCooldown,
                        "Transfer cooldown not expired."
                    );
                    lastTxTimestamp[from] = block.timestamp;
                }
            }
        }

        if (!dex[to] && !exempt[to]) {
            require(
                maxWallet > 0 ||
                    dex[to] ||
                    to == address(this) ||
                    balanceOf(to) + transferAmount <=
                    (maxWallet * initialSupply) / percentageBase,
                "Recipient wallet balance exceeds maxWallet."
            );
        }

        if (
            !dex[from] &&
            taxCollected > 0 &&
            block.timestamp - lastTaxBlock > taxThreshold
        ) {
            lastTaxBlock = block.timestamp;
            uint256 toSwap = taxCollected;
            taxCollected = 0;
            _swapTokensToEth(toSwap / 2, taxWalletMarketing);
            _swapTokensToEth(toSwap / 2, taxWalletAcquisition);
        }

        super._transfer(from, to, transferAmount);
    }

    function _swapTokensToEth(uint256 tokenAmount, address recipient) private {
        if (tokenAmount > balanceOf(address(this))) {
            tokenAmount = balanceOf(address(this));
        }
        IUniswapV2Router02 router = IUniswapV2Router02(routerAddress);
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        router.swapExactTokensForETH(
            tokenAmount,
            0,
            path,
            recipient,
            block.timestamp + 15 minutes
        );
    }

    function enableTrading() external onlyOwner {
        require(!tradingEnabled, "Trading is already enabled");
        tradingEnabled = true;
    }

    receive() external payable {}
}

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":"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":"addInitialLiquidity","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":"blockStart","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyTax","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":[{"internalType":"address","name":"","type":"address"}],"name":"dex","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exempt","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":[],"name":"initialSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isTxCooldownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastTaxBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastTxTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTx","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":"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":"percentageBase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"routerAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"setBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTx","type":"uint256"}],"name":"setMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxWallet","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"setSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setTxCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxCollected","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxWalletAcquisition","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxWalletMarketing","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"timeStart","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"txCooldown","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052601a805460ff191690553480156200001a575f80fd5b506040518060400160405280601081526020016f4c7578757279204c69626174696f6e7360801b81525060405180604001604052806003815260200162098aab60eb1b8152508160039081620000719190620003da565b506004620000808282620003da565b50506005805460ff1916601217905550620000983390565b60058054610100600160a81b0319166101006001600160a01b03938416810291909117918290556040519104909116905f907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36a084595161401484a000000608052620186a060a052600980546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d17909155617530600a819055600b819055600c55600d8054821673ceb01d38ee9e2af28ff26385b0fa35a97236ae88179055600e8054909116739944b898826b267904887a5ddc3b1b22453c04811790556103e8600f81815560109190915560115561012c6014556012805460ff199081166001908117909255305f8181526018602052604090208054909216909217905569d3c21bcecceda10000006016819055620001d8919062000254565b620001f533601654608051620001ef9190620004ba565b62000254565b608051600254146200024e5760405162461bcd60e51b815260206004820152601e60248201527f496e697469616c20737570706c7920646f6573206e6f74206d617463682e000060448201526064015b60405180910390fd5b620004ec565b6001600160a01b038216620002ac5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000245565b80600254620002bc9190620004d6565b6002556001600160a01b0382165f90815260208190526040902054620002e4908290620004d6565b6001600160a01b0383165f81815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200036657607f821691505b6020821081036200038557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200033857805f5260205f20601f840160051c81016020851015620003b25750805b601f840160051c820191505b81811015620003d3575f8155600101620003be565b5050505050565b81516001600160401b03811115620003f657620003f66200033d565b6200040e8162000407845462000351565b846200038b565b602080601f83116001811462000444575f84156200042c5750858301515b5f19600386901b1c1916600185901b1785556200049e565b5f85815260208120601f198616915b82811015620004745788860151825594840194600190910190840162000453565b50858210156200049257878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115620004d057620004d0620004a6565b92915050565b80820180821115620004d057620004d0620004a6565b60805160a051611e60620005315f395f81816102e9015281816111c40152818161128601526114ec01525f8181610393015281816112a7015261150d0152611e605ff3fe60806040526004361061024c575f3560e01c806377d1440d11610134578063a9059cbb116100b3578063dcafac0911610078578063dcafac09146106b0578063dd62ed3e146106c5578063f0c4201014610709578063f1320af214610728578063f8b45b0514610756578063fd74d2941461076b575f80fd5b8063a9059cbb1461061f578063ae4abdc91461063e578063bc3371821461065d578063cc1776d31461067c578063dc1052e214610691575f80fd5b80638cd09d50116100f95780638cd09d50146105965780638da5cb5b146105b5578063916a47f7146105d757806395d89b41146105ec578063a457c2d714610600575f80fd5b806377d1440d1461052a5780637aceaa331461053f5780637b2feaaa14610554578063843da248146105695780638a8c523c14610582575f80fd5b806342966c68116101cb5780635d0044ca116101905780635d0044ca1461047a578063608b2899146104995780636d8813c5146104b857806370a08231146104cd578063715018a6146105015780637437681e14610515575f80fd5b806342966c68146103d45780634551bbe9146103f35780634a0da6731461041e5780634ada218b1461044c5780634f7041a514610465575f80fd5b806323b872dd1161021157806323b872dd1461030b578063313ce5671461032a5780633268cc561461034b578063378dc3dc1461038257806339509351146103b5575f80fd5b80630210a83d1461025757806306fdde0314610261578063095ea7b31461028b57806318160ddd146102ba57806322ab155e146102d8575f80fd5b3661025357005b5f80fd5b61025f610780565b005b34801561026c575f80fd5b50610275610a5a565b6040516102829190611a5e565b60405180910390f35b348015610296575f80fd5b506102aa6102a5366004611abe565b610aea565b6040519015158152602001610282565b3480156102c5575f80fd5b506002545b604051908152602001610282565b3480156102e3575f80fd5b506102ca7f000000000000000000000000000000000000000000000000000000000000000081565b348015610316575f80fd5b506102aa610325366004611ae8565b610b00565b348015610335575f80fd5b5060055460405160ff9091168152602001610282565b348015610356575f80fd5b5060095461036a906001600160a01b031681565b6040516001600160a01b039091168152602001610282565b34801561038d575f80fd5b506102ca7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103c0575f80fd5b506102aa6103cf366004611abe565b610b50565b3480156103df575f80fd5b5061025f6103ee366004611b26565b610b86565b3480156103fe575f80fd5b506102ca61040d366004611b3d565b60176020525f908152604090205481565b348015610429575f80fd5b506102aa610438366004611b3d565b60196020525f908152604090205460ff1681565b348015610457575f80fd5b50601a546102aa9060ff1681565b348015610470575f80fd5b506102ca600b5481565b348015610485575f80fd5b5061025f610494366004611b26565b610b93565b3480156104a4575f80fd5b50600d5461036a906001600160a01b031681565b3480156104c3575f80fd5b506102ca600a5481565b3480156104d8575f80fd5b506102ca6104e7366004611b3d565b6001600160a01b03165f9081526020819052604090205490565b34801561050c575f80fd5b5061025f610bc8565b348015610520575f80fd5b506102ca60105481565b348015610535575f80fd5b506102ca60145481565b34801561054a575f80fd5b506102ca60155481565b34801561055f575f80fd5b506102ca60075481565b348015610574575f80fd5b506012546102aa9060ff1681565b34801561058d575f80fd5b5061025f610c47565b3480156105a1575f80fd5b5061025f6105b0366004611b26565b610cd9565b3480156105c0575f80fd5b5060055461010090046001600160a01b031661036a565b3480156105e2575f80fd5b506102ca60135481565b3480156105f7575f80fd5b50610275610d5b565b34801561060b575f80fd5b506102aa61061a366004611abe565b610d6a565b34801561062a575f80fd5b506102aa610639366004611abe565b610da0565b348015610649575f80fd5b5061025f610658366004611b5f565b610dac565b348015610668575f80fd5b5061025f610677366004611b26565b610def565b348015610687575f80fd5b506102ca600c5481565b34801561069c575f80fd5b5061025f6106ab366004611b26565b610e24565b3480156106bb575f80fd5b506102ca60115481565b3480156106d0575f80fd5b506102ca6106df366004611b7e565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610714575f80fd5b50600e5461036a906001600160a01b031681565b348015610733575f80fd5b506102aa610742366004611b3d565b60186020525f908152604090205460ff1681565b348015610761575f80fd5b506102ca600f5481565b348015610776575f80fd5b506102ca60085481565b6005546001600160a01b036101009091041633146107b95760405162461bcd60e51b81526004016107b090611bb5565b60405180910390fd5b600754156108095760405162461bcd60e51b815260206004820152601860248201527f4c697175696469747920616c72656164792061646465642e000000000000000060448201526064016107b0565b6009546001600160a01b031661082130825f19610ea6565b5f816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561085e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108829190611bea565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108cd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108f19190611bea565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561093b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061095f9190611bea565b6001600160a01b038082165f908152601960205260409020805460ff19166001179055909150821663f305d71947306109ac816001600160a01b03165f9081526020819052604090205490565b5f80336109bb42610384611c19565b60405160e089901b6001600160e01b03191681526001600160a01b039687166004820152602481019590955260448501939093526064840191909152909216608482015260a481019190915260c40160606040518083038185885af1158015610a26573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a4b9190611c2c565b50504360075550504260085550565b606060038054610a6990611c57565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9590611c57565b8015610ae05780601f10610ab757610100808354040283529160200191610ae0565b820191905f5260205f20905b815481529060010190602001808311610ac357829003601f168201915b5050505050905090565b5f610af6338484610ea6565b5060015b92915050565b5f610b0c848484610fca565b6001600160a01b0384165f90815260016020908152604080832033808552925290912054610b46918691610b41908690611c8f565b610ea6565b5060019392505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610af6918590610b41908690611c19565b610b903382611673565b50565b6005546001600160a01b03610100909104163314610bc35760405162461bcd60e51b81526004016107b090611bb5565b600f55565b6005546001600160a01b03610100909104163314610bf85760405162461bcd60e51b81526004016107b090611bb5565b6005546040515f9161010090046001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a360058054610100600160a81b0319169055565b6005546001600160a01b03610100909104163314610c775760405162461bcd60e51b81526004016107b090611bb5565b601a5460ff1615610cca5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c656400000000000060448201526064016107b0565b601a805460ff19166001179055565b6005546001600160a01b03610100909104163314610d095760405162461bcd60e51b81526004016107b090611bb5565b600a54811115610d515760405162461bcd60e51b81526020600482015260136024820152722a30bc1032bc31b2b2b2399036b0bc2a30bc1760691b60448201526064016107b0565b600c819055600a55565b606060048054610a6990611c57565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610af6918590610b41908690611c8f565b5f610af6338484610fca565b6005546001600160a01b03610100909104163314610ddc5760405162461bcd60e51b81526004016107b090611bb5565b6012805460ff1916911515919091179055565b6005546001600160a01b03610100909104163314610e1f5760405162461bcd60e51b81526004016107b090611bb5565b601055565b6005546001600160a01b03610100909104163314610e545760405162461bcd60e51b81526004016107b090611bb5565b600a54811115610e9c5760405162461bcd60e51b81526020600482015260136024820152722a30bc1032bc31b2b2b2399036b0bc2a30bc1760691b60448201526064016107b0565b600b819055600a55565b6001600160a01b038316610f085760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107b0565b6001600160a01b038216610f695760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107b0565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b601a54819060ff1615155f03611059576005546001600160a01b0385811661010090920416148061100357506001600160a01b03841630145b8061101657506001600160a01b03831630145b6110595760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016107b0565b6007545f036110e1576005546001600160a01b0385811661010090920416148061108b57506001600160a01b03841630145b8061109e57506001600160a01b03831630145b6110e15760405162461bcd60e51b81526020600482015260146024820152732634b8bab4b234ba3c903737ba1030b23232b21760611b60448201526064016107b0565b6001600160a01b0384165f9081526019602052604090205460ff168061111e57506001600160a01b0383165f9081526019602052604090205460ff165b15611465576001600160a01b0384165f9081526018602052604081205460ff168061116057506001600160a01b0384165f9081526018602052604090205460ff165b1561116c57505f6111c1565b6001600160a01b0385165f9081526019602052604090205460ff16156111955750600b546111c1565b6001600160a01b0384165f9081526019602052604090205460ff16156111be5750600c546111c1565b505f5b5f7f00000000000000000000000000000000000000000000000000000000000000006111ed8386611ca2565b6111f79190611cb9565b90506112038185611c8f565b9250611210863083611763565b8060135f8282546112219190611c19565b90915550506001600160a01b0386165f9081526018602052604090205460ff1661146257601054158061127e57506001600160a01b0385165f9081526019602052604090205460ff16801561127e57506001600160a01b03861630145b806112e157507f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006010546112d39190611ca2565b6112dd9190611cb9565b8411155b61132d5760405162461bcd60e51b815260206004820152601e60248201527f5472616e7366657220616d6f756e742065786365656473206d617854782e000060448201526064016107b0565b6001600160a01b0386165f9081526019602052604090205460ff168061136a57506001600160a01b0385165f9081526019602052604090205460ff165b156114625760125460ff16158061139857506001600160a01b0386165f9081526019602052604090205460ff165b806113cd57506001600160a01b0385165f9081526019602052604090205460ff1680156113cd57506001600160a01b03861630145b806113fb57506011546001600160a01b0387165f908152601760205260409020546113f89042611c8f565b10155b6114475760405162461bcd60e51b815260206004820152601e60248201527f5472616e7366657220636f6f6c646f776e206e6f7420657870697265642e000060448201526064016107b0565b6001600160a01b0386165f9081526017602052604090204290555b50505b6001600160a01b0383165f9081526019602052604090205460ff161580156114a557506001600160a01b0383165f9081526018602052604090205460ff16155b156115cf575f600f5411806114d157506001600160a01b0383165f9081526019602052604090205460ff165b806114e457506001600160a01b03831630145b8061156f57507f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000600f546115399190611ca2565b6115439190611cb9565b81611562856001600160a01b03165f9081526020819052604090205490565b61156c9190611c19565b11155b6115cf5760405162461bcd60e51b815260206004820152602b60248201527f526563697069656e742077616c6c65742062616c616e6365206578636565647360448201526a1036b0bc2bb0b63632ba1760a91b60648201526084016107b0565b6001600160a01b0384165f9081526019602052604090205460ff161580156115f857505f601354115b8015611611575060145460155461160f9042611c8f565b115b156116625742601555601380545f909155611641611630600283611cb9565b600d546001600160a01b03166118cb565b61166061164f600283611cb9565b600e546001600160a01b03166118cb565b505b61166d848483611763565b50505050565b6001600160a01b0382166116d35760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016107b0565b6001600160a01b0382165f908152602081905260409020546116f6908290611c8f565b6001600160a01b0383165f9081526020819052604090205560025461171c908290611c8f565b6002556040518181525f906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b0383166117c75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107b0565b6001600160a01b0382166118295760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107b0565b6001600160a01b0383165f9081526020819052604090205461184c908290611c8f565b6001600160a01b038085165f90815260208190526040808220939093559084168152205461187b908290611c19565b6001600160a01b038381165f818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610fbd565b305f908152602081905260409020548211156118f357305f9081526020819052604090205491505b6009546040805160028082526060820183526001600160a01b03909316925f9260208301908036833701905050905030815f8151811061193557611935611cec565b60200260200101906001600160a01b031690816001600160a01b031681525050816001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611991573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119b59190611bea565b816001815181106119c8576119c8611cec565b6001600160a01b03928316602091820292909201015282166318cbafe5855f84876119f542610384611c19565b6040518663ffffffff1660e01b8152600401611a15959493929190611d00565b5f604051808303815f875af1158015611a30573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611a579190810190611d71565b5050505050565b5f602080835283518060208501525f5b81811015611a8a57858101830151858201604001528201611a6e565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610b90575f80fd5b5f8060408385031215611acf575f80fd5b8235611ada81611aaa565b946020939093013593505050565b5f805f60608486031215611afa575f80fd5b8335611b0581611aaa565b92506020840135611b1581611aaa565b929592945050506040919091013590565b5f60208284031215611b36575f80fd5b5035919050565b5f60208284031215611b4d575f80fd5b8135611b5881611aaa565b9392505050565b5f60208284031215611b6f575f80fd5b81358015158114611b58575f80fd5b5f8060408385031215611b8f575f80fd5b8235611b9a81611aaa565b91506020830135611baa81611aaa565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611bfa575f80fd5b8151611b5881611aaa565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610afa57610afa611c05565b5f805f60608486031215611c3e575f80fd5b8351925060208401519150604084015190509250925092565b600181811c90821680611c6b57607f821691505b602082108103611c8957634e487b7160e01b5f52602260045260245ffd5b50919050565b81810381811115610afa57610afa611c05565b8082028115828204841417610afa57610afa611c05565b5f82611cd357634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611d505784516001600160a01b031683529383019391830191600101611d2b565b50506001600160a01b03969096166060850152505050608001529392505050565b5f6020808385031215611d82575f80fd5b825167ffffffffffffffff80821115611d99575f80fd5b818501915085601f830112611dac575f80fd5b815181811115611dbe57611dbe611cd8565b8060051b604051601f19603f83011681018181108582111715611de357611de3611cd8565b604052918252848201925083810185019188831115611e00575f80fd5b938501935b82851015611e1e57845184529385019392850192611e05565b9897505050505050505056fea2646970667358221220aacf061f8798c0ee2e77258c464b028edfb2b67d87345b432864faaffbe9f96364736f6c63430008180033

Deployed Bytecode

0x60806040526004361061024c575f3560e01c806377d1440d11610134578063a9059cbb116100b3578063dcafac0911610078578063dcafac09146106b0578063dd62ed3e146106c5578063f0c4201014610709578063f1320af214610728578063f8b45b0514610756578063fd74d2941461076b575f80fd5b8063a9059cbb1461061f578063ae4abdc91461063e578063bc3371821461065d578063cc1776d31461067c578063dc1052e214610691575f80fd5b80638cd09d50116100f95780638cd09d50146105965780638da5cb5b146105b5578063916a47f7146105d757806395d89b41146105ec578063a457c2d714610600575f80fd5b806377d1440d1461052a5780637aceaa331461053f5780637b2feaaa14610554578063843da248146105695780638a8c523c14610582575f80fd5b806342966c68116101cb5780635d0044ca116101905780635d0044ca1461047a578063608b2899146104995780636d8813c5146104b857806370a08231146104cd578063715018a6146105015780637437681e14610515575f80fd5b806342966c68146103d45780634551bbe9146103f35780634a0da6731461041e5780634ada218b1461044c5780634f7041a514610465575f80fd5b806323b872dd1161021157806323b872dd1461030b578063313ce5671461032a5780633268cc561461034b578063378dc3dc1461038257806339509351146103b5575f80fd5b80630210a83d1461025757806306fdde0314610261578063095ea7b31461028b57806318160ddd146102ba57806322ab155e146102d8575f80fd5b3661025357005b5f80fd5b61025f610780565b005b34801561026c575f80fd5b50610275610a5a565b6040516102829190611a5e565b60405180910390f35b348015610296575f80fd5b506102aa6102a5366004611abe565b610aea565b6040519015158152602001610282565b3480156102c5575f80fd5b506002545b604051908152602001610282565b3480156102e3575f80fd5b506102ca7f00000000000000000000000000000000000000000000000000000000000186a081565b348015610316575f80fd5b506102aa610325366004611ae8565b610b00565b348015610335575f80fd5b5060055460405160ff9091168152602001610282565b348015610356575f80fd5b5060095461036a906001600160a01b031681565b6040516001600160a01b039091168152602001610282565b34801561038d575f80fd5b506102ca7f000000000000000000000000000000000000000000084595161401484a00000081565b3480156103c0575f80fd5b506102aa6103cf366004611abe565b610b50565b3480156103df575f80fd5b5061025f6103ee366004611b26565b610b86565b3480156103fe575f80fd5b506102ca61040d366004611b3d565b60176020525f908152604090205481565b348015610429575f80fd5b506102aa610438366004611b3d565b60196020525f908152604090205460ff1681565b348015610457575f80fd5b50601a546102aa9060ff1681565b348015610470575f80fd5b506102ca600b5481565b348015610485575f80fd5b5061025f610494366004611b26565b610b93565b3480156104a4575f80fd5b50600d5461036a906001600160a01b031681565b3480156104c3575f80fd5b506102ca600a5481565b3480156104d8575f80fd5b506102ca6104e7366004611b3d565b6001600160a01b03165f9081526020819052604090205490565b34801561050c575f80fd5b5061025f610bc8565b348015610520575f80fd5b506102ca60105481565b348015610535575f80fd5b506102ca60145481565b34801561054a575f80fd5b506102ca60155481565b34801561055f575f80fd5b506102ca60075481565b348015610574575f80fd5b506012546102aa9060ff1681565b34801561058d575f80fd5b5061025f610c47565b3480156105a1575f80fd5b5061025f6105b0366004611b26565b610cd9565b3480156105c0575f80fd5b5060055461010090046001600160a01b031661036a565b3480156105e2575f80fd5b506102ca60135481565b3480156105f7575f80fd5b50610275610d5b565b34801561060b575f80fd5b506102aa61061a366004611abe565b610d6a565b34801561062a575f80fd5b506102aa610639366004611abe565b610da0565b348015610649575f80fd5b5061025f610658366004611b5f565b610dac565b348015610668575f80fd5b5061025f610677366004611b26565b610def565b348015610687575f80fd5b506102ca600c5481565b34801561069c575f80fd5b5061025f6106ab366004611b26565b610e24565b3480156106bb575f80fd5b506102ca60115481565b3480156106d0575f80fd5b506102ca6106df366004611b7e565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610714575f80fd5b50600e5461036a906001600160a01b031681565b348015610733575f80fd5b506102aa610742366004611b3d565b60186020525f908152604090205460ff1681565b348015610761575f80fd5b506102ca600f5481565b348015610776575f80fd5b506102ca60085481565b6005546001600160a01b036101009091041633146107b95760405162461bcd60e51b81526004016107b090611bb5565b60405180910390fd5b600754156108095760405162461bcd60e51b815260206004820152601860248201527f4c697175696469747920616c72656164792061646465642e000000000000000060448201526064016107b0565b6009546001600160a01b031661082130825f19610ea6565b5f816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561085e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108829190611bea565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108cd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108f19190611bea565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561093b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061095f9190611bea565b6001600160a01b038082165f908152601960205260409020805460ff19166001179055909150821663f305d71947306109ac816001600160a01b03165f9081526020819052604090205490565b5f80336109bb42610384611c19565b60405160e089901b6001600160e01b03191681526001600160a01b039687166004820152602481019590955260448501939093526064840191909152909216608482015260a481019190915260c40160606040518083038185885af1158015610a26573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a4b9190611c2c565b50504360075550504260085550565b606060038054610a6990611c57565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9590611c57565b8015610ae05780601f10610ab757610100808354040283529160200191610ae0565b820191905f5260205f20905b815481529060010190602001808311610ac357829003601f168201915b5050505050905090565b5f610af6338484610ea6565b5060015b92915050565b5f610b0c848484610fca565b6001600160a01b0384165f90815260016020908152604080832033808552925290912054610b46918691610b41908690611c8f565b610ea6565b5060019392505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610af6918590610b41908690611c19565b610b903382611673565b50565b6005546001600160a01b03610100909104163314610bc35760405162461bcd60e51b81526004016107b090611bb5565b600f55565b6005546001600160a01b03610100909104163314610bf85760405162461bcd60e51b81526004016107b090611bb5565b6005546040515f9161010090046001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a360058054610100600160a81b0319169055565b6005546001600160a01b03610100909104163314610c775760405162461bcd60e51b81526004016107b090611bb5565b601a5460ff1615610cca5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c656400000000000060448201526064016107b0565b601a805460ff19166001179055565b6005546001600160a01b03610100909104163314610d095760405162461bcd60e51b81526004016107b090611bb5565b600a54811115610d515760405162461bcd60e51b81526020600482015260136024820152722a30bc1032bc31b2b2b2399036b0bc2a30bc1760691b60448201526064016107b0565b600c819055600a55565b606060048054610a6990611c57565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610af6918590610b41908690611c8f565b5f610af6338484610fca565b6005546001600160a01b03610100909104163314610ddc5760405162461bcd60e51b81526004016107b090611bb5565b6012805460ff1916911515919091179055565b6005546001600160a01b03610100909104163314610e1f5760405162461bcd60e51b81526004016107b090611bb5565b601055565b6005546001600160a01b03610100909104163314610e545760405162461bcd60e51b81526004016107b090611bb5565b600a54811115610e9c5760405162461bcd60e51b81526020600482015260136024820152722a30bc1032bc31b2b2b2399036b0bc2a30bc1760691b60448201526064016107b0565b600b819055600a55565b6001600160a01b038316610f085760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107b0565b6001600160a01b038216610f695760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107b0565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b601a54819060ff1615155f03611059576005546001600160a01b0385811661010090920416148061100357506001600160a01b03841630145b8061101657506001600160a01b03831630145b6110595760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016107b0565b6007545f036110e1576005546001600160a01b0385811661010090920416148061108b57506001600160a01b03841630145b8061109e57506001600160a01b03831630145b6110e15760405162461bcd60e51b81526020600482015260146024820152732634b8bab4b234ba3c903737ba1030b23232b21760611b60448201526064016107b0565b6001600160a01b0384165f9081526019602052604090205460ff168061111e57506001600160a01b0383165f9081526019602052604090205460ff165b15611465576001600160a01b0384165f9081526018602052604081205460ff168061116057506001600160a01b0384165f9081526018602052604090205460ff165b1561116c57505f6111c1565b6001600160a01b0385165f9081526019602052604090205460ff16156111955750600b546111c1565b6001600160a01b0384165f9081526019602052604090205460ff16156111be5750600c546111c1565b505f5b5f7f00000000000000000000000000000000000000000000000000000000000186a06111ed8386611ca2565b6111f79190611cb9565b90506112038185611c8f565b9250611210863083611763565b8060135f8282546112219190611c19565b90915550506001600160a01b0386165f9081526018602052604090205460ff1661146257601054158061127e57506001600160a01b0385165f9081526019602052604090205460ff16801561127e57506001600160a01b03861630145b806112e157507f00000000000000000000000000000000000000000000000000000000000186a07f000000000000000000000000000000000000000000084595161401484a0000006010546112d39190611ca2565b6112dd9190611cb9565b8411155b61132d5760405162461bcd60e51b815260206004820152601e60248201527f5472616e7366657220616d6f756e742065786365656473206d617854782e000060448201526064016107b0565b6001600160a01b0386165f9081526019602052604090205460ff168061136a57506001600160a01b0385165f9081526019602052604090205460ff165b156114625760125460ff16158061139857506001600160a01b0386165f9081526019602052604090205460ff165b806113cd57506001600160a01b0385165f9081526019602052604090205460ff1680156113cd57506001600160a01b03861630145b806113fb57506011546001600160a01b0387165f908152601760205260409020546113f89042611c8f565b10155b6114475760405162461bcd60e51b815260206004820152601e60248201527f5472616e7366657220636f6f6c646f776e206e6f7420657870697265642e000060448201526064016107b0565b6001600160a01b0386165f9081526017602052604090204290555b50505b6001600160a01b0383165f9081526019602052604090205460ff161580156114a557506001600160a01b0383165f9081526018602052604090205460ff16155b156115cf575f600f5411806114d157506001600160a01b0383165f9081526019602052604090205460ff165b806114e457506001600160a01b03831630145b8061156f57507f00000000000000000000000000000000000000000000000000000000000186a07f000000000000000000000000000000000000000000084595161401484a000000600f546115399190611ca2565b6115439190611cb9565b81611562856001600160a01b03165f9081526020819052604090205490565b61156c9190611c19565b11155b6115cf5760405162461bcd60e51b815260206004820152602b60248201527f526563697069656e742077616c6c65742062616c616e6365206578636565647360448201526a1036b0bc2bb0b63632ba1760a91b60648201526084016107b0565b6001600160a01b0384165f9081526019602052604090205460ff161580156115f857505f601354115b8015611611575060145460155461160f9042611c8f565b115b156116625742601555601380545f909155611641611630600283611cb9565b600d546001600160a01b03166118cb565b61166061164f600283611cb9565b600e546001600160a01b03166118cb565b505b61166d848483611763565b50505050565b6001600160a01b0382166116d35760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016107b0565b6001600160a01b0382165f908152602081905260409020546116f6908290611c8f565b6001600160a01b0383165f9081526020819052604090205560025461171c908290611c8f565b6002556040518181525f906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b0383166117c75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107b0565b6001600160a01b0382166118295760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107b0565b6001600160a01b0383165f9081526020819052604090205461184c908290611c8f565b6001600160a01b038085165f90815260208190526040808220939093559084168152205461187b908290611c19565b6001600160a01b038381165f818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610fbd565b305f908152602081905260409020548211156118f357305f9081526020819052604090205491505b6009546040805160028082526060820183526001600160a01b03909316925f9260208301908036833701905050905030815f8151811061193557611935611cec565b60200260200101906001600160a01b031690816001600160a01b031681525050816001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611991573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119b59190611bea565b816001815181106119c8576119c8611cec565b6001600160a01b03928316602091820292909201015282166318cbafe5855f84876119f542610384611c19565b6040518663ffffffff1660e01b8152600401611a15959493929190611d00565b5f604051808303815f875af1158015611a30573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611a579190810190611d71565b5050505050565b5f602080835283518060208501525f5b81811015611a8a57858101830151858201604001528201611a6e565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610b90575f80fd5b5f8060408385031215611acf575f80fd5b8235611ada81611aaa565b946020939093013593505050565b5f805f60608486031215611afa575f80fd5b8335611b0581611aaa565b92506020840135611b1581611aaa565b929592945050506040919091013590565b5f60208284031215611b36575f80fd5b5035919050565b5f60208284031215611b4d575f80fd5b8135611b5881611aaa565b9392505050565b5f60208284031215611b6f575f80fd5b81358015158114611b58575f80fd5b5f8060408385031215611b8f575f80fd5b8235611b9a81611aaa565b91506020830135611baa81611aaa565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611bfa575f80fd5b8151611b5881611aaa565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610afa57610afa611c05565b5f805f60608486031215611c3e575f80fd5b8351925060208401519150604084015190509250925092565b600181811c90821680611c6b57607f821691505b602082108103611c8957634e487b7160e01b5f52602260045260245ffd5b50919050565b81810381811115610afa57610afa611c05565b8082028115828204841417610afa57610afa611c05565b5f82611cd357634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611d505784516001600160a01b031683529383019391830191600101611d2b565b50506001600160a01b03969096166060850152505050608001529392505050565b5f6020808385031215611d82575f80fd5b825167ffffffffffffffff80821115611d99575f80fd5b818501915085601f830112611dac575f80fd5b815181811115611dbe57611dbe611cd8565b8060051b604051601f19603f83011681018181108582111715611de357611de3611cd8565b604052918252848201925083810185019188831115611e00575f80fd5b938501935b82851015611e1e57845184529385019392850192611e05565b9897505050505050505056fea2646970667358221220aacf061f8798c0ee2e77258c464b028edfb2b67d87345b432864faaffbe9f96364736f6c63430008180033

Deployed Bytecode Sourcemap

12420:6991:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14254:752;;;:::i;:::-;;1712:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2616:194;;;;;;;;;;-1:-1:-1;2616:194:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;2616:194:0;1023:187:1;1989:100:0;;;;;;;;;;-1:-1:-1;2069:12:0;;1989:100;;;1361:25:1;;;1349:2;1334:18;1989:100:0;1215:177:1;12511:39:0;;;;;;;;;;;;;;;2818:358;;;;;;;;;;-1:-1:-1;2818:358:0;;;;;:::i;:::-;;:::i;1898:83::-;;;;;;;;;;-1:-1:-1;1964:9:0;;1898:83;;1964:9;;;;2000:36:1;;1988:2;1973:18;1898:83:0;1858:184:1;12624:28:0;;;;;;;;;;-1:-1:-1;12624:28:0;;;;-1:-1:-1;;;;;12624:28:0;;;;;;-1:-1:-1;;;;;2211:32:1;;;2193:51;;2181:2;2166:18;12624:28:0;2047:203:1;12466:38:0;;;;;;;;;;;;;;;3184:290;;;;;;;;;;-1:-1:-1;3184:290:0;;;;;:::i;:::-;;:::i;15687:83::-;;;;;;;;;;-1:-1:-1;15687:83:0;;;;;:::i;:::-;;:::i;13095:50::-;;;;;;;;;;-1:-1:-1;13095:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;13197:35;;;;;;;;;;-1:-1:-1;13197:35:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13241:34;;;;;;;;;;-1:-1:-1;13241:34:0;;;;;;;;12687:21;;;;;;;;;;;;;;;;15362:102;;;;;;;;;;-1:-1:-1;15362:102:0;;;;;:::i;:::-;;:::i;12744:33::-;;;;;;;;;;-1:-1:-1;12744:33:0;;;;-1:-1:-1;;;;;12744:33:0;;;12659:21;;;;;;;;;;;;;;;;2097:119;;;;;;;;;;-1:-1:-1;2097:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;2190:18:0;2163:7;2190:18;;;;;;;;;;;;2097:119;6253:148;;;;;;;;;;;;;:::i;12859:20::-;;;;;;;;;;;;;;;;12992:27;;;;;;;;;;;;;;;;13026;;;;;;;;;;;;;;;;12559:25;;;;;;;;;;;;;;;;12918:31;;;;;;;;;;-1:-1:-1;12918:31:0;;;;;;;;19222:149;;;;;;;;;;;;;:::i;15187:167::-;;;;;;;;;;-1:-1:-1;15187:167:0;;;;;:::i;:::-;;:::i;6039:79::-;;;;;;;;;;-1:-1:-1;6104:6:0;;;;;-1:-1:-1;;;;;6104:6:0;6039:79;;12958:27;;;;;;;;;;;;;;;;1803:87;;;;;;;;;;;;;:::i;3482:300::-;;;;;;;;;;-1:-1:-1;3482:300:0;;;;;:::i;:::-;;:::i;2224:200::-;;;;;;;;;;-1:-1:-1;2224:200:0;;;;;:::i;:::-;;:::i;15566:113::-;;;;;;;;;;-1:-1:-1;15566:113:0;;;;;:::i;:::-;;:::i;15472:86::-;;;;;;;;;;-1:-1:-1;15472:86:0;;;;;:::i;:::-;;:::i;12715:22::-;;;;;;;;;;;;;;;;15014:165;;;;;;;;;;-1:-1:-1;15014:165:0;;;;;:::i;:::-;;:::i;12886:25::-;;;;;;;;;;;;;;;;2432:176;;;;;;;;;;-1:-1:-1;2432:176:0;;;;;:::i;:::-;-1:-1:-1;;;;;2573:18:0;;;2546:7;2573:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2432:176;12784:35;;;;;;;;;;-1:-1:-1;12784:35:0;;;;-1:-1:-1;;;;;12784:35:0;;;13152:38;;;;;;;;;;-1:-1:-1;13152:38:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12828:24;;;;;;;;;;;;;;;;12591;;;;;;;;;;;;;;;;14254:752;6166:6;;-1:-1:-1;;;;;6166:6:0;;;;;1005:10;6166:22;6158:67;;;;-1:-1:-1;;;6158:67:0;;;;;;;:::i;:::-;;;;;;;;;14331:10:::1;::::0;:15;14323:52:::1;;;::::0;-1:-1:-1;;;14323:52:0;;3926:2:1;14323:52:0::1;::::0;::::1;3908:21:1::0;3965:2;3945:18;;;3938:30;4004:26;3984:18;;;3977:54;4048:18;;14323:52:0::1;3724:348:1::0;14323:52:0::1;14435:13;::::0;-1:-1:-1;;;;;14435:13:0::1;14460:51;14477:4;14435:13:::0;-1:-1:-1;;14460:8:0::1;:51::i;:::-;14524:12;14557:6;-1:-1:-1::0;;;;;14557:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14539:46:0::1;;14608:4;14628:6;-1:-1:-1::0;;;;;14628:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14539:113;::::0;-1:-1:-1;;;;;;14539:113:0::1;::::0;;;;;;-1:-1:-1;;;;;4563:15:1;;;14539:113:0::1;::::0;::::1;4545:34:1::0;4615:15;;4595:18;;;4588:43;4480:18;;14539:113:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14663:9:0;;::::1;;::::0;;;:3:::1;:9;::::0;;;;:16;;-1:-1:-1;;14663:16:0::1;14675:4;14663:16;::::0;;14524:128;;-1:-1:-1;14692:22:0;::::1;;14722:21;14767:4;14787:24;14767:4:::0;-1:-1:-1;;;;;2190:18:0;2163:7;2190:18;;;;;;;;;;;;2097:119;14787:24:::1;14826:1;::::0;14858:10:::1;14883:28;:15;14901:10;14883:28;:::i;:::-;14692:230;::::0;::::1;::::0;;;-1:-1:-1;;;;;;14692:230:0;;;-1:-1:-1;;;;;5263:15:1;;;14692:230:0::1;::::0;::::1;5245:34:1::0;5295:18;;;5288:34;;;;5338:18;;;5331:34;;;;5381:18;;;5374:34;;;;5445:15;;;5424:19;;;5417:44;5477:19;;;5470:35;;;;5179:19;;14692:230:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;14948:12:0::1;14935:10;:25:::0;-1:-1:-1;;14983:15:0::1;14971:9;:27:::0;-1:-1:-1;14254:752:0:o;1712:83::-;1749:13;1782:5;1775:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1712:83;:::o;2616:194::-;2724:4;2741:39;1005:10;2764:7;2773:6;2741:8;:39::i;:::-;-1:-1:-1;2798:4:0;2616:194;;;;;:::o;2818:358::-;2958:4;2975:36;2985:6;2993:9;3004:6;2975:9;:36::i;:::-;-1:-1:-1;;;;;3093:19:0;;;;;;:11;:19;;;;;;;;1005:10;3093:33;;;;;;;;;3022:124;;3045:6;;3093:42;;3129:6;;3093:42;:::i;:::-;3022:8;:124::i;:::-;-1:-1:-1;3164:4:0;2818:358;;;;;:::o;3184:290::-;1005:10;3297:4;3386:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;3386:34:0;;;;;;;;;;3297:4;;3314:130;;3364:7;;3386:47;;3423:10;;3386:47;:::i;15687:83::-;15737:25;15743:10;15755:6;15737:5;:25::i;:::-;15687:83;:::o;15362:102::-;6166:6;;-1:-1:-1;;;;;6166:6:0;;;;;1005:10;6166:22;6158:67;;;;-1:-1:-1;;;6158:67:0;;;;;;;:::i;:::-;15434:9:::1;:22:::0;15362:102::o;6253:148::-;6166:6;;-1:-1:-1;;;;;6166:6:0;;;;;1005:10;6166:22;6158:67;;;;-1:-1:-1;;;6158:67:0;;;;;;;:::i;:::-;6344:6:::1;::::0;6323:40:::1;::::0;6360:1:::1;::::0;6344:6:::1;::::0;::::1;-1:-1:-1::0;;;;;6344:6:0::1;::::0;6323:40:::1;::::0;6360:1;;6323:40:::1;6374:6;:19:::0;;-1:-1:-1;;;;;;6374:19:0::1;::::0;;6253:148::o;19222:149::-;6166:6;;-1:-1:-1;;;;;6166:6:0;;;;;1005:10;6166:22;6158:67;;;;-1:-1:-1;;;6158:67:0;;;;;;;:::i;:::-;19286:14:::1;::::0;::::1;;19285:15;19277:54;;;::::0;-1:-1:-1;;;19277:54:0;;6547:2:1;19277:54:0::1;::::0;::::1;6529:21:1::0;6586:2;6566:18;;;6559:30;6625:28;6605:18;;;6598:56;6671:18;;19277:54:0::1;6345:350:1::0;19277:54:0::1;19342:14;:21:::0;;-1:-1:-1;;19342:21:0::1;19359:4;19342:21;::::0;;19222:149::o;15187:167::-;6166:6;;-1:-1:-1;;;;;6166:6:0;;;;;1005:10;6166:22;6158:67;;;;-1:-1:-1;;;6158:67:0;;;;;;;:::i;:::-;15267:6:::1;;15259:4;:14;;15251:46;;;::::0;-1:-1:-1;;;15251:46:0;;6902:2:1;15251:46:0::1;::::0;::::1;6884:21:1::0;6941:2;6921:18;;;6914:30;-1:-1:-1;;;6960:18:1;;;6953:49;7019:18;;15251:46:0::1;6700:343:1::0;15251:46:0::1;15308:7;:14:::0;;;15333:6:::1;:13:::0;15187:167::o;1803:87::-;1842:13;1875:7;1868:14;;;;;:::i;3482:300::-;1005:10;3600:4;3689:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;3689:34:0;;;;;;;;;;3600:4;;3617:135;;3667:7;;3689:52;;3726:15;;3689:52;:::i;2224:200::-;2335:4;2352:42;1005:10;2376:9;2387:6;2352:9;:42::i;15566:113::-;6166:6;;-1:-1:-1;;;;;6166:6:0;;;;;1005:10;6166:22;6158:67;;;;-1:-1:-1;;;6158:67:0;;;;;;;:::i;:::-;15641:19:::1;:30:::0;;-1:-1:-1;;15641:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15566:113::o;15472:86::-;6166:6;;-1:-1:-1;;;;;6166:6:0;;;;;1005:10;6166:22;6158:67;;;;-1:-1:-1;;;6158:67:0;;;;;;;:::i;:::-;15536:5:::1;:14:::0;15472:86::o;15014:165::-;6166:6;;-1:-1:-1;;;;;6166:6:0;;;;;1005:10;6166:22;6158:67;;;;-1:-1:-1;;;6158:67:0;;;;;;;:::i;:::-;15093:6:::1;;15085:4;:14;;15077:46;;;::::0;-1:-1:-1;;;15077:46:0;;6902:2:1;15077:46:0::1;::::0;::::1;6884:21:1::0;6941:2;6921:18;;;6914:30;-1:-1:-1;;;6960:18:1;;;6953:49;7019:18;;15077:46:0::1;6700:343:1::0;15077:46:0::1;15134:6;:13:::0;;;15158:6:::1;:13:::0;15014:165::o;5085:380::-;-1:-1:-1;;;;;5221:19:0;;5213:68;;;;-1:-1:-1;;;5213:68:0;;7250:2:1;5213:68:0;;;7232:21:1;7289:2;7269:18;;;7262:30;7328:34;7308:18;;;7301:62;-1:-1:-1;;;7379:18:1;;;7372:34;7423:19;;5213:68:0;7048:400:1;5213:68:0;-1:-1:-1;;;;;5300:21:0;;5292:68;;;;-1:-1:-1;;;5292:68:0;;7655:2:1;5292:68:0;;;7637:21:1;7694:2;7674:18;;;7667:30;7733:34;7713:18;;;7706:62;-1:-1:-1;;;7784:18:1;;;7777:32;7826:19;;5292:68:0;7453:398:1;5292:68:0;-1:-1:-1;;;;;5373:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;5425:32;;1361:25:1;;;5425:32:0;;1334:18:1;5425:32:0;;;;;;;;5085:380;;;:::o;15778:2858::-;15950:14;;15927:6;;15950:14;;:23;;15902:22;15950:23;15946:201;;6104:6;;-1:-1:-1;;;;;16016:15:0;;;6104:6;;;;;16016:15;;:40;;-1:-1:-1;;;;;;16035:21:0;;16051:4;16035:21;16016:40;:63;;;-1:-1:-1;;;;;;16060:19:0;;16074:4;16060:19;16016:63;15990:145;;;;-1:-1:-1;;;15990:145:0;;8058:2:1;15990:145:0;;;8040:21:1;8097:2;8077:18;;;8070:30;-1:-1:-1;;;8116:18:1;;;8109:50;8176:18;;15990:145:0;7856:344:1;15990:145:0;16163:10;;16177:1;16163:15;16159:193;;6104:6;;-1:-1:-1;;;;;16221:15:0;;;6104:6;;;;;16221:15;;:40;;-1:-1:-1;;;;;;16240:21:0;;16256:4;16240:21;16221:40;:63;;;-1:-1:-1;;;;;;16265:19:0;;16279:4;16265:19;16221:63;16195:145;;;;-1:-1:-1;;;16195:145:0;;8407:2:1;16195:145:0;;;8389:21:1;8446:2;8426:18;;;8419:30;-1:-1:-1;;;8465:18:1;;;8458:50;8525:18;;16195:145:0;8205:344:1;16195:145:0;-1:-1:-1;;;;;16368:9:0;;;;;;:3;:9;;;;;;;;;:20;;-1:-1:-1;;;;;;16381:7:0;;;;;;:3;:7;;;;;;;;16368:20;16364:1418;;;-1:-1:-1;;;;;16441:12:0;;16405:15;16441:12;;;:6;:12;;;;;;;;;:26;;-1:-1:-1;;;;;;16457:10:0;;;;;;:6;:10;;;;;;;;16441:26;16437:273;;;-1:-1:-1;16498:1:0;16437:273;;;-1:-1:-1;;;;;16525:9:0;;;;;;:3;:9;;;;;;;;16521:189;;;-1:-1:-1;16565:6:0;;16521:189;;;-1:-1:-1;;;;;16597:7:0;;;;;;:3;:7;;;;;;;;16593:117;;;-1:-1:-1;16635:7:0;;16593:117;;;-1:-1:-1;16693:1:0;16593:117;16726:17;16767:14;16747:16;16756:7;16747:6;:16;:::i;:::-;16746:35;;;;:::i;:::-;16726:55;-1:-1:-1;16813:18:0;16726:55;16813:6;:18;:::i;:::-;16796:35;;16846:47;16862:4;16876;16883:9;16846:15;:47::i;:::-;16924:9;16908:12;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;16955:12:0;;;;;;:6;:12;;;;;;;;16950:821;;17018:5;;:10;;:73;;-1:-1:-1;;;;;;17058:7:0;;;;;;:3;:7;;;;;;;;:32;;;;-1:-1:-1;;;;;;17069:21:0;;17085:4;17069:21;17058:32;17018:152;;;;17156:14;17139:13;17131:5;;:21;;;;:::i;:::-;17130:40;;;;:::i;:::-;17120:6;:50;;17018:152;16988:256;;;;-1:-1:-1;;;16988:256:0;;9151:2:1;16988:256:0;;;9133:21:1;9190:2;9170:18;;;9163:30;9229:32;9209:18;;;9202:60;9279:18;;16988:256:0;8949:354:1;16988:256:0;-1:-1:-1;;;;;17269:9:0;;;;;;:3;:9;;;;;;;;;:20;;-1:-1:-1;;;;;;17282:7:0;;;;;;:3;:7;;;;;;;;17269:20;17265:491;;;17349:19;;;;17348:20;;:62;;-1:-1:-1;;;;;;17401:9:0;;;;;;:3;:9;;;;;;;;17348:62;:129;;;-1:-1:-1;;;;;;17444:7:0;;;;;;:3;:7;;;;;;;;:32;;;;-1:-1:-1;;;;;;17455:21:0;;17471:4;17455:21;17444:32;17348:244;;;-1:-1:-1;17582:10:0;;-1:-1:-1;;;;;17528:21:0;;;;;;:15;:21;;;;;;17510:39;;:15;:39;:::i;:::-;:82;;17348:244;17314:360;;;;-1:-1:-1;;;17314:360:0;;9510:2:1;17314:360:0;;;9492:21:1;9549:2;9529:18;;;9522:30;9588:32;9568:18;;;9561:60;9638:18;;17314:360:0;9308:354:1;17314:360:0;-1:-1:-1;;;;;17697:21:0;;;;;;:15;:21;;;;;17721:15;17697:39;;17265:491;16390:1392;;16364:1418;-1:-1:-1;;;;;17799:7:0;;;;;;:3;:7;;;;;;;;17798:8;:23;;;;-1:-1:-1;;;;;;17811:10:0;;;;;;:6;:10;;;;;;;;17810:11;17798:23;17794:374;;;17876:1;17864:9;;:13;:45;;;-1:-1:-1;;;;;;17902:7:0;;;;;;:3;:7;;;;;;;;17864:45;:89;;;-1:-1:-1;;;;;;17934:19:0;;17948:4;17934:19;17864:89;:213;;;;18063:14;18046:13;18034:9;;:25;;;;:::i;:::-;18033:44;;;;:::i;:::-;17994:14;17978:13;17988:2;-1:-1:-1;;;;;2190:18:0;2163:7;2190:18;;;;;;;;;;;;2097:119;17978:13;:30;;;;:::i;:::-;:99;;17864:213;17838:318;;;;-1:-1:-1;;;17838:318:0;;9869:2:1;17838:318:0;;;9851:21:1;9908:2;9888:18;;;9881:30;9947:34;9927:18;;;9920:62;-1:-1:-1;;;9998:18:1;;;9991:41;10049:19;;17838:318:0;9667:407:1;17838:318:0;-1:-1:-1;;;;;18199:9:0;;;;;;:3;:9;;;;;;;;18198:10;:43;;;;;18240:1;18225:12;;:16;18198:43;:105;;;;-1:-1:-1;18291:12:0;;18276;;18258:30;;:15;:30;:::i;:::-;:45;18198:105;18180:395;;;18345:15;18330:12;:30;18392:12;;;18375:14;18419:16;;;18450:48;18467:10;-1:-1:-1;18392:12:0;18467:10;:::i;:::-;18479:18;;-1:-1:-1;;;;;18479:18:0;18450:16;:48::i;:::-;18513:50;18530:10;18539:1;18530:6;:10;:::i;:::-;18542:20;;-1:-1:-1;;;;;18542:20:0;18513:16;:50::i;:::-;18315:260;18180:395;18587:41;18603:4;18609:2;18613:14;18587:15;:41::i;:::-;15891:2745;15778:2858;;;:::o;4703:374::-;-1:-1:-1;;;;;4787:21:0;;4779:67;;;;-1:-1:-1;;;4779:67:0;;10281:2:1;4779:67:0;;;10263:21:1;10320:2;10300:18;;;10293:30;10359:34;10339:18;;;10332:62;-1:-1:-1;;;10410:18:1;;;10403:31;10451:19;;4779:67:0;10079:397:1;4779:67:0;-1:-1:-1;;;;;4942:18:0;;:9;:18;;;;;;;;;;;:27;;4963:6;;4942:27;:::i;:::-;-1:-1:-1;;;;;4921:18:0;;:9;:18;;;;;;;;;;:48;4995:12;;:21;;5010:6;;4995:21;:::i;:::-;4980:12;:36;5032:37;;1361:25:1;;;5058:1:0;;-1:-1:-1;;;;;5032:37:0;;;;;1349:2:1;1334:18;5032:37:0;;;;;;;4703:374;;:::o;3790:525::-;-1:-1:-1;;;;;3930:20:0;;3922:70;;;;-1:-1:-1;;;3922:70:0;;10683:2:1;3922:70:0;;;10665:21:1;10722:2;10702:18;;;10695:30;10761:34;10741:18;;;10734:62;-1:-1:-1;;;10812:18:1;;;10805:35;10857:19;;3922:70:0;10481:401:1;3922:70:0;-1:-1:-1;;;;;4011:23:0;;4003:71;;;;-1:-1:-1;;;4003:71:0;;11089:2:1;4003:71:0;;;11071:21:1;11128:2;11108:18;;;11101:30;11167:34;11147:18;;;11140:62;-1:-1:-1;;;11218:18:1;;;11211:33;11261:19;;4003:71:0;10887:399:1;4003:71:0;-1:-1:-1;;;;;4167:17:0;;:9;:17;;;;;;;;;;;:26;;4187:6;;4167:26;:::i;:::-;-1:-1:-1;;;;;4147:17:0;;;:9;:17;;;;;;;;;;;:46;;;;4227:20;;;;;;;:29;;4250:6;;4227:29;:::i;:::-;-1:-1:-1;;;;;4204:20:0;;;:9;:20;;;;;;;;;;;;:52;;;;4272:35;1361:25:1;;;4204:20:0;;4272:35;;;;;;1334:18:1;4272:35:0;1215:177:1;18644:570:0;18765:4;2163:7;2190:18;;;;;;;;;;;18733:11;:38;18729:109;;;18820:4;2163:7;2190:18;;;;;;;;;;;18788:38;;18729:109;18895:13;;18944:16;;;18958:1;18944:16;;;;;;;;-1:-1:-1;;;;;18895:13:0;;;;18848:25;;18944:16;;;;;;;;;;-1:-1:-1;18944:16:0;18920:40;;18989:4;18971;18976:1;18971:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;18971:23:0;;;-1:-1:-1;;;;;18971:23:0;;;;;19015:6;-1:-1:-1;;;;;19015:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19005:4;19010:1;19005:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19005:23:0;;;:7;;;;;;;;;:23;19039:28;;;19082:11;19108:1;19124:4;19143:9;19167:28;:15;19185:10;19167:28;:::i;:::-;19039:167;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;19039:167:0;;;;;;;;;;;;:::i;:::-;;18718:496;;18644:570;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2255:180::-;2314:6;2367:2;2355:9;2346:7;2342:23;2338:32;2335:52;;;2383:1;2380;2373:12;2335:52;-1:-1:-1;2406:23:1;;2255:180;-1:-1:-1;2255:180:1:o;2440:247::-;2499:6;2552:2;2540:9;2531:7;2527:23;2523:32;2520:52;;;2568:1;2565;2558:12;2520:52;2607:9;2594:23;2626:31;2651:5;2626:31;:::i;:::-;2676:5;2440:247;-1:-1:-1;;;2440:247:1:o;2692:273::-;2748:6;2801:2;2789:9;2780:7;2776:23;2772:32;2769:52;;;2817:1;2814;2807:12;2769:52;2856:9;2843:23;2909:5;2902:13;2895:21;2888:5;2885:32;2875:60;;2931:1;2928;2921:12;2970:388;3038:6;3046;3099:2;3087:9;3078:7;3074:23;3070:32;3067:52;;;3115:1;3112;3105:12;3067:52;3154:9;3141:23;3173:31;3198:5;3173:31;:::i;:::-;3223:5;-1:-1:-1;3280:2:1;3265:18;;3252:32;3293:33;3252:32;3293:33;:::i;:::-;3345:7;3335:17;;;2970:388;;;;;:::o;3363:356::-;3565:2;3547:21;;;3584:18;;;3577:30;3643:34;3638:2;3623:18;;3616:62;3710:2;3695:18;;3363:356::o;4077:251::-;4147:6;4200:2;4188:9;4179:7;4175:23;4171:32;4168:52;;;4216:1;4213;4206:12;4168:52;4248:9;4242:16;4267:31;4292:5;4267:31;:::i;4642:127::-;4703:10;4698:3;4694:20;4691:1;4684:31;4734:4;4731:1;4724:15;4758:4;4755:1;4748:15;4774:125;4839:9;;;4860:10;;;4857:36;;;4873:18;;:::i;5516:306::-;5604:6;5612;5620;5673:2;5661:9;5652:7;5648:23;5644:32;5641:52;;;5689:1;5686;5679:12;5641:52;5718:9;5712:16;5702:26;;5768:2;5757:9;5753:18;5747:25;5737:35;;5812:2;5801:9;5797:18;5791:25;5781:35;;5516:306;;;;;:::o;5827:380::-;5906:1;5902:12;;;;5949;;;5970:61;;6024:4;6016:6;6012:17;6002:27;;5970:61;6077:2;6069:6;6066:14;6046:18;6043:38;6040:161;;6123:10;6118:3;6114:20;6111:1;6104:31;6158:4;6155:1;6148:15;6186:4;6183:1;6176:15;6040:161;;5827:380;;;:::o;6212:128::-;6279:9;;;6300:11;;;6297:37;;;6314:18;;:::i;8554:168::-;8627:9;;;8658;;8675:15;;;8669:22;;8655:37;8645:71;;8696:18;;:::i;8727:217::-;8767:1;8793;8783:132;;8837:10;8832:3;8828:20;8825:1;8818:31;8872:4;8869:1;8862:15;8900:4;8897:1;8890:15;8783:132;-1:-1:-1;8929:9:1;;8727:217::o;11291:127::-;11352:10;11347:3;11343:20;11340:1;11333:31;11383:4;11380:1;11373:15;11407:4;11404:1;11397:15;11423:127;11484:10;11479:3;11475:20;11472:1;11465:31;11515:4;11512:1;11505:15;11539:4;11536:1;11529:15;11555:980;11817:4;11865:3;11854:9;11850:19;11896:6;11885:9;11878:25;11922:2;11960:6;11955:2;11944:9;11940:18;11933:34;12003:3;11998:2;11987:9;11983:18;11976:31;12027:6;12062;12056:13;12093:6;12085;12078:22;12131:3;12120:9;12116:19;12109:26;;12170:2;12162:6;12158:15;12144:29;;12191:1;12201:195;12215:6;12212:1;12209:13;12201:195;;;12280:13;;-1:-1:-1;;;;;12276:39:1;12264:52;;12371:15;;;;12336:12;;;;12312:1;12230:9;12201:195;;;-1:-1:-1;;;;;;;12452:32:1;;;;12447:2;12432:18;;12425:60;-1:-1:-1;;;12516:3:1;12501:19;12494:35;12413:3;11555:980;-1:-1:-1;;;11555:980:1:o;12540:1105::-;12635:6;12666:2;12709;12697:9;12688:7;12684:23;12680:32;12677:52;;;12725:1;12722;12715:12;12677:52;12758:9;12752:16;12787:18;12828:2;12820:6;12817:14;12814:34;;;12844:1;12841;12834:12;12814:34;12882:6;12871:9;12867:22;12857:32;;12927:7;12920:4;12916:2;12912:13;12908:27;12898:55;;12949:1;12946;12939:12;12898:55;12978:2;12972:9;13000:2;12996;12993:10;12990:36;;;13006:18;;:::i;:::-;13052:2;13049:1;13045:10;13084:2;13078:9;13147:2;13143:7;13138:2;13134;13130:11;13126:25;13118:6;13114:38;13202:6;13190:10;13187:22;13182:2;13170:10;13167:18;13164:46;13161:72;;;13213:18;;:::i;:::-;13249:2;13242:22;13299:18;;;13333:15;;;;-1:-1:-1;13375:11:1;;;13371:20;;;13403:19;;;13400:39;;;13435:1;13432;13425:12;13400:39;13459:11;;;;13479:135;13495:6;13490:3;13487:15;13479:135;;;13561:10;;13549:23;;13512:12;;;;13592;;;;13479:135;;;13633:6;12540:1105;-1:-1:-1;;;;;;;;12540:1105:1:o

Swarm Source

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