MNT Price: $0.88 (+1.58%)

Contract

0x0001805c0B57DBd48B5c5c26E237a135dDC678ae
 

Overview

MNT Balance

Mantle Mainnet Network LogoMantle Mainnet Network LogoMantle Mainnet Network Logo0 MNT

MNT Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Block
From
To
Update Block Hea...814932412025-06-28 13:19:54213 days ago1751116794IN
0x0001805c...5dDC678ae
0 MNT0.075243060.02
Update Block Hea...813653722025-06-25 14:17:36216 days ago1750861056IN
0x0001805c...5dDC678ae
0 MNT0.079199490.02
Update Block Hea...812403742025-06-22 16:51:00219 days ago1750611060IN
0x0001805c...5dDC678ae
0 MNT0.070321560.02
Update Block Hea...811153732025-06-19 19:24:18221 days ago1750361058IN
0x0001805c...5dDC678ae
0 MNT0.074233960.02
Update Block Hea...809903702025-06-16 21:57:32224 days ago1750111052IN
0x0001805c...5dDC678ae
0 MNT0.079178430.02
Update Block Hea...808653722025-06-14 0:30:56227 days ago1749861056IN
0x0001805c...5dDC678ae
0 MNT0.078889470.02
Update Block Hea...807403552025-06-11 3:03:42230 days ago1749611022IN
0x0001805c...5dDC678ae
0 MNT0.072426810.02
Update Block Hea...806153562025-06-08 5:37:04233 days ago1749361024IN
0x0001805c...5dDC678ae
0 MNT0.06752320.02
Update Block Hea...804903562025-06-05 8:10:24236 days ago1749111024IN
0x0001805c...5dDC678ae
0 MNT0.070159730.02
Update Block Hea...803653562025-06-02 10:43:44239 days ago1748861024IN
0x0001805c...5dDC678ae
0 MNT0.075132070.02
Update Block Hea...802403542025-05-30 13:17:00242 days ago1748611020IN
0x0001805c...5dDC678ae
0 MNT0.070086610.02
Update Block Hea...801153552025-05-27 15:50:22245 days ago1748361022IN
0x0001805c...5dDC678ae
0 MNT0.066871990.02
Update Block Hea...799903572025-05-24 18:23:46247 days ago1748111026IN
0x0001805c...5dDC678ae
0 MNT0.060623640.02
Update Block Hea...798653552025-05-21 20:57:02250 days ago1747861022IN
0x0001805c...5dDC678ae
0 MNT0.059511390.02
Update Block Hea...797403532025-05-18 23:30:18253 days ago1747611018IN
0x0001805c...5dDC678ae
0 MNT0.058010010.02
Update Block Hea...796153552025-05-16 2:03:42256 days ago1747361022IN
0x0001805c...5dDC678ae
0 MNT0.059919510.02
Update Block Hea...794903522025-05-13 4:36:56259 days ago1747111016IN
0x0001805c...5dDC678ae
0 MNT0.054869550.02
Update Block Hea...793653542025-05-10 7:10:20262 days ago1746861020IN
0x0001805c...5dDC678ae
0 MNT0.058960450.02
Update Block Hea...792403542025-05-07 9:43:40265 days ago1746611020IN
0x0001805c...5dDC678ae
0 MNT0.046502720.02
Update Block Hea...791124502025-05-04 10:40:12268 days ago1746355212IN
0x0001805c...5dDC678ae
0 MNT0.048138570.02
Update Block Hea...789858342025-05-01 12:19:40271 days ago1746101980IN
0x0001805c...5dDC678ae
0 MNT0.045581530.02
Update Block Hea...788608322025-04-28 14:52:56274 days ago1745851976IN
0x0001805c...5dDC678ae
0 MNT0.04474170.02
Update Block Hea...787342652025-04-25 16:34:02277 days ago1745598842IN
0x0001805c...5dDC678ae
0 MNT0.046549040.02
Update Block Hea...786064852025-04-22 17:34:42280 days ago1745343282IN
0x0001805c...5dDC678ae
0 MNT0.046043880.02
Update Block Hea...784728942025-04-19 15:21:40283 days ago1745076100IN
0x0001805c...5dDC678ae
0 MNT0.044133810.02
View all transactions

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block From To
631701552024-04-30 9:50:22637 days ago1714470622  Contract Creation0 MNT

Cross-Chain Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
LightNodeProxy

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
london EvmVersion, MIT license
File 1 of 12 : LightNodeProxy.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.20;

import "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol";

contract LightNodeProxy is ERC1967Proxy {
    constructor(address _logic, bytes memory _data) ERC1967Proxy(_logic, _data) {
        require(address(_logic) != address(0), "_logic zero address");
    }
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.5.0) (interfaces/draft-IERC1822.sol)

pragma solidity ^0.8.0;

/**
 * @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified
 * proxy whose upgrades are fully controlled by the current implementation.
 */
interface IERC1822Proxiable {
    /**
     * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation
     * address.
     *
     * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks
     * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this
     * function revert if invoked through a proxy.
     */
    function proxiableUUID() external view returns (bytes32);
}

File 3 of 12 : IERC1967.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC1967.sol)

pragma solidity ^0.8.0;

/**
 * @dev ERC-1967: Proxy Storage Slots. This interface contains the events defined in the ERC.
 *
 * _Available since v4.8.3._
 */
interface IERC1967 {
    /**
     * @dev Emitted when the implementation is upgraded.
     */
    event Upgraded(address indexed implementation);

    /**
     * @dev Emitted when the admin account has changed.
     */
    event AdminChanged(address previousAdmin, address newAdmin);

    /**
     * @dev Emitted when the beacon is changed.
     */
    event BeaconUpgraded(address indexed beacon);
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol)

pragma solidity ^0.8.0;

/**
 * @dev This is the interface that {BeaconProxy} expects of its beacon.
 */
interface IBeacon {
    /**
     * @dev Must return an address that can be used as a delegate call target.
     *
     * {BeaconProxy} will check that this address is a contract.
     */
    function implementation() external view returns (address);
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.7.0) (proxy/ERC1967/ERC1967Proxy.sol)

pragma solidity ^0.8.0;

import "../Proxy.sol";
import "./ERC1967Upgrade.sol";

/**
 * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an
 * implementation address that can be changed. This address is stored in storage in the location specified by
 * https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the
 * implementation behind the proxy.
 */
contract ERC1967Proxy is Proxy, ERC1967Upgrade {
    /**
     * @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.
     *
     * If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded
     * function call, and allows initializing the storage of the proxy like a Solidity constructor.
     */
    constructor(address _logic, bytes memory _data) payable {
        _upgradeToAndCall(_logic, _data, false);
    }

    /**
     * @dev Returns the current implementation address.
     */
    function _implementation() internal view virtual override returns (address impl) {
        return ERC1967Upgrade._getImplementation();
    }
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (proxy/ERC1967/ERC1967Upgrade.sol)

pragma solidity ^0.8.2;

import "../beacon/IBeacon.sol";
import "../../interfaces/IERC1967.sol";
import "../../interfaces/draft-IERC1822.sol";
import "../../utils/Address.sol";
import "../../utils/StorageSlot.sol";

/**
 * @dev This abstract contract provides getters and event emitting update functions for
 * https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.
 *
 * _Available since v4.1._
 */
abstract contract ERC1967Upgrade is IERC1967 {
    // This is the keccak-256 hash of "eip1967.proxy.rollback" subtracted by 1
    bytes32 private constant _ROLLBACK_SLOT = 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143;

    /**
     * @dev Storage slot with the address of the current implementation.
     * This is the keccak-256 hash of "eip1967.proxy.implementation" subtracted by 1, and is
     * validated in the constructor.
     */
    bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;

    /**
     * @dev Returns the current implementation address.
     */
    function _getImplementation() internal view returns (address) {
        return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;
    }

    /**
     * @dev Stores a new address in the EIP1967 implementation slot.
     */
    function _setImplementation(address newImplementation) private {
        require(Address.isContract(newImplementation), "ERC1967: new implementation is not a contract");
        StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;
    }

    /**
     * @dev Perform implementation upgrade
     *
     * Emits an {Upgraded} event.
     */
    function _upgradeTo(address newImplementation) internal {
        _setImplementation(newImplementation);
        emit Upgraded(newImplementation);
    }

    /**
     * @dev Perform implementation upgrade with additional setup call.
     *
     * Emits an {Upgraded} event.
     */
    function _upgradeToAndCall(address newImplementation, bytes memory data, bool forceCall) internal {
        _upgradeTo(newImplementation);
        if (data.length > 0 || forceCall) {
            Address.functionDelegateCall(newImplementation, data);
        }
    }

    /**
     * @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call.
     *
     * Emits an {Upgraded} event.
     */
    function _upgradeToAndCallUUPS(address newImplementation, bytes memory data, bool forceCall) internal {
        // Upgrades from old implementations will perform a rollback test. This test requires the new
        // implementation to upgrade back to the old, non-ERC1822 compliant, implementation. Removing
        // this special case will break upgrade paths from old UUPS implementation to new ones.
        if (StorageSlot.getBooleanSlot(_ROLLBACK_SLOT).value) {
            _setImplementation(newImplementation);
        } else {
            try IERC1822Proxiable(newImplementation).proxiableUUID() returns (bytes32 slot) {
                require(slot == _IMPLEMENTATION_SLOT, "ERC1967Upgrade: unsupported proxiableUUID");
            } catch {
                revert("ERC1967Upgrade: new implementation is not UUPS");
            }
            _upgradeToAndCall(newImplementation, data, forceCall);
        }
    }

    /**
     * @dev Storage slot with the admin of the contract.
     * This is the keccak-256 hash of "eip1967.proxy.admin" subtracted by 1, and is
     * validated in the constructor.
     */
    bytes32 internal constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;

    /**
     * @dev Returns the current admin.
     */
    function _getAdmin() internal view returns (address) {
        return StorageSlot.getAddressSlot(_ADMIN_SLOT).value;
    }

    /**
     * @dev Stores a new address in the EIP1967 admin slot.
     */
    function _setAdmin(address newAdmin) private {
        require(newAdmin != address(0), "ERC1967: new admin is the zero address");
        StorageSlot.getAddressSlot(_ADMIN_SLOT).value = newAdmin;
    }

    /**
     * @dev Changes the admin of the proxy.
     *
     * Emits an {AdminChanged} event.
     */
    function _changeAdmin(address newAdmin) internal {
        emit AdminChanged(_getAdmin(), newAdmin);
        _setAdmin(newAdmin);
    }

    /**
     * @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.
     * This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor.
     */
    bytes32 internal constant _BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50;

    /**
     * @dev Returns the current beacon.
     */
    function _getBeacon() internal view returns (address) {
        return StorageSlot.getAddressSlot(_BEACON_SLOT).value;
    }

    /**
     * @dev Stores a new beacon in the EIP1967 beacon slot.
     */
    function _setBeacon(address newBeacon) private {
        require(Address.isContract(newBeacon), "ERC1967: new beacon is not a contract");
        require(
            Address.isContract(IBeacon(newBeacon).implementation()),
            "ERC1967: beacon implementation is not a contract"
        );
        StorageSlot.getAddressSlot(_BEACON_SLOT).value = newBeacon;
    }

    /**
     * @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does
     * not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that).
     *
     * Emits a {BeaconUpgraded} event.
     */
    function _upgradeBeaconToAndCall(address newBeacon, bytes memory data, bool forceCall) internal {
        _setBeacon(newBeacon);
        emit BeaconUpgraded(newBeacon);
        if (data.length > 0 || forceCall) {
            Address.functionDelegateCall(IBeacon(newBeacon).implementation(), data);
        }
    }
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (proxy/Proxy.sol)

pragma solidity ^0.8.0;

/**
 * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM
 * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to
 * be specified by overriding the virtual {_implementation} function.
 *
 * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a
 * different contract through the {_delegate} function.
 *
 * The success and return data of the delegated call will be returned back to the caller of the proxy.
 */
abstract contract Proxy {
    /**
     * @dev Delegates the current call to `implementation`.
     *
     * This function does not return to its internal call site, it will return directly to the external caller.
     */
    function _delegate(address implementation) internal virtual {
        assembly {
            // Copy msg.data. We take full control of memory in this inline assembly
            // block because it will not return to Solidity code. We overwrite the
            // Solidity scratch pad at memory position 0.
            calldatacopy(0, 0, calldatasize())

            // Call the implementation.
            // out and outsize are 0 because we don't know the size yet.
            let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)

            // Copy the returned data.
            returndatacopy(0, 0, returndatasize())

            switch result
            // delegatecall returns 0 on error.
            case 0 {
                revert(0, returndatasize())
            }
            default {
                return(0, returndatasize())
            }
        }
    }

    /**
     * @dev This is a virtual function that should be overridden so it returns the address to which the fallback function
     * and {_fallback} should delegate.
     */
    function _implementation() internal view virtual returns (address);

    /**
     * @dev Delegates the current call to the address returned by `_implementation()`.
     *
     * This function does not return to its internal call site, it will return directly to the external caller.
     */
    function _fallback() internal virtual {
        _beforeFallback();
        _delegate(_implementation());
    }

    /**
     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other
     * function in the contract matches the call data.
     */
    fallback() external payable virtual {
        _fallback();
    }

    /**
     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data
     * is empty.
     */
    receive() external payable virtual {
        _fallback();
    }

    /**
     * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`
     * call, or as part of the Solidity `fallback` or `receive` functions.
     *
     * If overridden should call `super._beforeFallback()`.
     */
    function _beforeFallback() internal virtual {}
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)

pragma solidity ^0.8.1;

/**
 * @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
     *
     * Furthermore, `isContract` will also return true if the target contract within
     * the same transaction is already scheduled for destruction by `SELFDESTRUCT`,
     * which only has an effect at the end of a transaction.
     * ====
     *
     * [IMPORTANT]
     * ====
     * You shouldn't rely on `isContract` to protect against flash loan attacks!
     *
     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets
     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract
     * constructor.
     * ====
     */
    function isContract(address account) internal view returns (bool) {
        // This method relies on extcodesize/address.code.length, which returns 0
        // for contracts in construction, since the code is only stored at the end
        // of the constructor execution.

        return account.code.length > 0;
    }

    /**
     * @dev Replacement for Solidity's `transfer`: sends `amount` 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://consensys.net/diligence/blog/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.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
     */
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        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 functionCallWithValue(target, data, 0, "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");
        (bool success, bytes memory returndata) = target.call{value: value}(data);
        return verifyCallResultFromTarget(target, success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        (bool success, bytes memory returndata) = target.staticcall(data);
        return verifyCallResultFromTarget(target, success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return verifyCallResultFromTarget(target, success, returndata, errorMessage);
    }

    /**
     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling
     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.
     *
     * _Available since v4.8._
     */
    function verifyCallResultFromTarget(
        address target,
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        if (success) {
            if (returndata.length == 0) {
                // only check isContract if the call was successful and the return data is empty
                // otherwise we already know that it was a contract
                require(isContract(target), "Address: call to non-contract");
            }
            return returndata;
        } else {
            _revert(returndata, errorMessage);
        }
    }

    /**
     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the
     * revert reason or using the provided one.
     *
     * _Available since v4.3._
     */
    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            _revert(returndata, errorMessage);
        }
    }

    function _revert(bytes memory returndata, string memory errorMessage) private pure {
        // 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
            /// @solidity memory-safe-assembly
            assembly {
                let returndata_size := mload(returndata)
                revert(add(32, returndata), returndata_size)
            }
        } else {
            revert(errorMessage);
        }
    }
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (utils/math/Math.sol)

pragma solidity ^0.8.0;

/**
 * @dev Standard math utilities missing in the Solidity language.
 */
library Math {
    enum Rounding {
        Down, // Toward negative infinity
        Up, // Toward infinity
        Zero // Toward zero
    }

    /**
     * @dev Returns the largest of two numbers.
     */
    function max(uint256 a, uint256 b) internal pure returns (uint256) {
        return a > b ? a : b;
    }

    /**
     * @dev Returns the smallest of two numbers.
     */
    function min(uint256 a, uint256 b) internal pure returns (uint256) {
        return a < b ? a : b;
    }

    /**
     * @dev Returns the average of two numbers. The result is rounded towards
     * zero.
     */
    function average(uint256 a, uint256 b) internal pure returns (uint256) {
        // (a + b) / 2 can overflow.
        return (a & b) + (a ^ b) / 2;
    }

    /**
     * @dev Returns the ceiling of the division of two numbers.
     *
     * This differs from standard division with `/` in that it rounds up instead
     * of rounding down.
     */
    function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {
        // (a + b - 1) / b can overflow on addition, so we distribute.
        return a == 0 ? 0 : (a - 1) / b + 1;
    }

    /**
     * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0
     * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)
     * with further edits by Uniswap Labs also under MIT license.
     */
    function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {
        unchecked {
            // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use
            // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256
            // variables such that product = prod1 * 2^256 + prod0.
            uint256 prod0; // Least significant 256 bits of the product
            uint256 prod1; // Most significant 256 bits of the product
            assembly {
                let mm := mulmod(x, y, not(0))
                prod0 := mul(x, y)
                prod1 := sub(sub(mm, prod0), lt(mm, prod0))
            }

            // Handle non-overflow cases, 256 by 256 division.
            if (prod1 == 0) {
                // Solidity will revert if denominator == 0, unlike the div opcode on its own.
                // The surrounding unchecked block does not change this fact.
                // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.
                return prod0 / denominator;
            }

            // Make sure the result is less than 2^256. Also prevents denominator == 0.
            require(denominator > prod1, "Math: mulDiv overflow");

            ///////////////////////////////////////////////
            // 512 by 256 division.
            ///////////////////////////////////////////////

            // Make division exact by subtracting the remainder from [prod1 prod0].
            uint256 remainder;
            assembly {
                // Compute remainder using mulmod.
                remainder := mulmod(x, y, denominator)

                // Subtract 256 bit number from 512 bit number.
                prod1 := sub(prod1, gt(remainder, prod0))
                prod0 := sub(prod0, remainder)
            }

            // Factor powers of two out of denominator and compute largest power of two divisor of denominator. Always >= 1.
            // See https://cs.stackexchange.com/q/138556/92363.

            // Does not overflow because the denominator cannot be zero at this stage in the function.
            uint256 twos = denominator & (~denominator + 1);
            assembly {
                // Divide denominator by twos.
                denominator := div(denominator, twos)

                // Divide [prod1 prod0] by twos.
                prod0 := div(prod0, twos)

                // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.
                twos := add(div(sub(0, twos), twos), 1)
            }

            // Shift in bits from prod1 into prod0.
            prod0 |= prod1 * twos;

            // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such
            // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for
            // four bits. That is, denominator * inv = 1 mod 2^4.
            uint256 inverse = (3 * denominator) ^ 2;

            // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also works
            // in modular arithmetic, doubling the correct bits in each step.
            inverse *= 2 - denominator * inverse; // inverse mod 2^8
            inverse *= 2 - denominator * inverse; // inverse mod 2^16
            inverse *= 2 - denominator * inverse; // inverse mod 2^32
            inverse *= 2 - denominator * inverse; // inverse mod 2^64
            inverse *= 2 - denominator * inverse; // inverse mod 2^128
            inverse *= 2 - denominator * inverse; // inverse mod 2^256

            // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.
            // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is
            // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1
            // is no longer required.
            result = prod0 * inverse;
            return result;
        }
    }

    /**
     * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.
     */
    function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {
        uint256 result = mulDiv(x, y, denominator);
        if (rounding == Rounding.Up && mulmod(x, y, denominator) > 0) {
            result += 1;
        }
        return result;
    }

    /**
     * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.
     *
     * Inspired by Henry S. Warren, Jr.'s "Hacker's Delight" (Chapter 11).
     */
    function sqrt(uint256 a) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.
        //
        // We know that the "msb" (most significant bit) of our target number `a` is a power of 2 such that we have
        // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.
        //
        // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)`
        // → `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`
        // → `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)`
        //
        // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.
        uint256 result = 1 << (log2(a) >> 1);

        // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,
        // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at
        // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision
        // into the expected uint128 result.
        unchecked {
            result = (result + a / result) >> 1;
            result = (result + a / result) >> 1;
            result = (result + a / result) >> 1;
            result = (result + a / result) >> 1;
            result = (result + a / result) >> 1;
            result = (result + a / result) >> 1;
            result = (result + a / result) >> 1;
            return min(result, a / result);
        }
    }

    /**
     * @notice Calculates sqrt(a), following the selected rounding direction.
     */
    function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {
        unchecked {
            uint256 result = sqrt(a);
            return result + (rounding == Rounding.Up && result * result < a ? 1 : 0);
        }
    }

    /**
     * @dev Return the log in base 2, rounded down, of a positive value.
     * Returns 0 if given 0.
     */
    function log2(uint256 value) internal pure returns (uint256) {
        uint256 result = 0;
        unchecked {
            if (value >> 128 > 0) {
                value >>= 128;
                result += 128;
            }
            if (value >> 64 > 0) {
                value >>= 64;
                result += 64;
            }
            if (value >> 32 > 0) {
                value >>= 32;
                result += 32;
            }
            if (value >> 16 > 0) {
                value >>= 16;
                result += 16;
            }
            if (value >> 8 > 0) {
                value >>= 8;
                result += 8;
            }
            if (value >> 4 > 0) {
                value >>= 4;
                result += 4;
            }
            if (value >> 2 > 0) {
                value >>= 2;
                result += 2;
            }
            if (value >> 1 > 0) {
                result += 1;
            }
        }
        return result;
    }

    /**
     * @dev Return the log in base 2, following the selected rounding direction, of a positive value.
     * Returns 0 if given 0.
     */
    function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {
        unchecked {
            uint256 result = log2(value);
            return result + (rounding == Rounding.Up && 1 << result < value ? 1 : 0);
        }
    }

    /**
     * @dev Return the log in base 10, rounded down, of a positive value.
     * Returns 0 if given 0.
     */
    function log10(uint256 value) internal pure returns (uint256) {
        uint256 result = 0;
        unchecked {
            if (value >= 10 ** 64) {
                value /= 10 ** 64;
                result += 64;
            }
            if (value >= 10 ** 32) {
                value /= 10 ** 32;
                result += 32;
            }
            if (value >= 10 ** 16) {
                value /= 10 ** 16;
                result += 16;
            }
            if (value >= 10 ** 8) {
                value /= 10 ** 8;
                result += 8;
            }
            if (value >= 10 ** 4) {
                value /= 10 ** 4;
                result += 4;
            }
            if (value >= 10 ** 2) {
                value /= 10 ** 2;
                result += 2;
            }
            if (value >= 10 ** 1) {
                result += 1;
            }
        }
        return result;
    }

    /**
     * @dev Return the log in base 10, following the selected rounding direction, of a positive value.
     * Returns 0 if given 0.
     */
    function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {
        unchecked {
            uint256 result = log10(value);
            return result + (rounding == Rounding.Up && 10 ** result < value ? 1 : 0);
        }
    }

    /**
     * @dev Return the log in base 256, rounded down, of a positive value.
     * Returns 0 if given 0.
     *
     * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.
     */
    function log256(uint256 value) internal pure returns (uint256) {
        uint256 result = 0;
        unchecked {
            if (value >> 128 > 0) {
                value >>= 128;
                result += 16;
            }
            if (value >> 64 > 0) {
                value >>= 64;
                result += 8;
            }
            if (value >> 32 > 0) {
                value >>= 32;
                result += 4;
            }
            if (value >> 16 > 0) {
                value >>= 16;
                result += 2;
            }
            if (value >> 8 > 0) {
                result += 1;
            }
        }
        return result;
    }

    /**
     * @dev Return the log in base 256, following the selected rounding direction, of a positive value.
     * Returns 0 if given 0.
     */
    function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {
        unchecked {
            uint256 result = log256(value);
            return result + (rounding == Rounding.Up && 1 << (result << 3) < value ? 1 : 0);
        }
    }
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/SignedMath.sol)

pragma solidity ^0.8.0;

/**
 * @dev Standard signed math utilities missing in the Solidity language.
 */
library SignedMath {
    /**
     * @dev Returns the largest of two signed numbers.
     */
    function max(int256 a, int256 b) internal pure returns (int256) {
        return a > b ? a : b;
    }

    /**
     * @dev Returns the smallest of two signed numbers.
     */
    function min(int256 a, int256 b) internal pure returns (int256) {
        return a < b ? a : b;
    }

    /**
     * @dev Returns the average of two signed numbers without overflow.
     * The result is rounded towards zero.
     */
    function average(int256 a, int256 b) internal pure returns (int256) {
        // Formula from the book "Hacker's Delight"
        int256 x = (a & b) + ((a ^ b) >> 1);
        return x + (int256(uint256(x) >> 255) & (a ^ b));
    }

    /**
     * @dev Returns the absolute unsigned value of a signed value.
     */
    function abs(int256 n) internal pure returns (uint256) {
        unchecked {
            // must be unchecked in order to support `n = type(int256).min`
            return uint256(n >= 0 ? n : -n);
        }
    }
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (utils/StorageSlot.sol)
// This file was procedurally generated from scripts/generate/templates/StorageSlot.js.

pragma solidity ^0.8.0;

/**
 * @dev Library for reading and writing primitive types to specific storage slots.
 *
 * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.
 * This library helps with reading and writing to such slots without the need for inline assembly.
 *
 * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.
 *
 * Example usage to set ERC1967 implementation slot:
 * ```solidity
 * contract ERC1967 {
 *     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;
 *
 *     function _getImplementation() internal view returns (address) {
 *         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;
 *     }
 *
 *     function _setImplementation(address newImplementation) internal {
 *         require(Address.isContract(newImplementation), "ERC1967: new implementation is not a contract");
 *         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;
 *     }
 * }
 * ```
 *
 * _Available since v4.1 for `address`, `bool`, `bytes32`, `uint256`._
 * _Available since v4.9 for `string`, `bytes`._
 */
library StorageSlot {
    struct AddressSlot {
        address value;
    }

    struct BooleanSlot {
        bool value;
    }

    struct Bytes32Slot {
        bytes32 value;
    }

    struct Uint256Slot {
        uint256 value;
    }

    struct StringSlot {
        string value;
    }

    struct BytesSlot {
        bytes value;
    }

    /**
     * @dev Returns an `AddressSlot` with member `value` located at `slot`.
     */
    function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {
        /// @solidity memory-safe-assembly
        assembly {
            r.slot := slot
        }
    }

    /**
     * @dev Returns an `BooleanSlot` with member `value` located at `slot`.
     */
    function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {
        /// @solidity memory-safe-assembly
        assembly {
            r.slot := slot
        }
    }

    /**
     * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.
     */
    function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {
        /// @solidity memory-safe-assembly
        assembly {
            r.slot := slot
        }
    }

    /**
     * @dev Returns an `Uint256Slot` with member `value` located at `slot`.
     */
    function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {
        /// @solidity memory-safe-assembly
        assembly {
            r.slot := slot
        }
    }

    /**
     * @dev Returns an `StringSlot` with member `value` located at `slot`.
     */
    function getStringSlot(bytes32 slot) internal pure returns (StringSlot storage r) {
        /// @solidity memory-safe-assembly
        assembly {
            r.slot := slot
        }
    }

    /**
     * @dev Returns an `StringSlot` representation of the string storage pointer `store`.
     */
    function getStringSlot(string storage store) internal pure returns (StringSlot storage r) {
        /// @solidity memory-safe-assembly
        assembly {
            r.slot := store.slot
        }
    }

    /**
     * @dev Returns an `BytesSlot` with member `value` located at `slot`.
     */
    function getBytesSlot(bytes32 slot) internal pure returns (BytesSlot storage r) {
        /// @solidity memory-safe-assembly
        assembly {
            r.slot := slot
        }
    }

    /**
     * @dev Returns an `BytesSlot` representation of the bytes storage pointer `store`.
     */
    function getBytesSlot(bytes storage store) internal pure returns (BytesSlot storage r) {
        /// @solidity memory-safe-assembly
        assembly {
            r.slot := store.slot
        }
    }
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (utils/Strings.sol)

pragma solidity ^0.8.0;

import "./math/Math.sol";
import "./math/SignedMath.sol";

/**
 * @dev String operations.
 */
library Strings {
    bytes16 private constant _SYMBOLS = "0123456789abcdef";
    uint8 private constant _ADDRESS_LENGTH = 20;

    /**
     * @dev Converts a `uint256` to its ASCII `string` decimal representation.
     */
    function toString(uint256 value) internal pure returns (string memory) {
        unchecked {
            uint256 length = Math.log10(value) + 1;
            string memory buffer = new string(length);
            uint256 ptr;
            /// @solidity memory-safe-assembly
            assembly {
                ptr := add(buffer, add(32, length))
            }
            while (true) {
                ptr--;
                /// @solidity memory-safe-assembly
                assembly {
                    mstore8(ptr, byte(mod(value, 10), _SYMBOLS))
                }
                value /= 10;
                if (value == 0) break;
            }
            return buffer;
        }
    }

    /**
     * @dev Converts a `int256` to its ASCII `string` decimal representation.
     */
    function toString(int256 value) internal pure returns (string memory) {
        return string(abi.encodePacked(value < 0 ? "-" : "", toString(SignedMath.abs(value))));
    }

    /**
     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.
     */
    function toHexString(uint256 value) internal pure returns (string memory) {
        unchecked {
            return toHexString(value, Math.log256(value) + 1);
        }
    }

    /**
     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.
     */
    function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {
        bytes memory buffer = new bytes(2 * length + 2);
        buffer[0] = "0";
        buffer[1] = "x";
        for (uint256 i = 2 * length + 1; i > 1; --i) {
            buffer[i] = _SYMBOLS[value & 0xf];
            value >>= 4;
        }
        require(value == 0, "Strings: hex length insufficient");
        return string(buffer);
    }

    /**
     * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation.
     */
    function toHexString(address addr) internal pure returns (string memory) {
        return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH);
    }

    /**
     * @dev Returns true if the two strings are equal.
     */
    function equal(string memory a, string memory b) internal pure returns (bool) {
        return keccak256(bytes(a)) == keccak256(bytes(b));
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "evmVersion": "london",
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  },
  "metadata": {
    "useLiteralContent": true
  }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_logic","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"stateMutability":"payable","type":"receive"}]

608060405234801561001057600080fd5b5060405161054838038061054883398101604081905261002f91610345565b818161003d828260006100a1565b50506001600160a01b03821661009a5760405162461bcd60e51b815260206004820152601360248201527f5f6c6f676963207a65726f20616464726573730000000000000000000000000060448201526064015b60405180910390fd5b5050610462565b6100aa836100cd565b6000825111806100b75750805b156100c8576100c6838361010d565b505b505050565b6100d681610139565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101328383604051806060016040528060278152602001610521602791396101e7565b9392505050565b6001600160a01b0381163b6101a65760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610091565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080856001600160a01b0316856040516102049190610413565b600060405180830381855af49150503d806000811461023f576040519150601f19603f3d011682016040523d82523d6000602084013e610244565b606091505b50909250905061025686838387610260565b9695505050505050565b606083156102cf5782516000036102c8576001600160a01b0385163b6102c85760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610091565b50816102d9565b6102d983836102e1565b949350505050565b8151156102f15781518083602001fd5b8060405162461bcd60e51b8152600401610091919061042f565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561033c578181015183820152602001610324565b50506000910152565b6000806040838503121561035857600080fd5b82516001600160a01b038116811461036f57600080fd5b60208401519092506001600160401b038082111561038c57600080fd5b818501915085601f8301126103a057600080fd5b8151818111156103b2576103b261030b565b604051601f8201601f19908116603f011681019083821181831017156103da576103da61030b565b816040528281528860208487010111156103f357600080fd5b610404836020830160208801610321565b80955050505050509250929050565b60008251610425818460208701610321565b9190910192915050565b602081526000825180602084015261044e816040850160208701610321565b601f01601f19169190910160400192915050565b60b1806104706000396000f3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea2646970667358221220a88237f3184f6d5cf083c1bf42894bd71221bcc236cd502ffc09a5d1e0f8335164736f6c63430008140033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656400000000000000000000000014843295c38eac604dede0edb77e08b460d093d800000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000001a64d27d3f9c000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000000e6000000000000000000000000000000000000000000000000000000000000c35000000000000000000000000092649181ccf7775be3b212ff2e02f8f57366bff30000000000000000000000007f4cba3d7f20bf5146e4e5f8929b676ca05a55450000000000000000000000000000000000000000000000000000000000000032000000000000000000000000b4e1bc0856f70a55764fd6b3f8dd27f2162108e90000000000000000000000007a3a26123dbd9cfefc1725fe7779580b987251cb0000000000000000000000007607c9cdd733d8cda0a644839ec2bac5fa180ed400000000000000000000000065b3fee569bf82ff148bdded9c3793fb685f9333000000000000000000000000a9c044c42591c57362315130a0e9a80f7c3a0c2c0000000000000000000000008d3925c8fe63ab483f113a6a6f52d09e02ec7d47000000000000000000000000171cea72aed36c6bcb51a5b915646e1f7aa6ac7f000000000000000000000000069633a9adeaed7a17ff78b24f2729503cff6c90000000000000000000000000ce5fc472c7b7d36c14043862fdce03402f2925eb00000000000000000000000001734524cc07a49a1237b950d72caae98d94676300000000000000000000000048bceb30bc96afa7f659a6fb6bd8d1127a89e8e900000000000000000000000037629d8d17f8ca81a003f76b750207417eed19fa0000000000000000000000009e5665acb994906c55bda5f18ec33f05012bb46a0000000000000000000000004a032839455e7616054f38ade3043fa447a099bf00000000000000000000000059ff5a050c17bd2d191f4eb24b27afb50dc5eedc000000000000000000000000e4f125a24c0591795cc880852a8abc83952759390000000000000000000000002fe1e683a4a9e89ca9bf66f558d9019ce20060a40000000000000000000000006be1f2dcdb6a846c9df353aa77f622bc859574ab000000000000000000000000c39ef66e5707ff7c8fdb5524aaa375a25652facd000000000000000000000000e498d13527524132736d804c42a288d72a979e46000000000000000000000000dbbd0434bf5a280b19efb4d4d740da1e4af5e9ee000000000000000000000000df28b2b6a402971b530f3a7067eb46b9b3ebdf7c00000000000000000000000016cf4cb98b9ab0b529ad0e79a18b8834b8d3f48c00000000000000000000000033e0eb45406e61c9ef923ddeedc65b7480758f260000000000000000000000003ab66bdcb36d7ccd76a54c9f805427e2500116f30000000000000000000000006ffcf9aef4919b316fd4b297d5b55e20b68c99fe00000000000000000000000068b0ffca849a8fa40c622113ccf2878ad62057d4000000000000000000000000572fbdd417b1dec77e63130fa83db6a759c1a8ea000000000000000000000000ce1dd70d070b5f192a066f339554aea3299ff96000000000000000000000000054fc7531adbcfd682c87a2067b7f98d6f1673f6f00000000000000000000000027d1903457a8678902065acd29d9f0e3ca1b7183000000000000000000000000e0261ad3c47b4e031120638fc8cd4519baab792c000000000000000000000000457b4d26cd2669769a450e785acb26e899ed58d3000000000000000000000000acce1869f2878522301b4b1f33a4d6f60622fe94000000000000000000000000d60ca3642c427b0144ede812b85ec32596193bbe000000000000000000000000f11fec9ee3f1771c8846ea6f31d1348be9f37a2a00000000000000000000000066128e19108cdd449a2730c961b3bb36016bb892000000000000000000000000962202c401cf5a597e7059905cee8844af9a3bf9000000000000000000000000470a1b98a076fb4c218f805c4bcc0a66500b67c50000000000000000000000008a213d60ff5f32d74aae8116d5a266c50873b6760000000000000000000000002c170ad571ff25b171559508e49f0b542686a8ee0000000000000000000000008df2a3a3fe8f1564e8f1f24572a3d69153fbf99e0000000000000000000000002048a5809a027537c2ffb1b0e957cc8b5f598d5b000000000000000000000000a4580a36c1feb862897a42d3615ca91d412ec91f0000000000000000000000009d0a83ce3d9cb8a29c476a256165eea62e469a21000000000000000000000000772d806af63eac0b5a5a73c9a0680ee202103a4b000000000000000000000000a2ab60a6d8690e0aafa95434baa5be044e982f820000000000000000000000003283e87f937b2940ae64f52185af16ec8e7552b60000000000000000000000008b8dd01f57df122bc30ac507b52305de292d47750000000000000000000000007e470e001560de4625eb2fd83321196543316924000000000000000000000000000000000000000000000000000000000000003213524ec450b9ac611fb332a25b6c2eb436d13ac8a540f69a50d6ff8d4fe9f2492b7d0f6e80e80e9b5f9c7a9fa2d482c2e8ea6c1657057c5548b7e30412d48bc30e3450c5b583e57d8fe736d276e9e4bb2ce4b38a5e9ac77b1289ba14a5e9cf581ce786f52d5bd0e77c1eacfa3dd5df0e22464888fa4bfab6eff9f29e8f86084b2f6dd4eda4296d9cf85064adbe2507901fcd4ece425cc996827ba4a2c111c8121e6fe59e1d18c107d480077debf3ea265a52325725a853a710f7ec3af5e3286905fde1416ab5b30e4b140ad4a29a52cd9bc85ca27bd4662ba842a2e22118bea60dc32694f317d886daac5419b39412a33ee89e07d39d557e4e2b0e48696ac3110a668da45c5b5ecd479960e6e909ff8c46b258f1722104f72bc37322c59fab262220912a0d72e14443e2abc8161583c859d8479b1e4fb2fc7dc57b45753d361d1b84b827bcc7029e2804b127643f73d079796d1177634dd23d00de5f4444e70f20f2445675bb5070fa431680d42a8a37198c1a53e4071d7d5d53c6e2651f90981dfc074e52b9cf63cb92333be87d8ae06fd1fb7ffb97b50995beaa26e4fe921b180f3d907d89a729c1b19fcc7472fd3ba424ba59d38ab4006214b432e3b213ea018e6678c812fd741ee1f49aa41ba2a5b663e7e6c5b0a4b8c1c81dc92d9eaa1e16ecf0532be69696114002afcee88625f77e6ab3d28fd739c8734d329ce73ab7033059801a6fd7826958420f795254983b92050dc61378c9b88471c9f353350f28a7d74cfcfe21f635a77c2f9d4d3767e3fabd177d2643a66add7c680ac51d722e8f70660e0a03d6c73b4cfdb47f4274f20c5f2998aafb6a450d8fe090f349ce2ebc9314a29fcf59d98b7a63450ad837ac5419678afcbf0c53ce6e1ed64090b12bcad66c663826f0a2fe3fb9b5903191e57d674e8bfa7d0f6a79b3a3285cb73617471df702cfa2291b3528358d57971cc3acb5691114e6203fe057494340715008080e71139bcf98cfbee858c33a098222b5ad6f4be7ca2ebe2e0f0ac472c89f0a13ee4f882e9730c6eafcc0682cb8b83e4bc4b370c27d1ad341525bbfa7963d2f928a60f059bb2bed8d6e78c112ba51c93239ba73a8d7144428c858d7a9b6d92796ed018543f1d5906dac3d9aae2d6022bda0e4e3232910bfe2a2f231e8cd6a124846122427b73639c4ebce86578183c067ee18483bf26e3f5f186044df092b2d005675a088f6fe1a56c588fbe27d0c9bc4e6ef02d57ae1de3716edf4e715912ea501c3b1244a9d557be07800da305bae0eac0a895f8a3d264b84869b3c1f490221904bae33a94a35feedc0bac3f983e8bb10bde8293bb79f8d5bd24e5c035a2c7ce19fdd20713e61f31a9b7c890aa4b41b7c7344b2108f98dfd2adf9ce11f91359456888a8f6c7a76fe09896e51052acd2cf569f85497e1f06f7c499f42c0a3032cb2b8582dfe1f564894efc681c72fc92bc298bb00b038ebbaca3a85a9c200188b95e15c64c35897aacf9a0d121582f46f0f6824c3498ef515f01e99f998c2d3fe384324f83097616bcd59f9e508e3914412655b2566798113e135318672f0959032baf1300fb4beb8700967b90291e31a5b34fe33e6cd66b6958c51a084b0df3666b459b3058cbb060bd176a86570e7a16131ad8c1f38fac92e7095214f72eda38b32a9f4c007a7cbc9f286640a84ddf6b4f62208663a7f393191f8069751229e2f27c6ad3da481dd04812c985b3f953a999b9931014a6710dfd6f9ce7f10a5d68e6ceea14d378b71070cba8a4e8e32653e0a1c0bb8c51f347d76615956d22ccb99ad32bc0c067b1eb6d1e077259578db4f5aeff7be8dae64d8741ebb2fb2a0144e9d7ef5bd30e5be4b7f3a8c1cf8722d55c53c2ee938ca761555ee0f3730b2ccf0c26f4af6bd32b89fd2817cbce4c9fe387572a5649cda83cb20f2b33aa0a646a9f3c273cca2e0b895cd25bcea05663b571d7b04c87cac005ac37bc363f05350f41c7e683a6377b7adb05078a4d2108132abd3e2b832174412bcb7ddc1c2d389799b77da9432b2d27815e73682e655a3d990e539f534340ff6f56c0106d1751052daef728173428c761613e44072cbe9a9516318d78432f9471fb3346312084bb4ca15633eb521cbbfa1039088e6b769707d61dc8874d1472e1cf2e7cf42d3cbc994fada5e8e401c37f1f7739450d57a69ddaca4a4ef0b293167661c6c3211019d0941e184442fc13888cfa481084cb3bea645c2a26bc3fc8b1d5c95503146c16d9aea6e89b4a1e0dc981ab88a4b007f1efb22678b2887b3c0a4b967e1308eef1eb3bdcd1315910c2191b1c3c75185c6bdcf529b940ac5ea665448cae5b035854efe69ad0cf30eef5da865b83ad17d6b7e5b83670aa4bea63aad3e8cce321c6402e72e588192a8f87b3f13bccd51c0bcb0df2adb05c5221cf7f2acf43d81c8b703c5cbf267b2205b4fd51dff823739fcbb676edeab57a9f7bb686b7238f09dc873fd6bb5584ccd4682264f391c7c075ad09776212b202b763e02481a61c28c4b0c633177c4a58066ebde38b77e3eae0c3dcf3fce5b1ede45d0a66d54f9121c05d6c026af86b970f2478c3124162774d6739f0dac14473bbb4c45eb5f43e297b71cdfd52060de83904e09b06f69e102bea13fde5416e41d65d3f64f49d2f10c29c522ca0fc2a5b7357aaa165c6f43a71c864d23c1c74cda99e1f00506621067c077d8696f4ce23266ac83f977c6ffd34614c3e01b0fd99d2d5bae001c70508cd2795c6bb22f7d9f461b86164f316e328b0fb6ae4a72b25fd7078f894a8c9037cd451429cb43e2c3d7e90775d89e65cb1a0d71c6a32e4a04657b1577515ec09f4baca943630b70d8dac83d3d9a7508d7314df7f297309742bab8c16f6b1fb08df6962b81e21afa78194d5e70cc386e388c200197a50eea31375dfd575a7211810b29b25888ff35b5cb947af8ebc1dfd807be38e8d3391239c02cb459a437626ea7c086f13d7f784787a93f86f5db82bddf90ed05a7de3c823b6f81771c11b0bfb1bdaffbce7964e14ba8723b28cbc906e6d84896b5d2b4ad589f7809f7e281cd105c059cad4cf30cb1d0ae6cb332741c7bad079c8fef420f3f6b2213b1f68175f9e466078b4b82e9872a506db90938d6a85a069598f3396c35bc475ab8b8e1ffc837e6ce0a74d1a7fa7a8e5b8bcc38754406fb3216fecb9c31b0998a96ab826370356fab161ecaf73f9343270d869fee2c4e94d4fe066d035b0e920e2c88b0741261205867768eeba5651a2f66f9bd50c0d63e38229c5d405f8dde22a816d0217eded8dd69f5bc82b38fb32cf92ded5dd308173bb70fc8058f369af2270d9213f0a2b71e9404a7d7eb1087305ef744e6d49248725afcdc5e1e8925978060216c300498b8f5eac4f441f7406143edea41b7f4bc835ef35e254151c8dd74baa0c23ae85055e9a07dc05c594c994cc7afc7655dc54164da10091a66edbca26ed2c364fbb2910543eeaa62dee186ecc130bef41562a65927a8133849c307216832baeb6750fc7612526ed9723afaf1f71765fed6206e68562789609fb973da4e50e7131941bb144514e0976a4a1b4ceed8cd798744d866bfb7e198024e152866b2db50436c290d462781ac4d169f976780784526cade7afe1aabe2456c2fca3f21ea774c24111d858cf2e764dc7ef10251ca1978da8d2f1edba866582677e950122c4fd3d333d820c874adac5f09f50205a4dcd169be7dc5c93742999576c50fd0e7887e1412f5ff6319d03b9477965f32187f441b27134277517d4a664d8785b11c258732d1d8a65957d93eb26a0bce39a7cf63bc833a154e2c823338e0ed9b42fe46f7994c827cdc17c57c0bba280fcf80e1ae99c96312d0c27424934d6ae762051148c2b988e8ebda24c25d25a4e03c3a2d3e8ce5ed85d444fe54b6e7703de1c7c3a09a5fbd8780ed41dbd22697f2820a68141dc20833873bcc9aefaf1132f1a8d8e0cff3f8acd78774762ae29f2e3ae5e6f8436841c43ba17ff9e9135915b07d3a17c17b5aae1914b0bc21b89135015e5ad724877d6745826ea2d09b1b9e320148b532b5ea2d75d73128d0d121890ec603e29415fe1bbb8660f5117f095bf2ddc98a181203aa14c6ec08c812e8362540d7b4bdd053332e20600d4cdd1466000fac007a5cb1b86458db4bd7ae9a938179e9339ccabd6bc6933846fb79295fc2693d0c79759bc2eaec19e1e841cff38ca2b1929707e8faf4d4e630bdbceddf108d0944c7d7385ce3a446a3214232c2caef11076e012e534d4a829a1099b79f00c75b70075f3024142c2b706089898dd246965b68db915d34b3168a0a6f5f1992b8653f000c7859c8ac74bb56e7607ea61ce8a0f39e0a39a22e324edf8925b002c52aa359cd7effb0c970f022b9f5b5203ac8298faffd191dabc5abf039ea27c2cb4a0964b841b56dd6e727beb14ec60a949ef96b9e775a033b00f784ce5ec20210904212e2b04e5ccac9f5e573e62e02b43a7f6ca3046d397466f44567aed0a00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea2646970667358221220a88237f3184f6d5cf083c1bf42894bd71221bcc236cd502ffc09a5d1e0f8335164736f6c63430008140033

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

00000000000000000000000014843295c38eac604dede0edb77e08b460d093d800000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000001a64d27d3f9c000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000000e6000000000000000000000000000000000000000000000000000000000000c35000000000000000000000000092649181ccf7775be3b212ff2e02f8f57366bff30000000000000000000000007f4cba3d7f20bf5146e4e5f8929b676ca05a55450000000000000000000000000000000000000000000000000000000000000032000000000000000000000000b4e1bc0856f70a55764fd6b3f8dd27f2162108e90000000000000000000000007a3a26123dbd9cfefc1725fe7779580b987251cb0000000000000000000000007607c9cdd733d8cda0a644839ec2bac5fa180ed400000000000000000000000065b3fee569bf82ff148bdded9c3793fb685f9333000000000000000000000000a9c044c42591c57362315130a0e9a80f7c3a0c2c0000000000000000000000008d3925c8fe63ab483f113a6a6f52d09e02ec7d47000000000000000000000000171cea72aed36c6bcb51a5b915646e1f7aa6ac7f000000000000000000000000069633a9adeaed7a17ff78b24f2729503cff6c90000000000000000000000000ce5fc472c7b7d36c14043862fdce03402f2925eb00000000000000000000000001734524cc07a49a1237b950d72caae98d94676300000000000000000000000048bceb30bc96afa7f659a6fb6bd8d1127a89e8e900000000000000000000000037629d8d17f8ca81a003f76b750207417eed19fa0000000000000000000000009e5665acb994906c55bda5f18ec33f05012bb46a0000000000000000000000004a032839455e7616054f38ade3043fa447a099bf00000000000000000000000059ff5a050c17bd2d191f4eb24b27afb50dc5eedc000000000000000000000000e4f125a24c0591795cc880852a8abc83952759390000000000000000000000002fe1e683a4a9e89ca9bf66f558d9019ce20060a40000000000000000000000006be1f2dcdb6a846c9df353aa77f622bc859574ab000000000000000000000000c39ef66e5707ff7c8fdb5524aaa375a25652facd000000000000000000000000e498d13527524132736d804c42a288d72a979e46000000000000000000000000dbbd0434bf5a280b19efb4d4d740da1e4af5e9ee000000000000000000000000df28b2b6a402971b530f3a7067eb46b9b3ebdf7c00000000000000000000000016cf4cb98b9ab0b529ad0e79a18b8834b8d3f48c00000000000000000000000033e0eb45406e61c9ef923ddeedc65b7480758f260000000000000000000000003ab66bdcb36d7ccd76a54c9f805427e2500116f30000000000000000000000006ffcf9aef4919b316fd4b297d5b55e20b68c99fe00000000000000000000000068b0ffca849a8fa40c622113ccf2878ad62057d4000000000000000000000000572fbdd417b1dec77e63130fa83db6a759c1a8ea000000000000000000000000ce1dd70d070b5f192a066f339554aea3299ff96000000000000000000000000054fc7531adbcfd682c87a2067b7f98d6f1673f6f00000000000000000000000027d1903457a8678902065acd29d9f0e3ca1b7183000000000000000000000000e0261ad3c47b4e031120638fc8cd4519baab792c000000000000000000000000457b4d26cd2669769a450e785acb26e899ed58d3000000000000000000000000acce1869f2878522301b4b1f33a4d6f60622fe94000000000000000000000000d60ca3642c427b0144ede812b85ec32596193bbe000000000000000000000000f11fec9ee3f1771c8846ea6f31d1348be9f37a2a00000000000000000000000066128e19108cdd449a2730c961b3bb36016bb892000000000000000000000000962202c401cf5a597e7059905cee8844af9a3bf9000000000000000000000000470a1b98a076fb4c218f805c4bcc0a66500b67c50000000000000000000000008a213d60ff5f32d74aae8116d5a266c50873b6760000000000000000000000002c170ad571ff25b171559508e49f0b542686a8ee0000000000000000000000008df2a3a3fe8f1564e8f1f24572a3d69153fbf99e0000000000000000000000002048a5809a027537c2ffb1b0e957cc8b5f598d5b000000000000000000000000a4580a36c1feb862897a42d3615ca91d412ec91f0000000000000000000000009d0a83ce3d9cb8a29c476a256165eea62e469a21000000000000000000000000772d806af63eac0b5a5a73c9a0680ee202103a4b000000000000000000000000a2ab60a6d8690e0aafa95434baa5be044e982f820000000000000000000000003283e87f937b2940ae64f52185af16ec8e7552b60000000000000000000000008b8dd01f57df122bc30ac507b52305de292d47750000000000000000000000007e470e001560de4625eb2fd83321196543316924000000000000000000000000000000000000000000000000000000000000003213524ec450b9ac611fb332a25b6c2eb436d13ac8a540f69a50d6ff8d4fe9f2492b7d0f6e80e80e9b5f9c7a9fa2d482c2e8ea6c1657057c5548b7e30412d48bc30e3450c5b583e57d8fe736d276e9e4bb2ce4b38a5e9ac77b1289ba14a5e9cf581ce786f52d5bd0e77c1eacfa3dd5df0e22464888fa4bfab6eff9f29e8f86084b2f6dd4eda4296d9cf85064adbe2507901fcd4ece425cc996827ba4a2c111c8121e6fe59e1d18c107d480077debf3ea265a52325725a853a710f7ec3af5e3286905fde1416ab5b30e4b140ad4a29a52cd9bc85ca27bd4662ba842a2e22118bea60dc32694f317d886daac5419b39412a33ee89e07d39d557e4e2b0e48696ac3110a668da45c5b5ecd479960e6e909ff8c46b258f1722104f72bc37322c59fab262220912a0d72e14443e2abc8161583c859d8479b1e4fb2fc7dc57b45753d361d1b84b827bcc7029e2804b127643f73d079796d1177634dd23d00de5f4444e70f20f2445675bb5070fa431680d42a8a37198c1a53e4071d7d5d53c6e2651f90981dfc074e52b9cf63cb92333be87d8ae06fd1fb7ffb97b50995beaa26e4fe921b180f3d907d89a729c1b19fcc7472fd3ba424ba59d38ab4006214b432e3b213ea018e6678c812fd741ee1f49aa41ba2a5b663e7e6c5b0a4b8c1c81dc92d9eaa1e16ecf0532be69696114002afcee88625f77e6ab3d28fd739c8734d329ce73ab7033059801a6fd7826958420f795254983b92050dc61378c9b88471c9f353350f28a7d74cfcfe21f635a77c2f9d4d3767e3fabd177d2643a66add7c680ac51d722e8f70660e0a03d6c73b4cfdb47f4274f20c5f2998aafb6a450d8fe090f349ce2ebc9314a29fcf59d98b7a63450ad837ac5419678afcbf0c53ce6e1ed64090b12bcad66c663826f0a2fe3fb9b5903191e57d674e8bfa7d0f6a79b3a3285cb73617471df702cfa2291b3528358d57971cc3acb5691114e6203fe057494340715008080e71139bcf98cfbee858c33a098222b5ad6f4be7ca2ebe2e0f0ac472c89f0a13ee4f882e9730c6eafcc0682cb8b83e4bc4b370c27d1ad341525bbfa7963d2f928a60f059bb2bed8d6e78c112ba51c93239ba73a8d7144428c858d7a9b6d92796ed018543f1d5906dac3d9aae2d6022bda0e4e3232910bfe2a2f231e8cd6a124846122427b73639c4ebce86578183c067ee18483bf26e3f5f186044df092b2d005675a088f6fe1a56c588fbe27d0c9bc4e6ef02d57ae1de3716edf4e715912ea501c3b1244a9d557be07800da305bae0eac0a895f8a3d264b84869b3c1f490221904bae33a94a35feedc0bac3f983e8bb10bde8293bb79f8d5bd24e5c035a2c7ce19fdd20713e61f31a9b7c890aa4b41b7c7344b2108f98dfd2adf9ce11f91359456888a8f6c7a76fe09896e51052acd2cf569f85497e1f06f7c499f42c0a3032cb2b8582dfe1f564894efc681c72fc92bc298bb00b038ebbaca3a85a9c200188b95e15c64c35897aacf9a0d121582f46f0f6824c3498ef515f01e99f998c2d3fe384324f83097616bcd59f9e508e3914412655b2566798113e135318672f0959032baf1300fb4beb8700967b90291e31a5b34fe33e6cd66b6958c51a084b0df3666b459b3058cbb060bd176a86570e7a16131ad8c1f38fac92e7095214f72eda38b32a9f4c007a7cbc9f286640a84ddf6b4f62208663a7f393191f8069751229e2f27c6ad3da481dd04812c985b3f953a999b9931014a6710dfd6f9ce7f10a5d68e6ceea14d378b71070cba8a4e8e32653e0a1c0bb8c51f347d76615956d22ccb99ad32bc0c067b1eb6d1e077259578db4f5aeff7be8dae64d8741ebb2fb2a0144e9d7ef5bd30e5be4b7f3a8c1cf8722d55c53c2ee938ca761555ee0f3730b2ccf0c26f4af6bd32b89fd2817cbce4c9fe387572a5649cda83cb20f2b33aa0a646a9f3c273cca2e0b895cd25bcea05663b571d7b04c87cac005ac37bc363f05350f41c7e683a6377b7adb05078a4d2108132abd3e2b832174412bcb7ddc1c2d389799b77da9432b2d27815e73682e655a3d990e539f534340ff6f56c0106d1751052daef728173428c761613e44072cbe9a9516318d78432f9471fb3346312084bb4ca15633eb521cbbfa1039088e6b769707d61dc8874d1472e1cf2e7cf42d3cbc994fada5e8e401c37f1f7739450d57a69ddaca4a4ef0b293167661c6c3211019d0941e184442fc13888cfa481084cb3bea645c2a26bc3fc8b1d5c95503146c16d9aea6e89b4a1e0dc981ab88a4b007f1efb22678b2887b3c0a4b967e1308eef1eb3bdcd1315910c2191b1c3c75185c6bdcf529b940ac5ea665448cae5b035854efe69ad0cf30eef5da865b83ad17d6b7e5b83670aa4bea63aad3e8cce321c6402e72e588192a8f87b3f13bccd51c0bcb0df2adb05c5221cf7f2acf43d81c8b703c5cbf267b2205b4fd51dff823739fcbb676edeab57a9f7bb686b7238f09dc873fd6bb5584ccd4682264f391c7c075ad09776212b202b763e02481a61c28c4b0c633177c4a58066ebde38b77e3eae0c3dcf3fce5b1ede45d0a66d54f9121c05d6c026af86b970f2478c3124162774d6739f0dac14473bbb4c45eb5f43e297b71cdfd52060de83904e09b06f69e102bea13fde5416e41d65d3f64f49d2f10c29c522ca0fc2a5b7357aaa165c6f43a71c864d23c1c74cda99e1f00506621067c077d8696f4ce23266ac83f977c6ffd34614c3e01b0fd99d2d5bae001c70508cd2795c6bb22f7d9f461b86164f316e328b0fb6ae4a72b25fd7078f894a8c9037cd451429cb43e2c3d7e90775d89e65cb1a0d71c6a32e4a04657b1577515ec09f4baca943630b70d8dac83d3d9a7508d7314df7f297309742bab8c16f6b1fb08df6962b81e21afa78194d5e70cc386e388c200197a50eea31375dfd575a7211810b29b25888ff35b5cb947af8ebc1dfd807be38e8d3391239c02cb459a437626ea7c086f13d7f784787a93f86f5db82bddf90ed05a7de3c823b6f81771c11b0bfb1bdaffbce7964e14ba8723b28cbc906e6d84896b5d2b4ad589f7809f7e281cd105c059cad4cf30cb1d0ae6cb332741c7bad079c8fef420f3f6b2213b1f68175f9e466078b4b82e9872a506db90938d6a85a069598f3396c35bc475ab8b8e1ffc837e6ce0a74d1a7fa7a8e5b8bcc38754406fb3216fecb9c31b0998a96ab826370356fab161ecaf73f9343270d869fee2c4e94d4fe066d035b0e920e2c88b0741261205867768eeba5651a2f66f9bd50c0d63e38229c5d405f8dde22a816d0217eded8dd69f5bc82b38fb32cf92ded5dd308173bb70fc8058f369af2270d9213f0a2b71e9404a7d7eb1087305ef744e6d49248725afcdc5e1e8925978060216c300498b8f5eac4f441f7406143edea41b7f4bc835ef35e254151c8dd74baa0c23ae85055e9a07dc05c594c994cc7afc7655dc54164da10091a66edbca26ed2c364fbb2910543eeaa62dee186ecc130bef41562a65927a8133849c307216832baeb6750fc7612526ed9723afaf1f71765fed6206e68562789609fb973da4e50e7131941bb144514e0976a4a1b4ceed8cd798744d866bfb7e198024e152866b2db50436c290d462781ac4d169f976780784526cade7afe1aabe2456c2fca3f21ea774c24111d858cf2e764dc7ef10251ca1978da8d2f1edba866582677e950122c4fd3d333d820c874adac5f09f50205a4dcd169be7dc5c93742999576c50fd0e7887e1412f5ff6319d03b9477965f32187f441b27134277517d4a664d8785b11c258732d1d8a65957d93eb26a0bce39a7cf63bc833a154e2c823338e0ed9b42fe46f7994c827cdc17c57c0bba280fcf80e1ae99c96312d0c27424934d6ae762051148c2b988e8ebda24c25d25a4e03c3a2d3e8ce5ed85d444fe54b6e7703de1c7c3a09a5fbd8780ed41dbd22697f2820a68141dc20833873bcc9aefaf1132f1a8d8e0cff3f8acd78774762ae29f2e3ae5e6f8436841c43ba17ff9e9135915b07d3a17c17b5aae1914b0bc21b89135015e5ad724877d6745826ea2d09b1b9e320148b532b5ea2d75d73128d0d121890ec603e29415fe1bbb8660f5117f095bf2ddc98a181203aa14c6ec08c812e8362540d7b4bdd053332e20600d4cdd1466000fac007a5cb1b86458db4bd7ae9a938179e9339ccabd6bc6933846fb79295fc2693d0c79759bc2eaec19e1e841cff38ca2b1929707e8faf4d4e630bdbceddf108d0944c7d7385ce3a446a3214232c2caef11076e012e534d4a829a1099b79f00c75b70075f3024142c2b706089898dd246965b68db915d34b3168a0a6f5f1992b8653f000c7859c8ac74bb56e7607ea61ce8a0f39e0a39a22e324edf8925b002c52aa359cd7effb0c970f022b9f5b5203ac8298faffd191dabc5abf039ea27c2cb4a0964b841b56dd6e727beb14ec60a949ef96b9e775a033b00f784ce5ec20210904212e2b04e5ccac9f5e573e62e02b43a7f6ca3046d397466f44567aed0a00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _logic (address): 0x14843295C38EaC604dEDe0eDb77e08B460D093D8
Arg [1] : _data (bytes): 0xd27d3f9c000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000000e6000000000000000000000000000000000000000000000000000000000000c35000000000000000000000000092649181ccf7775be3b212ff2e02f8f57366bff30000000000000000000000007f4cba3d7f20bf5146e4e5f8929b676ca05a55450000000000000000000000000000000000000000000000000000000000000032000000000000000000000000b4e1bc0856f70a55764fd6b3f8dd27f2162108e90000000000000000000000007a3a26123dbd9cfefc1725fe7779580b987251cb0000000000000000000000007607c9cdd733d8cda0a644839ec2bac5fa180ed400000000000000000000000065b3fee569bf82ff148bdded9c3793fb685f9333000000000000000000000000a9c044c42591c57362315130a0e9a80f7c3a0c2c0000000000000000000000008d3925c8fe63ab483f113a6a6f52d09e02ec7d47000000000000000000000000171cea72aed36c6bcb51a5b915646e1f7aa6ac7f000000000000000000000000069633a9adeaed7a17ff78b24f2729503cff6c90000000000000000000000000ce5fc472c7b7d36c14043862fdce03402f2925eb00000000000000000000000001734524cc07a49a1237b950d72caae98d94676300000000000000000000000048bceb30bc96afa7f659a6fb6bd8d1127a89e8e900000000000000000000000037629d8d17f8ca81a003f76b750207417eed19fa0000000000000000000000009e5665acb994906c55bda5f18ec33f05012bb46a0000000000000000000000004a032839455e7616054f38ade3043fa447a099bf00000000000000000000000059ff5a050c17bd2d191f4eb24b27afb50dc5eedc000000000000000000000000e4f125a24c0591795cc880852a8abc83952759390000000000000000000000002fe1e683a4a9e89ca9bf66f558d9019ce20060a40000000000000000000000006be1f2dcdb6a846c9df353aa77f622bc859574ab000000000000000000000000c39ef66e5707ff7c8fdb5524aaa375a25652facd000000000000000000000000e498d13527524132736d804c42a288d72a979e46000000000000000000000000dbbd0434bf5a280b19efb4d4d740da1e4af5e9ee000000000000000000000000df28b2b6a402971b530f3a7067eb46b9b3ebdf7c00000000000000000000000016cf4cb98b9ab0b529ad0e79a18b8834b8d3f48c00000000000000000000000033e0eb45406e61c9ef923ddeedc65b7480758f260000000000000000000000003ab66bdcb36d7ccd76a54c9f805427e2500116f30000000000000000000000006ffcf9aef4919b316fd4b297d5b55e20b68c99fe00000000000000000000000068b0ffca849a8fa40c622113ccf2878ad62057d4000000000000000000000000572fbdd417b1dec77e63130fa83db6a759c1a8ea000000000000000000000000ce1dd70d070b5f192a066f339554aea3299ff96000000000000000000000000054fc7531adbcfd682c87a2067b7f98d6f1673f6f00000000000000000000000027d1903457a8678902065acd29d9f0e3ca1b7183000000000000000000000000e0261ad3c47b4e031120638fc8cd4519baab792c000000000000000000000000457b4d26cd2669769a450e785acb26e899ed58d3000000000000000000000000acce1869f2878522301b4b1f33a4d6f60622fe94000000000000000000000000d60ca3642c427b0144ede812b85ec32596193bbe000000000000000000000000f11fec9ee3f1771c8846ea6f31d1348be9f37a2a00000000000000000000000066128e19108cdd449a2730c961b3bb36016bb892000000000000000000000000962202c401cf5a597e7059905cee8844af9a3bf9000000000000000000000000470a1b98a076fb4c218f805c4bcc0a66500b67c50000000000000000000000008a213d60ff5f32d74aae8116d5a266c50873b6760000000000000000000000002c170ad571ff25b171559508e49f0b542686a8ee0000000000000000000000008df2a3a3fe8f1564e8f1f24572a3d69153fbf99e0000000000000000000000002048a5809a027537c2ffb1b0e957cc8b5f598d5b000000000000000000000000a4580a36c1feb862897a42d3615ca91d412ec91f0000000000000000000000009d0a83ce3d9cb8a29c476a256165eea62e469a21000000000000000000000000772d806af63eac0b5a5a73c9a0680ee202103a4b000000000000000000000000a2ab60a6d8690e0aafa95434baa5be044e982f820000000000000000000000003283e87f937b2940ae64f52185af16ec8e7552b60000000000000000000000008b8dd01f57df122bc30ac507b52305de292d47750000000000000000000000007e470e001560de4625eb2fd83321196543316924000000000000000000000000000000000000000000000000000000000000003213524ec450b9ac611fb332a25b6c2eb436d13ac8a540f69a50d6ff8d4fe9f2492b7d0f6e80e80e9b5f9c7a9fa2d482c2e8ea6c1657057c5548b7e30412d48bc30e3450c5b583e57d8fe736d276e9e4bb2ce4b38a5e9ac77b1289ba14a5e9cf581ce786f52d5bd0e77c1eacfa3dd5df0e22464888fa4bfab6eff9f29e8f86084b2f6dd4eda4296d9cf85064adbe2507901fcd4ece425cc996827ba4a2c111c8121e6fe59e1d18c107d480077debf3ea265a52325725a853a710f7ec3af5e3286905fde1416ab5b30e4b140ad4a29a52cd9bc85ca27bd4662ba842a2e22118bea60dc32694f317d886daac5419b39412a33ee89e07d39d557e4e2b0e48696ac3110a668da45c5b5ecd479960e6e909ff8c46b258f1722104f72bc37322c59fab262220912a0d72e14443e2abc8161583c859d8479b1e4fb2fc7dc57b45753d361d1b84b827bcc7029e2804b127643f73d079796d1177634dd23d00de5f4444e70f20f2445675bb5070fa431680d42a8a37198c1a53e4071d7d5d53c6e2651f90981dfc074e52b9cf63cb92333be87d8ae06fd1fb7ffb97b50995beaa26e4fe921b180f3d907d89a729c1b19fcc7472fd3ba424ba59d38ab4006214b432e3b213ea018e6678c812fd741ee1f49aa41ba2a5b663e7e6c5b0a4b8c1c81dc92d9eaa1e16ecf0532be69696114002afcee88625f77e6ab3d28fd739c8734d329ce73ab7033059801a6fd7826958420f795254983b92050dc61378c9b88471c9f353350f28a7d74cfcfe21f635a77c2f9d4d3767e3fabd177d2643a66add7c680ac51d722e8f70660e0a03d6c73b4cfdb47f4274f20c5f2998aafb6a450d8fe090f349ce2ebc9314a29fcf59d98b7a63450ad837ac5419678afcbf0c53ce6e1ed64090b12bcad66c663826f0a2fe3fb9b5903191e57d674e8bfa7d0f6a79b3a3285cb73617471df702cfa2291b3528358d57971cc3acb5691114e6203fe057494340715008080e71139bcf98cfbee858c33a098222b5ad6f4be7ca2ebe2e0f0ac472c89f0a13ee4f882e9730c6eafcc0682cb8b83e4bc4b370c27d1ad341525bbfa7963d2f928a60f059bb2bed8d6e78c112ba51c93239ba73a8d7144428c858d7a9b6d92796ed018543f1d5906dac3d9aae2d6022bda0e4e3232910bfe2a2f231e8cd6a124846122427b73639c4ebce86578183c067ee18483bf26e3f5f186044df092b2d005675a088f6fe1a56c588fbe27d0c9bc4e6ef02d57ae1de3716edf4e715912ea501c3b1244a9d557be07800da305bae0eac0a895f8a3d264b84869b3c1f490221904bae33a94a35feedc0bac3f983e8bb10bde8293bb79f8d5bd24e5c035a2c7ce19fdd20713e61f31a9b7c890aa4b41b7c7344b2108f98dfd2adf9ce11f91359456888a8f6c7a76fe09896e51052acd2cf569f85497e1f06f7c499f42c0a3032cb2b8582dfe1f564894efc681c72fc92bc298bb00b038ebbaca3a85a9c200188b95e15c64c35897aacf9a0d121582f46f0f6824c3498ef515f01e99f998c2d3fe384324f83097616bcd59f9e508e3914412655b2566798113e135318672f0959032baf1300fb4beb8700967b90291e31a5b34fe33e6cd66b6958c51a084b0df3666b459b3058cbb060bd176a86570e7a16131ad8c1f38fac92e7095214f72eda38b32a9f4c007a7cbc9f286640a84ddf6b4f62208663a7f393191f8069751229e2f27c6ad3da481dd04812c985b3f953a999b9931014a6710dfd6f9ce7f10a5d68e6ceea14d378b71070cba8a4e8e32653e0a1c0bb8c51f347d76615956d22ccb99ad32bc0c067b1eb6d1e077259578db4f5aeff7be8dae64d8741ebb2fb2a0144e9d7ef5bd30e5be4b7f3a8c1cf8722d55c53c2ee938ca761555ee0f3730b2ccf0c26f4af6bd32b89fd2817cbce4c9fe387572a5649cda83cb20f2b33aa0a646a9f3c273cca2e0b895cd25bcea05663b571d7b04c87cac005ac37bc363f05350f41c7e683a6377b7adb05078a4d2108132abd3e2b832174412bcb7ddc1c2d389799b77da9432b2d27815e73682e655a3d990e539f534340ff6f56c0106d1751052daef728173428c761613e44072cbe9a9516318d78432f9471fb3346312084bb4ca15633eb521cbbfa1039088e6b769707d61dc8874d1472e1cf2e7cf42d3cbc994fada5e8e401c37f1f7739450d57a69ddaca4a4ef0b293167661c6c3211019d0941e184442fc13888cfa481084cb3bea645c2a26bc3fc8b1d5c95503146c16d9aea6e89b4a1e0dc981ab88a4b007f1efb22678b2887b3c0a4b967e1308eef1eb3bdcd1315910c2191b1c3c75185c6bdcf529b940ac5ea665448cae5b035854efe69ad0cf30eef5da865b83ad17d6b7e5b83670aa4bea63aad3e8cce321c6402e72e588192a8f87b3f13bccd51c0bcb0df2adb05c5221cf7f2acf43d81c8b703c5cbf267b2205b4fd51dff823739fcbb676edeab57a9f7bb686b7238f09dc873fd6bb5584ccd4682264f391c7c075ad09776212b202b763e02481a61c28c4b0c633177c4a58066ebde38b77e3eae0c3dcf3fce5b1ede45d0a66d54f9121c05d6c026af86b970f2478c3124162774d6739f0dac14473bbb4c45eb5f43e297b71cdfd52060de83904e09b06f69e102bea13fde5416e41d65d3f64f49d2f10c29c522ca0fc2a5b7357aaa165c6f43a71c864d23c1c74cda99e1f00506621067c077d8696f4ce23266ac83f977c6ffd34614c3e01b0fd99d2d5bae001c70508cd2795c6bb22f7d9f461b86164f316e328b0fb6ae4a72b25fd7078f894a8c9037cd451429cb43e2c3d7e90775d89e65cb1a0d71c6a32e4a04657b1577515ec09f4baca943630b70d8dac83d3d9a7508d7314df7f297309742bab8c16f6b1fb08df6962b81e21afa78194d5e70cc386e388c200197a50eea31375dfd575a7211810b29b25888ff35b5cb947af8ebc1dfd807be38e8d3391239c02cb459a437626ea7c086f13d7f784787a93f86f5db82bddf90ed05a7de3c823b6f81771c11b0bfb1bdaffbce7964e14ba8723b28cbc906e6d84896b5d2b4ad589f7809f7e281cd105c059cad4cf30cb1d0ae6cb332741c7bad079c8fef420f3f6b2213b1f68175f9e466078b4b82e9872a506db90938d6a85a069598f3396c35bc475ab8b8e1ffc837e6ce0a74d1a7fa7a8e5b8bcc38754406fb3216fecb9c31b0998a96ab826370356fab161ecaf73f9343270d869fee2c4e94d4fe066d035b0e920e2c88b0741261205867768eeba5651a2f66f9bd50c0d63e38229c5d405f8dde22a816d0217eded8dd69f5bc82b38fb32cf92ded5dd308173bb70fc8058f369af2270d9213f0a2b71e9404a7d7eb1087305ef744e6d49248725afcdc5e1e8925978060216c300498b8f5eac4f441f7406143edea41b7f4bc835ef35e254151c8dd74baa0c23ae85055e9a07dc05c594c994cc7afc7655dc54164da10091a66edbca26ed2c364fbb2910543eeaa62dee186ecc130bef41562a65927a8133849c307216832baeb6750fc7612526ed9723afaf1f71765fed6206e68562789609fb973da4e50e7131941bb144514e0976a4a1b4ceed8cd798744d866bfb7e198024e152866b2db50436c290d462781ac4d169f976780784526cade7afe1aabe2456c2fca3f21ea774c24111d858cf2e764dc7ef10251ca1978da8d2f1edba866582677e950122c4fd3d333d820c874adac5f09f50205a4dcd169be7dc5c93742999576c50fd0e7887e1412f5ff6319d03b9477965f32187f441b27134277517d4a664d8785b11c258732d1d8a65957d93eb26a0bce39a7cf63bc833a154e2c823338e0ed9b42fe46f7994c827cdc17c57c0bba280fcf80e1ae99c96312d0c27424934d6ae762051148c2b988e8ebda24c25d25a4e03c3a2d3e8ce5ed85d444fe54b6e7703de1c7c3a09a5fbd8780ed41dbd22697f2820a68141dc20833873bcc9aefaf1132f1a8d8e0cff3f8acd78774762ae29f2e3ae5e6f8436841c43ba17ff9e9135915b07d3a17c17b5aae1914b0bc21b89135015e5ad724877d6745826ea2d09b1b9e320148b532b5ea2d75d73128d0d121890ec603e29415fe1bbb8660f5117f095bf2ddc98a181203aa14c6ec08c812e8362540d7b4bdd053332e20600d4cdd1466000fac007a5cb1b86458db4bd7ae9a938179e9339ccabd6bc6933846fb79295fc2693d0c79759bc2eaec19e1e841cff38ca2b1929707e8faf4d4e630bdbceddf108d0944c7d7385ce3a446a3214232c2caef11076e012e534d4a829a1099b79f00c75b70075f3024142c2b706089898dd246965b68db915d34b3168a0a6f5f1992b8653f000c7859c8ac74bb56e7607ea61ce8a0f39e0a39a22e324edf8925b002c52aa359cd7effb0c970f022b9f5b5203ac8298faffd191dabc5abf039ea27c2cb4a0964b841b56dd6e727beb14ec60a949ef96b9e775a033b00f784ce5ec20210904212e2b04e5ccac9f5e573e62e02b43a7f6ca3046d397466f44567aed0a000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001

-----Encoded View---------------
215 Constructor Arguments found :
Arg [0] : 00000000000000000000000014843295c38eac604dede0edb77e08b460d093d8
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [2] : 0000000000000000000000000000000000000000000000000000000000001a64
Arg [3] : d27d3f9c00000000000000000000000000000000000000000000000000000000
Arg [4] : 0000002200000000000000000000000000000000000000000000000000000000
Arg [5] : 0000010000000000000000000000000000000000000000000000000000000000
Arg [6] : 0000076000000000000000000000000000000000000000000000000000000000
Arg [7] : 0000140000000000000000000000000000000000000000000000000000000000
Arg [8] : 000000e600000000000000000000000000000000000000000000000000000000
Arg [9] : 0000c35000000000000000000000000092649181ccf7775be3b212ff2e02f8f5
Arg [10] : 7366bff30000000000000000000000007f4cba3d7f20bf5146e4e5f8929b676c
Arg [11] : a05a554500000000000000000000000000000000000000000000000000000000
Arg [12] : 00000032000000000000000000000000b4e1bc0856f70a55764fd6b3f8dd27f2
Arg [13] : 162108e90000000000000000000000007a3a26123dbd9cfefc1725fe7779580b
Arg [14] : 987251cb0000000000000000000000007607c9cdd733d8cda0a644839ec2bac5
Arg [15] : fa180ed400000000000000000000000065b3fee569bf82ff148bdded9c3793fb
Arg [16] : 685f9333000000000000000000000000a9c044c42591c57362315130a0e9a80f
Arg [17] : 7c3a0c2c0000000000000000000000008d3925c8fe63ab483f113a6a6f52d09e
Arg [18] : 02ec7d47000000000000000000000000171cea72aed36c6bcb51a5b915646e1f
Arg [19] : 7aa6ac7f000000000000000000000000069633a9adeaed7a17ff78b24f272950
Arg [20] : 3cff6c90000000000000000000000000ce5fc472c7b7d36c14043862fdce0340
Arg [21] : 2f2925eb00000000000000000000000001734524cc07a49a1237b950d72caae9
Arg [22] : 8d94676300000000000000000000000048bceb30bc96afa7f659a6fb6bd8d112
Arg [23] : 7a89e8e900000000000000000000000037629d8d17f8ca81a003f76b75020741
Arg [24] : 7eed19fa0000000000000000000000009e5665acb994906c55bda5f18ec33f05
Arg [25] : 012bb46a0000000000000000000000004a032839455e7616054f38ade3043fa4
Arg [26] : 47a099bf00000000000000000000000059ff5a050c17bd2d191f4eb24b27afb5
Arg [27] : 0dc5eedc000000000000000000000000e4f125a24c0591795cc880852a8abc83
Arg [28] : 952759390000000000000000000000002fe1e683a4a9e89ca9bf66f558d9019c
Arg [29] : e20060a40000000000000000000000006be1f2dcdb6a846c9df353aa77f622bc
Arg [30] : 859574ab000000000000000000000000c39ef66e5707ff7c8fdb5524aaa375a2
Arg [31] : 5652facd000000000000000000000000e498d13527524132736d804c42a288d7
Arg [32] : 2a979e46000000000000000000000000dbbd0434bf5a280b19efb4d4d740da1e
Arg [33] : 4af5e9ee000000000000000000000000df28b2b6a402971b530f3a7067eb46b9
Arg [34] : b3ebdf7c00000000000000000000000016cf4cb98b9ab0b529ad0e79a18b8834
Arg [35] : b8d3f48c00000000000000000000000033e0eb45406e61c9ef923ddeedc65b74
Arg [36] : 80758f260000000000000000000000003ab66bdcb36d7ccd76a54c9f805427e2
Arg [37] : 500116f30000000000000000000000006ffcf9aef4919b316fd4b297d5b55e20
Arg [38] : b68c99fe00000000000000000000000068b0ffca849a8fa40c622113ccf2878a
Arg [39] : d62057d4000000000000000000000000572fbdd417b1dec77e63130fa83db6a7
Arg [40] : 59c1a8ea000000000000000000000000ce1dd70d070b5f192a066f339554aea3
Arg [41] : 299ff96000000000000000000000000054fc7531adbcfd682c87a2067b7f98d6
Arg [42] : f1673f6f00000000000000000000000027d1903457a8678902065acd29d9f0e3
Arg [43] : ca1b7183000000000000000000000000e0261ad3c47b4e031120638fc8cd4519
Arg [44] : baab792c000000000000000000000000457b4d26cd2669769a450e785acb26e8
Arg [45] : 99ed58d3000000000000000000000000acce1869f2878522301b4b1f33a4d6f6
Arg [46] : 0622fe94000000000000000000000000d60ca3642c427b0144ede812b85ec325
Arg [47] : 96193bbe000000000000000000000000f11fec9ee3f1771c8846ea6f31d1348b
Arg [48] : e9f37a2a00000000000000000000000066128e19108cdd449a2730c961b3bb36
Arg [49] : 016bb892000000000000000000000000962202c401cf5a597e7059905cee8844
Arg [50] : af9a3bf9000000000000000000000000470a1b98a076fb4c218f805c4bcc0a66
Arg [51] : 500b67c50000000000000000000000008a213d60ff5f32d74aae8116d5a266c5
Arg [52] : 0873b6760000000000000000000000002c170ad571ff25b171559508e49f0b54
Arg [53] : 2686a8ee0000000000000000000000008df2a3a3fe8f1564e8f1f24572a3d691
Arg [54] : 53fbf99e0000000000000000000000002048a5809a027537c2ffb1b0e957cc8b
Arg [55] : 5f598d5b000000000000000000000000a4580a36c1feb862897a42d3615ca91d
Arg [56] : 412ec91f0000000000000000000000009d0a83ce3d9cb8a29c476a256165eea6
Arg [57] : 2e469a21000000000000000000000000772d806af63eac0b5a5a73c9a0680ee2
Arg [58] : 02103a4b000000000000000000000000a2ab60a6d8690e0aafa95434baa5be04
Arg [59] : 4e982f820000000000000000000000003283e87f937b2940ae64f52185af16ec
Arg [60] : 8e7552b60000000000000000000000008b8dd01f57df122bc30ac507b52305de
Arg [61] : 292d47750000000000000000000000007e470e001560de4625eb2fd833211965
Arg [62] : 4331692400000000000000000000000000000000000000000000000000000000
Arg [63] : 0000003213524ec450b9ac611fb332a25b6c2eb436d13ac8a540f69a50d6ff8d
Arg [64] : 4fe9f2492b7d0f6e80e80e9b5f9c7a9fa2d482c2e8ea6c1657057c5548b7e304
Arg [65] : 12d48bc30e3450c5b583e57d8fe736d276e9e4bb2ce4b38a5e9ac77b1289ba14
Arg [66] : a5e9cf581ce786f52d5bd0e77c1eacfa3dd5df0e22464888fa4bfab6eff9f29e
Arg [67] : 8f86084b2f6dd4eda4296d9cf85064adbe2507901fcd4ece425cc996827ba4a2
Arg [68] : c111c8121e6fe59e1d18c107d480077debf3ea265a52325725a853a710f7ec3a
Arg [69] : f5e3286905fde1416ab5b30e4b140ad4a29a52cd9bc85ca27bd4662ba842a2e2
Arg [70] : 2118bea60dc32694f317d886daac5419b39412a33ee89e07d39d557e4e2b0e48
Arg [71] : 696ac3110a668da45c5b5ecd479960e6e909ff8c46b258f1722104f72bc37322
Arg [72] : c59fab262220912a0d72e14443e2abc8161583c859d8479b1e4fb2fc7dc57b45
Arg [73] : 753d361d1b84b827bcc7029e2804b127643f73d079796d1177634dd23d00de5f
Arg [74] : 4444e70f20f2445675bb5070fa431680d42a8a37198c1a53e4071d7d5d53c6e2
Arg [75] : 651f90981dfc074e52b9cf63cb92333be87d8ae06fd1fb7ffb97b50995beaa26
Arg [76] : e4fe921b180f3d907d89a729c1b19fcc7472fd3ba424ba59d38ab4006214b432
Arg [77] : e3b213ea018e6678c812fd741ee1f49aa41ba2a5b663e7e6c5b0a4b8c1c81dc9
Arg [78] : 2d9eaa1e16ecf0532be69696114002afcee88625f77e6ab3d28fd739c8734d32
Arg [79] : 9ce73ab7033059801a6fd7826958420f795254983b92050dc61378c9b88471c9
Arg [80] : f353350f28a7d74cfcfe21f635a77c2f9d4d3767e3fabd177d2643a66add7c68
Arg [81] : 0ac51d722e8f70660e0a03d6c73b4cfdb47f4274f20c5f2998aafb6a450d8fe0
Arg [82] : 90f349ce2ebc9314a29fcf59d98b7a63450ad837ac5419678afcbf0c53ce6e1e
Arg [83] : d64090b12bcad66c663826f0a2fe3fb9b5903191e57d674e8bfa7d0f6a79b3a3
Arg [84] : 285cb73617471df702cfa2291b3528358d57971cc3acb5691114e6203fe05749
Arg [85] : 4340715008080e71139bcf98cfbee858c33a098222b5ad6f4be7ca2ebe2e0f0a
Arg [86] : c472c89f0a13ee4f882e9730c6eafcc0682cb8b83e4bc4b370c27d1ad341525b
Arg [87] : bfa7963d2f928a60f059bb2bed8d6e78c112ba51c93239ba73a8d7144428c858
Arg [88] : d7a9b6d92796ed018543f1d5906dac3d9aae2d6022bda0e4e3232910bfe2a2f2
Arg [89] : 31e8cd6a124846122427b73639c4ebce86578183c067ee18483bf26e3f5f1860
Arg [90] : 44df092b2d005675a088f6fe1a56c588fbe27d0c9bc4e6ef02d57ae1de3716ed
Arg [91] : f4e715912ea501c3b1244a9d557be07800da305bae0eac0a895f8a3d264b8486
Arg [92] : 9b3c1f490221904bae33a94a35feedc0bac3f983e8bb10bde8293bb79f8d5bd2
Arg [93] : 4e5c035a2c7ce19fdd20713e61f31a9b7c890aa4b41b7c7344b2108f98dfd2ad
Arg [94] : f9ce11f91359456888a8f6c7a76fe09896e51052acd2cf569f85497e1f06f7c4
Arg [95] : 99f42c0a3032cb2b8582dfe1f564894efc681c72fc92bc298bb00b038ebbaca3
Arg [96] : a85a9c200188b95e15c64c35897aacf9a0d121582f46f0f6824c3498ef515f01
Arg [97] : e99f998c2d3fe384324f83097616bcd59f9e508e3914412655b2566798113e13
Arg [98] : 5318672f0959032baf1300fb4beb8700967b90291e31a5b34fe33e6cd66b6958
Arg [99] : c51a084b0df3666b459b3058cbb060bd176a86570e7a16131ad8c1f38fac92e7
Arg [100] : 095214f72eda38b32a9f4c007a7cbc9f286640a84ddf6b4f62208663a7f39319
Arg [101] : 1f8069751229e2f27c6ad3da481dd04812c985b3f953a999b9931014a6710dfd
Arg [102] : 6f9ce7f10a5d68e6ceea14d378b71070cba8a4e8e32653e0a1c0bb8c51f347d7
Arg [103] : 6615956d22ccb99ad32bc0c067b1eb6d1e077259578db4f5aeff7be8dae64d87
Arg [104] : 41ebb2fb2a0144e9d7ef5bd30e5be4b7f3a8c1cf8722d55c53c2ee938ca76155
Arg [105] : 5ee0f3730b2ccf0c26f4af6bd32b89fd2817cbce4c9fe387572a5649cda83cb2
Arg [106] : 0f2b33aa0a646a9f3c273cca2e0b895cd25bcea05663b571d7b04c87cac005ac
Arg [107] : 37bc363f05350f41c7e683a6377b7adb05078a4d2108132abd3e2b832174412b
Arg [108] : cb7ddc1c2d389799b77da9432b2d27815e73682e655a3d990e539f534340ff6f
Arg [109] : 56c0106d1751052daef728173428c761613e44072cbe9a9516318d78432f9471
Arg [110] : fb3346312084bb4ca15633eb521cbbfa1039088e6b769707d61dc8874d1472e1
Arg [111] : cf2e7cf42d3cbc994fada5e8e401c37f1f7739450d57a69ddaca4a4ef0b29316
Arg [112] : 7661c6c3211019d0941e184442fc13888cfa481084cb3bea645c2a26bc3fc8b1
Arg [113] : d5c95503146c16d9aea6e89b4a1e0dc981ab88a4b007f1efb22678b2887b3c0a
Arg [114] : 4b967e1308eef1eb3bdcd1315910c2191b1c3c75185c6bdcf529b940ac5ea665
Arg [115] : 448cae5b035854efe69ad0cf30eef5da865b83ad17d6b7e5b83670aa4bea63aa
Arg [116] : d3e8cce321c6402e72e588192a8f87b3f13bccd51c0bcb0df2adb05c5221cf7f
Arg [117] : 2acf43d81c8b703c5cbf267b2205b4fd51dff823739fcbb676edeab57a9f7bb6
Arg [118] : 86b7238f09dc873fd6bb5584ccd4682264f391c7c075ad09776212b202b763e0
Arg [119] : 2481a61c28c4b0c633177c4a58066ebde38b77e3eae0c3dcf3fce5b1ede45d0a
Arg [120] : 66d54f9121c05d6c026af86b970f2478c3124162774d6739f0dac14473bbb4c4
Arg [121] : 5eb5f43e297b71cdfd52060de83904e09b06f69e102bea13fde5416e41d65d3f
Arg [122] : 64f49d2f10c29c522ca0fc2a5b7357aaa165c6f43a71c864d23c1c74cda99e1f
Arg [123] : 00506621067c077d8696f4ce23266ac83f977c6ffd34614c3e01b0fd99d2d5ba
Arg [124] : e001c70508cd2795c6bb22f7d9f461b86164f316e328b0fb6ae4a72b25fd7078
Arg [125] : f894a8c9037cd451429cb43e2c3d7e90775d89e65cb1a0d71c6a32e4a04657b1
Arg [126] : 577515ec09f4baca943630b70d8dac83d3d9a7508d7314df7f297309742bab8c
Arg [127] : 16f6b1fb08df6962b81e21afa78194d5e70cc386e388c200197a50eea31375df
Arg [128] : d575a7211810b29b25888ff35b5cb947af8ebc1dfd807be38e8d3391239c02cb
Arg [129] : 459a437626ea7c086f13d7f784787a93f86f5db82bddf90ed05a7de3c823b6f8
Arg [130] : 1771c11b0bfb1bdaffbce7964e14ba8723b28cbc906e6d84896b5d2b4ad589f7
Arg [131] : 809f7e281cd105c059cad4cf30cb1d0ae6cb332741c7bad079c8fef420f3f6b2
Arg [132] : 213b1f68175f9e466078b4b82e9872a506db90938d6a85a069598f3396c35bc4
Arg [133] : 75ab8b8e1ffc837e6ce0a74d1a7fa7a8e5b8bcc38754406fb3216fecb9c31b09
Arg [134] : 98a96ab826370356fab161ecaf73f9343270d869fee2c4e94d4fe066d035b0e9
Arg [135] : 20e2c88b0741261205867768eeba5651a2f66f9bd50c0d63e38229c5d405f8dd
Arg [136] : e22a816d0217eded8dd69f5bc82b38fb32cf92ded5dd308173bb70fc8058f369
Arg [137] : af2270d9213f0a2b71e9404a7d7eb1087305ef744e6d49248725afcdc5e1e892
Arg [138] : 5978060216c300498b8f5eac4f441f7406143edea41b7f4bc835ef35e254151c
Arg [139] : 8dd74baa0c23ae85055e9a07dc05c594c994cc7afc7655dc54164da10091a66e
Arg [140] : dbca26ed2c364fbb2910543eeaa62dee186ecc130bef41562a65927a8133849c
Arg [141] : 307216832baeb6750fc7612526ed9723afaf1f71765fed6206e68562789609fb
Arg [142] : 973da4e50e7131941bb144514e0976a4a1b4ceed8cd798744d866bfb7e198024
Arg [143] : e152866b2db50436c290d462781ac4d169f976780784526cade7afe1aabe2456
Arg [144] : c2fca3f21ea774c24111d858cf2e764dc7ef10251ca1978da8d2f1edba866582
Arg [145] : 677e950122c4fd3d333d820c874adac5f09f50205a4dcd169be7dc5c93742999
Arg [146] : 576c50fd0e7887e1412f5ff6319d03b9477965f32187f441b27134277517d4a6
Arg [147] : 64d8785b11c258732d1d8a65957d93eb26a0bce39a7cf63bc833a154e2c82333
Arg [148] : 8e0ed9b42fe46f7994c827cdc17c57c0bba280fcf80e1ae99c96312d0c274249
Arg [149] : 34d6ae762051148c2b988e8ebda24c25d25a4e03c3a2d3e8ce5ed85d444fe54b
Arg [150] : 6e7703de1c7c3a09a5fbd8780ed41dbd22697f2820a68141dc20833873bcc9ae
Arg [151] : faf1132f1a8d8e0cff3f8acd78774762ae29f2e3ae5e6f8436841c43ba17ff9e
Arg [152] : 9135915b07d3a17c17b5aae1914b0bc21b89135015e5ad724877d6745826ea2d
Arg [153] : 09b1b9e320148b532b5ea2d75d73128d0d121890ec603e29415fe1bbb8660f51
Arg [154] : 17f095bf2ddc98a181203aa14c6ec08c812e8362540d7b4bdd053332e20600d4
Arg [155] : cdd1466000fac007a5cb1b86458db4bd7ae9a938179e9339ccabd6bc6933846f
Arg [156] : b79295fc2693d0c79759bc2eaec19e1e841cff38ca2b1929707e8faf4d4e630b
Arg [157] : dbceddf108d0944c7d7385ce3a446a3214232c2caef11076e012e534d4a829a1
Arg [158] : 099b79f00c75b70075f3024142c2b706089898dd246965b68db915d34b3168a0
Arg [159] : a6f5f1992b8653f000c7859c8ac74bb56e7607ea61ce8a0f39e0a39a22e324ed
Arg [160] : f8925b002c52aa359cd7effb0c970f022b9f5b5203ac8298faffd191dabc5abf
Arg [161] : 039ea27c2cb4a0964b841b56dd6e727beb14ec60a949ef96b9e775a033b00f78
Arg [162] : 4ce5ec20210904212e2b04e5ccac9f5e573e62e02b43a7f6ca3046d397466f44
Arg [163] : 567aed0a00000000000000000000000000000000000000000000000000000000
Arg [164] : 0000003200000000000000000000000000000000000000000000000000000000
Arg [165] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [166] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [167] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [168] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [169] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [170] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [171] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [172] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [173] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [174] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [175] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [176] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [177] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [178] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [179] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [180] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [181] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [182] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [183] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [184] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [185] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [186] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [187] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [188] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [189] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [190] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [191] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [192] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [193] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [194] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [195] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [196] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [197] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [198] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [199] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [200] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [201] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [202] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [203] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [204] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [205] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [206] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [207] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [208] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [209] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [210] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [211] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [212] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [213] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [214] : 0000000100000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

124:202:11:-:0;;;;;;2898:11:4;:9;:11::i;:::-;124:202:11;;2675:11:4;2322:110;2397:28;2407:17;:15;:17::i;:::-;2397:9;:28::i;:::-;2322:110::o;1148:140:2:-;1215:12;1246:35;1030:66:3;1254:54;-1:-1:-1;;;;;1254:54:3;;1175:140;1246:35:2;1239:42;;1148:140;:::o;948:895:4:-;1286:14;1283:1;1280;1267:34;1500:1;1497;1481:14;1478:1;1462:14;1455:5;1442:60;1576:16;1573:1;1570;1555:38;1614:6;1681:66;;;;1796:16;1793:1;1786:27;1681:66;1716:16;1713:1;1706:27

Swarm Source

ipfs://a88237f3184f6d5cf083c1bf42894bd71221bcc236cd502ffc09a5d1e0f83351

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.