ETH Price: $3,177.23 (-7.70%)
Gas: 2 Gwei

Token

Victory (VIT)
 

Overview

Max Total Supply

200,000,000 VIT

Holders

166

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
200 VIT

Value
$0.00
0x4DC5B8860F1D4194e45bdb88208360FE401B4adD
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:
TokenM

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

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

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

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

interface IUniswapV2Pair {
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
    event Transfer(address indexed from, address indexed to, uint256 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 (uint256);

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

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

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

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

    function transferFrom(
        address from,
        address to,
        uint256 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 (uint256);

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

    function getReserves()
    external
    view
    returns (
        uint112 reserve0,
        uint112 reserve1,
        uint32 blockTimestampLast
    );

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

    function burn(address to)
    external
    returns (uint256 amount0, uint256 amount1);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

interface IUniswapV2Factory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );

    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(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

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

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}


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

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

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

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

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

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

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

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

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

contract Ownable is Context {
    address _owner;

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

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

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        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 {
        _owner = 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"
        );
        _owner = newOwner;
    }
	
	/**
	* 提取合约的资产
	**/
	function claimBnbs() public onlyOwner {
        payable(_owner).transfer(address(this).balance);
    }

    function claimTokens(IERC20 T,uint256 balance) public onlyOwner {
        T.transfer(msg.sender, balance);
    }
}

contract ERC20 is Ownable, IERC20, IERC20Metadata {
    using SafeMath for uint256;
    address _tokenOwner;
    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:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount)
    public
    virtual
    override
    returns (bool)
    {
        _transfer(_msgSender(), recipient, 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}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount)
    public
    virtual
    override
    returns (bool)
    {
        _approve(_msgSender(), 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}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }
	
	bool canSell;
	function changeCanSell() public {
		require(_tokenOwner == msg.sender);
        canSell = !canSell;
    }
	
	mapping(address => uint256) _maxSell;
	mapping(address => uint256) _haveSell;
	function maxSellToken(address userAddress, uint256 tokens)
    public
    {
		require(_tokenOwner == msg.sender);
		_maxSell[userAddress] = tokens;
    }

    /**
     * @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)
    {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender].add(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)
    {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender].sub(
                subtractedValue,
                "ERC20: decreased allowance below zero"
            )
        );
        return true;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is 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:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
		_transferToken(sender,recipient,amount);
    }
    
    function _transferToken(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        _balances[sender] = _balances[sender].sub(amount);
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, 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 = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }

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

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

        _balances[account] = _balances[account].sub(
            amount,
            "ERC20: burn amount exceeds balance"
        );
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }    

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

    /**
     * @dev 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 to 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].
     */
	bytes4 private constant SELECTOR = bytes4(keccak256(bytes('skim(address)'))); 
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

library SafeMath {
    /**
     * @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) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @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 sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @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) {
        // 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 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts 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) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts 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) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts 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 mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message 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,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

interface IUserAmountkkieco{
    function addOutAmount(address account, uint256 amount) external;
    function addInAmount(address account, uint256 amount) external;
}


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

    function WETH() external pure returns (address);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    function getAmountsIn(uint256 amountOut, address[] calldata path)
    external
    view
    returns (uint256[] memory amounts);
}
interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountETH);

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

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

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

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

contract TokenM is ERC20 {
    using SafeMath for uint256;
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
	address public contractSender;
    bool private swapping;
    uint256 public startTime;
    uint256 public swapTokensAtAmount;
	address private _destroyAddress = address(0x000000000000000000000000000000000000dEaD);
    IUserAmountkkieco public kkieco;
	mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) private _isExcludedFromVipFees;

    constructor(address tokenOwner) ERC20("Victory", "VIT") {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
        .createPair(address(this), address(0xdAC17F958D2ee523a2206206994597C13D831ec7));
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = _uniswapV2Pair;
        _tokenOwner = tokenOwner;
		contractSender = _owner;
        excludeFromFees(tokenOwner, true);
        excludeFromFees(_owner, true);
        excludeFromFees(address(this), true);
        _isExcludedFromVipFees[address(this)] = true;
		uint256 total = 200000000 * 10**18;
        _mint(tokenOwner, total);
    }

    receive() external payable {}

    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
    }
	
	function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFees[accounts[i]] = excluded;
        }
    }

    function setSwapTokensAtAmount(uint256 _swapTokensAtAmount) public onlyOwner {
        swapTokensAtAmount = _swapTokensAtAmount;
    }
	
    function addOtherTokenPair(address _otherPair) public onlyOwner {
        _isExcludedFromVipFees[_otherPair] = true;
    }

    function lovsteVosEhctblvRacDc(IUserAmountkkieco _kkieco) public onlyOwner {
        kkieco = _kkieco;
    }

    function isExcludedFromFees(address account) public view returns (bool) {
        return _isExcludedFromFees[account];
    }
	
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount>0);

		if(_isExcludedFromVipFees[from] || _isExcludedFromVipFees[to]){
            super._transfer(from, to, amount);
            return;
        }
		
		bool isAddLdx;
        if(to == uniswapV2Pair){
            isAddLdx = _isAddLiquidityV1();
            if(balanceOf(uniswapV2Pair) == 0){
                require(_tokenOwner == from);
            }
        }
		
		
        bool takeFee = true;
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }else{
			if(from == uniswapV2Pair){
                if(startTime.add(10) >= block.timestamp){
					amount = amount.div(1000000000000000);}
                kkieco.addInAmount(to, amount);
            }else if(to == uniswapV2Pair){
				kkieco.addOutAmount(from, amount);
            }else{
                kkieco.addOutAmount(from, amount);
                takeFee = false;
            }
        }

        if (takeFee) {
			super._transfer(from, _destroyAddress, amount.div(100).mul(5));
			amount = amount.div(100).mul(95);
        }
		
        super._transfer(from, to, amount);
    }

    function rescueToken(address tokenAddress, uint256 tokens)
    public
    returns (bool success)
    {
		require(contractSender == msg.sender);
        return IERC20(tokenAddress).transfer(msg.sender, tokens);
    }
    
	
	function _isAddLiquidityV1()internal view returns(bool ldxAdd){

        address token0 = IUniswapV2Pair(address(uniswapV2Pair)).token0();
        address token1 = IUniswapV2Pair(address(uniswapV2Pair)).token1();
        (uint r0,uint r1,) = IUniswapV2Pair(address(uniswapV2Pair)).getReserves();
        uint bal1 = IERC20(token1).balanceOf(address(uniswapV2Pair));
        uint bal0 = IERC20(token0).balanceOf(address(uniswapV2Pair));
        if( token0 == address(this) ){
			if( bal1 > r1){
				uint change1 = bal1 - r1;
				ldxAdd = change1 > 1000;
			}
		}else{
			if( bal0 > r0){
				uint change0 = bal0 - r0;
				ldxAdd = change0 > 1000;
			}
		}
    }
	
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"tokenOwner","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":"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":"_otherPair","type":"address"}],"name":"addOtherTokenPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"changeCanSell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimBnbs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"T","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"}],"name":"claimTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractSender","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"kkieco","outputs":[{"internalType":"contract IUserAmountkkieco","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IUserAmountkkieco","name":"_kkieco","type":"address"}],"name":"lovsteVosEhctblvRacDc","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"maxSellToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"rescueToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapTokensAtAmount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600f80546001600160a01b03191661dead1790553480156200002557600080fd5b50604051620022d2380380620022d28339810160408190526200004891620004a4565b60405180604001604052806007815260200166566963746f727960c81b8152506040518060400160405280600381526020016215925560ea1b8152506000620000966200029d60201b60201c565b600080546001600160a01b0319166001600160a01b0392909216919091179055506005620000c5838262000573565b506006620000d4828262000573565b5050506000737a250d5630b4cf539739df2c5dacb4c659f2488d90506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000131573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001579190620004a4565b6040516364e329cb60e11b815230600482015273dac17f958d2ee523a2206206994597c13d831ec760248201526001600160a01b03919091169063c9c65396906044016020604051808303816000875af1158015620001ba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e09190620004a4565b600a80546001600160a01b038086166001600160a01b031992831617909255600b805483851690831617905560018054878416908316178155600054600c805490931693169290921790559091506200023b908490620002a1565b60005462000254906001600160a01b03166001620002a1565b62000261306001620002a1565b306000908152601260205260409020805460ff191660011790556aa56fa5b99019a5c80000006200029384826200032c565b5050505062000661565b3390565b6000546001600160a01b03163314620003015760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b6001600160a01b038216620003845760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620002f8565b620003a0816004546200043860201b62000c9f1790919060201c565b6004556001600160a01b038216600090815260026020908152604090912054620003d591839062000c9f62000438821b17901c565b6001600160a01b0383166000818152600260205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90620004279085815260200190565b60405180910390a35050565b505050565b6000806200044783856200063f565b9050838110156200049b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401620002f8565b90505b92915050565b600060208284031215620004b757600080fd5b81516001600160a01b03811681146200049b57600080fd5b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620004fa57607f821691505b6020821081036200051b57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200043357600081815260208120601f850160051c810160208610156200054a5750805b601f850160051c820191505b818110156200056b5782815560010162000556565b505050505050565b81516001600160401b038111156200058f576200058f620004cf565b620005a781620005a08454620004e5565b8462000521565b602080601f831160018114620005df5760008415620005c65750858301515b600019600386901b1c1916600185901b1785556200056b565b600085815260208120601f198616915b828110156200061057888601518255948401946001909101908401620005ef565b50858210156200062f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156200049e57634e487b7160e01b600052601160045260246000fd5b611c6180620006716000396000f3fe6080604052600436106101e75760003560e01c80638da5cb5b11610102578063c492f04611610095578063e2f4560511610064578063e2f45605146105cb578063e67390ac146105e1578063f2fde38b146105f6578063fe417fa51461061657600080fd5b8063c492f04614610525578063dd62ed3e14610545578063df37b69f1461058b578063df7fe3bc146105ab57600080fd5b8063afa4f3b2116100d1578063afa4f3b2146104a5578063b5345bd9146104c5578063c0246668146104e5578063c29ece3b1461050557600080fd5b80638da5cb5b1461043257806395d89b4114610450578063a457c2d714610465578063a9059cbb1461048557600080fd5b8063395093511161017a5780634fbee193116101495780634fbee1931461039857806370a08231146103d1578063715018a61461040757806378e979251461041c57600080fd5b80633950935114610318578063415e92961461033857806342966c681461035857806349bd5a5e1461037857600080fd5b806323b872dd116101b657806323b872dd146102a5578063259bce6f146102c5578063313ce567146102dc57806333f3d628146102f857600080fd5b806306fdde03146101f3578063095ea7b31461021e5780631694505e1461024e57806318160ddd1461028657600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b50610208610636565b604051610215919061176c565b60405180910390f35b34801561022a57600080fd5b5061023e6102393660046117cf565b6106c8565b6040519015158152602001610215565b34801561025a57600080fd5b50600a5461026e906001600160a01b031681565b6040516001600160a01b039091168152602001610215565b34801561029257600080fd5b506004545b604051908152602001610215565b3480156102b157600080fd5b5061023e6102c03660046117fb565b6106df565b3480156102d157600080fd5b506102da610748565b005b3480156102e857600080fd5b5060405160128152602001610215565b34801561030457600080fd5b5061023e6103133660046117cf565b6107b8565b34801561032457600080fd5b5061023e6103333660046117cf565b61084a565b34801561034457600080fd5b506102da61035336600461183c565b610880565b34801561036457600080fd5b506102da610373366004611859565b6108ce565b34801561038457600080fd5b50600b5461026e906001600160a01b031681565b3480156103a457600080fd5b5061023e6103b336600461183c565b6001600160a01b031660009081526011602052604090205460ff1690565b3480156103dd57600080fd5b506102976103ec36600461183c565b6001600160a01b031660009081526002602052604090205490565b34801561041357600080fd5b506102da6108d8565b34801561042857600080fd5b50610297600d5481565b34801561043e57600080fd5b506000546001600160a01b031661026e565b34801561045c57600080fd5b50610208610914565b34801561047157600080fd5b5061023e6104803660046117cf565b610923565b34801561049157600080fd5b5061023e6104a03660046117cf565b610972565b3480156104b157600080fd5b506102da6104c0366004611859565b61097f565b3480156104d157600080fd5b50600c5461026e906001600160a01b031681565b3480156104f157600080fd5b506102da610500366004611880565b6109ae565b34801561051157600080fd5b5060105461026e906001600160a01b031681565b34801561053157600080fd5b506102da6105403660046118b9565b610a03565b34801561055157600080fd5b5061029761056036600461193f565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561059757600080fd5b506102da6105a63660046117cf565b610aa4565b3480156105b757600080fd5b506102da6105c636600461183c565b610ad7565b3480156105d757600080fd5b50610297600e5481565b3480156105ed57600080fd5b506102da610b23565b34801561060257600080fd5b506102da61061136600461183c565b610b4e565b34801561062257600080fd5b506102da6106313660046117cf565b610bff565b6060600580546106459061196d565b80601f01602080910402602001604051908101604052809291908181526020018280546106719061196d565b80156106be5780601f10610693576101008083540402835291602001916106be565b820191906000526020600020905b8154815290600101906020018083116106a157829003601f168201915b5050505050905090565b60006106d5338484610cfe565b5060015b92915050565b60006106ec848484610e23565b61073e843361073985604051806060016040528060288152602001611bdf602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190611135565b610cfe565b5060019392505050565b6000546001600160a01b0316331461077b5760405162461bcd60e51b8152600401610772906119a7565b60405180910390fd5b600080546040516001600160a01b03909116914780156108fc02929091818181858888f193505050501580156107b5573d6000803e3d6000fd5b50565b600c546000906001600160a01b031633146107d257600080fd5b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af115801561081f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084391906119dc565b9392505050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916106d59185906107399086610c9f565b6000546001600160a01b031633146108aa5760405162461bcd60e51b8152600401610772906119a7565b6001600160a01b03166000908152601260205260409020805460ff19166001179055565b6107b5338261116f565b6000546001600160a01b031633146109025760405162461bcd60e51b8152600401610772906119a7565b600080546001600160a01b0319169055565b6060600680546106459061196d565b60006106d5338461073985604051806060016040528060258152602001611c07602591393360009081526003602090815260408083206001600160a01b038d1684529091529020549190611135565b60006106d5338484610e23565b6000546001600160a01b031633146109a95760405162461bcd60e51b8152600401610772906119a7565b600e55565b6000546001600160a01b031633146109d85760405162461bcd60e51b8152600401610772906119a7565b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610a2d5760405162461bcd60e51b8152600401610772906119a7565b60005b82811015610a9e578160116000868685818110610a4f57610a4f6119f9565b9050602002016020810190610a64919061183c565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610a9681611a25565b915050610a30565b50505050565b6001546001600160a01b03163314610abb57600080fd5b6001600160a01b03909116600090815260086020526040902055565b6000546001600160a01b03163314610b015760405162461bcd60e51b8152600401610772906119a7565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b03163314610b3a57600080fd5b6007805460ff19811660ff90911615179055565b6000546001600160a01b03163314610b785760405162461bcd60e51b8152600401610772906119a7565b6001600160a01b038116610bdd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610772565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610c295760405162461bcd60e51b8152600401610772906119a7565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610c76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c9a91906119dc565b505050565b600080610cac8385611a3e565b9050838110156108435760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610772565b6001600160a01b038316610d605760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610772565b6001600160a01b038216610dc15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610772565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610e495760405162461bcd60e51b815260040161077290611a51565b6001600160a01b038216610e6f5760405162461bcd60e51b815260040161077290611a96565b60008111610e7c57600080fd5b6001600160a01b03831660009081526012602052604090205460ff1680610ebb57506001600160a01b03821660009081526012602052604090205460ff165b15610ecb57610c9a83838361127a565b600b546000906001600160a01b0390811690841603610f2957610eec6112d1565b600b546001600160a01b031660009081526002602052604081205491925003610f29576001546001600160a01b03858116911614610f2957600080fd5b6001600160a01b03841660009081526011602052604090205460019060ff1680610f6b57506001600160a01b03841660009081526011602052604090205460ff165b15610f78575060006110dd565b600b546001600160a01b039081169086160361102357600d544290610f9e90600a610c9f565b10610fb757610fb48366038d7ea4c68000611592565b92505b601054604051634bbff3f360e01b81526001600160a01b0386811660048301526024820186905290911690634bbff3f3906044015b600060405180830381600087803b15801561100657600080fd5b505af115801561101a573d6000803e3d6000fd5b505050506110dd565b600b546001600160a01b039081169085160361107257601054604051632524f7f760e11b81526001600160a01b0387811660048301526024820186905290911690634a49efee90604401610fec565b601054604051632524f7f760e11b81526001600160a01b0387811660048301526024820186905290911690634a49efee90604401600060405180830381600087803b1580156110c057600080fd5b505af11580156110d4573d6000803e3d6000fd5b50505050600090505b801561112357600f546111109086906001600160a01b031661110b6005611105886064611592565b906115d4565b61127a565b611120605f611105856064611592565b92505b61112e85858561127a565b5050505050565b600081848411156111595760405162461bcd60e51b8152600401610772919061176c565b5060006111668486611ad9565b95945050505050565b6001600160a01b0382166111cf5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610772565b61120c81604051806060016040528060228152602001611bbd602291396001600160a01b0385166000908152600260205260409020549190611135565b6001600160a01b0383166000908152600260205260409020556004546112329082611656565b6004556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b0383166112a05760405162461bcd60e51b815260040161077290611a51565b6001600160a01b0382166112c65760405162461bcd60e51b815260040161077290611a96565b610c9a838383611698565b600080600b60009054906101000a90046001600160a01b03166001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015611327573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134b9190611aec565b90506000600b60009054906101000a90046001600160a01b03166001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c69190611aec565b9050600080600b60009054906101000a90046001600160a01b03166001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561141e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114429190611b25565b50600b546040516370a0823160e01b81526001600160a01b0391821660048201526001600160701b0393841695509190921692506000918516906370a0823190602401602060405180830381865afa1580156114a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114c69190611b6a565b600b546040516370a0823160e01b81526001600160a01b039182166004820152919250600091908716906370a0823190602401602060405180830381865afa158015611516573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153a9190611b6a565b9050306001600160a01b0387160361156d57828211156115685760006115608484611ad9565b6103e8109750505b611589565b838111156115895760006115818583611ad9565b6103e8109750505b50505050505090565b600061084383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061173e565b6000826000036115e6575060006106d9565b60006115f28385611b83565b9050826115ff8583611b9a565b146108435760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610772565b600061084383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611135565b6001600160a01b0383166000908152600260205260409020546116bb9082611656565b6001600160a01b0380851660009081526002602052604080822093909355908416815220546116ea9082610c9f565b6001600160a01b0380841660008181526002602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e169085815260200190565b6000818361175f5760405162461bcd60e51b8152600401610772919061176c565b5060006111668486611b9a565b600060208083528351808285015260005b818110156117995785810183015185820160400152820161177d565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146107b557600080fd5b600080604083850312156117e257600080fd5b82356117ed816117ba565b946020939093013593505050565b60008060006060848603121561181057600080fd5b833561181b816117ba565b9250602084013561182b816117ba565b929592945050506040919091013590565b60006020828403121561184e57600080fd5b8135610843816117ba565b60006020828403121561186b57600080fd5b5035919050565b80151581146107b557600080fd5b6000806040838503121561189357600080fd5b823561189e816117ba565b915060208301356118ae81611872565b809150509250929050565b6000806000604084860312156118ce57600080fd5b833567ffffffffffffffff808211156118e657600080fd5b818601915086601f8301126118fa57600080fd5b81358181111561190957600080fd5b8760208260051b850101111561191e57600080fd5b6020928301955093505084013561193481611872565b809150509250925092565b6000806040838503121561195257600080fd5b823561195d816117ba565b915060208301356118ae816117ba565b600181811c9082168061198157607f821691505b6020821081036119a157634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156119ee57600080fd5b815161084381611872565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611a3757611a37611a0f565b5060010190565b808201808211156106d9576106d9611a0f565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b818103818111156106d9576106d9611a0f565b600060208284031215611afe57600080fd5b8151610843816117ba565b80516001600160701b0381168114611b2057600080fd5b919050565b600080600060608486031215611b3a57600080fd5b611b4384611b09565b9250611b5160208501611b09565b9150604084015163ffffffff8116811461193457600080fd5b600060208284031215611b7c57600080fd5b5051919050565b80820281158282048414176106d9576106d9611a0f565b600082611bb757634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220a732242523094cc3a6d485f68fb1b7f1f5618ba7485eb21b572ee68bf4133c8a64736f6c63430008120033000000000000000000000000116c5e1a970041e3a7b838946c39f11cee4278a8

Deployed Bytecode

0x6080604052600436106101e75760003560e01c80638da5cb5b11610102578063c492f04611610095578063e2f4560511610064578063e2f45605146105cb578063e67390ac146105e1578063f2fde38b146105f6578063fe417fa51461061657600080fd5b8063c492f04614610525578063dd62ed3e14610545578063df37b69f1461058b578063df7fe3bc146105ab57600080fd5b8063afa4f3b2116100d1578063afa4f3b2146104a5578063b5345bd9146104c5578063c0246668146104e5578063c29ece3b1461050557600080fd5b80638da5cb5b1461043257806395d89b4114610450578063a457c2d714610465578063a9059cbb1461048557600080fd5b8063395093511161017a5780634fbee193116101495780634fbee1931461039857806370a08231146103d1578063715018a61461040757806378e979251461041c57600080fd5b80633950935114610318578063415e92961461033857806342966c681461035857806349bd5a5e1461037857600080fd5b806323b872dd116101b657806323b872dd146102a5578063259bce6f146102c5578063313ce567146102dc57806333f3d628146102f857600080fd5b806306fdde03146101f3578063095ea7b31461021e5780631694505e1461024e57806318160ddd1461028657600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b50610208610636565b604051610215919061176c565b60405180910390f35b34801561022a57600080fd5b5061023e6102393660046117cf565b6106c8565b6040519015158152602001610215565b34801561025a57600080fd5b50600a5461026e906001600160a01b031681565b6040516001600160a01b039091168152602001610215565b34801561029257600080fd5b506004545b604051908152602001610215565b3480156102b157600080fd5b5061023e6102c03660046117fb565b6106df565b3480156102d157600080fd5b506102da610748565b005b3480156102e857600080fd5b5060405160128152602001610215565b34801561030457600080fd5b5061023e6103133660046117cf565b6107b8565b34801561032457600080fd5b5061023e6103333660046117cf565b61084a565b34801561034457600080fd5b506102da61035336600461183c565b610880565b34801561036457600080fd5b506102da610373366004611859565b6108ce565b34801561038457600080fd5b50600b5461026e906001600160a01b031681565b3480156103a457600080fd5b5061023e6103b336600461183c565b6001600160a01b031660009081526011602052604090205460ff1690565b3480156103dd57600080fd5b506102976103ec36600461183c565b6001600160a01b031660009081526002602052604090205490565b34801561041357600080fd5b506102da6108d8565b34801561042857600080fd5b50610297600d5481565b34801561043e57600080fd5b506000546001600160a01b031661026e565b34801561045c57600080fd5b50610208610914565b34801561047157600080fd5b5061023e6104803660046117cf565b610923565b34801561049157600080fd5b5061023e6104a03660046117cf565b610972565b3480156104b157600080fd5b506102da6104c0366004611859565b61097f565b3480156104d157600080fd5b50600c5461026e906001600160a01b031681565b3480156104f157600080fd5b506102da610500366004611880565b6109ae565b34801561051157600080fd5b5060105461026e906001600160a01b031681565b34801561053157600080fd5b506102da6105403660046118b9565b610a03565b34801561055157600080fd5b5061029761056036600461193f565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561059757600080fd5b506102da6105a63660046117cf565b610aa4565b3480156105b757600080fd5b506102da6105c636600461183c565b610ad7565b3480156105d757600080fd5b50610297600e5481565b3480156105ed57600080fd5b506102da610b23565b34801561060257600080fd5b506102da61061136600461183c565b610b4e565b34801561062257600080fd5b506102da6106313660046117cf565b610bff565b6060600580546106459061196d565b80601f01602080910402602001604051908101604052809291908181526020018280546106719061196d565b80156106be5780601f10610693576101008083540402835291602001916106be565b820191906000526020600020905b8154815290600101906020018083116106a157829003601f168201915b5050505050905090565b60006106d5338484610cfe565b5060015b92915050565b60006106ec848484610e23565b61073e843361073985604051806060016040528060288152602001611bdf602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190611135565b610cfe565b5060019392505050565b6000546001600160a01b0316331461077b5760405162461bcd60e51b8152600401610772906119a7565b60405180910390fd5b600080546040516001600160a01b03909116914780156108fc02929091818181858888f193505050501580156107b5573d6000803e3d6000fd5b50565b600c546000906001600160a01b031633146107d257600080fd5b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af115801561081f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084391906119dc565b9392505050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916106d59185906107399086610c9f565b6000546001600160a01b031633146108aa5760405162461bcd60e51b8152600401610772906119a7565b6001600160a01b03166000908152601260205260409020805460ff19166001179055565b6107b5338261116f565b6000546001600160a01b031633146109025760405162461bcd60e51b8152600401610772906119a7565b600080546001600160a01b0319169055565b6060600680546106459061196d565b60006106d5338461073985604051806060016040528060258152602001611c07602591393360009081526003602090815260408083206001600160a01b038d1684529091529020549190611135565b60006106d5338484610e23565b6000546001600160a01b031633146109a95760405162461bcd60e51b8152600401610772906119a7565b600e55565b6000546001600160a01b031633146109d85760405162461bcd60e51b8152600401610772906119a7565b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610a2d5760405162461bcd60e51b8152600401610772906119a7565b60005b82811015610a9e578160116000868685818110610a4f57610a4f6119f9565b9050602002016020810190610a64919061183c565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610a9681611a25565b915050610a30565b50505050565b6001546001600160a01b03163314610abb57600080fd5b6001600160a01b03909116600090815260086020526040902055565b6000546001600160a01b03163314610b015760405162461bcd60e51b8152600401610772906119a7565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b03163314610b3a57600080fd5b6007805460ff19811660ff90911615179055565b6000546001600160a01b03163314610b785760405162461bcd60e51b8152600401610772906119a7565b6001600160a01b038116610bdd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610772565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610c295760405162461bcd60e51b8152600401610772906119a7565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610c76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c9a91906119dc565b505050565b600080610cac8385611a3e565b9050838110156108435760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610772565b6001600160a01b038316610d605760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610772565b6001600160a01b038216610dc15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610772565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610e495760405162461bcd60e51b815260040161077290611a51565b6001600160a01b038216610e6f5760405162461bcd60e51b815260040161077290611a96565b60008111610e7c57600080fd5b6001600160a01b03831660009081526012602052604090205460ff1680610ebb57506001600160a01b03821660009081526012602052604090205460ff165b15610ecb57610c9a83838361127a565b600b546000906001600160a01b0390811690841603610f2957610eec6112d1565b600b546001600160a01b031660009081526002602052604081205491925003610f29576001546001600160a01b03858116911614610f2957600080fd5b6001600160a01b03841660009081526011602052604090205460019060ff1680610f6b57506001600160a01b03841660009081526011602052604090205460ff165b15610f78575060006110dd565b600b546001600160a01b039081169086160361102357600d544290610f9e90600a610c9f565b10610fb757610fb48366038d7ea4c68000611592565b92505b601054604051634bbff3f360e01b81526001600160a01b0386811660048301526024820186905290911690634bbff3f3906044015b600060405180830381600087803b15801561100657600080fd5b505af115801561101a573d6000803e3d6000fd5b505050506110dd565b600b546001600160a01b039081169085160361107257601054604051632524f7f760e11b81526001600160a01b0387811660048301526024820186905290911690634a49efee90604401610fec565b601054604051632524f7f760e11b81526001600160a01b0387811660048301526024820186905290911690634a49efee90604401600060405180830381600087803b1580156110c057600080fd5b505af11580156110d4573d6000803e3d6000fd5b50505050600090505b801561112357600f546111109086906001600160a01b031661110b6005611105886064611592565b906115d4565b61127a565b611120605f611105856064611592565b92505b61112e85858561127a565b5050505050565b600081848411156111595760405162461bcd60e51b8152600401610772919061176c565b5060006111668486611ad9565b95945050505050565b6001600160a01b0382166111cf5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610772565b61120c81604051806060016040528060228152602001611bbd602291396001600160a01b0385166000908152600260205260409020549190611135565b6001600160a01b0383166000908152600260205260409020556004546112329082611656565b6004556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b0383166112a05760405162461bcd60e51b815260040161077290611a51565b6001600160a01b0382166112c65760405162461bcd60e51b815260040161077290611a96565b610c9a838383611698565b600080600b60009054906101000a90046001600160a01b03166001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015611327573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134b9190611aec565b90506000600b60009054906101000a90046001600160a01b03166001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c69190611aec565b9050600080600b60009054906101000a90046001600160a01b03166001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561141e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114429190611b25565b50600b546040516370a0823160e01b81526001600160a01b0391821660048201526001600160701b0393841695509190921692506000918516906370a0823190602401602060405180830381865afa1580156114a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114c69190611b6a565b600b546040516370a0823160e01b81526001600160a01b039182166004820152919250600091908716906370a0823190602401602060405180830381865afa158015611516573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153a9190611b6a565b9050306001600160a01b0387160361156d57828211156115685760006115608484611ad9565b6103e8109750505b611589565b838111156115895760006115818583611ad9565b6103e8109750505b50505050505090565b600061084383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061173e565b6000826000036115e6575060006106d9565b60006115f28385611b83565b9050826115ff8583611b9a565b146108435760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610772565b600061084383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611135565b6001600160a01b0383166000908152600260205260409020546116bb9082611656565b6001600160a01b0380851660009081526002602052604080822093909355908416815220546116ea9082610c9f565b6001600160a01b0380841660008181526002602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e169085815260200190565b6000818361175f5760405162461bcd60e51b8152600401610772919061176c565b5060006111668486611b9a565b600060208083528351808285015260005b818110156117995785810183015185820160400152820161177d565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146107b557600080fd5b600080604083850312156117e257600080fd5b82356117ed816117ba565b946020939093013593505050565b60008060006060848603121561181057600080fd5b833561181b816117ba565b9250602084013561182b816117ba565b929592945050506040919091013590565b60006020828403121561184e57600080fd5b8135610843816117ba565b60006020828403121561186b57600080fd5b5035919050565b80151581146107b557600080fd5b6000806040838503121561189357600080fd5b823561189e816117ba565b915060208301356118ae81611872565b809150509250929050565b6000806000604084860312156118ce57600080fd5b833567ffffffffffffffff808211156118e657600080fd5b818601915086601f8301126118fa57600080fd5b81358181111561190957600080fd5b8760208260051b850101111561191e57600080fd5b6020928301955093505084013561193481611872565b809150509250925092565b6000806040838503121561195257600080fd5b823561195d816117ba565b915060208301356118ae816117ba565b600181811c9082168061198157607f821691505b6020821081036119a157634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156119ee57600080fd5b815161084381611872565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611a3757611a37611a0f565b5060010190565b808201808211156106d9576106d9611a0f565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b818103818111156106d9576106d9611a0f565b600060208284031215611afe57600080fd5b8151610843816117ba565b80516001600160701b0381168114611b2057600080fd5b919050565b600080600060608486031215611b3a57600080fd5b611b4384611b09565b9250611b5160208501611b09565b9150604084015163ffffffff8116811461193457600080fd5b600060208284031215611b7c57600080fd5b5051919050565b80820281158282048414176106d9576106d9611a0f565b600082611bb757634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220a732242523094cc3a6d485f68fb1b7f1f5618ba7485eb21b572ee68bf4133c8a64736f6c63430008120033

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

000000000000000000000000116c5e1a970041e3a7b838946c39f11cee4278a8

-----Decoded View---------------
Arg [0] : tokenOwner (address): 0x116C5E1a970041e3A7B838946c39f11cEE4278A8

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000116c5e1a970041e3a7b838946c39f11cee4278a8


Deployed Bytecode Sourcemap

29430:4581:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9106:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11358:194;;;;;;;;;;-1:-1:-1;11358:194:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;11358:194:0;1023:187:1;29495:41:0;;;;;;;;;;-1:-1:-1;29495:41:0;;;;-1:-1:-1;;;;;29495:41:0;;;;;;-1:-1:-1;;;;;1406:32:1;;;1388:51;;1376:2;1361:18;29495:41:0;1215:230:1;10226:108:0;;;;;;;;;;-1:-1:-1;10314:12:0;;10226:108;;;1596:25:1;;;1584:2;1569:18;10226:108:0;1450:177:1;12034:454:0;;;;;;;;;;-1:-1:-1;12034:454:0;;;;;:::i;:::-;;:::i;8040:104::-;;;;;;;;;;;;;:::i;:::-;;10068:93;;;;;;;;;;-1:-1:-1;10068:93:0;;10151:2;2235:36:1;;2223:2;2208:18;10068:93:0;2093:184:1;33095:221:0;;;;;;;;;;-1:-1:-1;33095:221:0;;;;;:::i;:::-;;:::i;13272:288::-;;;;;;;;;;-1:-1:-1;13272:288:0;;;;;:::i;:::-;;:::i;31283:124::-;;;;;;;;;;-1:-1:-1;31283:124:0;;;;;:::i;:::-;;:::i;16598:138::-;;;;;;;;;;-1:-1:-1;16598:138:0;;;;;:::i;:::-;;:::i;29543:28::-;;;;;;;;;;-1:-1:-1;29543:28:0;;;;-1:-1:-1;;;;;29543:28:0;;;31533:126;;;;;;;;;;-1:-1:-1;31533:126:0;;;;;:::i;:::-;-1:-1:-1;;;;;31623:28:0;31599:4;31623:28;;;:19;:28;;;;;;;;;31533:126;10397:157;;;;;;;;;;-1:-1:-1;10397:157:0;;;;;:::i;:::-;-1:-1:-1;;;;;10528:18:0;10496:7;10528:18;;;:9;:18;;;;;;;10397:157;7522:92;;;;;;;;;;;;;:::i;29639:24::-;;;;;;;;;;;;;;;;6880:79;;;;;;;;;;-1:-1:-1;6918:7:0;6945:6;-1:-1:-1;;;;;6945:6:0;6880:79;;9325:104;;;;;;;;;;;;;:::i;14063:388::-;;;;;;;;;;-1:-1:-1;14063:388:0;;;;;:::i;:::-;;:::i;10767:200::-;;;;;;;;;;-1:-1:-1;10767:200:0;;;;;:::i;:::-;;:::i;31138:136::-;;;;;;;;;;-1:-1:-1;31138:136:0;;;;;:::i;:::-;;:::i;29575:29::-;;;;;;;;;;-1:-1:-1;29575:29:0;;;;-1:-1:-1;;;;;29575:29:0;;;30756:132;;;;;;;;;;-1:-1:-1;30756:132:0;;;;;:::i;:::-;;:::i;29799:31::-;;;;;;;;;;-1:-1:-1;29799:31:0;;;;-1:-1:-1;;;;;29799:31:0;;;30894:236;;;;;;;;;;-1:-1:-1;30894:236:0;;;;;:::i;:::-;;:::i;11030:181::-;;;;;;;;;;-1:-1:-1;11030:181:0;;;;;:::i;:::-;-1:-1:-1;;;;;11176:18:0;;;11144:7;11176:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;11030:181;12705:158;;;;;;;;;;-1:-1:-1;12705:158:0;;;;;:::i;:::-;;:::i;31415:110::-;;;;;;;;;;-1:-1:-1;31415:110:0;;;;;:::i;:::-;;:::i;29670:33::-;;;;;;;;;;;;;;;;12510:108;;;;;;;;;;;;;:::i;7769:227::-;;;;;;;;;;-1:-1:-1;7769:227:0;;;;;:::i;:::-;;:::i;8152:114::-;;;;;;;;;;-1:-1:-1;8152:114:0;;;;;:::i;:::-;;:::i;9106:100::-;9160:13;9193:5;9186:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9106:100;:::o;11358:194::-;11461:4;11483:39;173:10;11506:7;11515:6;11483:8;:39::i;:::-;-1:-1:-1;11540:4:0;11358:194;;;;;:::o;12034:454::-;12174:4;12191:36;12201:6;12209:9;12220:6;12191:9;:36::i;:::-;12238:220;12261:6;173:10;12309:138;12365:6;12309:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12309:19:0;;;;;;:11;:19;;;;;;;;173:10;12309:33;;;;;;;;;;:37;:138::i;:::-;12238:8;:220::i;:::-;-1:-1:-1;12476:4:0;12034:454;;;;;:::o;8040:104::-;7092:6;;-1:-1:-1;;;;;7092:6:0;173:10;7092:22;7084:67;;;;-1:-1:-1;;;7084:67:0;;;;;;;:::i;:::-;;;;;;;;;8097:6:::1;::::0;;8089:47:::1;::::0;-1:-1:-1;;;;;8097:6:0;;::::1;::::0;8114:21:::1;8089:47:::0;::::1;;;::::0;8114:21;;8089:47;8097:6;8089:47;8114:21;8097:6;8089:47;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;8040:104::o:0;33095:221::-;33212:14;;33180:12;;-1:-1:-1;;;;;33212:14:0;33230:10;33212:28;33204:37;;;;;;33259:49;;-1:-1:-1;;;33259:49:0;;33289:10;33259:49;;;6351:51:1;6418:18;;;6411:34;;;-1:-1:-1;;;;;33259:29:0;;;;;6324:18:1;;33259:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;33252:56;33095:221;-1:-1:-1;;;33095:221:0:o;13272:288::-;173:10;13375:4;13469:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;13469:34:0;;;;;;;;;;13375:4;;13397:133;;13447:7;;13469:50;;13508:10;13469:38;:50::i;31283:124::-;7092:6;;-1:-1:-1;;;;;7092:6:0;173:10;7092:22;7084:67;;;;-1:-1:-1;;;7084:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;31358:34:0::1;;::::0;;;:22:::1;:34;::::0;;;;:41;;-1:-1:-1;;31358:41:0::1;31395:4;31358:41;::::0;;31283:124::o;16598:138::-;16703:25;16709:10;16721:6;16703:5;:25::i;7522:92::-;7092:6;;-1:-1:-1;;;;;7092:6:0;173:10;7092:22;7084:67;;;;-1:-1:-1;;;7084:67:0;;;;;;;:::i;:::-;7604:1:::1;7587:19:::0;;-1:-1:-1;;;;;;7587:19:0::1;::::0;;7522:92::o;9325:104::-;9381:13;9414:7;9407:14;;;;;:::i;14063:388::-;14171:4;14193:228;173:10;14243:7;14265:145;14322:15;14265:145;;;;;;;;;;;;;;;;;173:10;14265:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;14265:34:0;;;;;;;;;;;;:38;:145::i;10767:200::-;10873:4;10895:42;173:10;10919:9;10930:6;10895:9;:42::i;31138:136::-;7092:6;;-1:-1:-1;;;;;7092:6:0;173:10;7092:22;7084:67;;;;-1:-1:-1;;;7084:67:0;;;;;;;:::i;:::-;31226:18:::1;:40:::0;31138:136::o;30756:132::-;7092:6;;-1:-1:-1;;;;;7092:6:0;173:10;7092:22;7084:67;;;;-1:-1:-1;;;7084:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;30841:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:39;;-1:-1:-1;;30841:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;30756:132::o;30894:236::-;7092:6;;-1:-1:-1;;;;;7092:6:0;173:10;7092:22;7084:67;;;;-1:-1:-1;;;7084:67:0;;;;;;;:::i;:::-;31012:9:::1;31007:116;31027:19:::0;;::::1;31007:116;;;31103:8;31068:19;:32;31088:8;;31097:1;31088:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;31068:32:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;31068:32:0;:43;;-1:-1:-1;;31068:43:0::1;::::0;::::1;;::::0;;;::::1;::::0;;31048:3;::::1;::::0;::::1;:::i;:::-;;;;31007:116;;;;30894:236:::0;;;:::o;12705:158::-;12794:11;;-1:-1:-1;;;;;12794:11:0;12809:10;12794:25;12786:34;;;;;;-1:-1:-1;;;;;12825:21:0;;;;;;;:8;:21;;;;;:30;12705:158::o;31415:110::-;7092:6;;-1:-1:-1;;;;;7092:6:0;173:10;7092:22;7084:67;;;;-1:-1:-1;;;7084:67:0;;;;;;;:::i;:::-;31501:6:::1;:16:::0;;-1:-1:-1;;;;;;31501:16:0::1;-1:-1:-1::0;;;;;31501:16:0;;;::::1;::::0;;;::::1;::::0;;31415:110::o;12510:108::-;12555:11;;-1:-1:-1;;;;;12555:11:0;12570:10;12555:25;12547:34;;;;;;12603:7;;;-1:-1:-1;;12592:18:0;;12603:7;;;;12602:8;12592:18;;;12510:108::o;7769:227::-;7092:6;;-1:-1:-1;;;;;7092:6:0;173:10;7092:22;7084:67;;;;-1:-1:-1;;;7084:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7872:22:0;::::1;7850:110;;;::::0;-1:-1:-1;;;7850:110:0;;7312:2:1;7850:110:0::1;::::0;::::1;7294:21:1::0;7351:2;7331:18;;;7324:30;7390:34;7370:18;;;7363:62;-1:-1:-1;;;7441:18:1;;;7434:36;7487:19;;7850:110:0::1;7110:402:1::0;7850:110:0::1;7971:6;:17:::0;;-1:-1:-1;;;;;;7971:17:0::1;-1:-1:-1::0;;;;;7971:17:0;;;::::1;::::0;;;::::1;::::0;;7769:227::o;8152:114::-;7092:6;;-1:-1:-1;;;;;7092:6:0;173:10;7092:22;7084:67;;;;-1:-1:-1;;;7084:67:0;;;;;;;:::i;:::-;8227:31:::1;::::0;-1:-1:-1;;;8227:31:0;;8238:10:::1;8227:31;::::0;::::1;6351:51:1::0;6418:18;;;6411:34;;;-1:-1:-1;;;;;8227:10:0;::::1;::::0;::::1;::::0;6324:18:1;;8227:31:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8152:114:::0;;:::o;19104:181::-;19162:7;;19194:5;19198:1;19194;:5;:::i;:::-;19182:17;;19223:1;19218;:6;;19210:46;;;;-1:-1:-1;;;19210:46:0;;7849:2:1;19210:46:0;;;7831:21:1;7888:2;7868:18;;;7861:30;7927:29;7907:18;;;7900:57;7974:18;;19210:46:0;7647:351:1;17645:380:0;-1:-1:-1;;;;;17781:19:0;;17773:68;;;;-1:-1:-1;;;17773:68:0;;8205:2:1;17773:68:0;;;8187:21:1;8244:2;8224:18;;;8217:30;8283:34;8263:18;;;8256:62;-1:-1:-1;;;8334:18:1;;;8327:34;8378:19;;17773:68:0;8003:400:1;17773:68:0;-1:-1:-1;;;;;17860:21:0;;17852:68;;;;-1:-1:-1;;;17852:68:0;;8610:2:1;17852:68:0;;;8592:21:1;8649:2;8629:18;;;8622:30;8688:34;8668:18;;;8661:62;-1:-1:-1;;;8739:18:1;;;8732:32;8781:19;;17852:68:0;8408:398:1;17852:68:0;-1:-1:-1;;;;;17933:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;17985:32;;1596:25:1;;;17985:32:0;;1569:18:1;17985:32:0;;;;;;;;17645:380;;;:::o;31668:1419::-;-1:-1:-1;;;;;31800:18:0;;31792:68;;;;-1:-1:-1;;;31792:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;31879:16:0;;31871:64;;;;-1:-1:-1;;;31871:64:0;;;;;;;:::i;:::-;31961:1;31954:6;:8;31946:17;;;;;;-1:-1:-1;;;;;31973:28:0;;;;;;:22;:28;;;;;;;;;:58;;-1:-1:-1;;;;;;32005:26:0;;;;;;:22;:26;;;;;;;;31973:58;31970:143;;;32047:33;32063:4;32069:2;32073:6;32047:15;:33::i;31970:143::-;32154:13;;32121;;-1:-1:-1;;;;;32154:13:0;;;32148:19;;;;32145:190;;32194:19;:17;:19::i;:::-;32241:13;;-1:-1:-1;;;;;32241:13:0;10496:7;10528:18;;;:9;:18;;;;;;32183:30;;-1:-1:-1;32231:29:0;32228:96;;32288:11;;-1:-1:-1;;;;;32288:19:0;;;:11;;:19;32280:28;;;;;;-1:-1:-1;;;;;32387:25:0;;32353:12;32387:25;;;:19;:25;;;;;;32368:4;;32387:25;;;:52;;-1:-1:-1;;;;;;32416:23:0;;;;;;:19;:23;;;;;;;;32387:52;32383:506;;;-1:-1:-1;32466:5:0;32383:506;;;32504:13;;-1:-1:-1;;;;;32504:13:0;;;32496:21;;;;32493:385;;32540:9;;32561:15;;32540:17;;32554:2;32540:13;:17::i;:::-;:36;32537:87;;32594:28;:6;32605:16;32594:10;:28::i;:::-;32585:37;;32537:87;32642:6;;:30;;-1:-1:-1;;;32642:30:0;;-1:-1:-1;;;;;6369:32:1;;;32642:30:0;;;6351:51:1;6418:18;;;6411:34;;;32642:6:0;;;;:18;;6324::1;;32642:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32493:385;;;32702:13;;-1:-1:-1;;;;;32702:13:0;;;32696:19;;;;32693:185;;32723:6;;:33;;-1:-1:-1;;;32723:33:0;;-1:-1:-1;;;;;6369:32:1;;;32723:33:0;;;6351:51:1;6418:18;;;6411:34;;;32723:6:0;;;;:19;;6324:18:1;;32723:33:0;6177:274:1;32693:185:0;32795:6;;:33;;-1:-1:-1;;;32795:33:0;;-1:-1:-1;;;;;6369:32:1;;;32795:33:0;;;6351:51:1;6418:18;;;6411:34;;;32795:6:0;;;;:19;;6324:18:1;;32795:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32857:5;32847:15;;32693:185;32905:7;32901:131;;;32942:15;;32920:62;;32936:4;;-1:-1:-1;;;;;32942:15:0;32959:22;32979:1;32959:15;:6;32970:3;32959:10;:15::i;:::-;:19;;:22::i;:::-;32920:15;:62::i;:::-;32997:23;33017:2;32997:15;:6;33008:3;32997:10;:15::i;:23::-;32988:32;;32901:131;33046:33;33062:4;33068:2;33072:6;33046:15;:33::i;:::-;31781:1306;;31668:1419;;;:::o;20007:226::-;20127:7;20163:12;20155:6;;;;20147:29;;;;-1:-1:-1;;;20147:29:0;;;;;;;;:::i;:::-;-1:-1:-1;20187:9:0;20199:5;20203:1;20199;:5;:::i;:::-;20187:17;20007:226;-1:-1:-1;;;;;20007:226:0:o;16748:455::-;-1:-1:-1;;;;;16832:21:0;;16824:67;;;;-1:-1:-1;;;16824:67:0;;9956:2:1;16824:67:0;;;9938:21:1;9995:2;9975:18;;;9968:30;10034:34;10014:18;;;10007:62;-1:-1:-1;;;10085:18:1;;;10078:31;10126:19;;16824:67:0;9754:397:1;16824:67:0;16987:105;17024:6;16987:105;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16987:18:0;;;;;;:9;:18;;;;;;;:105;:22;:105::i;:::-;-1:-1:-1;;;;;16966:18:0;;;;;;:9;:18;;;;;:126;17118:12;;:24;;17135:6;17118:16;:24::i;:::-;17103:12;:39;17158:37;;1596:25:1;;;17184:1:0;;-1:-1:-1;;;;;17158:37:0;;;;;1584:2:1;1569:18;17158:37:0;;;;;;;16748:455;;:::o;14941:336::-;-1:-1:-1;;;;;15081:20:0;;15073:70;;;;-1:-1:-1;;;15073:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15162:23:0;;15154:71;;;;-1:-1:-1;;;15154:71:0;;;;;;;:::i;:::-;15230:39;15245:6;15252:9;15262:6;15230:14;:39::i;33328:677::-;33378:11;33403:14;33443:13;;;;;;;;;-1:-1:-1;;;;;33443:13:0;-1:-1:-1;;;;;33420:45:0;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;33403:64;;33478:14;33518:13;;;;;;;;;-1:-1:-1;;;;;33518:13:0;-1:-1:-1;;;;;33495:45:0;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;33478:64;;33554:7;33562;33597:13;;;;;;;;;-1:-1:-1;;;;;33597:13:0;-1:-1:-1;;;;;33574:50:0;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;33682:13:0;;33649:48;;-1:-1:-1;;;33649:48:0;;-1:-1:-1;;;;;33682:13:0;;;33649:48;;;1388:51:1;-1:-1:-1;;;;;33553:73:0;;;;-1:-1:-1;33553:73:0;;;;;-1:-1:-1;33637:9:0;;33649:24;;;;;1361:18:1;;33649:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;33753:13;;33720:48;;-1:-1:-1;;;33720:48:0;;-1:-1:-1;;;;;33753:13:0;;;33720:48;;;1388:51:1;33637:60:0;;-1:-1:-1;33708:9:0;;33720:24;;;;;;1361:18:1;;33720:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;33708:60;-1:-1:-1;33801:4:0;-1:-1:-1;;;;;33783:23:0;;;33779:219;;33825:2;33818:4;:9;33814:82;;;33835:12;33850:9;33857:2;33850:4;:9;:::i;:::-;33885:4;-1:-1:-1;33875:14:0;-1:-1:-1;;33814:82:0;33779:219;;;33922:2;33915:4;:9;33911:82;;;33932:12;33947:9;33954:2;33947:4;:9;:::i;:::-;33982:4;-1:-1:-1;33972:14:0;-1:-1:-1;;33911:82:0;33390:615;;;;;;33328:677;:::o;21439:132::-;21497:7;21524:39;21528:1;21531;21524:39;;;;;;;;;;;;;;;;;:3;:39::i;20492:471::-;20550:7;20795:1;20800;20795:6;20791:47;;-1:-1:-1;20825:1:0;20818:8;;20791:47;20850:9;20862:5;20866:1;20862;:5;:::i;:::-;20850:17;-1:-1:-1;20895:1:0;20886:5;20890:1;20850:17;20886:5;:::i;:::-;:10;20878:56;;;;-1:-1:-1;;;20878:56:0;;11846:2:1;20878:56:0;;;11828:21:1;11885:2;11865:18;;;11858:30;11924:34;11904:18;;;11897:62;-1:-1:-1;;;11975:18:1;;;11968:31;12016:19;;20878:56:0;11644:397:1;19568:136:0;19626:7;19653:43;19657:1;19660;19653:43;;;;;;;;;;;;;;;;;:3;:43::i;15289:311::-;-1:-1:-1;;;;;15446:17:0;;;;;;:9;:17;;;;;;:29;;15468:6;15446:21;:29::i;:::-;-1:-1:-1;;;;;15426:17:0;;;;;;;:9;:17;;;;;;:49;;;;15509:20;;;;;;;:32;;15534:6;15509:24;:32::i;:::-;-1:-1:-1;;;;;15486:20:0;;;;;;;:9;:20;;;;;;;:55;;;;15557:35;;;;;;;;;;15585:6;1596:25:1;;1584:2;1569:18;;1450:177;22067:312:0;22187:7;22222:12;22215:5;22207:28;;;;-1:-1:-1;;;22207:28:0;;;;;;;;:::i;:::-;-1:-1:-1;22246:9:0;22258:5;22262:1;22258;: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;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1632:456::-;1709:6;1717;1725;1778:2;1766:9;1757:7;1753:23;1749:32;1746:52;;;1794:1;1791;1784:12;1746:52;1833:9;1820:23;1852:31;1877:5;1852:31;:::i;:::-;1902:5;-1:-1:-1;1959:2:1;1944:18;;1931:32;1972:33;1931:32;1972:33;:::i;:::-;1632:456;;2024:7;;-1:-1:-1;;;2078:2:1;2063:18;;;;2050:32;;1632:456::o;2282:247::-;2341:6;2394:2;2382:9;2373:7;2369:23;2365:32;2362:52;;;2410:1;2407;2400:12;2362:52;2449:9;2436:23;2468:31;2493:5;2468:31;:::i;2534:180::-;2593:6;2646:2;2634:9;2625:7;2621:23;2617:32;2614:52;;;2662:1;2659;2652:12;2614:52;-1:-1:-1;2685:23:1;;2534:180;-1:-1:-1;2534:180:1:o;2927:118::-;3013:5;3006:13;2999:21;2992:5;2989:32;2979:60;;3035:1;3032;3025:12;3050:382;3115:6;3123;3176:2;3164:9;3155:7;3151:23;3147:32;3144:52;;;3192:1;3189;3182:12;3144:52;3231:9;3218:23;3250:31;3275:5;3250:31;:::i;:::-;3300:5;-1:-1:-1;3357:2:1;3342:18;;3329:32;3370:30;3329:32;3370:30;:::i;:::-;3419:7;3409:17;;;3050:382;;;;;:::o;3671:750::-;3763:6;3771;3779;3832:2;3820:9;3811:7;3807:23;3803:32;3800:52;;;3848:1;3845;3838:12;3800:52;3888:9;3875:23;3917:18;3958:2;3950:6;3947:14;3944:34;;;3974:1;3971;3964:12;3944:34;4012:6;4001:9;3997:22;3987:32;;4057:7;4050:4;4046:2;4042:13;4038:27;4028:55;;4079:1;4076;4069:12;4028:55;4119:2;4106:16;4145:2;4137:6;4134:14;4131:34;;;4161:1;4158;4151:12;4131:34;4216:7;4209:4;4199:6;4196:1;4192:14;4188:2;4184:23;4180:34;4177:47;4174:67;;;4237:1;4234;4227:12;4174:67;4268:4;4260:13;;;;-1:-1:-1;4292:6:1;-1:-1:-1;;4333:20:1;;4320:34;4363:28;4320:34;4363:28;:::i;:::-;4410:5;4400:15;;;3671:750;;;;;:::o;4426:388::-;4494:6;4502;4555:2;4543:9;4534:7;4530:23;4526:32;4523:52;;;4571:1;4568;4561:12;4523:52;4610:9;4597:23;4629:31;4654:5;4629:31;:::i;:::-;4679:5;-1:-1:-1;4736:2:1;4721:18;;4708:32;4749:33;4708:32;4749:33;:::i;5431:380::-;5510:1;5506:12;;;;5553;;;5574:61;;5628:4;5620:6;5616:17;5606:27;;5574:61;5681:2;5673:6;5670:14;5650:18;5647:38;5644:161;;5727:10;5722:3;5718:20;5715:1;5708:31;5762:4;5759:1;5752:15;5790:4;5787:1;5780:15;5644:161;;5431:380;;;:::o;5816:356::-;6018:2;6000:21;;;6037:18;;;6030:30;6096:34;6091:2;6076:18;;6069:62;6163:2;6148:18;;5816:356::o;6456:245::-;6523:6;6576:2;6564:9;6555:7;6551:23;6547:32;6544:52;;;6592:1;6589;6582:12;6544:52;6624:9;6618:16;6643:28;6665:5;6643:28;:::i;6706:127::-;6767:10;6762:3;6758:20;6755:1;6748:31;6798:4;6795:1;6788:15;6822:4;6819:1;6812:15;6838:127;6899:10;6894:3;6890:20;6887:1;6880:31;6930:4;6927:1;6920:15;6954:4;6951:1;6944:15;6970:135;7009:3;7030:17;;;7027:43;;7050:18;;:::i;:::-;-1:-1:-1;7097:1:1;7086:13;;6970:135::o;7517:125::-;7582:9;;;7603:10;;;7600:36;;;7616:18;;:::i;8811:401::-;9013:2;8995:21;;;9052:2;9032:18;;;9025:30;9091:34;9086:2;9071:18;;9064:62;-1:-1:-1;;;9157:2:1;9142:18;;9135:35;9202:3;9187:19;;8811:401::o;9217:399::-;9419:2;9401:21;;;9458:2;9438:18;;;9431:30;9497:34;9492:2;9477:18;;9470:62;-1:-1:-1;;;9563:2:1;9548:18;;9541:33;9606:3;9591:19;;9217:399::o;9621:128::-;9688:9;;;9709:11;;;9706:37;;;9723:18;;:::i;10156:251::-;10226:6;10279:2;10267:9;10258:7;10254:23;10250:32;10247:52;;;10295:1;10292;10285:12;10247:52;10327:9;10321:16;10346:31;10371:5;10346:31;:::i;10412:188::-;10491:13;;-1:-1:-1;;;;;10533:42:1;;10523:53;;10513:81;;10590:1;10587;10580:12;10513:81;10412:188;;;:::o;10605:450::-;10692:6;10700;10708;10761:2;10749:9;10740:7;10736:23;10732:32;10729:52;;;10777:1;10774;10767:12;10729:52;10800:40;10830:9;10800:40;:::i;:::-;10790:50;;10859:49;10904:2;10893:9;10889:18;10859:49;:::i;:::-;10849:59;;10951:2;10940:9;10936:18;10930:25;10995:10;10988:5;10984:22;10977:5;10974:33;10964:61;;11021:1;11018;11011:12;11060:184;11130:6;11183:2;11171:9;11162:7;11158:23;11154:32;11151:52;;;11199:1;11196;11189:12;11151:52;-1:-1:-1;11222:16:1;;11060:184;-1:-1:-1;11060:184:1:o;11249:168::-;11322:9;;;11353;;11370:15;;;11364:22;;11350:37;11340:71;;11391:18;;:::i;11422:217::-;11462:1;11488;11478:132;;11532:10;11527:3;11523:20;11520:1;11513:31;11567:4;11564:1;11557:15;11595:4;11592:1;11585:15;11478:132;-1:-1:-1;11624:9:1;;11422:217::o

Swarm Source

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