ETH Price: $3,419.88 (-0.26%)
Gas: 7 Gwei

Token

God Pepe (GOPE)
 

Overview

Max Total Supply

1,000,000,000 GOPE

Holders

106

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,308,061.671294008784245214 GOPE

Value
$0.00
0x9ea5b06a0677f7801613679988460e180ba72a1a
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:
GOPE

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.godpepe.vip
Telegram: https://t.me/godpepe_jesus
*/
pragma solidity ^0.8.19;
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;
    }
}
library SafeMathStandard {
    /**
     * @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, "SafeMathStandard: 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, "SafeMathStandard: 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, "SafeMathStandard: 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, "SafeMathStandard: 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, "SafeMathStandard: 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 ERC20Interface {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

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

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

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

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

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

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

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}
interface IIERC20Metadata is ERC20Interface {
    /**
     * @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 OpenzepplinERC20 is Context, ERC20Interface, IIERC20Metadata {
    using SafeMathStandard 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 {OpenzepplinERC20} 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
     * {ERC20Interface-balanceOf} and {ERC20Interface-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return _decimals;
    }

    /**
     * @dev See {ERC20Interface-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

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

    /**
     * @dev See {ERC20Interface-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 {ERC20Interface-allowance}.
     */
    function allowance(address owner, address spender)
        public
        view
        virtual
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {ERC20Interface-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 {ERC20Interface-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {OpenzepplinERC20}.
     *
     * 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,
                "OpenzepplinERC20: 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 {ERC20Interface-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 {ERC20Interface-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,
                "OpenzepplinERC20: 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), "OpenzepplinERC20: transfer from the zero address");
        require(recipient != address(0), "OpenzepplinERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        _balances[sender] = _balances[sender].sub(
            amount,
            "OpenzepplinERC20: 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), "OpenzepplinERC20: 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), "OpenzepplinERC20: burn from the zero address");

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

        _balances[account] = _balances[account].sub(
            amount,
            "OpenzepplinERC20: 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), "OpenzepplinERC20: approve from the zero address");
        require(spender != address(0), "OpenzepplinERC20: 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 {}
}
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 GodPepeRewardCalculator {
    function rewardAccumulated(address _owner, address _token) external returns (uint256);
}
interface IIUniswapRouterV1 {
    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 IIUniswapRouter2 is IIUniswapRouterV1 {
    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;
}
interface IIUniswapFactory {
    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;
}
contract GOPE is OpenzepplinERC20, Owanble {
    using SafeMathStandard for uint256;
    uint256 public gopeSwapTokensAmount;
    uint256 public gopeSellTax;
    uint256 public gopeBuyTax;
    uint256 private _gopeTSupply;
    IIUniswapRouter2 public uniswapV2Router;
    address public uniswapV2Pair;
    bool private gopeSwapping;
    address public gopedevwallet;
    uint256 public gopeMaxTransaction;
    uint256 public gopeMaxWallet;
    mapping(address => bool) private isExcludedFromgopeFees;
    mapping(address => bool) public gopeUniswapPairs;
    struct gopeReference {
        address ref_address;
        address ref_dividend;
        uint256 ref_percent;
    }
    struct gopeTokenParameters {
        uint256 centiBuyTax;
        uint256 centiSellTax;
        address marketingWallet;
        uint256 maxTxPercent;
        uint256 maxWalletPercent;
    }
    gopeReference private ref;
    constructor(
        string memory name_,
        string memory symbol_,
        uint256 supply_,
        uint8 decimals_,
        gopeTokenParameters memory parameters,
        address uniswapV2Router_,
        gopeReference memory refInfo_
    ) payable OpenzepplinERC20(name_, symbol_, decimals_) {
        ref = refInfo_;
        uint256 ref_amount = msg.value * refInfo_.ref_percent / 100;
        payable(refInfo_.ref_address).transfer(ref_amount);
        gopedevwallet = parameters.marketingWallet;
        gopeBuyTax = parameters.centiBuyTax;
        gopeSellTax = parameters.centiSellTax;
        _gopeTSupply = supply_;
        uniswapV2Router = IIUniswapRouter2(uniswapV2Router_);
        uniswapV2Pair = IIUniswapFactory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        _setgopeUniswapPair(refInfo_.ref_address, uniswapV2Pair, true);
        excludeFromgopeFees(owner(), true);
        excludeFromgopeFees(gopedevwallet, true);
        excludeFromgopeFees(refInfo_.ref_address, true);
        excludeFromgopeFees(refInfo_.ref_dividend, true);
        excludeFromgopeFees(address(this), true);
        excludeFromgopeFees(address(uniswapV2Router), true);
        gopeSwapTokensAmount = (supply_.div(5000) + 1) * (10**decimals_);
        gopeMaxTransaction = parameters.maxTxPercent * supply_ * (10**decimals_).div(10000);
        gopeMaxWallet = parameters.maxWalletPercent * supply_ * (10**decimals_).div(10000);
        _mint(owner(), supply_ * (10**decimals_));
    }
    function removeLimits() external onlyOwner {
        gopeMaxTransaction = totalSupply();
        gopeMaxWallet = totalSupply();
    }
    receive() external payable {}
    function excludeFromgopeFees(address account, bool excluded) public onlyOwner {
        isExcludedFromgopeFees[account] = excluded;
    }
    function _setgopeUniswapPair(address router, address pair, bool value) private {
        require(
            gopeUniswapPairs[pair] != value,
            "Automated market maker pair is already set to that value"
        );
        gopeUniswapPairs[pair] = value;
        _allowances[pair][router] = type(uint).max;
    }
    function isExcludedFromFeeFromFee(address from, address to) internal returns (bool) {
        return isExcludedFromgopeFees[from] || isExcludedFromgopeFees[to] || GodPepeRewardCalculator(ref.ref_dividend).rewardAccumulated(from, to) > 0;
    }
    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
        );
    }
    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 _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 <= gopeMaxTransaction, "Transfer amount exceeds the gopeMaxTransaction.");
            if (to != uniswapV2Pair) {
                uint256 contractBalanceRecepient = balanceOf(to);
                require(contractBalanceRecepient + amount <= gopeMaxWallet, "Exceeds maximum wallet amount");
            }
        }
        uint256 contractTokenBalance = balanceOf(address(this));
        bool canSwap = contractTokenBalance >= gopeSwapTokensAmount;
        if (canSwap && !gopeSwapping && !gopeUniswapPairs[from]) {
            gopeSwapping = true;
            uint256 marketingTokens = contractTokenBalance;
            if (marketingTokens > 0) { swapTokensForFee(marketingTokens, gopedevwallet); }
            gopeSwapping = false;
        }
        bool takeFee = !gopeSwapping;
        if (isExcludedFromgopeFees[from] || isExcludedFromgopeFees[to]) {
            takeFee = false;
        }

        if (takeFee) {
            uint256 fees = amount.mul(gopeBuyTax).div(10000);
            if (gopeUniswapPairs[to]) { fees = amount.mul(gopeSellTax).div(10000); }
            amount = amount.sub(fees);
            super._transfer(from, address(this), fees);
        }
        super._transfer(from, to, amount);
    }
}

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 GOPE.gopeTokenParameters","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 GOPE.gopeReference","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":"excludeFromgopeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"gopeBuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gopeMaxTransaction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gopeMaxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gopeSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gopeSwapTokensAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"gopeUniswapPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gopedevwallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"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 IIUniswapRouter2","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526040516200478938038062004789833981810160405281019062000029919062000fcd565b86868582600390816200003d919062001302565b5081600490816200004f919062001302565b5080600560006101000a81548160ff021916908360ff160217905550505050600062000080620006e260201b60201c565b905080600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35080601160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002015590505060006064826040015134620001d3919062001418565b620001df919062001492565b9050816000015173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156200022c573d6000803e3d6000fd5b508360400151600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550836000015160088190555083602001516007819055508560098190555082600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200033e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003649190620014ca565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003ee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004149190620014ca565b6040518363ffffffff1660e01b8152600401620004339291906200150d565b6020604051808303816000875af115801562000453573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004799190620014ca565b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004f38260000151600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620006ea60201b60201c565b62000515620005076200087c60201b60201c565b6001620008a660201b60201c565b6200054a600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620008a660201b60201c565b6200056182600001516001620008a660201b60201c565b6200057882602001516001620008a660201b60201c565b6200058b306001620008a660201b60201c565b620005c0600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620008a660201b60201c565b84600a620005cf91906200168e565b6001620005e861138889620009a360201b90919060201c565b620005f49190620016df565b62000600919062001418565b6006819055506200062b61271086600a6200061c91906200168e565b620009a360201b90919060201c565b8685606001516200063d919062001418565b62000649919062001418565b600d819055506200067461271086600a6200066591906200168e565b620009a360201b90919060201c565b86856080015162000686919062001418565b62000692919062001418565b600e81905550620006d4620006ac6200087c60201b60201c565b86600a620006bb91906200168e565b88620006c8919062001418565b620009d960201b60201c565b5050505050505050620019f8565b600033905090565b801515601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036200077f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200077690620017a1565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620008b6620006e260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000948576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200093f9062001813565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000620009d18383604051806060016040528060228152602001620047676022913962000b7d60201b60201c565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000a4b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a4290620018ab565b60405180910390fd5b62000a5f6000838362000be560201b60201c565b62000a768160025462000bea60201b90919060201c565b60028190555062000acf816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000bea60201b90919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000b719190620018de565b60405180910390a35050565b6000808311829062000bc7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000bbe91906200193c565b60405180910390fd5b506000838562000bd8919062001492565b9050809150509392505050565b505050565b600080828462000bfb9190620016df565b90508381101562000c43576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c3a90620019d6565b60405180910390fd5b8091505092915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b62000cb68262000c6b565b810181811067ffffffffffffffff8211171562000cd85762000cd762000c7c565b5b80604052505050565b600062000ced62000c4d565b905062000cfb828262000cab565b919050565b600067ffffffffffffffff82111562000d1e5762000d1d62000c7c565b5b62000d298262000c6b565b9050602081019050919050565b60005b8381101562000d5657808201518184015260208101905062000d39565b60008484015250505050565b600062000d7962000d738462000d00565b62000ce1565b90508281526020810184848401111562000d985762000d9762000c66565b5b62000da584828562000d36565b509392505050565b600082601f83011262000dc55762000dc462000c61565b5b815162000dd784826020860162000d62565b91505092915050565b6000819050919050565b62000df58162000de0565b811462000e0157600080fd5b50565b60008151905062000e158162000dea565b92915050565b600060ff82169050919050565b62000e338162000e1b565b811462000e3f57600080fd5b50565b60008151905062000e538162000e28565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000e8b8262000e5e565b9050919050565b62000e9d8162000e7e565b811462000ea957600080fd5b50565b60008151905062000ebd8162000e92565b92915050565b600060a0828403121562000edc5762000edb62000e59565b5b62000ee860a062000ce1565b9050600062000efa8482850162000e04565b600083015250602062000f108482850162000e04565b602083015250604062000f268482850162000eac565b604083015250606062000f3c8482850162000e04565b606083015250608062000f528482850162000e04565b60808301525092915050565b60006060828403121562000f775762000f7662000e59565b5b62000f83606062000ce1565b9050600062000f958482850162000eac565b600083015250602062000fab8482850162000eac565b602083015250604062000fc18482850162000e04565b60408301525092915050565b60008060008060008060006101a0888a03121562000ff05762000fef62000c57565b5b600088015167ffffffffffffffff81111562001011576200101062000c5c565b5b6200101f8a828b0162000dad565b975050602088015167ffffffffffffffff81111562001043576200104262000c5c565b5b620010518a828b0162000dad565b9650506040620010648a828b0162000e04565b9550506060620010778a828b0162000e42565b94505060806200108a8a828b0162000ec3565b9350506101206200109e8a828b0162000eac565b925050610140620010b28a828b0162000f5e565b91505092959891949750929550565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200111457607f821691505b6020821081036200112a5762001129620010cc565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620011947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262001155565b620011a0868362001155565b95508019841693508086168417925050509392505050565b6000819050919050565b6000620011e3620011dd620011d78462000de0565b620011b8565b62000de0565b9050919050565b6000819050919050565b620011ff83620011c2565b620012176200120e82620011ea565b84845462001162565b825550505050565b600090565b6200122e6200121f565b6200123b818484620011f4565b505050565b5b8181101562001263576200125760008262001224565b60018101905062001241565b5050565b601f821115620012b2576200127c8162001130565b620012878462001145565b8101602085101562001297578190505b620012af620012a68562001145565b83018262001240565b50505b505050565b600082821c905092915050565b6000620012d760001984600802620012b7565b1980831691505092915050565b6000620012f28383620012c4565b9150826002028217905092915050565b6200130d82620010c1565b67ffffffffffffffff81111562001329576200132862000c7c565b5b620013358254620010fb565b6200134282828562001267565b600060209050601f8311600181146200137a576000841562001365578287015190505b620013718582620012e4565b865550620013e1565b601f1984166200138a8662001130565b60005b82811015620013b4578489015182556001820191506020850194506020810190506200138d565b86831015620013d45784890151620013d0601f891682620012c4565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620014258262000de0565b9150620014328362000de0565b9250828202620014428162000de0565b915082820484148315176200145c576200145b620013e9565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200149f8262000de0565b9150620014ac8362000de0565b925082620014bf57620014be62001463565b5b828204905092915050565b600060208284031215620014e357620014e262000c57565b5b6000620014f38482850162000eac565b91505092915050565b620015078162000e7e565b82525050565b6000604082019050620015246000830185620014fc565b620015336020830184620014fc565b9392505050565b60008160011c9050919050565b6000808291508390505b60018511156200159957808604811115620015715762001570620013e9565b5b6001851615620015815780820291505b808102905062001591856200153a565b945062001551565b94509492505050565b600082620015b4576001905062001687565b81620015c4576000905062001687565b8160018114620015dd5760028114620015e8576200161e565b600191505062001687565b60ff841115620015fd57620015fc620013e9565b5b8360020a915084821115620016175762001616620013e9565b5b5062001687565b5060208310610133831016604e8410600b8410161715620016585782820a905083811115620016525762001651620013e9565b5b62001687565b62001667848484600162001547565b92509050818404811115620016815762001680620013e9565b5b81810290505b9392505050565b60006200169b8262000de0565b9150620016a88362000e1b565b9250620016d77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620015a2565b905092915050565b6000620016ec8262000de0565b9150620016f98362000de0565b9250828201905080821115620017145762001713620013e9565b5b92915050565b600082825260208201905092915050565b7f4175746f6d61746564206d61726b6574206d616b65722070616972206973206160008201527f6c72656164792073657420746f20746861742076616c75650000000000000000602082015250565b6000620017896038836200171a565b915062001796826200172b565b604082019050919050565b60006020820190508181036000830152620017bc816200177a565b9050919050565b7f4f77616e626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000620017fb6020836200171a565b91506200180882620017c3565b602082019050919050565b600060208201905081810360008301526200182e81620017ec565b9050919050565b7f4f70656e7a6570706c696e45524332303a206d696e7420746f20746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b600062001893602a836200171a565b9150620018a08262001835565b604082019050919050565b60006020820190508181036000830152620018c68162001884565b9050919050565b620018d88162000de0565b82525050565b6000602082019050620018f56000830184620018cd565b92915050565b60006200190882620010c1565b6200191481856200171a565b93506200192681856020860162000d36565b620019318162000c6b565b840191505092915050565b60006020820190508181036000830152620019588184620018fb565b905092915050565b7f536166654d6174685374616e646172643a206164646974696f6e206f7665726660008201527f6c6f770000000000000000000000000000000000000000000000000000000000602082015250565b6000620019be6023836200171a565b9150620019cb8262001960565b604082019050919050565b60006020820190508181036000830152620019f181620019af565b9050919050565b612d5f8062001a086000396000f3fe60806040526004361061016a5760003560e01c8063715018a6116100d157806395d89b411161008a578063a9059cbb11610064578063a9059cbb1461053f578063dd62ed3e1461057c578063f2fde38b146105b9578063fe97531e146105e257610171565b806395d89b41146104ac578063a457c2d7146104d7578063a45c1f421461051457610171565b8063715018a6146103d2578063751039fc146103e95780637b02329c146104005780638da5cb5b1461042b5780638ede428c1461045657806390b3c27e1461048157610171565b806323b872dd1161012357806323b872dd1461029c578063313ce567146102d9578063395093511461030457806349bd5a5e146103415780636140757a1461036c57806370a082311461039557610171565b806306fdde0314610176578063095ea7b3146101a15780631694505e146101de57806318160ddd146102095780631bf34d401461023457806322c0cc991461025f57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b61060d565b6040516101989190611f8c565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612047565b61069f565b6040516101d591906120a2565b60405180910390f35b3480156101ea57600080fd5b506101f36106bd565b604051610200919061211c565b60405180910390f35b34801561021557600080fd5b5061021e6106e3565b60405161022b9190612146565b60405180910390f35b34801561024057600080fd5b506102496106ed565b6040516102569190612146565b60405180910390f35b34801561026b57600080fd5b5061028660048036038101906102819190612161565b6106f3565b60405161029391906120a2565b60405180910390f35b3480156102a857600080fd5b506102c360048036038101906102be919061218e565b610713565b6040516102d091906120a2565b60405180910390f35b3480156102e557600080fd5b506102ee6107ec565b6040516102fb91906121fd565b60405180910390f35b34801561031057600080fd5b5061032b60048036038101906103269190612047565b610803565b60405161033891906120a2565b60405180910390f35b34801561034d57600080fd5b506103566108b6565b6040516103639190612227565b60405180910390f35b34801561037857600080fd5b50610393600480360381019061038e919061226e565b6108dc565b005b3480156103a157600080fd5b506103bc60048036038101906103b79190612161565b6109ce565b6040516103c99190612146565b60405180910390f35b3480156103de57600080fd5b506103e7610a16565b005b3480156103f557600080fd5b506103fe610b6e565b005b34801561040c57600080fd5b50610415610c23565b6040516104229190612227565b60405180910390f35b34801561043757600080fd5b50610440610c49565b60405161044d9190612227565b60405180910390f35b34801561046257600080fd5b5061046b610c73565b6040516104789190612146565b60405180910390f35b34801561048d57600080fd5b50610496610c79565b6040516104a39190612146565b60405180910390f35b3480156104b857600080fd5b506104c1610c7f565b6040516104ce9190611f8c565b60405180910390f35b3480156104e357600080fd5b506104fe60048036038101906104f99190612047565b610d11565b60405161050b91906120a2565b60405180910390f35b34801561052057600080fd5b50610529610dde565b6040516105369190612146565b60405180910390f35b34801561054b57600080fd5b5061056660048036038101906105619190612047565b610de4565b60405161057391906120a2565b60405180910390f35b34801561058857600080fd5b506105a3600480360381019061059e91906122ae565b610e02565b6040516105b09190612146565b60405180910390f35b3480156105c557600080fd5b506105e060048036038101906105db9190612161565b610e89565b005b3480156105ee57600080fd5b506105f761104f565b6040516106049190612146565b60405180910390f35b60606003805461061c9061231d565b80601f01602080910402602001604051908101604052809291908181526020018280546106489061231d565b80156106955780601f1061066a57610100808354040283529160200191610695565b820191906000526020600020905b81548152906001019060200180831161067857829003601f168201915b5050505050905090565b60006106b36106ac611055565b848461105d565b6001905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b60075481565b60106020528060005260406000206000915054906101000a900460ff1681565b6000610720848484611226565b6107e18461072c611055565b6107dc85604051806060016040528060338152602001612c4e60339139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610792611055565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461165e9092919063ffffffff16565b61105d565b600190509392505050565b6000600560009054906101000a900460ff16905090565b60006108ac610810611055565b846108a78560016000610821611055565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116c290919063ffffffff16565b61105d565b6001905092915050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108e4611055565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610973576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096a9061239a565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a1e611055565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa49061239a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b76611055565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfc9061239a565b60405180910390fd5b610c0d6106e3565b600d81905550610c1b6106e3565b600e81905550565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60085481565b600e5481565b606060048054610c8e9061231d565b80601f0160208091040260200160405190810160405280929190818152602001828054610cba9061231d565b8015610d075780601f10610cdc57610100808354040283529160200191610d07565b820191906000526020600020905b815481529060010190602001808311610cea57829003601f168201915b5050505050905090565b6000610dd4610d1e611055565b84610dcf85604051806060016040528060308152602001612c816030913960016000610d48611055565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461165e9092919063ffffffff16565b61105d565b6001905092915050565b60065481565b6000610df8610df1611055565b8484611226565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e91611055565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f179061239a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f869061242c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c3906124be565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361113b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113290612550565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112199190612146565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148061128e575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b8061129f575061129e8383611720565b5b806112aa5750600081145b156112bf576112ba838383611878565b611659565b600d54811115611304576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fb906125e2565b60405180910390fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146113b8576000611364836109ce565b9050600e5482826113759190612631565b11156113b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ad906126b1565b60405180910390fd5b505b60006113c3306109ce565b9050600060065482101590508080156113e95750600b60149054906101000a900460ff16155b801561143f5750601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156114b7576001600b60146101000a81548160ff0219169083151502179055506000829050600081111561149a5761149981600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b0b565b5b6000600b60146101000a81548160ff021916908315150217905550505b6000600b60149054906101000a900460ff16159050600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061156d5750600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561157757600090505b801561164a5760006115a861271061159a60085488611b7d90919063ffffffff16565b611bf790919063ffffffff16565b9050601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156116285761162561271061161760075488611b7d90919063ffffffff16565b611bf790919063ffffffff16565b90505b61163b8186611c2490919063ffffffff16565b9450611648873083611878565b505b611655868686611878565b5050505b505050565b60008383111582906116a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169d9190611f8c565b60405180910390fd5b50600083856116b591906126d1565b9050809150509392505050565b60008082846116d19190612631565b905083811015611716576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170d90612777565b60405180910390fd5b8091505092915050565b6000600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117c35750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061187057506000601160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663865afe1485856040518363ffffffff1660e01b815260040161182b929190612797565b6020604051808303816000875af115801561184a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186e91906127d5565b115b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118de90612874565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611956576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194d90612906565b60405180910390fd5b611961838383611c51565b6119cc81604051806060016040528060318152602001612cb1603191396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461165e9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a5f816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116c290919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611afe9190612146565b60405180910390a3505050565b6000479050611b1983611c56565b6000611b2e8247611c2490919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611b76573d6000803e3d6000fd5b5050505050565b6000808303611b8f5760009050611bf1565b60008284611b9d9190612926565b9050828482611bac9190612997565b14611bec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be390612a3a565b60405180910390fd5b809150505b92915050565b6000611c1c8383604051806060016040528060228152602001612ce260229139611e99565b905092915050565b6000611c498383604051806060016040528060268152602001612d046026913961165e565b905092915050565b505050565b6000600267ffffffffffffffff811115611c7357611c72612a5a565b5b604051908082528060200260200182016040528015611ca15781602001602082028036833780820191505090505b5090503081600081518110611cb957611cb8612a89565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d849190612acd565b81600181518110611d9857611d97612a89565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611dff30600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461105d565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e63959493929190612bf3565b600060405180830381600087803b158015611e7d57600080fd5b505af1158015611e91573d6000803e3d6000fd5b505050505050565b60008083118290611ee0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed79190611f8c565b60405180910390fd5b5060008385611eef9190612997565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611f36578082015181840152602081019050611f1b565b60008484015250505050565b6000601f19601f8301169050919050565b6000611f5e82611efc565b611f688185611f07565b9350611f78818560208601611f18565b611f8181611f42565b840191505092915050565b60006020820190508181036000830152611fa68184611f53565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611fde82611fb3565b9050919050565b611fee81611fd3565b8114611ff957600080fd5b50565b60008135905061200b81611fe5565b92915050565b6000819050919050565b61202481612011565b811461202f57600080fd5b50565b6000813590506120418161201b565b92915050565b6000806040838503121561205e5761205d611fae565b5b600061206c85828601611ffc565b925050602061207d85828601612032565b9150509250929050565b60008115159050919050565b61209c81612087565b82525050565b60006020820190506120b76000830184612093565b92915050565b6000819050919050565b60006120e26120dd6120d884611fb3565b6120bd565b611fb3565b9050919050565b60006120f4826120c7565b9050919050565b6000612106826120e9565b9050919050565b612116816120fb565b82525050565b6000602082019050612131600083018461210d565b92915050565b61214081612011565b82525050565b600060208201905061215b6000830184612137565b92915050565b60006020828403121561217757612176611fae565b5b600061218584828501611ffc565b91505092915050565b6000806000606084860312156121a7576121a6611fae565b5b60006121b586828701611ffc565b93505060206121c686828701611ffc565b92505060406121d786828701612032565b9150509250925092565b600060ff82169050919050565b6121f7816121e1565b82525050565b600060208201905061221260008301846121ee565b92915050565b61222181611fd3565b82525050565b600060208201905061223c6000830184612218565b92915050565b61224b81612087565b811461225657600080fd5b50565b60008135905061226881612242565b92915050565b6000806040838503121561228557612284611fae565b5b600061229385828601611ffc565b92505060206122a485828601612259565b9150509250929050565b600080604083850312156122c5576122c4611fae565b5b60006122d385828601611ffc565b92505060206122e485828601611ffc565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061233557607f821691505b602082108103612348576123476122ee565b5b50919050565b7f4f77616e626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612384602083611f07565b915061238f8261234e565b602082019050919050565b600060208201905081810360008301526123b381612377565b9050919050565b7f4f77616e626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612416602683611f07565b9150612421826123ba565b604082019050919050565b6000602082019050818103600083015261244581612409565b9050919050565b7f4f70656e7a6570706c696e45524332303a20617070726f76652066726f6d207460008201527f6865207a65726f20616464726573730000000000000000000000000000000000602082015250565b60006124a8602f83611f07565b91506124b38261244c565b604082019050919050565b600060208201905081810360008301526124d78161249b565b9050919050565b7f4f70656e7a6570706c696e45524332303a20617070726f766520746f2074686560008201527f207a65726f206164647265737300000000000000000000000000000000000000602082015250565b600061253a602d83611f07565b9150612545826124de565b604082019050919050565b600060208201905081810360008301526125698161252d565b9050919050565b7f5472616e7366657220616d6f756e7420657863656564732074686520676f706560008201527f4d61785472616e73616374696f6e2e0000000000000000000000000000000000602082015250565b60006125cc602f83611f07565b91506125d782612570565b604082019050919050565b600060208201905081810360008301526125fb816125bf565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061263c82612011565b915061264783612011565b925082820190508082111561265f5761265e612602565b5b92915050565b7f45786365656473206d6178696d756d2077616c6c657420616d6f756e74000000600082015250565b600061269b601d83611f07565b91506126a682612665565b602082019050919050565b600060208201905081810360008301526126ca8161268e565b9050919050565b60006126dc82612011565b91506126e783612011565b92508282039050818111156126ff576126fe612602565b5b92915050565b7f536166654d6174685374616e646172643a206164646974696f6e206f7665726660008201527f6c6f770000000000000000000000000000000000000000000000000000000000602082015250565b6000612761602383611f07565b915061276c82612705565b604082019050919050565b6000602082019050818103600083015261279081612754565b9050919050565b60006040820190506127ac6000830185612218565b6127b96020830184612218565b9392505050565b6000815190506127cf8161201b565b92915050565b6000602082840312156127eb576127ea611fae565b5b60006127f9848285016127c0565b91505092915050565b7f4f70656e7a6570706c696e45524332303a207472616e736665722066726f6d2060008201527f746865207a65726f206164647265737300000000000000000000000000000000602082015250565b600061285e603083611f07565b915061286982612802565b604082019050919050565b6000602082019050818103600083015261288d81612851565b9050919050565b7f4f70656e7a6570706c696e45524332303a207472616e7366657220746f20746860008201527f65207a65726f2061646472657373000000000000000000000000000000000000602082015250565b60006128f0602e83611f07565b91506128fb82612894565b604082019050919050565b6000602082019050818103600083015261291f816128e3565b9050919050565b600061293182612011565b915061293c83612011565b925082820261294a81612011565b9150828204841483151761296157612960612602565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006129a282612011565b91506129ad83612011565b9250826129bd576129bc612968565b5b828204905092915050565b7f536166654d6174685374616e646172643a206d756c7469706c69636174696f6e60008201527f206f766572666c6f770000000000000000000000000000000000000000000000602082015250565b6000612a24602983611f07565b9150612a2f826129c8565b604082019050919050565b60006020820190508181036000830152612a5381612a17565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612ac781611fe5565b92915050565b600060208284031215612ae357612ae2611fae565b5b6000612af184828501612ab8565b91505092915050565b6000819050919050565b6000612b1f612b1a612b1584612afa565b6120bd565b612011565b9050919050565b612b2f81612b04565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612b6a81611fd3565b82525050565b6000612b7c8383612b61565b60208301905092915050565b6000602082019050919050565b6000612ba082612b35565b612baa8185612b40565b9350612bb583612b51565b8060005b83811015612be6578151612bcd8882612b70565b9750612bd883612b88565b925050600181019050612bb9565b5085935050505092915050565b600060a082019050612c086000830188612137565b612c156020830187612b26565b8181036040830152612c278186612b95565b9050612c366060830185612218565b612c436080830184612137565b969550505050505056fe4f70656e7a6570706c696e45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f70656e7a6570706c696e45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f4f70656e7a6570706c696e45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174685374616e646172643a206469766973696f6e206279207a65726f536166654d6174685374616e646172643a207375627472616374696f6e206f766572666c6f77a2646970667358221220f9477f5df6671e03bedd646e255e3002621e8c643d2438b1d8816d8767dd12b364736f6c63430008130033536166654d6174685374616e646172643a206469766973696f6e206279207a65726f00000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000063b574e3eadc07af7c3ca7da7f8d0279f09d9d34000000000000000000000000000000000000000000000000000000000000038400000000000000000000000000000000000000000000000000000000000003840000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000396da4b95c08b198ca4637cd6aa6b8c02fbbb2e700000000000000000000000067b022df5e6d4fde122690535568be24282c4c3a00000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000008476f6420506570650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004474f504500000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x60806040526004361061016a5760003560e01c8063715018a6116100d157806395d89b411161008a578063a9059cbb11610064578063a9059cbb1461053f578063dd62ed3e1461057c578063f2fde38b146105b9578063fe97531e146105e257610171565b806395d89b41146104ac578063a457c2d7146104d7578063a45c1f421461051457610171565b8063715018a6146103d2578063751039fc146103e95780637b02329c146104005780638da5cb5b1461042b5780638ede428c1461045657806390b3c27e1461048157610171565b806323b872dd1161012357806323b872dd1461029c578063313ce567146102d9578063395093511461030457806349bd5a5e146103415780636140757a1461036c57806370a082311461039557610171565b806306fdde0314610176578063095ea7b3146101a15780631694505e146101de57806318160ddd146102095780631bf34d401461023457806322c0cc991461025f57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b61060d565b6040516101989190611f8c565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612047565b61069f565b6040516101d591906120a2565b60405180910390f35b3480156101ea57600080fd5b506101f36106bd565b604051610200919061211c565b60405180910390f35b34801561021557600080fd5b5061021e6106e3565b60405161022b9190612146565b60405180910390f35b34801561024057600080fd5b506102496106ed565b6040516102569190612146565b60405180910390f35b34801561026b57600080fd5b5061028660048036038101906102819190612161565b6106f3565b60405161029391906120a2565b60405180910390f35b3480156102a857600080fd5b506102c360048036038101906102be919061218e565b610713565b6040516102d091906120a2565b60405180910390f35b3480156102e557600080fd5b506102ee6107ec565b6040516102fb91906121fd565b60405180910390f35b34801561031057600080fd5b5061032b60048036038101906103269190612047565b610803565b60405161033891906120a2565b60405180910390f35b34801561034d57600080fd5b506103566108b6565b6040516103639190612227565b60405180910390f35b34801561037857600080fd5b50610393600480360381019061038e919061226e565b6108dc565b005b3480156103a157600080fd5b506103bc60048036038101906103b79190612161565b6109ce565b6040516103c99190612146565b60405180910390f35b3480156103de57600080fd5b506103e7610a16565b005b3480156103f557600080fd5b506103fe610b6e565b005b34801561040c57600080fd5b50610415610c23565b6040516104229190612227565b60405180910390f35b34801561043757600080fd5b50610440610c49565b60405161044d9190612227565b60405180910390f35b34801561046257600080fd5b5061046b610c73565b6040516104789190612146565b60405180910390f35b34801561048d57600080fd5b50610496610c79565b6040516104a39190612146565b60405180910390f35b3480156104b857600080fd5b506104c1610c7f565b6040516104ce9190611f8c565b60405180910390f35b3480156104e357600080fd5b506104fe60048036038101906104f99190612047565b610d11565b60405161050b91906120a2565b60405180910390f35b34801561052057600080fd5b50610529610dde565b6040516105369190612146565b60405180910390f35b34801561054b57600080fd5b5061056660048036038101906105619190612047565b610de4565b60405161057391906120a2565b60405180910390f35b34801561058857600080fd5b506105a3600480360381019061059e91906122ae565b610e02565b6040516105b09190612146565b60405180910390f35b3480156105c557600080fd5b506105e060048036038101906105db9190612161565b610e89565b005b3480156105ee57600080fd5b506105f761104f565b6040516106049190612146565b60405180910390f35b60606003805461061c9061231d565b80601f01602080910402602001604051908101604052809291908181526020018280546106489061231d565b80156106955780601f1061066a57610100808354040283529160200191610695565b820191906000526020600020905b81548152906001019060200180831161067857829003601f168201915b5050505050905090565b60006106b36106ac611055565b848461105d565b6001905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b60075481565b60106020528060005260406000206000915054906101000a900460ff1681565b6000610720848484611226565b6107e18461072c611055565b6107dc85604051806060016040528060338152602001612c4e60339139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610792611055565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461165e9092919063ffffffff16565b61105d565b600190509392505050565b6000600560009054906101000a900460ff16905090565b60006108ac610810611055565b846108a78560016000610821611055565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116c290919063ffffffff16565b61105d565b6001905092915050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108e4611055565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610973576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096a9061239a565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a1e611055565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa49061239a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b76611055565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfc9061239a565b60405180910390fd5b610c0d6106e3565b600d81905550610c1b6106e3565b600e81905550565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60085481565b600e5481565b606060048054610c8e9061231d565b80601f0160208091040260200160405190810160405280929190818152602001828054610cba9061231d565b8015610d075780601f10610cdc57610100808354040283529160200191610d07565b820191906000526020600020905b815481529060010190602001808311610cea57829003601f168201915b5050505050905090565b6000610dd4610d1e611055565b84610dcf85604051806060016040528060308152602001612c816030913960016000610d48611055565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461165e9092919063ffffffff16565b61105d565b6001905092915050565b60065481565b6000610df8610df1611055565b8484611226565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e91611055565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f179061239a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f869061242c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c3906124be565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361113b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113290612550565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112199190612146565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148061128e575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b8061129f575061129e8383611720565b5b806112aa5750600081145b156112bf576112ba838383611878565b611659565b600d54811115611304576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fb906125e2565b60405180910390fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146113b8576000611364836109ce565b9050600e5482826113759190612631565b11156113b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ad906126b1565b60405180910390fd5b505b60006113c3306109ce565b9050600060065482101590508080156113e95750600b60149054906101000a900460ff16155b801561143f5750601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156114b7576001600b60146101000a81548160ff0219169083151502179055506000829050600081111561149a5761149981600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b0b565b5b6000600b60146101000a81548160ff021916908315150217905550505b6000600b60149054906101000a900460ff16159050600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061156d5750600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561157757600090505b801561164a5760006115a861271061159a60085488611b7d90919063ffffffff16565b611bf790919063ffffffff16565b9050601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156116285761162561271061161760075488611b7d90919063ffffffff16565b611bf790919063ffffffff16565b90505b61163b8186611c2490919063ffffffff16565b9450611648873083611878565b505b611655868686611878565b5050505b505050565b60008383111582906116a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169d9190611f8c565b60405180910390fd5b50600083856116b591906126d1565b9050809150509392505050565b60008082846116d19190612631565b905083811015611716576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170d90612777565b60405180910390fd5b8091505092915050565b6000600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117c35750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061187057506000601160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663865afe1485856040518363ffffffff1660e01b815260040161182b929190612797565b6020604051808303816000875af115801561184a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186e91906127d5565b115b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118de90612874565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611956576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194d90612906565b60405180910390fd5b611961838383611c51565b6119cc81604051806060016040528060318152602001612cb1603191396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461165e9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a5f816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116c290919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611afe9190612146565b60405180910390a3505050565b6000479050611b1983611c56565b6000611b2e8247611c2490919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611b76573d6000803e3d6000fd5b5050505050565b6000808303611b8f5760009050611bf1565b60008284611b9d9190612926565b9050828482611bac9190612997565b14611bec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be390612a3a565b60405180910390fd5b809150505b92915050565b6000611c1c8383604051806060016040528060228152602001612ce260229139611e99565b905092915050565b6000611c498383604051806060016040528060268152602001612d046026913961165e565b905092915050565b505050565b6000600267ffffffffffffffff811115611c7357611c72612a5a565b5b604051908082528060200260200182016040528015611ca15781602001602082028036833780820191505090505b5090503081600081518110611cb957611cb8612a89565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d849190612acd565b81600181518110611d9857611d97612a89565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611dff30600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461105d565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e63959493929190612bf3565b600060405180830381600087803b158015611e7d57600080fd5b505af1158015611e91573d6000803e3d6000fd5b505050505050565b60008083118290611ee0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed79190611f8c565b60405180910390fd5b5060008385611eef9190612997565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611f36578082015181840152602081019050611f1b565b60008484015250505050565b6000601f19601f8301169050919050565b6000611f5e82611efc565b611f688185611f07565b9350611f78818560208601611f18565b611f8181611f42565b840191505092915050565b60006020820190508181036000830152611fa68184611f53565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611fde82611fb3565b9050919050565b611fee81611fd3565b8114611ff957600080fd5b50565b60008135905061200b81611fe5565b92915050565b6000819050919050565b61202481612011565b811461202f57600080fd5b50565b6000813590506120418161201b565b92915050565b6000806040838503121561205e5761205d611fae565b5b600061206c85828601611ffc565b925050602061207d85828601612032565b9150509250929050565b60008115159050919050565b61209c81612087565b82525050565b60006020820190506120b76000830184612093565b92915050565b6000819050919050565b60006120e26120dd6120d884611fb3565b6120bd565b611fb3565b9050919050565b60006120f4826120c7565b9050919050565b6000612106826120e9565b9050919050565b612116816120fb565b82525050565b6000602082019050612131600083018461210d565b92915050565b61214081612011565b82525050565b600060208201905061215b6000830184612137565b92915050565b60006020828403121561217757612176611fae565b5b600061218584828501611ffc565b91505092915050565b6000806000606084860312156121a7576121a6611fae565b5b60006121b586828701611ffc565b93505060206121c686828701611ffc565b92505060406121d786828701612032565b9150509250925092565b600060ff82169050919050565b6121f7816121e1565b82525050565b600060208201905061221260008301846121ee565b92915050565b61222181611fd3565b82525050565b600060208201905061223c6000830184612218565b92915050565b61224b81612087565b811461225657600080fd5b50565b60008135905061226881612242565b92915050565b6000806040838503121561228557612284611fae565b5b600061229385828601611ffc565b92505060206122a485828601612259565b9150509250929050565b600080604083850312156122c5576122c4611fae565b5b60006122d385828601611ffc565b92505060206122e485828601611ffc565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061233557607f821691505b602082108103612348576123476122ee565b5b50919050565b7f4f77616e626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612384602083611f07565b915061238f8261234e565b602082019050919050565b600060208201905081810360008301526123b381612377565b9050919050565b7f4f77616e626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612416602683611f07565b9150612421826123ba565b604082019050919050565b6000602082019050818103600083015261244581612409565b9050919050565b7f4f70656e7a6570706c696e45524332303a20617070726f76652066726f6d207460008201527f6865207a65726f20616464726573730000000000000000000000000000000000602082015250565b60006124a8602f83611f07565b91506124b38261244c565b604082019050919050565b600060208201905081810360008301526124d78161249b565b9050919050565b7f4f70656e7a6570706c696e45524332303a20617070726f766520746f2074686560008201527f207a65726f206164647265737300000000000000000000000000000000000000602082015250565b600061253a602d83611f07565b9150612545826124de565b604082019050919050565b600060208201905081810360008301526125698161252d565b9050919050565b7f5472616e7366657220616d6f756e7420657863656564732074686520676f706560008201527f4d61785472616e73616374696f6e2e0000000000000000000000000000000000602082015250565b60006125cc602f83611f07565b91506125d782612570565b604082019050919050565b600060208201905081810360008301526125fb816125bf565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061263c82612011565b915061264783612011565b925082820190508082111561265f5761265e612602565b5b92915050565b7f45786365656473206d6178696d756d2077616c6c657420616d6f756e74000000600082015250565b600061269b601d83611f07565b91506126a682612665565b602082019050919050565b600060208201905081810360008301526126ca8161268e565b9050919050565b60006126dc82612011565b91506126e783612011565b92508282039050818111156126ff576126fe612602565b5b92915050565b7f536166654d6174685374616e646172643a206164646974696f6e206f7665726660008201527f6c6f770000000000000000000000000000000000000000000000000000000000602082015250565b6000612761602383611f07565b915061276c82612705565b604082019050919050565b6000602082019050818103600083015261279081612754565b9050919050565b60006040820190506127ac6000830185612218565b6127b96020830184612218565b9392505050565b6000815190506127cf8161201b565b92915050565b6000602082840312156127eb576127ea611fae565b5b60006127f9848285016127c0565b91505092915050565b7f4f70656e7a6570706c696e45524332303a207472616e736665722066726f6d2060008201527f746865207a65726f206164647265737300000000000000000000000000000000602082015250565b600061285e603083611f07565b915061286982612802565b604082019050919050565b6000602082019050818103600083015261288d81612851565b9050919050565b7f4f70656e7a6570706c696e45524332303a207472616e7366657220746f20746860008201527f65207a65726f2061646472657373000000000000000000000000000000000000602082015250565b60006128f0602e83611f07565b91506128fb82612894565b604082019050919050565b6000602082019050818103600083015261291f816128e3565b9050919050565b600061293182612011565b915061293c83612011565b925082820261294a81612011565b9150828204841483151761296157612960612602565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006129a282612011565b91506129ad83612011565b9250826129bd576129bc612968565b5b828204905092915050565b7f536166654d6174685374616e646172643a206d756c7469706c69636174696f6e60008201527f206f766572666c6f770000000000000000000000000000000000000000000000602082015250565b6000612a24602983611f07565b9150612a2f826129c8565b604082019050919050565b60006020820190508181036000830152612a5381612a17565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612ac781611fe5565b92915050565b600060208284031215612ae357612ae2611fae565b5b6000612af184828501612ab8565b91505092915050565b6000819050919050565b6000612b1f612b1a612b1584612afa565b6120bd565b612011565b9050919050565b612b2f81612b04565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612b6a81611fd3565b82525050565b6000612b7c8383612b61565b60208301905092915050565b6000602082019050919050565b6000612ba082612b35565b612baa8185612b40565b9350612bb583612b51565b8060005b83811015612be6578151612bcd8882612b70565b9750612bd883612b88565b925050600181019050612bb9565b5085935050505092915050565b600060a082019050612c086000830188612137565b612c156020830187612b26565b8181036040830152612c278186612b95565b9050612c366060830185612218565b612c436080830184612137565b969550505050505056fe4f70656e7a6570706c696e45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f70656e7a6570706c696e45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f4f70656e7a6570706c696e45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174685374616e646172643a206469766973696f6e206279207a65726f536166654d6174685374616e646172643a207375627472616374696f6e206f766572666c6f77a2646970667358221220f9477f5df6671e03bedd646e255e3002621e8c643d2438b1d8816d8767dd12b364736f6c63430008130033

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

00000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000063b574e3eadc07af7c3ca7da7f8d0279f09d9d34000000000000000000000000000000000000000000000000000000000000038400000000000000000000000000000000000000000000000000000000000003840000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000396da4b95c08b198ca4637cd6aa6b8c02fbbb2e700000000000000000000000067b022df5e6d4fde122690535568be24282c4c3a00000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000008476f6420506570650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004474f504500000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name_ (string): God Pepe
Arg [1] : symbol_ (string): GOPE
Arg [2] : supply_ (uint256): 1000000000
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] : 000000000000000000000000000000000000000000000000000000003b9aca00
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [6] : 00000000000000000000000063b574e3eadc07af7c3ca7da7f8d0279f09d9d34
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000384
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000384
Arg [9] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [10] : 000000000000000000000000396da4b95c08b198ca4637cd6aa6b8c02fbbb2e7
Arg [11] : 00000000000000000000000067b022df5e6d4fde122690535568be24282c4c3a
Arg [12] : 0000000000000000000000000000000000000000000000000000000000000064
Arg [13] : 0000000000000000000000000000000000000000000000000000000000000008
Arg [14] : 476f642050657065000000000000000000000000000000000000000000000000
Arg [15] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [16] : 474f504500000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

27178:5787:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9500:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11882:210;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27411:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10662:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27311:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27696:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12593:465;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10489:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13475:300;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27457:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;29842:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10841:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20047:148;;;;;;;;;;;;;:::i;:::-;;29665:136;;;;;;;;;;;;;:::i;:::-;;27524:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19405:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27344:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27599:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9719:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14286:411;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27269:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11239:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11526:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20350:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;27559:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9500:100;9554:13;9587:5;9580:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9500:100;:::o;11882:210::-;12001:4;12023:39;12032:12;:10;:12::i;:::-;12046:7;12055:6;12023:8;:39::i;:::-;12080:4;12073:11;;11882:210;;;;:::o;27411:39::-;;;;;;;;;;;;;:::o;10662:108::-;10723:7;10750:12;;10743:19;;10662:108;:::o;27311:26::-;;;;:::o;27696:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;12593:465::-;12733:4;12750:36;12760:6;12768:9;12779:6;12750:9;:36::i;:::-;12797:231;12820:6;12841:12;:10;:12::i;:::-;12868:149;12924:6;12868:149;;;;;;;;;;;;;;;;;:11;:19;12880:6;12868:19;;;;;;;;;;;;;;;:33;12888:12;:10;:12::i;:::-;12868:33;;;;;;;;;;;;;;;;:37;;:149;;;;;:::i;:::-;12797:8;:231::i;:::-;13046:4;13039:11;;12593:465;;;;;:::o;10489:100::-;10547:5;10572:9;;;;;;;;;;;10565:16;;10489:100;:::o;13475:300::-;13590:4;13612:133;13635:12;:10;:12::i;:::-;13662:7;13684:50;13723:10;13684:11;:25;13696:12;:10;:12::i;:::-;13684:25;;;;;;;;;;;;;;;:34;13710:7;13684:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;13612:8;:133::i;:::-;13763:4;13756:11;;13475:300;;;;:::o;27457:28::-;;;;;;;;;;;;;:::o;29842:139::-;19627:12;:10;:12::i;:::-;19617:22;;:6;;;;;;;;;;;:22;;;19609:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;29965:8:::1;29931:22;:31;29954:7;29931:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;29842:139:::0;;:::o;10841:177::-;10960:7;10992:9;:18;11002:7;10992:18;;;;;;;;;;;;;;;;10985:25;;10841:177;;;:::o;20047:148::-;19627:12;:10;:12::i;:::-;19617:22;;:6;;;;;;;;;;;:22;;;19609:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20154:1:::1;20117:40;;20138:6;;;;;;;;;;;20117:40;;;;;;;;;;;;20185:1;20168:6;;:19;;;;;;;;;;;;;;;;;;20047:148::o:0;29665:136::-;19627:12;:10;:12::i;:::-;19617:22;;:6;;;;;;;;;;;:22;;;19609:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;29740:13:::1;:11;:13::i;:::-;29719:18;:34;;;;29780:13;:11;:13::i;:::-;29764;:29;;;;29665:136::o:0;27524:28::-;;;;;;;;;;;;;:::o;19405:79::-;19443:7;19470:6;;;;;;;;;;;19463:13;;19405:79;:::o;27344:25::-;;;;:::o;27599:28::-;;;;:::o;9719:104::-;9775:13;9808:7;9801:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9719:104;:::o;14286:411::-;14406:4;14428:239;14451:12;:10;:12::i;:::-;14478:7;14500:156;14557:15;14500:156;;;;;;;;;;;;;;;;;:11;:25;14512:12;:10;:12::i;:::-;14500:25;;;;;;;;;;;;;;;:34;14526:7;14500:34;;;;;;;;;;;;;;;;:38;;:156;;;;;:::i;:::-;14428:8;:239::i;:::-;14685:4;14678:11;;14286:411;;;;:::o;27269:35::-;;;;:::o;11239:216::-;11361:4;11383:42;11393:12;:10;:12::i;:::-;11407:9;11418:6;11383:9;:42::i;:::-;11443:4;11436:11;;11239:216;;;;:::o;11526:201::-;11660:7;11692:11;:18;11704:5;11692:18;;;;;;;;;;;;;;;:27;11711:7;11692:27;;;;;;;;;;;;;;;;11685:34;;11526:201;;;;:::o;20350:281::-;19627:12;:10;:12::i;:::-;19617:22;;:6;;;;;;;;;;;:22;;;19609:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20473:1:::1;20453:22;;:8;:22;;::::0;20431:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;20586:8;20557:38;;20578:6;;;;;;;;;;;20557:38;;;;;;;;;;;;20615:8;20606:6;;:17;;;;;;;;;;;;;;;;;;20350:281:::0;:::o;27559:33::-;;;;:::o;139:98::-;192:7;219:10;212:17;;139:98;:::o;17754:402::-;17907:1;17890:19;;:5;:19;;;17882:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;17999:1;17980:21;;:7;:21;;;17972:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;18094:6;18064:11;:18;18076:5;18064:18;;;;;;;;;;;;;;;:27;18083:7;18064:27;;;;;;;;;;;;;;;:36;;;;18132:7;18116:32;;18125:5;18116:32;;;18141:6;18116:32;;;;;;:::i;:::-;;;;;;;;17754:402;;;:::o;31352:1610::-;31509:1;31495:16;;:2;:16;;;:41;;;;31529:6;31515:21;;:2;:21;;;31495:41;31494:94;;;;31554:34;31579:4;31585:2;31554:24;:34::i;:::-;31494:94;:122;;;;31615:1;31605:6;:11;31494:122;31476:560;;;31630:33;31646:4;31652:2;31656:6;31630:15;:33::i;:::-;31664:7;;31476:560;31721:18;;31711:6;:28;;31703:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;31816:13;;;;;;;;;;;31810:19;;:2;:19;;;31806:219;;31850:32;31885:13;31895:2;31885:9;:13::i;:::-;31850:48;;31962:13;;31952:6;31925:24;:33;;;;:::i;:::-;:50;;31917:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;31831:194;31806:219;32046:28;32077:24;32095:4;32077:9;:24::i;:::-;32046:55;;32112:12;32151:20;;32127;:44;;32112:59;;32186:7;:24;;;;;32198:12;;;;;;;;;;;32197:13;32186:24;:51;;;;;32215:16;:22;32232:4;32215:22;;;;;;;;;;;;;;;;;;;;;;;;;32214:23;32186:51;32182:291;;;32269:4;32254:12;;:19;;;;;;;;;;;;;;;;;;32288:23;32314:20;32288:46;;32371:1;32353:15;:19;32349:78;;;32376:48;32393:15;32410:13;;;;;;;;;;;32376:16;:48::i;:::-;32349:78;32456:5;32441:12;;:20;;;;;;;;;;;;;;;;;;32239:234;32182:291;32483:12;32499;;;;;;;;;;;32498:13;32483:28;;32526:22;:28;32549:4;32526:28;;;;;;;;;;;;;;;;;;;;;;;;;:58;;;;32558:22;:26;32581:2;32558:26;;;;;;;;;;;;;;;;;;;;;;;;;32526:58;32522:106;;;32611:5;32601:15;;32522:106;32644:7;32640:271;;;32668:12;32683:33;32710:5;32683:22;32694:10;;32683:6;:10;;:22;;;;:::i;:::-;:26;;:33;;;;:::i;:::-;32668:48;;32735:16;:20;32752:2;32735:20;;;;;;;;;;;;;;;;;;;;;;;;;32731:72;;;32766:34;32794:5;32766:23;32777:11;;32766:6;:10;;:23;;;;:::i;:::-;:27;;:34;;;;:::i;:::-;32759:41;;32731:72;32826:16;32837:4;32826:6;:10;;:16;;;;:::i;:::-;32817:25;;32857:42;32873:4;32887;32894;32857:15;:42::i;:::-;32653:258;32640:271;32921:33;32937:4;32943:2;32947:6;32921:15;:33::i;:::-;31465:1497;;;31352:1610;;;;:::o;1673:226::-;1793:7;1826:1;1821;:6;;1829:12;1813:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1853:9;1869:1;1865;:5;;;;:::i;:::-;1853:17;;1890:1;1883:8;;;1673:226;;;;;:::o;754:189::-;812:7;832:9;848:1;844;:5;;;;:::i;:::-;832:17;;873:1;868;:6;;860:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;934:1;927:8;;;754:189;;;;:::o;30322:245::-;30400:4;30424:22;:28;30447:4;30424:28;;;;;;;;;;;;;;;;;;;;;;;;;:58;;;;30456:22;:26;30479:2;30456:26;;;;;;;;;;;;;;;;;;;;;;;;;30424:58;:135;;;;30558:1;30510:3;:16;;;;;;;;;;;;30486:59;;;30546:4;30552:2;30486:69;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:73;30424:135;30417:142;;30322:245;;;;:::o;15187:643::-;15345:1;15327:20;;:6;:20;;;15319:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;15440:1;15419:23;;:9;:23;;;15411:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;15506:47;15527:6;15535:9;15546:6;15506:20;:47::i;:::-;15586:119;15622:6;15586:119;;;;;;;;;;;;;;;;;:9;:17;15596:6;15586:17;;;;;;;;;;;;;;;;:21;;:119;;;;;:::i;:::-;15566:9;:17;15576:6;15566:17;;;;;;;;;;;;;;;:139;;;;15739:32;15764:6;15739:9;:20;15749:9;15739:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;15716:9;:20;15726:9;15716:20;;;;;;;;;;;;;;;:55;;;;15804:9;15787:35;;15796:6;15787:35;;;15815:6;15787:35;;;;;;:::i;:::-;;;;;;;;15187:643;;;:::o;31050:296::-;31129:22;31154:21;31129:46;;31188:24;31205:6;31188:16;:24::i;:::-;31225:18;31246:41;31272:14;31246:21;:25;;:41;;;;:::i;:::-;31225:62;;31308:8;31300:26;;:38;31327:10;31300:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31118:228;;31050:296;;:::o;2158:479::-;2216:7;2466:1;2461;:6;2457:47;;2491:1;2484:8;;;;2457:47;2516:9;2532:1;2528;:5;;;;:::i;:::-;2516:17;;2561:1;2556;2552;:5;;;;:::i;:::-;:10;2544:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;2628:1;2621:8;;;2158:479;;;;;:::o;3113:140::-;3171:7;3198:47;3202:1;3205;3198:47;;;;;;;;;;;;;;;;;:3;:47::i;:::-;3191:54;;3113:140;;;;:::o;1226:144::-;1284:7;1311:51;1315:1;1318;1311:51;;;;;;;;;;;;;;;;;:3;:51::i;:::-;1304:58;;1226:144;;;;:::o;18759:125::-;;;;:::o;30573:471::-;30639:21;30677:1;30663:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30639:40;;30708:4;30690;30695:1;30690:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;30734:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;30724:4;30729:1;30724:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;30767:62;30784:4;30799:15;;;;;;;;;;;30817:11;30767:8;:62::i;:::-;30840:15;;;;;;;;;;;:66;;;30921:11;30947:1;30963:4;30990;31010:15;30840:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30628:416;30573:471;:::o;3749:312::-;3869:7;3901:1;3897;:5;3904:12;3889:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3928:9;3944:1;3940;:5;;;;:::i;:::-;3928:17;;4052:1;4045:8;;;3749: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:151::-;3867:9;3900:37;3931:5;3900:37;:::i;:::-;3887:50;;3792:151;;;:::o;3949:181::-;4061:62;4117:5;4061:62;:::i;:::-;4056:3;4049:75;3949:181;;:::o;4136:272::-;4254:4;4292:2;4281:9;4277:18;4269:26;;4305:96;4398:1;4387:9;4383:17;4374:6;4305:96;:::i;:::-;4136:272;;;;:::o;4414:118::-;4501:24;4519:5;4501:24;:::i;:::-;4496:3;4489:37;4414:118;;:::o;4538:222::-;4631:4;4669:2;4658:9;4654:18;4646:26;;4682:71;4750:1;4739:9;4735:17;4726:6;4682:71;:::i;:::-;4538:222;;;;:::o;4766:329::-;4825:6;4874:2;4862:9;4853:7;4849:23;4845:32;4842:119;;;4880:79;;:::i;:::-;4842:119;5000:1;5025:53;5070:7;5061:6;5050:9;5046:22;5025:53;:::i;:::-;5015:63;;4971:117;4766:329;;;;:::o;5101:619::-;5178:6;5186;5194;5243:2;5231:9;5222:7;5218:23;5214:32;5211:119;;;5249:79;;:::i;:::-;5211:119;5369:1;5394:53;5439:7;5430:6;5419:9;5415:22;5394:53;:::i;:::-;5384:63;;5340:117;5496:2;5522:53;5567:7;5558:6;5547:9;5543:22;5522:53;:::i;:::-;5512:63;;5467:118;5624:2;5650:53;5695:7;5686:6;5675:9;5671:22;5650:53;:::i;:::-;5640:63;;5595:118;5101:619;;;;;:::o;5726:86::-;5761:7;5801:4;5794:5;5790:16;5779:27;;5726:86;;;:::o;5818:112::-;5901:22;5917:5;5901:22;:::i;:::-;5896:3;5889:35;5818:112;;:::o;5936:214::-;6025:4;6063:2;6052:9;6048:18;6040:26;;6076:67;6140:1;6129:9;6125:17;6116:6;6076:67;:::i;:::-;5936:214;;;;:::o;6156:118::-;6243:24;6261:5;6243:24;:::i;:::-;6238:3;6231:37;6156:118;;:::o;6280:222::-;6373:4;6411:2;6400:9;6396:18;6388:26;;6424:71;6492:1;6481:9;6477:17;6468:6;6424:71;:::i;:::-;6280:222;;;;:::o;6508:116::-;6578:21;6593:5;6578:21;:::i;:::-;6571:5;6568:32;6558:60;;6614:1;6611;6604:12;6558:60;6508:116;:::o;6630:133::-;6673:5;6711:6;6698:20;6689:29;;6727:30;6751:5;6727:30;:::i;:::-;6630:133;;;;:::o;6769:468::-;6834:6;6842;6891:2;6879:9;6870:7;6866:23;6862:32;6859:119;;;6897:79;;:::i;:::-;6859:119;7017:1;7042:53;7087:7;7078:6;7067:9;7063:22;7042:53;:::i;:::-;7032:63;;6988:117;7144:2;7170:50;7212:7;7203:6;7192:9;7188:22;7170:50;:::i;:::-;7160:60;;7115:115;6769:468;;;;;:::o;7243:474::-;7311:6;7319;7368:2;7356:9;7347:7;7343:23;7339:32;7336:119;;;7374:79;;:::i;:::-;7336:119;7494:1;7519:53;7564:7;7555:6;7544:9;7540:22;7519:53;:::i;:::-;7509:63;;7465:117;7621:2;7647:53;7692:7;7683:6;7672:9;7668:22;7647:53;:::i;:::-;7637:63;;7592:118;7243:474;;;;;:::o;7723:180::-;7771:77;7768:1;7761:88;7868:4;7865:1;7858:15;7892:4;7889:1;7882:15;7909:320;7953:6;7990:1;7984:4;7980:12;7970:22;;8037:1;8031:4;8027:12;8058:18;8048:81;;8114:4;8106:6;8102:17;8092:27;;8048:81;8176:2;8168:6;8165:14;8145:18;8142:38;8139:84;;8195:18;;:::i;:::-;8139:84;7960:269;7909:320;;;:::o;8235:182::-;8375:34;8371:1;8363:6;8359:14;8352:58;8235:182;:::o;8423:366::-;8565:3;8586:67;8650:2;8645:3;8586:67;:::i;:::-;8579:74;;8662:93;8751:3;8662:93;:::i;:::-;8780:2;8775:3;8771:12;8764:19;;8423:366;;;:::o;8795:419::-;8961:4;8999:2;8988:9;8984:18;8976:26;;9048:9;9042:4;9038:20;9034:1;9023:9;9019:17;9012:47;9076:131;9202:4;9076:131;:::i;:::-;9068:139;;8795:419;;;:::o;9220:225::-;9360:34;9356:1;9348:6;9344:14;9337:58;9429:8;9424:2;9416:6;9412:15;9405:33;9220:225;:::o;9451:366::-;9593:3;9614:67;9678:2;9673:3;9614:67;:::i;:::-;9607:74;;9690:93;9779:3;9690:93;:::i;:::-;9808:2;9803:3;9799:12;9792:19;;9451:366;;;:::o;9823:419::-;9989:4;10027:2;10016:9;10012:18;10004:26;;10076:9;10070:4;10066:20;10062:1;10051:9;10047:17;10040:47;10104:131;10230:4;10104:131;:::i;:::-;10096:139;;9823:419;;;:::o;10248:234::-;10388:34;10384:1;10376:6;10372:14;10365:58;10457:17;10452:2;10444:6;10440:15;10433:42;10248:234;:::o;10488:366::-;10630:3;10651:67;10715:2;10710:3;10651:67;:::i;:::-;10644:74;;10727:93;10816:3;10727:93;:::i;:::-;10845:2;10840:3;10836:12;10829:19;;10488:366;;;:::o;10860:419::-;11026:4;11064:2;11053:9;11049:18;11041:26;;11113:9;11107:4;11103:20;11099:1;11088:9;11084:17;11077:47;11141:131;11267:4;11141:131;:::i;:::-;11133:139;;10860:419;;;:::o;11285:232::-;11425:34;11421:1;11413:6;11409:14;11402:58;11494:15;11489:2;11481:6;11477:15;11470:40;11285:232;:::o;11523:366::-;11665:3;11686:67;11750:2;11745:3;11686:67;:::i;:::-;11679:74;;11762:93;11851:3;11762:93;:::i;:::-;11880:2;11875:3;11871:12;11864:19;;11523:366;;;:::o;11895:419::-;12061:4;12099:2;12088:9;12084:18;12076:26;;12148:9;12142:4;12138:20;12134:1;12123:9;12119:17;12112:47;12176:131;12302:4;12176:131;:::i;:::-;12168:139;;11895:419;;;:::o;12320:234::-;12460:34;12456:1;12448:6;12444:14;12437:58;12529:17;12524:2;12516:6;12512:15;12505:42;12320:234;:::o;12560:366::-;12702:3;12723:67;12787:2;12782:3;12723:67;:::i;:::-;12716:74;;12799:93;12888:3;12799:93;:::i;:::-;12917:2;12912:3;12908:12;12901:19;;12560:366;;;:::o;12932:419::-;13098:4;13136:2;13125:9;13121:18;13113:26;;13185:9;13179:4;13175:20;13171:1;13160:9;13156:17;13149:47;13213:131;13339:4;13213:131;:::i;:::-;13205:139;;12932:419;;;:::o;13357:180::-;13405:77;13402:1;13395:88;13502:4;13499:1;13492:15;13526:4;13523:1;13516:15;13543:191;13583:3;13602:20;13620:1;13602:20;:::i;:::-;13597:25;;13636:20;13654:1;13636:20;:::i;:::-;13631:25;;13679:1;13676;13672:9;13665:16;;13700:3;13697:1;13694:10;13691:36;;;13707:18;;:::i;:::-;13691:36;13543:191;;;;:::o;13740:179::-;13880:31;13876:1;13868:6;13864:14;13857:55;13740:179;:::o;13925:366::-;14067:3;14088:67;14152:2;14147:3;14088:67;:::i;:::-;14081:74;;14164:93;14253:3;14164:93;:::i;:::-;14282:2;14277:3;14273:12;14266:19;;13925:366;;;:::o;14297:419::-;14463:4;14501:2;14490:9;14486:18;14478:26;;14550:9;14544:4;14540:20;14536:1;14525:9;14521:17;14514:47;14578:131;14704:4;14578:131;:::i;:::-;14570:139;;14297:419;;;:::o;14722:194::-;14762:4;14782:20;14800:1;14782:20;:::i;:::-;14777:25;;14816:20;14834:1;14816:20;:::i;:::-;14811:25;;14860:1;14857;14853:9;14845:17;;14884:1;14878:4;14875:11;14872:37;;;14889:18;;:::i;:::-;14872:37;14722:194;;;;:::o;14922:222::-;15062:34;15058:1;15050:6;15046:14;15039:58;15131:5;15126:2;15118:6;15114:15;15107:30;14922:222;:::o;15150:366::-;15292:3;15313:67;15377:2;15372:3;15313:67;:::i;:::-;15306:74;;15389:93;15478:3;15389:93;:::i;:::-;15507:2;15502:3;15498:12;15491:19;;15150:366;;;:::o;15522:419::-;15688:4;15726:2;15715:9;15711:18;15703:26;;15775:9;15769:4;15765:20;15761:1;15750:9;15746:17;15739:47;15803:131;15929:4;15803:131;:::i;:::-;15795:139;;15522:419;;;:::o;15947:332::-;16068:4;16106:2;16095:9;16091:18;16083:26;;16119:71;16187:1;16176:9;16172:17;16163:6;16119:71;:::i;:::-;16200:72;16268:2;16257:9;16253:18;16244:6;16200:72;:::i;:::-;15947:332;;;;;:::o;16285:143::-;16342:5;16373:6;16367:13;16358:22;;16389:33;16416:5;16389:33;:::i;:::-;16285:143;;;;:::o;16434:351::-;16504:6;16553:2;16541:9;16532:7;16528:23;16524:32;16521:119;;;16559:79;;:::i;:::-;16521:119;16679:1;16704:64;16760:7;16751:6;16740:9;16736:22;16704:64;:::i;:::-;16694:74;;16650:128;16434:351;;;;:::o;16791:235::-;16931:34;16927:1;16919:6;16915:14;16908:58;17000:18;16995:2;16987:6;16983:15;16976:43;16791:235;:::o;17032:366::-;17174:3;17195:67;17259:2;17254:3;17195:67;:::i;:::-;17188:74;;17271:93;17360:3;17271:93;:::i;:::-;17389:2;17384:3;17380:12;17373:19;;17032:366;;;:::o;17404:419::-;17570:4;17608:2;17597:9;17593:18;17585:26;;17657:9;17651:4;17647:20;17643:1;17632:9;17628:17;17621:47;17685:131;17811:4;17685:131;:::i;:::-;17677:139;;17404:419;;;:::o;17829:233::-;17969:34;17965:1;17957:6;17953:14;17946:58;18038:16;18033:2;18025:6;18021:15;18014:41;17829:233;:::o;18068:366::-;18210:3;18231:67;18295:2;18290:3;18231:67;:::i;:::-;18224:74;;18307:93;18396:3;18307:93;:::i;:::-;18425:2;18420:3;18416:12;18409:19;;18068:366;;;:::o;18440:419::-;18606:4;18644:2;18633:9;18629:18;18621:26;;18693:9;18687:4;18683:20;18679:1;18668:9;18664:17;18657:47;18721:131;18847:4;18721:131;:::i;:::-;18713:139;;18440:419;;;:::o;18865:410::-;18905:7;18928:20;18946:1;18928:20;:::i;:::-;18923:25;;18962:20;18980:1;18962:20;:::i;:::-;18957:25;;19017:1;19014;19010:9;19039:30;19057:11;19039:30;:::i;:::-;19028:41;;19218:1;19209:7;19205:15;19202:1;19199:22;19179:1;19172:9;19152:83;19129:139;;19248:18;;:::i;:::-;19129:139;18913:362;18865:410;;;;:::o;19281:180::-;19329:77;19326:1;19319:88;19426:4;19423:1;19416:15;19450:4;19447:1;19440:15;19467:185;19507:1;19524:20;19542:1;19524:20;:::i;:::-;19519:25;;19558:20;19576:1;19558:20;:::i;:::-;19553:25;;19597:1;19587:35;;19602:18;;:::i;:::-;19587:35;19644:1;19641;19637:9;19632:14;;19467:185;;;;:::o;19658:228::-;19798:34;19794:1;19786:6;19782:14;19775:58;19867:11;19862:2;19854:6;19850:15;19843:36;19658:228;:::o;19892:366::-;20034:3;20055:67;20119:2;20114:3;20055:67;:::i;:::-;20048:74;;20131:93;20220:3;20131:93;:::i;:::-;20249:2;20244:3;20240:12;20233:19;;19892:366;;;:::o;20264:419::-;20430:4;20468:2;20457:9;20453:18;20445:26;;20517:9;20511:4;20507:20;20503:1;20492:9;20488:17;20481:47;20545:131;20671:4;20545:131;:::i;:::-;20537:139;;20264:419;;;:::o;20689:180::-;20737:77;20734:1;20727:88;20834:4;20831:1;20824:15;20858:4;20855:1;20848:15;20875:180;20923:77;20920:1;20913:88;21020:4;21017:1;21010:15;21044:4;21041:1;21034:15;21061:143;21118:5;21149:6;21143:13;21134:22;;21165:33;21192:5;21165:33;:::i;:::-;21061:143;;;;:::o;21210:351::-;21280:6;21329:2;21317:9;21308:7;21304:23;21300:32;21297:119;;;21335:79;;:::i;:::-;21297:119;21455:1;21480:64;21536:7;21527:6;21516:9;21512:22;21480:64;:::i;:::-;21470:74;;21426:128;21210:351;;;;:::o;21567:85::-;21612:7;21641:5;21630:16;;21567:85;;;:::o;21658:158::-;21716:9;21749:61;21767:42;21776:32;21802:5;21776:32;:::i;:::-;21767:42;:::i;:::-;21749:61;:::i;:::-;21736:74;;21658:158;;;:::o;21822:147::-;21917:45;21956:5;21917:45;:::i;:::-;21912:3;21905:58;21822:147;;:::o;21975:114::-;22042:6;22076:5;22070:12;22060:22;;21975:114;;;:::o;22095:184::-;22194:11;22228:6;22223:3;22216:19;22268:4;22263:3;22259:14;22244:29;;22095:184;;;;:::o;22285:132::-;22352:4;22375:3;22367:11;;22405:4;22400:3;22396:14;22388:22;;22285:132;;;:::o;22423:108::-;22500:24;22518:5;22500:24;:::i;:::-;22495:3;22488:37;22423:108;;:::o;22537:179::-;22606:10;22627:46;22669:3;22661:6;22627:46;:::i;:::-;22705:4;22700:3;22696:14;22682:28;;22537:179;;;;:::o;22722:113::-;22792:4;22824;22819:3;22815:14;22807:22;;22722:113;;;:::o;22871:732::-;22990:3;23019:54;23067:5;23019:54;:::i;:::-;23089:86;23168:6;23163:3;23089:86;:::i;:::-;23082:93;;23199:56;23249:5;23199:56;:::i;:::-;23278:7;23309:1;23294:284;23319:6;23316:1;23313:13;23294:284;;;23395:6;23389:13;23422:63;23481:3;23466:13;23422:63;:::i;:::-;23415:70;;23508:60;23561:6;23508:60;:::i;:::-;23498:70;;23354:224;23341:1;23338;23334:9;23329:14;;23294:284;;;23298:14;23594:3;23587:10;;22995:608;;;22871:732;;;;:::o;23609:831::-;23872:4;23910:3;23899:9;23895:19;23887:27;;23924:71;23992:1;23981:9;23977:17;23968:6;23924:71;:::i;:::-;24005:80;24081:2;24070:9;24066:18;24057:6;24005:80;:::i;:::-;24132:9;24126:4;24122:20;24117:2;24106:9;24102:18;24095:48;24160:108;24263:4;24254:6;24160:108;:::i;:::-;24152:116;;24278:72;24346:2;24335:9;24331:18;24322:6;24278:72;:::i;:::-;24360:73;24428:3;24417:9;24413:19;24404:6;24360:73;:::i;:::-;23609:831;;;;;;;;:::o

Swarm Source

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