ETH Price: $3,487.06 (+3.43%)
Gas: 4 Gwei

Token

HAMAJING (蛤蟆精)
 

Overview

Max Total Supply

100,000,000 蛤蟆精

Holders

38

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
2,360,364.133622903345689274 蛤蟆精

Value
$0.00
0x5d87511979f30cfe235e4b98f21e8f19986727e8
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:
HAMAJING

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-29
*/

// SPDX-License-Identifier: MIT

/**

Website:   https://hamajing.vip

Telegram:  https://t.me/hamajing_portal

Twitter:   https://twitter.com/hamajing_coin

*/

pragma solidity ^0.8.15;

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

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

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

    function allPairs(uint) external view returns (address pair);

    function allPairsLength() external view returns (uint);

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

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

/**
 * @dev Wrappers over Solidity's arithmetic operations.
 *
 * NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler
 * now has built in overflow checking.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryAdd(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function trySub(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryMul(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
            // benefit is lost if 'b' is also tested.
            // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the division of two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryDiv(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryMod(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator.
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {trySub}.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting with custom message when dividing by zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryMod}.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

interface ERC20 {
    function totalSupply() external view returns (uint256);

    function decimals() external view returns (uint8);

    function symbol() external view returns (string memory);

    function name() external view returns (string memory);

    function getOwner() external view returns (address);

    function balanceOf(address account) external view returns (uint256);

    function transfer(
        address recipient,
        uint256 amount
    ) external returns (bool);

    function allowance(
        address _owner,
        address spender
    ) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

abstract contract Ownable {
    address internal owner;

    constructor(address _owner) {
        owner = _owner;
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER");
        _;
    }

    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    function renounceOwnership() public onlyOwner {
        owner = address(0);
        emit OwnershipTransferred(address(0));
    }

    event OwnershipTransferred(address owner);
}

// pragma solidity >=0.5.0;

interface IUniswapV2ERC20 {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);

    function symbol() external pure returns (string memory);

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint);

    function balanceOf(address owner) external view returns (uint);

    function allowance(
        address owner,
        address spender
    ) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);

    function transfer(address to, uint value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint value
    ) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

    function nonces(address owner) external view returns (uint);

    function permit(
        address owner,
        address spender,
        uint value,
        uint deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    function sync() external;
}

// pragma solidity >=0.6.2;

interface IUniswapV2Router01 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// pragma solidity >=0.6.2;

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

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

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

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

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

contract HAMAJING is ERC20, Ownable {
    using SafeMath for uint256;

    address routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address DEAD = 0x000000000000000000000000000000000000dEaD;

    string constant _name = unicode"HAMAJING";
    string constant _symbol = unicode"蛤蟆精";

    uint8 constant _decimals = 18;

    uint256 public _totalSupply = 100_000_000 * (10 ** _decimals);
    uint256 public _maxWalletAmount = (_totalSupply * 2) / 100;
    uint256 public _minSwapAmount = (_totalSupply * 1) / 100000;
    uint256 public _maxTaxSwap = (_totalSupply * 2) / 1000;

    mapping(address => uint256) _balances;
    mapping(address => mapping(address => uint256)) _allowances;
    mapping(address => bool) isFeeExempts;
    mapping(address => bool) isTxLimitExempts;

    address public _treeWallet;
    address public pair;

    IDEXRouter public router;

    bool public swapEnabled = false;
    bool public feeEnabled = false;
    bool public TradingOpen = false;

    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 2;

    bool inSwap;
    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() Ownable(msg.sender) {
        address _owner = owner;
        _treeWallet = address(0x95efB5ae0D00c7F9108afBE067cfDa2e4cb185fa);

        isFeeExempts[_owner] = true;
        isFeeExempts[_treeWallet] = true;
        isFeeExempts[address(this)] = true;

        isTxLimitExempts[_owner] = true;
        isTxLimitExempts[_treeWallet] = true;
        isTxLimitExempts[address(this)] = true;

        _balances[_owner] = _totalSupply;
        
        emit Transfer(address(0), _owner, _totalSupply);
    }

    function name() external pure override returns (string memory) {
        return _name;
    }

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

    function decimals() external pure override returns (uint8) {
        return _decimals;
    }

    function symbol() external pure override returns (string memory) {
        return _symbol;
    }

    function getOwner() external view override returns (address) {
        return owner;
    }

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

    function min(uint256 a, uint256 b) private pure returns (uint256) {
        return (a > b) ? b : a;
    }

    function shouldSwapBack(
        uint256 a,
        uint256 c,
        uint256 s
    ) internal view returns (bool) {
        return !inSwap && swapEnabled && a > s && c > s;
    }

    function isTakeTaxFees(address sender) internal view returns (bool) {
        return !isFeeExempts[sender];
    }

    function allowance(
        address holder,
        address spender
    ) external view override returns (uint256) {
        return _allowances[holder][spender];
    }

    function approve(
        address spender,
        uint256 amount
    ) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function transfer(
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender]
                .sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    /**
        Internal functions
    **/

    function takeFeeAmount(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (uint256) {
        uint256 percent;
        uint256 fee;
        uint256 feeDenominator = 100;

        if (recipient == pair) {
            percent = _finalSellTax;
        } else if (sender == pair) {
            percent = _finalBuyTax;
        }

        uint256 feeAmount = amount.mul(percent).div(feeDenominator);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        feeAmount = isTakeTaxFees(sender) ? feeAmount : amount - fee;

        return amount.sub(feeAmount);
    }

    function swapBack(uint256 amount) internal swapping {
        uint256 contractTokenBalance = balanceOf(address(this));
        uint256 amountToSwap = min(
            amount,
            min(contractTokenBalance, _maxTaxSwap)
        );

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETHMarketing = address(this).balance;
        payable(_treeWallet).transfer(amountETHMarketing);
    }

    function _basicTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(
            amount,
            "Insufficient Balance"
        );
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function createPair() external onlyOwner {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        pair = IDEXFactory(router.factory()).createPair(
            address(this),
            router.WETH()
        );

        isTxLimitExempts[pair] = true;

        _allowances[address(this)][address(router)] = type(uint256).max;
    }

    function enableTrading() public onlyOwner {
        require(!TradingOpen, "trading is already open");

        TradingOpen = true;
        feeEnabled = true;
        swapEnabled = true;
    }

    function removeLimit() external onlyOwner returns (bool) {
        _maxWalletAmount = type(uint).max;
        return true;
    }

    function _transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }

        if (!isFeeExempts[sender] && !isFeeExempts[recipient]) {
            require(TradingOpen, "Trading not open yet");
        }

        if (!swapEnabled) {
            return _basicTransfer(sender, recipient, amount);
        }

        if (
            recipient != pair &&
            recipient != DEAD &&
            !isFeeExempts[sender] &&
            !isFeeExempts[recipient]
        ) {
            require(
                isTxLimitExempts[recipient] ||
                    _balances[recipient] + amount <= _maxWalletAmount,
                "Transfer amount exceeds the bag size."
            );
        }

        uint256 contractBalance = balanceOf(address(this));
        if (
            shouldSwapBack(amount, contractBalance, _minSwapAmount) &&
            recipient == pair &&
            !isFeeExempts[sender]
        ) {
            swapBack(amount);
        }

        uint256 amountSender = isTakeTaxFees(sender) ? amount : feeEnabled
            ? takeFeeAmount(sender, recipient, amount)
            : amount;

        uint256 amountRecipient = feeEnabled && isTakeTaxFees(sender)
            ? takeFeeAmount(sender, recipient, amount)
            : amount;

        _balances[sender] = _balances[sender].sub(
            amountSender,
            "Insufficient Balance"
        );

        _balances[recipient] = _balances[recipient].add(amountRecipient);

        emit Transfer(sender, recipient, amountRecipient);
        return true;
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","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":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTaxSwap","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":"_minSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_treeWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"createPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600180546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d179091556002805490911661dead179055620000486012600a620002fb565b62000058906305f5e10062000313565b600355606460035460026200006e919062000313565b6200007a91906200032d565b600455620186a0600354600162000092919062000313565b6200009e91906200032d565b6005556103e86003546002620000b5919062000313565b620000c191906200032d565b600655600d805462ffffff60a01b191690556000600e556002600f55348015620000ea57600080fd5b50600080546001600160a01b0319908116339081178355600b80549092167395efb5ae0d00c7f9108afbe067cfda2e4cb185fa178255808352600960209081526040808520805460ff19908116600190811790925585546001600160a01b0390811688528388208054831684179055308089528489208054841685179055868952600a86528489208054841685179055965416875282872080548216831790559486528186208054909516179093556003548285526007825283852081905592519283529092839290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35062000350565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200023d578160001904821115620002215762000221620001e6565b808516156200022f57918102915b93841c939080029062000201565b509250929050565b6000826200025657506001620002f5565b816200026557506000620002f5565b81600181146200027e57600281146200028957620002a9565b6001915050620002f5565b60ff8411156200029d576200029d620001e6565b50506001821b620002f5565b5060208310610133831016604e8410600b8410161715620002ce575081810a620002f5565b620002da8383620001fc565b8060001904821115620002f157620002f1620001e6565b0290505b92915050565b60006200030c60ff84168362000245565b9392505050565b8082028115828204841417620002f557620002f5620001e6565b6000826200034b57634e487b7160e01b600052601260045260246000fd5b500490565b61159b80620003606000396000f3fe60806040526004361061016a5760003560e01c80636ddd1713116100d157806395d89b411161008a578063a8aa1b3111610064578063a8aa1b3114610446578063a9059cbb14610466578063dd62ed3e14610486578063f887ea40146104cc57600080fd5b806395d89b41146103de5780639e78fb4f14610410578063a771ebc71461042557600080fd5b80636ddd17131461032757806370a0823114610348578063715018a61461037e57806372215e3f14610395578063893d20e8146103ab5780638a8c523c146103c957600080fd5b80632c817c0b116101235780632c817c0b146102635780632f54bf6e1461029b578063313ce567146102ca5780633eaaf86b146102e657806362256589146102fc5780636c0a24eb1461031157600080fd5b806306fdde031461017657806308fd3d05146101b9578063095ea7b3146101ea5780630faee56f1461020a57806318160ddd1461022e57806323b872dd1461024357600080fd5b3661017157005b600080fd5b34801561018257600080fd5b5060408051808201909152600881526748414d414a494e4760c01b60208201525b6040516101b09190611303565b60405180910390f35b3480156101c557600080fd5b50600d546101da90600160b01b900460ff1681565b60405190151581526020016101b0565b3480156101f657600080fd5b506101da610205366004611369565b6104ec565b34801561021657600080fd5b5061022060065481565b6040519081526020016101b0565b34801561023a57600080fd5b50600354610220565b34801561024f57600080fd5b506101da61025e366004611395565b610559565b34801561026f57600080fd5b50600b54610283906001600160a01b031681565b6040516001600160a01b0390911681526020016101b0565b3480156102a757600080fd5b506101da6102b63660046113d6565b6000546001600160a01b0391821691161490565b3480156102d657600080fd5b50604051601281526020016101b0565b3480156102f257600080fd5b5061022060035481565b34801561030857600080fd5b506101da61061b565b34801561031d57600080fd5b5061022060045481565b34801561033357600080fd5b50600d546101da90600160a01b900460ff1681565b34801561035457600080fd5b506102206103633660046113d6565b6001600160a01b031660009081526007602052604090205490565b34801561038a57600080fd5b5061039361065b565b005b3480156103a157600080fd5b5061022060055481565b3480156103b757600080fd5b506000546001600160a01b0316610283565b3480156103d557600080fd5b506103936106ca565b3480156103ea57600080fd5b50604080518082019091526009815268744dd2744fc373d95f60b91b60208201526101a3565b34801561041c57600080fd5b50610393610767565b34801561043157600080fd5b50600d546101da90600160a81b900460ff1681565b34801561045257600080fd5b50600c54610283906001600160a01b031681565b34801561047257600080fd5b506101da610481366004611369565b610968565b34801561049257600080fd5b506102206104a13660046113f3565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b3480156104d857600080fd5b50600d54610283906001600160a01b031681565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906105479086815260200190565b60405180910390a35060015b92915050565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001914610606576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526008825283812033825290915291909120546105e1918490610975565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b6106118484846109a1565b90505b9392505050565b600080546001600160a01b0316331461064f5760405162461bcd60e51b81526004016106469061142c565b60405180910390fd5b50600019600455600190565b6000546001600160a01b031633146106855760405162461bcd60e51b81526004016106469061142c565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b031633146106f45760405162461bcd60e51b81526004016106469061142c565b600d54600160b01b900460ff161561074e5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610646565b600d805462ffffff60a01b19166201010160a01b179055565b6000546001600160a01b031633146107915760405162461bcd60e51b81526004016106469061142c565b600d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156107f5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610819919061144c565b6001600160a01b031663c9c6539630600d60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561087b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089f919061144c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156108ec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610910919061144c565b600c80546001600160a01b0319166001600160a01b039283169081179091556000908152600a60209081526040808320805460ff1916600117905530835260088252808320600d549094168352929052206000199055565b60006106143384846109a1565b600081848411156109995760405162461bcd60e51b81526004016106469190611303565b505050900390565b60006001600160a01b038416610a075760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610646565b6001600160a01b038316610a695760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610646565b60008211610acb5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610646565b60105460ff1615610ae857610ae1848484610ebe565b9050610614565b6001600160a01b03841660009081526009602052604090205460ff16158015610b2a57506001600160a01b03831660009081526009602052604090205460ff16155b15610b7f57600d54600160b01b900460ff16610b7f5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610646565b600d54600160a01b900460ff16610b9b57610ae1848484610ebe565b600c546001600160a01b03848116911614801590610bc757506002546001600160a01b03848116911614155b8015610bec57506001600160a01b03841660009081526009602052604090205460ff16155b8015610c1157506001600160a01b03831660009081526009602052604090205460ff16155b15610cbc576001600160a01b0383166000908152600a602052604090205460ff1680610c6257506004546001600160a01b038416600090815260076020526040902054610c5f90849061147f565b11155b610cbc5760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b6064820152608401610646565b306000908152600760205260408120549050610cdb8382600554610fa4565b8015610cf45750600c546001600160a01b038581169116145b8015610d1957506001600160a01b03851660009081526009602052604090205460ff16155b15610d2757610d2783610fdc565b6001600160a01b03851660009081526009602052604081205460ff1615610d6f57600d54600160a81b900460ff16610d5f5783610d71565b610d6a8686866111a2565b610d71565b835b600d54909150600090600160a81b900460ff168015610da957506001600160a01b03871660009081526009602052604090205460ff16155b610db35784610dbe565b610dbe8787876111a2565b9050610e268260405180604001604052806014815260200173496e73756666696369656e742042616c616e636560601b815250600760008b6001600160a01b03166001600160a01b03168152602001908152602001600020546109759092919063ffffffff16565b6001600160a01b038089166000908152600760205260408082209390935590881681522054610e5590826112be565b6001600160a01b0380881660008181526007602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ea99085815260200190565b60405180910390a35060019695505050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600790915291822054610f0f918490610975565b6001600160a01b038086166000908152600760205260408082209390935590851681522054610f3e90836112be565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f929086815260200190565b60405180910390a35060019392505050565b60105460009060ff16158015610fc35750600d54600160a01b900460ff165b8015610fce57508184115b801561061157505010919050565b6010805460ff1916600117905530600090815260076020526040812054905060006110128361100d846006546112ca565b6112ca565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061104c5761104c611492565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156110a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c9919061144c565b816001815181106110dc576110dc611492565b6001600160a01b039283166020918202929092010152600d5460405163791ac94760e01b815291169063791ac947906111229085906000908690309042906004016114a8565b600060405180830381600087803b15801561113c57600080fd5b505af1158015611150573d6000803e3d6000fd5b5050600b546040514793506001600160a01b03909116915082156108fc029083906000818181858888f19350505050158015611190573d6000803e3d6000fd5b50506010805460ff1916905550505050565b600c54600090819081906064906001600160a01b03908116908716036111cc57600f5492506111e8565b600c546001600160a01b03908116908816036111e857600e5492505b60006111fe826111f888876112df565b906112eb565b3060009081526007602052604090205490915061121b90826112be565b30600081815260076020526040908190209290925590516001600160a01b038a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061126c9085815260200190565b60405180910390a36001600160a01b03881660009081526009602052604090205460ff16156112a45761129f8387611519565b6112a6565b805b90506112b286826112f7565b98975050505050505050565b6000610614828461147f565b60008183116112d95782610614565b50919050565b6000610614828461152c565b60006106148284611543565b60006106148284611519565b600060208083528351808285015260005b8181101561133057858101830151858201604001528201611314565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461136657600080fd5b50565b6000806040838503121561137c57600080fd5b823561138781611351565b946020939093013593505050565b6000806000606084860312156113aa57600080fd5b83356113b581611351565b925060208401356113c581611351565b929592945050506040919091013590565b6000602082840312156113e857600080fd5b813561061481611351565b6000806040838503121561140657600080fd5b823561141181611351565b9150602083013561142181611351565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b60006020828403121561145e57600080fd5b815161061481611351565b634e487b7160e01b600052601160045260246000fd5b8082018082111561055357610553611469565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156114f85784516001600160a01b0316835293830193918301916001016114d3565b50506001600160a01b03969096166060850152505050608001529392505050565b8181038181111561055357610553611469565b808202811582820484141761055357610553611469565b60008261156057634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212207e90c562c95efa31a44afd3a06956b03969ff8b0e9bca82d74fb2d6a1b63234b64736f6c63430008130033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c80636ddd1713116100d157806395d89b411161008a578063a8aa1b3111610064578063a8aa1b3114610446578063a9059cbb14610466578063dd62ed3e14610486578063f887ea40146104cc57600080fd5b806395d89b41146103de5780639e78fb4f14610410578063a771ebc71461042557600080fd5b80636ddd17131461032757806370a0823114610348578063715018a61461037e57806372215e3f14610395578063893d20e8146103ab5780638a8c523c146103c957600080fd5b80632c817c0b116101235780632c817c0b146102635780632f54bf6e1461029b578063313ce567146102ca5780633eaaf86b146102e657806362256589146102fc5780636c0a24eb1461031157600080fd5b806306fdde031461017657806308fd3d05146101b9578063095ea7b3146101ea5780630faee56f1461020a57806318160ddd1461022e57806323b872dd1461024357600080fd5b3661017157005b600080fd5b34801561018257600080fd5b5060408051808201909152600881526748414d414a494e4760c01b60208201525b6040516101b09190611303565b60405180910390f35b3480156101c557600080fd5b50600d546101da90600160b01b900460ff1681565b60405190151581526020016101b0565b3480156101f657600080fd5b506101da610205366004611369565b6104ec565b34801561021657600080fd5b5061022060065481565b6040519081526020016101b0565b34801561023a57600080fd5b50600354610220565b34801561024f57600080fd5b506101da61025e366004611395565b610559565b34801561026f57600080fd5b50600b54610283906001600160a01b031681565b6040516001600160a01b0390911681526020016101b0565b3480156102a757600080fd5b506101da6102b63660046113d6565b6000546001600160a01b0391821691161490565b3480156102d657600080fd5b50604051601281526020016101b0565b3480156102f257600080fd5b5061022060035481565b34801561030857600080fd5b506101da61061b565b34801561031d57600080fd5b5061022060045481565b34801561033357600080fd5b50600d546101da90600160a01b900460ff1681565b34801561035457600080fd5b506102206103633660046113d6565b6001600160a01b031660009081526007602052604090205490565b34801561038a57600080fd5b5061039361065b565b005b3480156103a157600080fd5b5061022060055481565b3480156103b757600080fd5b506000546001600160a01b0316610283565b3480156103d557600080fd5b506103936106ca565b3480156103ea57600080fd5b50604080518082019091526009815268744dd2744fc373d95f60b91b60208201526101a3565b34801561041c57600080fd5b50610393610767565b34801561043157600080fd5b50600d546101da90600160a81b900460ff1681565b34801561045257600080fd5b50600c54610283906001600160a01b031681565b34801561047257600080fd5b506101da610481366004611369565b610968565b34801561049257600080fd5b506102206104a13660046113f3565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b3480156104d857600080fd5b50600d54610283906001600160a01b031681565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906105479086815260200190565b60405180910390a35060015b92915050565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001914610606576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526008825283812033825290915291909120546105e1918490610975565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b6106118484846109a1565b90505b9392505050565b600080546001600160a01b0316331461064f5760405162461bcd60e51b81526004016106469061142c565b60405180910390fd5b50600019600455600190565b6000546001600160a01b031633146106855760405162461bcd60e51b81526004016106469061142c565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b031633146106f45760405162461bcd60e51b81526004016106469061142c565b600d54600160b01b900460ff161561074e5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610646565b600d805462ffffff60a01b19166201010160a01b179055565b6000546001600160a01b031633146107915760405162461bcd60e51b81526004016106469061142c565b600d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156107f5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610819919061144c565b6001600160a01b031663c9c6539630600d60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561087b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089f919061144c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156108ec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610910919061144c565b600c80546001600160a01b0319166001600160a01b039283169081179091556000908152600a60209081526040808320805460ff1916600117905530835260088252808320600d549094168352929052206000199055565b60006106143384846109a1565b600081848411156109995760405162461bcd60e51b81526004016106469190611303565b505050900390565b60006001600160a01b038416610a075760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610646565b6001600160a01b038316610a695760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610646565b60008211610acb5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610646565b60105460ff1615610ae857610ae1848484610ebe565b9050610614565b6001600160a01b03841660009081526009602052604090205460ff16158015610b2a57506001600160a01b03831660009081526009602052604090205460ff16155b15610b7f57600d54600160b01b900460ff16610b7f5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610646565b600d54600160a01b900460ff16610b9b57610ae1848484610ebe565b600c546001600160a01b03848116911614801590610bc757506002546001600160a01b03848116911614155b8015610bec57506001600160a01b03841660009081526009602052604090205460ff16155b8015610c1157506001600160a01b03831660009081526009602052604090205460ff16155b15610cbc576001600160a01b0383166000908152600a602052604090205460ff1680610c6257506004546001600160a01b038416600090815260076020526040902054610c5f90849061147f565b11155b610cbc5760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b6064820152608401610646565b306000908152600760205260408120549050610cdb8382600554610fa4565b8015610cf45750600c546001600160a01b038581169116145b8015610d1957506001600160a01b03851660009081526009602052604090205460ff16155b15610d2757610d2783610fdc565b6001600160a01b03851660009081526009602052604081205460ff1615610d6f57600d54600160a81b900460ff16610d5f5783610d71565b610d6a8686866111a2565b610d71565b835b600d54909150600090600160a81b900460ff168015610da957506001600160a01b03871660009081526009602052604090205460ff16155b610db35784610dbe565b610dbe8787876111a2565b9050610e268260405180604001604052806014815260200173496e73756666696369656e742042616c616e636560601b815250600760008b6001600160a01b03166001600160a01b03168152602001908152602001600020546109759092919063ffffffff16565b6001600160a01b038089166000908152600760205260408082209390935590881681522054610e5590826112be565b6001600160a01b0380881660008181526007602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ea99085815260200190565b60405180910390a35060019695505050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600790915291822054610f0f918490610975565b6001600160a01b038086166000908152600760205260408082209390935590851681522054610f3e90836112be565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f929086815260200190565b60405180910390a35060019392505050565b60105460009060ff16158015610fc35750600d54600160a01b900460ff165b8015610fce57508184115b801561061157505010919050565b6010805460ff1916600117905530600090815260076020526040812054905060006110128361100d846006546112ca565b6112ca565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061104c5761104c611492565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156110a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c9919061144c565b816001815181106110dc576110dc611492565b6001600160a01b039283166020918202929092010152600d5460405163791ac94760e01b815291169063791ac947906111229085906000908690309042906004016114a8565b600060405180830381600087803b15801561113c57600080fd5b505af1158015611150573d6000803e3d6000fd5b5050600b546040514793506001600160a01b03909116915082156108fc029083906000818181858888f19350505050158015611190573d6000803e3d6000fd5b50506010805460ff1916905550505050565b600c54600090819081906064906001600160a01b03908116908716036111cc57600f5492506111e8565b600c546001600160a01b03908116908816036111e857600e5492505b60006111fe826111f888876112df565b906112eb565b3060009081526007602052604090205490915061121b90826112be565b30600081815260076020526040908190209290925590516001600160a01b038a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061126c9085815260200190565b60405180910390a36001600160a01b03881660009081526009602052604090205460ff16156112a45761129f8387611519565b6112a6565b805b90506112b286826112f7565b98975050505050505050565b6000610614828461147f565b60008183116112d95782610614565b50919050565b6000610614828461152c565b60006106148284611543565b60006106148284611519565b600060208083528351808285015260005b8181101561133057858101830151858201604001528201611314565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461136657600080fd5b50565b6000806040838503121561137c57600080fd5b823561138781611351565b946020939093013593505050565b6000806000606084860312156113aa57600080fd5b83356113b581611351565b925060208401356113c581611351565b929592945050506040919091013590565b6000602082840312156113e857600080fd5b813561061481611351565b6000806040838503121561140657600080fd5b823561141181611351565b9150602083013561142181611351565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b60006020828403121561145e57600080fd5b815161061481611351565b634e487b7160e01b600052601160045260246000fd5b8082018082111561055357610553611469565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156114f85784516001600160a01b0316835293830193918301916001016114d3565b50506001600160a01b03969096166060850152505050608001529392505050565b8181038181111561055357610553611469565b808202811582820484141761055357610553611469565b60008261156057634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212207e90c562c95efa31a44afd3a06956b03969ff8b0e9bca82d74fb2d6a1b63234b64736f6c63430008130033

Deployed Bytecode Sourcemap

16042:8519:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17808:94;;;;;;;;;;-1:-1:-1;17889:5:0;;;;;;;;;;;;-1:-1:-1;;;17889:5:0;;;;17808:94;;;;;;;:::i;:::-;;;;;;;;17032:31;;;;;;;;;;-1:-1:-1;17032:31:0;;;;-1:-1:-1;;;17032:31:0;;;;;;;;;732:14:1;;725:22;707:41;;695:2;680:18;17032:31:0;567:187:1;19067:241:0;;;;;;;;;;-1:-1:-1;19067:241:0;;;;;:::i;:::-;;:::i;16596:54::-;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;16596:54:0;1215:177:1;17910:102:0;;;;;;;;;;-1:-1:-1;17992:12:0;;17910:102;;19505:424;;;;;;;;;;-1:-1:-1;19505:424:0;;;;;:::i;:::-;;:::i;16863:26::-;;;;;;;;;;-1:-1:-1;16863:26:0;;;;-1:-1:-1;;;;;16863:26:0;;;;;;-1:-1:-1;;;;;2022:32:1;;;2004:51;;1992:2;1977:18;16863:26:0;1858:203:1;9074:103:0;;;;;;;;;;-1:-1:-1;9074:103:0;;;;;:::i;:::-;9129:4;9164:5;-1:-1:-1;;;;;9153:16:0;;;9164:5;;9153:16;;9074:103;18020:94;;;;;;;;;;-1:-1:-1;18020:94:0;;16386:2;2460:36:1;;2448:2;2433:18;18020:94:0;2318:184:1;16397:61:0;;;;;;;;;;;;;;;;22391:131;;;;;;;;;;;;;:::i;16465:58::-;;;;;;;;;;;;;;;;16957:31;;;;;;;;;;-1:-1:-1;16957:31:0;;;;-1:-1:-1;;;16957:31:0;;;;;;18328:119;;;;;;;;;;-1:-1:-1;18328:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;18421:18:0;18394:7;18421:18;;;:9;:18;;;;;;;18328:119;9185:131;;;;;;;;;;;;;:::i;:::-;;16530:59;;;;;;;;;;;;;;;;18228:92;;;;;;;;;;-1:-1:-1;18280:7:0;18307:5;-1:-1:-1;;;;;18307:5:0;18228:92;;22186:197;;;;;;;;;;;;;:::i;18122:98::-;;;;;;;;;;-1:-1:-1;18205:7:0;;;;;;;;;;;;-1:-1:-1;;;18205:7:0;;;;18122:98;;21812:366;;;;;;;;;;;;;:::i;16995:30::-;;;;;;;;;;-1:-1:-1;16995:30:0;;;;-1:-1:-1;;;16995:30:0;;;;;;16896:19;;;;;;;;;;-1:-1:-1;16896:19:0;;;;-1:-1:-1;;;;;16896:19:0;;;19316:181;;;;;;;;;;-1:-1:-1;19316:181:0;;;;;:::i;:::-;;:::i;18887:172::-;;;;;;;;;;-1:-1:-1;18887:172:0;;;;;:::i;:::-;-1:-1:-1;;;;;19023:19:0;;;18996:7;19023:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;18887:172;16924:24;;;;;;;;;;-1:-1:-1;16924:24:0;;;;-1:-1:-1;;;;;16924:24:0;;;19067:241;19196:10;19167:4;19184:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;19184:32:0;;;;;;;;;;:41;;;19241:37;19167:4;;19184:32;;19241:37;;;;19219:6;1361:25:1;;1349:2;1334:18;;1215:177;19241:37:0;;;;;;;;-1:-1:-1;19296:4:0;19067:241;;;;;:::o;19505:424::-;-1:-1:-1;;;;;19660:19:0;;19639:4;19660:19;;;:11;:19;;;;;;;;19680:10;19660:31;;;;;;;;-1:-1:-1;;19660:52:0;19656:206;;19763:87;;;;;;;;;;;-1:-1:-1;;;19763:87:0;;;;;;;;-1:-1:-1;;;;;19763:19:0;;-1:-1:-1;19763:19:0;;;:11;:19;;;;;19783:10;19763:31;;;;;;;;;;:87;;19817:6;;19763:53;:87::i;:::-;-1:-1:-1;;;;;19729:19:0;;;;;;:11;:19;;;;;;;;19749:10;19729:31;;;;;;;:121;19656:206;19881:40;19895:6;19903:9;19914:6;19881:13;:40::i;:::-;19874:47;;19505:424;;;;;;:::o;22391:131::-;22442:4;9164:5;;-1:-1:-1;;;;;9164:5:0;9024:10;9153:16;9008:38;;;;-1:-1:-1;;;9008:38:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;22459:16:0::1;:33:::0;22510:4:::1;22391:131:::0;:::o;9185:::-;9129:4;9164:5;-1:-1:-1;;;;;9164:5:0;9024:10;9153:16;9008:38;;;;-1:-1:-1;;;9008:38:0;;;;;;;:::i;:::-;9258:1:::1;9242:18:::0;;-1:-1:-1;;;;;;9242:18:0::1;::::0;;9276:32:::1;::::0;2004:51:1;;;9276:32:0::1;::::0;1992:2:1;1977:18;9276:32:0::1;;;;;;;9185:131::o:0;22186:197::-;9129:4;9164:5;-1:-1:-1;;;;;9164:5:0;9024:10;9153:16;9008:38;;;;-1:-1:-1;;;9008:38:0;;;;;;;:::i;:::-;22248:11:::1;::::0;-1:-1:-1;;;22248:11:0;::::1;;;22247:12;22239:48;;;::::0;-1:-1:-1;;;22239:48:0;;3663:2:1;22239:48:0::1;::::0;::::1;3645:21:1::0;3702:2;3682:18;;;3675:30;3741:25;3721:18;;;3714:53;3784:18;;22239:48:0::1;3461:347:1::0;22239:48:0::1;22300:11;:18:::0;;-1:-1:-1;;;;22357:18:0;-1:-1:-1;;;22357:18:0;;;22186:197::o;21812:366::-;9129:4;9164:5;-1:-1:-1;;;;;9164:5:0;9024:10;9153:16;9008:38;;;;-1:-1:-1;;;9008:38:0;;;;;;;:::i;:::-;21864:6:::1;:63:::0;;-1:-1:-1;;;;;;21864:63:0::1;21884:42;21864:63:::0;;::::1;::::0;;;21957:16:::1;::::0;;-1:-1:-1;;;21957:16:0;;;;:14:::1;::::0;:16:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;21884:42;21957:16:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21945:40:0::1;;22008:4;22028:6;;;;;;;;;-1:-1:-1::0;;;;;22028:6:0::1;-1:-1:-1::0;;;;;22028:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21945:107;::::0;-1:-1:-1;;;;;;21945:107:0::1;::::0;;;;;;-1:-1:-1;;;;;4299:15:1;;;21945:107:0::1;::::0;::::1;4281:34:1::0;4351:15;;4331:18;;;4324:43;4216:18;;21945:107:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21938:4;:114:::0;;-1:-1:-1;;;;;;21938:114:0::1;-1:-1:-1::0;;;;;21938:114:0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;22065:22:0;;;:16:::1;:22;::::0;;;;;;;:29;;-1:-1:-1;;22065:29:0::1;-1:-1:-1::0;22065:29:0::1;::::0;;22127:4:::1;22107:26:::0;;:11:::1;:26:::0;;;;;22142:6:::1;::::0;;;::::1;22107:43:::0;;;;;;-1:-1:-1;;22107:63:0;;21812:366::o;19316:181::-;19421:4;19445:44;19459:10;19471:9;19482:6;19445:13;:44::i;5906:240::-;6026:7;6087:12;6079:6;;;;6071:29;;;;-1:-1:-1;;;6071:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;6122:5:0;;;5906:240::o;22530:1991::-;22656:4;-1:-1:-1;;;;;22681:20:0;;22673:70;;;;-1:-1:-1;;;22673:70:0;;4580:2:1;22673:70:0;;;4562:21:1;4619:2;4599:18;;;4592:30;4658:34;4638:18;;;4631:62;-1:-1:-1;;;4709:18:1;;;4702:35;4754:19;;22673:70:0;4378:401:1;22673:70:0;-1:-1:-1;;;;;22762:23:0;;22754:71;;;;-1:-1:-1;;;22754:71:0;;4986:2:1;22754:71:0;;;4968:21:1;5025:2;5005:18;;;4998:30;5064:34;5044:18;;;5037:62;-1:-1:-1;;;5115:18:1;;;5108:33;5158:19;;22754:71:0;4784:399:1;22754:71:0;22853:1;22844:6;:10;22836:64;;;;-1:-1:-1;;;22836:64:0;;5390:2:1;22836:64:0;;;5372:21:1;5429:2;5409:18;;;5402:30;5468:34;5448:18;;;5441:62;-1:-1:-1;;;5519:18:1;;;5512:39;5568:19;;22836:64:0;5188:405:1;22836:64:0;22917:6;;;;22913:87;;;22947:41;22962:6;22970:9;22981:6;22947:14;:41::i;:::-;22940:48;;;;22913:87;-1:-1:-1;;;;;23017:20:0;;;;;;:12;:20;;;;;;;;23016:21;:49;;;;-1:-1:-1;;;;;;23042:23:0;;;;;;:12;:23;;;;;;;;23041:24;23016:49;23012:126;;;23090:11;;-1:-1:-1;;;23090:11:0;;;;23082:44;;;;-1:-1:-1;;;23082:44:0;;5800:2:1;23082:44:0;;;5782:21:1;5839:2;5819:18;;;5812:30;-1:-1:-1;;;5858:18:1;;;5851:50;5918:18;;23082:44:0;5598:344:1;23082:44:0;23155:11;;-1:-1:-1;;;23155:11:0;;;;23150:93;;23190:41;23205:6;23213:9;23224:6;23190:14;:41::i;23150:93::-;23286:4;;-1:-1:-1;;;;;23273:17:0;;;23286:4;;23273:17;;;;:51;;-1:-1:-1;23320:4:0;;-1:-1:-1;;;;;23307:17:0;;;23320:4;;23307:17;;23273:51;:89;;;;-1:-1:-1;;;;;;23342:20:0;;;;;;:12;:20;;;;;;;;23341:21;23273:89;:130;;;;-1:-1:-1;;;;;;23380:23:0;;;;;;:12;:23;;;;;;;;23379:24;23273:130;23255:387;;;-1:-1:-1;;;;;23456:27:0;;;;;;:16;:27;;;;;;;;;:101;;-1:-1:-1;23541:16:0;;-1:-1:-1;;;;;23508:20:0;;;;;;:9;:20;;;;;;:29;;23531:6;;23508:29;:::i;:::-;:49;;23456:101;23430:200;;;;-1:-1:-1;;;23430:200:0;;6411:2:1;23430:200:0;;;6393:21:1;6450:2;6430:18;;;6423:30;6489:34;6469:18;;;6462:62;-1:-1:-1;;;6540:18:1;;;6533:35;6585:19;;23430:200:0;6209:401:1;23430:200:0;23698:4;23654:23;18421:18;;;:9;:18;;;;;;23654:50;;23733:55;23748:6;23756:15;23773:14;;23733;:55::i;:::-;:89;;;;-1:-1:-1;23818:4:0;;-1:-1:-1;;;;;23805:17:0;;;23818:4;;23805:17;23733:89;:127;;;;-1:-1:-1;;;;;;23840:20:0;;;;;;:12;:20;;;;;;;;23839:21;23733:127;23715:200;;;23887:16;23896:6;23887:8;:16::i;:::-;-1:-1:-1;;;;;18851:20:0;;23927;18851;;;:12;:20;;;;;;;;18850:21;23950:121;;23983:10;;-1:-1:-1;;;23983:10:0;;;;:88;;24065:6;23950:121;;23983:88;24009:40;24023:6;24031:9;24042:6;24009:13;:40::i;:::-;23950:121;;;23974:6;23950:121;24110:10;;23927:144;;-1:-1:-1;24084:23:0;;-1:-1:-1;;;24110:10:0;;;;:35;;;;-1:-1:-1;;;;;;18851:20:0;;18826:4;18851:20;;;:12;:20;;;;;;;;18850:21;24124;24110:113;;24217:6;24110:113;;;24161:40;24175:6;24183:9;24194:6;24161:13;:40::i;:::-;24084:139;;24256:96;24292:12;24256:96;;;;;;;;;;;;;-1:-1:-1;;;24256:96:0;;;:9;:17;24266:6;-1:-1:-1;;;;;24256:17:0;-1:-1:-1;;;;;24256:17:0;;;;;;;;;;;;;:21;;:96;;;;;:::i;:::-;-1:-1:-1;;;;;24236:17:0;;;;;;;:9;:17;;;;;;:116;;;;24388:20;;;;;;;:41;;24413:15;24388:24;:41::i;:::-;-1:-1:-1;;;;;24365:20:0;;;;;;;:9;:20;;;;;;;:64;;;;24447:44;;;;;;;;;;24475:15;1361:25:1;;1349:2;1334:18;;1215:177;24447:44:0;;;;;;;;-1:-1:-1;24509:4:0;;22530:1991;-1:-1:-1;;;;;;22530:1991:0:o;21403:401::-;21567:90;;;;;;;;;;;-1:-1:-1;;;21567:90:0;;;;;;;;-1:-1:-1;;;;;21567:17:0;;21530:4;21567:17;;;:9;:17;;;;;;;:90;;21603:6;;21567:21;:90::i;:::-;-1:-1:-1;;;;;21547:17:0;;;;;;;:9;:17;;;;;;:110;;;;21691:20;;;;;;;:32;;21716:6;21691:24;:32::i;:::-;-1:-1:-1;;;;;21668:20:0;;;;;;;:9;:20;;;;;;;:55;;;;21739:35;;;;;;;;;;21767:6;1361:25:1;;1349:2;1334:18;;1215:177;21739:35:0;;;;;;;;-1:-1:-1;21792:4:0;21403:401;;;;;:::o;18570:186::-;18709:6;;18684:4;;18709:6;;18708:7;:22;;;;-1:-1:-1;18719:11:0;;-1:-1:-1;;;18719:11:0;;;;18708:22;:31;;;;;18738:1;18734;:5;18708:31;:40;;;;-1:-1:-1;;;18743:5:0;18570:186;-1:-1:-1;18570:186:0:o;20702:693::-;17202:6;:13;;-1:-1:-1;;17202:13:0;17211:4;17202:13;;;20814:4:::1;-1:-1:-1::0;18421:18:0;;;:9;:18;;;;;;20765:55:::1;;20831:20;20854:88;20872:6;20893:38;20897:20;20919:11;;20893:3;:38::i;:::-;20854:3;:88::i;:::-;20979:16;::::0;;20993:1:::1;20979:16:::0;;;;;::::1;::::0;;20831:111;;-1:-1:-1;20955:21:0::1;::::0;20979:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;20979:16:0::1;20955:40;;21024:4;21006;21011:1;21006:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21006:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;21050:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;21050:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;21006:7;;21050:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21040:4;21045:1;21040:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21040:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;21076:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;21076:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;21148:12;;21076:6:::1;::::0;21191:4;;21218::::1;::::0;21238:15:::1;::::0;21076:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;21346:11:0::1;::::0;21338:49:::1;::::0;21306:21:::1;::::0;-1:-1:-1;;;;;;21346:11:0;;::::1;::::0;-1:-1:-1;21338:49:0;::::1;;;::::0;21306:21;;21277:26:::1;21338:49:::0;21277:26;21338:49;21306:21;21346:11;21338:49;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;17238:6:0;:14;;-1:-1:-1;;17238:14:0;;;-1:-1:-1;;;;20702:693:0:o;19985:709::-;20237:4;;20111:7;;;;;;20204:3;;-1:-1:-1;;;;;20237:4:0;;;20224:17;;;;20220:148;;20268:13;;20258:23;;20220:148;;;20313:4;;-1:-1:-1;;;;;20313:4:0;;;20303:14;;;;20299:69;;20344:12;;20334:22;;20299:69;20380:17;20400:39;20424:14;20400:19;:6;20411:7;20400:10;:19::i;:::-;:23;;:39::i;:::-;20495:4;20477:24;;;;:9;:24;;;;;;20380:59;;-1:-1:-1;20477:39:0;;20380:59;20477:28;:39::i;:::-;20468:4;20450:24;;;;:9;:24;;;;;;;:66;;;;20532:42;;-1:-1:-1;;;;;20532:42:0;;;;;;;20564:9;1361:25:1;;1349:2;1334:18;;1215:177;20532:42:0;;;;;;;;-1:-1:-1;;;;;18851:20:0;;18826:4;18851:20;;;:12;:20;;;;;;;;18850:21;20597:48;;20633:12;20642:3;20633:6;:12;:::i;:::-;20597:48;;;20621:9;20597:48;20585:60;-1:-1:-1;20665:21:0;:6;20585:60;20665:10;:21::i;:::-;20658:28;19985:709;-1:-1:-1;;;;;;;;19985:709:0:o;3627:98::-;3685:7;3712:5;3716:1;3712;:5;:::i;18455:107::-;18512:7;18544:1;18540;:5;18539:15;;18553:1;18539:15;;;-1:-1:-1;18549:1:0;18455:107;-1:-1:-1;18455:107:0:o;4365:98::-;4423:7;4450:5;4454:1;4450;:5;:::i;4764:98::-;4822:7;4849:5;4853:1;4849;:5;:::i;4008:98::-;4066:7;4093:5;4097:1;4093;:5;:::i;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;759:131::-;-1:-1:-1;;;;;834:31:1;;824:42;;814:70;;880:1;877;870:12;814:70;759:131;:::o;895:315::-;963:6;971;1024:2;1012:9;1003:7;999:23;995:32;992:52;;;1040:1;1037;1030:12;992:52;1079:9;1066:23;1098:31;1123:5;1098:31;:::i;:::-;1148:5;1200:2;1185:18;;;;1172:32;;-1:-1:-1;;;895:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2066:247::-;2125:6;2178:2;2166:9;2157:7;2153:23;2149:32;2146:52;;;2194:1;2191;2184:12;2146:52;2233:9;2220:23;2252:31;2277:5;2252:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;3127:329::-;3329:2;3311:21;;;3368:1;3348:18;;;3341:29;-1:-1:-1;;;3401:2:1;3386:18;;3379:36;3447:2;3432:18;;3127:329::o;3813:251::-;3883:6;3936:2;3924:9;3915:7;3911:23;3907:32;3904:52;;;3952:1;3949;3942:12;3904:52;3984:9;3978:16;4003:31;4028:5;4003:31;:::i;5947:127::-;6008:10;6003:3;5999:20;5996:1;5989:31;6039:4;6036:1;6029:15;6063:4;6060:1;6053:15;6079:125;6144:9;;;6165:10;;;6162:36;;;6178:18;;:::i;6747:127::-;6808:10;6803:3;6799:20;6796:1;6789:31;6839:4;6836:1;6829:15;6863:4;6860:1;6853:15;6879:980;7141:4;7189:3;7178:9;7174:19;7220:6;7209:9;7202:25;7246:2;7284:6;7279:2;7268:9;7264:18;7257:34;7327:3;7322:2;7311:9;7307:18;7300:31;7351:6;7386;7380:13;7417:6;7409;7402:22;7455:3;7444:9;7440:19;7433:26;;7494:2;7486:6;7482:15;7468:29;;7515:1;7525:195;7539:6;7536:1;7533:13;7525:195;;;7604:13;;-1:-1:-1;;;;;7600:39:1;7588:52;;7695:15;;;;7660:12;;;;7636:1;7554:9;7525:195;;;-1:-1:-1;;;;;;;7776:32:1;;;;7771:2;7756:18;;7749:60;-1:-1:-1;;;7840:3:1;7825:19;7818:35;7737:3;6879:980;-1:-1:-1;;;6879:980:1:o;7864:128::-;7931:9;;;7952:11;;;7949:37;;;7966:18;;:::i;7997:168::-;8070:9;;;8101;;8118:15;;;8112:22;;8098:37;8088:71;;8139:18;;:::i;8170:217::-;8210:1;8236;8226:132;;8280:10;8275:3;8271:20;8268:1;8261:31;8315:4;8312:1;8305:15;8343:4;8340:1;8333:15;8226:132;-1:-1:-1;8372:9:1;;8170:217::o

Swarm Source

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