ETH Price: $3,311.11 (+1.20%)
Gas: 3 Gwei

Token

Baby Wojak (BWOJAK)
 

Overview

Max Total Supply

1,000,000,000 BWOJAK

Holders

149

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
971,602.316488778 BWOJAK

Value
$0.00
0x100a3f316c4e04a1fec48962fc497c52f0f282fd
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:
BabyWojak

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-04-19
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IUniswapV2Factory {
    function getPair(
        address tokenA,
        address tokenB
    ) external view returns (address pair);

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

interface IUniswapV2Pair {
    function getReserves()
        external
        view
        returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
}

interface IUniswapV2Router01 {
    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);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);
}

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

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() external view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() external view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(
        address account
    ) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5.05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() external view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(
        address owner,
        address spender
    ) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(
        address to,
        uint256 amount
    ) external virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
     * `transferFrom`. This is semantically equivalent to an infinite approval.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(
        address spender,
        uint256 amount
    ) external virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * NOTE: Does not update the allowance if the current allowance
     * is the maximum `uint256`.
     *
     * Requirements:
     *
     * - `from` and `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(
        address spender,
        uint256 subtractedValue
    ) external virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(
            currentAllowance >= subtractedValue,
            "ERC20: decreased allowance below zero"
        );
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(
        address spender,
        uint256 addedValue
    ) external virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply += amount;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _totalSupply -= amount;
        }

        emit Transfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    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);
    }

    /**
     * @dev Updates `owner` s allowance for `spender` based on spent `amount`.
     *
     * Does not update the allowance amount in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Might emit an {Approval} event.
     */
    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(
                currentAllowance >= amount,
                "ERC20: insufficient allowance"
            );
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

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

        uint256 fromBalance = _balances[from];
        require(
            fromBalance >= amount,
            "ERC20: transfer amount exceeds balance"
        );
        unchecked {
            _balances[from] = fromBalance - amount;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);
    }
}

contract BabyWojak is ERC20, Ownable {
    address public marketingWallet = 0x08B1307849f4087EDAC13B63519Bc80e7841Dfd9;
    address public devWallet = 0x9CAA354a93aC18bce5abA698F106832e3Bf878da;

    uint256 public taxTotalBuy = 1000;

    uint256 public feeLiquidity;
    uint256 public feeMarketing = 850;
    uint256 public feeDev = 150;
    uint256 public taxTotal = feeLiquidity + feeMarketing + feeDev;

    uint256 public maxWalletSize;
    bool inSwapAndLiquify;
    IUniswapV2Router02 public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;

    uint256 public _swapbackThreshold = 150;
   
    mapping(address => bool) private _isExcludedFromFee;
    
    bool public open;

    modifier lockTheSwap() {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor() ERC20("Baby Wojak", "BWOJAK") {
        uint256 startSupply = 1e9 * 10 ** decimals();
        maxWalletSize = startSupply;
        _mint(msg.sender, (startSupply));
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;

        _isExcludedFromFee[address(uniswapV2Router)] = true;
        _isExcludedFromFee[msg.sender] = true;
        
        _approve(msg.sender, address(uniswapV2Router), type(uint256).max);
        _approve(address(this), address(uniswapV2Router), type(uint256).max);
    }

    function airdrop(address[] calldata recipients, uint256[] calldata amounts)
        external
        onlyOwner
    {
        require(
            recipients.length == amounts.length
        );
        for (uint256 i = 0; i < recipients.length; i++) {
            _transfer(msg.sender, recipients[i], amounts[i]);
        }
    }

    function openTrade() external onlyOwner {
        open = true;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        if (
            _isExcludedFromFee[from] ||
            _isExcludedFromFee[to] ||
            inSwapAndLiquify
        ) {
            super._transfer(from, to, amount);
        } else {
            require(open, "Not open yet");
            uint taxAmount;
            if (to == uniswapV2Pair) {
                // Sell
                uint256 bal = balanceOf(address(this));
                uint256 limit = balanceOf(uniswapV2Pair) * _swapbackThreshold / 10000;
                if (
                    bal >= limit
                ) {
                    if (bal >= 3 * limit) bal = 3 * limit;
                    _swapAndLiquify(bal);
                }
                taxAmount = amount * taxTotal / 10000;
            } else if (from == uniswapV2Pair) {
                taxAmount = amount * taxTotalBuy / 10000;
                require(
                    balanceOf(to) + amount - taxAmount <= maxWalletSize,
                    "ERC20: transfer amount exceeds max wallet amount"
                );
            } else {
                require(
                    balanceOf(to) + amount <= maxWalletSize,
                    "ERC20: transfer amount exceeds max wallet amount"
                );
            }
            super._transfer(from, to, amount - taxAmount);
            if (taxAmount > 0) {
                super._transfer(from, address(this), taxAmount);
            }
        }
    }

    function _swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {
        uint256 _taxTotal = taxTotal;
        if (_taxTotal == 0) return;
        uint256 taxWithoutHalfLP = _taxTotal - feeLiquidity / 2;
        uint256 toSell = contractTokenBalance * taxWithoutHalfLP / _taxTotal;

        _swapTokensForEth(toSell);
        uint256 newBalance = address(this).balance;

        uint256 toDev = newBalance * feeDev / taxWithoutHalfLP;
        uint256 toMarketing = newBalance * feeMarketing / taxWithoutHalfLP;
        if (feeLiquidity > 0) {
            _addLiquidity(
                contractTokenBalance - toSell,
                newBalance - toDev - toMarketing
            );
        }
        if (toMarketing > 0) {
            payable(marketingWallet).transfer(toMarketing);
        }

        if (address(this).balance > 0) {
            payable(devWallet).transfer(address(this).balance);
        }
    }

    function _swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            (block.timestamp)
        );
    }

    function _addLiquidity(
        uint256 tokenAmount,
        uint256 ethAmount
    ) private lockTheSwap {
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            owner(),
            block.timestamp
        );
    }

    function updateSwapbackThreshold(uint256 newValue) public onlyOwner {
        _swapbackThreshold = newValue;
    }

    function updateMarketingWallet(address newWallet) public onlyOwner {
        marketingWallet = newWallet;
    }

    function updateDevWallet(address newWallet) public onlyOwner {
        devWallet = newWallet;
    }

    function setBuyTax(uint256 newValue) public onlyOwner {
        taxTotalBuy = newValue;
    }

    function excludeFromFees(address[] calldata addresses)
        public
        onlyOwner
    {
        for (uint256 i = 0; i < addresses.length; i++) {
            _isExcludedFromFee[addresses[i]] = true;
        }
    }

    function includeInFees(address[] calldata addresses)
        public
        onlyOwner
    {
        for (uint256 i = 0; i < addresses.length; i++) {
            _isExcludedFromFee[addresses[i]] = false;
        }
    }

    function setSellTax(
        uint256 _feeDev,
        uint256 _feeLiquidity,
        uint256 _feeMarketing
    ) public onlyOwner {
        feeDev = _feeDev;
        feeLiquidity = _feeLiquidity;
        feeMarketing = _feeMarketing;
        taxTotal = _feeDev + _feeLiquidity + _feeMarketing;
    }

    function setMaxWalletSize(uint256 _maxWalletSize) public onlyOwner {
        maxWalletSize = _maxWalletSize;
    }

    function saveETH() external onlyOwner {
        payable(owner()).transfer(address(this).balance);
    }

    function saveTokens(
        IERC20 tokenAddress,
        address walletAddress,
        uint256 amt
    ) external onlyOwner {
        uint256 bal = tokenAddress.balanceOf(address(this));
        IERC20(tokenAddress).transfer(
            walletAddress,
            amt > bal ? bal : amt
        );
    }

    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":"_swapbackThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","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":"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":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"includeInFees","outputs":[],"stateMutability":"nonpayable","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":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletSize","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":"open","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"saveETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"tokenAddress","type":"address"},{"internalType":"address","name":"walletAddress","type":"address"},{"internalType":"uint256","name":"amt","type":"uint256"}],"name":"saveTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_feeDev","type":"uint256"},{"internalType":"uint256","name":"_feeLiquidity","type":"uint256"},{"internalType":"uint256","name":"_feeMarketing","type":"uint256"}],"name":"setSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxTotalBuy","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":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"updateSwapbackThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052600680546001600160a01b03199081167308b1307849f4087edac13b63519bc80e7841dfd91790915560078054909116739caa354a93ac18bce5aba698f106832e3bf878da1790556103e8600855610352600a8190556096600b8190556009549091620000719162000577565b6200007d919062000577565b600c556096600f553480156200009257600080fd5b506040518060400160405280600a8152602001694261627920576f6a616b60b01b8152506040518060400160405280600681526020016542574f4a414b60d01b8152508160039081620000e6919062000638565b506004620000f5828262000638565b505050620001126200010c6200031c60201b60201c565b62000320565b6000620001226012600a62000801565b6200013290633b9aca0062000819565b600d819055905062000145338262000372565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200019d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c3919062000833565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000211573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000237919062000833565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000285573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ab919062000833565b6001600160a01b0390811660a052811660808190526000818152601060205260408082208054600160ff1991821681179092553380855292909320805490931617909155620002fd9160001962000439565b62000314306080516000196200043960201b60201c565b50506200085e565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620003ce5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b8060026000828254620003e2919062000577565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b0383166200049d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401620003c5565b6001600160a01b038216620005005760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401620003c5565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156200058d576200058d62000561565b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620005be57607f821691505b602082108103620005df57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200063357600081815260208120601f850160051c810160208610156200060e5750805b601f850160051c820191505b818110156200062f578281556001016200061a565b5050505b505050565b81516001600160401b0381111562000654576200065462000593565b6200066c81620006658454620005a9565b84620005e5565b602080601f831160018114620006a457600084156200068b5750858301515b600019600386901b1c1916600185901b1785556200062f565b600085815260208120601f198616915b82811015620006d557888601518255948401946001909101908401620006b4565b5085821015620006f45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600181815b808511156200074557816000190482111562000729576200072962000561565b808516156200073757918102915b93841c939080029062000709565b509250929050565b6000826200075e575060016200058d565b816200076d575060006200058d565b81600181146200078657600281146200079157620007b1565b60019150506200058d565b60ff841115620007a557620007a562000561565b50506001821b6200058d565b5060208310610133831016604e8410600b8410161715620007d6575081810a6200058d565b620007e2838362000704565b8060001904821115620007f957620007f962000561565b029392505050565b60006200081260ff8416836200074d565b9392505050565b80820281158282048414176200058d576200058d62000561565b6000602082840312156200084657600080fd5b81516001600160a01b03811681146200081257600080fd5b60805160a051611c07620008ae600039600081816103ab01528181610f4d01528181610fa2015261103a0152600081816102a201528181611516015281816115ce01526116650152611c076000f3fe6080604052600436106102295760003560e01c80638f3fa86011610123578063b2bcf6b3116100ab578063ea2a48701161006f578063ea2a48701461066e578063f2fde38b14610684578063f45ac6af146106a4578063fb201b1d146106ba578063fcfff16f146106cf57600080fd5b8063b2bcf6b3146105d8578063ba802b3d146105ee578063dc1052e21461060e578063dd62ed3e1461062e578063ea1644d51461064e57600080fd5b806395d89b41116100f257806395d89b411461054d578063a457c2d714610562578063a9059cbb14610582578063aa962b02146105a2578063aacebbe3146105b857600080fd5b80638f3fa860146104e1578063923ffc14146104f757806392f42870146105175780639452e81a1461053757600080fd5b806349bd5a5e116101b15780637f2cbc2e116101755780637f2cbc2e14610458578063896f1a951461046e5780638da5cb5b146104835780638ea5220f146104a15780638f2076fd146104c157600080fd5b806349bd5a5e1461039957806367243482146103cd57806370a08231146103ed578063715018a61461042357806375f0a8741461043857600080fd5b80631816467f116101f85780631816467f146102fb5780631e02e0541461031d57806323b872dd1461033d578063313ce5671461035d578063395093511461037957600080fd5b806306fdde0314610235578063095ea7b3146102605780631694505e1461029057806318160ddd146102dc57600080fd5b3661023057005b600080fd5b34801561024157600080fd5b5061024a6106e9565b6040516102579190611740565b60405180910390f35b34801561026c57600080fd5b5061028061027b3660046117a3565b61077b565b6040519015158152602001610257565b34801561029c57600080fd5b506102c47f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610257565b3480156102e857600080fd5b506002545b604051908152602001610257565b34801561030757600080fd5b5061031b6103163660046117cf565b610795565b005b34801561032957600080fd5b5061031b6103383660046117f3565b6107bf565b34801561034957600080fd5b5061028061035836600461180c565b6107cc565b34801561036957600080fd5b5060405160128152602001610257565b34801561038557600080fd5b506102806103943660046117a3565b6107f0565b3480156103a557600080fd5b506102c47f000000000000000000000000000000000000000000000000000000000000000081565b3480156103d957600080fd5b5061031b6103e8366004611899565b610812565b3480156103f957600080fd5b506102ed6104083660046117cf565b6001600160a01b031660009081526020819052604090205490565b34801561042f57600080fd5b5061031b610893565b34801561044457600080fd5b506006546102c4906001600160a01b031681565b34801561046457600080fd5b506102ed60085481565b34801561047a57600080fd5b5061031b6108a7565b34801561048f57600080fd5b506005546001600160a01b03166102c4565b3480156104ad57600080fd5b506007546102c4906001600160a01b031681565b3480156104cd57600080fd5b5061031b6104dc366004611905565b6108eb565b3480156104ed57600080fd5b506102ed600d5481565b34801561050357600080fd5b5061031b610512366004611931565b61091f565b34801561052357600080fd5b5061031b610532366004611931565b61099e565b34801561054357600080fd5b506102ed600a5481565b34801561055957600080fd5b5061024a610a18565b34801561056e57600080fd5b5061028061057d3660046117a3565b610a27565b34801561058e57600080fd5b5061028061059d3660046117a3565b610aa7565b3480156105ae57600080fd5b506102ed600f5481565b3480156105c457600080fd5b5061031b6105d33660046117cf565b610ab5565b3480156105e457600080fd5b506102ed60095481565b3480156105fa57600080fd5b5061031b61060936600461180c565b610adf565b34801561061a57600080fd5b5061031b6106293660046117f3565b610be2565b34801561063a57600080fd5b506102ed610649366004611973565b610bef565b34801561065a57600080fd5b5061031b6106693660046117f3565b610c1a565b34801561067a57600080fd5b506102ed600c5481565b34801561069057600080fd5b5061031b61069f3660046117cf565b610c27565b3480156106b057600080fd5b506102ed600b5481565b3480156106c657600080fd5b5061031b610c9d565b3480156106db57600080fd5b506011546102809060ff1681565b6060600380546106f8906119ac565b80601f0160208091040260200160405190810160405280929190818152602001828054610724906119ac565b80156107715780601f1061074657610100808354040283529160200191610771565b820191906000526020600020905b81548152906001019060200180831161075457829003601f168201915b5050505050905090565b600033610789818585610cb4565b60019150505b92915050565b61079d610dd8565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6107c7610dd8565b600f55565b6000336107da858285610e32565b6107e5858585610eac565b506001949350505050565b6000336107898185856108038383610bef565b61080d91906119fc565b610cb4565b61081a610dd8565b82811461082657600080fd5b60005b8381101561088c5761087a3386868481811061084757610847611a0f565b905060200201602081019061085c91906117cf565b85858581811061086e5761086e611a0f565b90506020020135610eac565b8061088481611a25565b915050610829565b5050505050565b61089b610dd8565b6108a56000611159565b565b6108af610dd8565b6005546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156108e8573d6000803e3d6000fd5b50565b6108f3610dd8565b600b8390556009829055600a8190558061090d83856119fc565b61091791906119fc565b600c55505050565b610927610dd8565b60005b818110156109995760006010600085858581811061094a5761094a611a0f565b905060200201602081019061095f91906117cf565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061099181611a25565b91505061092a565b505050565b6109a6610dd8565b60005b81811015610999576001601060008585858181106109c9576109c9611a0f565b90506020020160208101906109de91906117cf565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610a1081611a25565b9150506109a9565b6060600480546106f8906119ac565b60003381610a358286610bef565b905083811015610a9a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6107e58286868403610cb4565b600033610789818585610eac565b610abd610dd8565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b610ae7610dd8565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa158015610b2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b529190611a3e565b9050836001600160a01b031663a9059cbb84838511610b715784610b73565b835b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610bbe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088c9190611a57565b610bea610dd8565b600855565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610c22610dd8565b600d55565b610c2f610dd8565b6001600160a01b038116610c945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a91565b6108e881611159565b610ca5610dd8565b6011805460ff19166001179055565b6001600160a01b038316610d165760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a91565b6001600160a01b038216610d775760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a91565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6005546001600160a01b031633146108a55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a91565b6000610e3e8484610bef565b90506000198114610ea65781811015610e995760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610a91565b610ea68484848403610cb4565b50505050565b6001600160a01b03831660009081526010602052604090205460ff1680610eeb57506001600160a01b03821660009081526010602052604090205460ff165b80610ef85750600e5460ff165b15610f08576109998383836111ab565b60115460ff16610f495760405162461bcd60e51b815260206004820152600c60248201526b139bdd081bdc195b881e595d60a21b6044820152606401610a91565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031603611038573060009081526020819052604080822054600f546001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001684529183205490929161271091610fd99190611a79565b610fe39190611a90565b905080821061101457610ff7816003611a79565b821061100b57611008816003611a79565b91505b61101482611350565b612710600c54856110259190611a79565b61102f9190611a90565b92505050611134565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b0316036110e957612710600854836110829190611a79565b61108c9190611a90565b9050600d5481836110b2866001600160a01b031660009081526020819052604090205490565b6110bc91906119fc565b6110c69190611ab2565b11156110e45760405162461bcd60e51b8152600401610a9190611ac5565b611134565b600d548261110c856001600160a01b031660009081526020819052604090205490565b61111691906119fc565b11156111345760405162461bcd60e51b8152600401610a9190611ac5565b61114884846111438486611ab2565b6111ab565b8015610ea657610ea68430836111ab565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03831661120f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a91565b6001600160a01b0382166112715760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a91565b6001600160a01b038316600090815260208190526040902054818110156112e95760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a91565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350505050565b600e805460ff19166001179055600c54600081900361136f57506114a5565b600060026009546113809190611a90565b61138a9083611ab2565b90506000826113998386611a79565b6113a39190611a90565b90506113ae816114b2565b600b54479060009084906113c29084611a79565b6113cc9190611a90565b9050600084600a54846113df9190611a79565b6113e99190611a90565b6009549091501561141b5761141b6114018589611ab2565b8261140c8587611ab2565b6114169190611ab2565b61164e565b801561145d576006546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561145b573d6000803e3d6000fd5b505b471561149e576007546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561149c573d6000803e3d6000fd5b505b5050505050505b50600e805460ff19169055565b600e805460ff1916600117905560408051600280825260608201835260009260208301908036833701905050905030816000815181106114f4576114f4611a0f565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611572573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115969190611b15565b816001815181106115a9576115a9611a0f565b6001600160a01b03928316602091820292909201015260405163791ac94760e01b81527f00000000000000000000000000000000000000000000000000000000000000009091169063791ac9479061160e908590600090869030904290600401611b32565b600060405180830381600087803b15801561162857600080fd5b505af115801561163c573d6000803e3d6000fd5b5050600e805460ff1916905550505050565b600e805460ff191660011790556001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663f305d7198230856000806116a26005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561170a573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061172f9190611ba3565b5050600e805460ff19169055505050565b600060208083528351808285015260005b8181101561176d57858101830151858201604001528201611751565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146108e857600080fd5b600080604083850312156117b657600080fd5b82356117c18161178e565b946020939093013593505050565b6000602082840312156117e157600080fd5b81356117ec8161178e565b9392505050565b60006020828403121561180557600080fd5b5035919050565b60008060006060848603121561182157600080fd5b833561182c8161178e565b9250602084013561183c8161178e565b929592945050506040919091013590565b60008083601f84011261185f57600080fd5b50813567ffffffffffffffff81111561187757600080fd5b6020830191508360208260051b850101111561189257600080fd5b9250929050565b600080600080604085870312156118af57600080fd5b843567ffffffffffffffff808211156118c757600080fd5b6118d38883890161184d565b909650945060208701359150808211156118ec57600080fd5b506118f98782880161184d565b95989497509550505050565b60008060006060848603121561191a57600080fd5b505081359360208301359350604090920135919050565b6000806020838503121561194457600080fd5b823567ffffffffffffffff81111561195b57600080fd5b6119678582860161184d565b90969095509350505050565b6000806040838503121561198657600080fd5b82356119918161178e565b915060208301356119a18161178e565b809150509250929050565b600181811c908216806119c057607f821691505b6020821081036119e057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561078f5761078f6119e6565b634e487b7160e01b600052603260045260246000fd5b600060018201611a3757611a376119e6565b5060010190565b600060208284031215611a5057600080fd5b5051919050565b600060208284031215611a6957600080fd5b815180151581146117ec57600080fd5b808202811582820484141761078f5761078f6119e6565b600082611aad57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561078f5761078f6119e6565b60208082526030908201527f45524332303a207472616e7366657220616d6f756e742065786365656473206d60408201526f185e081dd85b1b195d08185b5bdd5b9d60821b606082015260800190565b600060208284031215611b2757600080fd5b81516117ec8161178e565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b825784516001600160a01b031683529383019391830191600101611b5d565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611bb857600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212209ebeb9dde87f95a96f6db6763fea1c765a70c228a539c9297ccb11019264b16a64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102295760003560e01c80638f3fa86011610123578063b2bcf6b3116100ab578063ea2a48701161006f578063ea2a48701461066e578063f2fde38b14610684578063f45ac6af146106a4578063fb201b1d146106ba578063fcfff16f146106cf57600080fd5b8063b2bcf6b3146105d8578063ba802b3d146105ee578063dc1052e21461060e578063dd62ed3e1461062e578063ea1644d51461064e57600080fd5b806395d89b41116100f257806395d89b411461054d578063a457c2d714610562578063a9059cbb14610582578063aa962b02146105a2578063aacebbe3146105b857600080fd5b80638f3fa860146104e1578063923ffc14146104f757806392f42870146105175780639452e81a1461053757600080fd5b806349bd5a5e116101b15780637f2cbc2e116101755780637f2cbc2e14610458578063896f1a951461046e5780638da5cb5b146104835780638ea5220f146104a15780638f2076fd146104c157600080fd5b806349bd5a5e1461039957806367243482146103cd57806370a08231146103ed578063715018a61461042357806375f0a8741461043857600080fd5b80631816467f116101f85780631816467f146102fb5780631e02e0541461031d57806323b872dd1461033d578063313ce5671461035d578063395093511461037957600080fd5b806306fdde0314610235578063095ea7b3146102605780631694505e1461029057806318160ddd146102dc57600080fd5b3661023057005b600080fd5b34801561024157600080fd5b5061024a6106e9565b6040516102579190611740565b60405180910390f35b34801561026c57600080fd5b5061028061027b3660046117a3565b61077b565b6040519015158152602001610257565b34801561029c57600080fd5b506102c47f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b039091168152602001610257565b3480156102e857600080fd5b506002545b604051908152602001610257565b34801561030757600080fd5b5061031b6103163660046117cf565b610795565b005b34801561032957600080fd5b5061031b6103383660046117f3565b6107bf565b34801561034957600080fd5b5061028061035836600461180c565b6107cc565b34801561036957600080fd5b5060405160128152602001610257565b34801561038557600080fd5b506102806103943660046117a3565b6107f0565b3480156103a557600080fd5b506102c47f000000000000000000000000b490616de2badbdd8fa7ef2f4d79559e9db733c781565b3480156103d957600080fd5b5061031b6103e8366004611899565b610812565b3480156103f957600080fd5b506102ed6104083660046117cf565b6001600160a01b031660009081526020819052604090205490565b34801561042f57600080fd5b5061031b610893565b34801561044457600080fd5b506006546102c4906001600160a01b031681565b34801561046457600080fd5b506102ed60085481565b34801561047a57600080fd5b5061031b6108a7565b34801561048f57600080fd5b506005546001600160a01b03166102c4565b3480156104ad57600080fd5b506007546102c4906001600160a01b031681565b3480156104cd57600080fd5b5061031b6104dc366004611905565b6108eb565b3480156104ed57600080fd5b506102ed600d5481565b34801561050357600080fd5b5061031b610512366004611931565b61091f565b34801561052357600080fd5b5061031b610532366004611931565b61099e565b34801561054357600080fd5b506102ed600a5481565b34801561055957600080fd5b5061024a610a18565b34801561056e57600080fd5b5061028061057d3660046117a3565b610a27565b34801561058e57600080fd5b5061028061059d3660046117a3565b610aa7565b3480156105ae57600080fd5b506102ed600f5481565b3480156105c457600080fd5b5061031b6105d33660046117cf565b610ab5565b3480156105e457600080fd5b506102ed60095481565b3480156105fa57600080fd5b5061031b61060936600461180c565b610adf565b34801561061a57600080fd5b5061031b6106293660046117f3565b610be2565b34801561063a57600080fd5b506102ed610649366004611973565b610bef565b34801561065a57600080fd5b5061031b6106693660046117f3565b610c1a565b34801561067a57600080fd5b506102ed600c5481565b34801561069057600080fd5b5061031b61069f3660046117cf565b610c27565b3480156106b057600080fd5b506102ed600b5481565b3480156106c657600080fd5b5061031b610c9d565b3480156106db57600080fd5b506011546102809060ff1681565b6060600380546106f8906119ac565b80601f0160208091040260200160405190810160405280929190818152602001828054610724906119ac565b80156107715780601f1061074657610100808354040283529160200191610771565b820191906000526020600020905b81548152906001019060200180831161075457829003601f168201915b5050505050905090565b600033610789818585610cb4565b60019150505b92915050565b61079d610dd8565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6107c7610dd8565b600f55565b6000336107da858285610e32565b6107e5858585610eac565b506001949350505050565b6000336107898185856108038383610bef565b61080d91906119fc565b610cb4565b61081a610dd8565b82811461082657600080fd5b60005b8381101561088c5761087a3386868481811061084757610847611a0f565b905060200201602081019061085c91906117cf565b85858581811061086e5761086e611a0f565b90506020020135610eac565b8061088481611a25565b915050610829565b5050505050565b61089b610dd8565b6108a56000611159565b565b6108af610dd8565b6005546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156108e8573d6000803e3d6000fd5b50565b6108f3610dd8565b600b8390556009829055600a8190558061090d83856119fc565b61091791906119fc565b600c55505050565b610927610dd8565b60005b818110156109995760006010600085858581811061094a5761094a611a0f565b905060200201602081019061095f91906117cf565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061099181611a25565b91505061092a565b505050565b6109a6610dd8565b60005b81811015610999576001601060008585858181106109c9576109c9611a0f565b90506020020160208101906109de91906117cf565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610a1081611a25565b9150506109a9565b6060600480546106f8906119ac565b60003381610a358286610bef565b905083811015610a9a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6107e58286868403610cb4565b600033610789818585610eac565b610abd610dd8565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b610ae7610dd8565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa158015610b2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b529190611a3e565b9050836001600160a01b031663a9059cbb84838511610b715784610b73565b835b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610bbe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088c9190611a57565b610bea610dd8565b600855565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610c22610dd8565b600d55565b610c2f610dd8565b6001600160a01b038116610c945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a91565b6108e881611159565b610ca5610dd8565b6011805460ff19166001179055565b6001600160a01b038316610d165760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a91565b6001600160a01b038216610d775760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a91565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6005546001600160a01b031633146108a55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a91565b6000610e3e8484610bef565b90506000198114610ea65781811015610e995760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610a91565b610ea68484848403610cb4565b50505050565b6001600160a01b03831660009081526010602052604090205460ff1680610eeb57506001600160a01b03821660009081526010602052604090205460ff165b80610ef85750600e5460ff165b15610f08576109998383836111ab565b60115460ff16610f495760405162461bcd60e51b815260206004820152600c60248201526b139bdd081bdc195b881e595d60a21b6044820152606401610a91565b60007f000000000000000000000000b490616de2badbdd8fa7ef2f4d79559e9db733c76001600160a01b0316836001600160a01b031603611038573060009081526020819052604080822054600f546001600160a01b037f000000000000000000000000b490616de2badbdd8fa7ef2f4d79559e9db733c71684529183205490929161271091610fd99190611a79565b610fe39190611a90565b905080821061101457610ff7816003611a79565b821061100b57611008816003611a79565b91505b61101482611350565b612710600c54856110259190611a79565b61102f9190611a90565b92505050611134565b7f000000000000000000000000b490616de2badbdd8fa7ef2f4d79559e9db733c76001600160a01b0316846001600160a01b0316036110e957612710600854836110829190611a79565b61108c9190611a90565b9050600d5481836110b2866001600160a01b031660009081526020819052604090205490565b6110bc91906119fc565b6110c69190611ab2565b11156110e45760405162461bcd60e51b8152600401610a9190611ac5565b611134565b600d548261110c856001600160a01b031660009081526020819052604090205490565b61111691906119fc565b11156111345760405162461bcd60e51b8152600401610a9190611ac5565b61114884846111438486611ab2565b6111ab565b8015610ea657610ea68430836111ab565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03831661120f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a91565b6001600160a01b0382166112715760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a91565b6001600160a01b038316600090815260208190526040902054818110156112e95760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a91565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350505050565b600e805460ff19166001179055600c54600081900361136f57506114a5565b600060026009546113809190611a90565b61138a9083611ab2565b90506000826113998386611a79565b6113a39190611a90565b90506113ae816114b2565b600b54479060009084906113c29084611a79565b6113cc9190611a90565b9050600084600a54846113df9190611a79565b6113e99190611a90565b6009549091501561141b5761141b6114018589611ab2565b8261140c8587611ab2565b6114169190611ab2565b61164e565b801561145d576006546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561145b573d6000803e3d6000fd5b505b471561149e576007546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561149c573d6000803e3d6000fd5b505b5050505050505b50600e805460ff19169055565b600e805460ff1916600117905560408051600280825260608201835260009260208301908036833701905050905030816000815181106114f4576114f4611a0f565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611572573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115969190611b15565b816001815181106115a9576115a9611a0f565b6001600160a01b03928316602091820292909201015260405163791ac94760e01b81527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d9091169063791ac9479061160e908590600090869030904290600401611b32565b600060405180830381600087803b15801561162857600080fd5b505af115801561163c573d6000803e3d6000fd5b5050600e805460ff1916905550505050565b600e805460ff191660011790556001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d1663f305d7198230856000806116a26005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561170a573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061172f9190611ba3565b5050600e805460ff19169055505050565b600060208083528351808285015260005b8181101561176d57858101830151858201604001528201611751565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146108e857600080fd5b600080604083850312156117b657600080fd5b82356117c18161178e565b946020939093013593505050565b6000602082840312156117e157600080fd5b81356117ec8161178e565b9392505050565b60006020828403121561180557600080fd5b5035919050565b60008060006060848603121561182157600080fd5b833561182c8161178e565b9250602084013561183c8161178e565b929592945050506040919091013590565b60008083601f84011261185f57600080fd5b50813567ffffffffffffffff81111561187757600080fd5b6020830191508360208260051b850101111561189257600080fd5b9250929050565b600080600080604085870312156118af57600080fd5b843567ffffffffffffffff808211156118c757600080fd5b6118d38883890161184d565b909650945060208701359150808211156118ec57600080fd5b506118f98782880161184d565b95989497509550505050565b60008060006060848603121561191a57600080fd5b505081359360208301359350604090920135919050565b6000806020838503121561194457600080fd5b823567ffffffffffffffff81111561195b57600080fd5b6119678582860161184d565b90969095509350505050565b6000806040838503121561198657600080fd5b82356119918161178e565b915060208301356119a18161178e565b809150509250929050565b600181811c908216806119c057607f821691505b6020821081036119e057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561078f5761078f6119e6565b634e487b7160e01b600052603260045260246000fd5b600060018201611a3757611a376119e6565b5060010190565b600060208284031215611a5057600080fd5b5051919050565b600060208284031215611a6957600080fd5b815180151581146117ec57600080fd5b808202811582820484141761078f5761078f6119e6565b600082611aad57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561078f5761078f6119e6565b60208082526030908201527f45524332303a207472616e7366657220616d6f756e742065786365656473206d60408201526f185e081dd85b1b195d08185b5bdd5b9d60821b606082015260800190565b600060208284031215611b2757600080fd5b81516117ec8161178e565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b825784516001600160a01b031683529383019391830191600101611b5d565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611bb857600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212209ebeb9dde87f95a96f6db6763fea1c765a70c228a539c9297ccb11019264b16a64736f6c63430008130033

Deployed Bytecode Sourcemap

16265:7185:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7284:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9484:228;;;;;;;;;;-1:-1:-1;9484:228:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;9484:228:0;1023:187:1;16753:51:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;16753:51:0;1215:229:1;8389:110:0;;;;;;;;;;-1:-1:-1;8479:12:0;;8389:110;;;1595:25:1;;;1583:2;1568:18;8389:110:0;1449:177:1;21863:101:0;;;;;;;;;;-1:-1:-1;21863:101:0;;;;;:::i;:::-;;:::i;:::-;;21618:116;;;;;;;;;;-1:-1:-1;21618:116:0;;;;;:::i;:::-;;:::i;10292:297::-;;;;;;;;;;-1:-1:-1;10292:297:0;;;;;:::i;:::-;;:::i;8231:93::-;;;;;;;;;;-1:-1:-1;8231:93:0;;8314:2;2671:36:1;;2659:2;2644:18;8231:93:0;2529:184:1;12001:265:0;;;;;;;;;;-1:-1:-1;12001:265:0;;;;;:::i;:::-;;:::i;16811:38::-;;;;;;;;;;;;;;;17910:338;;;;;;;;;;-1:-1:-1;17910:338:0;;;;;:::i;:::-;;:::i;7449:143::-;;;;;;;;;;-1:-1:-1;7449:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7566:18:0;7539:7;7566:18;;;;;;;;;;;;7449:143;5739:103;;;;;;;;;;;;;:::i;16309:75::-;;;;;;;;;;-1:-1:-1;16309:75:0;;;;-1:-1:-1;;;;;16309:75:0;;;16469:33;;;;;;;;;;;;;;;;22982:105;;;;;;;;;;;;;:::i;5091:87::-;;;;;;;;;;-1:-1:-1;5164:6:0;;-1:-1:-1;;;;;5164:6:0;5091:87;;16391:69;;;;;;;;;;-1:-1:-1;16391:69:0;;;;-1:-1:-1;;;;;16391:69:0;;;22542:308;;;;;;;;;;-1:-1:-1;22542:308:0;;;;;:::i;:::-;;:::i;16690:28::-;;;;;;;;;;;;;;;;22309:225;;;;;;;;;;-1:-1:-1;22309:225:0;;;;;:::i;:::-;;:::i;22075:226::-;;;;;;;;;;-1:-1:-1;22075:226:0;;;;;:::i;:::-;;:::i;16545:33::-;;;;;;;;;;;;;;;;7108:106;;;;;;;;;;;;;:::i;11092:500::-;;;;;;;;;;-1:-1:-1;11092:500:0;;;;;:::i;:::-;;:::i;8944:220::-;;;;;;;;;;-1:-1:-1;8944:220:0;;;;;:::i;:::-;;:::i;16858:39::-;;;;;;;;;;;;;;;;21742:113;;;;;;;;;;-1:-1:-1;21742:113:0;;;;;:::i;:::-;;:::i;16511:27::-;;;;;;;;;;;;;;;;23095:315;;;;;;;;;;-1:-1:-1;23095:315:0;;;;;:::i;:::-;;:::i;21972:95::-;;;;;;;;;;-1:-1:-1;21972:95:0;;;;;:::i;:::-;;:::i;8562:176::-;;;;;;;;;;-1:-1:-1;8562:176:0;;;;;:::i;:::-;;:::i;22858:116::-;;;;;;;;;;-1:-1:-1;22858:116:0;;;;;:::i;:::-;;:::i;16619:62::-;;;;;;;;;;;;;;;;5997:238;;;;;;;;;;-1:-1:-1;5997:238:0;;;;;:::i;:::-;;:::i;16585:27::-;;;;;;;;;;;;;;;;18256:70;;;;;;;;;;;;;:::i;16973:16::-;;;;;;;;;;-1:-1:-1;16973:16:0;;;;;;;;7284:102;7340:13;7373:5;7366:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7284:102;:::o;9484:228::-;9594:4;4471:10;9650:32;4471:10;9666:7;9675:6;9650:8;:32::i;:::-;9700:4;9693:11;;;9484:228;;;;;:::o;21863:101::-;4977:13;:11;:13::i;:::-;21935:9:::1;:21:::0;;-1:-1:-1;;;;;;21935:21:0::1;-1:-1:-1::0;;;;;21935:21:0;;;::::1;::::0;;;::::1;::::0;;21863:101::o;21618:116::-;4977:13;:11;:13::i;:::-;21697:18:::1;:29:::0;21618:116::o;10292:297::-;10425:4;4471:10;10483:38;10499:4;4471:10;10514:6;10483:15;:38::i;:::-;10532:27;10542:4;10548:2;10552:6;10532:9;:27::i;:::-;-1:-1:-1;10577:4:0;;10292:297;-1:-1:-1;;;;10292:297:0:o;12001:265::-;12116:4;4471:10;12172:64;4471:10;12188:7;12225:10;12197:25;4471:10;12188:7;12197:9;:25::i;:::-;:38;;;;:::i;:::-;12172:8;:64::i;17910:338::-;4977:13;:11;:13::i;:::-;18061:35;;::::1;18039:68;;;::::0;::::1;;18123:9;18118:123;18138:21:::0;;::::1;18118:123;;;18181:48;18191:10;18203;;18214:1;18203:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;18218:7;;18226:1;18218:10;;;;;;;:::i;:::-;;;;;;;18181:9;:48::i;:::-;18161:3:::0;::::1;::::0;::::1;:::i;:::-;;;;18118:123;;;;17910:338:::0;;;;:::o;5739:103::-;4977:13;:11;:13::i;:::-;5804:30:::1;5831:1;5804:18;:30::i;:::-;5739:103::o:0;22982:105::-;4977:13;:11;:13::i;:::-;5164:6;;23031:48:::1;::::0;-1:-1:-1;;;;;5164:6:0;;;;23057:21:::1;23031:48:::0;::::1;;;::::0;::::1;::::0;;;23057:21;5164:6;23031:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;22982:105::o:0;22542:308::-;4977:13;:11;:13::i;:::-;22687:6:::1;:16:::0;;;22714:12:::1;:28:::0;;;22753:12:::1;:28:::0;;;22768:13;22803:23:::1;22729:13:::0;22696:7;22803:23:::1;:::i;:::-;:39;;;;:::i;:::-;22792:8;:50:::0;-1:-1:-1;;;22542:308:0:o;22309:225::-;4977:13;:11;:13::i;:::-;22418:9:::1;22413:114;22433:20:::0;;::::1;22413:114;;;22510:5;22475:18;:32;22494:9;;22504:1;22494:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;22475:32:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;22475:32:0;:40;;-1:-1:-1;;22475:40:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22455:3;::::1;::::0;::::1;:::i;:::-;;;;22413:114;;;;22309:225:::0;;:::o;22075:226::-;4977:13;:11;:13::i;:::-;22186:9:::1;22181:113;22201:20:::0;;::::1;22181:113;;;22278:4;22243:18;:32;22262:9;;22272:1;22262:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;22243:32:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;22243:32:0;:39;;-1:-1:-1;;22243:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22223:3;::::1;::::0;::::1;:::i;:::-;;;;22181:113;;7108:106:::0;7166:13;7199:7;7192:14;;;;;:::i;11092:500::-;11212:4;4471:10;11212:4;11295:25;4471:10;11312:7;11295:9;:25::i;:::-;11268:52;;11373:15;11353:16;:35;;11331:122;;;;-1:-1:-1;;;11331:122:0;;6827:2:1;11331:122:0;;;6809:21:1;6866:2;6846:18;;;6839:30;6905:34;6885:18;;;6878:62;-1:-1:-1;;;6956:18:1;;;6949:35;7001:19;;11331:122:0;;;;;;;;;11489:60;11498:5;11505:7;11533:15;11514:16;:34;11489:8;:60::i;8944:220::-;9050:4;4471:10;9106:28;4471:10;9123:2;9127:6;9106:9;:28::i;21742:113::-;4977:13;:11;:13::i;:::-;21820:15:::1;:27:::0;;-1:-1:-1;;;;;;21820:27:0::1;-1:-1:-1::0;;;;;21820:27:0;;;::::1;::::0;;;::::1;::::0;;21742:113::o;23095:315::-;4977:13;:11;:13::i;:::-;23250:37:::1;::::0;-1:-1:-1;;;23250:37:0;;23281:4:::1;23250:37;::::0;::::1;1387:51:1::0;23236:11:0::1;::::0;-1:-1:-1;;;;;23250:22:0;::::1;::::0;::::1;::::0;1360:18:1;;23250:37:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23236:51;;23305:12;-1:-1:-1::0;;;;;23298:29:0::1;;23342:13;23376:3;23370;:9;:21;;23388:3;23370:21;;;23382:3;23370:21;23298:104;::::0;-1:-1:-1;;;;;;23298:104:0::1;::::0;;;;;;-1:-1:-1;;;;;7412:32:1;;;23298:104:0::1;::::0;::::1;7394:51:1::0;7461:18;;;7454:34;7367:18;;23298:104:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;21972:95::-:0;4977:13;:11;:13::i;:::-;22037:11:::1;:22:::0;21972:95::o;8562:176::-;-1:-1:-1;;;;;8703:18:0;;;8676:7;8703:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8562:176::o;22858:116::-;4977:13;:11;:13::i;:::-;22936::::1;:30:::0;22858:116::o;5997:238::-;4977:13;:11;:13::i;:::-;-1:-1:-1;;;;;6100:22:0;::::1;6078:110;;;::::0;-1:-1:-1;;;6078:110:0;;7983:2:1;6078:110:0::1;::::0;::::1;7965:21:1::0;8022:2;8002:18;;;7995:30;8061:34;8041:18;;;8034:62;-1:-1:-1;;;8112:18:1;;;8105:36;8158:19;;6078:110:0::1;7781:402:1::0;6078:110:0::1;6199:28;6218:8;6199:18;:28::i;18256:70::-:0;4977:13;:11;:13::i;:::-;18307:4:::1;:11:::0;;-1:-1:-1;;18307:11:0::1;18314:4;18307:11;::::0;;18256:70::o;14301:380::-;-1:-1:-1;;;;;14437:19:0;;14429:68;;;;-1:-1:-1;;;14429:68:0;;8390:2:1;14429:68:0;;;8372:21:1;8429:2;8409:18;;;8402:30;8468:34;8448:18;;;8441:62;-1:-1:-1;;;8519:18:1;;;8512:34;8563:19;;14429:68:0;8188:400:1;14429:68:0;-1:-1:-1;;;;;14516:21:0;;14508:68;;;;-1:-1:-1;;;14508:68:0;;8795:2:1;14508:68:0;;;8777:21:1;8834:2;8814:18;;;8807:30;8873:34;8853:18;;;8846:62;-1:-1:-1;;;8924:18:1;;;8917:32;8966:19;;14508:68:0;8593:398:1;14508:68:0;-1:-1:-1;;;;;14589:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;14641:32;;1595:25:1;;;14641:32:0;;1568:18:1;14641:32:0;;;;;;;14301:380;;;:::o;5256:132::-;5164:6;;-1:-1:-1;;;;;5164:6:0;4471:10;5320:23;5312:68;;;;-1:-1:-1;;;5312:68:0;;9198:2:1;5312:68:0;;;9180:21:1;;;9217:18;;;9210:30;9276:34;9256:18;;;9249:62;9328:18;;5312:68:0;8996:356:1;14972:502:0;15107:24;15134:25;15144:5;15151:7;15134:9;:25::i;:::-;15107:52;;-1:-1:-1;;15174:16:0;:37;15170:297;;15274:6;15254:16;:26;;15228:117;;;;-1:-1:-1;;;15228:117:0;;9559:2:1;15228:117:0;;;9541:21:1;9598:2;9578:18;;;9571:30;9637:31;9617:18;;;9610:59;9686:18;;15228:117:0;9357:353:1;15228:117:0;15389:51;15398:5;15405:7;15433:6;15414:16;:25;15389:8;:51::i;:::-;15096:378;14972:502;;;:::o;18334:1565::-;-1:-1:-1;;;;;18476:24:0;;;;;;:18;:24;;;;;;;;;:63;;-1:-1:-1;;;;;;18517:22:0;;;;;;:18;:22;;;;;;;;18476:63;:96;;;-1:-1:-1;18556:16:0;;;;18476:96;18458:1434;;;18599:33;18615:4;18621:2;18625:6;18599:15;:33::i;18458:1434::-;18673:4;;;;18665:29;;;;-1:-1:-1;;;18665:29:0;;9917:2:1;18665:29:0;;;9899:21:1;9956:2;9936:18;;;9929:30;-1:-1:-1;;;9975:18:1;;;9968:42;10027:18;;18665:29:0;9715:336:1;18665:29:0;18709:14;18748:13;-1:-1:-1;;;;;18742:19:0;:2;-1:-1:-1;;;;;18742:19:0;;18738:968;;18839:4;18807:11;7566:18;;;;;;;;;;;;18907;;-1:-1:-1;;;;;18890:13:0;7566:18;;;;;;;;;18807:11;18928:5;;18880:45;;;;:::i;:::-;:53;;;;:::i;:::-;18864:69;;18985:5;18978:3;:12;18952:181;;19044:9;19048:5;19044:1;:9;:::i;:::-;19037:3;:16;19033:37;;19061:9;19065:5;19061:1;:9;:::i;:::-;19055:15;;19033:37;19093:20;19109:3;19093:15;:20::i;:::-;19183:5;19172:8;;19163:6;:17;;;;:::i;:::-;:25;;;;:::i;:::-;19151:37;;18763:441;;18738:968;;;19222:13;-1:-1:-1;;;;;19214:21:0;:4;-1:-1:-1;;;;;19214:21:0;;19210:496;;19291:5;19277:11;;19268:6;:20;;;;:::i;:::-;:28;;;;:::i;:::-;19256:40;;19383:13;;19370:9;19361:6;19345:13;19355:2;-1:-1:-1;;;;;7566:18:0;7539:7;7566:18;;;;;;;;;;;;7449:143;19345:13;:22;;;;:::i;:::-;:34;;;;:::i;:::-;:51;;19315:173;;;;-1:-1:-1;;;19315:173:0;;;;;;;:::i;:::-;19210:496;;;19585:13;;19575:6;19559:13;19569:2;-1:-1:-1;;;;;7566:18:0;7539:7;7566:18;;;;;;;;;;;;7449:143;19559:13;:22;;;;:::i;:::-;:39;;19529:161;;;;-1:-1:-1;;;19529:161:0;;;;;;;:::i;:::-;19720:45;19736:4;19742:2;19746:18;19755:9;19746:6;:18;:::i;:::-;19720:15;:45::i;:::-;19784:13;;19780:101;;19818:47;19834:4;19848;19855:9;19818:15;:47::i;6395:191::-;6488:6;;;-1:-1:-1;;;;;6505:17:0;;;-1:-1:-1;;;;;;6505:17:0;;;;;;;6538:40;;6488:6;;;6505:17;6488:6;;6538:40;;6469:16;;6538:40;6458:128;6395:191;:::o;15482:776::-;-1:-1:-1;;;;;15613:18:0;;15605:68;;;;-1:-1:-1;;;15605:68:0;;11203:2:1;15605:68:0;;;11185:21:1;11242:2;11222:18;;;11215:30;11281:34;11261:18;;;11254:62;-1:-1:-1;;;11332:18:1;;;11325:35;11377:19;;15605:68:0;11001:401:1;15605:68:0;-1:-1:-1;;;;;15692:16:0;;15684:64;;;;-1:-1:-1;;;15684:64:0;;11609:2:1;15684:64:0;;;11591:21:1;11648:2;11628:18;;;11621:30;11687:34;11667:18;;;11660:62;-1:-1:-1;;;11738:18:1;;;11731:33;11781:19;;15684:64:0;11407:399:1;15684:64:0;-1:-1:-1;;;;;15783:15:0;;15761:19;15783:15;;;;;;;;;;;15831:21;;;;15809:109;;;;-1:-1:-1;;;15809:109:0;;12013:2:1;15809:109:0;;;11995:21:1;12052:2;12032:18;;;12025:30;12091:34;12071:18;;;12064:62;-1:-1:-1;;;12142:18:1;;;12135:36;12188:19;;15809:109:0;11811:402:1;15809:109:0;-1:-1:-1;;;;;15954:15:0;;;:9;:15;;;;;;;;;;;15972:20;;;15954:38;;16172:13;;;;;;;;;;:23;;;;;;16224:26;;1595:25:1;;;16172:13:0;;16224:26;;1568:18:1;16224:26:0;;;;;;;15594:664;15482:776;;;:::o;19907:949::-;17032:16;:23;;-1:-1:-1;;17032:23:0;17051:4;17032:23;;;20013:8:::1;::::0;17032:16;20036:14;;;20032:27:::1;;20052:7;;;20032:27;20069:24;20123:1;20108:12;;:16;;;;:::i;:::-;20096:28;::::0;:9;:28:::1;:::i;:::-;20069:55:::0;-1:-1:-1;20135:14:0::1;20194:9:::0;20152:39:::1;20069:55:::0;20152:20;:39:::1;:::i;:::-;:51;;;;:::i;:::-;20135:68;;20216:25;20234:6;20216:17;:25::i;:::-;20336:6;::::0;20273:21:::1;::::0;20252:18:::1;::::0;20345:16;;20323:19:::1;::::0;20273:21;20323:19:::1;:::i;:::-;:38;;;;:::i;:::-;20307:54;;20372:19;20422:16;20407:12;;20394:10;:25;;;;:::i;:::-;:44;;;;:::i;:::-;20453:12;::::0;20372:66;;-1:-1:-1;20453:16:0;20449:176:::1;;20486:127;20518:29;20541:6:::0;20518:20;:29:::1;:::i;:::-;20587:11:::0;20566:18:::1;20579:5:::0;20566:10;:18:::1;:::i;:::-;:32;;;;:::i;:::-;20486:13;:127::i;:::-;20639:15:::0;;20635:94:::1;;20679:15;::::0;20671:46:::1;::::0;-1:-1:-1;;;;;20679:15:0;;::::1;::::0;20671:46;::::1;;;::::0;20705:11;;20679:15:::1;20671:46:::0;20679:15;20671:46;20705:11;20679:15;20671:46;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;20635:94;20745:21;:25:::0;20741:108:::1;;20795:9;::::0;20787:50:::1;::::0;-1:-1:-1;;;;;20795:9:0;;::::1;::::0;20815:21:::1;20787:50:::0;::::1;;;::::0;20795:9:::1;20787:50:::0;20795:9;20787:50;20815:21;20795:9;20787:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;20741:108;19982:874;;;;;;17066:1;-1:-1:-1::0;17078:16:0;:24;;-1:-1:-1;;17078:24:0;;;19907:949::o;20864:413::-;17032:16;:23;;-1:-1:-1;;17032:23:0;17051:4;17032:23;;;20967:16:::1;::::0;;20981:1:::1;20967:16:::0;;;;;::::1;::::0;;-1:-1:-1;;20967:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;20967:16:0::1;20943:40;;21012:4;20994;20999:1;20994:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;20994:23:0::1;;;-1:-1:-1::0;;;;;20994:23:0::1;;;::::0;::::1;21038:15;-1:-1:-1::0;;;;;21038:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21028:4;21033:1;21028:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21028:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;21071:198:::1;::::0;-1:-1:-1;;;21071:198:0;;:15:::1;:66:::0;;::::1;::::0;::::1;::::0;:198:::1;::::0;21152:11;;21178:1:::1;::::0;21194:4;;21221::::1;::::0;21242:15:::1;::::0;21071:198:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;17078:16:0;:24;;-1:-1:-1;;17078:24:0;;;-1:-1:-1;;;;20864:413:0:o;21285:325::-;17032:16;:23;;-1:-1:-1;;17032:23:0;17051:4;17032:23;;;-1:-1:-1;;;;;21404:15:0::1;:31;;21443:9:::0;21476:4:::1;21496:11:::0;17032:16;;21554:7:::1;5164:6:::0;;-1:-1:-1;;;;;5164:6:0;;5091:87;21554:7:::1;21404:198;::::0;::::1;::::0;;;-1:-1:-1;;;;;;21404:198:0;;;-1:-1:-1;;;;;13950:15:1;;;21404:198:0::1;::::0;::::1;13932:34:1::0;13982:18;;;13975:34;;;;14025:18;;;14018:34;;;;14068:18;;;14061:34;14132:15;;;14111:19;;;14104:44;21576:15:0::1;14164:19:1::0;;;14157:35;13866:19;;21404:198:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;17078:16:0;:24;;-1:-1:-1;;17078:24:0;;;-1:-1:-1;;;21285:325:0: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;1631:247::-;1690:6;1743:2;1731:9;1722:7;1718:23;1714:32;1711:52;;;1759:1;1756;1749:12;1711:52;1798:9;1785:23;1817:31;1842:5;1817:31;:::i;:::-;1867:5;1631:247;-1:-1:-1;;;1631:247:1:o;1883:180::-;1942:6;1995:2;1983:9;1974:7;1970:23;1966:32;1963:52;;;2011:1;2008;2001:12;1963:52;-1:-1:-1;2034:23:1;;1883:180;-1:-1:-1;1883:180:1:o;2068:456::-;2145:6;2153;2161;2214:2;2202:9;2193:7;2189:23;2185:32;2182:52;;;2230:1;2227;2220:12;2182:52;2269:9;2256:23;2288:31;2313:5;2288:31;:::i;:::-;2338:5;-1:-1:-1;2395:2:1;2380:18;;2367:32;2408:33;2367:32;2408:33;:::i;:::-;2068:456;;2460:7;;-1:-1:-1;;;2514:2:1;2499:18;;;;2486:32;;2068:456::o;2926:367::-;2989:8;2999:6;3053:3;3046:4;3038:6;3034:17;3030:27;3020:55;;3071:1;3068;3061:12;3020:55;-1:-1:-1;3094:20:1;;3137:18;3126:30;;3123:50;;;3169:1;3166;3159:12;3123:50;3206:4;3198:6;3194:17;3182:29;;3266:3;3259:4;3249:6;3246:1;3242:14;3234:6;3230:27;3226:38;3223:47;3220:67;;;3283:1;3280;3273:12;3220:67;2926:367;;;;;:::o;3298:773::-;3420:6;3428;3436;3444;3497:2;3485:9;3476:7;3472:23;3468:32;3465:52;;;3513:1;3510;3503:12;3465:52;3553:9;3540:23;3582:18;3623:2;3615:6;3612:14;3609:34;;;3639:1;3636;3629:12;3609:34;3678:70;3740:7;3731:6;3720:9;3716:22;3678:70;:::i;:::-;3767:8;;-1:-1:-1;3652:96:1;-1:-1:-1;3855:2:1;3840:18;;3827:32;;-1:-1:-1;3871:16:1;;;3868:36;;;3900:1;3897;3890:12;3868:36;;3939:72;4003:7;3992:8;3981:9;3977:24;3939:72;:::i;:::-;3298:773;;;;-1:-1:-1;4030:8:1;-1:-1:-1;;;;3298:773:1:o;4076:316::-;4153:6;4161;4169;4222:2;4210:9;4201:7;4197:23;4193:32;4190:52;;;4238:1;4235;4228:12;4190:52;-1:-1:-1;;4261:23:1;;;4331:2;4316:18;;4303:32;;-1:-1:-1;4382:2:1;4367:18;;;4354:32;;4076:316;-1:-1:-1;4076:316:1:o;4397:437::-;4483:6;4491;4544:2;4532:9;4523:7;4519:23;4515:32;4512:52;;;4560:1;4557;4550:12;4512:52;4600:9;4587:23;4633:18;4625:6;4622:30;4619:50;;;4665:1;4662;4655:12;4619:50;4704:70;4766:7;4757:6;4746:9;4742:22;4704:70;:::i;:::-;4793:8;;4678:96;;-1:-1:-1;4397:437:1;-1:-1:-1;;;;4397:437:1:o;5313:388::-;5381:6;5389;5442:2;5430:9;5421:7;5417:23;5413:32;5410:52;;;5458:1;5455;5448:12;5410:52;5497:9;5484:23;5516:31;5541:5;5516:31;:::i;:::-;5566:5;-1:-1:-1;5623:2:1;5608:18;;5595:32;5636:33;5595:32;5636:33;:::i;:::-;5688:7;5678:17;;;5313:388;;;;;:::o;5706:380::-;5785:1;5781:12;;;;5828;;;5849:61;;5903:4;5895:6;5891:17;5881:27;;5849:61;5956:2;5948:6;5945:14;5925:18;5922:38;5919:161;;6002:10;5997:3;5993:20;5990:1;5983:31;6037:4;6034:1;6027:15;6065:4;6062:1;6055:15;5919:161;;5706:380;;;:::o;6091:127::-;6152:10;6147:3;6143:20;6140:1;6133:31;6183:4;6180:1;6173:15;6207:4;6204:1;6197:15;6223:125;6288:9;;;6309:10;;;6306:36;;;6322:18;;:::i;6353:127::-;6414:10;6409:3;6405:20;6402:1;6395:31;6445:4;6442:1;6435:15;6469:4;6466:1;6459:15;6485:135;6524:3;6545:17;;;6542:43;;6565:18;;:::i;:::-;-1:-1:-1;6612:1:1;6601:13;;6485:135::o;7031:184::-;7101:6;7154:2;7142:9;7133:7;7129:23;7125:32;7122:52;;;7170:1;7167;7160:12;7122:52;-1:-1:-1;7193:16:1;;7031:184;-1:-1:-1;7031:184:1:o;7499:277::-;7566:6;7619:2;7607:9;7598:7;7594:23;7590:32;7587:52;;;7635:1;7632;7625:12;7587:52;7667:9;7661:16;7720:5;7713:13;7706:21;7699:5;7696:32;7686:60;;7742:1;7739;7732:12;10056:168;10129:9;;;10160;;10177:15;;;10171:22;;10157:37;10147:71;;10198:18;;:::i;10229:217::-;10269:1;10295;10285:132;;10339:10;10334:3;10330:20;10327:1;10320:31;10374:4;10371:1;10364:15;10402:4;10399:1;10392:15;10285:132;-1:-1:-1;10431:9:1;;10229:217::o;10451:128::-;10518:9;;;10539:11;;;10536:37;;;10553:18;;:::i;10584:412::-;10786:2;10768:21;;;10825:2;10805:18;;;10798:30;10864:34;10859:2;10844:18;;10837:62;-1:-1:-1;;;10930:2:1;10915:18;;10908:46;10986:3;10971:19;;10584:412::o;12350:251::-;12420:6;12473:2;12461:9;12452:7;12448:23;12444:32;12441:52;;;12489:1;12486;12479:12;12441:52;12521:9;12515:16;12540:31;12565:5;12540:31;:::i;12606:980::-;12868:4;12916:3;12905:9;12901:19;12947:6;12936:9;12929:25;12973:2;13011:6;13006:2;12995:9;12991:18;12984:34;13054:3;13049:2;13038:9;13034:18;13027:31;13078:6;13113;13107:13;13144:6;13136;13129:22;13182:3;13171:9;13167:19;13160:26;;13221:2;13213:6;13209:15;13195:29;;13242:1;13252:195;13266:6;13263:1;13260:13;13252:195;;;13331:13;;-1:-1:-1;;;;;13327:39:1;13315:52;;13422:15;;;;13387:12;;;;13363:1;13281:9;13252:195;;;-1:-1:-1;;;;;;;13503:32:1;;;;13498:2;13483:18;;13476:60;-1:-1:-1;;;13567:3:1;13552:19;13545:35;13464:3;12606:980;-1:-1:-1;;;12606:980:1:o;14203:306::-;14291:6;14299;14307;14360:2;14348:9;14339:7;14335:23;14331:32;14328:52;;;14376:1;14373;14366:12;14328:52;14405:9;14399:16;14389:26;;14455:2;14444:9;14440:18;14434:25;14424:35;;14499:2;14488:9;14484:18;14478:25;14468:35;;14203:306;;;;;:::o

Swarm Source

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