More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 1,889,878 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Deposit Native | 50542596 | 2 mins ago | IN | 0.01208967 ETH | 0.00000701 | ||||
Withdraw Native ... | 50541289 | 25 mins ago | IN | 0 ETH | 0.00000565 | ||||
Deposit Native | 50541019 | 30 mins ago | IN | 0.00098335 ETH | 0.00000558 | ||||
Withdraw Native ... | 50540909 | 32 mins ago | IN | 0 ETH | 0.0000072 | ||||
Deposit Native | 50540242 | 44 mins ago | IN | 0.06 ETH | 0.00000587 | ||||
Deposit Native | 50539858 | 51 mins ago | IN | 0.1991174 ETH | 0.00000569 | ||||
Withdraw Native ... | 50539584 | 56 mins ago | IN | 0 ETH | 0.00000568 | ||||
Withdraw V2 | 50539427 | 1 hrs ago | IN | 0 ETH | 0.00000651 | ||||
Withdraw Native ... | 50539310 | 1 hr ago | IN | 0 ETH | 0.00000876 | ||||
Deposit Native | 50538553 | 1 hr ago | IN | 0.45207845 ETH | 0.00000784 | ||||
Deposit Native | 50538071 | 1 hr ago | IN | 1.92411008 ETH | 0.0000043 | ||||
Deposit | 50537972 | 1 hr ago | IN | 0 ETH | 0.00000518 | ||||
Withdraw Native ... | 50537668 | 1 hr ago | IN | 0 ETH | 0.00000765 | ||||
Deposit Native | 50537079 | 1 hr ago | IN | 0.0026249 ETH | 0.0000058 | ||||
Deposit Native | 50535683 | 2 hrs ago | IN | 0.00975224 ETH | 0.00000763 | ||||
Deposit | 50535487 | 2 hrs ago | IN | 0 ETH | 0.0000051 | ||||
Withdraw Native ... | 50535097 | 2 hrs ago | IN | 0 ETH | 0.00000598 | ||||
Withdraw V2 | 50534758 | 2 hrs ago | IN | 0 ETH | 0.00001048 | ||||
Deposit Native | 50533832 | 2 hrs ago | IN | 0.00073985 ETH | 0.00000604 | ||||
Deposit | 50532557 | 3 hrs ago | IN | 0 ETH | 0.00000625 | ||||
Deposit Native | 50531641 | 3 hrs ago | IN | 0.0051 ETH | 0.00000799 | ||||
Deposit Native | 50529302 | 3 hrs ago | IN | 0.00266921 ETH | 0.00000621 | ||||
Deposit | 50528640 | 4 hrs ago | IN | 0 ETH | 0.00000549 | ||||
Deposit Native | 50528446 | 4 hrs ago | IN | 0.00931666 ETH | 0.00000829 | ||||
Deposit Native | 50527123 | 4 hrs ago | IN | 0.00123605 ETH | 0.00000752 |
Latest 25 internal transactions (View All)
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
50542596 | 2 mins ago | 0.01208967 ETH | ||||
50542596 | 2 mins ago | 0.01208967 ETH | ||||
50541289 | 25 mins ago | 0.09957822 ETH | ||||
50541019 | 30 mins ago | 0.00098335 ETH | ||||
50541019 | 30 mins ago | 0.00098335 ETH | ||||
50540909 | 32 mins ago | 0.31451092 ETH | ||||
50540242 | 44 mins ago | 0.06 ETH | ||||
50540242 | 44 mins ago | 0.06 ETH | ||||
50539858 | 51 mins ago | 0.1991174 ETH | ||||
50539858 | 51 mins ago | 0.1991174 ETH | ||||
50539584 | 56 mins ago | 0.00563192 ETH | ||||
50539310 | 1 hr ago | 0.00575513 ETH | ||||
50538553 | 1 hr ago | 0.45207845 ETH | ||||
50538553 | 1 hr ago | 0.45207845 ETH | ||||
50538071 | 1 hr ago | 1.92411008 ETH | ||||
50538071 | 1 hr ago | 1.92411008 ETH | ||||
50537668 | 1 hr ago | 0.10157779 ETH | ||||
50537079 | 1 hr ago | 0.0026249 ETH | ||||
50537079 | 1 hr ago | 0.0026249 ETH | ||||
50535683 | 2 hrs ago | 0.00975224 ETH | ||||
50535683 | 2 hrs ago | 0.00975224 ETH | ||||
50535097 | 2 hrs ago | 0.09957752 ETH | ||||
50533832 | 2 hrs ago | 0.00073985 ETH | ||||
50533832 | 2 hrs ago | 0.00073985 ETH | ||||
50531641 | 3 hrs ago | 0.0051 ETH |
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Name:
TransparentUpgradeableProxy
Compiler Version
v0.8.17+commit.8df45f5f
ZkSolc Version
v1.3.2
Contract Source Code (Solidity)
/** *Submitted for verification at era.zksync.network on 2024-01-03 */ // Sources flattened with hardhat v2.12.6 https://hardhat.org // File @openzeppelin/contracts/utils/[email protected] // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } // File @openzeppelin/contracts/access/[email protected] // OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol) pragma solidity ^0.8.0; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // File @openzeppelin/contracts/interfaces/[email protected] // 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 @openzeppelin/contracts/proxy/beacon/[email protected] // 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); } // File @openzeppelin/contracts/utils/[email protected] // OpenZeppelin Contracts (last updated v4.7.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 * ==== * * [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://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 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 functionCall(target, data, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value ) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{value: value}(data); return verifyCallResult(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) { require(isContract(target), "Address: static call to non-contract"); (bool success, bytes memory returndata) = target.staticcall(data); return verifyCallResult(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) { require(isContract(target), "Address: delegate call to non-contract"); (bool success, bytes memory returndata) = target.delegatecall(data); return verifyCallResult(success, returndata, errorMessage); } /** * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the * revert reason 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 { // 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); } } } } // File @openzeppelin/contracts/utils/[email protected] // OpenZeppelin Contracts (last updated v4.7.0) (utils/StorageSlot.sol) 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: * ``` * 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`, and `uint256`._ */ library StorageSlot { struct AddressSlot { address value; } struct BooleanSlot { bool value; } struct Bytes32Slot { bytes32 value; } struct Uint256Slot { uint256 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 } } } // File @openzeppelin/contracts/proxy/ERC1967/[email protected] // OpenZeppelin Contracts (last updated v4.5.0) (proxy/ERC1967/ERC1967Upgrade.sol) pragma solidity ^0.8.2; /** * @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._ * * @custom:oz-upgrades-unsafe-allow delegatecall */ abstract contract ERC1967Upgrade { // 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 Emitted when the implementation is upgraded. */ event Upgraded(address indexed implementation); /** * @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 Emitted when the admin account has changed. */ event AdminChanged(address previousAdmin, address newAdmin); /** * @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 Emitted when the beacon is upgraded. */ event BeaconUpgraded(address indexed beacon); /** * @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); } } } // File @openzeppelin/contracts/proxy/[email protected] // 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 {} } // File @openzeppelin/contracts/proxy/ERC1967/[email protected] // OpenZeppelin Contracts (last updated v4.7.0) (proxy/ERC1967/ERC1967Proxy.sol) pragma solidity ^0.8.0; /** * @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(); } } // File @openzeppelin/contracts/proxy/transparent/[email protected] // OpenZeppelin Contracts (last updated v4.7.0) (proxy/transparent/TransparentUpgradeableProxy.sol) pragma solidity ^0.8.0; /** * @dev This contract implements a proxy that is upgradeable by an admin. * * To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector * clashing], which can potentially be used in an attack, this contract uses the * https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two * things that go hand in hand: * * 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if * that call matches one of the admin functions exposed by the proxy itself. * 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the * implementation. If the admin tries to call a function on the implementation it will fail with an error that says * "admin cannot fallback to proxy target". * * These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing * the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due * to sudden errors when trying to call a function from the proxy implementation. * * Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way, * you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy. */ contract TransparentUpgradeableProxy is ERC1967Proxy { /** * @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and * optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}. */ constructor( address _logic, address admin_, bytes memory _data ) payable ERC1967Proxy(_logic, _data) { _changeAdmin(admin_); } /** * @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin. */ modifier ifAdmin() { if (msg.sender == _getAdmin()) { _; } else { _fallback(); } } /** * @dev Returns the current admin. * * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}. * * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. * `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103` */ function admin() external ifAdmin returns (address admin_) { admin_ = _getAdmin(); } /** * @dev Returns the current implementation. * * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}. * * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. * `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc` */ function implementation() external ifAdmin returns (address implementation_) { implementation_ = _implementation(); } /** * @dev Changes the admin of the proxy. * * Emits an {AdminChanged} event. * * NOTE: Only the admin can call this function. See {ProxyAdmin-changeProxyAdmin}. */ function changeAdmin(address newAdmin) external virtual ifAdmin { _changeAdmin(newAdmin); } /** * @dev Upgrade the implementation of the proxy. * * NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}. */ function upgradeTo(address newImplementation) external ifAdmin { _upgradeToAndCall(newImplementation, bytes(""), false); } /** * @dev Upgrade the implementation of the proxy, and then call a function from the new implementation as specified * by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the * proxied contract. * * NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}. */ function upgradeToAndCall(address newImplementation, bytes calldata data) external payable ifAdmin { _upgradeToAndCall(newImplementation, data, true); } /** * @dev Returns the current admin. */ function _admin() internal view virtual returns (address) { return _getAdmin(); } /** * @dev Makes sure the admin cannot access the fallback function. See {Proxy-_beforeFallback}. */ function _beforeFallback() internal virtual override { require(msg.sender != _getAdmin(), "TransparentUpgradeableProxy: admin cannot fallback to proxy target"); super._beforeFallback(); } } // File @openzeppelin/contracts/proxy/transparent/[email protected] // OpenZeppelin Contracts v4.4.1 (proxy/transparent/ProxyAdmin.sol) pragma solidity ^0.8.0; /** * @dev This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an * explanation of why you would want to use this see the documentation for {TransparentUpgradeableProxy}. */ contract ProxyAdmin is Ownable { /** * @dev Returns the current implementation of `proxy`. * * Requirements: * * - This contract must be the admin of `proxy`. */ function getProxyImplementation(TransparentUpgradeableProxy proxy) public view virtual returns (address) { // We need to manually run the static call since the getter cannot be flagged as view // bytes4(keccak256("implementation()")) == 0x5c60da1b (bool success, bytes memory returndata) = address(proxy).staticcall(hex"5c60da1b"); require(success); return abi.decode(returndata, (address)); } /** * @dev Returns the current admin of `proxy`. * * Requirements: * * - This contract must be the admin of `proxy`. */ function getProxyAdmin(TransparentUpgradeableProxy proxy) public view virtual returns (address) { // We need to manually run the static call since the getter cannot be flagged as view // bytes4(keccak256("admin()")) == 0xf851a440 (bool success, bytes memory returndata) = address(proxy).staticcall(hex"f851a440"); require(success); return abi.decode(returndata, (address)); } /** * @dev Changes the admin of `proxy` to `newAdmin`. * * Requirements: * * - This contract must be the current admin of `proxy`. */ function changeProxyAdmin(TransparentUpgradeableProxy proxy, address newAdmin) public virtual onlyOwner { proxy.changeAdmin(newAdmin); } /** * @dev Upgrades `proxy` to `implementation`. See {TransparentUpgradeableProxy-upgradeTo}. * * Requirements: * * - This contract must be the admin of `proxy`. */ function upgrade(TransparentUpgradeableProxy proxy, address implementation) public virtual onlyOwner { proxy.upgradeTo(implementation); } /** * @dev Upgrades `proxy` to `implementation` and calls a function on the new implementation. See * {TransparentUpgradeableProxy-upgradeToAndCall}. * * Requirements: * * - This contract must be the admin of `proxy`. */ function upgradeAndCall( TransparentUpgradeableProxy proxy, address implementation, bytes memory data ) public payable virtual onlyOwner { proxy.upgradeToAndCall{value: msg.value}(implementation, data); } } // File contracts/Proxy/ProxyFacades.sol pragma solidity >=0.4.22 <0.9.0; abstract contract ProxyFacade is TransparentUpgradeableProxy { } abstract contract ProxyAdminFacade is ProxyAdmin { }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_logic","type":"address"},{"internalType":"address","name":"admin_","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","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"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"admin_","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"changeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"implementation_","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
9c4d535b00000000000000000000000000000000000000000000000000000000000000000100033376e44be27773165c92eb3dececa6b9494f2f35a95c09c2a2cc5fcc55000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000005d246cd4d1a54568b37800499f8793687504b81f000000000000000000000000907c14c4326c8e3e80d3c7a42b16d73a0c5b5df1000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000048129fc1c00000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x0010000000000002000000000000001f000100000000001f000200000000001f000c00000000001f000b00000000001f000a00000000001f000900000000001f000800000000001f000700000000001f000600000000001f000500000000001f000400000000001f000300000000001f000d000000010355000000000d010019000000600dd002700000031100d0019d000000000d000031000e000000d10355000f000000d10355000200000002001f000300000003001f000400000004001f000500000005001f000600000006001f000700000007001f000800000008001f000900000009001f000a0000000a001f000b0000000b001f000c0000000c001f000000010120018f000000000110004c000000260000c13d000000280000013d0000000001000019000000000001042d0c4001120000040f000000240000013d0c40044d0000040f000000240000013d0012000000000002000800000006001d000900000005001d000a00000004001d000b00000003001d000c00000002001d000d00000001001d001100000000001d0000031101000041001000000001001d000003120130009c000000390000413d0000003c0000013d0000001101000029000000000001042d0000000b01000029001000000001001d0000003c0000013d0000000a010000290000001002000029000700000002001d0000031102000041000f00000002001d000003110110009c000000470000213d000000440000013d0000000a01000029000f00000001001d000000470000013d0000000d010000290000000f02000029000600000002001d0000031102000041000e00000002001d000003110110009c000000520000213d0000004f0000013d0000000d01000029000e00000001001d000000520000013d0000000c02000029000000060400002900000007010000290000000e0300002900000040011002100000006004400210000000c003300210000000000141001900000000013100190c400c340000040f000000090300002900000000040200190000000802000029000000000501034f00010000000503530011000100400193000200000003001d00000060011002700000031101100197000000000321004b00000000010280190000000502100270000300000002001d0000001f0110018f000400000001001d0000000001000019000000000220004c000500000001001d000000950000613d000000700000013d000000050100002900000003020000290000000203000029000000010400035f0000000505100210000000000454034f000000000404043b000000000353001900000000004304350000000101100039000000000221004b000500000001001d000000700000413d000000950000013d00000002010000290000000404000029000000010200035f00000003030000290000000503300210000000000232034f000000000202043b00000003044002100000010005400089000000000252022f00000000025201cf0000000001310019000000000301043300000000034301cf000000000343022f000000000232019f0000000000210435000000900000013d000000010100035f000e0000000103550000006001100270000103110010019d000000370000013d0000000401000029000000000110004c0000007e0000c13d000000900000013d000c000000000002000500000003001d000600000002001d000700000001001d0000031101000041000b00000001001d000003120120009c000000a90000413d000000ac0000013d000000040100035f000000000101043b000000000001042d0000000001000019000000000200001900000000030000190c4000f30000040f0000000601000029000b00000001001d000000ac0000013d00000005010000290000000b02000029000300000002001d0000031102000041000a00000002001d000003110110009c000000b70000213d000000b40000013d0000000501000029000a00000001001d000000b70000013d0000000a01000029000100000001001d0000000001000414000200000001001d0000031102000041000900000002001d000003110110009c000000c30000213d000000c00000013d0000000201000029000900000001001d000000c30000013d000000070200002900000001040000290000000301000029000000090300002900000040011002100000006004400210000000c0033002100000000001410019000000000131001900000313011000410c400c280000040f0004000000010353000800000000001d000000010120018f000000000110004c000000a20000c13d000000a50000013d0006000000000002000200000003001d000300000002001d000400000001001d0000031102000041000600000002001d000003110110009c000000e00000213d000000dd0000013d0000000401000029000600000001001d000000e00000013d00000003010000290000000602000029000100000002001d0000031102000041000500000002001d000003110110009c000000eb0000213d000000e80000013d0000000301000029000500000001001d000000eb0000013d000000020200002900000001010000290000000503000029000000400110021000000060033002100000000001310019000000000121001900000c410001042e0006000000000002000200000003001d000300000002001d000400000001001d0000031102000041000600000002001d000003110110009c000000ff0000213d000000fc0000013d0000000401000029000600000001001d000000ff0000013d00000003010000290000000602000029000100000002001d0000031102000041000500000002001d000003110110009c0000010a0000213d000001070000013d0000000301000029000500000001001d0000010a0000013d000000020200002900000001010000290000000503000029000000400110021000000060033002100000000001310019000000000121001900000c4200010430005e000000000002005e00400000003d0000005e0100002900000080020000390000000000210435005d00000000001d00000000010000310000005d02000029005c0000002100510000005c010000290c4004d90000040f005b00000001001d0000005b01000029002800000001001d0000005d030000290000005c010000290000000d02000367000000000232034f00290000000203530000000502100270002a00000002001d0000001f0110018f002b00000001001d0000000001000019000000000220004c002c00000001001d000004490000613d0000012e0000013d0000002c010000290000002a020000290000002803000029000000290400035f0000000505100210000000000454034f000000000404043b000000000353001900000000004304350000000101100039000000000221004b002c00000001001d0000012e0000413d000004490000013d00000028010000290000002b04000029000000290200035f0000002a030000290000000503300210000000000232034f000000000202043b00000003044002100000010005400089000000000252022f00000000025201cf0000000001310019000000000301043300000000034301cf000000000343022f000000000232019f00000000002104350000014e0000013d0000005b010000290000005c02000029005a00000021001d0000005a010000290000005b0200002900000000032100490000031401000041000000600230008c000000000200001900000000020140190000031403300197000000000430004c000000000100a019000003140330009c000000000102c019000000000110004c0000000001000019000000010100c039000000010110018f000000000110004c000001680000613d000001640000013d0000000001000019000000000200001900000000030000190c4000f30000040f0000005b010000290c4005130000040f005900000001001d005800200000003d0000005b01000029000000580200002900000000012100190c4005130000040f005700000001001d0000005b010000290000005e0200002900000000012100190000000001010433005600000001001d0000000101000039000000000110004c0000017c0000c13d0000017a0000013d005400000000001d0000017f0000013d0000031501000041005400000001001d0000017f0000013d0000005401000029005500010010009200000056010000290000005502000029000000000121004b00000000010000190000000101002039000000010110018f000000000110004c0000018e0000613d0000018a0000013d0000000001000019000000000200001900000000030000190c4000f30000040f0000005b010000290000005602000029005300000021001d00000053010000290000001f031000390000005a040000290000031401000041000000000243004b0000000002000019000000000201801900000314044001970000031403300197000000000543004b0000000001008019000000000343013f000003140330009c000000000102c019000000000110004c0000000001000019000000010100c039000000010110018f000000000110004c000001aa0000613d000001a60000013d0000000001000019000000000200001900000000030000190c4000f30000040f00000053010000290000000001010433005200000001001d00000052010000290c4005370000040f0c4004d90000040f005100000001001d00000051010000290000005202000029000000000021043500000051010000290000005802000029005000000021001d000000530100002900000052020000290000000001210019000000580200002900000000012100190000005a02000029000000000121004b00000000010000190000000101002039000000010110018f000000000110004c000001c80000613d000001c40000013d0000000001000019000000000200001900000000030000190c4000f30000040f000000530100002900000058020000290000000001210019000000500200002900000052030000290c4005660000040f00000059010000290000031602000041000000000020043900000004001004430000800201000039000000240300003900000000020000190c4000990000040f000000000110004c00000000010000190000000101006039000000010110018f000000000110004c000001e50000613d000001dd0000013d0000005e010000290000000001010433004f00000001001d0000004f01000029002700000001001d000000000100004c000001e80000c13d000001ea0000013d000000000100004c000002040000c13d000002060000013d004e00000000001d000001ed0000013d0000032001000041004e00000001001d000001ed0000013d00000027010000290000004e0200002900000000002104350000004f010000290000000401100039000000580200002900000000002104350000004f0100002900000024011000390000002d0200003900000000002104350000004f010000290000004401100039000003260200004100000000002104350000004f010000290000006401100039000003270200004100000000002104350000004f01000029000000840200003900000000030000190c4000f30000040f004c00000000001d000002090000013d0000031701000041004c00000001001d000002090000013d0000004c01000029004d00010010009200000059010000290000004d02000029004b0000002101730000000101000039000000000110004c000002140000c13d000002120000013d004900000000001d000002170000013d0000031701000041004900000001001d000002170000013d0000004901000029004a0000001000510000031801000041004800000001001d0000004801000029000000000201041a0000004a03000029000000000232016f0000004b03000029000000000232019f000000000021041b004700000000001d0000004701000029002300000001001d0000000002010019002400000002001d0000004b02000029002500000002001d0000000002000414002600000002001d0000031102000041004600000002001d000003120110009c000002430000413d000002460000013d0000000001000019000000000200001900000000030000190c4000f30000040f00000051010000290000000001010433000000000110004c00000000010000190000000101006039004500000001001d0000004501000029000000000110004c00000000010000190000000101006039004400000001001d0000004501000029000000000110004c0000026e0000c13d000002710000013d0000002401000029004600000001001d000002460000013d00000023010000290000004602000029002200000002001d0000031102000041004300000002001d000003110110009c000002510000213d0000024e0000013d0000002301000029004300000001001d000002510000013d00000026010000290000004302000029002100000002001d0000031102000041004200000002001d000003110110009c0000025c0000213d000002590000013d0000002601000029004200000001001d0000025c0000013d000000250500002900000021030000290000002201000029000000420200002900000040011002100000006003300210000000c0022002100000000001310019000000000121001900000319011000410000800d0200003900000002030000390000031a040000410c400c1c0000040f000000010120018f000000000110004c000002340000c13d000002300000013d0000004701000029004400000001001d000002710000013d0000004401000029000000000110004c000002880000613d000002750000013d0000005e010000290000000001010433004100000001001d0000004101000029004000600010003d00000040020000290000005501000029000000000112004b000000000100001900000001010020390000004103000029000000000232004b00000000020000190000000102004039000000000121019f000000010110018f000000000110004c000002a80000c13d000002ad0000013d0000031d01000041003f00000001001d0000003f01000029000000000101041a003e00000001001d0000005e010000290000000001010433003d00000001001d0000003d010000290000003e020000290000004d03000029000000000232016f000000000021043500000057010000290000004d02000029003c0000002101730000003d01000029000000580200002900000000012100190000003c0200002900000000002104350000003d01000029001e00000001001d0000005e02000029001f00000002001d0000000002000414002000000002001d0000031102000041003b00000002001d000003120110009c000003ae0000413d000003b10000013d0000004701000029001d00000001001d000000000100004c000002cc0000c13d000002ce0000013d0000005e01000029000000400200002900000000002104350000004101000029000000270200003900000000002104350000004101000029000000580200002900000000012100190000031b02000041000000000021043500000041010000290000005e0200002900000000012100190000031c02000041000000000021043500000059010000290000031602000041000000000020043900000004001004430000800201000039000000240300003900000000020000190c4000990000040f000000000110004c00000000010000190000000101006039000000010110018f000000000110004c000002da0000c13d000002e20000013d003a00000000001d000002d10000013d0000032501000041003a00000001001d000002d10000013d0000001d010000290000003a0200002900000000002104350000004101000039000000040010043f0000004701000029000000240200003900000000030000190c4000f30000040f0000005e010000290000000001010433003900000001001d0000003901000029001c00000001001d000000000100004c000002f20000c13d000002f40000013d0000000001000414001600000001001d0000005901000029001700000001001d0000005002000029001800000002001d00000051020000290000000002020433001900000002001d0000004702000029001a00000002001d001b00000002001d003600000000001d000000040110008c0000030e0000613d0000033e0000013d003800000000001d000002f70000013d0000032001000041003800000001001d000002f70000013d0000001c010000290000003802000029000000000021043500000039010000290000000401100039000000580200002900000000002104350000003901000029000000240110003900000026020000390000000000210435000000390100002900000044011000390000032302000041000000000021043500000039010000290000006401100039000003240200004100000000002104350000003901000029000000840200003900000000030000190c4000f30000040f0000001a0100002900000018020000290000001b03000029001100000003001d001200000002001d0000000502100270001300000002001d0000001f0110018f001400000001001d0000000001000019000000000220004c001500000001001d0000043d0000613d0000031c0000013d0000001501000029000000130200002900000011030000290000001204000029000000050510021000000000045400190000000004040433000000000353001900000000004304350000000101100039000000000221004b001500000001001d0000031c0000413d0000043d0000013d000000110100002900000014040000290000001202000029000000130300002900000005033002100000000002320019000000000202043300000003044002100000010005400089000000000252022f00000000025201cf0000000001310019000000000301043300000000034301cf000000000343022f000000000232019f00000000002104350000033c0000013d003600010000003d000003470000013d0000001a060000290000001b0500002900000019040000290000001803000029000000170200002900000016010000290c40002a0000040f003600000001001d000003470000013d0000003601000029003700000001001d0000004701000029003500000001001d0000000101000031000000000110004c000003540000613d000003560000013d0000003701000029000000350200002900000041030000290c4005860000040f000002880000013d003500600000003d0000034f0000013d0000000101000031003400000001001d00000034010000290c4005370000040f0c4004d90000040f003300000001001d0000003301000029000000340200002900000000002104350000003301000029003500000001001d000000330100002900000058020000290000000001210019000e00000001001d0000004701000029000f00000001001d0000000102000031001000000002001d0000000001210019000000000121004b000003710000a13d0000036d0000013d0000000001000019000000000200001900000000030000190c4000f30000040f00000010010000290000000f030000290000000e02000029000900000002001d0000000e02000367000000000232034f000a0000000203530000000502100270000b00000002001d0000001f0110018f000c00000001001d0000000001000019000000000220004c000d00000001001d000004450000613d000003810000013d0000000d010000290000000b0200002900000009030000290000000a0400035f0000000505100210000000000454034f000000000404043b000000000353001900000000004304350000000101100039000000000221004b000d00000001001d000003810000413d000004450000013d00000009010000290000000c040000290000000a0200035f0000000b030000290000000503300210000000000232034f000000000202043b00000003044002100000010005400089000000000252022f00000000025201cf0000000001310019000000000301043300000000034301cf000000000343022f000000000232019f0000000000210435000003a10000013d0000034f0000013d0000000001000019000000000200001900000000030000190c4000f30000040f0000003c01000029000000000110004c00000000010000190000000101006039000000010110018f000000000110004c000003d80000c13d000003e00000013d0000001e01000029003b00000001001d000003b10000013d0000001f010000290000003b02000029000800000002001d0000031102000041003200000002001d000003110110009c000003bc0000213d000003b90000013d0000001f01000029003200000001001d000003bc0000013d00000020010000290000003202000029000700000002001d0000031102000041003100000002001d000003110110009c000003c70000213d000003c40000013d0000002001000029003100000001001d000003c70000013d00000007030000290000000801000029000000310200002900000040011002100000006003300210000000c0022002100000000001310019000000000121001900000319011000410000800d0200003900000001030000390000031e040000410c400c1c0000040f000000010120018f000000000110004c000003a60000c13d000003a20000013d0000005e010000290000000001010433003000000001001d0000003001000029000600000001001d000000000100004c000004210000c13d000004230000013d0000003f010000290000003e020000290000004a03000029000000000232016f0000003c03000029000000000232019f000000000021041b0000005e010000290000000001010433002e00000001001d002d00000000001d0000002e01000029000100000001001d0000002d010000290000000d02000367000000000220035000020000000203530000000502100270000300000002001d0000001f0110018f000400000001001d0000000001000019000000000220004c000500000001001d000004410000613d000003fa0000013d000000050100002900000003020000290000000103000029000000020400035f0000000505100210000000000454034f000000000404043b000000000353001900000000004304350000000101100039000000000221004b000500000001001d000003fa0000413d000004410000013d00000001010000290000000404000029000000020200035f00000003030000290000000503300210000000000232034f000000000202043b00000003044002100000010005400089000000000252022f00000000025201cf0000000001310019000000000301043300000000034301cf000000000343022f000000000232019f00000000002104350000041a0000013d000000200100003900000100001004430000012000000443000001000100003900000040020000390000031f030000410c4000d40000040f002f00000000001d000004260000013d0000032001000041002f00000001001d000004260000013d00000006010000290000002f02000029000000000021043500000030010000290000000401100039000000580200002900000000002104350000003001000029000000240110003900000026020000390000000000210435000000300100002900000044011000390000032102000041000000000021043500000030010000290000006401100039000003220200004100000000002104350000003001000029000000840200003900000000030000190c4000f30000040f0000001401000029000000000110004c0000032a0000c13d0000033c0000013d0000000401000029000000000110004c000004080000c13d0000041a0000013d0000000c01000029000000000110004c0000038f0000c13d000003a10000013d0000002b01000029000000000110004c0000013c0000c13d0000014e0000013d00090000000000020000008001000039000000400010043f0000000001000031000000030110008c00000000010000190000000101002039000000010110018f000000000110004c000004590000c13d000004620000013d000000000001042d000900000000001d00000009020000290000000d01000367000000000121034f000000000101043b000400000001001d000000000100004c000004bb0000c13d000004bd0000013d0000000001000031000000000110004c00000000010000190000000101006039000000010110018f000000000110004c000004d50000c13d000004d70000013d000004620000013d0000000001000416000000000110004c000004730000613d0000046f0000013d0000000902000029000000000102001900000000030000190c4000f30000040f0000000001000031000000040310008a0000031401000041000000200230008c000000000200001900000000020140190000031403300197000000000430004c000000000100a019000003140330009c000000000102c019000000000110004c0000000001000019000000010100c039000000010110018f000000000110004c000004890000613d000004850000013d0000000902000029000000000102001900000000030000190c4000f30000040f0c4005cc0000040f000700000001001d0000000001000411000200000001001d0000031d01000041000000000101041a000300000001001d000000000100004c000004a20000c13d000004a40000013d0000000902000029000000000102001900000000030000190c4000d40000040f0c4008160000040f000004930000013d0c40093b0000040f000500000001001d000000050100002900000009020000290000000000210435000000070100002900000005020000290c4009890000040f000004930000013d000600000000001d000004a70000013d0000031701000041000600000001001d000004a70000013d000000020100002900000003020000290000000603000029000000010330008a000000000232016f000000000121004b00000000010000190000000101006039000000010110018f000000000110004c000004970000613d000004990000013d0c4005f00000040f0000046a0000013d0c4006bd0000040f0000046a0000013d0c4007060000040f0000046a0000013d0c4007cb0000040f0000046a0000013d000800000000001d000004c00000013d0000000401000029000800e000100278000004c00000013d0000000801000029000100000001001d000003280110009c0000046b0000613d000004c50000013d0000000101000029000003290110009c000004b30000613d000004c90000013d00000001010000290000032a0110009c000004b50000613d000004cd0000013d00000001010000290000032b0110009c000004b70000613d000004d10000013d00000001010000290000032c0110009c000004b90000613d0000046a0000013d0c4008160000040f000004d70000013d0c4008160000040f000004580000013d0006000000000002000600000000001d000500000001001d000000400100043d000600000001001d000000060100002900000005020000290000001f02200039000000200300008a000000000232016f000400000021001d0000000401000029000100000001001d000000000100004c000004eb0000c13d000004ed0000013d0000000601000029000000000001042d000300000000001d000004f00000013d0000031501000041000300000001001d000004f00000013d00000001010000290000000302000029000000010220008a000000000121004b0000000001000019000000010100203900000004020000290000000603000029000000000232004b00000000020000190000000102004039000000000121019f000000010110018f000000000110004c000005030000613d000005000000013d000000000100004c000005060000c13d000005080000013d0000000401000029000000400010043f000004e90000013d000200000000001d0000050b0000013d0000032501000041000200000001001d0000050b0000013d000000020100002900000000001004350000004101000039000000040010043f0000002402000039000000000100001900000000030000190c4000f30000040f0005000000000002000500000000001d000400000001001d00000004010000290000000001010433000500000001001d0000000501000029000100000001001d000200000001001d000000000100004c000005210000c13d000005230000013d0000000501000029000000000001042d000300000000001d000005260000013d0000031701000041000300000001001d000005260000013d000000020100002900000001020000290000000303000029000000010330008a000000000232016f000000000121004b0000000001000019000000010100c039000000010110018f000000000110004c000005360000613d000005320000013d0000000001000019000000000200001900000000030000190c4000f30000040f0000051f0000013d0005000000000002000500000000001d000400000001001d0000000401000029000100000001001d000000000100004c000005410000c13d000005430000013d0000000501000029000000000001042d000300000000001d000005460000013d0000031501000041000300000001001d000005460000013d00000001010000290000000302000029000000010220008a000000000121004b00000000010000190000000101002039000000010110018f000000000110004c000005530000613d000005500000013d000000000100004c000005590000c13d0000055b0000013d00000004010000290000001f01100039000000200200008a000000000121016f000500200010003d0000053f0000013d000200000000001d0000055e0000013d0000032501000041000200000001001d0000055e0000013d000000020100002900000000001004350000004101000039000000040010043f0000002402000039000000000100001900000000030000190c4000f30000040f0004000000000002000400000001001d000300000002001d000200000003001d000100000000001d0000056d0000013d000000000001042d00000001010000290000000202000029000000000121004b00000000010000190000000101004039000000010110018f000000000110004c000005810000613d000005760000013d00000003010000290000000103000029000000000131001900000004020000290000000002320019000000000202043300000000002104350000057e0000013d0000000101000029000100200010003d0000056d0000013d00000003010000290000000202000029000000000121001900000000000104350000056c0000013d0008000000000002000800000000001d000700000001001d000600000002001d000500000003001d000800600000003d0000000701000029000000000110004c000005920000613d000005c90000013d0000000801000029000000000001042d00000006010000290000000001010433000000000110004c0000000001000019000000010100c039000000010110018f000000000110004c000005c40000c13d0000059b0000013d000000400100043d000400000001001d0000000401000029000100000001001d0000000101000039000000000110004c000005a50000c13d000005a30000013d000300000000001d000005a80000013d0000032001000041000300000001001d000005a80000013d000000010100002900000003020000290000000000210435000000040100002900000004011000390000002002000039000000000021043500000005010000290000000001010433000200000001001d0000000401000029000000240110003900000002020000290000000000210435000000050100002900000020011000390000000402000029000000440220003900000002030000290c4005660000040f000000040100002900000002020000290000001f02200039000000200300008a000000000232016f000000440220003900000000030000190c4000f30000040f00000006020000290000002001200039000000000202043300000000030000190c4000f30000040f0000000601000029000800000001001d000005900000013d0004000000000002000400000000001d0000000d010003670000000401100370000000000101043b000400000001001d0000000401000029000100000001001d000200000001001d000000000100004c000005da0000c13d000005dc0000013d0000000401000029000000000001042d000300000000001d000005df0000013d0000031701000041000300000001001d000005df0000013d000000020100002900000001020000290000000303000029000000010330008a000000000232016f000000000121004b0000000001000019000000010100c039000000010110018f000000000110004c000005ef0000613d000005eb0000013d0000000001000019000000000200001900000000030000190c4000f30000040f000005d80000013d000d0000000000020000000001000031000000040310008a0000031401000041000000400230008c000000000200001900000000020140190000031403300197000000000430004c000000000100a019000003140330009c000000000102c019000000000110004c0000000001000019000000010100c039000000010110018f000000000110004c000006070000613d000006030000013d0000000001000019000000000200001900000000030000190c4000f30000040f0c4005cc0000040f000d00000001001d0000000d010003670000002401100370000000000101043b000c00000001001d0000032d01000041000b00000001001d0000000c010000290000000b02000029000000000121004b00000000010000190000000101002039000000010110018f000000000110004c0000061c0000613d000006180000013d0000000001000019000000000200001900000000030000190c4000f30000040f0000000c01000029000000230310003900000000040000310000031401000041000000000243004b0000000002000019000000000201801900000314044001970000031403300197000000000543004b0000000001008019000000000343013f000003140330009c000000000102c019000000000110004c0000000001000019000000010100c039000000010110018f000000000110004c000006350000613d000006310000013d0000000001000019000000000200001900000000030000190c4000f30000040f0000000c0100002900000004021000390000000d01000367000000000121034f000000000101043b000a00000001001d0000000a010000290000000b02000029000000000121004b00000000010000190000000101002039000000010110018f000000000110004c000006480000613d000006440000013d0000000001000019000000000200001900000000030000190c4000f30000040f0000000c010000290000000a02000029000000000121001900000024011000390000000002000031000000000121004b00000000010000190000000101002039000000010110018f000000000110004c000006580000613d000006540000013d0000000001000019000000000200001900000000030000190c4000f30000040f0000000001000411000600000001001d0000031d01000041000000000101041a000700000001001d000000000100004c000006a80000c13d000006aa0000013d0000000001000019000000000200001900000000030000190c4000d40000040f0c4008160000040f000006600000013d0000000a010000290c4009740000040f0c4009550000040f000800000001001d00000008010000290000000a02000029000000000021043500000008010000290000002001100039000100000001001d0000000c0100002900000024031000390000000a010000290000000d02000367000000000232034f00020000000203530000000502100270000300000002001d0000001f0110018f000400000001001d0000000001000019000000000220004c000500000001001d000006b90000613d0000067f0000013d000000050100002900000003020000290000000103000029000000020400035f0000000505100210000000000454034f000000000404043b000000000353001900000000004304350000000101100039000000000221004b000500000001001d0000067f0000413d000006b90000013d00000001010000290000000404000029000000020200035f00000003030000290000000503300210000000000232034f000000000202043b00000003044002100000010005400089000000000252022f00000000025201cf0000000001310019000000000301043300000000034301cf000000000343022f000000000232019f00000000002104350000069f0000013d00000008010000290000000a020000290000000001210019000000200110003900000000000104350000000d0100002900000008020000290c400a390000040f000006600000013d000900000000001d000006ad0000013d0000031701000041000900000001001d000006ad0000013d000000060100002900000007020000290000000903000029000000010330008a000000000232016f000000000121004b00000000010000190000000101006039000000010110018f000000000110004c000006640000613d000006660000013d0000000401000029000000000110004c0000068d0000c13d0000069f0000013d00040000000000020000000001000416000000000110004c000006c60000613d000006c20000013d0000000001000019000000000200001900000000030000190c4000f30000040f0000000001000031000000040310008a0000031401000041000000000230004c000000000200001900000000020140190000031403300197000000000430004c000000000100a019000003140330009c000000000102c019000000000110004c0000000001000019000000010100c039000000010110018f000000000110004c000006dc0000613d000006d80000013d0000000001000019000000000200001900000000030000190c4000f30000040f000400000000001d0000000101000039000000000110004c000006e30000c13d000006e10000013d000200000000001d000006e60000013d0000031701000041000200000001001d000006e60000013d0000000201000029000300010010009200000000010004110000031d02000041000000000202041a0000000303000029000000000232016f000000000121004b00000000010000190000000101006039000000010110018f000000000110004c000006ff0000613d000007010000013d000000400100043d000100000001001d000000010100002900000004020000290000000303000029000000000232016f00000000002104350000000101000029000000200200003900000000030000190c4000d40000040f0c4008160000040f000006f40000013d0000031801000041000000000101041a00000003020000290004000000210173000006f40000013d00140000000000020000000001000416000000000110004c0000070f0000613d0000070b0000013d0000000001000019000000000200001900000000030000190c4000f30000040f0000000001000031000000040310008a0000031401000041000000200230008c000000000200001900000000020140190000031403300197000000000430004c000000000100a019000003140330009c000000000102c019000000000110004c0000000001000019000000010100c039000000010110018f000000000110004c000007250000613d000007210000013d0000000001000019000000000200001900000000030000190c4000f30000040f0c4005cc0000040f001400000001001d0000000101000039000000000110004c0000072d0000c13d0000072b0000013d001200000000001d000007300000013d0000031701000041001200000001001d000007300000013d000000120100002900130001001000920000031d01000041001100000001001d00000000010004110000001102000029000000000202041a0000001303000029000000000232016f000000000121004b00000000010000190000000101006039000000010110018f000000000110004c000007440000613d000007460000013d0000000001000019000000000200001900000000030000190c4000d40000040f0c4008160000040f000007400000013d0000001101000029000000000101041a001000000001001d000000400100043d000f00000001001d0000000f0100002900000010020000290000001303000029000000000232016f000000000021043500000014010000290000001302000029000e0000002101730000000f0100002900000020011000390000000e0200002900000000002104350000000f01000029000600000001001d0000000002000414000700000002001d0000031102000041000d00000002001d000003120110009c0000076c0000413d0000076f0000013d0000000001000019000000000200001900000000030000190c4000f30000040f0000000e01000029000000000110004c00000000010000190000000101006039000000010110018f000000000110004c000007940000c13d0000079b0000013d0000000601000029000d00000001001d0000076f0000013d0000000d01000029000500000001001d0000031101000041000c00000001001d000000000100004c000007780000c13d000007760000013d000c00400000003d000007780000013d00000007010000290000000c02000029000400000002001d0000031102000041000b00000002001d000003110110009c000007830000213d000007800000013d0000000701000029000b00000001001d000007830000013d000000040300002900000005010000290000000b0200002900000040011002100000006003300210000000c0022002100000000001310019000000000121001900000319011000410000800d0200003900000001030000390000031e040000410c400c1c0000040f000000010120018f000000000110004c000007640000c13d000007600000013d000000400100043d000a00000001001d0000000a01000029000300000001001d000000000100004c000007a20000c13d000007a40000013d0000001101000029000100000001001d0000001001000029000200000001001d000000000100004c000007be0000c13d000007c00000013d000900000000001d000007a70000013d0000032001000041000900000001001d000007a70000013d0000000301000029000000090200002900000000002104350000000a010000290000000401100039000000200200003900000000002104350000000a010000290000002401100039000000260200003900000000002104350000000a010000290000004401100039000003210200004100000000002104350000000a010000290000006401100039000003220200004100000000002104350000000a01000029000000840200003900000000030000190c4000f30000040f000800000000001d000007c30000013d0000032e01000041000800000001001d000007c30000013d000000010100002900000002020000290000000803000029000000000232016f0000000e03000029000000000232019f000000000021041b000007400000013d00050000000000020000000001000416000000000110004c000007d40000613d000007d00000013d0000000001000019000000000200001900000000030000190c4000f30000040f0000000001000031000000040310008a0000031401000041000000000230004c000000000200001900000000020140190000031403300197000000000430004c000000000100a019000003140330009c000000000102c019000000000110004c0000000001000019000000010100c039000000010110018f000000000110004c000007ea0000613d000007e60000013d0000000001000019000000000200001900000000030000190c4000f30000040f000500000000001d0000000101000039000000000110004c000007f10000c13d000007ef0000013d000300000000001d000007f40000013d0000031701000041000300000001001d000007f40000013d000000030100002900040001001000920000031d01000041000200000001001d00000000010004110000000202000029000000000202041a0000000403000029000000000232016f000000000121004b00000000010000190000000101006039000000010110018f000000000110004c0000080f0000613d000008110000013d000000400100043d000100000001001d000000010100002900000005020000290000000403000029000000000232016f00000000002104350000000101000029000000200200003900000000030000190c4000d40000040f0c4008160000040f000008040000013d0000000201000029000000000101041a00000004020000290005000000210173000008040000013d00210000000000020000000101000039000000000110004c0000081d0000c13d0000081b0000013d002000000000001d000008200000013d0000031701000041002000000001001d000008200000013d0000002001000029002100010010009200000000010004110000031d02000041000000000202041a0000002103000029000000000232016f000000000121004b00000000010000190000000101006039000000010110018f000000000110004c000008350000613d0000082e0000013d000000400100043d001f00000001001d0000001f01000029001900000001001d000000000100004c000008780000c13d0000087a0000013d0000031801000041000000000101041a0000002102000029001d000000210173001c00000000001d0000001c03000029001400000003001d00000000010000310000000d02000367000000000232034f00150000000203530000000502100270001600000002001d0000001f0110018f001700000001001d0000000001000019000000000220004c001800000001001d000009250000613d000008490000013d000000180100002900000016020000290000001403000029000000150400035f0000000505100210000000000454034f000000000404043b000000000353001900000000004304350000000101100039000000000221004b001800000001001d000008490000413d000009250000013d00000014010000290000001704000029000000150200035f00000016030000290000000503300210000000000232034f000000000202043b00000003044002100000010005400089000000000252022f00000000025201cf0000000001310019000000000301043300000000034301cf000000000343022f000000000232019f0000000000210435000008690000013d0000000001000414000e00000001001d0000001d01000029000f00000001001d0000001c02000029001000000002001d0000000003020019001100000003001d0000000003000031001200000003001d001300000002001d001a00000000001d000000040110008c000008980000613d000008c80000013d001e00000000001d0000087d0000013d0000032001000041001e00000001001d0000087d0000013d00000019010000290000001e0200002900000000002104350000001f010000290000000401100039000000200200003900000000002104350000001f010000290000002401100039000000420200003900000000002104350000001f0100002900000044011000390000032f0200004100000000002104350000001f010000290000006401100039000003300200004100000000002104350000001f010000290000008401100039000003310200004100000000002104350000001f01000029000000a40200003900000000030000190c4000f30000040f000000100100002900000011020000290000001303000029000900000003001d000a00000002001d0000000502100270000b00000002001d0000001f0110018f000c00000001001d0000000001000019000000000220004c000d00000001001d0000091d0000613d000008a60000013d0000000d010000290000000b0200002900000009030000290000000a04000029000000050510021000000000045400190000000004040433000000000353001900000000004304350000000101100039000000000221004b000d00000001001d000008a60000413d0000091d0000013d00000009010000290000000c040000290000000a020000290000000b0300002900000005033002100000000002320019000000000202043300000003044002100000010005400089000000000252022f00000000025201cf0000000001310019000000000301043300000000034301cf000000000343022f000000000232019f0000000000210435000008c60000013d001a00010000003d000008d10000013d00000010060000290000001305000029000000120400002900000011030000290000000f020000290000000e010000290c40002a0000040f001a00000001001d000008d10000013d0000001a01000029001b00000001001d0000001c01000029000600000001001d0000000002010019000700000002001d0000000102000031000800000002001d0000000001210019000000000121004b000008e10000a13d000008dd0000013d0000000001000019000000000200001900000000030000190c4000f30000040f000000080100002900000006030000290000000702000029000100000002001d0000000e02000367000000000232034f00020000000203530000000502100270000300000002001d0000001f0110018f000400000001001d0000000001000019000000000220004c000500000001001d000009210000613d000008f10000013d000000050100002900000003020000290000000103000029000000020400035f0000000505100210000000000454034f000000000404043b000000000353001900000000004304350000000101100039000000000221004b000500000001001d000008f10000413d000009210000013d00000001010000290000000404000029000000020200035f00000003030000290000000503300210000000000232034f000000000202043b00000003044002100000010005400089000000000252022f00000000025201cf0000000001310019000000000301043300000000034301cf000000000343022f000000000232019f0000000000210435000009110000013d0000001b01000029000000000110004c000009190000c13d000009150000013d0000001c01000029000000010200003100000000030000190c4000f30000040f0000001c01000029000000010200003100000000030000190c4000d40000040f0000000c01000029000000000110004c000008b40000c13d000008c60000013d0000000401000029000000000110004c000008ff0000c13d000009110000013d0000001701000029000000000110004c000008570000c13d000008690000013d00010000000000020000000101000039000000000110004c000009300000c13d0000092e0000013d000100000000001d000009330000013d0000032501000041000100000001001d000009330000013d000000010100002900000000001004350000004101000039000000040010043f0000002402000039000000000100001900000000030000190c4000f30000040f0002000000000002000200000000001d000000400100043d000200000001001d0000000201000029000100200010003d00000001020000290000032d0120009c000000000100001900000001010020390000000203000029000000000232004b00000000020000190000000102004039000000000121019f000000010110018f000000000110004c000009500000c13d000009520000013d0000000201000029000000000001042d0c4009290000040f000009520000013d0000000101000029000000400010043f0000094e0000013d0003000000000002000300000000001d000200000001001d000000400100043d000300000001001d000000030100002900000002020000290000001f02200039000000200300008a000000000232016f000100000021001d00000001020000290000032d0120009c000000000100001900000001010020390000000303000029000000000232004b00000000020000190000000102004039000000000121019f000000010110018f000000000110004c0000096f0000c13d000009710000013d0000000301000029000000000001042d0c4009290000040f000009710000013d0000000101000029000000400010043f0000096d0000013d0002000000000002000200000000001d000100000001001d00000001010000290000032d0110009c00000000010000190000000101002039000000010110018f000000000110004c000009810000c13d000009830000013d0000000201000029000000000001042d0c4009290000040f000009830000013d00000001010000290000001f01100039000000200200008a000000000121016f000200200010003d0000097f0000013d0017000000000002001700000001001d001600000002001d00000017010000290000031602000041000000000020043900000004001004430000800201000039000000240300003900000000020000190c4000990000040f000000000110004c00000000010000190000000101006039000000010110018f000000000110004c0000099c0000c13d000009a30000013d000000000001042d000000400100043d001500000001001d0000001501000029000a00000001001d000000000100004c000009a80000c13d000009aa0000013d0000001701000029000900000001001d000000000100004c000009c40000c13d000009c60000013d001400000000001d000009ad0000013d0000032001000041001400000001001d000009ad0000013d0000000a01000029000000140200002900000000002104350000001501000029000000040110003900000020020000390000000000210435000000150100002900000024011000390000002d020000390000000000210435000000150100002900000044011000390000032602000041000000000021043500000015010000290000006401100039000003270200004100000000002104350000001501000029000000840200003900000000030000190c4000f30000040f001200000000001d000009c90000013d0000031701000041001200000001001d000009c90000013d00000009010000290000001202000029000000010220008a00130000002101730000031801000041001100000001001d0000001101000029000700000001001d000000000101041a000800000001001d0000000101000039000000000110004c000009d90000c13d000009d70000013d001000000000001d000009dc0000013d0000032e01000041001000000001001d000009dc0000013d000000070100002900000008020000290000001003000029000000000232016f0000001303000029000000000232019f000000000021041b0000001301000029000500000001001d0000000001000414000600000001001d0000031101000041000f00000001001d0000000101000039000000000110004c00000a000000c13d00000a020000013d0000000001000019000000000200001900000000030000190c4000f30000040f00000016010000290000000001010433000000000110004c00000000010000190000000101006039000e00000001001d0000000e01000029000000000110004c00000000010000190000000101006039000d00000001001d0000000e01000029000000000110004c00000a280000c13d00000a2a0000013d000f00000000001d00000a020000013d0000000f01000029000400000001001d0000031101000041000c00000001001d000000000100004c00000a0b0000c13d00000a090000013d000c00000000001d00000a0b0000013d00000006010000290000000c02000029000300000002001d0000031102000041000b00000002001d000003110110009c00000a160000213d00000a130000013d0000000601000029000b00000001001d00000a160000013d0000000505000029000000030300002900000004010000290000000b0200002900000040011002100000006003300210000000c0022002100000000001310019000000000121001900000319011000410000800d0200003900000002030000390000031a040000410c400c1c0000040f000000010120018f000000000110004c000009f10000c13d000009ed0000013d000d00000000001d00000a2a0000013d0000000d01000029000000000110004c00000a380000613d00000a2e0000013d0000001701000029000200000001001d0000001601000029000100000001001d0c400ae90000040f0000000102000029000000000301001900000002010000290c400b100000040f00000a380000013d0000099b0000013d0017000000000002001700000001001d001600000002001d00000017010000290000031602000041000000000020043900000004001004430000800201000039000000240300003900000000020000190c4000990000040f000000000110004c00000000010000190000000101006039000000010110018f000000000110004c00000a4c0000c13d00000a530000013d000000000001042d000000400100043d001500000001001d0000001501000029000a00000001001d000000000100004c00000a580000c13d00000a5a0000013d0000001701000029000900000001001d000000000100004c00000a740000c13d00000a760000013d001400000000001d00000a5d0000013d0000032001000041001400000001001d00000a5d0000013d0000000a01000029000000140200002900000000002104350000001501000029000000040110003900000020020000390000000000210435000000150100002900000024011000390000002d020000390000000000210435000000150100002900000044011000390000032602000041000000000021043500000015010000290000006401100039000003270200004100000000002104350000001501000029000000840200003900000000030000190c4000f30000040f001200000000001d00000a790000013d0000031701000041001200000001001d00000a790000013d00000009010000290000001202000029000000010220008a00130000002101730000031801000041001100000001001d0000001101000029000700000001001d000000000101041a000800000001001d0000000101000039000000000110004c00000a890000c13d00000a870000013d001000000000001d00000a8c0000013d0000032e01000041001000000001001d00000a8c0000013d000000070100002900000008020000290000001003000029000000000232016f0000001303000029000000000232019f000000000021041b0000001301000029000500000001001d0000000001000414000600000001001d0000031101000041000f00000001001d0000000101000039000000000110004c00000ab00000c13d00000ab20000013d0000000001000019000000000200001900000000030000190c4000f30000040f00000016010000290000000001010433000000000110004c00000000010000190000000101006039000e00000001001d0000000e01000029000000000110004c00000000010000190000000101006039000d00000001001d0000000e01000029000000000110004c00000ad80000c13d00000ada0000013d000f00000000001d00000ab20000013d0000000f01000029000400000001001d0000031101000041000c00000001001d000000000100004c00000abb0000c13d00000ab90000013d000c00000000001d00000abb0000013d00000006010000290000000c02000029000300000002001d0000031102000041000b00000002001d000003110110009c00000ac60000213d00000ac30000013d0000000601000029000b00000001001d00000ac60000013d0000000505000029000000030300002900000004010000290000000b0200002900000040011002100000006003300210000000c0022002100000000001310019000000000121001900000319011000410000800d0200003900000002030000390000031a040000410c400c1c0000040f000000010120018f000000000110004c00000aa10000c13d00000a9d0000013d000d00010000003d00000ada0000013d0000000d01000029000000000110004c00000ae80000613d00000ade0000013d0000001701000029000200000001001d0000001601000029000100000001001d0c400ae90000040f0000000102000029000000000301001900000002010000290c400b100000040f00000ae80000013d00000a4b0000013d0003000000000002000300000000001d000000400100043d000200000001001d0000000201000029000100600010003d00000001020000290000032d0120009c000000000100001900000001010020390000000203000029000000000232004b00000000020000190000000102004039000000000121019f000000010110018f000000000110004c00000afe0000c13d00000b000000013d0000000301000029000000000001042d0c4009290000040f00000b000000013d0000000101000029000000400010043f0000000201000029000000270200003900000000002104350000000201000029000300000001001d000000020100002900000020011000390000031b020000410000000000210435000000020100002900000040011000390000031c02000041000000000021043500000afc0000013d0017000000000002001700000000001d001600000001001d001500000002001d001400000003001d00000016010000290000031602000041000000000020043900000004001004430000800201000039000000240300003900000000020000190c4000990000040f000000000110004c00000000010000190000000101006039000000010110018f000000000110004c00000b260000c13d00000b2d0000013d0000001701000029000000000001042d000000400100043d001300000001001d0000001301000029000c00000001001d000000000100004c00000b3a0000c13d00000b3c0000013d0000000001000414000800000001001d0000001601000029000900000001001d00000015020000290000002003200039000a00000003001d0000000002020433000b00000002001d001000000000001d000000040110008c00000b560000613d00000b580000013d001200000000001d00000b3f0000013d0000032001000041001200000001001d00000b3f0000013d0000000c010000290000001202000029000000000021043500000013010000290000000401100039000000200200003900000000002104350000001301000029000000240110003900000026020000390000000000210435000000130100002900000044011000390000032302000041000000000021043500000013010000290000006401100039000003240200004100000000002104350000001301000029000000840200003900000000030000190c4000f30000040f001000010000003d00000b610000013d0000000b040000290000000a0300002900000009020000290000000801000029000000000500001900000000060000190c40002a0000040f001000000001001d00000b610000013d0000001001000029001100000001001d000f00000000001d0000000101000031000000000110004c00000b6e0000613d00000b700000013d00000011010000290000000f0200002900000014030000290c400bbc0000040f001700000001001d00000b240000013d000f00600000003d00000b680000013d0000000101000031000e00000001001d0000000e010000290c4009740000040f0c4009550000040f000d00000001001d0000000d010000290000000e0200002900000000002104350000000d01000029000f00000001001d0000000d010000290000002001100039000600000001001d0000000101000031000700000001001d0000000101000039000000000110004c00000b880000c13d00000b840000013d0000000001000019000000000200001900000000030000190c4000f30000040f00000007010000290000000602000029000100000002001d0000000e02000367000000000220035000020000000203530000000502100270000300000002001d0000001f0110018f000400000001001d0000000001000019000000000220004c000500000001001d00000bb80000613d00000b970000013d000000050100002900000003020000290000000103000029000000020400035f0000000505100210000000000454034f000000000404043b000000000353001900000000004304350000000101100039000000000221004b000500000001001d00000b970000413d00000bb80000013d00000001010000290000000404000029000000020200035f00000003030000290000000503300210000000000232034f000000000202043b00000003044002100000010005400089000000000252022f00000000025201cf0000000001310019000000000301043300000000034301cf000000000343022f000000000232019f000000000021043500000bb70000013d00000b680000013d0000000401000029000000000110004c00000ba50000c13d00000bb70000013d000a000000000002000a00000000001d000900000001001d000800000002001d000700000003001d000a00600000003d0000000901000029000000000110004c00000bc80000613d00000c190000013d0000000a01000029000000000001042d00000008010000290000000001010433000000000110004c0000000001000019000000010100c039000000010110018f000000000110004c00000c140000c13d00000bd10000013d000000400100043d000600000001001d0000000601000029000100000001001d0000000101000039000000000110004c00000bdb0000c13d00000bd90000013d000500000000001d00000bde0000013d0000032001000041000500000001001d00000bde0000013d000000010100002900000005020000290000000000210435000400200000003d000000060100002900000004011000390000000402000029000000000021043500000007010000290000000001010433000300000001001d0000000601000029000000240110003900000003020000290000000000210435000200000000001d00000bef0000013d00000002010000290000000302000029000000000121004b00000000010000190000000101004039000000010110018f000000000110004c00000c070000613d00000bf80000013d000000060100002900000002030000290000000001310019000000440110003900000007020000290000000002320019000000040300002900000000023200190000000002020433000000000021043500000c030000013d00000002010000290000000402000029000200000021001d00000bef0000013d00000006010000290000000302000029000000000121001900000044011000390000000000010435000000060100002900000003020000290000001f02200039000000200300008a000000000232016f000000440220003900000000030000190c4000f30000040f00000008020000290000002001200039000000000202043300000000030000190c4000f30000040f0000000801000029000a00000001001d00000bc60000013d000200000000000200000c2600210421000000000201034f0001000000020353000000010100035f000200000001035300000c230000013d000000020100035f0000000102000039000000000001042d0000000002000019000000000001042d000200000000000200000c3200210423000000000201034f0001000000020353000000010100035f000200000001035300000c2f0000013d000000020100035f0000000102000039000000000001042d0000000002000019000000000001042d000200000000000200000c3e00210425000000000201034f0001000000020353000000010100035f000200000001035300000c3b0000013d000000020100035f0000000102000039000000000001042d0000000002000019000000000001042d00000c400000043200000c410001042e00000c4200010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001000000000200000200000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830000000000000000000000010000000000000000000000000000000000000000360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0200000000000000000000000000000000000000000000000000000000000000bc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656400000000000000000000000000000000000000000000000000b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61037e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f000000020000000000000000000000000000000000000000000000000000000008c379a000000000000000000000000000000000000000000000000000000000455243313936373a206e65772061646d696e20697320746865207a65726f20616464726573730000000000000000000000000000000000000000000000000000416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e747261637400000000000000000000000000000000000000000000000000004e487b7100000000000000000000000000000000000000000000000000000000455243313936373a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e747261637400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003659cfe6000000000000000000000000000000000000000000000000000000004f1ef286000000000000000000000000000000000000000000000000000000005c60da1b000000000000000000000000000000000000000000000000000000008f28397000000000000000000000000000000000000000000000000000000000f851a440000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000005472616e73706172656e745570677261646561626c6550726f78793a2061646d696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726765740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0x0000000000000000000000005d246cd4d1a54568b37800499f8793687504b81f000000000000000000000000907c14c4326c8e3e80d3c7a42b16d73a0c5b5df1000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000048129fc1c00000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _logic (address): 0x5D246cd4d1a54568B37800499f8793687504b81f
Arg [1] : admin_ (address): 0x907C14c4326C8E3e80D3C7a42B16D73A0c5b5Df1
Arg [2] : _data (bytes): 0x8129fc1c
-----Encoded View---------------
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ZKSYNC | Ether (ETH) | 37.92% | $3,856.54 | 39.0076 | $150,434.29 |
ZKSYNC | 31.66% | $1 | 125,468.8749 | $125,594.34 | |
ZKSYNC | 30.08% | $1 | 119,203.8939 | $119,323.1 | |
ARB | 0.13% | $3,856.64 | 0.1296 | $499.94 | |
ETH | 0.10% | $3,856.54 | 0.1058 | $407.88 | |
SCROLL | 0.05% | $3,856.54 | 0.0466 | $179.88 | |
OP | 0.02% | $3,856.63 | 0.0236 | $91.02 | |
BASE | 0.02% | $3,856.03 | 0.0207 | $79.65 | |
BLAST | 0.02% | $3,856.25 | 0.0176 | $67.86 | |
LINEA | <0.01% | $3,855.33 | 0.00649708 | $25.05 | |
ARBNOVA | <0.01% | $3,856.3 | 0.0031 | $11.95 | |
OPBNB | <0.01% | $727.7 | 0.002333 | $1.7 |
[ 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.