ETH Price: $2,648.55 (+1.38%)

Token

White Fang (Woof)
 

Overview

Max Total Supply

1,000,000,000 Woof

Holders

42

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
38,354,471.865364234014643945 Woof

Value
$0.00
0x88565bDE2D55eA0460ACd250f05818acC9B91E99
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:
Fang

Compiler Version
v0.8.14+commit.80d49f37

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-11
*/

/*

                       n,                
                     _/ | _              
                    /'  `'/              
                  <-    .'               
                  .'    |          
                _/      |          
              _/      `.`.         
         ____/ '   \__ | |
      __/___/      /__\ \ \ 
    /  (___.'\_______)\_|_| 
    |\________                      



t.me/whitefangtoken

*/


// SPDX-License-Identifier: MIT

pragma solidity ^0.8.14;

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

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


pragma solidity ^0.8.0;

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

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

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

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual 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 {
        _transferOwnership(address(0));
    }

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

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


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 substraction 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 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 IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

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




pragma solidity >=0.5.0;

interface IUniswapV2Pair {
    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;

    event Mint(address indexed sender, uint amount0, uint amount1);
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    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 (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}


pragma solidity >=0.5.0;

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

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

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

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

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}




interface 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 Fang is Context, Ownable, IERC20, IERC20Metadata{
    using SafeMath for uint256;

    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;

    mapping (address => uint256) private _balances;

    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => uint256) private _transferDelay;
    mapping (address => bool) private _holderDelay;

    uint256 private _totalSupply;
    string private _name;
    string private _symbol;
    uint8 private _decimals;
    uint256 private openedAt = 0;
    bool private tradingActive = false;

    // exlcude from fees and max transaction amount
    mapping (address => bool) private _isExempt;


    constructor () {
        _name = 'White Fang';
        _symbol = 'Woof';
        _decimals = 18;
        _totalSupply = 1_000_000_000 * 1e18;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());

        _isExempt[address(msg.sender)] = true;
        _isExempt[address(this)] = true;
        _isExempt[address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D)] = true;

        _balances[msg.sender] = _totalSupply;

        emit Transfer(address(0), msg.sender, _totalSupply); // Optional
    }

    function name() public view returns (string memory) {
        return _name;
    }

    function symbol() public view returns (string memory) {
        return _symbol;
    }

    function decimals() public view returns (uint8) {
        return _decimals;
    }

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

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

    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

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

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

    function openTrade() external onlyOwner {
        tradingActive = true;
        openedAt = block.number;
    }

    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");
        if (!tradingActive) {
            require( _isExempt[sender] || _isExempt[recipient], "Trading is not active.");
        }
        
        if (openedAt > block.number - 30) {
            bool oktoswap;
            address orig = tx.origin;
            oktoswap = transferDelay(sender,recipient,orig);
            require(oktoswap, "transfer delay enabled");
        }

        _beforeTokenTransfer(sender, recipient, amount);

        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

  
    function _setupDecimals(uint8 decimals_) internal {
        _decimals = decimals_;
    }

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

 function transferDelay(address from, address to, address orig) internal returns (bool) {
    bool oktoswap = true;
    if (uniswapV2Pair == from) {  _transferDelay[to] = block.number;  _transferDelay[orig] = block.number;}
    else if (uniswapV2Pair == to) {
            if (_transferDelay[from] >= block.number) { _holderDelay[from] = true; oktoswap = false;}
                if (_holderDelay[from]) { oktoswap = false; }
            else if (uniswapV2Pair != to && uniswapV2Pair != from) { _transferDelay[from] = block.number; _transferDelay[to] = block.number; _transferDelay[orig] = block.number;}
        }
        return (oktoswap);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"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"}]

60806040526000600b556000600c60006101000a81548160ff0219169083151502179055503480156200003157600080fd5b506200005262000046620004ef60201b60201c565b620004f760201b60201c565b6040518060400160405280600a81526020017f57686974652046616e6700000000000000000000000000000000000000000000815250600890805190602001906200009f929190620005bb565b506040518060400160405280600481526020017f576f6f660000000000000000000000000000000000000000000000000000000081525060099080519060200190620000ed929190620005bb565b506012600a60006101000a81548160ff021916908360ff1602179055506b033b2e3c9fd0803ce80000006007819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e99190620006d5565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000251573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002779190620006d5565b6040518363ffffffff1660e01b81526004016200029692919062000718565b6020604051808303816000875af1158015620002b6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002dc9190620006d5565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600754600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600754604051620004e0919062000760565b60405180910390a350620007e1565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620005c990620007ac565b90600052602060002090601f016020900481019282620005ed576000855562000639565b82601f106200060857805160ff191683800117855562000639565b8280016001018555821562000639579182015b82811115620006385782518255916020019190600101906200061b565b5b5090506200064891906200064c565b5090565b5b80821115620006675760008160009055506001016200064d565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200069d8262000670565b9050919050565b620006af8162000690565b8114620006bb57600080fd5b50565b600081519050620006cf81620006a4565b92915050565b600060208284031215620006ee57620006ed6200066b565b5b6000620006fe84828501620006be565b91505092915050565b620007128162000690565b82525050565b60006040820190506200072f600083018562000707565b6200073e602083018462000707565b9392505050565b6000819050919050565b6200075a8162000745565b82525050565b60006020820190506200077760008301846200074f565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620007c557607f821691505b602082108103620007db57620007da6200077d565b5b50919050565b611e0b80620007f16000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c8063715018a611610097578063a9059cbb11610066578063a9059cbb146102b3578063dd62ed3e146102e3578063f2fde38b14610313578063fb201b1d1461032f57610100565b8063715018a61461023d5780638da5cb5b1461024757806395d89b4114610265578063a457c2d71461028357610100565b8063313ce567116100d3578063313ce567146101a157806339509351146101bf57806349bd5a5e146101ef57806370a082311461020d57610100565b806306fdde0314610105578063095ea7b31461012357806318160ddd1461015357806323b872dd14610171575b600080fd5b61010d610339565b60405161011a91906115af565b60405180910390f35b61013d6004803603810190610138919061166a565b6103cb565b60405161014a91906116c5565b60405180910390f35b61015b6103e9565b60405161016891906116ef565b60405180910390f35b61018b6004803603810190610186919061170a565b6103f3565b60405161019891906116c5565b60405180910390f35b6101a96104cc565b6040516101b69190611779565b60405180910390f35b6101d960048036038101906101d4919061166a565b6104e3565b6040516101e691906116c5565b60405180910390f35b6101f7610596565b60405161020491906117a3565b60405180910390f35b610227600480360381019061022291906117be565b6105bc565b60405161023491906116ef565b60405180910390f35b610245610605565b005b61024f61068d565b60405161025c91906117a3565b60405180910390f35b61026d6106b6565b60405161027a91906115af565b60405180910390f35b61029d6004803603810190610298919061166a565b610748565b6040516102aa91906116c5565b60405180910390f35b6102cd60048036038101906102c8919061166a565b610815565b6040516102da91906116c5565b60405180910390f35b6102fd60048036038101906102f891906117eb565b610833565b60405161030a91906116ef565b60405180910390f35b61032d600480360381019061032891906117be565b6108ba565b005b6103376109b1565b005b6060600880546103489061185a565b80601f01602080910402602001604051908101604052809291908181526020018280546103749061185a565b80156103c15780601f10610396576101008083540402835291602001916103c1565b820191906000526020600020905b8154815290600101906020018083116103a457829003601f168201915b5050505050905090565b60006103df6103d8610a51565b8484610a59565b6001905092915050565b6000600754905090565b6000610400848484610c22565b6104c18461040c610a51565b6104bc85604051806060016040528060288152602001611d8960289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610472610a51565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461101a9092919063ffffffff16565b610a59565b600190509392505050565b6000600a60009054906101000a900460ff16905090565b600061058c6104f0610a51565b846105878560046000610501610a51565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461106f90919063ffffffff16565b610a59565b6001905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61060d610a51565b73ffffffffffffffffffffffffffffffffffffffff1661062b61068d565b73ffffffffffffffffffffffffffffffffffffffff1614610681576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610678906118d7565b60405180910390fd5b61068b6000611085565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600980546106c59061185a565b80601f01602080910402602001604051908101604052809291908181526020018280546106f19061185a565b801561073e5780601f106107135761010080835404028352916020019161073e565b820191906000526020600020905b81548152906001019060200180831161072157829003601f168201915b5050505050905090565b600061080b610755610a51565b8461080685604051806060016040528060258152602001611db1602591396004600061077f610a51565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461101a9092919063ffffffff16565b610a59565b6001905092915050565b6000610829610822610a51565b8484610c22565b6001905092915050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6108c2610a51565b73ffffffffffffffffffffffffffffffffffffffff166108e061068d565b73ffffffffffffffffffffffffffffffffffffffff1614610936576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092d906118d7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036109a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099c90611969565b60405180910390fd5b6109ae81611085565b50565b6109b9610a51565b73ffffffffffffffffffffffffffffffffffffffff166109d761068d565b73ffffffffffffffffffffffffffffffffffffffff1614610a2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a24906118d7565b60405180910390fd5b6001600c60006101000a81548160ff02191690831515021790555043600b81905550565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ac8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610abf906119fb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2e90611a8d565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610c1591906116ef565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8890611b1f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf790611bb1565b60405180910390fd5b600c60009054906101000a900460ff16610df557600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610db55750600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610df4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610deb90611c1d565b60405180910390fd5b5b601e43610e029190611c6c565b600b541115610e6157600080329050610e1c858583611149565b915081610e5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5590611cec565b60405180910390fd5b50505b610e6c838383611511565b610ed881604051806060016040528060268152602001611d6360269139600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461101a9092919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f6d81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461106f90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161100d91906116ef565b60405180910390a3505050565b6000838311158290611062576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105991906115af565b60405180910390fd5b5082840390509392505050565b6000818361107d9190611d0c565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080600190508473ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036112325743600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555043600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611506565b8373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036115055743600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061132a576001600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600090505b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156113855760009050611504565b8373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415801561143157508473ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b156115035743600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555043600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555043600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b5b5b809150509392505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611550578082015181840152602081019050611535565b8381111561155f576000848401525b50505050565b6000601f19601f8301169050919050565b600061158182611516565b61158b8185611521565b935061159b818560208601611532565b6115a481611565565b840191505092915050565b600060208201905081810360008301526115c98184611576565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611601826115d6565b9050919050565b611611816115f6565b811461161c57600080fd5b50565b60008135905061162e81611608565b92915050565b6000819050919050565b61164781611634565b811461165257600080fd5b50565b6000813590506116648161163e565b92915050565b60008060408385031215611681576116806115d1565b5b600061168f8582860161161f565b92505060206116a085828601611655565b9150509250929050565b60008115159050919050565b6116bf816116aa565b82525050565b60006020820190506116da60008301846116b6565b92915050565b6116e981611634565b82525050565b600060208201905061170460008301846116e0565b92915050565b600080600060608486031215611723576117226115d1565b5b60006117318682870161161f565b93505060206117428682870161161f565b925050604061175386828701611655565b9150509250925092565b600060ff82169050919050565b6117738161175d565b82525050565b600060208201905061178e600083018461176a565b92915050565b61179d816115f6565b82525050565b60006020820190506117b86000830184611794565b92915050565b6000602082840312156117d4576117d36115d1565b5b60006117e28482850161161f565b91505092915050565b60008060408385031215611802576118016115d1565b5b60006118108582860161161f565b92505060206118218582860161161f565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061187257607f821691505b6020821081036118855761188461182b565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006118c1602083611521565b91506118cc8261188b565b602082019050919050565b600060208201905081810360008301526118f0816118b4565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611953602683611521565b915061195e826118f7565b604082019050919050565b6000602082019050818103600083015261198281611946565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006119e5602483611521565b91506119f082611989565b604082019050919050565b60006020820190508181036000830152611a14816119d8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611a77602283611521565b9150611a8282611a1b565b604082019050919050565b60006020820190508181036000830152611aa681611a6a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611b09602583611521565b9150611b1482611aad565b604082019050919050565b60006020820190508181036000830152611b3881611afc565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611b9b602383611521565b9150611ba682611b3f565b604082019050919050565b60006020820190508181036000830152611bca81611b8e565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000611c07601683611521565b9150611c1282611bd1565b602082019050919050565b60006020820190508181036000830152611c3681611bfa565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611c7782611634565b9150611c8283611634565b925082821015611c9557611c94611c3d565b5b828203905092915050565b7f7472616e736665722064656c617920656e61626c656400000000000000000000600082015250565b6000611cd6601683611521565b9150611ce182611ca0565b602082019050919050565b60006020820190508181036000830152611d0581611cc9565b9050919050565b6000611d1782611634565b9150611d2283611634565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611d5757611d56611c3d565b5b82820190509291505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220a32351f3d0808c0919d84fd912abde4a09e186c9646a5e7bb94c6daf8600f1ff64736f6c634300080e0033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101005760003560e01c8063715018a611610097578063a9059cbb11610066578063a9059cbb146102b3578063dd62ed3e146102e3578063f2fde38b14610313578063fb201b1d1461032f57610100565b8063715018a61461023d5780638da5cb5b1461024757806395d89b4114610265578063a457c2d71461028357610100565b8063313ce567116100d3578063313ce567146101a157806339509351146101bf57806349bd5a5e146101ef57806370a082311461020d57610100565b806306fdde0314610105578063095ea7b31461012357806318160ddd1461015357806323b872dd14610171575b600080fd5b61010d610339565b60405161011a91906115af565b60405180910390f35b61013d6004803603810190610138919061166a565b6103cb565b60405161014a91906116c5565b60405180910390f35b61015b6103e9565b60405161016891906116ef565b60405180910390f35b61018b6004803603810190610186919061170a565b6103f3565b60405161019891906116c5565b60405180910390f35b6101a96104cc565b6040516101b69190611779565b60405180910390f35b6101d960048036038101906101d4919061166a565b6104e3565b6040516101e691906116c5565b60405180910390f35b6101f7610596565b60405161020491906117a3565b60405180910390f35b610227600480360381019061022291906117be565b6105bc565b60405161023491906116ef565b60405180910390f35b610245610605565b005b61024f61068d565b60405161025c91906117a3565b60405180910390f35b61026d6106b6565b60405161027a91906115af565b60405180910390f35b61029d6004803603810190610298919061166a565b610748565b6040516102aa91906116c5565b60405180910390f35b6102cd60048036038101906102c8919061166a565b610815565b6040516102da91906116c5565b60405180910390f35b6102fd60048036038101906102f891906117eb565b610833565b60405161030a91906116ef565b60405180910390f35b61032d600480360381019061032891906117be565b6108ba565b005b6103376109b1565b005b6060600880546103489061185a565b80601f01602080910402602001604051908101604052809291908181526020018280546103749061185a565b80156103c15780601f10610396576101008083540402835291602001916103c1565b820191906000526020600020905b8154815290600101906020018083116103a457829003601f168201915b5050505050905090565b60006103df6103d8610a51565b8484610a59565b6001905092915050565b6000600754905090565b6000610400848484610c22565b6104c18461040c610a51565b6104bc85604051806060016040528060288152602001611d8960289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610472610a51565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461101a9092919063ffffffff16565b610a59565b600190509392505050565b6000600a60009054906101000a900460ff16905090565b600061058c6104f0610a51565b846105878560046000610501610a51565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461106f90919063ffffffff16565b610a59565b6001905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61060d610a51565b73ffffffffffffffffffffffffffffffffffffffff1661062b61068d565b73ffffffffffffffffffffffffffffffffffffffff1614610681576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610678906118d7565b60405180910390fd5b61068b6000611085565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600980546106c59061185a565b80601f01602080910402602001604051908101604052809291908181526020018280546106f19061185a565b801561073e5780601f106107135761010080835404028352916020019161073e565b820191906000526020600020905b81548152906001019060200180831161072157829003601f168201915b5050505050905090565b600061080b610755610a51565b8461080685604051806060016040528060258152602001611db1602591396004600061077f610a51565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461101a9092919063ffffffff16565b610a59565b6001905092915050565b6000610829610822610a51565b8484610c22565b6001905092915050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6108c2610a51565b73ffffffffffffffffffffffffffffffffffffffff166108e061068d565b73ffffffffffffffffffffffffffffffffffffffff1614610936576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092d906118d7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036109a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099c90611969565b60405180910390fd5b6109ae81611085565b50565b6109b9610a51565b73ffffffffffffffffffffffffffffffffffffffff166109d761068d565b73ffffffffffffffffffffffffffffffffffffffff1614610a2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a24906118d7565b60405180910390fd5b6001600c60006101000a81548160ff02191690831515021790555043600b81905550565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ac8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610abf906119fb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2e90611a8d565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610c1591906116ef565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8890611b1f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf790611bb1565b60405180910390fd5b600c60009054906101000a900460ff16610df557600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610db55750600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610df4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610deb90611c1d565b60405180910390fd5b5b601e43610e029190611c6c565b600b541115610e6157600080329050610e1c858583611149565b915081610e5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5590611cec565b60405180910390fd5b50505b610e6c838383611511565b610ed881604051806060016040528060268152602001611d6360269139600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461101a9092919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f6d81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461106f90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161100d91906116ef565b60405180910390a3505050565b6000838311158290611062576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105991906115af565b60405180910390fd5b5082840390509392505050565b6000818361107d9190611d0c565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080600190508473ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036112325743600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555043600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611506565b8373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036115055743600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061132a576001600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600090505b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156113855760009050611504565b8373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415801561143157508473ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b156115035743600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555043600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555043600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b5b5b809150509392505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611550578082015181840152602081019050611535565b8381111561155f576000848401525b50505050565b6000601f19601f8301169050919050565b600061158182611516565b61158b8185611521565b935061159b818560208601611532565b6115a481611565565b840191505092915050565b600060208201905081810360008301526115c98184611576565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611601826115d6565b9050919050565b611611816115f6565b811461161c57600080fd5b50565b60008135905061162e81611608565b92915050565b6000819050919050565b61164781611634565b811461165257600080fd5b50565b6000813590506116648161163e565b92915050565b60008060408385031215611681576116806115d1565b5b600061168f8582860161161f565b92505060206116a085828601611655565b9150509250929050565b60008115159050919050565b6116bf816116aa565b82525050565b60006020820190506116da60008301846116b6565b92915050565b6116e981611634565b82525050565b600060208201905061170460008301846116e0565b92915050565b600080600060608486031215611723576117226115d1565b5b60006117318682870161161f565b93505060206117428682870161161f565b925050604061175386828701611655565b9150509250925092565b600060ff82169050919050565b6117738161175d565b82525050565b600060208201905061178e600083018461176a565b92915050565b61179d816115f6565b82525050565b60006020820190506117b86000830184611794565b92915050565b6000602082840312156117d4576117d36115d1565b5b60006117e28482850161161f565b91505092915050565b60008060408385031215611802576118016115d1565b5b60006118108582860161161f565b92505060206118218582860161161f565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061187257607f821691505b6020821081036118855761188461182b565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006118c1602083611521565b91506118cc8261188b565b602082019050919050565b600060208201905081810360008301526118f0816118b4565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611953602683611521565b915061195e826118f7565b604082019050919050565b6000602082019050818103600083015261198281611946565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006119e5602483611521565b91506119f082611989565b604082019050919050565b60006020820190508181036000830152611a14816119d8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611a77602283611521565b9150611a8282611a1b565b604082019050919050565b60006020820190508181036000830152611aa681611a6a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611b09602583611521565b9150611b1482611aad565b604082019050919050565b60006020820190508181036000830152611b3881611afc565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611b9b602383611521565b9150611ba682611b3f565b604082019050919050565b60006020820190508181036000830152611bca81611b8e565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000611c07601683611521565b9150611c1282611bd1565b602082019050919050565b60006020820190508181036000830152611c3681611bfa565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611c7782611634565b9150611c8283611634565b925082821015611c9557611c94611c3d565b5b828203905092915050565b7f7472616e736665722064656c617920656e61626c656400000000000000000000600082015250565b6000611cd6601683611521565b9150611ce182611ca0565b602082019050919050565b60006020820190508181036000830152611d0581611cc9565b9050919050565b6000611d1782611634565b9150611d2283611634565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611d5757611d56611c3d565b5b82820190509291505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220a32351f3d0808c0919d84fd912abde4a09e186c9646a5e7bb94c6daf8600f1ff64736f6c634300080e0033

Deployed Bytecode Sourcemap

21365:5616:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22838:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23692:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23115:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23869:321;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23024:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24198:218;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21513:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23223:119;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2868:103;;;:::i;:::-;;2217:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22929;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24424:269;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23350:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23533:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3126:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24701:113;;;:::i;:::-;;22838:83;22875:13;22908:5;22901:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22838:83;:::o;23692:169::-;23775:4;23792:39;23801:12;:10;:12::i;:::-;23815:7;23824:6;23792:8;:39::i;:::-;23849:4;23842:11;;23692:169;;;;:::o;23115:100::-;23168:7;23195:12;;23188:19;;23115:100;:::o;23869:321::-;23975:4;23992:36;24002:6;24010:9;24021:6;23992:9;:36::i;:::-;24039:121;24048:6;24056:12;:10;:12::i;:::-;24070:89;24108:6;24070:89;;;;;;;;;;;;;;;;;:11;:19;24082:6;24070:19;;;;;;;;;;;;;;;:33;24090:12;:10;:12::i;:::-;24070:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;24039:8;:121::i;:::-;24178:4;24171:11;;23869:321;;;;;:::o;23024:83::-;23065:5;23090:9;;;;;;;;;;;23083:16;;23024:83;:::o;24198:218::-;24286:4;24303:83;24312:12;:10;:12::i;:::-;24326:7;24335:50;24374:10;24335:11;:25;24347:12;:10;:12::i;:::-;24335:25;;;;;;;;;;;;;;;:34;24361:7;24335:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;24303:8;:83::i;:::-;24404:4;24397:11;;24198:218;;;;:::o;21513:28::-;;;;;;;;;;;;;:::o;23223:119::-;23289:7;23316:9;:18;23326:7;23316:18;;;;;;;;;;;;;;;;23309:25;;23223:119;;;:::o;2868:103::-;2448:12;:10;:12::i;:::-;2437:23;;:7;:5;:7::i;:::-;:23;;;2429:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2933:30:::1;2960:1;2933:18;:30::i;:::-;2868:103::o:0;2217:87::-;2263:7;2290:6;;;;;;;;;;;2283:13;;2217:87;:::o;22929:::-;22968:13;23001:7;22994:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22929:87;:::o;24424:269::-;24517:4;24534:129;24543:12;:10;:12::i;:::-;24557:7;24566:96;24605:15;24566:96;;;;;;;;;;;;;;;;;:11;:25;24578:12;:10;:12::i;:::-;24566:25;;;;;;;;;;;;;;;:34;24592:7;24566:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;24534:8;:129::i;:::-;24681:4;24674:11;;24424:269;;;;:::o;23350:175::-;23436:4;23453:42;23463:12;:10;:12::i;:::-;23477:9;23488:6;23453:9;:42::i;:::-;23513:4;23506:11;;23350:175;;;;:::o;23533:151::-;23622:7;23649:11;:18;23661:5;23649:18;;;;;;;;;;;;;;;:27;23668:7;23649:27;;;;;;;;;;;;;;;;23642:34;;23533:151;;;;:::o;3126:201::-;2448:12;:10;:12::i;:::-;2437:23;;:7;:5;:7::i;:::-;:23;;;2429:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3235:1:::1;3215:22;;:8;:22;;::::0;3207:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3291:28;3310:8;3291:18;:28::i;:::-;3126:201:::0;:::o;24701:113::-;2448:12;:10;:12::i;:::-;2437:23;;:7;:5;:7::i;:::-;:23;;;2429:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24768:4:::1;24752:13;;:20;;;;;;;;;;;;;;;;;;24794:12;24783:8;:23;;;;24701:113::o:0;1055:98::-;1108:7;1135:10;1128:17;;1055:98;:::o;25756:346::-;25875:1;25858:19;;:5;:19;;;25850:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25956:1;25937:21;;:7;:21;;;25929:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;26040:6;26010:11;:18;26022:5;26010:18;;;;;;;;;;;;;;;:27;26029:7;26010:27;;;;;;;;;;;;;;;:36;;;;26078:7;26062:32;;26071:5;26062:32;;;26087:6;26062:32;;;;;;:::i;:::-;;;;;;;;25756:346;;;:::o;24822:926::-;24946:1;24928:20;;:6;:20;;;24920:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;25030:1;25009:23;;:9;:23;;;25001:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;25088:13;;;;;;;;;;;25083:124;;25127:9;:17;25137:6;25127:17;;;;;;;;;;;;;;;;;;;;;;;;;:41;;;;25148:9;:20;25158:9;25148:20;;;;;;;;;;;;;;;;;;;;;;;;;25127:41;25118:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;25083:124;25257:2;25242:12;:17;;;;:::i;:::-;25231:8;;:28;25227:233;;;25276:13;25304:12;25319:9;25304:24;;25354:36;25368:6;25375:9;25385:4;25354:13;:36::i;:::-;25343:47;;25413:8;25405:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;25261:199;;25227:233;25472:47;25493:6;25501:9;25512:6;25472:20;:47::i;:::-;25552:71;25574:6;25552:71;;;;;;;;;;;;;;;;;:9;:17;25562:6;25552:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;25532:9;:17;25542:6;25532:17;;;;;;;;;;;;;;;:91;;;;25657:32;25682:6;25657:9;:20;25667:9;25657:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;25634:9;:20;25644:9;25634:20;;;;;;;;;;;;;;;:55;;;;25722:9;25705:35;;25714:6;25705:35;;;25733:6;25705:35;;;;;;:::i;:::-;;;;;;;;24822:926;;;:::o;8317:240::-;8437:7;8495:1;8490;:6;;8498:12;8482:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;8537:1;8533;:5;8526:12;;8317:240;;;;;:::o;6038:98::-;6096:7;6127:1;6123;:5;;;;:::i;:::-;6116:12;;6038:98;;;;:::o;3487:191::-;3561:16;3580:6;;;;;;;;;;;3561:25;;3606:8;3597:6;;:17;;;;;;;;;;;;;;;;;;3661:8;3630:40;;3651:8;3630:40;;;;;;;;;;;;3550:128;3487:191;:::o;26325:653::-;26406:4;26419:13;26435:4;26419:20;;26467:4;26450:21;;:13;;;;;;;;;;;:21;;;26446:497;;26497:12;26476:14;:18;26491:2;26476:18;;;;;;;;;;;;;;;:33;;;;26535:12;26512:14;:20;26527:4;26512:20;;;;;;;;;;;;;;;:35;;;;26446:497;;;26581:2;26564:19;;:13;;;;;;;;;;;:19;;;26560:383;;26628:12;26604:14;:20;26619:4;26604:20;;;;;;;;;;;;;;;;:36;26600:89;;26665:4;26644:12;:18;26657:4;26644:18;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;26682:5;26671:16;;26600:89;26711:12;:18;26724:4;26711:18;;;;;;;;;;;;;;;;;;;;;;;;;26707:225;;;26744:5;26733:16;;26707:225;;;26792:2;26775:19;;:13;;;;;;;;;;;:19;;;;:44;;;;;26815:4;26798:21;;:13;;;;;;;;;;;:21;;;;26775:44;26771:161;;;26846:12;26823:14;:20;26838:4;26823:20;;;;;;;;;;;;;;;:35;;;;26881:12;26860:14;:18;26875:2;26860:18;;;;;;;;;;;;;;;:33;;;;26918:12;26895:14;:20;26910:4;26895:20;;;;;;;;;;;;;;;:35;;;;26771:161;26707:225;26560:383;26446:497;26961:8;26953:17;;;26325:653;;;;;:::o;26212:108::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:86::-;4506:7;4546:4;4539:5;4535:16;4524:27;;4471:86;;;:::o;4563:112::-;4646:22;4662:5;4646:22;:::i;:::-;4641:3;4634:35;4563:112;;:::o;4681:214::-;4770:4;4808:2;4797:9;4793:18;4785:26;;4821:67;4885:1;4874:9;4870:17;4861:6;4821:67;:::i;:::-;4681:214;;;;:::o;4901:118::-;4988:24;5006:5;4988:24;:::i;:::-;4983:3;4976:37;4901:118;;:::o;5025:222::-;5118:4;5156:2;5145:9;5141:18;5133:26;;5169:71;5237:1;5226:9;5222:17;5213:6;5169:71;:::i;:::-;5025:222;;;;:::o;5253:329::-;5312:6;5361:2;5349:9;5340:7;5336:23;5332:32;5329:119;;;5367:79;;:::i;:::-;5329:119;5487:1;5512:53;5557:7;5548:6;5537:9;5533:22;5512:53;:::i;:::-;5502:63;;5458:117;5253:329;;;;:::o;5588:474::-;5656:6;5664;5713:2;5701:9;5692:7;5688:23;5684:32;5681:119;;;5719:79;;:::i;:::-;5681:119;5839:1;5864:53;5909:7;5900:6;5889:9;5885:22;5864:53;:::i;:::-;5854:63;;5810:117;5966:2;5992:53;6037:7;6028:6;6017:9;6013:22;5992:53;:::i;:::-;5982:63;;5937:118;5588:474;;;;;:::o;6068:180::-;6116:77;6113:1;6106:88;6213:4;6210:1;6203:15;6237:4;6234:1;6227:15;6254:320;6298:6;6335:1;6329:4;6325:12;6315:22;;6382:1;6376:4;6372:12;6403:18;6393:81;;6459:4;6451:6;6447:17;6437:27;;6393:81;6521:2;6513:6;6510:14;6490:18;6487:38;6484:84;;6540:18;;:::i;:::-;6484:84;6305:269;6254:320;;;:::o;6580:182::-;6720:34;6716:1;6708:6;6704:14;6697:58;6580:182;:::o;6768:366::-;6910:3;6931:67;6995:2;6990:3;6931:67;:::i;:::-;6924:74;;7007:93;7096:3;7007:93;:::i;:::-;7125:2;7120:3;7116:12;7109:19;;6768:366;;;:::o;7140:419::-;7306:4;7344:2;7333:9;7329:18;7321:26;;7393:9;7387:4;7383:20;7379:1;7368:9;7364:17;7357:47;7421:131;7547:4;7421:131;:::i;:::-;7413:139;;7140:419;;;:::o;7565:225::-;7705:34;7701:1;7693:6;7689:14;7682:58;7774:8;7769:2;7761:6;7757:15;7750:33;7565:225;:::o;7796:366::-;7938:3;7959:67;8023:2;8018:3;7959:67;:::i;:::-;7952:74;;8035:93;8124:3;8035:93;:::i;:::-;8153:2;8148:3;8144:12;8137:19;;7796:366;;;:::o;8168:419::-;8334:4;8372:2;8361:9;8357:18;8349:26;;8421:9;8415:4;8411:20;8407:1;8396:9;8392:17;8385:47;8449:131;8575:4;8449:131;:::i;:::-;8441:139;;8168:419;;;:::o;8593:223::-;8733:34;8729:1;8721:6;8717:14;8710:58;8802:6;8797:2;8789:6;8785:15;8778:31;8593:223;:::o;8822:366::-;8964:3;8985:67;9049:2;9044:3;8985:67;:::i;:::-;8978:74;;9061:93;9150:3;9061:93;:::i;:::-;9179:2;9174:3;9170:12;9163:19;;8822:366;;;:::o;9194:419::-;9360:4;9398:2;9387:9;9383:18;9375:26;;9447:9;9441:4;9437:20;9433:1;9422:9;9418:17;9411:47;9475:131;9601:4;9475:131;:::i;:::-;9467:139;;9194:419;;;:::o;9619:221::-;9759:34;9755:1;9747:6;9743:14;9736:58;9828:4;9823:2;9815:6;9811:15;9804:29;9619:221;:::o;9846:366::-;9988:3;10009:67;10073:2;10068:3;10009:67;:::i;:::-;10002:74;;10085:93;10174:3;10085:93;:::i;:::-;10203:2;10198:3;10194:12;10187:19;;9846:366;;;:::o;10218:419::-;10384:4;10422:2;10411:9;10407:18;10399:26;;10471:9;10465:4;10461:20;10457:1;10446:9;10442:17;10435:47;10499:131;10625:4;10499:131;:::i;:::-;10491:139;;10218:419;;;:::o;10643:224::-;10783:34;10779:1;10771:6;10767:14;10760:58;10852:7;10847:2;10839:6;10835:15;10828:32;10643:224;:::o;10873:366::-;11015:3;11036:67;11100:2;11095:3;11036:67;:::i;:::-;11029:74;;11112:93;11201:3;11112:93;:::i;:::-;11230:2;11225:3;11221:12;11214:19;;10873:366;;;:::o;11245:419::-;11411:4;11449:2;11438:9;11434:18;11426:26;;11498:9;11492:4;11488:20;11484:1;11473:9;11469:17;11462:47;11526:131;11652:4;11526:131;:::i;:::-;11518:139;;11245:419;;;:::o;11670:222::-;11810:34;11806:1;11798:6;11794:14;11787:58;11879:5;11874:2;11866:6;11862:15;11855:30;11670:222;:::o;11898:366::-;12040:3;12061:67;12125:2;12120:3;12061:67;:::i;:::-;12054:74;;12137:93;12226:3;12137:93;:::i;:::-;12255:2;12250:3;12246:12;12239:19;;11898:366;;;:::o;12270:419::-;12436:4;12474:2;12463:9;12459:18;12451:26;;12523:9;12517:4;12513:20;12509:1;12498:9;12494:17;12487:47;12551:131;12677:4;12551:131;:::i;:::-;12543:139;;12270:419;;;:::o;12695:172::-;12835:24;12831:1;12823:6;12819:14;12812:48;12695:172;:::o;12873:366::-;13015:3;13036:67;13100:2;13095:3;13036:67;:::i;:::-;13029:74;;13112:93;13201:3;13112:93;:::i;:::-;13230:2;13225:3;13221:12;13214:19;;12873:366;;;:::o;13245:419::-;13411:4;13449:2;13438:9;13434:18;13426:26;;13498:9;13492:4;13488:20;13484:1;13473:9;13469:17;13462:47;13526:131;13652:4;13526:131;:::i;:::-;13518:139;;13245:419;;;:::o;13670:180::-;13718:77;13715:1;13708:88;13815:4;13812:1;13805:15;13839:4;13836:1;13829:15;13856:191;13896:4;13916:20;13934:1;13916:20;:::i;:::-;13911:25;;13950:20;13968:1;13950:20;:::i;:::-;13945:25;;13989:1;13986;13983:8;13980:34;;;13994:18;;:::i;:::-;13980:34;14039:1;14036;14032:9;14024:17;;13856:191;;;;:::o;14053:172::-;14193:24;14189:1;14181:6;14177:14;14170:48;14053:172;:::o;14231:366::-;14373:3;14394:67;14458:2;14453:3;14394:67;:::i;:::-;14387:74;;14470:93;14559:3;14470:93;:::i;:::-;14588:2;14583:3;14579:12;14572:19;;14231:366;;;:::o;14603:419::-;14769:4;14807:2;14796:9;14792:18;14784:26;;14856:9;14850:4;14846:20;14842:1;14831:9;14827:17;14820:47;14884:131;15010:4;14884:131;:::i;:::-;14876:139;;14603:419;;;:::o;15028:305::-;15068:3;15087:20;15105:1;15087:20;:::i;:::-;15082:25;;15121:20;15139:1;15121:20;:::i;:::-;15116:25;;15275:1;15207:66;15203:74;15200:1;15197:81;15194:107;;;15281:18;;:::i;:::-;15194:107;15325:1;15322;15318:9;15311:16;;15028:305;;;;:::o

Swarm Source

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