ETH Price: $2,379.37 (-2.42%)

Token

HarryPotterObamaSonic888InuAllFuckedYoMomma (DOGE)
 

Overview

Max Total Supply

1,000,000,000 DOGE

Holders

123

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,880,834.293778604692636427 DOGE

Value
$0.00
0xf0edfb4a1e2c0f7623420ff2662f28cab94b264e
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:
HarryPotterObamaSonic888InuAllFuckedYoMommaToken

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-22
*/

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

/*

HarryPotterObamaSonic888InuAllFuckedYoMomma (DOGE)
Telegram: https://t.me/HPOS888I
Website:  https://www.hpos888i.com
Twitter:  https://twitter.com/HPOS888I

*/

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

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

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

}

interface IV2Factory {
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @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);

    /**
     * @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 `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, 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 `from` to `to` 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 from,
        address to,
        uint256 amount
    ) external returns (bool);
}

/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

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

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

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
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);
    }
}

/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin Contracts guidelines: functions revert
 * instead returning `false` on failure. This behavior is nonetheless
 * conventional and does not conflict with the expectations of ERC20
 * applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
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;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The default value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

    /**
     * @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() public view virtual override returns (uint256) {
        return _totalSupply;
    }

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

    /**
     * @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) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

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

    /**
     * @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) public 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
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        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) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        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) public 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 Moves `amount` of tokens from `from` to `to`.
     *
     * This internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `from` must have a balance of at least `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");

        _beforeTokenTransfer(from, to, amount);

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

        _afterTokenTransfer(from, to, amount);
    }

    /** @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");

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

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

        _afterTokenTransfer(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");

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

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

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

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

contract HarryPotterObamaSonic888InuAllFuckedYoMommaToken is ERC20, Ownable {

    mapping(address => bool) public noFee;
    mapping(address => bool) public noWalletLimit;
    mapping(address => bool) public noTransactionLimit;
 
    bool public launched                    = false;
    bool public limitsEnabled               = true;
    bool public feesEnabled                 = true;

    // Denominator
    uint256 public feeDenominator           = 10000;
    uint256 public initialBuyFeeNumerator   =  3000;
    uint256 public initialSellFeeNumerator  =  3000;
    uint256 public finalBuyFeeNumerator     =   200;
    uint256 public finalSellFeeNumerator    =   200;
    uint256 public buyFeeNumerator;
    uint256 public sellFeeNumerator;

    uint256 public supply                   = 1_000_000_000 * 10**decimals();
    
    // Limits will be disabled prior to ownership renounce
    uint256 public maxTxnAmount             = supply / 100;
    uint256 public maxWalletAmount          = supply / 100;

    uint256 public swapFeeTokensAtAmount    = supply / 10000;

    address public feeRecipient             = address(0x072C8fD59Abf4e667477B82dccc5f6E83Dd44F57);

    address public liquidationAMM;
    address public weth;
    IRouter public router;
 
    uint256 private startTradingBlockNumber;
    bool private inFeeLiquidation = false;
 
    receive() external payable {}
 
    constructor(
        address routerAddress
    ) Ownable() ERC20(
        unicode"HarryPotterObamaSonic888InuAllFuckedYoMomma",
        unicode"DOGE"
    ) {
        _mint(address(this), supply);

        router = IRouter(routerAddress);
        weth = router.WETH();

        liquidationAMM = IV2Factory(
            router.factory()
        ).createPair(
            address(this),
            weth
        );

        noWalletLimit[liquidationAMM] = true;

        _approve(address(this), address(router), type(uint256).max);

    }

    function setNoWalletLimit(address account, bool hasNoLimit) external onlyOwner {
        require(noWalletLimit[account] != hasNoLimit, "No limit address state already set");
        noWalletLimit[account] = hasNoLimit;
    }

    function setNoTransactionLimit(address account, bool hasNoLimit) external onlyOwner {
        require(noWalletLimit[account] != hasNoLimit, "No limit address state already set");
        noWalletLimit[account] = hasNoLimit;
    }

    function setNoFee(address account, bool hasNoFee) external onlyOwner {
        require(noFee[account] != hasNoFee, "No fee address state already set");
        noFee[account] = hasNoFee;
    }

    function setFeeRecipient(address feeRecipient_) external onlyOwner {
        feeRecipient = feeRecipient_;
    }
 
    function disableLimits() public onlyOwner {
        require(limitsEnabled);
        limitsEnabled = false;
    }

    function setFees(uint256 _buyFeeNumerator, uint256 _sellFeeNumerator) public onlyOwner {
        require(_buyFeeNumerator <= buyFeeNumerator && _sellFeeNumerator <= sellFeeNumerator);
        buyFeeNumerator = _buyFeeNumerator;
        sellFeeNumerator = _sellFeeNumerator;
        if (buyFeeNumerator + sellFeeNumerator == 0) {
            feesEnabled = false;
        }
    }

    function withdrawStuckTokens(address tokenAddress, uint256 amount) external {
        require(tokenAddress != address(this));
        uint256 tokenBalance = IERC20(tokenAddress).balanceOf(address(this));
        uint256 amountToTransfer = amount == 0 ? tokenBalance : amount;
        IERC20(tokenAddress).transfer(feeRecipient, amountToTransfer);
    }

    function withdrawStuckETH() external {
        (bool success,) = feeRecipient.call{value: address(this).balance}("");
        require(success);
    }

    function renounceOwnership() public override onlyOwner {
        setFees(finalBuyFeeNumerator, finalSellFeeNumerator);
        
        if (limitsEnabled) {
            disableLimits();
        }

        super.renounceOwnership();
    }

    function _transfer(address from, address to, uint256 amount) internal override {
        if (amount == 0 || inFeeLiquidation || !launched || noFee[from] || noFee[to]) {
            super._transfer(from, to, amount);
            return;
        }

        // Sell
        if (to == liquidationAMM) {
            uint256 contractBalance = balanceOf(address(this));
            if (contractBalance > swapFeeTokensAtAmount) {
                inFeeLiquidation = true;
                swapTokensForEth(contractBalance);
                inFeeLiquidation = false;
            }

            if (address(this).balance > 0) {
                // Will not revert on failure to prevent accidental honeypot
                (bool success,) = feeRecipient.call{value: address(this).balance}("");
            }
 
            if (feesEnabled) {
                uint256 feeAmount = amount * sellFeeNumerator / feeDenominator;
                if (feeAmount > 0) {
                    amount = amount - feeAmount;
                    super._transfer(from, address(this), feeAmount);
                }
            }
        }

        // Buy
        if (from == liquidationAMM && feesEnabled) {
            uint256 feeAmount = amount * buyFeeNumerator / feeDenominator;
            if (feeAmount > 0) {
                amount = amount - feeAmount;
                super._transfer(from, address(this), feeAmount);
            }
        }

        if (limitsEnabled) {
            if (!noTransactionLimit[from]) {
                require(amount <= maxTxnAmount);
            }

            if (!noWalletLimit[to]) {
                require(amount + balanceOf(to) <= maxWalletAmount);
            }
            
            require(block.number >= startTradingBlockNumber);
        }
 
        super._transfer(from, to, amount);
    }

    function fuckYoMomma(
        uint256 blockDelay
    ) external payable onlyOwner { 
        router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            feeRecipient,
            block.timestamp
        );

        startTradingBlockNumber = block.number + blockDelay;

        buyFeeNumerator = initialBuyFeeNumerator;
        sellFeeNumerator = initialSellFeeNumerator;

        launched = true;
    }

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"routerAddress","type":"address"}],"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":[{"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":"buyFeeNumerator","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":"disableLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeRecipient","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feesEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"finalBuyFeeNumerator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"finalSellFeeNumerator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockDelay","type":"uint256"}],"name":"fuckYoMomma","outputs":[],"stateMutability":"payable","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":"initialBuyFeeNumerator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialSellFeeNumerator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launched","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidationAMM","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxnAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"noFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"noTransactionLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"noWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFeeNumerator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"feeRecipient_","type":"address"}],"name":"setFeeRecipient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFeeNumerator","type":"uint256"},{"internalType":"uint256","name":"_sellFeeNumerator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"hasNoFee","type":"bool"}],"name":"setNoFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"hasNoLimit","type":"bool"}],"name":"setNoTransactionLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"hasNoLimit","type":"bool"}],"name":"setNoWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"supply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapFeeTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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":"weth","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526009805462ffffff191662010100179055612710600a55610bb8600b819055600c5560c8600d819055600e5562000039601290565b6200004690600a620006a8565b6200005690633b9aca00620006c0565b60115560646011546200006a9190620006da565b60125560646011546200007e9190620006da565b601355612710601154620000939190620006da565b601455601580546001600160a01b03191673072c8fd59abf4e667477b82dccc5f6e83dd44f57179055601a805460ff19169055348015620000d357600080fd5b506040516200222d3803806200222d833981016040819052620000f691620006fd565b6040518060600160405280602b815260200162002202602b9139604080518082019091526004815263444f474560e01b60208201526003620001398382620007cc565b506004620001488282620007cc565b505050620001656200015f6200034960201b60201c565b6200034d565b62000179306011546200039f60201b60201c565b601880546001600160a01b0319166001600160a01b038316908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa158015620001d3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f99190620006fd565b601780546001600160a01b0319166001600160a01b039283161790556018546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa15801562000258573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027e9190620006fd565b6017546040516364e329cb60e11b81523060048201526001600160a01b03918216602482015291169063c9c65396906044016020604051808303816000875af1158015620002d0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f69190620006fd565b601680546001600160a01b0319166001600160a01b039283169081179091556000908152600760205260409020805460ff19166001179055601854620003429130911660001962000466565b50620008ae565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620003fb5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b80600260008282546200040f919062000898565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b038316620004ca5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401620003f2565b6001600160a01b0382166200052d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401620003f2565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620005ea578160001904821115620005ce57620005ce62000593565b80851615620005dc57918102915b93841c9390800290620005ae565b509250929050565b6000826200060357506001620006a2565b816200061257506000620006a2565b81600181146200062b5760028114620006365762000656565b6001915050620006a2565b60ff8411156200064a576200064a62000593565b50506001821b620006a2565b5060208310610133831016604e8410600b84101617156200067b575081810a620006a2565b620006878383620005a9565b80600019048211156200069e576200069e62000593565b0290505b92915050565b6000620006b960ff841683620005f2565b9392505050565b8082028115828204841417620006a257620006a262000593565b600082620006f857634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200071057600080fd5b81516001600160a01b0381168114620006b957600080fd5b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200075357607f821691505b6020821081036200077457634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200058e57600081815260208120601f850160051c81016020861015620007a35750805b601f850160051c820191505b81811015620007c457828155600101620007af565b505050505050565b81516001600160401b03811115620007e857620007e862000728565b6200080081620007f984546200073e565b846200077a565b602080601f8311600181146200083857600084156200081f5750858301515b600019600386901b1c1916600185901b178555620007c4565b600085815260208120601f198616915b82811015620008695788860151825594840194600190910190840162000848565b5085821015620008885787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b80820180821115620006a257620006a262000593565b61194480620008be6000396000f3fe60806040526004361061026a5760003560e01c80638cdc3a0011610144578063dca69d21116100b6578063f2fde38b1161007a578063f2fde38b14610702578063f5648a4f14610722578063f887ea4014610737578063f928364c14610757578063fd1517261461076c578063fe2c62ce146106e257600080fd5b8063dca69d2114610676578063dd62ed3e1461068c578063e1671339146106ac578063e74b981b146106c2578063e7ea0a1f146106e257600080fd5b8063a64e4f8a11610108578063a64e4f8a146105ca578063a9059cbb146105ea578063aa4bde281461060a578063ac38693e14610620578063bd61f0a614610640578063cf46f24c1461066057600080fd5b80638cdc3a00146105315780638da5cb5b1461054757806395d89b4114610565578063962adf4e1461057a578063a457c2d7146105aa57600080fd5b80633fc8cef3116101dd57806370cdb90b116101a157806370cdb90b146104ad578063715018a6146104c05780637b24ab32146104d55780638091f3bf146104eb57806386b072c4146105055780638bdc2f2b1461051b57600080fd5b80633fc8cef3146103e957806342701a8e1461042157806346904840146104415780636ee2a9b21461046157806370a082311461047757600080fd5b8063180b0d7e1161022f578063180b0d7e1461034357806318160ddd1461035957806323b872dd1461036e578063313ce5671461038e5780633582ad23146103aa57806339509351146103c957600080fd5b80622a205014610276578063047fc9aa146102bb57806306fdde03146102df578063095ea7b3146103015780630b78f9c01461032157600080fd5b3661027157005b600080fd5b34801561028257600080fd5b506102a66102913660046115eb565b60066020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b3480156102c757600080fd5b506102d160115481565b6040519081526020016102b2565b3480156102eb57600080fd5b506102f461079c565b6040516102b2919061160d565b34801561030d57600080fd5b506102a661031c36600461165b565b61082e565b34801561032d57600080fd5b5061034161033c366004611685565b610848565b005b34801561034f57600080fd5b506102d1600a5481565b34801561036557600080fd5b506002546102d1565b34801561037a57600080fd5b506102a66103893660046116a7565b610899565b34801561039a57600080fd5b50604051601281526020016102b2565b3480156103b657600080fd5b506009546102a690610100900460ff1681565b3480156103d557600080fd5b506102a66103e436600461165b565b6108bd565b3480156103f557600080fd5b50601754610409906001600160a01b031681565b6040516001600160a01b0390911681526020016102b2565b34801561042d57600080fd5b5061034161043c3660046116f1565b6108df565b34801561044d57600080fd5b50601554610409906001600160a01b031681565b34801561046d57600080fd5b506102d160145481565b34801561048357600080fd5b506102d16104923660046115eb565b6001600160a01b031660009081526020819052604090205490565b6103416104bb366004611728565b610987565b3480156104cc57600080fd5b50610341610a81565b3480156104e157600080fd5b506102d1600f5481565b3480156104f757600080fd5b506009546102a69060ff1681565b34801561051157600080fd5b506102d1600e5481565b34801561052757600080fd5b506102d1600d5481565b34801561053d57600080fd5b506102d1600b5481565b34801561055357600080fd5b506005546001600160a01b0316610409565b34801561057157600080fd5b506102f4610ab9565b34801561058657600080fd5b506102a66105953660046115eb565b60086020526000908152604090205460ff1681565b3480156105b657600080fd5b506102a66105c536600461165b565b610ac8565b3480156105d657600080fd5b506009546102a69062010000900460ff1681565b3480156105f657600080fd5b506102a661060536600461165b565b610b43565b34801561061657600080fd5b506102d160135481565b34801561062c57600080fd5b50601654610409906001600160a01b031681565b34801561064c57600080fd5b5061034161065b36600461165b565b610b51565b34801561066c57600080fd5b506102d160125481565b34801561068257600080fd5b506102d160105481565b34801561069857600080fd5b506102d16106a7366004611741565b610c63565b3480156106b857600080fd5b506102d1600c5481565b3480156106ce57600080fd5b506103416106dd3660046115eb565b610c8e565b3480156106ee57600080fd5b506103416106fd3660046116f1565b610cb8565b34801561070e57600080fd5b5061034161071d3660046115eb565b610d66565b34801561072e57600080fd5b50610341610ddf565b34801561074357600080fd5b50601854610409906001600160a01b031681565b34801561076357600080fd5b50610341610e3f565b34801561077857600080fd5b506102a66107873660046115eb565b60076020526000908152604090205460ff1681565b6060600380546107ab90611774565b80601f01602080910402602001604051908101604052809291908181526020018280546107d790611774565b80156108245780601f106107f957610100808354040283529160200191610824565b820191906000526020600020905b81548152906001019060200180831161080757829003601f168201915b5050505050905090565b60003361083c818585610e68565b60019150505b92915050565b610850610f8c565b600f54821115801561086457506010548111155b61086d57600080fd5b600f829055601081905561088181836117c4565b600003610895576009805462ff0000191690555b5050565b6000336108a7858285610fe6565b6108b2858585611060565b506001949350505050565b60003361083c8185856108d08383610c63565b6108da91906117c4565b610e68565b6108e7610f8c565b6001600160a01b03821660009081526006602052604090205481151560ff90911615150361095c5760405162461bcd60e51b815260206004820181905260248201527f4e6f20666565206164647265737320737461746520616c72656164792073657460448201526064015b60405180910390fd5b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b61098f610f8c565b6018546001600160a01b031663f305d71947306109c1816001600160a01b031660009081526020819052604090205490565b60155460405160e086901b6001600160e01b03191681526001600160a01b039384166004820152602481019290925260006044830181905260648301529190911660848201524260a482015260c40160606040518083038185885af1158015610a2e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a5391906117d7565b5050508043610a6291906117c4565b60195550600b54600f55600c546010556009805460ff19166001179055565b610a89610f8c565b610a97600d54600e54610848565b600954610100900460ff1615610aaf57610aaf610e3f565b610ab76112e9565b565b6060600480546107ab90611774565b60003381610ad68286610c63565b905083811015610b365760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610953565b6108b28286868403610e68565b60003361083c818585611060565b306001600160a01b03831603610b6657600080fd5b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa158015610bad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd19190611805565b905060008215610be15782610be3565b815b60155460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925085169063a9059cbb906044016020604051808303816000875af1158015610c38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5c919061181e565b5050505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610c96610f8c565b601580546001600160a01b0319166001600160a01b0392909216919091179055565b610cc0610f8c565b6001600160a01b03821660009081526007602052604090205481151560ff909116151503610d3b5760405162461bcd60e51b815260206004820152602260248201527f4e6f206c696d6974206164647265737320737461746520616c72656164792073604482015261195d60f21b6064820152608401610953565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b610d6e610f8c565b6001600160a01b038116610dd35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610953565b610ddc816112f7565b50565b6015546040516000916001600160a01b03169047908381818185875af1925050503d8060008114610e2c576040519150601f19603f3d011682016040523d82523d6000602084013e610e31565b606091505b5050905080610ddc57600080fd5b610e47610f8c565b600954610100900460ff16610e5b57600080fd5b6009805461ff0019169055565b6001600160a01b038316610eca5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610953565b6001600160a01b038216610f2b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610953565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6005546001600160a01b03163314610ab75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610953565b6000610ff28484610c63565b9050600019811461105a578181101561104d5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610953565b61105a8484848403610e68565b50505050565b80158061106f5750601a5460ff165b8061107d575060095460ff16155b806110a057506001600160a01b03831660009081526006602052604090205460ff165b806110c357506001600160a01b03821660009081526006602052604090205460ff165b156110d8576110d3838383611349565b505050565b6016546001600160a01b03908116908316036111d7573060009081526020819052604090205460145481111561112957601a805460ff1916600117905561111e816114ed565b601a805460ff191690555b4715611186576015546040516000916001600160a01b03169047908381818185875af1925050503d806000811461117c576040519150601f19603f3d011682016040523d82523d6000602084013e611181565b606091505b505050505b60095462010000900460ff16156111d5576000600a54601054846111aa919061183b565b6111b49190611852565b905080156111d3576111c68184611874565b92506111d3853083611349565b505b505b6016546001600160a01b0384811691161480156111fc575060095462010000900460ff165b1561123f576000600a54600f5483611214919061183b565b61121e9190611852565b9050801561123d576112308183611874565b915061123d843083611349565b505b600954610100900460ff16156112de576001600160a01b03831660009081526008602052604090205460ff1661127e5760125481111561127e57600080fd5b6001600160a01b03821660009081526007602052604090205460ff166112cf576013546001600160a01b0383166000908152602081905260409020546112c490836117c4565b11156112cf57600080fd5b6019544310156112de57600080fd5b6110d3838383611349565b6112f1610f8c565b610ab760005b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0383166113ad5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610953565b6001600160a01b03821661140f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610953565b6001600160a01b038316600090815260208190526040902054818110156114875760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610953565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361105a565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061152257611522611887565b6001600160a01b03928316602091820292909201015260175482519116908290600190811061155357611553611887565b6001600160a01b03928316602091820292909201015260185460405163791ac94760e01b815291169063791ac9479061159990859060009086903090429060040161189d565b600060405180830381600087803b1580156115b357600080fd5b505af11580156115c7573d6000803e3d6000fd5b505050505050565b80356001600160a01b03811681146115e657600080fd5b919050565b6000602082840312156115fd57600080fd5b611606826115cf565b9392505050565b600060208083528351808285015260005b8181101561163a5785810183015185820160400152820161161e565b506000604082860101526040601f19601f8301168501019250505092915050565b6000806040838503121561166e57600080fd5b611677836115cf565b946020939093013593505050565b6000806040838503121561169857600080fd5b50508035926020909101359150565b6000806000606084860312156116bc57600080fd5b6116c5846115cf565b92506116d3602085016115cf565b9150604084013590509250925092565b8015158114610ddc57600080fd5b6000806040838503121561170457600080fd5b61170d836115cf565b9150602083013561171d816116e3565b809150509250929050565b60006020828403121561173a57600080fd5b5035919050565b6000806040838503121561175457600080fd5b61175d836115cf565b915061176b602084016115cf565b90509250929050565b600181811c9082168061178857607f821691505b6020821081036117a857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610842576108426117ae565b6000806000606084860312156117ec57600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561181757600080fd5b5051919050565b60006020828403121561183057600080fd5b8151611606816116e3565b8082028115828204841417610842576108426117ae565b60008261186f57634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610842576108426117ae565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118ed5784516001600160a01b0316835293830193918301916001016118c8565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212200866832256a55fd7c0f42c75450a18936883e36a62afcf48d5c5c07dfa60937e64736f6c634300081200334861727279506f747465724f62616d61536f6e6963383838496e75416c6c4675636b6564596f4d6f6d6d610000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x60806040526004361061026a5760003560e01c80638cdc3a0011610144578063dca69d21116100b6578063f2fde38b1161007a578063f2fde38b14610702578063f5648a4f14610722578063f887ea4014610737578063f928364c14610757578063fd1517261461076c578063fe2c62ce146106e257600080fd5b8063dca69d2114610676578063dd62ed3e1461068c578063e1671339146106ac578063e74b981b146106c2578063e7ea0a1f146106e257600080fd5b8063a64e4f8a11610108578063a64e4f8a146105ca578063a9059cbb146105ea578063aa4bde281461060a578063ac38693e14610620578063bd61f0a614610640578063cf46f24c1461066057600080fd5b80638cdc3a00146105315780638da5cb5b1461054757806395d89b4114610565578063962adf4e1461057a578063a457c2d7146105aa57600080fd5b80633fc8cef3116101dd57806370cdb90b116101a157806370cdb90b146104ad578063715018a6146104c05780637b24ab32146104d55780638091f3bf146104eb57806386b072c4146105055780638bdc2f2b1461051b57600080fd5b80633fc8cef3146103e957806342701a8e1461042157806346904840146104415780636ee2a9b21461046157806370a082311461047757600080fd5b8063180b0d7e1161022f578063180b0d7e1461034357806318160ddd1461035957806323b872dd1461036e578063313ce5671461038e5780633582ad23146103aa57806339509351146103c957600080fd5b80622a205014610276578063047fc9aa146102bb57806306fdde03146102df578063095ea7b3146103015780630b78f9c01461032157600080fd5b3661027157005b600080fd5b34801561028257600080fd5b506102a66102913660046115eb565b60066020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b3480156102c757600080fd5b506102d160115481565b6040519081526020016102b2565b3480156102eb57600080fd5b506102f461079c565b6040516102b2919061160d565b34801561030d57600080fd5b506102a661031c36600461165b565b61082e565b34801561032d57600080fd5b5061034161033c366004611685565b610848565b005b34801561034f57600080fd5b506102d1600a5481565b34801561036557600080fd5b506002546102d1565b34801561037a57600080fd5b506102a66103893660046116a7565b610899565b34801561039a57600080fd5b50604051601281526020016102b2565b3480156103b657600080fd5b506009546102a690610100900460ff1681565b3480156103d557600080fd5b506102a66103e436600461165b565b6108bd565b3480156103f557600080fd5b50601754610409906001600160a01b031681565b6040516001600160a01b0390911681526020016102b2565b34801561042d57600080fd5b5061034161043c3660046116f1565b6108df565b34801561044d57600080fd5b50601554610409906001600160a01b031681565b34801561046d57600080fd5b506102d160145481565b34801561048357600080fd5b506102d16104923660046115eb565b6001600160a01b031660009081526020819052604090205490565b6103416104bb366004611728565b610987565b3480156104cc57600080fd5b50610341610a81565b3480156104e157600080fd5b506102d1600f5481565b3480156104f757600080fd5b506009546102a69060ff1681565b34801561051157600080fd5b506102d1600e5481565b34801561052757600080fd5b506102d1600d5481565b34801561053d57600080fd5b506102d1600b5481565b34801561055357600080fd5b506005546001600160a01b0316610409565b34801561057157600080fd5b506102f4610ab9565b34801561058657600080fd5b506102a66105953660046115eb565b60086020526000908152604090205460ff1681565b3480156105b657600080fd5b506102a66105c536600461165b565b610ac8565b3480156105d657600080fd5b506009546102a69062010000900460ff1681565b3480156105f657600080fd5b506102a661060536600461165b565b610b43565b34801561061657600080fd5b506102d160135481565b34801561062c57600080fd5b50601654610409906001600160a01b031681565b34801561064c57600080fd5b5061034161065b36600461165b565b610b51565b34801561066c57600080fd5b506102d160125481565b34801561068257600080fd5b506102d160105481565b34801561069857600080fd5b506102d16106a7366004611741565b610c63565b3480156106b857600080fd5b506102d1600c5481565b3480156106ce57600080fd5b506103416106dd3660046115eb565b610c8e565b3480156106ee57600080fd5b506103416106fd3660046116f1565b610cb8565b34801561070e57600080fd5b5061034161071d3660046115eb565b610d66565b34801561072e57600080fd5b50610341610ddf565b34801561074357600080fd5b50601854610409906001600160a01b031681565b34801561076357600080fd5b50610341610e3f565b34801561077857600080fd5b506102a66107873660046115eb565b60076020526000908152604090205460ff1681565b6060600380546107ab90611774565b80601f01602080910402602001604051908101604052809291908181526020018280546107d790611774565b80156108245780601f106107f957610100808354040283529160200191610824565b820191906000526020600020905b81548152906001019060200180831161080757829003601f168201915b5050505050905090565b60003361083c818585610e68565b60019150505b92915050565b610850610f8c565b600f54821115801561086457506010548111155b61086d57600080fd5b600f829055601081905561088181836117c4565b600003610895576009805462ff0000191690555b5050565b6000336108a7858285610fe6565b6108b2858585611060565b506001949350505050565b60003361083c8185856108d08383610c63565b6108da91906117c4565b610e68565b6108e7610f8c565b6001600160a01b03821660009081526006602052604090205481151560ff90911615150361095c5760405162461bcd60e51b815260206004820181905260248201527f4e6f20666565206164647265737320737461746520616c72656164792073657460448201526064015b60405180910390fd5b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b61098f610f8c565b6018546001600160a01b031663f305d71947306109c1816001600160a01b031660009081526020819052604090205490565b60155460405160e086901b6001600160e01b03191681526001600160a01b039384166004820152602481019290925260006044830181905260648301529190911660848201524260a482015260c40160606040518083038185885af1158015610a2e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a5391906117d7565b5050508043610a6291906117c4565b60195550600b54600f55600c546010556009805460ff19166001179055565b610a89610f8c565b610a97600d54600e54610848565b600954610100900460ff1615610aaf57610aaf610e3f565b610ab76112e9565b565b6060600480546107ab90611774565b60003381610ad68286610c63565b905083811015610b365760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610953565b6108b28286868403610e68565b60003361083c818585611060565b306001600160a01b03831603610b6657600080fd5b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa158015610bad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd19190611805565b905060008215610be15782610be3565b815b60155460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925085169063a9059cbb906044016020604051808303816000875af1158015610c38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5c919061181e565b5050505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610c96610f8c565b601580546001600160a01b0319166001600160a01b0392909216919091179055565b610cc0610f8c565b6001600160a01b03821660009081526007602052604090205481151560ff909116151503610d3b5760405162461bcd60e51b815260206004820152602260248201527f4e6f206c696d6974206164647265737320737461746520616c72656164792073604482015261195d60f21b6064820152608401610953565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b610d6e610f8c565b6001600160a01b038116610dd35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610953565b610ddc816112f7565b50565b6015546040516000916001600160a01b03169047908381818185875af1925050503d8060008114610e2c576040519150601f19603f3d011682016040523d82523d6000602084013e610e31565b606091505b5050905080610ddc57600080fd5b610e47610f8c565b600954610100900460ff16610e5b57600080fd5b6009805461ff0019169055565b6001600160a01b038316610eca5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610953565b6001600160a01b038216610f2b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610953565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6005546001600160a01b03163314610ab75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610953565b6000610ff28484610c63565b9050600019811461105a578181101561104d5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610953565b61105a8484848403610e68565b50505050565b80158061106f5750601a5460ff165b8061107d575060095460ff16155b806110a057506001600160a01b03831660009081526006602052604090205460ff165b806110c357506001600160a01b03821660009081526006602052604090205460ff165b156110d8576110d3838383611349565b505050565b6016546001600160a01b03908116908316036111d7573060009081526020819052604090205460145481111561112957601a805460ff1916600117905561111e816114ed565b601a805460ff191690555b4715611186576015546040516000916001600160a01b03169047908381818185875af1925050503d806000811461117c576040519150601f19603f3d011682016040523d82523d6000602084013e611181565b606091505b505050505b60095462010000900460ff16156111d5576000600a54601054846111aa919061183b565b6111b49190611852565b905080156111d3576111c68184611874565b92506111d3853083611349565b505b505b6016546001600160a01b0384811691161480156111fc575060095462010000900460ff165b1561123f576000600a54600f5483611214919061183b565b61121e9190611852565b9050801561123d576112308183611874565b915061123d843083611349565b505b600954610100900460ff16156112de576001600160a01b03831660009081526008602052604090205460ff1661127e5760125481111561127e57600080fd5b6001600160a01b03821660009081526007602052604090205460ff166112cf576013546001600160a01b0383166000908152602081905260409020546112c490836117c4565b11156112cf57600080fd5b6019544310156112de57600080fd5b6110d3838383611349565b6112f1610f8c565b610ab760005b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0383166113ad5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610953565b6001600160a01b03821661140f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610953565b6001600160a01b038316600090815260208190526040902054818110156114875760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610953565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361105a565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061152257611522611887565b6001600160a01b03928316602091820292909201015260175482519116908290600190811061155357611553611887565b6001600160a01b03928316602091820292909201015260185460405163791ac94760e01b815291169063791ac9479061159990859060009086903090429060040161189d565b600060405180830381600087803b1580156115b357600080fd5b505af11580156115c7573d6000803e3d6000fd5b505050505050565b80356001600160a01b03811681146115e657600080fd5b919050565b6000602082840312156115fd57600080fd5b611606826115cf565b9392505050565b600060208083528351808285015260005b8181101561163a5785810183015185820160400152820161161e565b506000604082860101526040601f19601f8301168501019250505092915050565b6000806040838503121561166e57600080fd5b611677836115cf565b946020939093013593505050565b6000806040838503121561169857600080fd5b50508035926020909101359150565b6000806000606084860312156116bc57600080fd5b6116c5846115cf565b92506116d3602085016115cf565b9150604084013590509250925092565b8015158114610ddc57600080fd5b6000806040838503121561170457600080fd5b61170d836115cf565b9150602083013561171d816116e3565b809150509250929050565b60006020828403121561173a57600080fd5b5035919050565b6000806040838503121561175457600080fd5b61175d836115cf565b915061176b602084016115cf565b90509250929050565b600181811c9082168061178857607f821691505b6020821081036117a857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610842576108426117ae565b6000806000606084860312156117ec57600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561181757600080fd5b5051919050565b60006020828403121561183057600080fd5b8151611606816116e3565b8082028115828204841417610842576108426117ae565b60008261186f57634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610842576108426117ae565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118ed5784516001600160a01b0316835293830193918301916001016118c8565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212200866832256a55fd7c0f42c75450a18936883e36a62afcf48d5c5c07dfa60937e64736f6c63430008120033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

-----Decoded View---------------
Arg [0] : routerAddress (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d


Deployed Bytecode Sourcemap

20799:6861:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20884:37;;;;;;;;;;-1:-1:-1;20884:37:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;548:14:1;;541:22;523:41;;511:2;496:18;20884:37:0;;;;;;;;21569:72;;;;;;;;;;;;;;;;;;;721:25:1;;;709:2;694:18;21569:72:0;575:177:1;9611:100:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;11962:201::-;;;;;;;;;;-1:-1:-1;11962:201:0;;;;;:::i;:::-;;:::i;23718:384::-;;;;;;;;;;-1:-1:-1;23718:384:0;;;;;:::i;:::-;;:::i;:::-;;21222:47;;;;;;;;;;;;;;;;10731:108;;;;;;;;;;-1:-1:-1;10819:12:0;;10731:108;;12743:295;;;;;;;;;;-1:-1:-1;12743:295:0;;;;;:::i;:::-;;:::i;10573:93::-;;;;;;;;;;-1:-1:-1;10573:93:0;;10656:2;2297:36:1;;2285:2;2270:18;10573:93:0;2155:184:1;21094:46:0;;;;;;;;;;-1:-1:-1;21094:46:0;;;;;;;;;;;13447:238;;;;;;;;;;-1:-1:-1;13447:238:0;;;;;:::i;:::-;;:::i;22041:19::-;;;;;;;;;;-1:-1:-1;22041:19:0;;;;-1:-1:-1;;;;;22041:19:0;;;;;;-1:-1:-1;;;;;2508:32:1;;;2490:51;;2478:2;2463:18;22041:19:0;2344:203:1;23269:195:0;;;;;;;;;;-1:-1:-1;23269:195:0;;;;;:::i;:::-;;:::i;21903:93::-;;;;;;;;;;-1:-1:-1;21903:93:0;;;;-1:-1:-1;;;;;21903:93:0;;;21838:56;;;;;;;;;;;;;;;;10902:127;;;;;;;;;;-1:-1:-1;10902:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;11003:18:0;10976:7;11003:18;;;;;;;;;;;;10902:127;26756:521;;;;;;:::i;:::-;;:::i;24635:245::-;;;;;;;;;;;;;:::i;21492:30::-;;;;;;;;;;;;;;;;21040:47;;;;;;;;;;-1:-1:-1;21040:47:0;;;;;;;;21438;;;;;;;;;;;;;;;;21384;;;;;;;;;;;;;;;;21276;;;;;;;;;;;;;;;;6170:87;;;;;;;;;;-1:-1:-1;6243:6:0;;-1:-1:-1;;;;;6243:6:0;6170:87;;9830:104;;;;;;;;;;;;;:::i;20980:50::-;;;;;;;;;;-1:-1:-1;20980:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14188:436;;;;;;;;;;-1:-1:-1;14188:436:0;;;;;:::i;:::-;;:::i;21147:46::-;;;;;;;;;;-1:-1:-1;21147:46:0;;;;;;;;;;;11235:193;;;;;;;;;;-1:-1:-1;11235:193:0;;;;;:::i;:::-;;:::i;21775:54::-;;;;;;;;;;;;;;;;22005:29;;;;;;;;;;-1:-1:-1;22005:29:0;;;;-1:-1:-1;;;;;22005:29:0;;;24110:357;;;;;;;;;;-1:-1:-1;24110:357:0;;;;;:::i;:::-;;:::i;21714:54::-;;;;;;;;;;;;;;;;21529:31;;;;;;;;;;;;;;;;11491:151;;;;;;;;;;-1:-1:-1;11491:151:0;;;;;:::i;:::-;;:::i;21330:47::-;;;;;;;;;;;;;;;;23472:114;;;;;;;;;;-1:-1:-1;23472:114:0;;;;;:::i;:::-;;:::i;22794:227::-;;;;;;;;;;-1:-1:-1;22794:227:0;;;;;:::i;:::-;;:::i;7076:201::-;;;;;;;;;;-1:-1:-1;7076:201:0;;;;;:::i;:::-;;:::i;24475:152::-;;;;;;;;;;;;;:::i;22067:21::-;;;;;;;;;;-1:-1:-1;22067:21:0;;;;-1:-1:-1;;;;;22067:21:0;;;23595:115;;;;;;;;;;;;;:::i;20928:45::-;;;;;;;;;;-1:-1:-1;20928:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9611:100;9665:13;9698:5;9691:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9611:100;:::o;11962:201::-;12045:4;4959:10;12101:32;4959:10;12117:7;12126:6;12101:8;:32::i;:::-;12151:4;12144:11;;;11962:201;;;;;:::o;23718:384::-;6056:13;:11;:13::i;:::-;23844:15:::1;;23824:16;:35;;:76;;;;;23884:16;;23863:17;:37;;23824:76;23816:85;;;::::0;::::1;;23912:15;:34:::0;;;23957:16:::1;:36:::0;;;24008:34:::1;23976:17:::0;23930:16;24008:34:::1;:::i;:::-;24046:1;24008:39:::0;24004:91:::1;;24064:11;:19:::0;;-1:-1:-1;;24064:19:0::1;::::0;;24004:91:::1;23718:384:::0;;:::o;12743:295::-;12874:4;4959:10;12932:38;12948:4;4959:10;12963:6;12932:15;:38::i;:::-;12981:27;12991:4;12997:2;13001:6;12981:9;:27::i;:::-;-1:-1:-1;13026:4:0;;12743:295;-1:-1:-1;;;;12743:295:0:o;13447:238::-;13535:4;4959:10;13591:64;4959:10;13607:7;13644:10;13616:25;4959:10;13607:7;13616:9;:25::i;:::-;:38;;;;:::i;:::-;13591:8;:64::i;23269:195::-;6056:13;:11;:13::i;:::-;-1:-1:-1;;;;;23357:14:0;::::1;;::::0;;;:5:::1;:14;::::0;;;;;:26;::::1;;:14;::::0;;::::1;:26;;::::0;23349:71:::1;;;::::0;-1:-1:-1;;;23349:71:0;;4516:2:1;23349:71:0::1;::::0;::::1;4498:21:1::0;;;4535:18;;;4528:30;4594:34;4574:18;;;4567:62;4646:18;;23349:71:0::1;;;;;;;;;-1:-1:-1::0;;;;;23431:14:0;;;::::1;;::::0;;;:5:::1;:14;::::0;;;;:25;;-1:-1:-1;;23431:25:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23269:195::o;26756:521::-;6056:13;:11;:13::i;:::-;26852:6:::1;::::0;-1:-1:-1;;;;;26852:6:0::1;:22;26882:21;26927:4;26947:24;26927:4:::0;-1:-1:-1;;;;;11003:18:0;10976:7;11003:18;;;;;;;;;;;;10902:127;26947:24:::1;27018:12;::::0;26852:219:::1;::::0;::::1;::::0;;;-1:-1:-1;;;;;;26852:219:0;;;-1:-1:-1;;;;;5034:15:1;;;26852:219:0::1;::::0;::::1;5016:34:1::0;5066:18;;;5059:34;;;;26986:1:0::1;5109:18:1::0;;;5102:34;;;5152:18;;;5145:34;27018:12:0;;;::::1;5195:19:1::0;;;5188:44;27045:15:0::1;5248:19:1::0;;;5241:35;4950:19;;26852:219:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;27125:10;27110:12;:25;;;;:::i;:::-;27084:23;:51:::0;-1:-1:-1;27166:22:0::1;::::0;27148:15:::1;:40:::0;27218:23:::1;::::0;27199:16:::1;:42:::0;-1:-1:-1;27254:15:0;;-1:-1:-1;;27254:15:0::1;27265:4;27254:15;::::0;;26756:521::o;24635:245::-;6056:13;:11;:13::i;:::-;24701:52:::1;24709:20;;24731:21;;24701:7;:52::i;:::-;24778:13;::::0;::::1;::::0;::::1;;;24774:61;;;24808:15;:13;:15::i;:::-;24847:25;:23;:25::i;:::-;24635:245::o:0;9830:104::-;9886:13;9919:7;9912:14;;;;;:::i;14188:436::-;14281:4;4959:10;14281:4;14364:25;4959:10;14381:7;14364:9;:25::i;:::-;14337:52;;14428:15;14408:16;:35;;14400:85;;;;-1:-1:-1;;;14400:85:0;;5800:2:1;14400:85:0;;;5782:21:1;5839:2;5819:18;;;5812:30;5878:34;5858:18;;;5851:62;-1:-1:-1;;;5929:18:1;;;5922:35;5974:19;;14400:85:0;5598:401:1;14400:85:0;14521:60;14530:5;14537:7;14565:15;14546:16;:34;14521:8;:60::i;11235:193::-;11314:4;4959:10;11370:28;4959:10;11387:2;11391:6;11370:9;:28::i;24110:357::-;24229:4;-1:-1:-1;;;;;24205:29:0;;;24197:38;;;;;;24269:45;;-1:-1:-1;;;24269:45:0;;24308:4;24269:45;;;2490:51:1;24246:20:0;;-1:-1:-1;;;;;24269:30:0;;;;;2463:18:1;;24269:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24246:68;-1:-1:-1;24325:24:0;24352:11;;:35;;24381:6;24352:35;;;24366:12;24352:35;24428:12;;24398:61;;-1:-1:-1;;;24398:61:0;;-1:-1:-1;;;;;24428:12:0;;;24398:61;;;6367:51:1;6434:18;;;6427:34;;;24325:62:0;;-1:-1:-1;24398:29:0;;;;;6340:18:1;;24398:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24186:281;;24110:357;;:::o;11491:151::-;-1:-1:-1;;;;;11607:18:0;;;11580:7;11607:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;11491:151::o;23472:114::-;6056:13;:11;:13::i;:::-;23550:12:::1;:28:::0;;-1:-1:-1;;;;;;23550:28:0::1;-1:-1:-1::0;;;;;23550:28:0;;;::::1;::::0;;;::::1;::::0;;23472:114::o;22794:227::-;6056:13;:11;:13::i;:::-;-1:-1:-1;;;;;22892:22:0;::::1;;::::0;;;:13:::1;:22;::::0;;;;;:36;::::1;;:22;::::0;;::::1;:36;;::::0;22884:83:::1;;;::::0;-1:-1:-1;;;22884:83:0;;6924:2:1;22884:83:0::1;::::0;::::1;6906:21:1::0;6963:2;6943:18;;;6936:30;7002:34;6982:18;;;6975:62;-1:-1:-1;;;7053:18:1;;;7046:32;7095:19;;22884:83:0::1;6722:398:1::0;22884:83:0::1;-1:-1:-1::0;;;;;22978:22:0;;;::::1;;::::0;;;:13:::1;:22;::::0;;;;:35;;-1:-1:-1;;22978:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22794:227::o;7076:201::-;6056:13;:11;:13::i;:::-;-1:-1:-1;;;;;7165:22:0;::::1;7157:73;;;::::0;-1:-1:-1;;;7157:73:0;;7327:2:1;7157:73:0::1;::::0;::::1;7309:21:1::0;7366:2;7346:18;;;7339:30;7405:34;7385:18;;;7378:62;-1:-1:-1;;;7456:18:1;;;7449:36;7502:19;;7157:73:0::1;7125:402:1::0;7157:73:0::1;7241:28;7260:8;7241:18;:28::i;:::-;7076:201:::0;:::o;24475:152::-;24541:12;;:51;;24524:12;;-1:-1:-1;;;;;24541:12:0;;24566:21;;24524:12;24541:51;24524:12;24541:51;24566:21;24541:12;:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24523:69;;;24611:7;24603:16;;;;;23595:115;6056:13;:11;:13::i;:::-;23656::::1;::::0;::::1;::::0;::::1;;;23648:22;;;::::0;::::1;;23681:13;:21:::0;;-1:-1:-1;;23681:21:0::1;::::0;;23595:115::o;18215:380::-;-1:-1:-1;;;;;18351:19:0;;18343:68;;;;-1:-1:-1;;;18343:68:0;;7944:2:1;18343:68:0;;;7926:21:1;7983:2;7963:18;;;7956:30;8022:34;8002:18;;;7995:62;-1:-1:-1;;;8073:18:1;;;8066:34;8117:19;;18343:68:0;7742:400:1;18343:68:0;-1:-1:-1;;;;;18430:21:0;;18422:68;;;;-1:-1:-1;;;18422:68:0;;8349:2:1;18422:68:0;;;8331:21:1;8388:2;8368:18;;;8361:30;8427:34;8407:18;;;8400:62;-1:-1:-1;;;8478:18:1;;;8471:32;8520:19;;18422:68:0;8147:398:1;18422:68:0;-1:-1:-1;;;;;18503:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;18555:32;;721:25:1;;;18555:32:0;;694:18:1;18555:32:0;;;;;;;18215:380;;;:::o;6335:132::-;6243:6;;-1:-1:-1;;;;;6243:6:0;4959:10;6399:23;6391:68;;;;-1:-1:-1;;;6391:68:0;;8752:2:1;6391:68:0;;;8734:21:1;;;8771:18;;;8764:30;8830:34;8810:18;;;8803:62;8882:18;;6391:68:0;8550:356:1;18886:453:0;19021:24;19048:25;19058:5;19065:7;19048:9;:25::i;:::-;19021:52;;-1:-1:-1;;19088:16:0;:37;19084:248;;19170:6;19150:16;:26;;19142:68;;;;-1:-1:-1;;;19142:68:0;;9113:2:1;19142:68:0;;;9095:21:1;9152:2;9132:18;;;9125:30;9191:31;9171:18;;;9164:59;9240:18;;19142:68:0;8911:353:1;19142:68:0;19254:51;19263:5;19270:7;19298:6;19279:16;:25;19254:8;:51::i;:::-;19010:329;18886:453;;;:::o;24888:1860::-;24982:11;;;:31;;-1:-1:-1;24997:16:0;;;;24982:31;:44;;;-1:-1:-1;25018:8:0;;;;25017:9;24982:44;:59;;;-1:-1:-1;;;;;;25030:11:0;;;;;;:5;:11;;;;;;;;24982:59;:72;;;-1:-1:-1;;;;;;25045:9:0;;;;;;:5;:9;;;;;;;;24982:72;24978:159;;;25071:33;25087:4;25093:2;25097:6;25071:15;:33::i;:::-;24888:1860;;;:::o;24978:159::-;25176:14;;-1:-1:-1;;;;;25176:14:0;;;25170:20;;;;25166:852;;25251:4;25207:23;11003:18;;;;;;;;;;;25294:21;;25276:39;;25272:198;;;25336:16;:23;;-1:-1:-1;;25336:23:0;25355:4;25336:23;;;25378:33;25395:15;25378:16;:33::i;:::-;25430:16;:24;;-1:-1:-1;;25430:24:0;;;25272:198;25490:21;:25;25486:213;;25632:12;;:51;;25615:12;;-1:-1:-1;;;;;25632:12:0;;25657:21;;25615:12;25632:51;25615:12;25632:51;25657:21;25632:12;:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;25486:213:0;25720:11;;;;;;;25716:291;;;25752:17;25800:14;;25781:16;;25772:6;:25;;;;:::i;:::-;:42;;;;:::i;:::-;25752:62;-1:-1:-1;25837:13:0;;25833:159;;25884:18;25893:9;25884:6;:18;:::i;:::-;25875:27;;25925:47;25941:4;25955;25962:9;25925:15;:47::i;:::-;25733:274;25716:291;25192:826;25166:852;26058:14;;-1:-1:-1;;;;;26050:22:0;;;26058:14;;26050:22;:37;;;;-1:-1:-1;26076:11:0;;;;;;;26050:37;26046:292;;;26104:17;26151:14;;26133:15;;26124:6;:24;;;;:::i;:::-;:41;;;;:::i;:::-;26104:61;-1:-1:-1;26184:13:0;;26180:147;;26227:18;26236:9;26227:6;:18;:::i;:::-;26218:27;;26264:47;26280:4;26294;26301:9;26264:15;:47::i;:::-;26089:249;26046:292;26354:13;;;;;;;26350:344;;;-1:-1:-1;;;;;26389:24:0;;;;;;:18;:24;;;;;;;;26384:97;;26452:12;;26442:6;:22;;26434:31;;;;;;-1:-1:-1;;;;;26502:17:0;;;;;;:13;:17;;;;;;;;26497:109;;26574:15;;-1:-1:-1;;;;;11003:18:0;;10976:7;11003:18;;;;;;;;;;;26548:22;;:6;:22;:::i;:::-;:41;;26540:50;;;;;;26658:23;;26642:12;:39;;26634:48;;;;;;26707:33;26723:4;26729:2;26733:6;26707:15;:33::i;6818:103::-;6056:13;:11;:13::i;:::-;6883:30:::1;6910:1;7437:191:::0;7530:6;;;-1:-1:-1;;;;;7547:17:0;;;-1:-1:-1;;;;;;7547:17:0;;;;;;;7580:40;;7530:6;;;7547:17;7530:6;;7580:40;;7511:16;;7580:40;7500:128;7437:191;:::o;15094:840::-;-1:-1:-1;;;;;15225:18:0;;15217:68;;;;-1:-1:-1;;;15217:68:0;;9999:2:1;15217:68:0;;;9981:21:1;10038:2;10018:18;;;10011:30;10077:34;10057:18;;;10050:62;-1:-1:-1;;;10128:18:1;;;10121:35;10173:19;;15217:68:0;9797:401:1;15217:68:0;-1:-1:-1;;;;;15304:16:0;;15296:64;;;;-1:-1:-1;;;15296:64:0;;10405:2:1;15296:64:0;;;10387:21:1;10444:2;10424:18;;;10417:30;10483:34;10463:18;;;10456:62;-1:-1:-1;;;10534:18:1;;;10527:33;10577:19;;15296:64:0;10203:399:1;15296:64:0;-1:-1:-1;;;;;15446:15:0;;15424:19;15446:15;;;;;;;;;;;15480:21;;;;15472:72;;;;-1:-1:-1;;;15472:72:0;;10809:2:1;15472:72:0;;;10791:21:1;10848:2;10828:18;;;10821:30;10887:34;10867:18;;;10860:62;-1:-1:-1;;;10938:18:1;;;10931:36;10984:19;;15472:72:0;10607:402:1;15472:72:0;-1:-1:-1;;;;;15580:15:0;;;:9;:15;;;;;;;;;;;15598:20;;;15580:38;;15798:13;;;;;;;;;;:23;;;;;;15850:26;;721:25:1;;;15798:13:0;;15850:26;;694:18:1;15850:26:0;;;;;;;15889:37;24888:1860;27285:372;27376:16;;;27390:1;27376:16;;;;;;;;27352:21;;27376:16;;;;;;;;;;-1:-1:-1;27376:16:0;27352:40;;27421:4;27403;27408:1;27403:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;27403:23:0;;;:7;;;;;;;;;:23;27447:4;;27437:7;;27447:4;;;27437;;27447;;27437:7;;;;;;:::i;:::-;-1:-1:-1;;;;;27437:14:0;;;:7;;;;;;;;;:14;27462:6;;:187;;-1:-1:-1;;;27462:187:0;;:6;;;:57;;:187;;27534:11;;27462:6;;27576:4;;27603;;27623:15;;27462:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27341:316;27285:372;:::o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;:::-;333:39;192:186;-1:-1:-1;;;192:186:1:o;757:548::-;869:4;898:2;927;916:9;909:21;959:6;953:13;1002:6;997:2;986:9;982:18;975:34;1027:1;1037:140;1051:6;1048:1;1045:13;1037:140;;;1146:14;;;1142:23;;1136:30;1112:17;;;1131:2;1108:26;1101:66;1066:10;;1037:140;;;1041:3;1226:1;1221:2;1212:6;1201:9;1197:22;1193:31;1186:42;1296:2;1289;1285:7;1280:2;1272:6;1268:15;1264:29;1253:9;1249:45;1245:54;1237:62;;;;757:548;;;;:::o;1310:254::-;1378:6;1386;1439:2;1427:9;1418:7;1414:23;1410:32;1407:52;;;1455:1;1452;1445:12;1407:52;1478:29;1497:9;1478:29;:::i;:::-;1468:39;1554:2;1539:18;;;;1526:32;;-1:-1:-1;;;1310:254:1:o;1569:248::-;1637:6;1645;1698:2;1686:9;1677:7;1673:23;1669:32;1666:52;;;1714:1;1711;1704:12;1666:52;-1:-1:-1;;1737:23:1;;;1807:2;1792:18;;;1779:32;;-1:-1:-1;1569:248:1:o;1822:328::-;1899:6;1907;1915;1968:2;1956:9;1947:7;1943:23;1939:32;1936:52;;;1984:1;1981;1974:12;1936:52;2007:29;2026:9;2007:29;:::i;:::-;1997:39;;2055:38;2089:2;2078:9;2074:18;2055:38;:::i;:::-;2045:48;;2140:2;2129:9;2125:18;2112:32;2102:42;;1822:328;;;;;:::o;2552:118::-;2638:5;2631:13;2624:21;2617:5;2614:32;2604:60;;2660:1;2657;2650:12;2675:315;2740:6;2748;2801:2;2789:9;2780:7;2776:23;2772:32;2769:52;;;2817:1;2814;2807:12;2769:52;2840:29;2859:9;2840:29;:::i;:::-;2830:39;;2919:2;2908:9;2904:18;2891:32;2932:28;2954:5;2932:28;:::i;:::-;2979:5;2969:15;;;2675:315;;;;;:::o;2995:180::-;3054:6;3107:2;3095:9;3086:7;3082:23;3078:32;3075:52;;;3123:1;3120;3113:12;3075:52;-1:-1:-1;3146:23:1;;2995:180;-1:-1:-1;2995:180:1:o;3180:260::-;3248:6;3256;3309:2;3297:9;3288:7;3284:23;3280:32;3277:52;;;3325:1;3322;3315:12;3277:52;3348:29;3367:9;3348:29;:::i;:::-;3338:39;;3396:38;3430:2;3419:9;3415:18;3396:38;:::i;:::-;3386:48;;3180:260;;;;;:::o;3667:380::-;3746:1;3742:12;;;;3789;;;3810:61;;3864:4;3856:6;3852:17;3842:27;;3810:61;3917:2;3909:6;3906:14;3886:18;3883:38;3880:161;;3963:10;3958:3;3954:20;3951:1;3944:31;3998:4;3995:1;3988:15;4026:4;4023:1;4016:15;3880:161;;3667:380;;;:::o;4052:127::-;4113:10;4108:3;4104:20;4101:1;4094:31;4144:4;4141:1;4134:15;4168:4;4165:1;4158:15;4184:125;4249:9;;;4270:10;;;4267:36;;;4283:18;;:::i;5287:306::-;5375:6;5383;5391;5444:2;5432:9;5423:7;5419:23;5415:32;5412:52;;;5460:1;5457;5450:12;5412:52;5489:9;5483:16;5473:26;;5539:2;5528:9;5524:18;5518:25;5508:35;;5583:2;5572:9;5568:18;5562:25;5552:35;;5287:306;;;;;:::o;6004:184::-;6074:6;6127:2;6115:9;6106:7;6102:23;6098:32;6095:52;;;6143:1;6140;6133:12;6095:52;-1:-1:-1;6166:16:1;;6004:184;-1:-1:-1;6004:184:1:o;6472:245::-;6539:6;6592:2;6580:9;6571:7;6567:23;6563:32;6560:52;;;6608:1;6605;6598:12;6560:52;6640:9;6634:16;6659:28;6681:5;6659:28;:::i;9269:168::-;9342:9;;;9373;;9390:15;;;9384:22;;9370:37;9360:71;;9411:18;;:::i;9442:217::-;9482:1;9508;9498:132;;9552:10;9547:3;9543:20;9540:1;9533:31;9587:4;9584:1;9577:15;9615:4;9612:1;9605:15;9498:132;-1:-1:-1;9644:9:1;;9442:217::o;9664:128::-;9731:9;;;9752:11;;;9749:37;;;9766:18;;:::i;11146:127::-;11207:10;11202:3;11198:20;11195:1;11188:31;11238:4;11235:1;11228:15;11262:4;11259:1;11252:15;11278:980;11540:4;11588:3;11577:9;11573:19;11619:6;11608:9;11601:25;11645:2;11683:6;11678:2;11667:9;11663:18;11656:34;11726:3;11721:2;11710:9;11706:18;11699:31;11750:6;11785;11779:13;11816:6;11808;11801:22;11854:3;11843:9;11839:19;11832:26;;11893:2;11885:6;11881:15;11867:29;;11914:1;11924:195;11938:6;11935:1;11932:13;11924:195;;;12003:13;;-1:-1:-1;;;;;11999:39:1;11987:52;;12094:15;;;;12059:12;;;;12035:1;11953:9;11924:195;;;-1:-1:-1;;;;;;;12175:32:1;;;;12170:2;12155:18;;12148:60;-1:-1:-1;;;12239:3:1;12224:19;12217:35;12136:3;11278:980;-1:-1:-1;;;11278:980:1:o

Swarm Source

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