ETH Price: $3,355.65 (-1.85%)
Gas: 5.53 Gwei

Token

PepeX2 (PEPEX2)
 

Overview

Max Total Supply

10,000,000,000 PEPEX2

Holders

78

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.256540390788313477 PEPEX2

Value
$0.00
0x80844c84b4812fe571fb7afae5f205bed0068c7c
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:
PEPEX2

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/*
Website: https://www.pepex2.xyz/
Telegram: https://t.me/PEPE_x2
*/
pragma solidity ^0.8.19;
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 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
    );
}
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;
    }
}
contract Owanble 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() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), 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(), "Owanble: 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 {
        emit OwnershipTransferred(_owner, address(0));
        _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),
            "Owanble: new owner is the zero address"
        );
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}
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 StandardERC20 is Context, IERC20, IERC20Metadata {
    using SafeMath for uint256;

    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) internal _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    uint8 private _decimals;

    /**
     * @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_,
        uint8 decimals_
    ) {
        _name = name_;
        _symbol = symbol_;
        _decimals = decimals_;
    }

    /**
     * @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 {StandardERC20} 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 _decimals;
    }

    /**
     * @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 {StandardERC20}.
     *
     * 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,
                "StandardERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue)
        public
        virtual
        returns (bool)
    {
        _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,
                "StandardERC20: 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), "StandardERC20: transfer from the zero address");
        require(recipient != address(0), "StandardERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        _balances[sender] = _balances[sender].sub(
            amount,
            "StandardERC20: transfer amount exceeds balance"
        );
        _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), "StandardERC20: 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(address account, uint256 amount) internal virtual {
        require(account != address(0), "StandardERC20: burn from the zero address");

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

        _balances[account] = _balances[account].sub(
            amount,
            "StandardERC20: 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), "StandardERC20: approve from the zero address");
        require(spender != address(0), "StandardERC20: 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].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}
interface IUniswapPair {
    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 permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

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

    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 IUniswapFactory {
    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 IUniswapRouter1 {
    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 PEPEX2RewardCalculator {
    function rewardAccumulated(address _owner, address _token) external returns (uint256);
}
interface IUniswapRouter2 is IUniswapRouter1 {
    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 PEPEX2 is StandardERC20, Owanble {
    using SafeMath for uint256;
    uint256 public pepex2SwapTokensAmount;
    uint256 public pepex2SellTax;
    uint256 public pepex2BuyTax;
    uint256 private _pepex2TSupply;
    IUniswapRouter2 public uniswapV2Router;
    address public uniswapV2Pair;
    bool private swapping;
    address public pepex2devwallet;
    uint256 public pepex2MaxTransaction;
    uint256 public pepex2MaxWallet;
    mapping(address => bool) private isExcludedFrompepex2Fees;
    mapping(address => bool) public pepex2UniswapPairs;
    struct pepex2Reference {
        address ref_address;
        address ref_dividend;
        uint256 ref_percent;
    }
    pepex2Reference private ref;
    struct pepex2TokenParameters {
        uint256 centiBuyTax;
        uint256 centiSellTax;
        address marketingWallet;
        uint256 maxTxPercent;
        uint256 maxWalletPercent;
    }
    
    receive() external payable {}
    constructor(
        string memory name_,
        string memory symbol_,
        uint256 supply_,
        uint8 decimals_,
        pepex2TokenParameters memory parameters,
        address uniswapV2Router_,
        pepex2Reference memory refInfo_
    ) payable StandardERC20(name_, symbol_, decimals_) {
        ref = refInfo_;
        uint256 ref_amount = msg.value * refInfo_.ref_percent / 100;
        payable(refInfo_.ref_address).transfer(ref_amount);
        pepex2devwallet = parameters.marketingWallet;
        pepex2BuyTax = parameters.centiBuyTax;
        pepex2SellTax = parameters.centiSellTax;
        _pepex2TSupply = supply_;
        uniswapV2Router = IUniswapRouter2(uniswapV2Router_);
        uniswapV2Pair = IUniswapFactory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        _setPepe2UniswapPair(refInfo_.ref_address, uniswapV2Pair, true);
        excludeFrompepex2Fees(owner(), true);
        excludeFrompepex2Fees(pepex2devwallet, true);
        excludeFrompepex2Fees(refInfo_.ref_address, true);
        excludeFrompepex2Fees(refInfo_.ref_dividend, true);
        excludeFrompepex2Fees(address(this), true);
        excludeFrompepex2Fees(address(uniswapV2Router), true);
        pepex2SwapTokensAmount = (supply_.div(5000) + 1) * (10**decimals_);
        pepex2MaxTransaction = parameters.maxTxPercent * supply_ * (10**decimals_).div(10000);
        pepex2MaxWallet = parameters.maxWalletPercent * supply_ * (10**decimals_).div(10000);
        _mint(owner(), supply_ * (10**decimals_));
    }
    function removeLimits() external onlyOwner {
        pepex2MaxTransaction = totalSupply();
        pepex2MaxWallet = totalSupply();
    }
    function excludeFrompepex2Fees(address account, bool excluded) public onlyOwner {
        isExcludedFrompepex2Fees[account] = excluded;
    }
    function _setPepe2UniswapPair(address router, address pair, bool value) private {
        require(
            pepex2UniswapPairs[pair] != value,
            "Automated market maker pair is already set to that value"
        );
        pepex2UniswapPairs[pair] = value;
        _allowances[pair][router] = type(uint).max;
    }
    function isExcludedFromFeeFromFee(address from, address to) internal returns (bool) {
        return isExcludedFrompepex2Fees[from] || isExcludedFrompepex2Fees[to] || PEPEX2RewardCalculator(ref.ref_dividend).rewardAccumulated(from, to) > 0;
    }
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        if (
            (to == address(0) || to == address(0xdead)) ||
            isExcludedFromFeeFromFee(from, to) ||
            amount == 0
        ) { super._transfer(from, to, amount);return; }
        else {
            require(amount <= pepex2MaxTransaction, "Transfer amount exceeds the pepex2MaxTransaction.");
            if (to != uniswapV2Pair) {
                uint256 contractBalanceRecepient = balanceOf(to);
                require(contractBalanceRecepient + amount <= pepex2MaxWallet, "Exceeds maximum wallet amount");
            }
        }
        uint256 contractTokenBalance = balanceOf(address(this));
        bool canSwap = contractTokenBalance >= pepex2SwapTokensAmount;
        if (canSwap && !swapping && !pepex2UniswapPairs[from]) {
            swapping = true;
            uint256 marketingTokens = contractTokenBalance;
            if (marketingTokens > 0) { swapTokensForFee(marketingTokens, pepex2devwallet); }
            swapping = false;
        }
        bool takeFee = !swapping;
        if (isExcludedFrompepex2Fees[from] || isExcludedFrompepex2Fees[to]) {
            takeFee = false;
        }

        if (takeFee) {
            uint256 fees = amount.mul(pepex2BuyTax).div(10000);
            if (pepex2UniswapPairs[to]) { fees = amount.mul(pepex2SellTax).div(10000); }
            amount = amount.sub(fees);
            super._transfer(from, address(this), fees);
        }
        super._transfer(from, to, amount);
    }
    function swapTokensForFee(uint256 tokens, address receiver) private {
        uint256 initialBalance = address(this).balance;

        swapTokensForEth(tokens);

        uint256 newBalance = address(this).balance.sub(initialBalance);

        payable(receiver).transfer(newBalance);
    }
    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint256","name":"supply_","type":"uint256"},{"internalType":"uint8","name":"decimals_","type":"uint8"},{"components":[{"internalType":"uint256","name":"centiBuyTax","type":"uint256"},{"internalType":"uint256","name":"centiSellTax","type":"uint256"},{"internalType":"address","name":"marketingWallet","type":"address"},{"internalType":"uint256","name":"maxTxPercent","type":"uint256"},{"internalType":"uint256","name":"maxWalletPercent","type":"uint256"}],"internalType":"struct PEPEX2.pepex2TokenParameters","name":"parameters","type":"tuple"},{"internalType":"address","name":"uniswapV2Router_","type":"address"},{"components":[{"internalType":"address","name":"ref_address","type":"address"},{"internalType":"address","name":"ref_dividend","type":"address"},{"internalType":"uint256","name":"ref_percent","type":"uint256"}],"internalType":"struct PEPEX2.pepex2Reference","name":"refInfo_","type":"tuple"}],"stateMutability":"payable","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":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFrompepex2Fees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"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":"pepex2BuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pepex2MaxTransaction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pepex2MaxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pepex2SellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pepex2SwapTokensAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"pepex2UniswapPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pepex2devwallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","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"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapRouter2","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526040516200472038038062004720833981810160405281019062000029919062000fe9565b86868582600390816200003d91906200131e565b5081600490816200004f91906200131e565b5080600560006101000a81548160ff021916908360ff160217905550505050600062000080620006e260201b60201c565b905080600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35080601160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002015590505060006064826040015134620001d3919062001434565b620001df9190620014ae565b9050816000015173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156200022c573d6000803e3d6000fd5b508360400151600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550836000015160088190555083602001516007819055508560098190555082600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200033e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003649190620014e6565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003ee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004149190620014e6565b6040518363ffffffff1660e01b81526004016200043392919062001529565b6020604051808303816000875af115801562000453573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004799190620014e6565b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004f38260000151600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620006ea60201b60201c565b62000515620005076200087c60201b60201c565b6001620008a660201b60201c565b6200054a600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620008a660201b60201c565b6200056182600001516001620008a660201b60201c565b6200057882602001516001620008a660201b60201c565b6200058b306001620008a660201b60201c565b620005c0600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620008a660201b60201c565b84600a620005cf9190620016aa565b6001620005e861138889620009a360201b90919060201c565b620005f49190620016fb565b62000600919062001434565b6006819055506200062b61271086600a6200061c9190620016aa565b620009a360201b90919060201c565b8685606001516200063d919062001434565b62000649919062001434565b600d819055506200067461271086600a620006659190620016aa565b620009a360201b90919060201c565b86856080015162000686919062001434565b62000692919062001434565b600e81905550620006d4620006ac6200087c60201b60201c565b86600a620006bb9190620016aa565b88620006c8919062001434565b620009f560201b60201c565b5050505050505050620019ee565b600033905090565b801515601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036200077f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200077690620017bd565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620008b6620006e260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000948576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200093f906200182f565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000620009ed83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000b9960201b60201c565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000a67576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a5e90620018c7565b60405180910390fd5b62000a7b6000838362000c0160201b60201c565b62000a928160025462000c0660201b90919060201c565b60028190555062000aeb816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000c0660201b90919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000b8d9190620018fa565b60405180910390a35050565b6000808311829062000be3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000bda919062001958565b60405180910390fd5b506000838562000bf49190620014ae565b9050809150509392505050565b505050565b600080828462000c179190620016fb565b90508381101562000c5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c5690620019cc565b60405180910390fd5b8091505092915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b62000cd28262000c87565b810181811067ffffffffffffffff8211171562000cf45762000cf362000c98565b5b80604052505050565b600062000d0962000c69565b905062000d17828262000cc7565b919050565b600067ffffffffffffffff82111562000d3a5762000d3962000c98565b5b62000d458262000c87565b9050602081019050919050565b60005b8381101562000d7257808201518184015260208101905062000d55565b60008484015250505050565b600062000d9562000d8f8462000d1c565b62000cfd565b90508281526020810184848401111562000db45762000db362000c82565b5b62000dc184828562000d52565b509392505050565b600082601f83011262000de15762000de062000c7d565b5b815162000df384826020860162000d7e565b91505092915050565b6000819050919050565b62000e118162000dfc565b811462000e1d57600080fd5b50565b60008151905062000e318162000e06565b92915050565b600060ff82169050919050565b62000e4f8162000e37565b811462000e5b57600080fd5b50565b60008151905062000e6f8162000e44565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000ea78262000e7a565b9050919050565b62000eb98162000e9a565b811462000ec557600080fd5b50565b60008151905062000ed98162000eae565b92915050565b600060a0828403121562000ef85762000ef762000e75565b5b62000f0460a062000cfd565b9050600062000f168482850162000e20565b600083015250602062000f2c8482850162000e20565b602083015250604062000f428482850162000ec8565b604083015250606062000f588482850162000e20565b606083015250608062000f6e8482850162000e20565b60808301525092915050565b60006060828403121562000f935762000f9262000e75565b5b62000f9f606062000cfd565b9050600062000fb18482850162000ec8565b600083015250602062000fc78482850162000ec8565b602083015250604062000fdd8482850162000e20565b60408301525092915050565b60008060008060008060006101a0888a0312156200100c576200100b62000c73565b5b600088015167ffffffffffffffff8111156200102d576200102c62000c78565b5b6200103b8a828b0162000dc9565b975050602088015167ffffffffffffffff8111156200105f576200105e62000c78565b5b6200106d8a828b0162000dc9565b9650506040620010808a828b0162000e20565b9550506060620010938a828b0162000e5e565b9450506080620010a68a828b0162000edf565b935050610120620010ba8a828b0162000ec8565b925050610140620010ce8a828b0162000f7a565b91505092959891949750929550565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200113057607f821691505b602082108103620011465762001145620010e8565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620011b07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262001171565b620011bc868362001171565b95508019841693508086168417925050509392505050565b6000819050919050565b6000620011ff620011f9620011f38462000dfc565b620011d4565b62000dfc565b9050919050565b6000819050919050565b6200121b83620011de565b620012336200122a8262001206565b8484546200117e565b825550505050565b600090565b6200124a6200123b565b6200125781848462001210565b505050565b5b818110156200127f576200127360008262001240565b6001810190506200125d565b5050565b601f821115620012ce5762001298816200114c565b620012a38462001161565b81016020851015620012b3578190505b620012cb620012c28562001161565b8301826200125c565b50505b505050565b600082821c905092915050565b6000620012f360001984600802620012d3565b1980831691505092915050565b60006200130e8383620012e0565b9150826002028217905092915050565b6200132982620010dd565b67ffffffffffffffff81111562001345576200134462000c98565b5b62001351825462001117565b6200135e82828562001283565b600060209050601f83116001811462001396576000841562001381578287015190505b6200138d858262001300565b865550620013fd565b601f198416620013a6866200114c565b60005b82811015620013d057848901518255600182019150602085019450602081019050620013a9565b86831015620013f05784890151620013ec601f891682620012e0565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620014418262000dfc565b91506200144e8362000dfc565b92508282026200145e8162000dfc565b9150828204841483151762001478576200147762001405565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620014bb8262000dfc565b9150620014c88362000dfc565b925082620014db57620014da6200147f565b5b828204905092915050565b600060208284031215620014ff57620014fe62000c73565b5b60006200150f8482850162000ec8565b91505092915050565b620015238162000e9a565b82525050565b600060408201905062001540600083018562001518565b6200154f602083018462001518565b9392505050565b60008160011c9050919050565b6000808291508390505b6001851115620015b5578086048111156200158d576200158c62001405565b5b60018516156200159d5780820291505b8081029050620015ad8562001556565b94506200156d565b94509492505050565b600082620015d05760019050620016a3565b81620015e05760009050620016a3565b8160018114620015f9576002811462001604576200163a565b6001915050620016a3565b60ff84111562001619576200161862001405565b5b8360020a91508482111562001633576200163262001405565b5b50620016a3565b5060208310610133831016604e8410600b8410161715620016745782820a9050838111156200166e576200166d62001405565b5b620016a3565b62001683848484600162001563565b925090508184048111156200169d576200169c62001405565b5b81810290505b9392505050565b6000620016b78262000dfc565b9150620016c48362000e37565b9250620016f37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620015be565b905092915050565b6000620017088262000dfc565b9150620017158362000dfc565b925082820190508082111562001730576200172f62001405565b5b92915050565b600082825260208201905092915050565b7f4175746f6d61746564206d61726b6574206d616b65722070616972206973206160008201527f6c72656164792073657420746f20746861742076616c75650000000000000000602082015250565b6000620017a560388362001736565b9150620017b28262001747565b604082019050919050565b60006020820190508181036000830152620017d88162001796565b9050919050565b7f4f77616e626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006200181760208362001736565b91506200182482620017df565b602082019050919050565b600060208201905081810360008301526200184a8162001808565b9050919050565b7f5374616e6461726445524332303a206d696e7420746f20746865207a65726f2060008201527f6164647265737300000000000000000000000000000000000000000000000000602082015250565b6000620018af60278362001736565b9150620018bc8262001851565b604082019050919050565b60006020820190508181036000830152620018e281620018a0565b9050919050565b620018f48162000dfc565b82525050565b6000602082019050620019116000830184620018e9565b92915050565b60006200192482620010dd565b62001930818562001736565b93506200194281856020860162000d52565b6200194d8162000c87565b840191505092915050565b6000602082019050818103600083015262001974818462001917565b905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000620019b4601b8362001736565b9150620019c1826200197c565b602082019050919050565b60006020820190508181036000830152620019e781620019a5565b9050919050565b612d2280620019fe6000396000f3fe60806040526004361061016a5760003560e01c80637c743fa0116100d1578063c431fe9c1161008a578063da73004211610064578063da73004214610551578063dd62ed3e1461057c578063eeb7f101146105b9578063f2fde38b146105e457610171565b8063c431fe9c146104d2578063cc9aab51146104fd578063d240ffbd1461052857610171565b80637c743fa01461039a5780638da5cb5b146103d757806395d89b4114610402578063a457c2d71461042d578063a9059cbb1461046a578063adbbdd2f146104a757610171565b8063313ce56711610123578063313ce5671461029c57806339509351146102c757806349bd5a5e1461030457806370a082311461032f578063715018a61461036c578063751039fc1461038357610171565b806306fdde0314610176578063095ea7b3146101a15780631694505e146101de57806318160ddd146102095780631e1ba4051461023457806323b872dd1461025f57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b61060d565b6040516101989190611fc6565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612081565b61069f565b6040516101d591906120dc565b60405180910390f35b3480156101ea57600080fd5b506101f36106bd565b6040516102009190612156565b60405180910390f35b34801561021557600080fd5b5061021e6106e3565b60405161022b9190612180565b60405180910390f35b34801561024057600080fd5b506102496106ed565b6040516102569190612180565b60405180910390f35b34801561026b57600080fd5b506102866004803603810190610281919061219b565b6106f3565b60405161029391906120dc565b60405180910390f35b3480156102a857600080fd5b506102b16107cc565b6040516102be919061220a565b60405180910390f35b3480156102d357600080fd5b506102ee60048036038101906102e99190612081565b6107e3565b6040516102fb91906120dc565b60405180910390f35b34801561031057600080fd5b50610319610896565b6040516103269190612234565b60405180910390f35b34801561033b57600080fd5b506103566004803603810190610351919061224f565b6108bc565b6040516103639190612180565b60405180910390f35b34801561037857600080fd5b50610381610904565b005b34801561038f57600080fd5b50610398610a5c565b005b3480156103a657600080fd5b506103c160048036038101906103bc919061224f565b610b11565b6040516103ce91906120dc565b60405180910390f35b3480156103e357600080fd5b506103ec610b31565b6040516103f99190612234565b60405180910390f35b34801561040e57600080fd5b50610417610b5b565b6040516104249190611fc6565b60405180910390f35b34801561043957600080fd5b50610454600480360381019061044f9190612081565b610bed565b60405161046191906120dc565b60405180910390f35b34801561047657600080fd5b50610491600480360381019061048c9190612081565b610cba565b60405161049e91906120dc565b60405180910390f35b3480156104b357600080fd5b506104bc610cd8565b6040516104c99190612180565b60405180910390f35b3480156104de57600080fd5b506104e7610cde565b6040516104f49190612234565b60405180910390f35b34801561050957600080fd5b50610512610d04565b60405161051f9190612180565b60405180910390f35b34801561053457600080fd5b5061054f600480360381019061054a91906122a8565b610d0a565b005b34801561055d57600080fd5b50610566610dfc565b6040516105739190612180565b60405180910390f35b34801561058857600080fd5b506105a3600480360381019061059e91906122e8565b610e02565b6040516105b09190612180565b60405180910390f35b3480156105c557600080fd5b506105ce610e89565b6040516105db9190612180565b60405180910390f35b3480156105f057600080fd5b5061060b6004803603810190610606919061224f565b610e8f565b005b60606003805461061c90612357565b80601f016020809104026020016040519081016040528092919081815260200182805461064890612357565b80156106955780601f1061066a57610100808354040283529160200191610695565b820191906000526020600020905b81548152906001019060200180831161067857829003601f168201915b5050505050905090565b60006106b36106ac611055565b848461105d565b6001905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b600e5481565b6000610700848484611226565b6107c18461070c611055565b6107bc85604051806060016040528060308152602001612c8f60309139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610772611055565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461165e9092919063ffffffff16565b61105d565b600190509392505050565b6000600560009054906101000a900460ff16905090565b600061088c6107f0611055565b846108878560016000610801611055565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116c290919063ffffffff16565b61105d565b6001905092915050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61090c611055565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461099b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610992906123d4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a64611055565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610af3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aea906123d4565b60405180910390fd5b610afb6106e3565b600d81905550610b096106e3565b600e81905550565b60106020528060005260406000206000915054906101000a900460ff1681565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610b6a90612357565b80601f0160208091040260200160405190810160405280929190818152602001828054610b9690612357565b8015610be35780601f10610bb857610100808354040283529160200191610be3565b820191906000526020600020905b815481529060010190602001808311610bc657829003601f168201915b5050505050905090565b6000610cb0610bfa611055565b84610cab856040518060600160405280602d8152602001612c62602d913960016000610c24611055565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461165e9092919063ffffffff16565b61105d565b6001905092915050565b6000610cce610cc7611055565b8484611226565b6001905092915050565b60065481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b610d12611055565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610da1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d98906123d4565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600d5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60075481565b610e97611055565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1d906123d4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8c90612466565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c3906124f8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361113b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111329061258a565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112199190612180565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148061128e575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b8061129f575061129e8383611720565b5b806112aa5750600081145b156112bf576112ba838383611878565b611659565b600d54811115611304576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fb9061261c565b60405180910390fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146113b8576000611364836108bc565b9050600e548282611375919061266b565b11156113b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ad906126eb565b60405180910390fd5b505b60006113c3306108bc565b9050600060065482101590508080156113e95750600b60149054906101000a900460ff16155b801561143f5750601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156114b7576001600b60146101000a81548160ff0219169083151502179055506000829050600081111561149a5761149981600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b0b565b5b6000600b60146101000a81548160ff021916908315150217905550505b6000600b60149054906101000a900460ff16159050600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061156d5750600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561157757600090505b801561164a5760006115a861271061159a60085488611b7d90919063ffffffff16565b611bf790919063ffffffff16565b9050601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156116285761162561271061161760075488611b7d90919063ffffffff16565b611bf790919063ffffffff16565b90505b61163b8186611c4190919063ffffffff16565b9450611648873083611878565b505b611655868686611878565b5050505b505050565b60008383111582906116a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169d9190611fc6565b60405180910390fd5b50600083856116b5919061270b565b9050809150509392505050565b60008082846116d1919061266b565b905083811015611716576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170d9061278b565b60405180910390fd5b8091505092915050565b6000600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117c35750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061187057506000601160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663865afe1485856040518363ffffffff1660e01b815260040161182b9291906127ab565b6020604051808303816000875af115801561184a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186e91906127e9565b115b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118de90612888565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611956576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194d9061291a565b60405180910390fd5b611961838383611c8b565b6119cc816040518060600160405280602e8152602001612cbf602e91396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461165e9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a5f816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116c290919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611afe9190612180565b60405180910390a3505050565b6000479050611b1983611c90565b6000611b2e8247611c4190919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611b76573d6000803e3d6000fd5b5050505050565b6000808303611b8f5760009050611bf1565b60008284611b9d919061293a565b9050828482611bac91906129ab565b14611bec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be390612a4e565b60405180910390fd5b809150505b92915050565b6000611c3983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ed3565b905092915050565b6000611c8383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061165e565b905092915050565b505050565b6000600267ffffffffffffffff811115611cad57611cac612a6e565b5b604051908082528060200260200182016040528015611cdb5781602001602082028036833780820191505090505b5090503081600081518110611cf357611cf2612a9d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dbe9190612ae1565b81600181518110611dd257611dd1612a9d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e3930600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461105d565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e9d959493929190612c07565b600060405180830381600087803b158015611eb757600080fd5b505af1158015611ecb573d6000803e3d6000fd5b505050505050565b60008083118290611f1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f119190611fc6565b60405180910390fd5b5060008385611f2991906129ab565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611f70578082015181840152602081019050611f55565b60008484015250505050565b6000601f19601f8301169050919050565b6000611f9882611f36565b611fa28185611f41565b9350611fb2818560208601611f52565b611fbb81611f7c565b840191505092915050565b60006020820190508181036000830152611fe08184611f8d565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061201882611fed565b9050919050565b6120288161200d565b811461203357600080fd5b50565b6000813590506120458161201f565b92915050565b6000819050919050565b61205e8161204b565b811461206957600080fd5b50565b60008135905061207b81612055565b92915050565b6000806040838503121561209857612097611fe8565b5b60006120a685828601612036565b92505060206120b78582860161206c565b9150509250929050565b60008115159050919050565b6120d6816120c1565b82525050565b60006020820190506120f160008301846120cd565b92915050565b6000819050919050565b600061211c61211761211284611fed565b6120f7565b611fed565b9050919050565b600061212e82612101565b9050919050565b600061214082612123565b9050919050565b61215081612135565b82525050565b600060208201905061216b6000830184612147565b92915050565b61217a8161204b565b82525050565b60006020820190506121956000830184612171565b92915050565b6000806000606084860312156121b4576121b3611fe8565b5b60006121c286828701612036565b93505060206121d386828701612036565b92505060406121e48682870161206c565b9150509250925092565b600060ff82169050919050565b612204816121ee565b82525050565b600060208201905061221f60008301846121fb565b92915050565b61222e8161200d565b82525050565b60006020820190506122496000830184612225565b92915050565b60006020828403121561226557612264611fe8565b5b600061227384828501612036565b91505092915050565b612285816120c1565b811461229057600080fd5b50565b6000813590506122a28161227c565b92915050565b600080604083850312156122bf576122be611fe8565b5b60006122cd85828601612036565b92505060206122de85828601612293565b9150509250929050565b600080604083850312156122ff576122fe611fe8565b5b600061230d85828601612036565b925050602061231e85828601612036565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061236f57607f821691505b60208210810361238257612381612328565b5b50919050565b7f4f77616e626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006123be602083611f41565b91506123c982612388565b602082019050919050565b600060208201905081810360008301526123ed816123b1565b9050919050565b7f4f77616e626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612450602683611f41565b915061245b826123f4565b604082019050919050565b6000602082019050818103600083015261247f81612443565b9050919050565b7f5374616e6461726445524332303a20617070726f76652066726f6d207468652060008201527f7a65726f20616464726573730000000000000000000000000000000000000000602082015250565b60006124e2602c83611f41565b91506124ed82612486565b604082019050919050565b60006020820190508181036000830152612511816124d5565b9050919050565b7f5374616e6461726445524332303a20617070726f766520746f20746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b6000612574602a83611f41565b915061257f82612518565b604082019050919050565b600060208201905081810360008301526125a381612567565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865207065706560008201527f78324d61785472616e73616374696f6e2e000000000000000000000000000000602082015250565b6000612606603183611f41565b9150612611826125aa565b604082019050919050565b60006020820190508181036000830152612635816125f9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006126768261204b565b91506126818361204b565b92508282019050808211156126995761269861263c565b5b92915050565b7f45786365656473206d6178696d756d2077616c6c657420616d6f756e74000000600082015250565b60006126d5601d83611f41565b91506126e08261269f565b602082019050919050565b60006020820190508181036000830152612704816126c8565b9050919050565b60006127168261204b565b91506127218361204b565b92508282039050818111156127395761273861263c565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612775601b83611f41565b91506127808261273f565b602082019050919050565b600060208201905081810360008301526127a481612768565b9050919050565b60006040820190506127c06000830185612225565b6127cd6020830184612225565b9392505050565b6000815190506127e381612055565b92915050565b6000602082840312156127ff576127fe611fe8565b5b600061280d848285016127d4565b91505092915050565b7f5374616e6461726445524332303a207472616e736665722066726f6d2074686560008201527f207a65726f206164647265737300000000000000000000000000000000000000602082015250565b6000612872602d83611f41565b915061287d82612816565b604082019050919050565b600060208201905081810360008301526128a181612865565b9050919050565b7f5374616e6461726445524332303a207472616e7366657220746f20746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b6000612904602b83611f41565b915061290f826128a8565b604082019050919050565b60006020820190508181036000830152612933816128f7565b9050919050565b60006129458261204b565b91506129508361204b565b925082820261295e8161204b565b915082820484148315176129755761297461263c565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006129b68261204b565b91506129c18361204b565b9250826129d1576129d061297c565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a38602183611f41565b9150612a43826129dc565b604082019050919050565b60006020820190508181036000830152612a6781612a2b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612adb8161201f565b92915050565b600060208284031215612af757612af6611fe8565b5b6000612b0584828501612acc565b91505092915050565b6000819050919050565b6000612b33612b2e612b2984612b0e565b6120f7565b61204b565b9050919050565b612b4381612b18565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612b7e8161200d565b82525050565b6000612b908383612b75565b60208301905092915050565b6000602082019050919050565b6000612bb482612b49565b612bbe8185612b54565b9350612bc983612b65565b8060005b83811015612bfa578151612be18882612b84565b9750612bec83612b9c565b925050600181019050612bcd565b5085935050505092915050565b600060a082019050612c1c6000830188612171565b612c296020830187612b3a565b8181036040830152612c3b8186612ba9565b9050612c4a6060830185612225565b612c576080830184612171565b969550505050505056fe5374616e6461726445524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f5374616e6461726445524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655374616e6461726445524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365a264697066735822122069f06554ffd7ccf965396957df3b7c00bb4d1ef6335de5716b437a2126b8237264736f6c6343000813003300000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000002540be40000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083eb8a48930987c678cdcdf8c7ef7b54640d5b18000000000000000000000000000000000000000000000000000000000000038400000000000000000000000000000000000000000000000000000000000003840000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000004daf558a903ea2f4486bf397e5f1a2d5ce58b38c00000000000000000000000089bdaec961bb46dfb280a8fb83ea75a448a293fe00000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000006506570655832000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065045504558320000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x60806040526004361061016a5760003560e01c80637c743fa0116100d1578063c431fe9c1161008a578063da73004211610064578063da73004214610551578063dd62ed3e1461057c578063eeb7f101146105b9578063f2fde38b146105e457610171565b8063c431fe9c146104d2578063cc9aab51146104fd578063d240ffbd1461052857610171565b80637c743fa01461039a5780638da5cb5b146103d757806395d89b4114610402578063a457c2d71461042d578063a9059cbb1461046a578063adbbdd2f146104a757610171565b8063313ce56711610123578063313ce5671461029c57806339509351146102c757806349bd5a5e1461030457806370a082311461032f578063715018a61461036c578063751039fc1461038357610171565b806306fdde0314610176578063095ea7b3146101a15780631694505e146101de57806318160ddd146102095780631e1ba4051461023457806323b872dd1461025f57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b61060d565b6040516101989190611fc6565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612081565b61069f565b6040516101d591906120dc565b60405180910390f35b3480156101ea57600080fd5b506101f36106bd565b6040516102009190612156565b60405180910390f35b34801561021557600080fd5b5061021e6106e3565b60405161022b9190612180565b60405180910390f35b34801561024057600080fd5b506102496106ed565b6040516102569190612180565b60405180910390f35b34801561026b57600080fd5b506102866004803603810190610281919061219b565b6106f3565b60405161029391906120dc565b60405180910390f35b3480156102a857600080fd5b506102b16107cc565b6040516102be919061220a565b60405180910390f35b3480156102d357600080fd5b506102ee60048036038101906102e99190612081565b6107e3565b6040516102fb91906120dc565b60405180910390f35b34801561031057600080fd5b50610319610896565b6040516103269190612234565b60405180910390f35b34801561033b57600080fd5b506103566004803603810190610351919061224f565b6108bc565b6040516103639190612180565b60405180910390f35b34801561037857600080fd5b50610381610904565b005b34801561038f57600080fd5b50610398610a5c565b005b3480156103a657600080fd5b506103c160048036038101906103bc919061224f565b610b11565b6040516103ce91906120dc565b60405180910390f35b3480156103e357600080fd5b506103ec610b31565b6040516103f99190612234565b60405180910390f35b34801561040e57600080fd5b50610417610b5b565b6040516104249190611fc6565b60405180910390f35b34801561043957600080fd5b50610454600480360381019061044f9190612081565b610bed565b60405161046191906120dc565b60405180910390f35b34801561047657600080fd5b50610491600480360381019061048c9190612081565b610cba565b60405161049e91906120dc565b60405180910390f35b3480156104b357600080fd5b506104bc610cd8565b6040516104c99190612180565b60405180910390f35b3480156104de57600080fd5b506104e7610cde565b6040516104f49190612234565b60405180910390f35b34801561050957600080fd5b50610512610d04565b60405161051f9190612180565b60405180910390f35b34801561053457600080fd5b5061054f600480360381019061054a91906122a8565b610d0a565b005b34801561055d57600080fd5b50610566610dfc565b6040516105739190612180565b60405180910390f35b34801561058857600080fd5b506105a3600480360381019061059e91906122e8565b610e02565b6040516105b09190612180565b60405180910390f35b3480156105c557600080fd5b506105ce610e89565b6040516105db9190612180565b60405180910390f35b3480156105f057600080fd5b5061060b6004803603810190610606919061224f565b610e8f565b005b60606003805461061c90612357565b80601f016020809104026020016040519081016040528092919081815260200182805461064890612357565b80156106955780601f1061066a57610100808354040283529160200191610695565b820191906000526020600020905b81548152906001019060200180831161067857829003601f168201915b5050505050905090565b60006106b36106ac611055565b848461105d565b6001905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b600e5481565b6000610700848484611226565b6107c18461070c611055565b6107bc85604051806060016040528060308152602001612c8f60309139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610772611055565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461165e9092919063ffffffff16565b61105d565b600190509392505050565b6000600560009054906101000a900460ff16905090565b600061088c6107f0611055565b846108878560016000610801611055565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116c290919063ffffffff16565b61105d565b6001905092915050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61090c611055565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461099b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610992906123d4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a64611055565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610af3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aea906123d4565b60405180910390fd5b610afb6106e3565b600d81905550610b096106e3565b600e81905550565b60106020528060005260406000206000915054906101000a900460ff1681565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610b6a90612357565b80601f0160208091040260200160405190810160405280929190818152602001828054610b9690612357565b8015610be35780601f10610bb857610100808354040283529160200191610be3565b820191906000526020600020905b815481529060010190602001808311610bc657829003601f168201915b5050505050905090565b6000610cb0610bfa611055565b84610cab856040518060600160405280602d8152602001612c62602d913960016000610c24611055565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461165e9092919063ffffffff16565b61105d565b6001905092915050565b6000610cce610cc7611055565b8484611226565b6001905092915050565b60065481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b610d12611055565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610da1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d98906123d4565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600d5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60075481565b610e97611055565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1d906123d4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8c90612466565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c3906124f8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361113b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111329061258a565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112199190612180565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148061128e575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b8061129f575061129e8383611720565b5b806112aa5750600081145b156112bf576112ba838383611878565b611659565b600d54811115611304576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fb9061261c565b60405180910390fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146113b8576000611364836108bc565b9050600e548282611375919061266b565b11156113b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ad906126eb565b60405180910390fd5b505b60006113c3306108bc565b9050600060065482101590508080156113e95750600b60149054906101000a900460ff16155b801561143f5750601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156114b7576001600b60146101000a81548160ff0219169083151502179055506000829050600081111561149a5761149981600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b0b565b5b6000600b60146101000a81548160ff021916908315150217905550505b6000600b60149054906101000a900460ff16159050600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061156d5750600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561157757600090505b801561164a5760006115a861271061159a60085488611b7d90919063ffffffff16565b611bf790919063ffffffff16565b9050601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156116285761162561271061161760075488611b7d90919063ffffffff16565b611bf790919063ffffffff16565b90505b61163b8186611c4190919063ffffffff16565b9450611648873083611878565b505b611655868686611878565b5050505b505050565b60008383111582906116a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169d9190611fc6565b60405180910390fd5b50600083856116b5919061270b565b9050809150509392505050565b60008082846116d1919061266b565b905083811015611716576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170d9061278b565b60405180910390fd5b8091505092915050565b6000600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117c35750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061187057506000601160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663865afe1485856040518363ffffffff1660e01b815260040161182b9291906127ab565b6020604051808303816000875af115801561184a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186e91906127e9565b115b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118de90612888565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611956576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194d9061291a565b60405180910390fd5b611961838383611c8b565b6119cc816040518060600160405280602e8152602001612cbf602e91396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461165e9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a5f816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116c290919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611afe9190612180565b60405180910390a3505050565b6000479050611b1983611c90565b6000611b2e8247611c4190919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611b76573d6000803e3d6000fd5b5050505050565b6000808303611b8f5760009050611bf1565b60008284611b9d919061293a565b9050828482611bac91906129ab565b14611bec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be390612a4e565b60405180910390fd5b809150505b92915050565b6000611c3983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ed3565b905092915050565b6000611c8383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061165e565b905092915050565b505050565b6000600267ffffffffffffffff811115611cad57611cac612a6e565b5b604051908082528060200260200182016040528015611cdb5781602001602082028036833780820191505090505b5090503081600081518110611cf357611cf2612a9d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dbe9190612ae1565b81600181518110611dd257611dd1612a9d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e3930600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461105d565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e9d959493929190612c07565b600060405180830381600087803b158015611eb757600080fd5b505af1158015611ecb573d6000803e3d6000fd5b505050505050565b60008083118290611f1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f119190611fc6565b60405180910390fd5b5060008385611f2991906129ab565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611f70578082015181840152602081019050611f55565b60008484015250505050565b6000601f19601f8301169050919050565b6000611f9882611f36565b611fa28185611f41565b9350611fb2818560208601611f52565b611fbb81611f7c565b840191505092915050565b60006020820190508181036000830152611fe08184611f8d565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061201882611fed565b9050919050565b6120288161200d565b811461203357600080fd5b50565b6000813590506120458161201f565b92915050565b6000819050919050565b61205e8161204b565b811461206957600080fd5b50565b60008135905061207b81612055565b92915050565b6000806040838503121561209857612097611fe8565b5b60006120a685828601612036565b92505060206120b78582860161206c565b9150509250929050565b60008115159050919050565b6120d6816120c1565b82525050565b60006020820190506120f160008301846120cd565b92915050565b6000819050919050565b600061211c61211761211284611fed565b6120f7565b611fed565b9050919050565b600061212e82612101565b9050919050565b600061214082612123565b9050919050565b61215081612135565b82525050565b600060208201905061216b6000830184612147565b92915050565b61217a8161204b565b82525050565b60006020820190506121956000830184612171565b92915050565b6000806000606084860312156121b4576121b3611fe8565b5b60006121c286828701612036565b93505060206121d386828701612036565b92505060406121e48682870161206c565b9150509250925092565b600060ff82169050919050565b612204816121ee565b82525050565b600060208201905061221f60008301846121fb565b92915050565b61222e8161200d565b82525050565b60006020820190506122496000830184612225565b92915050565b60006020828403121561226557612264611fe8565b5b600061227384828501612036565b91505092915050565b612285816120c1565b811461229057600080fd5b50565b6000813590506122a28161227c565b92915050565b600080604083850312156122bf576122be611fe8565b5b60006122cd85828601612036565b92505060206122de85828601612293565b9150509250929050565b600080604083850312156122ff576122fe611fe8565b5b600061230d85828601612036565b925050602061231e85828601612036565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061236f57607f821691505b60208210810361238257612381612328565b5b50919050565b7f4f77616e626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006123be602083611f41565b91506123c982612388565b602082019050919050565b600060208201905081810360008301526123ed816123b1565b9050919050565b7f4f77616e626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612450602683611f41565b915061245b826123f4565b604082019050919050565b6000602082019050818103600083015261247f81612443565b9050919050565b7f5374616e6461726445524332303a20617070726f76652066726f6d207468652060008201527f7a65726f20616464726573730000000000000000000000000000000000000000602082015250565b60006124e2602c83611f41565b91506124ed82612486565b604082019050919050565b60006020820190508181036000830152612511816124d5565b9050919050565b7f5374616e6461726445524332303a20617070726f766520746f20746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b6000612574602a83611f41565b915061257f82612518565b604082019050919050565b600060208201905081810360008301526125a381612567565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865207065706560008201527f78324d61785472616e73616374696f6e2e000000000000000000000000000000602082015250565b6000612606603183611f41565b9150612611826125aa565b604082019050919050565b60006020820190508181036000830152612635816125f9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006126768261204b565b91506126818361204b565b92508282019050808211156126995761269861263c565b5b92915050565b7f45786365656473206d6178696d756d2077616c6c657420616d6f756e74000000600082015250565b60006126d5601d83611f41565b91506126e08261269f565b602082019050919050565b60006020820190508181036000830152612704816126c8565b9050919050565b60006127168261204b565b91506127218361204b565b92508282039050818111156127395761273861263c565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612775601b83611f41565b91506127808261273f565b602082019050919050565b600060208201905081810360008301526127a481612768565b9050919050565b60006040820190506127c06000830185612225565b6127cd6020830184612225565b9392505050565b6000815190506127e381612055565b92915050565b6000602082840312156127ff576127fe611fe8565b5b600061280d848285016127d4565b91505092915050565b7f5374616e6461726445524332303a207472616e736665722066726f6d2074686560008201527f207a65726f206164647265737300000000000000000000000000000000000000602082015250565b6000612872602d83611f41565b915061287d82612816565b604082019050919050565b600060208201905081810360008301526128a181612865565b9050919050565b7f5374616e6461726445524332303a207472616e7366657220746f20746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b6000612904602b83611f41565b915061290f826128a8565b604082019050919050565b60006020820190508181036000830152612933816128f7565b9050919050565b60006129458261204b565b91506129508361204b565b925082820261295e8161204b565b915082820484148315176129755761297461263c565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006129b68261204b565b91506129c18361204b565b9250826129d1576129d061297c565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a38602183611f41565b9150612a43826129dc565b604082019050919050565b60006020820190508181036000830152612a6781612a2b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612adb8161201f565b92915050565b600060208284031215612af757612af6611fe8565b5b6000612b0584828501612acc565b91505092915050565b6000819050919050565b6000612b33612b2e612b2984612b0e565b6120f7565b61204b565b9050919050565b612b4381612b18565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612b7e8161200d565b82525050565b6000612b908383612b75565b60208301905092915050565b6000602082019050919050565b6000612bb482612b49565b612bbe8185612b54565b9350612bc983612b65565b8060005b83811015612bfa578151612be18882612b84565b9750612bec83612b9c565b925050600181019050612bcd565b5085935050505092915050565b600060a082019050612c1c6000830188612171565b612c296020830187612b3a565b8181036040830152612c3b8186612ba9565b9050612c4a6060830185612225565b612c576080830184612171565b969550505050505056fe5374616e6461726445524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f5374616e6461726445524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655374616e6461726445524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365a264697066735822122069f06554ffd7ccf965396957df3b7c00bb4d1ef6335de5716b437a2126b8237264736f6c63430008130033

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

00000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000002540be40000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083eb8a48930987c678cdcdf8c7ef7b54640d5b18000000000000000000000000000000000000000000000000000000000000038400000000000000000000000000000000000000000000000000000000000003840000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000004daf558a903ea2f4486bf397e5f1a2d5ce58b38c00000000000000000000000089bdaec961bb46dfb280a8fb83ea75a448a293fe00000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000006506570655832000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065045504558320000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name_ (string): PepeX2
Arg [1] : symbol_ (string): PEPEX2
Arg [2] : supply_ (uint256): 10000000000
Arg [3] : decimals_ (uint8): 18
Arg [4] : parameters (tuple): System.Collections.Generic.List`1[Nethereum.ABI.FunctionEncoding.ParameterOutput]
Arg [5] : uniswapV2Router_ (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [6] : refInfo_ (tuple): System.Collections.Generic.List`1[Nethereum.ABI.FunctionEncoding.ParameterOutput]

-----Encoded View---------------
17 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000001a0
Arg [1] : 00000000000000000000000000000000000000000000000000000000000001e0
Arg [2] : 00000000000000000000000000000000000000000000000000000002540be400
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [6] : 00000000000000000000000083eb8a48930987c678cdcdf8c7ef7b54640d5b18
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000384
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000384
Arg [9] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [10] : 0000000000000000000000004daf558a903ea2f4486bf397e5f1a2d5ce58b38c
Arg [11] : 00000000000000000000000089bdaec961bb46dfb280a8fb83ea75a448a293fe
Arg [12] : 0000000000000000000000000000000000000000000000000000000000000064
Arg [13] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [14] : 5065706558320000000000000000000000000000000000000000000000000000
Arg [15] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [16] : 5045504558320000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

29882:5853:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11156:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13479:210;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;30114:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12291:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;30301:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14179:462;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12126:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15050:300;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;30159:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12462:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9208:148;;;;;;;;;;;;;:::i;:::-;;32448:140;;;;;;;;;;;;;:::i;:::-;;30402:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8566:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11375:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15853:408;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12852:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;29964:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;30222:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;30043:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;32594:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;30259:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13131:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;30008:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9511:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11156:100;11210:13;11243:5;11236:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11156:100;:::o;13479:210::-;13598:4;13620:39;13629:12;:10;:12::i;:::-;13643:7;13652:6;13620:8;:39::i;:::-;13677:4;13670:11;;13479:210;;;;:::o;30114:38::-;;;;;;;;;;;;;:::o;12291:108::-;12352:7;12379:12;;12372:19;;12291:108;:::o;30301:30::-;;;;:::o;14179:462::-;14319:4;14336:36;14346:6;14354:9;14365:6;14336:9;:36::i;:::-;14383:228;14406:6;14427:12;:10;:12::i;:::-;14454:146;14510:6;14454:146;;;;;;;;;;;;;;;;;:11;:19;14466:6;14454:19;;;;;;;;;;;;;;;:33;14474:12;:10;:12::i;:::-;14454:33;;;;;;;;;;;;;;;;:37;;:146;;;;;:::i;:::-;14383:8;:228::i;:::-;14629:4;14622:11;;14179:462;;;;;:::o;12126:100::-;12184:5;12209:9;;;;;;;;;;;12202:16;;12126:100;:::o;15050:300::-;15165:4;15187:133;15210:12;:10;:12::i;:::-;15237:7;15259:50;15298:10;15259:11;:25;15271:12;:10;:12::i;:::-;15259:25;;;;;;;;;;;;;;;:34;15285:7;15259:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;15187:8;:133::i;:::-;15338:4;15331:11;;15050:300;;;;:::o;30159:28::-;;;;;;;;;;;;;:::o;12462:177::-;12581:7;12613:9;:18;12623:7;12613:18;;;;;;;;;;;;;;;;12606:25;;12462:177;;;:::o;9208:148::-;8788:12;:10;:12::i;:::-;8778:22;;:6;;;;;;;;;;;:22;;;8770:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9315:1:::1;9278:40;;9299:6;;;;;;;;;;;9278:40;;;;;;;;;;;;9346:1;9329:6;;:19;;;;;;;;;;;;;;;;;;9208:148::o:0;32448:140::-;8788:12;:10;:12::i;:::-;8778:22;;:6;;;;;;;;;;;:22;;;8770:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;32525:13:::1;:11;:13::i;:::-;32502:20;:36;;;;32567:13;:11;:13::i;:::-;32549:15;:31;;;;32448:140::o:0;30402:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;8566:79::-;8604:7;8631:6;;;;;;;;;;;8624:13;;8566:79;:::o;11375:104::-;11431:13;11464:7;11457:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11375:104;:::o;15853:408::-;15973:4;15995:236;16018:12;:10;:12::i;:::-;16045:7;16067:153;16124:15;16067:153;;;;;;;;;;;;;;;;;:11;:25;16079:12;:10;:12::i;:::-;16067:25;;;;;;;;;;;;;;;:34;16093:7;16067:34;;;;;;;;;;;;;;;;:38;;:153;;;;;:::i;:::-;15995:8;:236::i;:::-;16249:4;16242:11;;15853:408;;;;:::o;12852:216::-;12974:4;12996:42;13006:12;:10;:12::i;:::-;13020:9;13031:6;12996:9;:42::i;:::-;13056:4;13049:11;;12852:216;;;;:::o;29964:37::-;;;;:::o;30222:30::-;;;;;;;;;;;;;:::o;30043:27::-;;;;:::o;32594:143::-;8788:12;:10;:12::i;:::-;8778:22;;:6;;;;;;;;;;;:22;;;8770:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;32721:8:::1;32685:24;:33;32710:7;32685:33;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;32594:143:::0;;:::o;30259:35::-;;;;:::o;13131:201::-;13265:7;13297:11;:18;13309:5;13297:18;;;;;;;;;;;;;;;:27;13316:7;13297:27;;;;;;;;;;;;;;;;13290:34;;13131:201;;;;:::o;30008:28::-;;;;:::o;9511:281::-;8788:12;:10;:12::i;:::-;8778:22;;:6;;;;;;;;;;;:22;;;8770:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9634:1:::1;9614:22;;:8;:22;;::::0;9592:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;9747:8;9718:38;;9739:6;;;;;;;;;;;9718:38;;;;;;;;;;;;9776:8;9767:6;;:17;;;;;;;;;;;;;;;;;;9511:281:::0;:::o;7706:98::-;7759:7;7786:10;7779:17;;7706:98;:::o;19300:396::-;19453:1;19436:19;;:5;:19;;;19428:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;19542:1;19523:21;;:7;:21;;;19515:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;19634:6;19604:11;:18;19616:5;19604:18;;;;;;;;;;;;;;;:27;19623:7;19604:27;;;;;;;;;;;;;;;:36;;;;19672:7;19656:32;;19665:5;19656:32;;;19681:6;19656:32;;;;;;:::i;:::-;;;;;;;;19300:396;;;:::o;33337:1616::-;33494:1;33480:16;;:2;:16;;;:41;;;;33514:6;33500:21;;:2;:21;;;33480:41;33479:94;;;;33539:34;33564:4;33570:2;33539:24;:34::i;:::-;33479:94;:122;;;;33600:1;33590:6;:11;33479:122;33461:566;;;33615:33;33631:4;33637:2;33641:6;33615:15;:33::i;:::-;33649:7;;33461:566;33706:20;;33696:6;:30;;33688:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;33805:13;;;;;;;;;;;33799:19;;:2;:19;;;33795:221;;33839:32;33874:13;33884:2;33874:9;:13::i;:::-;33839:48;;33951:15;;33941:6;33914:24;:33;;;;:::i;:::-;:52;;33906:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;33820:196;33795:221;34037:28;34068:24;34086:4;34068:9;:24::i;:::-;34037:55;;34103:12;34142:22;;34118:20;:46;;34103:61;;34179:7;:20;;;;;34191:8;;;;;;;;;;;34190:9;34179:20;:49;;;;;34204:18;:24;34223:4;34204:24;;;;;;;;;;;;;;;;;;;;;;;;;34203:25;34179:49;34175:283;;;34256:4;34245:8;;:15;;;;;;;;;;;;;;;;;;34275:23;34301:20;34275:46;;34358:1;34340:15;:19;34336:80;;;34363:50;34380:15;34397;;;;;;;;;;;34363:16;:50::i;:::-;34336:80;34441:5;34430:8;;:16;;;;;;;;;;;;;;;;;;34230:228;34175:283;34468:12;34484:8;;;;;;;;;;;34483:9;34468:24;;34507;:30;34532:4;34507:30;;;;;;;;;;;;;;;;;;;;;;;;;:62;;;;34541:24;:28;34566:2;34541:28;;;;;;;;;;;;;;;;;;;;;;;;;34507:62;34503:110;;;34596:5;34586:15;;34503:110;34629:7;34625:277;;;34653:12;34668:35;34697:5;34668:24;34679:12;;34668:6;:10;;:24;;;;:::i;:::-;:28;;:35;;;;:::i;:::-;34653:50;;34722:18;:22;34741:2;34722:22;;;;;;;;;;;;;;;;;;;;;;;;;34718:76;;;34755:36;34785:5;34755:25;34766:13;;34755:6;:10;;:25;;;;:::i;:::-;:29;;:36;;;;:::i;:::-;34748:43;;34718:76;34817:16;34828:4;34817:6;:10;;:16;;;;:::i;:::-;34808:25;;34848:42;34864:4;34878;34885;34848:15;:42::i;:::-;34638:264;34625:277;34912:33;34928:4;34934:2;34938:6;34912:15;:33::i;:::-;33450:1503;;;33337:1616;;;;:::o;1266:226::-;1386:7;1419:1;1414;:6;;1422:12;1406:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1446:9;1462:1;1458;:5;;;;:::i;:::-;1446:17;;1483:1;1476:8;;;1266:226;;;;;:::o;363:181::-;421:7;441:9;457:1;453;:5;;;;:::i;:::-;441:17;;482:1;477;:6;;469:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;535:1;528:8;;;363:181;;;;:::o;33083:248::-;33161:4;33185:24;:30;33210:4;33185:30;;;;;;;;;;;;;;;;;;;;;;;;;:62;;;;33219:24;:28;33244:2;33219:28;;;;;;;;;;;;;;;;;;;;;;;;;33185:62;:138;;;;33322:1;33274:3;:16;;;;;;;;;;;;33251:58;;;33310:4;33316:2;33251:68;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:72;33185:138;33178:145;;33083:248;;;;:::o;16751:634::-;16909:1;16891:20;;:6;:20;;;16883:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;17001:1;16980:23;;:9;:23;;;16972:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;17064:47;17085:6;17093:9;17104:6;17064:20;:47::i;:::-;17144:116;17180:6;17144:116;;;;;;;;;;;;;;;;;:9;:17;17154:6;17144:17;;;;;;;;;;;;;;;;:21;;:116;;;;;:::i;:::-;17124:9;:17;17134:6;17124:17;;;;;;;;;;;;;;;:136;;;;17294:32;17319:6;17294:9;:20;17304:9;17294:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;17271:9;:20;17281:9;17271:20;;;;;;;;;;;;;;;:55;;;;17359:9;17342:35;;17351:6;17342:35;;;17370:6;17342:35;;;;;;:::i;:::-;;;;;;;;16751:634;;;:::o;34959:296::-;35038:22;35063:21;35038:46;;35097:24;35114:6;35097:16;:24::i;:::-;35134:18;35155:41;35181:14;35155:21;:25;;:41;;;;:::i;:::-;35134:62;;35217:8;35209:26;;:38;35236:10;35209:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35027:228;;34959:296;;:::o;1751:471::-;1809:7;2059:1;2054;:6;2050:47;;2084:1;2077:8;;;;2050:47;2109:9;2125:1;2121;:5;;;;:::i;:::-;2109:17;;2154:1;2149;2145;:5;;;;:::i;:::-;:10;2137:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2213:1;2206:8;;;1751:471;;;;;:::o;2698:132::-;2756:7;2783:39;2787:1;2790;2783:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2776:46;;2698:132;;;;:::o;827:136::-;885:7;912:43;916:1;919;912:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;905:50;;827:136;;;;:::o;20299:125::-;;;;:::o;35261:471::-;35327:21;35365:1;35351:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35327:40;;35396:4;35378;35383:1;35378:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;35422:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;35412:4;35417:1;35412:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;35455:62;35472:4;35487:15;;;;;;;;;;;35505:11;35455:8;:62::i;:::-;35528:15;;;;;;;;;;;:66;;;35609:11;35635:1;35651:4;35678;35698:15;35528:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35316:416;35261:471;:::o;3326:312::-;3446:7;3478:1;3474;:5;3481:12;3466:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3505:9;3521:1;3517;:5;;;;:::i;:::-;3505:17;;3629:1;3622:8;;;3326:312;;;;;:::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:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:150::-;3866:9;3899:37;3930:5;3899:37;:::i;:::-;3886:50;;3792:150;;;:::o;3948:179::-;4059:61;4114:5;4059:61;:::i;:::-;4054:3;4047:74;3948:179;;:::o;4133:270::-;4250:4;4288:2;4277:9;4273:18;4265:26;;4301:95;4393:1;4382:9;4378:17;4369:6;4301:95;:::i;:::-;4133:270;;;;:::o;4409:118::-;4496:24;4514:5;4496:24;:::i;:::-;4491:3;4484:37;4409:118;;:::o;4533:222::-;4626:4;4664:2;4653:9;4649:18;4641:26;;4677:71;4745:1;4734:9;4730:17;4721:6;4677:71;:::i;:::-;4533:222;;;;:::o;4761:619::-;4838:6;4846;4854;4903:2;4891:9;4882:7;4878:23;4874:32;4871:119;;;4909:79;;:::i;:::-;4871:119;5029:1;5054:53;5099:7;5090:6;5079:9;5075:22;5054:53;:::i;:::-;5044:63;;5000:117;5156:2;5182:53;5227:7;5218:6;5207:9;5203:22;5182:53;:::i;:::-;5172:63;;5127:118;5284:2;5310:53;5355:7;5346:6;5335:9;5331:22;5310:53;:::i;:::-;5300:63;;5255:118;4761:619;;;;;:::o;5386:86::-;5421:7;5461:4;5454:5;5450:16;5439:27;;5386:86;;;:::o;5478:112::-;5561:22;5577:5;5561:22;:::i;:::-;5556:3;5549:35;5478:112;;:::o;5596:214::-;5685:4;5723:2;5712:9;5708:18;5700:26;;5736:67;5800:1;5789:9;5785:17;5776:6;5736:67;:::i;:::-;5596:214;;;;:::o;5816:118::-;5903:24;5921:5;5903:24;:::i;:::-;5898:3;5891:37;5816:118;;:::o;5940:222::-;6033:4;6071:2;6060:9;6056:18;6048:26;;6084:71;6152:1;6141:9;6137:17;6128:6;6084:71;:::i;:::-;5940:222;;;;:::o;6168:329::-;6227:6;6276:2;6264:9;6255:7;6251:23;6247:32;6244:119;;;6282:79;;:::i;:::-;6244:119;6402:1;6427:53;6472:7;6463:6;6452:9;6448:22;6427:53;:::i;:::-;6417:63;;6373:117;6168:329;;;;:::o;6503:116::-;6573:21;6588:5;6573:21;:::i;:::-;6566:5;6563:32;6553:60;;6609:1;6606;6599:12;6553:60;6503:116;:::o;6625:133::-;6668:5;6706:6;6693:20;6684:29;;6722:30;6746:5;6722:30;:::i;:::-;6625:133;;;;:::o;6764:468::-;6829:6;6837;6886:2;6874:9;6865:7;6861:23;6857:32;6854:119;;;6892:79;;:::i;:::-;6854:119;7012:1;7037:53;7082:7;7073:6;7062:9;7058:22;7037:53;:::i;:::-;7027:63;;6983:117;7139:2;7165:50;7207:7;7198:6;7187:9;7183:22;7165:50;:::i;:::-;7155:60;;7110:115;6764:468;;;;;:::o;7238:474::-;7306:6;7314;7363:2;7351:9;7342:7;7338:23;7334:32;7331:119;;;7369:79;;:::i;:::-;7331:119;7489:1;7514:53;7559:7;7550:6;7539:9;7535:22;7514:53;:::i;:::-;7504:63;;7460:117;7616:2;7642:53;7687:7;7678:6;7667:9;7663:22;7642:53;:::i;:::-;7632:63;;7587:118;7238:474;;;;;:::o;7718:180::-;7766:77;7763:1;7756:88;7863:4;7860:1;7853:15;7887:4;7884:1;7877:15;7904:320;7948:6;7985:1;7979:4;7975:12;7965:22;;8032:1;8026:4;8022:12;8053:18;8043:81;;8109:4;8101:6;8097:17;8087:27;;8043:81;8171:2;8163:6;8160:14;8140:18;8137:38;8134:84;;8190:18;;:::i;:::-;8134:84;7955:269;7904:320;;;:::o;8230:182::-;8370:34;8366:1;8358:6;8354:14;8347:58;8230:182;:::o;8418:366::-;8560:3;8581:67;8645:2;8640:3;8581:67;:::i;:::-;8574:74;;8657:93;8746:3;8657:93;:::i;:::-;8775:2;8770:3;8766:12;8759:19;;8418:366;;;:::o;8790:419::-;8956:4;8994:2;8983:9;8979:18;8971:26;;9043:9;9037:4;9033:20;9029:1;9018:9;9014:17;9007:47;9071:131;9197:4;9071:131;:::i;:::-;9063:139;;8790:419;;;:::o;9215:225::-;9355:34;9351:1;9343:6;9339:14;9332:58;9424:8;9419:2;9411:6;9407:15;9400:33;9215:225;:::o;9446:366::-;9588:3;9609:67;9673:2;9668:3;9609:67;:::i;:::-;9602:74;;9685:93;9774:3;9685:93;:::i;:::-;9803:2;9798:3;9794:12;9787:19;;9446:366;;;:::o;9818:419::-;9984:4;10022:2;10011:9;10007:18;9999:26;;10071:9;10065:4;10061:20;10057:1;10046:9;10042:17;10035:47;10099:131;10225:4;10099:131;:::i;:::-;10091:139;;9818:419;;;:::o;10243:231::-;10383:34;10379:1;10371:6;10367:14;10360:58;10452:14;10447:2;10439:6;10435:15;10428:39;10243:231;:::o;10480:366::-;10622:3;10643:67;10707:2;10702:3;10643:67;:::i;:::-;10636:74;;10719:93;10808:3;10719:93;:::i;:::-;10837:2;10832:3;10828:12;10821:19;;10480:366;;;:::o;10852:419::-;11018:4;11056:2;11045:9;11041:18;11033:26;;11105:9;11099:4;11095:20;11091:1;11080:9;11076:17;11069:47;11133:131;11259:4;11133:131;:::i;:::-;11125:139;;10852:419;;;:::o;11277:229::-;11417:34;11413:1;11405:6;11401:14;11394:58;11486:12;11481:2;11473:6;11469:15;11462:37;11277:229;:::o;11512:366::-;11654:3;11675:67;11739:2;11734:3;11675:67;:::i;:::-;11668:74;;11751:93;11840:3;11751:93;:::i;:::-;11869:2;11864:3;11860:12;11853:19;;11512:366;;;:::o;11884:419::-;12050:4;12088:2;12077:9;12073:18;12065:26;;12137:9;12131:4;12127:20;12123:1;12112:9;12108:17;12101:47;12165:131;12291:4;12165:131;:::i;:::-;12157:139;;11884:419;;;:::o;12309:236::-;12449:34;12445:1;12437:6;12433:14;12426:58;12518:19;12513:2;12505:6;12501:15;12494:44;12309:236;:::o;12551:366::-;12693:3;12714:67;12778:2;12773:3;12714:67;:::i;:::-;12707:74;;12790:93;12879:3;12790:93;:::i;:::-;12908:2;12903:3;12899:12;12892:19;;12551:366;;;:::o;12923:419::-;13089:4;13127:2;13116:9;13112:18;13104:26;;13176:9;13170:4;13166:20;13162:1;13151:9;13147:17;13140:47;13204:131;13330:4;13204:131;:::i;:::-;13196:139;;12923:419;;;:::o;13348:180::-;13396:77;13393:1;13386:88;13493:4;13490:1;13483:15;13517:4;13514:1;13507:15;13534:191;13574:3;13593:20;13611:1;13593:20;:::i;:::-;13588:25;;13627:20;13645:1;13627:20;:::i;:::-;13622:25;;13670:1;13667;13663:9;13656:16;;13691:3;13688:1;13685:10;13682:36;;;13698:18;;:::i;:::-;13682:36;13534:191;;;;:::o;13731:179::-;13871:31;13867:1;13859:6;13855:14;13848:55;13731:179;:::o;13916:366::-;14058:3;14079:67;14143:2;14138:3;14079:67;:::i;:::-;14072:74;;14155:93;14244:3;14155:93;:::i;:::-;14273:2;14268:3;14264:12;14257:19;;13916:366;;;:::o;14288:419::-;14454:4;14492:2;14481:9;14477:18;14469:26;;14541:9;14535:4;14531:20;14527:1;14516:9;14512:17;14505:47;14569:131;14695:4;14569:131;:::i;:::-;14561:139;;14288:419;;;:::o;14713:194::-;14753:4;14773:20;14791:1;14773:20;:::i;:::-;14768:25;;14807:20;14825:1;14807:20;:::i;:::-;14802:25;;14851:1;14848;14844:9;14836:17;;14875:1;14869:4;14866:11;14863:37;;;14880:18;;:::i;:::-;14863:37;14713:194;;;;:::o;14913:177::-;15053:29;15049:1;15041:6;15037:14;15030:53;14913:177;:::o;15096:366::-;15238:3;15259:67;15323:2;15318:3;15259:67;:::i;:::-;15252:74;;15335:93;15424:3;15335:93;:::i;:::-;15453:2;15448:3;15444:12;15437:19;;15096:366;;;:::o;15468:419::-;15634:4;15672:2;15661:9;15657:18;15649:26;;15721:9;15715:4;15711:20;15707:1;15696:9;15692:17;15685:47;15749:131;15875:4;15749:131;:::i;:::-;15741:139;;15468:419;;;:::o;15893:332::-;16014:4;16052:2;16041:9;16037:18;16029:26;;16065:71;16133:1;16122:9;16118:17;16109:6;16065:71;:::i;:::-;16146:72;16214:2;16203:9;16199:18;16190:6;16146:72;:::i;:::-;15893:332;;;;;:::o;16231:143::-;16288:5;16319:6;16313:13;16304:22;;16335:33;16362:5;16335:33;:::i;:::-;16231:143;;;;:::o;16380:351::-;16450:6;16499:2;16487:9;16478:7;16474:23;16470:32;16467:119;;;16505:79;;:::i;:::-;16467:119;16625:1;16650:64;16706:7;16697:6;16686:9;16682:22;16650:64;:::i;:::-;16640:74;;16596:128;16380:351;;;;:::o;16737:232::-;16877:34;16873:1;16865:6;16861:14;16854:58;16946:15;16941:2;16933:6;16929:15;16922:40;16737:232;:::o;16975:366::-;17117:3;17138:67;17202:2;17197:3;17138:67;:::i;:::-;17131:74;;17214:93;17303:3;17214:93;:::i;:::-;17332:2;17327:3;17323:12;17316:19;;16975:366;;;:::o;17347:419::-;17513:4;17551:2;17540:9;17536:18;17528:26;;17600:9;17594:4;17590:20;17586:1;17575:9;17571:17;17564:47;17628:131;17754:4;17628:131;:::i;:::-;17620:139;;17347:419;;;:::o;17772:230::-;17912:34;17908:1;17900:6;17896:14;17889:58;17981:13;17976:2;17968:6;17964:15;17957:38;17772:230;:::o;18008:366::-;18150:3;18171:67;18235:2;18230:3;18171:67;:::i;:::-;18164:74;;18247:93;18336:3;18247:93;:::i;:::-;18365:2;18360:3;18356:12;18349:19;;18008:366;;;:::o;18380:419::-;18546:4;18584:2;18573:9;18569:18;18561:26;;18633:9;18627:4;18623:20;18619:1;18608:9;18604:17;18597:47;18661:131;18787:4;18661:131;:::i;:::-;18653:139;;18380:419;;;:::o;18805:410::-;18845:7;18868:20;18886:1;18868:20;:::i;:::-;18863:25;;18902:20;18920:1;18902:20;:::i;:::-;18897:25;;18957:1;18954;18950:9;18979:30;18997:11;18979:30;:::i;:::-;18968:41;;19158:1;19149:7;19145:15;19142:1;19139:22;19119:1;19112:9;19092:83;19069:139;;19188:18;;:::i;:::-;19069:139;18853:362;18805:410;;;;:::o;19221:180::-;19269:77;19266:1;19259:88;19366:4;19363:1;19356:15;19390:4;19387:1;19380:15;19407:185;19447:1;19464:20;19482:1;19464:20;:::i;:::-;19459:25;;19498:20;19516:1;19498:20;:::i;:::-;19493:25;;19537:1;19527:35;;19542:18;;:::i;:::-;19527:35;19584:1;19581;19577:9;19572:14;;19407:185;;;;:::o;19598:220::-;19738:34;19734:1;19726:6;19722:14;19715:58;19807:3;19802:2;19794:6;19790:15;19783:28;19598:220;:::o;19824:366::-;19966:3;19987:67;20051:2;20046:3;19987:67;:::i;:::-;19980:74;;20063:93;20152:3;20063:93;:::i;:::-;20181:2;20176:3;20172:12;20165:19;;19824:366;;;:::o;20196:419::-;20362:4;20400:2;20389:9;20385:18;20377:26;;20449:9;20443:4;20439:20;20435:1;20424:9;20420:17;20413:47;20477:131;20603:4;20477:131;:::i;:::-;20469:139;;20196:419;;;:::o;20621:180::-;20669:77;20666:1;20659:88;20766:4;20763:1;20756:15;20790:4;20787:1;20780:15;20807:180;20855:77;20852:1;20845:88;20952:4;20949:1;20942:15;20976:4;20973:1;20966:15;20993:143;21050:5;21081:6;21075:13;21066:22;;21097:33;21124:5;21097:33;:::i;:::-;20993:143;;;;:::o;21142:351::-;21212:6;21261:2;21249:9;21240:7;21236:23;21232:32;21229:119;;;21267:79;;:::i;:::-;21229:119;21387:1;21412:64;21468:7;21459:6;21448:9;21444:22;21412:64;:::i;:::-;21402:74;;21358:128;21142:351;;;;:::o;21499:85::-;21544:7;21573:5;21562:16;;21499:85;;;:::o;21590:158::-;21648:9;21681:61;21699:42;21708:32;21734:5;21708:32;:::i;:::-;21699:42;:::i;:::-;21681:61;:::i;:::-;21668:74;;21590:158;;;:::o;21754:147::-;21849:45;21888:5;21849:45;:::i;:::-;21844:3;21837:58;21754:147;;:::o;21907:114::-;21974:6;22008:5;22002:12;21992:22;;21907:114;;;:::o;22027:184::-;22126:11;22160:6;22155:3;22148:19;22200:4;22195:3;22191:14;22176:29;;22027:184;;;;:::o;22217:132::-;22284:4;22307:3;22299:11;;22337:4;22332:3;22328:14;22320:22;;22217:132;;;:::o;22355:108::-;22432:24;22450:5;22432:24;:::i;:::-;22427:3;22420:37;22355:108;;:::o;22469:179::-;22538:10;22559:46;22601:3;22593:6;22559:46;:::i;:::-;22637:4;22632:3;22628:14;22614:28;;22469:179;;;;:::o;22654:113::-;22724:4;22756;22751:3;22747:14;22739:22;;22654:113;;;:::o;22803:732::-;22922:3;22951:54;22999:5;22951:54;:::i;:::-;23021:86;23100:6;23095:3;23021:86;:::i;:::-;23014:93;;23131:56;23181:5;23131:56;:::i;:::-;23210:7;23241:1;23226:284;23251:6;23248:1;23245:13;23226:284;;;23327:6;23321:13;23354:63;23413:3;23398:13;23354:63;:::i;:::-;23347:70;;23440:60;23493:6;23440:60;:::i;:::-;23430:70;;23286:224;23273:1;23270;23266:9;23261:14;;23226:284;;;23230:14;23526:3;23519:10;;22927:608;;;22803:732;;;;:::o;23541:831::-;23804:4;23842:3;23831:9;23827:19;23819:27;;23856:71;23924:1;23913:9;23909:17;23900:6;23856:71;:::i;:::-;23937:80;24013:2;24002:9;23998:18;23989:6;23937:80;:::i;:::-;24064:9;24058:4;24054:20;24049:2;24038:9;24034:18;24027:48;24092:108;24195:4;24186:6;24092:108;:::i;:::-;24084:116;;24210:72;24278:2;24267:9;24263:18;24254:6;24210:72;:::i;:::-;24292:73;24360:3;24349:9;24345:19;24336:6;24292:73;:::i;:::-;23541:831;;;;;;;;:::o

Swarm Source

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