Overview
ETH Balance
0 ETH
ETH Value
$0.00More Info
Private Name Tags
ContractCreator
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Latest 1 internal transaction
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
411025 | 13 days ago | Contract Creation | 0 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:
ProxyManagerZk
Compiler Version
v0.8.13+commit.abaa5c0e
ZkSolc Version
v1.5.8
Optimization Enabled:
Yes with Mode 3
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: GPL-2.0-or-later pragma solidity ^0.8.0; import "./BaseProxyManager.sol"; /// @notice zkEVM does not support EXTCODECOPY (accessing bytecode via `.code`). /// See: https://docs.zksync.io/zksync-protocol/differences/evm-instructions#extcodecopy. /// Bytecode must be provided externally instead of accessed on-chain. contract ProxyManagerZk is BaseProxyManager { function getContractCodeHash(address) external view virtual override returns (bytes32) { revert("zk: not supported"); } function submitImpl(string memory, address) external view override onlySubmitter { revert("zk: not supported"); } function refreshCodeHash(string memory) external view override onlySubmitter { revert("zk: not supported"); } function registerRegularProxy(string memory, address) external view override onlyOwner { revert("zk: not supported"); } function getContractCodeHash(bytes memory code) external view virtual returns (bytes32) { return _getCodeHash(code); } function submitImpl( string memory name, address impl, bytes memory code ) external virtual onlySubmitter { require(pendingImpls[name] != address(0), "unsupported contract."); pendingImpls[name] = impl; pendingHashes[name] = _getCodeHash(code); } function refreshCodeHash(string memory name, bytes memory code) external virtual onlySubmitter { pendingHashes[name] = _getCodeHash(code); codeHashes[name] = pendingHashes[name]; } function registerRegularProxy( string memory name, address proxy, bytes memory code, bytes memory clearinghouseLiqCode ) external virtual onlyOwner { require(proxies[name] == address(0), "already registered."); address impl = _getImpl(proxy); contractNames.push(name); proxies[name] = proxy; pendingImpls[name] = impl; pendingHashes[name] = _getCodeHash(code); codeHashes[name] = pendingHashes[name]; if (_isEqual(name, CLEARINGHOUSE)) { proxyManagerHelper.registerClearinghouse(proxy); address clearinghouseLiq = _getClearinghouseLiqImpl(); pendingImpls[CLEARINGHOUSE_LIQ] = clearinghouseLiq; pendingHashes[CLEARINGHOUSE_LIQ] = _getCodeHash( clearinghouseLiqCode ); codeHashes[CLEARINGHOUSE_LIQ] = pendingHashes[CLEARINGHOUSE_LIQ]; } } }
// SPDX-License-Identifier: GPL-2.0-or-later pragma solidity ^0.8.0; import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; interface ITransparentUpgradeableProxy { function upgradeTo(address) external; } // we can't use the name `IClearinghouse` here, hardhat-abi-exporter gives // `duplicate output destination` error. interface IIClearinghouse { function getClearinghouseLiq() external view returns (address); function upgradeClearinghouseLiq(address _clearinghouseLiq) external; } // ProxyAdmin cannot access to any functions of the implementation of a proxy, // so we have to create a helper contract to help us visit impl functions. contract ProxyManagerHelper { address proxyManager; address clearinghouse; modifier onlyOwner() { require( msg.sender == proxyManager, "only proxyManager can access to ProxyManagerHelper." ); _; } constructor() { proxyManager = msg.sender; } function registerClearinghouse(address _clearinghouse) external onlyOwner { clearinghouse = _clearinghouse; } function getClearinghouseLiq() external view returns (address) { return IIClearinghouse(clearinghouse).getClearinghouseLiq(); } function upgradeClearinghouseLiq(address clearinghouseLiq) external onlyOwner { IIClearinghouse(clearinghouse).upgradeClearinghouseLiq( clearinghouseLiq ); } } abstract contract BaseProxyManager is OwnableUpgradeable { string constant CLEARINGHOUSE = "Clearinghouse"; string constant CLEARINGHOUSE_LIQ = "ClearinghouseLiq"; address public submitter; ProxyManagerHelper proxyManagerHelper; string[] contractNames; mapping(string => address) public proxies; mapping(string => address) public pendingImpls; mapping(string => bytes32) public pendingHashes; mapping(string => bytes32) public codeHashes; modifier onlySubmitter() { require( msg.sender == submitter, "only submitter can submit new impls." ); _; } struct NewImpl { string name; address impl; } /// @custom:oz-upgrades-unsafe-allow constructor constructor() { _disableInitializers(); } function initialize() external initializer { __Ownable_init(); submitter = msg.sender; proxyManagerHelper = new ProxyManagerHelper(); } function _getSlice( bytes memory data, uint256 start, uint256 end ) internal pure returns (bytes memory) { bytes memory ret = new bytes(end - start); for (uint256 i = start; i < end; i++) { ret[i - start] = data[i]; } return ret; } function getContractCodeHash(address impl) external view virtual returns (bytes32); function submitImpl(string memory name, address impl) external virtual; function refreshCodeHash(string memory name) external virtual; function registerRegularProxy(string memory name, address proxy) external virtual; function _getCodeHash(bytes memory code) internal view returns (bytes32) { uint256 len = code.length; require(len >= 2, "invalid code: len < 2."); uint16 cborLength = uint16(bytes2(_getSlice(code, len - 2, len))); require(len >= 2 + cborLength, "invalid code: len < 2 + cborLength."); return keccak256(_getSlice(code, 0, len - cborLength - 2)); } function updateSubmitter(address newSubmitter) external onlyOwner { submitter = newSubmitter; } function forceMigrateSelf(address newImpl) external onlyOwner { ITransparentUpgradeableProxy(address(this)).upgradeTo(newImpl); } function migrateAll(NewImpl[] calldata newImpls) external onlyOwner { for (uint32 i = 0; i < newImpls.length; i++) { if (_isEqual(newImpls[i].name, CLEARINGHOUSE_LIQ)) { _migrateClearinghouseLiq(newImpls[i]); } else { _migrateRegularProxy(newImpls[i]); } codeHashes[newImpls[i].name] = pendingHashes[newImpls[i].name]; } require(!hasPending(), "still having pending impls to be migrated."); } function getProxyManagerHelper() external view returns (address) { return address(proxyManagerHelper); } function getContractNames() external view returns (string[] memory) { string[] memory ret = new string[](contractNames.length); for (uint32 i = 0; i < contractNames.length; i++) { ret[i] = contractNames[i]; } return ret; } function getCodeHash(string memory name) external view returns (bytes32) { return codeHashes[name]; } function hasPending() public view returns (bool) { for (uint32 i = 0; i < contractNames.length; i++) { string memory name = contractNames[i]; address proxy = proxies[name]; if (_getImpl(proxy) != pendingImpls[name]) { return true; } } if (_isClearinghouseRegistered()) { if (_getClearinghouseLiqImpl() != pendingImpls[CLEARINGHOUSE_LIQ]) { return true; } } return false; } function _isEqual(string memory a, string memory b) internal pure returns (bool) { return keccak256(abi.encodePacked(a)) == keccak256(abi.encodePacked(b)); } function _getImpl(address proxy) internal view returns (address) { (bool success, bytes memory returndata) = proxy.staticcall( hex"5c60da1b" ); require(success, "failed to query impl of the proxy."); return abi.decode(returndata, (address)); } function _getClearinghouseLiqImpl() internal view returns (address) { return proxyManagerHelper.getClearinghouseLiq(); } function _validateImpl(address currentImpl, NewImpl calldata newImpl) internal view { require( pendingImpls[newImpl.name] == newImpl.impl, "new impls don't match with pending impls." ); require( currentImpl != newImpl.impl, "current impl is already the new impl." ); } function _migrateRegularProxy(NewImpl calldata newImpl) internal { address proxy = proxies[newImpl.name]; _validateImpl(_getImpl(proxy), newImpl); ITransparentUpgradeableProxy(proxy).upgradeTo(newImpl.impl); } function _migrateClearinghouseLiq(NewImpl calldata newImpl) internal { require( _isEqual(newImpl.name, CLEARINGHOUSE_LIQ), "invalid new impl provided." ); require( _isClearinghouseRegistered(), "Clearinghouse hasn't been registered." ); _validateImpl(_getClearinghouseLiqImpl(), newImpl); proxyManagerHelper.upgradeClearinghouseLiq(newImpl.impl); } function _isClearinghouseRegistered() internal view returns (bool) { return proxies[CLEARINGHOUSE] != address(0); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol) pragma solidity ^0.8.0; import "../utils/ContextUpgradeable.sol"; import "../proxy/utils/Initializable.sol"; /** * @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 OwnableUpgradeable is Initializable, ContextUpgradeable { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ function __Ownable_init() internal onlyInitializing { __Ownable_init_unchained(); } function __Ownable_init_unchained() internal onlyInitializing { _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); } /** * @dev This empty reserved space is put in place to allow future versions to add new * variables without shifting down storage in the inheritance chain. * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps */ uint256[49] private __gap; }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; import "../proxy/utils/Initializable.sol"; /** * @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 ContextUpgradeable is Initializable { function __Context_init() internal onlyInitializing { } function __Context_init_unchained() internal onlyInitializing { } function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } /** * @dev This empty reserved space is put in place to allow future versions to add new * variables without shifting down storage in the inheritance chain. * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps */ uint256[50] private __gap; }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.8.0-rc.2) (proxy/utils/Initializable.sol) pragma solidity ^0.8.2; import "../../utils/AddressUpgradeable.sol"; /** * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. * * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be * reused. This mechanism prevents re-execution of each "step" but allows the creation of new initialization steps in * case an upgrade adds a module that needs to be initialized. * * For example: * * [.hljs-theme-light.nopadding] * ``` * contract MyToken is ERC20Upgradeable { * function initialize() initializer public { * __ERC20_init("MyToken", "MTK"); * } * } * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable { * function initializeV2() reinitializer(2) public { * __ERC20Permit_init("MyToken"); * } * } * ``` * * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. * * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. * * [CAUTION] * ==== * Avoid leaving a contract uninitialized. * * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed: * * [.hljs-theme-light.nopadding] * ``` * /// @custom:oz-upgrades-unsafe-allow constructor * constructor() { * _disableInitializers(); * } * ``` * ==== */ abstract contract Initializable { /** * @dev Indicates that the contract has been initialized. * @custom:oz-retyped-from bool */ uint8 private _initialized; /** * @dev Indicates that the contract is in the process of being initialized. */ bool private _initializing; /** * @dev Triggered when the contract has been initialized or reinitialized. */ event Initialized(uint8 version); /** * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope, * `onlyInitializing` functions can be used to initialize parent contracts. * * Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a * constructor. * * Emits an {Initialized} event. */ modifier initializer() { bool isTopLevelCall = !_initializing; require( (isTopLevelCall && _initialized < 1) || (!AddressUpgradeable.isContract(address(this)) && _initialized == 1), "Initializable: contract is already initialized" ); _initialized = 1; if (isTopLevelCall) { _initializing = true; } _; if (isTopLevelCall) { _initializing = false; emit Initialized(1); } } /** * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be * used to initialize parent contracts. * * A reinitializer may be used after the original initialization step. This is essential to configure modules that * are added through upgrades and that require initialization. * * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer` * cannot be nested. If one is invoked in the context of another, execution will revert. * * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in * a contract, executing them in the right order is up to the developer or operator. * * WARNING: setting the version to 255 will prevent any future reinitialization. * * Emits an {Initialized} event. */ modifier reinitializer(uint8 version) { require(!_initializing && _initialized < version, "Initializable: contract is already initialized"); _initialized = version; _initializing = true; _; _initializing = false; emit Initialized(version); } /** * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the * {initializer} and {reinitializer} modifiers, directly or indirectly. */ modifier onlyInitializing() { require(_initializing, "Initializable: contract is not initializing"); _; } /** * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call. * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized * to any version. It is recommended to use this to lock implementation contracts that are designed to be called * through proxies. * * Emits an {Initialized} event the first time it is successfully executed. */ function _disableInitializers() internal virtual { require(!_initializing, "Initializable: contract is initializing"); if (_initialized < type(uint8).max) { _initialized = type(uint8).max; emit Initialized(type(uint8).max); } } /** * @dev Internal function that returns the initialized version. Returns `_initialized` */ function _getInitializedVersion() internal view returns (uint8) { return _initialized; } /** * @dev Internal function that returns the initialized version. Returns `_initializing` */ function _isInitializing() internal view returns (bool) { return _initializing; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.8.0-rc.2) (utils/Address.sol) pragma solidity ^0.8.1; /** * @dev Collection of functions related to the address type */ library AddressUpgradeable { /** * @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 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 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); } } }
{ "optimizer": { "enabled": true, "mode": "3", "fallback_to_optimizing_for_size": true }, "outputSelection": { "*": { "*": [ "abi" ] } }, "detectMissingLibraries": false, "forceEVMLA": false, "enableEraVMExtensions": false, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"codeHashes","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newImpl","type":"address"}],"name":"forceMigrateSelf","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"name":"getCodeHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"getContractCodeHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"code","type":"bytes"}],"name":"getContractCodeHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getContractNames","outputs":[{"internalType":"string[]","name":"","type":"string[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getProxyManagerHelper","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hasPending","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"address","name":"impl","type":"address"}],"internalType":"struct BaseProxyManager.NewImpl[]","name":"newImpls","type":"tuple[]"}],"name":"migrateAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"pendingHashes","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"pendingImpls","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"proxies","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes","name":"code","type":"bytes"}],"name":"refreshCodeHash","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"refreshCodeHash","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"},{"internalType":"address","name":"","type":"address"}],"name":"registerRegularProxy","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"address","name":"proxy","type":"address"},{"internalType":"bytes","name":"code","type":"bytes"},{"internalType":"bytes","name":"clearinghouseLiqCode","type":"bytes"}],"name":"registerRegularProxy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"address","name":"impl","type":"address"},{"internalType":"bytes","name":"code","type":"bytes"}],"name":"submitImpl","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"},{"internalType":"address","name":"","type":"address"}],"name":"submitImpl","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[],"name":"submitter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newSubmitter","type":"address"}],"name":"updateSubmitter","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
9c4d535b0000000000000000000000000000000000000000000000000000000000000000010005755f8ab135fe4825c895f9560a41b78315a6b31ab5b6a3fb1ee299dfe900000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x0002000000000002000e00000000000200010000000103550000006003100270000005000030019d0000008005000039000000400050043f0000000100200190000000720000c13d0000050002300197000000040020008c000004cb0000413d000000000301043b000000e003300270000005080030009c0000008f0000213d000005180030009c000000b40000213d000005200030009c000001c00000213d000005240030009c000003350000613d000005250030009c000002700000613d000005260030009c000004cb0000c13d000000440020008c000004cb0000413d0000000003000416000000000003004b000004cb0000c13d0000000403100370000000000403043b000005300040009c000004cb0000213d0000002303400039000000000023004b000004cb0000813d0000000405400039000000000351034f000000000303043b000005300030009c000005620000213d0000001f0730003900000568077001970000003f077000390000056807700197000005310070009c000005620000213d00000024044000390000008007700039000000400070043f000000800030043f0000000004430019000000000024004b000004cb0000213d0000002004500039000000000541034f00000568063001980000001f0730018f000000a004600039000000440000613d000000a008000039000000000905034f000000009a09043c0000000008a80436000000000048004b000000400000c13d000000000007004b000000510000613d000000000565034f0000000306700210000000000704043300000000076701cf000000000767022f000000000505043b0000010006600089000000000565022f00000000056501cf000000000575019f0000000000540435000000a00330003900000000000304350000002401100370000000000101043b000005300010009c000004cb0000213d000000040110003913f70fa00000040f0000006502000039000000000202041a00000527022001970000000003000411000000000023004b00000000020000390000000102006039000a00000001001d000000000102001913f713120000040f0000000a0100002913f713290000040f000a00000001001d000000800100003913f710680000040f0000000a02000029000000000021041b000000800100003913f710680000040f000000000101041a000a00000001001d000000800100003913f7108f0000040f0000000a02000029000002f20000013d0000000001000416000000000001004b000004cb0000c13d000000000100041a0000ff0000100190000000a80000c13d000000ff0210018f000000ff0020008c0000008a0000613d000000ff011001bf000000000010041b000000ff01000039000000800010043f0000000001000414000005000010009c0000050001008041000000c00110021000000505011001c70000800d020000390000000103000039000005060400004113f713ed0000040f0000000100200190000004cb0000613d0000002001000039000001000010044300000120000004430000050701000041000013f80001042e000005090030009c000000c10000213d000005110030009c000001e90000213d000005150030009c000003e80000613d000005160030009c000002bf0000613d000005170030009c000004cb0000c13d0000000001000416000000000001004b000004cb0000c13d000000000102001913f70ff80000040f0000000013010434000900000003001d000000400200043d000a00000002001d13f70fea0000040f00000009030000290000000a01000029000000000413001900000069020000390000032f0000013d0000050101000041000000800010043f0000002001000039000000840010043f0000002701000039000000a40010043f0000050201000041000000c40010043f0000050301000041000000e40010043f0000050401000041000013f900010430000005190030009c000001f40000213d0000051d0030009c000004220000613d0000051e0030009c000002ce0000613d0000051f0030009c000004cb0000c13d0000000001000416000000000001004b000004cb0000c13d0000006601000039000002fc0000013d0000050a0030009c0000024d0000213d0000050e0030009c000004350000613d0000050f0030009c000002d60000613d000005100030009c000004cb0000c13d000000840020008c000004cb0000413d0000000003000416000000000003004b000004cb0000c13d0000000403100370000000000403043b000005300040009c000004cb0000213d0000002303400039000000000023004b000004cb0000813d000a00000005001d0000000405400039000000000351034f000000000303043b000005300030009c000005620000213d0000001f0630003900000568066001970000003f066000390000056806600197000005310060009c000005620000213d00000024044000390000008006600039000000400060043f000000800030043f0000000004430019000000000024004b000004cb0000213d0000002004500039000000000541034f00000568063001980000001f0730018f000000a004600039000000f40000613d000000a008000039000000000905034f000000009a09043c0000000008a80436000000000048004b000000f00000c13d000000000007004b000001010000613d000000000565034f0000000306700210000000000704043300000000076701cf000000000767022f000000000505043b0000010006600089000000000565022f00000000056501cf000000000575019f0000000000540435000000a00330003900000000000304350000002403100370000000000303043b000900000003001d000005270030009c000004cb0000213d0000004403100370000000000403043b000005300040009c000004cb0000213d0000002303400039000000000023004b000004cb0000813d0000000405400039000000000351034f000000000303043b000005300030009c000005620000213d0000001f0630003900000568066001970000003f066000390000056806600197000000400700043d0000000006670019000800000007001d000000000076004b00000000070000390000000107004039000005300060009c000005620000213d0000000100700190000005620000c13d0000002407400039000000400060043f000000080400002900000000043404360000000006730019000000000026004b000004cb0000213d0000002005500039000000000651034f00000568073001980000001f0830018f0000000005740019000001350000613d000000000906034f000000000a040019000000009b09043c000000000aba043600000000005a004b000001310000c13d000000000008004b000001420000613d000000000676034f0000000307800210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000000000334001900000000000304350000006403100370000000000403043b000005300040009c000004cb0000213d0000002303400039000000000023004b000004cb0000813d0000000405400039000000000351034f000000000303043b000005300030009c000005620000213d0000001f0630003900000568066001970000003f066000390000056806600197000000400700043d0000000006670019000700000007001d000000000076004b00000000070000390000000107004039000005300060009c000005620000213d0000000100700190000005620000c13d0000002407400039000000400060043f000000070400002900000000043404360000000006730019000000000026004b000004cb0000213d0000002002500039000000000221034f00000568053001980000001f0630018f0000000001540019000001710000613d000000000702034f0000000008040019000000007907043c0000000008980436000000000018004b0000016d0000c13d000000000006004b0000017e0000613d000000000252034f0000000305600210000000000601043300000000065601cf000000000656022f000000000202043b0000010005500089000000000252022f00000000025201cf000000000262019f000000000021043500000000013400190000000000010435000000400100043d0000003302000039000000000202041a00000527022001970000000003000411000000000032004b000005f00000c13d000000800200043d000000000002004b0000000003120019000001950000613d00000000040000190000000005140019000000a006400039000000000606043300000000006504350000002004400039000000000024004b0000018c0000413d000001950000a13d000000000003043500000068040000390000000000430435000005000010009c000005000100804100000040011002100000002002200039000005000020009c00000500020080410000006002200210000000000112019f0000000002000414000005000020009c0000050002008041000000c002200210000000000112019f00000534011001c7000080100200003913f713f20000040f0000000100200190000004cb0000613d000000400200043d000000000101043b000000000101041a000005270010019800000d140000c13d00000536010000410000000000120435000005000020009c000005000200804100000040012002100000000002000414000005000020009c0000050002008041000000c002200210000000000112019f00000537011001c7000000090200002913f713f20000040f0000006003100270000005000430019800000d1a0000c13d000000600300003900000d410000013d000005210030009c0000043c0000613d000005220030009c000002e30000613d000005230030009c000004cb0000c13d0000000001000416000000000001004b000004cb0000c13d0000006706000039000000000706041a000005300070009c000005620000213d00000005027002100000003f012000390000055401100197000005310010009c000005620000213d0000008001100039000000400010043f000000800070043f000000000007004b000005680000c13d00000020020000390000000003210436000000800200043d0000000000230435000000400310003900000005042002100000000007340019000000000002004b000005d10000c13d0000000002170049000005000020009c00000500020080410000006002200210000005000010009c00000500010080410000004001100210000000000112019f000013f80001042e000005120030009c0000048f0000613d000005130030009c000002f80000613d000005140030009c000004cb0000c13d0000000001000416000000000001004b000004cb0000c13d0000006501000039000002fc0000013d0000051a0030009c000004a80000613d0000051b0030009c000003010000613d0000051c0030009c000004cb0000c13d000000440020008c000004cb0000413d0000000003000416000000000003004b000004cb0000c13d0000000403100370000000000403043b000005300040009c000004cb0000213d0000002303400039000000000023004b000004cb0000813d0000000405400039000000000351034f000000000303043b000005300030009c000005620000213d0000001f0730003900000568077001970000003f077000390000056807700197000005310070009c000005620000213d00000024044000390000008007700039000000400070043f000000800030043f0000000004430019000000000024004b000004cb0000213d0000002002500039000000000421034f00000568053001980000001f0630018f000000a002500039000002240000613d000000a007000039000000000804034f000000008908043c0000000007970436000000000027004b000002200000c13d000000000006004b000002310000613d000000000454034f0000000305600210000000000602043300000000065601cf000000000656022f000000000404043b0000010005500089000000000454022f00000000045401cf000000000464019f0000000000420435000000a00230003900000000000204350000002401100370000000000101043b000005270010009c000004cb0000213d0000003301000039000000000201041a000000400400043d00000501010000410000000000140435000000040140003900000527022001970000000003000411000000000032004b000004830000613d0000002002000039000000000021043500000044014000390000053203000041000000000031043500000024014000390000000000210435000005000040009c0000050004008041000000400140021000000533011001c7000013f9000104300000050b0030009c000004c10000613d0000050c0030009c000003210000613d0000050d0030009c000004cb0000c13d000000240020008c000004cb0000413d0000000002000416000000000002004b000004cb0000c13d0000000401100370000000000101043b000005270010009c000004cb0000213d0000003302000039000000000202041a00000527022001970000000003000411000000000032004b000005210000c13d000000000001004b000005cf0000c13d0000050101000041000000800010043f0000002001000039000000840010043f0000002601000039000000a40010043f0000052801000041000000c40010043f0000052901000041000000e40010043f0000050401000041000013f900010430000000240020008c000004cb0000413d0000000003000416000000000003004b000004cb0000c13d0000000403100370000000000303043b000900000003001d000005300030009c000004cb0000213d00000009030000290000002303300039000000000023004b000004cb0000813d00000009030000290000000403300039000000000131034f000000000101043b000700000001001d000005300010009c000004cb0000213d0000000901000029000a00240010003d000000070100002900000005011002100000000a01100029000000000021004b000004cb0000213d00000000030004150000003301000039000000000101041a00000527011001970000000002000411000000000021004b000005ef0000c13d000100000003001d000e00000000003d000000070000006b0000064b0000c13d0000006703000039000000000103041a000600000001001d000000000001004b00000b350000c13d000000400100043d0000053e0010009c000005620000213d0000004002100039000000400020043f0000000d0200003900000000012104360000053f020000410000000000210435000000400100043d00000000002104350000000d0210003900000068030000390000000000320435000005000010009c000005000100804100000040011002100000000002000414000005000020009c0000050002008041000000c002200210000000000121019f00000559011001c7000080100200003913f713f20000040f0000000100200190000004cb0000613d000000000101043b000000000101041a000005270010019800000c200000c13d000000000100041500000001011000690000000001000002000002f30000013d0000000001000416000000000001004b000004cb0000c13d000000000102001913f70ff80000040f0000000013010434000900000003001d000000400200043d000a00000002001d13f70fea0000040f00000009030000290000000a0100002900000000041300190000006b020000390000049d0000013d0000000001000416000000000001004b000004cb0000c13d13f710e70000040f000000000001004b0000000001000039000000010100c039000004a10000013d000000240020008c000004cb0000413d0000000003000416000000000003004b000004cb0000c13d0000000401100370000000000101043b000005300010009c000004cb0000213d000000040110003913f70fa00000040f13f713290000040f000004a10000013d000000240020008c000004cb0000413d0000000002000416000000000002004b000004cb0000c13d0000000401100370000000000101043b000a00000001001d000005270010009c000004cb0000213d13f710b60000040f0000006501000039000000000201041a0000053d022001970000000a022001af000000000021041b000000400100043d000005000010009c00000500010080410000004001100210000013f80001042e0000000001000416000000000001004b000004cb0000c13d0000003301000039000000000101041a0000052701100197000000800010043f0000054401000041000013f80001042e0000000001000416000000000001004b000004cb0000c13d00000000020004150000000c0220008a0000000502200210000000000300041a0000ff0001300190000004cd0000c13d00000000020004150000000b0220008a0000000502200210000000ff00300190000004cd0000c13d000005690130019700000001021001bf0000056a0120019700000100021001bf0000000003000019000000000020041b000000400100043d0000ff0000200190000005410000c13d00000064021000390000054e03000041000000000032043500000044021000390000054f03000041000000000032043500000024021000390000002b03000039000005360000013d0000000001000416000000000001004b000004cb0000c13d000000000102001913f70ff80000040f0000000013010434000900000003001d000000400200043d000a00000002001d13f70fea0000040f00000009030000290000000a01000029000000000413001900000068020000390000000000240435000000200230003913f713d80000040f000000000101041a0000052701100197000004a10000013d000000640020008c000004cb0000413d0000000003000416000000000003004b000004cb0000c13d0000000403100370000000000503043b000005300050009c000004cb0000213d0000002303500039000000000023004b000004cb0000813d0000000406500039000000000361034f000000000403043b000005660040009c000005620000813d0000001f0740003900000568077001970000003f077000390000056807700197000005310070009c000005620000213d00000024055000390000008007700039000000400070043f000000800040043f0000000005540019000000000025004b000004cb0000213d0000002005600039000000000651034f00000568074001980000001f0840018f000000a0057000390000035f0000613d000000a009000039000000000a06034f00000000ab0a043c0000000009b90436000000000059004b0000035b0000c13d000000000008004b0000036c0000613d000000000676034f0000000307800210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000000a00440003900000000000404350000002404100370000000000404043b000a00000004001d000005270040009c000004cb0000213d0000004404100370000000000504043b000005300050009c000004cb0000213d0000002304500039000000000024004b000004cb0000813d0000000406500039000000000461034f000000000404043b000005300040009c000005620000213d0000001f0740003900000568077001970000003f077000390000056807700197000000400800043d0000000007780019000900000008001d000000000087004b00000000080000390000000108004039000005300070009c000005620000213d0000000100800190000005620000c13d0000002408500039000000400070043f000000090500002900000000054504360000000007840019000000000027004b000004cb0000213d0000002002600039000000000221034f00000568034001980000001f0640018f0000000001350019000003a00000613d000000000702034f0000000008050019000000007907043c0000000008980436000000000018004b0000039c0000c13d000000000006004b000003ad0000613d000000000232034f0000000303600210000000000601043300000000063601cf000000000636022f000000000202043b0000010003300089000000000232022f00000000023201cf000000000262019f000000000021043500000000014500190000000000010435000000400100043d0000006502000039000000000202041a00000527022001970000000003000411000000000023004b00000c970000c13d000000800200043d000000000002004b0000000003120019000003c40000613d00000000040000190000000005140019000000a006400039000000000606043300000000006504350000002004400039000000000024004b000003bb0000413d000003c40000a13d000000000003043500000069040000390000000000430435000005000010009c000005000100804100000040011002100000002002200039000005000020009c00000500020080410000006002200210000000000112019f0000000002000414000005000020009c0000050002008041000000c002200210000000000112019f00000534011001c7000080100200003913f713f20000040f0000000100200190000004cb0000613d000000000101043b000000000101041a000005270010019800000d060000c13d000000400100043d0000004402100039000005670300004100000000003204350000002402100039000000150300003900000000003204350000050102000041000000000021043500000004021000390000002003000039000005f90000013d000000240020008c000004cb0000413d0000000003000416000000000003004b000004cb0000c13d0000000403100370000000000403043b000005300040009c000004cb0000213d0000002303400039000000000023004b000004cb0000813d0000000405400039000000000351034f000000000303043b000005300030009c000005620000213d0000001f0730003900000568077001970000003f077000390000056807700197000005310070009c000005620000213d00000024044000390000008007700039000000400070043f000000800030043f0000000004430019000000000024004b000004cb0000213d0000002002500039000000000221034f00000568043001980000001f0530018f000000a001400039000004120000613d000000a006000039000000000702034f000000007807043c0000000006860436000000000016004b0000040e0000c13d000000000005004b0000041f0000613d000000000242034f0000000304500210000000000501043300000000054501cf000000000545022f000000000202043b0000010004400089000000000242022f00000000024201cf000000000252019f0000000000210435000000a0013000390000000000010435000004790000013d000000240020008c000004cb0000413d0000000002000416000000000002004b000004cb0000c13d0000000401100370000000000101043b000005270010009c000004cb0000213d0000050101000041000000800010043f0000002001000039000000840010043f0000001101000039000000a40010043f0000055301000041000000c40010043f0000055001000041000013f9000104300000000001000416000000000001004b000004cb0000c13d000000000102001913f70ff80000040f13f7108f0000040f000004a00000013d000000440020008c000004cb0000413d0000000003000416000000000003004b000004cb0000c13d0000000403100370000000000403043b000005300040009c000004cb0000213d0000002303400039000000000023004b000004cb0000813d0000000405400039000000000351034f000000000303043b000005300030009c000005620000213d0000001f0730003900000568077001970000003f077000390000056807700197000005310070009c000005620000213d00000024044000390000008007700039000000400070043f000000800030043f0000000004430019000000000024004b000004cb0000213d0000002002500039000000000421034f00000568053001980000001f0630018f000000a002500039000004660000613d000000a007000039000000000804034f000000008908043c0000000007970436000000000027004b000004620000c13d000000000006004b000004730000613d000000000454034f0000000305600210000000000602043300000000065601cf000000000656022f000000000404043b0000010005500089000000000454022f00000000045401cf000000000464019f0000000000420435000000a00230003900000000000204350000002401100370000000000101043b000005270010009c000004cb0000213d0000006501000039000000000201041a000000400400043d00000501010000410000000000140435000000040140003900000527022001970000000003000411000000000023004b000005ff0000c13d000a00000004001d13f713080000040f0000000a020000290000000001210049000005000010009c00000500010080410000006001100210000005000020009c00000500020080410000004002200210000000000121019f000013f9000104300000000001000416000000000001004b000004cb0000c13d000000000102001913f70ff80000040f0000000013010434000900000003001d000000400200043d000a00000002001d13f70fea0000040f00000009030000290000000a0100002900000000041300190000006a020000390000000000240435000000200230003913f713d80000040f000000000101041a000000400200043d0000000000120435000005000020009c000005000200804100000040012002100000052a011001c7000013f80001042e0000000001000416000000000001004b000004cb0000c13d0000003301000039000000000201041a00000527052001970000000003000411000000000035004b000005210000c13d0000053d02200197000000000021041b0000000001000414000005000010009c0000050001008041000000c00110021000000551011001c70000800d0200003900000003030000390000054a04000041000000000600001913f713ed0000040f0000000100200190000004cb0000613d0000055201000041000013f80001042e000000240020008c000004cb0000413d0000000002000416000000000002004b000004cb0000c13d0000000401100370000000000101043b000a00000001001d000005270010009c000004ef0000a13d0000000001000019000013f900010430000900000003001d000a00000002001d000800000001001d0000052b010000410000000000100443000000000100041000000004001004430000000001000414000005000010009c0000050001008041000000c0011002100000052c011001c7000080020200003913f713f20000040f000000010020019000000f860000613d000000000101043b000000000001004b0000052a0000c13d0000000901000029000000ff0110018f000000010010008c0000000a010000290000000501100270000000000100003f000000010100603f0000052d0000c13d000000000200041a000005690120019700000001021001bf000000080000006b000003110000613d0000000103000039000003140000013d0000003301000039000000000101041a00000527011001970000000002000411000000000021004b000005210000c13d0000052b010000410000000000100443000000000100041000000004001004430000000001000414000005000010009c0000050001008041000000c0011002100000052c011001c7000080020200003913f713f20000040f000000010020019000000f860000613d000000000101043b000000000001004b000004cb0000613d000000400300043d0000052d01000041000000000013043500000004013000390000000a020000290000000000210435000005000030009c000a00000003001d0000050001000041000000000103401900090040001002180000000001000414000005000010009c0000050001008041000000c00110021000000009011001af0000052e011001c7000000000200041013f713ed0000040f000000010020019000000af40000613d0000000a01000029000005300010009c000005620000213d0000000a01000029000000400010043f0000000901000029000013f80001042e0000050101000041000000800010043f0000002001000039000000840010043f000000a40010043f0000053201000041000000c40010043f0000055001000041000013f9000104300000000a010000290000000501100270000000000100003f000000400100043d00000064021000390000054803000041000000000032043500000044021000390000054903000041000000000032043500000024021000390000002e03000039000000000032043500000501020000410000000000210435000000040210003900000020030000390000000000320435000005000010009c0000050001008041000000400110021000000547011001c7000013f900010430000a00000003001d000000000200041100000527062001970000003302000039000000000302041a0000053d04300197000000000464019f000000000042041b000005000010009c000005000100804100000040011002100000000002000414000005000020009c0000050002008041000000c002200210000000000112019f000005270530019700000534011001c70000800d0200003900000003030000390000054a0400004113f713ed0000040f0000000100200190000004cb0000613d0000006501000039000000000201041a0000053d022001970000000003000411000000000232019f000000000021041b000000400100043d0000054b0010009c0000060f0000a13d0000056101000041000000000010043f0000004101000039000000040010043f0000052e01000041000013f90001043000000060010000390000000003000019000000a00430003900000000001404350000002003300039000000000023004b0000056a0000413d000000200800008a000000000207001900000000090000190000000001000019000600000007001d000000000012004b00000c140000a13d000000000060043f0000053b0110009a000000000301041a0000000104300190000000010a3002700000007f0aa0618f0000001f00a0008c00000000050000390000000105002039000000000553013f000000010050019000000d650000c13d000000400500043d000000000ba50436000000000004004b000005a70000613d00070000000b001d00080000000a001d000900000005001d000a00000009001d000000000010043f0000000001000414000005000010009c0000050001008041000000c0011002100000053c011001c7000080100200003913f713f20000040f0000000100200190000004cb0000613d0000006706000039000000000206041a000000080a00002900000000000a004b000005ab0000613d000000000301043b00000000010000190000000607000029000000200800008a0000000a09000029000000070b0000290000000004b10019000000000503041a0000000000540435000000010330003900000020011000390000000000a1004b0000059f0000413d000005b00000013d000005690130019700000000001b04350000004001500039000005b20000013d00000000010000190000000607000029000000200800008a0000000a09000029000000070b0000290000000001b10019000000090500002900000000015100490000001f01100039000000000381016f0000000001530019000000000031004b00000000030000390000000103004039000005300010009c000005620000213d0000000100300190000005620000c13d000000400010043f000000800100043d000000000091004b00000c140000a13d0000000501900210000000a0011000390000000000510435000000800100043d000000000091004b00000c140000a13d000005000090009c00000c1a0000613d00000001019000390000050009100197000000000079004b000005740000413d000000400100043d000001d70000013d13f710cd0000040f000002f30000013d00000080040000390000000006000019000005da0000013d0000001f08800039000005680880019700000000077800190000000106600039000000000026004b000001e00000813d0000000008170049000000400880008a00000000038304360000002004400039000000000804043300000000980804340000000007870436000000000008004b000005d40000613d000000000a000019000000000b7a0019000000000ca90019000000000c0c04330000000000cb0435000000200aa0003900000000008a004b000005e40000413d000005d40000a13d00000000097800190000000000090435000005d40000013d000000400100043d0000004402100039000005320300004100000000003204350000050102000041000000000021043500000024021000390000002003000039000000000032043500000004021000390000000000320435000005000010009c0000050001008041000000400110021000000533011001c7000013f90001043000000020020000390000000000210435000000640140003900000545020000410000000000210435000000440140003900000546020000410000000000210435000000240140003900000024020000390000000000210435000005000040009c0000050004008041000000400140021000000547011001c7000013f9000104300000002402100039000004ff03000041000000000032043500000044021000390000000003000414000000600400003900000000004204350000054c0200004100000000002104350000006402100039000000000002043500000004021000390000000000020435000005000010009c00000500010080410000004001100210000005000030009c0000050003008041000000c002300210000000000112019f0000054d011001c7000080060200003913f713ed0000040f000000010020019000000b140000613d00000000020000310000000103200367000000000101043b000000000001004b000000000200001900000b170000613d00000527011001970000006602000039000000000302041a0000053d03300197000000000113019f000000000012041b0000000a0000006b000002f30000c13d000000000200041a0000056a01200197000000000010041b0000000103000039000000400100043d0000000000310435000005000010009c000005000100804100000040011002100000000002000414000005000020009c0000050002008041000000c002200210000000000112019f0000053c011001c70000800d02000039000005060400004113f713ed0000040f0000000100200190000002f30000c13d000004cb0000013d00000000010004150000000e0110008a00040005001002180000000002000019000300000002001d00000005012002100008000a0010002d00000001010003670000000802100360000000000202043b0000000003000031000000090430006a000000630440008a00000555054001970000055506200197000000000756013f000000000056004b00000000050000190000055505004041000000000042004b00000000040000190000055504008041000005550070009c000000000504c019000000000005004b000004cb0000c13d0000000a02200029000000000421034f000000000404043b00000000052300490000001f0550008a00000555065001970000055507400197000000000867013f000000000067004b00000000060000190000055506004041000000000054004b00000000050000190000055505008041000005550080009c000000000605c019000000000006004b000004cb0000c13d0000000004240019000000000241034f000000000202043b000005300020009c000004cb0000213d0000000005230049000000200640003900000555045001970000055507600197000000000847013f000000000047004b00000000040000190000055504004041000000000056004b00000000050000190000055505002041000005550080009c000000000405c019000000000004004b000004cb0000c13d000000400a00043d0000053e00a0009c000005620000213d0000004004a00039000000400040043f000000100400003900000000054a04360000054204000041000200000005001d00000000004504350000001f0420003900000568044001970000003f044000390000056804400197000000400500043d0000000004450019000000000054004b00000000070000390000000107004039000005300040009c000005620000213d0000000100700190000005620000c13d000000400040043f00000000042504360000000007620019000000000037004b000004cb0000213d000000000361034f00000568062001980000000001640019000006b10000613d000000000703034f0000000008040019000000007907043c0000000008980436000000000018004b000006ad0000c13d0000001f07200190000006be0000613d000000000363034f0000000306700210000000000701043300000000076701cf000000000767022f000000000303043b0000010006600089000000000363022f00000000036301cf000000000373019f000000000031043500000000012400190000000000010435000000400100043d00000020021000390000000003050433000000000003004b000006d00000613d000000000500001900000000062500190000000007450019000000000707043300000000007604350000002005500039000000000035004b000006c60000413d000006d00000a13d0000000004230019000000000004043500000000003104350000003f0330003900000568043001970000000003140019000000000043004b00000000040000390000000104004039000005300030009c000005620000213d0000000100400190000005620000c13d000000400030043f000005000020009c000005000200804100000040022002100000000001010433000005000010009c00000500010080410000006001100210000000000121019f0000000002000414000005000020009c0000050002008041000000c002200210000000000112019f00000534011001c7000080100200003900060000000a001d13f713f20000040f00000006040000290000000100200190000004cb0000613d000000400200043d0000002003200039000000000101043b000500000001001d0000000001040433000000000001004b000007030000613d0000000004000019000000020700002900000000053400190000000006740019000000000606043300000000006504350000002004400039000000000014004b000006f90000413d000007030000a13d0000000004310019000000000004043500000000001204350000003f0110003900000568041001970000000001240019000000000041004b00000000040000390000000104004039000005300010009c000005620000213d0000000100400190000005620000c13d000000400010043f000005000030009c000005000300804100000040013002100000000002020433000005000020009c00000500020080410000006002200210000000000112019f0000000002000414000005000020009c0000050002008041000000c002200210000000000112019f00000534011001c7000080100200003913f713f20000040f0000000100200190000004cb0000613d0000000003000031000000090430006a00000001020003670000000806200360000000630540008a000000000406043b000000000101043b000000050010006b000008e00000c13d000000000054004b0000000001000019000005550100804100000555055001970000055506400197000000000756013f000000000056004b00000000050000190000055505004041000005550070009c000000000501c019000000000005004b000004cb0000c13d0008000a0040002d0000000801200360000000000101043b000000080430006a0000001f0440008a00000555054001970000055506100197000000000756013f000000000056004b00000000050000190000055505004041000000000041004b00000000040000190000055504008041000005550070009c000000000504c019000000000005004b000004cb0000c13d0000000804100029000000000142034f000000000101043b000005300010009c000004cb0000213d0000000005130049000000200640003900000555045001970000055507600197000000000847013f000000000047004b00000000040000190000055504004041000000000056004b00000000050000190000055505002041000005550080009c000000000405c019000000000004004b000004cb0000c13d000000400a00043d0000053e00a0009c000005620000213d0000004004a00039000000400040043f000000100400003900000000054a04360000054204000041000200000005001d00000000004504350000001f0410003900000568044001970000003f044000390000056804400197000000400500043d0000000004450019000000000054004b00000000070000390000000107004039000005300040009c000005620000213d0000000100700190000005620000c13d000000400040043f00000000041504360000000007610019000000000037004b000004cb0000213d000000000362034f00000568061001980000000002640019000007830000613d000000000703034f0000000008040019000000007907043c0000000008980436000000000028004b0000077f0000c13d0000001f07100190000007900000613d000000000363034f0000000306700210000000000702043300000000076701cf000000000767022f000000000303043b0000010006600089000000000363022f00000000036301cf000000000373019f000000000032043500000000011400190000000000010435000000400100043d00000020021000390000000003050433000000000003004b000007a20000613d000000000500001900000000062500190000000007450019000000000707043300000000007604350000002005500039000000000035004b000007980000413d000007a20000a13d0000000004230019000000000004043500000000003104350000003f0330003900000568043001970000000003140019000000000043004b00000000040000390000000104004039000005300030009c000005620000213d0000000100400190000005620000c13d000000400030043f000005000020009c000005000200804100000040022002100000000001010433000005000010009c00000500010080410000006001100210000000000121019f0000000002000414000005000020009c0000050002008041000000c002200210000000000112019f00000534011001c7000080100200003900060000000a001d13f713f20000040f00000006040000290000000100200190000004cb0000613d000000400200043d0000002003200039000000000101043b000500000001001d0000000001040433000000000001004b000007d50000613d0000000004000019000000020700002900000000053400190000000006740019000000000606043300000000006504350000002004400039000000000014004b000007cb0000413d000007d50000a13d0000000004310019000000000004043500000000001204350000003f0110003900000568041001970000000001240019000000000041004b00000000040000390000000104004039000005300010009c000005620000213d0000000100400190000005620000c13d000000400010043f000005000030009c000005000300804100000040013002100000000002020433000005000020009c00000500020080410000006002200210000000000112019f0000000002000414000005000020009c0000050002008041000000c002200210000000000112019f00000534011001c7000080100200003913f713f20000040f0000000100200190000004cb0000613d000000400200043d000000000101043b000000050010006b00000cb40000c13d0000053e0020009c000005620000213d0000004001200039000000400010043f0000000d0100003900000000011204360000053f020000410000000000210435000000400100043d00000000002104350000000d0210003900000068030000390000000000320435000005000010009c000005000100804100000040011002100000000002000414000005000020009c0000050002008041000000c002200210000000000121019f00000559011001c7000080100200003913f713f20000040f0000000100200190000004cb0000613d000000400400043d000000000101043b000000000101041a000005270010019800000cc40000613d0000006601000039000000000201041a00000541010000410000000000140435000005000040009c0000050001000041000000000104401900000040011002100000000003000414000005000030009c0000050003008041000000c003300210000000000113019f00000537011001c70000052702200197000600000004001d13f713f20000040f000000060a00002900000060031002700000050003300197000000200030008c00000020040000390000000004034019000000200640019000000000056a0019000008360000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000058004b000008320000c13d0000001f07400190000008430000613d000000000661034f0000000307700210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000000010020019000000cd20000613d0000001f01400039000000600210018f0000000001a20019000000000021004b00000000020000390000000102004039000005300010009c000005620000213d0000000100200190000005620000c13d000000400010043f000000200030008c000004cb0000413d00000000090a0433000005270090009c000004cb0000213d00000001030003670000000802300360000000000202043b0000000004000031000000080540006a0000001f0550008a00000555065001970000055507200197000000000867013f000000000067004b00000000060000190000055506004041000000000052004b00000000050000190000055505008041000005550080009c000000000605c019000000000006004b000004cb0000c13d0000000805200029000000000253034f000000000202043b000005300020009c000004cb0000213d0000000006240049000000200450003900000555056001970000055507400197000000000857013f000000000057004b00000000050000190000055505004041000000000064004b00000000060000190000055506002041000005550080009c000000000506c019000000000005004b000004cb0000c13d000000000443034f00000568052001980000000003510019000008860000613d000000000604034f0000000007010019000000006806043c0000000007870436000000000037004b000008820000c13d000600000009001d0000001f06200190000008940000613d000000000454034f0000000305600210000000000603043300000000065601cf000000000656022f000000000404043b0000010005500089000000000454022f00000000045401cf000000000464019f0000000000430435000000000312001900000069040000390000000000430435000005000010009c00000500010080410000004001100210000005560020009c00000556020080410000006002200210000000000112019f0000000002000414000005000020009c0000050002008041000000c002200210000000000121019f000005570110009a000080100200003913f713f20000040f00000001002001900000000603000029000004cb0000613d000000080200002900000020022000390000000102200367000000000202043b000005270020009c000004cb0000213d000000000101043b000000000101041a000000000121013f000005270010019800000ca00000c13d000800000002001d000000000023004b00000caa0000613d0000006601000039000000000101041a0000052b0200004100000000002004430000052701100197000600000001001d00000004001004430000000001000414000005000010009c0000050001008041000000c0011002100000052c011001c7000080020200003913f713f20000040f000000010020019000000f860000613d000000000101043b000000000001004b0000000802000029000004cb0000613d000000400300043d0000055c01000041000000000013043500000004013000390000000000210435000005000030009c000800000003001d0000050001000041000000000103401900000040011002100000000002000414000005000020009c0000050002008041000000c002200210000000000112019f0000052e011001c7000000060200002913f713ed0000040f000000010020019000000a0c0000c13d00000cf90000013d000000000054004b0000000001000019000005550100804100000555055001970000055506400197000000000756013f000000000056004b00000000050000190000055505004041000005550070009c000000000501c019000000000005004b000004cb0000c13d0008000a0040002d0000000801200360000000000101043b000000080430006a0000001f0440008a00000555054001970000055506100197000000000756013f000000000056004b00000000050000190000055505004041000000000041004b00000000040000190000055504008041000005550070009c000000000504c019000000000005004b000004cb0000c13d0000000804100029000000000142034f000000000101043b000005300010009c000004cb0000213d0000000005130049000000200340003900000555045001970000055506300197000000000746013f000000000046004b00000000040000190000055504004041000000000053004b00000000050000190000055505002041000005550070009c000000000405c019000000000004004b000004cb0000c13d000000000432034f0000056805100198000000400200043d00000000035200190000091e0000613d000000000604034f0000000007020019000000006806043c0000000007870436000000000037004b0000091a0000c13d0000001f061001900000092b0000613d000000000454034f0000000305600210000000000603043300000000065601cf000000000656022f000000000404043b0000010005500089000000000454022f00000000045401cf000000000464019f0000000000430435000000000312001900000068040000390000000000430435000005000020009c00000500020080410000004002200210000005560010009c00000556010080410000006001100210000000000121019f0000000002000414000005000020009c0000050002008041000000c002200210000000000121019f000005570110009a000080100200003913f713f20000040f0000000100200190000004cb0000613d000000000101043b000000000201041a000000400100043d00000536030000410000000000310435000005000010009c000005000100804100000040011002100000000003000414000005000030009c0000050003008041000000c003300210000000000113019f00000537011001c70000052702200197000600000002001d13f713f20000040f00000060031002700000050005300198000000800400003900000060030000390000097a0000613d0000001f0350003900000538033001970000003f033000390000053904300197000000400300043d0000000004430019000000000034004b00000000060000390000000106004039000005300040009c000005620000213d0000000100600190000005620000c13d000000400040043f00000000045304360000052f0750019800000000067400190000096d0000613d000000000801034f0000000009040019000000008a08043c0000000009a90436000000000069004b000009690000c13d0000001f055001900000097a0000613d000000000171034f0000000305500210000000000706043300000000075701cf000000000757022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000171019f0000000000160435000000010020019000000d6b0000613d00000000010304330000053a0010009c000004cb0000213d000000200010008c000004cb0000413d0000000009040433000005270090009c000004cb0000213d00000001020003670000000801200360000000000101043b0000000003000031000000080430006a0000001f0440008a00000555054001970000055506100197000000000756013f000000000056004b00000000050000190000055505004041000000000041004b00000000040000190000055504008041000005550070009c000000000504c019000000000005004b000004cb0000c13d0000000804100029000000000142034f000000000101043b000005300010009c000004cb0000213d0000000005130049000000200340003900000555045001970000055506300197000000000746013f000000000046004b00000000040000190000055504004041000000000053004b00000000050000190000055505002041000005550070009c000000000405c019000000000004004b000004cb0000c13d000000000432034f0000056805100198000000400200043d0000000003520019000009b60000613d000000000604034f0000000007020019000000006806043c0000000007870436000000000037004b000009b20000c13d000500000009001d0000001f06100190000009c40000613d000000000454034f0000000305600210000000000603043300000000065601cf000000000656022f000000000404043b0000010005500089000000000454022f00000000045401cf000000000464019f0000000000430435000000000312001900000069040000390000000000430435000005000020009c00000500020080410000004002200210000005560010009c00000556010080410000006001100210000000000121019f0000000002000414000005000020009c0000050002008041000000c002200210000000000121019f000005570110009a000080100200003913f713f20000040f00000001002001900000000503000029000004cb0000613d000000080200002900000020022000390000000102200367000000000202043b000005270020009c000004cb0000213d000000000101043b000000000101041a000000000121013f000005270010019800000ca00000c13d000800000002001d000000000023004b00000caa0000613d0000052b010000410000000000100443000000060100002900000004001004430000000001000414000005000010009c0000050001008041000000c0011002100000052c011001c7000080020200003913f713f20000040f000000010020019000000f860000613d000000000101043b000000000001004b0000000802000029000004cb0000613d000000400300043d0000052d01000041000000000013043500000004013000390000000000210435000005000030009c000800000003001d0000050001000041000000000103401900000040011002100000000002000414000005000020009c0000050002008041000000c002200210000000000112019f0000052e011001c7000000060200002913f713ed0000040f000000010020019000000cec0000613d0000000809000029000005300090009c000005620000213d000000400090043f000000040100002900000005011002700000000001010031000000070010006c00000c140000813d00000005011002100000000a0a10002900000001020003670000000001a2034f000000000101043b0000000003000031000000090430006a000000630440008a00000555054001970000055506100197000000000756013f000000000056004b00000000050000190000055505004041000000000041004b00000000040000190000055504008041000005550070009c000000000504c019000000000005004b000004cb0000c13d0000000a01100029000000000412034f000000000404043b00000000051300490000001f0550008a00000555065001970000055507400197000000000867013f000000000067004b00000000060000190000055506004041000000000054004b00000000050000190000055505008041000005550080009c000000000605c019000000000006004b000004cb0000c13d0000000004140019000000000142034f000000000101043b000005300010009c000004cb0000213d0000000005130049000000200340003900000555045001970000055506300197000000000746013f000000000046004b00000000040000190000055504004041000000000053004b00000000050000190000055505002041000005550070009c000000000405c019000000000004004b000004cb0000c13d000000000332034f0000056804100198000000000249001900000a5a0000613d000000000503034f0000000006090019000000005705043c0000000006760436000000000026004b00000a560000c13d00080000000a001d0000001f0510019000000a680000613d000000000343034f0000000304500210000000000502043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f000000000032043500000000029100190000006a030000390000000000320435000005000090009c00000500090080410000004002900210000005560010009c00000556010080410000006001100210000000000121019f0000000002000414000005000020009c0000050002008041000000c002200210000000000121019f000005570110009a000080100200003913f713f20000040f00000001002001900000000803000029000004cb0000613d0000000102000367000000000332034f000000000403043b0000000003000031000000090530006a000000630550008a00000555065001970000055507400197000000000867013f000000000067004b00000000060000190000055506004041000000000054004b00000000050000190000055505008041000005550080009c000000000605c019000000000101043b000000000006004b000004cb0000c13d000000000901041a0000000a01400029000000000412034f000000000404043b00000000051300490000001f0550008a00000555065001970000055507400197000000000867013f000000000067004b00000000060000190000055506004041000000000054004b00000000050000190000055505008041000005550080009c000000000605c019000000000006004b000004cb0000c13d0000000004140019000000000142034f000000000101043b000005300010009c000004cb0000213d0000000005130049000000200340003900000555045001970000055506300197000000000746013f000000000046004b00000000040000190000055504004041000000000053004b00000000050000190000055505002041000005550070009c000000000405c019000000000004004b000004cb0000c13d000000000432034f0000056805100198000000400200043d000000000352001900000ac30000613d000000000604034f0000000007020019000000006806043c0000000007870436000000000037004b00000abf0000c13d000800000009001d0000001f0610019000000ad10000613d000000000454034f0000000305600210000000000603043300000000065601cf000000000656022f000000000404043b0000010005500089000000000454022f00000000045401cf000000000464019f000000000043043500000000031200190000006b040000390000000000430435000005000020009c00000500020080410000004002200210000005560010009c00000556010080410000006001100210000000000121019f0000000002000414000005000020009c0000050002008041000000c002200210000000000121019f000005570110009a000080100200003913f713f20000040f00000001002001900000000802000029000004cb0000613d000000000101043b000000000021041b0000000301000029000005000010009c00000c1a0000613d00000000020004150000000d0220008a00040005002002180000000101100039000d05000010019b0000050002100197000000070020006c0000064f0000413d000002970000013d00000060061002700000001f0460018f0000052f05600198000000400200043d000000000352001900000b000000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000038004b00000afc0000c13d0000050006600197000000000004004b00000b0e0000613d000000000151034f0000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001304350000006001600210000005000020009c00000500020080410000004002200210000000000112019f000013f90001043000000060021002700000050002200197000000000301034f0000001f0520018f0000052f06200198000000400100043d000000000461001900000b220000613d000000000703034f0000000008010019000000007907043c0000000008980436000000000048004b00000b1e0000c13d000000000005004b00000b2f0000613d000000000363034f0000000305500210000000000604043300000000065601cf000000000656022f000000000303043b0000010005500089000000000353022f00000000035301cf000000000363019f00000000003404350000006002200210000005000010009c00000500010080410000004001100210000000000121019f000013f90001043000000000050000190000000001000019000000000203041a000000000012004b00000c140000a13d000000000030043f0000053b0110009a000000000201041a000000010320019000000001062002700000007f0660618f0000001f0060008c00000000040000390000000104002039000000000043004b00000d650000c13d000800000005001d000000400400043d0000000007640436000000000003004b000900000007001d000a00000004001d00000b650000613d000700000006001d000000000010043f0000000001000414000005000010009c0000050001008041000000c0011002100000053c011001c7000080100200003913f713f20000040f0000000100200190000004cb0000613d0000000705000029000000000005004b00000b690000613d000000000201043b000000000100001900000009070000290000000003710019000000000402041a000000000043043500000001022000390000002001100039000000000051004b00000b5d0000413d00000b6b0000013d00000569012001970000000000170435000000400140003900000b6d0000013d0000000001000019000000090700002900000000017100190000000a0400002900000000014100490000001f0110003900000568021001970000000001420019000000000021004b00000000020000390000000102004039000005300010009c000005620000213d0000000100200190000005620000c13d000000400010043f0000000002040433000000000002004b000000000312001900000b870000613d000000000400001900000000051400190000000006740019000000000606043300000000006504350000002004400039000000000024004b00000b7e0000413d00000b870000a13d000000000003043500000068040000390000000000430435000005000010009c000005000100804100000040011002100000002002200039000005000020009c00000500020080410000006002200210000000000112019f0000000002000414000005000020009c0000050002008041000000c002200210000000000112019f00000534011001c7000080100200003913f713f20000040f0000000100200190000004cb0000613d000000000101043b000000000201041a000000400100043d00000536030000410000000000310435000005000010009c000005000100804100000040011002100000000003000414000005000030009c0000050003008041000000c003300210000000000113019f00000537011001c7000005270220019713f713f20000040f000000600310027000000500053001980000008004000039000000600300003900000bd50000613d0000001f0350003900000538033001970000003f033000390000053904300197000000400300043d0000000004430019000000000034004b00000000060000390000000106004039000005300040009c000005620000213d0000000100600190000005620000c13d000000400040043f00000000045304360000052f07500198000000000674001900000bc80000613d000000000801034f0000000009040019000000008a08043c0000000009a90436000000000069004b00000bc40000c13d0000001f0550019000000bd50000613d000000000171034f0000000305500210000000000706043300000000075701cf000000000757022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000171019f0000000000160435000000010020019000000d6b0000613d00000000010304330000053a0010009c000004cb0000213d000000200010008c000004cb0000413d0000000001040433000005270010009c000004cb0000213d000700000001001d000000400200043d0000000a010000290000000001010433000000000001004b000000000321001900000bf10000613d0000000004000019000000090700002900000000052400190000000006740019000000000606043300000000006504350000002004400039000000000014004b00000be80000413d00000bf10000a13d000000000003043500000069040000390000000000430435000005000020009c000005000200804100000040022002100000002001100039000005000010009c00000500010080410000006001100210000000000121019f0000000002000414000005000020009c0000050002008041000000c002200210000000000112019f00000534011001c7000080100200003913f713f20000040f00000001002001900000000702000029000004cb0000613d000000000101043b000000000101041a0000052701100197000000000012004b00000c810000c13d0000000801000029000005000010009c000000670300003900000c1a0000613d00000001011000390000050005100197000000060050006c00000b370000413d0000029c0000013d0000056101000041000000000010043f0000003201000039000000040010043f0000052e01000041000013f9000104300000056101000041000000000010043f0000001101000039000000040010043f0000052e01000041000013f9000104300000006601000039000000000201041a000000400300043d000a00000003001d00000541010000410000000000130435000005000030009c0000050001000041000000000103401900000040011002100000000003000414000005000030009c0000050003008041000000c003300210000000000113019f00000537011001c7000005270220019713f713f20000040f00000060031002700000050003300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000a0b0000290000000a0570002900000c420000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b00000c3e0000c13d000000000006004b00000c4f0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000010020019000000c8b0000613d0000001f01400039000000600210018f0000000001b20019000000000021004b00000000020000390000000102004039000005300010009c000005620000213d0000000100200190000005620000c13d000000400010043f000000200030008c000004cb0000413d00000000020b0433000a00000002001d000005270020009c000004cb0000213d0000053e0010009c000005620000213d0000004002100039000000400020043f0000001002000039000000000121043600000542020000410000000000210435000000400100043d0000000000210435000000100210003900000069030000390000000000320435000005000010009c000005000100804100000040011002100000000002000414000005000020009c0000050002008041000000c002200210000000000121019f00000543011001c7000080100200003913f713f20000040f0000000100200190000004cb0000613d000000000101043b000000000101041a0000000a0110014f0000052700100198000002bb0000613d000000400100043d00000064021000390000056403000041000000000032043500000044021000390000056503000041000000000032043500000024021000390000002a03000039000005360000013d0000001f0530018f0000052f06300198000000400200043d000000000462001900000cdd0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000c920000c13d00000cdd0000013d00000064021000390000054503000041000000000032043500000044021000390000054603000041000000000032043500000024021000390000002403000039000005360000013d000000400100043d00000064021000390000055a03000041000000000032043500000044021000390000055b03000041000000000032043500000024021000390000002903000039000005360000013d000000400100043d00000064021000390000055d03000041000000000032043500000044021000390000055e03000041000000000032043500000024021000390000002503000039000005360000013d00000044012000390000055803000041000000000031043500000024012000390000001a03000039000000000031043500000501010000410000000000120435000000040120003900000020030000390000000000310435000005000020009c0000050002008041000000400120021000000533011001c7000013f90001043000000064014000390000055f0200004100000000002104350000004401400039000005600200004100000000002104350000002401400039000000250200003900000000002104350000050101000041000000000014043500000004014000390000002002000039000006090000013d0000001f0530018f0000052f06300198000000400200043d000000000462001900000cdd0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000cd90000c13d000000000005004b00000cea0000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f0000000000140435000000600130021000000b0f0000013d00000060061002700000001f0460018f0000052f05600198000000400200043d000000000352001900000b000000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000038004b00000cf40000c13d00000b000000013d00000060061002700000001f0460018f0000052f05600198000000400200043d000000000352001900000b000000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000038004b00000d010000c13d00000b000000013d000000800100003913f710410000040f0000000a020000290000052702200197000000000301041a0000053d03300197000000000223019f000000000021041b000000090100002913f713290000040f000a00000001001d000000800100003913f710680000040f000000700000013d0000004401200039000005350300004100000000003104350000002401200039000000130300003900000cb90000013d0000001f0340003900000538033001970000003f033000390000053905300197000000400300043d0000000005530019000000000035004b00000000060000390000000106004039000005300050009c000005620000213d0000000100600190000005620000c13d000000400050043f0000001f0540018f00000000074304360000052f06400198000a00000007001d000000000467001900000d340000613d000000000701034f0000000a08000029000000007907043c0000000008980436000000000048004b00000d300000c13d000000000005004b00000d410000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f0000000000140435000000010020019000000d6b0000613d00000000010304330000053a0010009c0000000a02000029000004cb0000213d000000200010008c000004cb0000413d0000000001020433000a00000001001d000005270010009c000004cb0000213d0000006702000039000000000102041a000005300010009c000005620000213d0000000103100039000000000032041b000000000020043f000000800200043d000600000002001d000005300020009c000005620000213d0000053b0110009a000500000001001d000000000101041a000000010010019000000001021002700000007f0220618f000400000002001d0000001f0020008c00000000020000390000000102002039000000000121013f000000010010019000000d750000613d0000056101000041000000000010043f0000002201000039000000040010043f0000052e01000041000013f900010430000000400100043d00000064021000390000056203000041000000000032043500000044021000390000056303000041000000000032043500000024021000390000002203000039000005360000013d0000000401000029000000200010008c00000d940000413d0000000501000029000000000010043f0000000001000414000005000010009c0000050001008041000000c0011002100000053c011001c7000080100200003913f713f20000040f0000000100200190000004cb0000613d00000006030000290000001f023000390000000502200270000000200030008c0000000002004019000000000301043b00000004010000290000001f01100039000000050110027000000000011300190000000002230019000000000012004b00000d940000813d000000000002041b0000000102200039000000000012004b00000d900000413d0000000601000029000000200010008c00000da80000413d0000000501000029000000000010043f0000000001000414000005000010009c0000050001008041000000c0011002100000053c011001c7000080100200003913f713f20000040f0000000100200190000004cb0000613d000000200200008a0000000602200180000000000101043b00000db40000c13d000000200300003900000dc00000013d000000060000006b000000000100001900000dac0000613d000000a00100043d000000060400002900000003024002100000056b0220027f0000056b02200167000000000121016f0000000102400210000000000121019f00000dce0000013d000000010320008a000000050330027000000000043100190000002003000039000000010440003900000080053000390000000005050433000000000051041b00000020033000390000000101100039000000000041004b00000db90000c13d000000060020006c00000dcb0000813d00000006020000290000000302200210000000f80220018f0000056b0220027f0000056b0220016700000080033000390000000003030433000000000223016f000000000021041b0000000601000029000000010110021000000001011001bf0000000502000029000000000012041b000000400200043d000000800100043d000000000001004b000000000321001900000ddf0000613d00000000040000190000000005240019000000a006400039000000000606043300000000006504350000002004400039000000000014004b00000dd60000413d00000ddf0000a13d000000000003043500000068040000390000000000430435000005000020009c000005000200804100000040022002100000002001100039000005000010009c00000500010080410000006001100210000000000121019f0000000002000414000005000020009c0000050002008041000000c002200210000000000112019f00000534011001c7000080100200003913f713f20000040f0000000100200190000004cb0000613d0000000902000029000905270020019b000000000101043b000000000201041a0000053d0220019700000009022001af000000000021041b000000400200043d000000800100043d000000000001004b000000000321001900000e090000613d00000000040000190000000005240019000000a006400039000000000606043300000000006504350000002004400039000000000014004b00000e000000413d00000e090000a13d000000000003043500000069040000390000000000430435000005000020009c000005000200804100000040022002100000002001100039000005000010009c00000500010080410000006001100210000000000121019f0000000002000414000005000020009c0000050002008041000000c002200210000000000112019f00000534011001c7000080100200003913f713f20000040f0000000100200190000004cb0000613d0000000a020000290000052702200197000000000101043b000000000301041a0000053d03300197000000000223019f000000000021041b000000080100002913f713290000040f000000400200043d000a00000001001d000000800100043d000000000001004b000000000321001900000e360000613d00000000040000190000000005240019000000a006400039000000000606043300000000006504350000002004400039000000000014004b00000e2d0000413d00000e360000a13d00000000000304350000006a040000390000000000430435000005000020009c000005000200804100000040022002100000002001100039000005000010009c00000500010080410000006001100210000000000121019f0000000002000414000005000020009c0000050002008041000000c002200210000000000112019f00000534011001c7000080100200003913f713f20000040f0000000100200190000004cb0000613d000000000101043b0000000a02000029000000000021041b000000400200043d000000800100043d000000000001004b000000000321001900000e5c0000613d00000000040000190000000005240019000000a006400039000000000606043300000000006504350000002004400039000000000014004b00000e530000413d00000e5c0000a13d00000000000304350000006a040000390000000000430435000005000020009c000005000200804100000040022002100000002001100039000005000010009c00000500010080410000006001100210000000000121019f0000000002000414000005000020009c0000050002008041000000c002200210000000000112019f00000534011001c7000080100200003913f713f20000040f0000000100200190000004cb0000613d000000400200043d000000000301043b000000800100043d000000000001004b000000000421001900000e800000613d00000000050000190000000006250019000000a007500039000000000707043300000000007604350000002005500039000000000015004b00000e770000413d00000e800000a13d0000000000040435000000000303041a000a00000003001d0000006b030000390000000000340435000005000020009c000005000200804100000040022002100000002001100039000005000010009c00000500010080410000006001100210000000000121019f0000000002000414000005000020009c0000050002008041000000c002200210000000000112019f00000534011001c7000080100200003913f713f20000040f0000000100200190000004cb0000613d000000000101043b0000000a02000029000000000021041b000000400200043d0000053e0020009c000005620000213d0000004001200039000000400010043f00000020012000390000053f0300004100000000003104350000000d010000390000000000120435000000800100003913f7129a0000040f000000000001004b000002f30000613d0000006601000039000000000101041a0000052b0200004100000000002004430000052701100197000a00000001001d00000004001004430000000001000414000005000010009c0000050001008041000000c0011002100000052c011001c7000080020200003913f713f20000040f000000010020019000000f860000613d000000000101043b000000000001004b000004cb0000613d000000400300043d00000540010000410000000000130435000000040130003900000009020000290000000000210435000005000030009c000800000003001d0000050001000041000000000103401900090040001002180000000001000414000005000010009c0000050001008041000000c00110021000000009011001af0000052e011001c70000000a0200002913f713ed0000040f000000010020019000000f870000613d0000000801000029000005300010009c000005620000213d0000000803000029000000400030043f0000006601000039000000000201041a000005410100004100000000001304350000000001000414000005000010009c0000050001008041000000c00110021000000009011001af00000537011001c7000005270220019713f713f20000040f00000060031002700000050003300197000000200030008c000000200400003900000000040340190000001f0640018f0000002007400190000000080570002900000eef0000613d000000000801034f0000000809000029000000008a08043c0000000009a90436000000000059004b00000eeb0000c13d000000000006004b00000efc0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000010020019000000f940000613d0000001f01400039000000600110018f0000000801100029000005300010009c000005620000213d000000400010043f000000200030008c000004cb0000413d00000008020000290000000002020433000a00000002001d000005270020009c000004cb0000213d0000053e0010009c000005620000213d0000004002100039000000400020043f0000001002000039000000000121043600000542020000410000000000210435000000400100043d0000000000210435000000100210003900000069030000390000000000320435000005000010009c000005000100804100000040011002100000000002000414000005000020009c0000050002008041000000c002200210000000000121019f00000543011001c7000080100200003913f713f20000040f0000000100200190000004cb0000613d000000000101043b000000000201041a0000053d022001970000000a022001af000000000021041b000000070100002913f713290000040f000a00000001001d000000400100043d0000053e0010009c000005620000213d0000004002100039000000400020043f0000001002000039000000000121043600000542020000410000000000210435000000400100043d000000000021043500000010021000390000006a030000390000000000320435000005000010009c000005000100804100000040011002100000000002000414000005000020009c0000050002008041000000c002200210000000000121019f00000543011001c7000080100200003913f713f20000040f0000000100200190000004cb0000613d000000000101043b0000000a02000029000000000021041b000000400100043d0000053e0010009c000005620000213d0000004002100039000000400020043f0000001002000039000000000121043600000542020000410000000000210435000000400100043d000000000021043500000010021000390000006a030000390000000000320435000005000010009c000005000100804100000040011002100000000002000414000005000020009c0000050002008041000000c002200210000000000121019f00000543011001c7000080100200003913f713f20000040f0000000100200190000004cb0000613d000000000201043b000000400100043d0000053e0010009c000005620000213d000000000202041a000a00000002001d0000004002100039000000400020043f0000001002000039000000000121043600000542020000410000000000210435000000400100043d000000000021043500000010021000390000006b030000390000000000320435000005000010009c000005000100804100000040011002100000000002000414000005000020009c0000050002008041000000c002200210000000000121019f00000543011001c7000080100200003913f713f20000040f0000000100200190000004cb0000613d000000000101043b000000700000013d000000000001042f00000060061002700000001f0460018f0000052f05600198000000400200043d000000000352001900000b000000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000038004b00000f8f0000c13d00000b000000013d0000001f0530018f0000052f06300198000000400200043d000000000462001900000cdd0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000f9b0000c13d00000cdd0000013d00000000030100190000001f01100039000000000021004b0000000004000019000005550400404100000555052001970000055501100197000000000651013f000000000051004b00000000010000190000055501002041000005550060009c000000000104c019000000000001004b00000fe80000613d0000000105000367000000000135034f000000000401043b000005660040009c00000fe20000813d0000001f0140003900000568011001970000003f011000390000056807100197000000400100043d0000000007710019000000000017004b00000000080000390000000108004039000005300070009c00000fe20000213d000000010080019000000fe20000c13d0000002008300039000000400070043f00000000034104360000000007840019000000000027004b00000fe80000213d000000000585034f00000568064001980000001f0740018f000000000263001900000fd20000613d000000000805034f0000000009030019000000008a08043c0000000009a90436000000000029004b00000fce0000c13d000000000007004b00000fdf0000613d000000000565034f0000000306700210000000000702043300000000076701cf000000000767022f000000000505043b0000010006600089000000000565022f00000000056501cf000000000575019f000000000052043500000000024300190000000000020435000000000001042d0000056101000041000000000010043f0000004101000039000000040010043f0000052e01000041000013f9000104300000000001000019000013f900010430000000000003004b00000ff70000613d000000000400001900000000052400190000000006140019000000000606043300000000006504350000002004400039000000000034004b00000fed0000413d00000ff70000a13d00000000012300190000000000010435000000000001042d0000053a0010009c000010390000213d0000000002010019000000230010008c000010390000a13d00000001040003670000000401400370000000000501043b000005300050009c000010390000213d0000002301500039000000000021004b000010390000813d0000000406500039000000000164034f000000000301043b000005660030009c0000103b0000813d0000001f0130003900000568011001970000003f011000390000056808100197000000400100043d0000000008810019000000000018004b00000000090000390000000109004039000005300080009c0000103b0000213d00000001009001900000103b0000c13d0000002409500039000000400080043f00000000053104360000000008930019000000000028004b000010390000213d0000002002600039000000000424034f00000568063001980000001f0730018f0000000002650019000010290000613d000000000804034f0000000009050019000000008a08043c0000000009a90436000000000029004b000010250000c13d000000000007004b000010360000613d000000000464034f0000000306700210000000000702043300000000076701cf000000000767022f000000000404043b0000010006600089000000000464022f00000000046401cf000000000474019f000000000042043500000000023500190000000000020435000000000001042d0000000001000019000013f9000104300000056101000041000000000010043f0000004101000039000000040010043f0000052e01000041000013f900010430000000400200043d0000000041010434000000000001004b0000000003210019000010500000613d000000000500001900000000062500190000000007540019000000000707043300000000007604350000002005500039000000000015004b000010470000413d000010500000a13d000000000003043500000069040000390000000000430435000005000020009c000005000200804100000040022002100000002001100039000005000010009c00000500010080410000006001100210000000000121019f0000000002000414000005000020009c0000050002008041000000c002200210000000000112019f00000534011001c7000080100200003913f713f20000040f0000000100200190000010660000613d000000000101043b000000000001042d0000000001000019000013f900010430000000400200043d0000000041010434000000000001004b0000000003210019000010770000613d000000000500001900000000062500190000000007540019000000000707043300000000007604350000002005500039000000000015004b0000106e0000413d000010770000a13d00000000000304350000006a040000390000000000430435000005000020009c000005000200804100000040022002100000002001100039000005000010009c00000500010080410000006001100210000000000121019f0000000002000414000005000020009c0000050002008041000000c002200210000000000112019f00000534011001c7000080100200003913f713f20000040f00000001002001900000108d0000613d000000000101043b000000000001042d0000000001000019000013f900010430000000400200043d0000000041010434000000000001004b00000000032100190000109e0000613d000000000500001900000000062500190000000007540019000000000707043300000000007604350000002005500039000000000015004b000010950000413d0000109e0000a13d00000000000304350000006b040000390000000000430435000005000020009c000005000200804100000040022002100000002001100039000005000010009c00000500010080410000006001100210000000000121019f0000000002000414000005000020009c0000050002008041000000c002200210000000000112019f00000534011001c7000080100200003913f713f20000040f0000000100200190000010b40000613d000000000101043b000000000001042d0000000001000019000013f9000104300000003301000039000000000101041a00000527011001970000000002000411000000000021004b000010bd0000c13d000000000001042d000000400100043d0000004402100039000005320300004100000000003204350000050102000041000000000021043500000024021000390000002003000039000000000032043500000004021000390000000000320435000005000010009c0000050001008041000000400110021000000533011001c7000013f90001043000000527061001970000003301000039000000000201041a0000053d03200197000000000363019f000000000031041b000000400100043d000005000010009c000005000100804100000040011002100000000003000414000005000030009c0000050003008041000000c003300210000000000113019f000005270520019700000534011001c70000800d0200003900000003030000390000054a0400004113f713ed0000040f0000000100200190000010e50000613d000000000001042d0000000001000019000013f90001043000050000000000020000006703000039000000000103041a000100000001001d000000000001004b000011ca0000613d00000000050000190000000001000019000000000203041a000000000012004b000012560000a13d000000000030043f0000053b0110009a000000000201041a000000010320019000000001062002700000007f0660618f0000001f0060008c00000000040000390000000104002039000000000043004b0000125c0000c13d000200000005001d000000400500043d0000000007650436000000000003004b000400000007001d000500000005001d0000111f0000613d000300000006001d000000000010043f0000000001000414000005000010009c0000050001008041000000c0011002100000053c011001c7000080100200003913f713f20000040f00000001002001900000124e0000613d0000000306000029000000000006004b0000000505000029000011230000613d000000000201043b000000000100001900000004070000290000000003710019000000000402041a000000000043043500000001022000390000002001100039000000000061004b000011160000413d0000000001710019000011250000013d000005690120019700000000001704350000004001500039000011250000013d0000000407000029000000000170001900000000015100490000001f0110003900000568021001970000000001520019000000000021004b00000000020000390000000102004039000005300010009c000012500000213d0000000100200190000012500000c13d000000400010043f0000000002050433000000000002004b00000000031200190000113f0000613d000000000400001900000000051400190000000006740019000000000606043300000000006504350000002004400039000000000024004b000011360000413d0000113f0000a13d000000000003043500000068040000390000000000430435000005000010009c000005000100804100000040011002100000002002200039000005000020009c00000500020080410000006002200210000000000112019f0000000002000414000005000020009c0000050002008041000000c002200210000000000112019f00000534011001c7000080100200003913f713f20000040f00000001002001900000124e0000613d000000000101043b000000000201041a000000400100043d00000536030000410000000000310435000005000010009c000005000100804100000040011002100000000003000414000005000030009c0000050003008041000000c003300210000000000113019f00000537011001c7000005270220019713f713f20000040f00000060031002700000050005300198000000800400003900000060030000390000118d0000613d0000001f0350003900000538033001970000003f033000390000053904300197000000400300043d0000000004430019000000000034004b00000000060000390000000106004039000005300040009c000012500000213d0000000100600190000012500000c13d000000400040043f00000000045304360000052f075001980000000006740019000011800000613d000000000801034f0000000009040019000000008a08043c0000000009a90436000000000069004b0000117c0000c13d0000001f055001900000118d0000613d000000000171034f0000000305500210000000000706043300000000075701cf000000000757022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000171019f00000000001604350000000100200190000012620000613d00000000010304330000053a0010009c0000124e0000213d000000200010008c0000124e0000413d0000000001040433000300000001001d000005270010009c0000124e0000213d000000400200043d00000005010000290000000001010433000000000001004b0000000003210019000011a90000613d0000000004000019000000040700002900000000052400190000000006740019000000000606043300000000006504350000002004400039000000000014004b000011a00000413d000011a90000a13d000000000003043500000069040000390000000000430435000005000020009c000005000200804100000040022002100000002001100039000005000010009c00000500010080410000006001100210000000000121019f0000000002000414000005000020009c0000050002008041000000c002200210000000000112019f00000534011001c7000080100200003913f713f20000040f00000001002001900000124e0000613d000000000101043b000000000101041a0000052701100197000000030010006b0000124a0000c13d0000000201000029000005000010009c000012760000613d00000001011000390000050005100197000000010050006c0000006703000039000010ef0000413d000000400100043d0000053e0010009c000012500000213d0000004002100039000000400020043f0000000d0200003900000000012104360000053f020000410000000000210435000000400100043d00000000002104350000000d0210003900000068030000390000000000320435000005000010009c000005000100804100000040011002100000000002000414000005000020009c0000050002008041000000c002200210000000000121019f00000559011001c7000080100200003913f713f20000040f00000001002001900000124e0000613d000000000101043b000000000101041a00000527001001980000124c0000613d0000006601000039000000000201041a000000400300043d000500000003001d00000541010000410000000000130435000005000030009c0000050001000041000000000103401900000040011002100000000003000414000005000030009c0000050003008041000000c003300210000000000113019f00000537011001c7000005270220019713f713f20000040f000000050b00002900000060031002700000050003300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b00190000120b0000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b000012070000c13d000000000006004b000012180000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f000000000065043500000001002001900000127c0000613d0000001f01400039000000600210018f0000000001b20019000000000021004b00000000020000390000000102004039000005300010009c000012500000213d0000000100200190000012500000c13d000000400010043f000000200030008c0000124e0000413d00000000020b0433000500000002001d000005270020009c0000124e0000213d0000053e0010009c000012500000213d0000004002100039000000400020043f0000001002000039000000000121043600000542020000410000000000210435000000400100043d0000000000210435000000100210003900000069030000390000000000320435000005000010009c000005000100804100000040011002100000000002000414000005000020009c0000050002008041000000c002200210000000000121019f00000543011001c7000080100200003913f713f20000040f00000001002001900000124e0000613d000000000101043b000000000101041a000000050110014f00000527001001980000124c0000613d0000000101000039000000000001042d0000000001000019000000000001042d0000000001000019000013f9000104300000056101000041000000000010043f0000004101000039000000040010043f0000052e01000041000013f9000104300000056101000041000000000010043f0000003201000039000000040010043f0000052e01000041000013f9000104300000056101000041000000000010043f0000002201000039000000040010043f0000052e01000041000013f900010430000000400100043d00000064021000390000056203000041000000000032043500000044021000390000056303000041000000000032043500000024021000390000002203000039000000000032043500000501020000410000000000210435000000040210003900000020030000390000000000320435000005000010009c0000050001008041000000400110021000000547011001c7000013f9000104300000056101000041000000000010043f0000001101000039000000040010043f0000052e01000041000013f9000104300000001f0530018f0000052f06300198000000400200043d0000000004620019000012870000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000012830000c13d000000000005004b000012940000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000005000020009c00000500020080410000004002200210000000000112019f000013f9000104300002000000000002000200000002001d000000400200043d00000020032000390000000041010434000000000001004b000012ac0000613d000000000500001900000000063500190000000007540019000000000707043300000000007604350000002005500039000000000015004b000012a20000413d000012ac0000a13d0000000004310019000000000004043500000000001204350000003f0110003900000568041001970000000001240019000000000041004b00000000040000390000000104004039000005300010009c000013000000213d0000000100400190000013000000c13d000000400010043f000005000030009c000005000300804100000040013002100000000002020433000005000020009c00000500020080410000006002200210000000000112019f0000000002000414000005000020009c0000050002008041000000c002200210000000000112019f00000534011001c7000080100200003913f713f20000040f0000000100200190000013060000613d000000400200043d0000002003200039000000000101043b000100000001001d00000002010000290000000041010434000000000001004b000012dd0000613d000000000500001900000000063500190000000007540019000000000707043300000000007604350000002005500039000000000015004b000012d30000413d000012dd0000a13d0000000004310019000000000004043500000000001204350000003f0110003900000568041001970000000001240019000000000041004b00000000040000390000000104004039000005300010009c000013000000213d0000000100400190000013000000c13d000000400010043f000005000030009c000005000300804100000040013002100000000002020433000005000020009c00000500020080410000006002200210000000000112019f0000000002000414000005000020009c0000050002008041000000c002200210000000000112019f00000534011001c7000080100200003913f713f20000040f0000000100200190000013060000613d000000000101043b000000010010006b00000000010000390000000101006039000000000001042d0000056101000041000000000010043f0000004101000039000000040010043f0000052e01000041000013f9000104300000000001000019000013f900010430000000400210003900000553030000410000000000320435000000200210003900000011030000390000000000320435000000200200003900000000002104350000006001100039000000000001042d000000000001004b000013150000613d000000000001042d000000400100043d00000064021000390000054503000041000000000032043500000044021000390000054603000041000000000032043500000024021000390000002403000039000000000032043500000501020000410000000000210435000000040210003900000020030000390000000000320435000005000010009c0000050001008041000000400110021000000547011001c7000013f900010430000000400500043d0000000024010434000000020640008c000013b10000413d0000056c0050009c000013ab0000813d0000004003500039000000400030043f0000000203000039000000000735043600000000030000310000000103300367000000000803043b000000000087043500000000080600190000000009010433000000000089004b0000139f0000a13d0000000009680049000000000a05043300000000009a004b0000139f0000a13d0000000009790019000000000a820019000000000a0a04330000056d0aa00197000000000b0904330000056e0bb00197000000000aab019f0000000000a904350000000108800039000000000048004b000013380000413d0000000005050433000000030650021000000010066000890000056f0660021f000000020050008c0000056f060080410000000005070433000000000556016f000000f0055002700000fffe0650015f000000010060008c000013a50000a13d00000002065000390000ffff0660018f000000000064004b000013c10000413d000000000554004b000013a50000413d000000020450008c000013a50000413d000005300040009c000013ab0000213d0000001d0550003900000568075001970000003f057000390000056806500197000000400500043d0000000006650019000000000056004b00000000080000390000000108004039000005300060009c000013ab0000213d0000000100800190000013ab0000c13d000000400060043f0000000006450436000000000007004b000013770000613d00000000077600190000000008060019000000003903043c0000000008980436000000000078004b000013730000c13d000000000004004b0000138b0000613d00000000030000190000000007010433000000000037004b0000139f0000a13d0000000007050433000000000037004b0000139f0000a13d000000000732001900000000070704330000056d07700197000000000863001900000000090804330000056e09900197000000000779019f00000000007804350000000103300039000000000043004b0000137a0000413d000005000060009c000005000600804100000040016002100000000002050433000005000020009c00000500020080410000006002200210000000000112019f0000000002000414000005000020009c0000050002008041000000c002200210000000000112019f00000534011001c7000080100200003913f713f20000040f0000000100200190000013d50000613d000000000101043b000000000001042d0000056101000041000000000010043f0000003201000039000000040010043f0000052e01000041000013f9000104300000056101000041000000000010043f0000001101000039000000040010043f0000052e01000041000013f9000104300000056101000041000000000010043f0000004101000039000000040010043f0000052e01000041000013f90001043000000044015000390000057202000041000000000021043500000024015000390000001602000039000000000021043500000501010000410000000000150435000000040150003900000020020000390000000000210435000005000050009c0000050005008041000000400150021000000533011001c7000013f900010430000000400100043d00000064021000390000057003000041000000000032043500000044021000390000057103000041000000000032043500000024021000390000002303000039000000000032043500000501020000410000000000210435000000040210003900000020030000390000000000320435000005000010009c0000050001008041000000400110021000000547011001c7000013f9000104300000000001000019000013f900010430000000000001042f000005000010009c00000500010080410000004001100210000005000020009c00000500020080410000006002200210000000000112019f0000000002000414000005000020009c0000050002008041000000c002200210000000000112019f00000534011001c7000080100200003913f713f20000040f0000000100200190000013eb0000613d000000000101043b000000000001042d0000000001000019000013f900010430000013f0002104210000000102000039000000000001042d0000000002000019000000000001042d000013f5002104230000000102000039000000000001042d0000000002000019000000000001042d000013f700000432000013f80001042e000013f9000104300000000000000000000000000000000001000061109999afbad0f27a213892b5b585553d3ec7dff99b6d4259415a2e4200000000000000000000000000000000000000000000000000000000ffffffff08c379a000000000000000000000000000000000000000000000000000000000496e697469616c697a61626c653a20636f6e747261637420697320696e697469616c697a696e6700000000000000000000000000000000000000000000000000000000000000000000000000000000000000008400000080000000000000000002000000000000000000000000000000000000200000008000000000000000007f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249800000002000000000000000000000000000000400000010000000000000000000000000000000000000000000000000000000000000000000000000081d445f500000000000000000000000000000000000000000000000000000000972b839f00000000000000000000000000000000000000000000000000000000d90e09c500000000000000000000000000000000000000000000000000000000d90e09c600000000000000000000000000000000000000000000000000000000da0d962a00000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000972b83a000000000000000000000000000000000000000000000000000000000c554ddc300000000000000000000000000000000000000000000000000000000cf6f3172000000000000000000000000000000000000000000000000000000008af35e9f000000000000000000000000000000000000000000000000000000008af35ea0000000000000000000000000000000000000000000000000000000008da5cb5b000000000000000000000000000000000000000000000000000000008dc45d9a0000000000000000000000000000000000000000000000000000000081d445f60000000000000000000000000000000000000000000000000000000083253beb000000000000000000000000000000000000000000000000000000008828dd3b0000000000000000000000000000000000000000000000000000000045d4945200000000000000000000000000000000000000000000000000000000715018a500000000000000000000000000000000000000000000000000000000715018a6000000000000000000000000000000000000000000000000000000008129fc1c000000000000000000000000000000000000000000000000000000008133b9950000000000000000000000000000000000000000000000000000000045d49453000000000000000000000000000000000000000000000000000000005236434c000000000000000000000000000000000000000000000000000000005244cd6e000000000000000000000000000000000000000000000000000000002b4099a0000000000000000000000000000000000000000000000000000000002b4099a1000000000000000000000000000000000000000000000000000000002e5b8f150000000000000000000000000000000000000000000000000000000037df1e9d000000000000000000000000000000000000000000000000000000000af12266000000000000000000000000000000000000000000000000000000000df3915f000000000000000000000000000000000000000000000000000000000f5aa8b6000000000000000000000000ffffffffffffffffffffffffffffffffffffffff4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b8302000002000000000000000000000000000000240000000000000000000000003659cfe600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000000000000000000000000000ffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffff7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657200000000000000000000000000000000000000640000000000000000000000000200000000000000000000000000000000000000000000000000000000000000616c726561647920726567697374657265642e000000000000000000000000005c60da1b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000003ffffffe07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff68781146e01cefedca1b589f9c38fdc134bf06dc0686e99c63a67a6d05cf29520200000000000000000000000000000000000020000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf436c656172696e67686f75736500000000000000000000000000000000000000ebd8f50d000000000000000000000000000000000000000000000000000000009b0861c100000000000000000000000000000000000000000000000000000000436c656172696e67686f7573654c69710000000000000000000000000000000002000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000020000000800000000000000000706c732e000000000000000000000000000000000000000000000000000000006f6e6c79207375626d69747465722063616e207375626d6974206e657720696d0000000000000000000000000000000000000084000000000000000000000000647920696e697469616c697a6564000000000000000000000000000000000000496e697469616c697a61626c653a20636f6e747261637420697320616c7265618be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0000000000000000000000000000000000000000000000000ffffffffffffff7b9c4d535bdea7cd8a978f128b93471df48c7dbab89d703809115bdc118c235bfd02000000000000000000000000000000000000840000000000000000000000006e697469616c697a696e67000000000000000000000000000000000000000000496e697469616c697a61626c653a20636f6e7472616374206973206e6f7420690000000000000000000000000000000000000064000000800000000000000000020000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000008000000000000000007a6b3a206e6f7420737570706f727465640000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffdffdffffffffffffffffffffffffffffffffffffe0000000000000000000000000696e76616c6964206e657720696d706c2070726f76696465642e000000000000020000000000000000000000000000000000002d0000000000000000000000006e6720696d706c732e00000000000000000000000000000000000000000000006e657720696d706c7320646f6e2774206d6174636820776974682070656e64693c54c2de00000000000000000000000000000000000000000000000000000000696d706c2e00000000000000000000000000000000000000000000000000000063757272656e7420696d706c20697320616c726561647920746865206e657720657265642e000000000000000000000000000000000000000000000000000000436c656172696e67686f757365206861736e2774206265656e207265676973744e487b7100000000000000000000000000000000000000000000000000000000792e0000000000000000000000000000000000000000000000000000000000006661696c656420746f20717565727920696d706c206f66207468652070726f78206d696772617465642e000000000000000000000000000000000000000000007374696c6c20686176696e672070656e64696e6720696d706c7320746f2062650000000000000000000000000000000000000000000000010000000000000000756e737570706f7274656420636f6e74726163742e0000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffc0ff0000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000074682e0000000000000000000000000000000000000000000000000000000000696e76616c696420636f64653a206c656e203c2032202b2063626f724c656e67696e76616c696420636f64653a206c656e203c20322e000000000000000000000000000000000000000000000000000000000000000000000000000000000000d36ade1f41748797f9a5aec0b37a8a7d052c5c80091fca2758e1241372ffd81d
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ 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.