Source Code
Overview
ETH Balance
0 ETH
More Info
ContractCreator
Multichain Info
N/A
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Latest 1 internal transaction
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
4067305 | 6 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 Source Code Verified (Exact Match)
Contract Name:
DataStore
Compiler Version
v0.8.28+commit.7893614a
ZkSolc Version
v1.5.7
Optimization Enabled:
Yes with Mode 3
Other Settings:
cancun EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "./DataTypes.sol"; import {IDataStore, ID} from "./IDataStore.sol"; import {GameRegistryConsumer} from "../core/GameRegistryConsumer.sol"; import {GAME_LOGIC_CONTRACT_ROLE} from "../constants/RoleConstants.sol"; contract DataStore is IDataStore, GameRegistryConsumer { using DataTypes for *; mapping(uint256 => mapping(uint256 => bytes32)) public datastore; mapping(uint256 => mapping(uint256 => bytes32[])) public arrayStore; mapping(uint256 => mapping(uint256 => string)) private stringStore; mapping(uint256 => bytes32) public columnTypes; constructor(address gameRegistryAddress) GameRegistryConsumer(gameRegistryAddress, ID) {} function generateKey(uint256 docId, uint256 colId) public pure returns (uint256) { return uint256(keccak256(abi.encodePacked(docId, colId))); } function generateArrayKey (uint256 docId, uint256 colId) public pure returns (uint256) { return uint256(keccak256(abi.encodePacked(docId, colId, "__array"))); } function setValue(uint256 tableId, uint256 docId, uint256 colId, bytes32 value) public onlyRole(GAME_LOGIC_CONTRACT_ROLE) { datastore[tableId][uint256(keccak256(abi.encodePacked(docId, colId)))] = value; emit ValueSet(tableId, docId, colId, value); } function setArrayValue(uint256 tableId, uint256 docId, uint256 colId, bytes32[] memory value) public onlyRole(GAME_LOGIC_CONTRACT_ROLE) { arrayStore[tableId][generateArrayKey(docId, colId)] = value; emit ArrayValueSet(tableId, docId, colId, value); } function setUint256ArrayValue(uint256 tableId, uint256 docId, uint256 colId, uint256[] memory value) public onlyRole(GAME_LOGIC_CONTRACT_ROLE) { require (getColumnType(colId) == IDataStore.ColumnType.UINT256, "Column is not UINT256ARRAY"); bytes32[] memory packedValues = new bytes32[](value.length); for (uint256 i = 0; i < value.length; i++) { packedValues[i] = value[i].packUint256(); } setArrayValue(tableId, docId, colId, packedValues); } function setBoolArrayValue(uint256 tableId, uint256 docId, uint256 colId, bool[] memory value) public onlyRole(GAME_LOGIC_CONTRACT_ROLE) { require (getColumnType(colId) == IDataStore.ColumnType.BOOL, "Column is not BOOLARRAY"); bytes32[] memory packedValues = new bytes32[](value.length); for (uint256 i = 0; i < value.length; i++) { packedValues[i] = value[i].packBool(); } setArrayValue(tableId, docId, colId, packedValues); } function setAddressArrayValue(uint256 tableId, uint256 docId, uint256 colId, address[] memory value) public onlyRole(GAME_LOGIC_CONTRACT_ROLE) { require (getColumnType(colId) == IDataStore.ColumnType.ADDRESS, "Column is not ADDRESSARRAY"); bytes32[] memory packedValues = new bytes32[](value.length); for (uint256 i = 0; i < value.length; i++) { packedValues[i] = value[i].packAddress(); } setArrayValue(tableId, docId, colId, packedValues); } function getUint256Array(uint256 tableId, uint256 docId, uint256 colId) public view returns (uint256[] memory) { require (getColumnType(colId) == IDataStore.ColumnType.UINT256, "Column is not UINT256"); bytes32[] memory byteArray = arrayStore[tableId][generateArrayKey(docId, colId)]; uint256[] memory uintArray = new uint256[](byteArray.length); for (uint256 i = 0; i < byteArray.length; i++) { uintArray[i] = byteArray[i].unpackUint256(); } return uintArray; } function getBoolArray(uint256 tableId, uint256 docId, uint256 colId) public view returns (bool[] memory) { require (getColumnType(colId) == IDataStore.ColumnType.BOOL, "Column is not BOOL"); bytes32[] memory byteArray = arrayStore[tableId][generateArrayKey(docId, colId)]; bool[] memory boolArray = new bool[](byteArray.length); for (uint256 i = 0; i < byteArray.length; i++) { boolArray[i] = byteArray[i].unpackBool(); } return boolArray; } function getAddressArray(uint256 tableId, uint256 docId, uint256 colId) public view returns (address[] memory) { require (getColumnType(colId) == IDataStore.ColumnType.ADDRESS, "Column is not ADDRESS"); bytes32[] memory byteArray = arrayStore[tableId][generateArrayKey(docId, colId)]; address[] memory addressArray = new address[](byteArray.length); for (uint256 i = 0; i < byteArray.length; i++) { addressArray[i] = byteArray[i].unpackAddress(); } return addressArray; } function getValue(uint256 tableId, uint256 docId, uint256 colId) public view returns (bytes32) { return datastore[tableId][uint256(keccak256(abi.encodePacked(docId, colId)))]; } function setColumnType(uint256 colId, IDataStore.ColumnType columnType) public onlyRole(GAME_LOGIC_CONTRACT_ROLE) { require(!isColumnTypeSet(colId), "Column type already set"); columnTypes[colId] = bytes32(uint256(columnType)); emit ColumnTypeSet(colId, columnType); } function isColumnTypeSet(uint256 colId) public view returns (bool) { return columnTypes[colId] != bytes32(0); } function getColumnType(uint256 colId) public view returns (IDataStore.ColumnType) { bytes32 typeValue = columnTypes[colId]; require(typeValue != bytes32(0), "Column type not set"); return IDataStore.ColumnType(uint8(uint256(typeValue))); } // Type-specific setters function setUint256(uint256 tableId, uint256 docId, uint256 colId, uint256 value) public onlyRole(GAME_LOGIC_CONTRACT_ROLE){ require(getColumnType(colId) == IDataStore.ColumnType.UINT256, "Column is not UINT256"); setValue(tableId, docId, colId, value.packUint256()); } function setInt256(uint256 tableId, uint256 docId, uint256 colId, int256 value) public onlyRole(GAME_LOGIC_CONTRACT_ROLE){ require(getColumnType(colId) == IDataStore.ColumnType.INT256, "Column is not INT256"); setValue(tableId, docId, colId, value.packInt256()); } function setBool(uint256 tableId, uint256 docId, uint256 colId, bool value) public onlyRole(GAME_LOGIC_CONTRACT_ROLE){ require(getColumnType(colId) == IDataStore.ColumnType.BOOL, "Column is not BOOL"); setValue(tableId, docId, colId, value.packBool()); } function setAddress(uint256 tableId, uint256 docId, uint256 colId, address value) public onlyRole(GAME_LOGIC_CONTRACT_ROLE){ require(getColumnType(colId) == IDataStore.ColumnType.ADDRESS, "Column is not ADDRESS"); setValue(tableId, docId, colId, value.packAddress()); } function setBytes32(uint256 tableId, uint256 docId, uint256 colId, bytes32 value) public onlyRole(GAME_LOGIC_CONTRACT_ROLE){ require(getColumnType(colId) == IDataStore.ColumnType.BYTES32, "Column is not BYTES32"); setValue(tableId, docId, colId, value); } function setString(uint256 tableId, uint256 docId, uint256 colId, string memory value) public onlyRole(GAME_LOGIC_CONTRACT_ROLE){ require(getColumnType(colId) == IDataStore.ColumnType.STRING, "Column is not STRING"); uint256 key = generateKey(docId, colId); stringStore[tableId][key] = value; emit StringValueSet(tableId, docId, colId, value); } function deleteValue(uint256 tableId, uint256 docId, uint256 colId) public onlyRole(GAME_LOGIC_CONTRACT_ROLE){ uint256 key = generateKey(docId, colId); delete datastore[tableId][key]; } // Type-specific getters function getUint256(uint256 tableId, uint256 docId, uint256 colId) public view returns (uint256) { require(getColumnType(colId) == IDataStore.ColumnType.UINT256, "Column is not UINT256"); return getValue(tableId, docId, colId).unpackUint256(); } function getInt256(uint256 tableId, uint256 docId, uint256 colId) public view returns (int256) { require(getColumnType(colId) == IDataStore.ColumnType.INT256, "Column is not INT256"); return getValue(tableId, docId, colId).unpackInt256(); } function getBool(uint256 tableId, uint256 docId, uint256 colId) public view returns (bool) { require(getColumnType(colId) == IDataStore.ColumnType.BOOL, "Column is not BOOL"); return getValue(tableId, docId, colId).unpackBool(); } function getAddress(uint256 tableId, uint256 docId, uint256 colId) public view returns (address) { require(getColumnType(colId) == IDataStore.ColumnType.ADDRESS, "Column is not ADDRESS"); return getValue(tableId, docId, colId).unpackAddress(); } function getBytes32(uint256 tableId, uint256 docId, uint256 colId) public view returns (bytes32) { require(getColumnType(colId) == IDataStore.ColumnType.BYTES32, "Column is not BYTES32"); return getValue(tableId, docId, colId); } function getString(uint256 tableId, uint256 docId, uint256 colId) public view returns (string memory) { require(getColumnType(colId) == IDataStore.ColumnType.STRING, "Column is not STRING"); uint256 key = generateKey(docId, colId); return stringStore[tableId][key]; } function hasValue(uint256 tableId, uint256 docId, uint256 colId) public view returns (bool) { uint256 key = generateKey(docId, colId); return datastore[tableId][key] != bytes32(0); } function hasStringValue(uint256 tableId, uint256 docId, uint256 colId) public view returns (bool) { uint256 key = generateKey(docId, colId); return keccak256(bytes(stringStore[tableId][key])) != keccak256(bytes("")); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.9; library DataTypes { // Pack and unpack uint256 function packUint256(uint256 value) internal pure returns (bytes32) { return bytes32(value); } function unpackUint256(bytes32 packed) internal pure returns (uint256) { return uint256(packed); } // Pack and unpack int256 function packInt256(int256 value) internal pure returns (bytes32) { return bytes32(uint256(value)); } function unpackInt256(bytes32 packed) internal pure returns (int256) { return int256(uint256(packed)); } // Pack and unpack address function packAddress(address value) internal pure returns (bytes32) { return bytes32(uint256(uint160(value))); } function unpackAddress(bytes32 packed) internal pure returns (address) { return address(uint160(uint256(packed))); } // Pack and unpack bool function packBool(bool value) internal pure returns (bytes32) { return bytes32(uint256(value ? 1 : 0)); } function unpackBool(bytes32 packed) internal pure returns (bool) { return uint256(packed) == 1; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; uint256 constant ID = uint256(keccak256("game.gigaverse.datastore")); interface IDataStore { enum ColumnType { NONE, UINT256, INT256, BOOL, ADDRESS, BYTES32, STRING, UINT256_ARRAY } event ValueSet(uint256 indexed tableId, uint256 indexed docId, uint256 indexed colId, bytes32 value); event StringValueSet(uint256 indexed tableId, uint256 indexed docId, uint256 indexed colId, string value); event ArrayValueSet(uint256 indexed tableId, uint256 indexed docId, uint256 indexed colId, bytes32[] value); event ColumnTypeSet(uint256 indexed colId, ColumnType columnType); function setValue(uint256 tableId, uint256 docId, uint256 colId, bytes32 value) external; function getValue(uint256 tableId, uint256 docId, uint256 colId) external view returns (bytes32); function setColumnType(uint256 colId, ColumnType columnType) external; function getColumnType(uint256 colId) external view returns (ColumnType); // Type-specific setters function setUint256(uint256 tableId, uint256 docId, uint256 colId, uint256 value) external; function setInt256(uint256 tableId, uint256 docId, uint256 colId, int256 value) external; function setBool(uint256 tableId, uint256 docId, uint256 colId, bool value) external; function setAddress(uint256 tableId, uint256 docId, uint256 colId, address value) external; function setBytes32(uint256 tableId, uint256 docId, uint256 colId, bytes32 value) external; function setString(uint256 tableId, uint256 docId, uint256 colId, string memory value) external; // Type-specific getters function getUint256(uint256 tableId, uint256 docId, uint256 colId) external view returns (uint256); function getInt256(uint256 tableId, uint256 docId, uint256 colId) external view returns (int256); function getBool(uint256 tableId, uint256 docId, uint256 colId) external view returns (bool); function getAddress(uint256 tableId, uint256 docId, uint256 colId) external view returns (address); function getBytes32(uint256 tableId, uint256 docId, uint256 colId) external view returns (bytes32); function getString(uint256 tableId, uint256 docId, uint256 colId) external view returns (string memory); function deleteValue(uint256 tableId, uint256 docId, uint256 colId) external; function hasValue(uint256 tableId, uint256 docId, uint256 colId) external view returns (bool); }
// SPDX-License-Identifier: MIT LICENSE pragma solidity ^0.8.13; import {ReentrancyGuard} from "@openzeppelin/contracts/utils/ReentrancyGuard.sol"; import {PAUSER_ROLE, MANAGER_ROLE} from "../constants/RoleConstants.sol"; import {ISystem} from "./ISystem.sol"; import {IGameRegistry, IERC165} from "./IGameRegistry.sol"; import {IDataStore, ID as DATA_STORE_ID} from "../db/IDataStore.sol"; import {DEPLOYER_ROLE} from "../constants/RoleConstants.sol"; /** @title Contract that lets a child contract access the GameRegistry contract */ abstract contract GameRegistryConsumer is ReentrancyGuard, ISystem { /// @notice Whether or not the contract is paused bool private _paused; /// @notice Reference to the game registry that this contract belongs to IGameRegistry internal _gameRegistry; /// @notice Id for the system/component uint256 private _id; /** EVENTS **/ /// @dev Emitted when the pause is triggered by `account`. event Paused(address account); /// @dev Emitted when the pause is lifted by `account`. event Unpaused(address account); /** ERRORS **/ /// @notice Not authorized to perform action error MissingRole(address account, bytes32 expectedRole); /** MODIFIERS **/ /// @notice Modifier to verify a user has the appropriate role to call a given function modifier onlyRole(bytes32 role) { _checkRole(role, msg.sender); _; } /** * @dev Modifier to make a function callable only when the contract is not paused. * * Requirements: * * - The contract must not be paused. */ modifier whenNotPaused() { _requireNotPaused(); _; } /** * @dev Modifier to make a function callable only when the contract is paused. * * Requirements: * * - The contract must be paused. */ modifier whenPaused() { _requirePaused(); _; } /** ERRORS **/ /// @notice Error if the game registry specified is invalid error InvalidGameRegistry(); /** SETUP **/ /** @return ID for this system */ function getId() public view override returns (uint256) { return _id; } /** * Pause/Unpause the contract * * @param shouldPause Whether or pause or unpause */ function setPaused(bool shouldPause) external onlyRole(PAUSER_ROLE) { if (shouldPause) { _pause(); } else { _unpause(); } } /** * @dev Returns true if the contract OR the GameRegistry is paused, and false otherwise. */ function paused() public view virtual returns (bool) { return _paused || _gameRegistry.paused(); } /** * Sets the GameRegistry contract address for this contract * * @param gameRegistryAddress Address for the GameRegistry contract */ function setGameRegistry( address gameRegistryAddress ) external onlyRole(MANAGER_ROLE) { _gameRegistry = IGameRegistry(gameRegistryAddress); if (gameRegistryAddress == address(0)) { revert InvalidGameRegistry(); } } /** @return GameRegistry contract for this contract */ function getGameRegistry() external view returns (IGameRegistry) { return _gameRegistry; } /** INTERNAL **/ /** * @dev Returns `true` if `account` has been granted `role`. */ function _hasAccessRole( bytes32 role, address account ) internal view returns (bool) { return _gameRegistry.hasAccessRole(role, account); } /** * @dev Revert with a standard message if `account` is missing `role`. * * The format of the revert reason is given by the following regular expression: * * /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/ */ function _checkRole(bytes32 role, address account) internal view virtual { if (!_gameRegistry.hasAccessRole(role, account)) { revert MissingRole(account, role); } } /** @return Returns the dataStore for this contract */ function _dataStore() internal view returns (IDataStore) { return IDataStore(_getSystem(DATA_STORE_ID)); } /** @return Address for a given system */ function _getSystem(uint256 systemId) internal view returns (address) { return _gameRegistry.getSystem(systemId); } /** PAUSABLE **/ /** * @dev Throws if the contract is paused. */ function _requireNotPaused() internal view virtual { require(!paused(), "Pausable: paused"); } /** * @dev Throws if the contract is not paused. */ function _requirePaused() internal view virtual { require(paused(), "Pausable: not paused"); } /** * @dev Triggers stopped state. * * Requirements: * * - The contract must not be paused. */ function _pause() internal virtual { require(_paused == false, "Pausable: not paused"); _paused = true; emit Paused(msg.sender); } /** * @dev Returns to normal state. * * Requirements: * * - The contract must be paused. */ function _unpause() internal virtual { require(_paused == true, "Pausable: not paused"); _paused = false; emit Unpaused(msg.sender); } function initialize() external virtual onlyRole(DEPLOYER_ROLE) { } /** * Constructor for this contract * * @param gameRegistryAddress Address of the GameRegistry contract * @param id Id of the system/component */ constructor( address gameRegistryAddress, uint256 id ) { _gameRegistry = IGameRegistry(gameRegistryAddress); if (gameRegistryAddress == address(0)) { revert InvalidGameRegistry(); } _paused = true; _id = id; } }
// SPDX-License-Identifier: MIT LICENSE pragma solidity ^0.8.9; // Pauser Role - Can pause the game bytes32 constant PAUSER_ROLE = keccak256("PAUSER_ROLE"); // Minter Role - Can mint items, NFTs, and ERC20 currency bytes32 constant MINTER_ROLE = keccak256("MINTER_ROLE"); // Manager Role - Can manage the shop, loot tables, and other game data bytes32 constant MANAGER_ROLE = keccak256("MANAGER_ROLE"); // Depoloyer Role - Can Deploy new Systems bytes32 constant DEPLOYER_ROLE = keccak256("DEPLOYER_ROLE"); // Game Logic Contract - Contract that executes game logic and accesses other systems bytes32 constant GAME_LOGIC_CONTRACT_ROLE = keccak256("GAME_LOGIC_CONTRACT_ROLE"); // For functions callable from game server bytes32 constant SERVER_JUDGE_ROLE = keccak256("SERVER_JUDGE_ROLE");
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.1.0) (utils/ReentrancyGuard.sol) pragma solidity ^0.8.20; /** * @dev Contract module that helps prevent reentrant calls to a function. * * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier * available, which can be applied to functions to make sure there are no nested * (reentrant) calls to them. * * Note that because there is a single `nonReentrant` guard, functions marked as * `nonReentrant` may not call one another. This can be worked around by making * those functions `private`, and then adding `external` `nonReentrant` entry * points to them. * * TIP: If EIP-1153 (transient storage) is available on the chain you're deploying at, * consider using {ReentrancyGuardTransient} instead. * * TIP: If you would like to learn more about reentrancy and alternative ways * to protect against it, check out our blog post * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]. */ abstract contract ReentrancyGuard { // Booleans are more expensive than uint256 or any type that takes up a full // word because each write operation emits an extra SLOAD to first read the // slot's contents, replace the bits taken up by the boolean, and then write // back. This is the compiler's defense against contract upgrades and // pointer aliasing, and it cannot be disabled. // The values being non-zero value makes deployment a bit more expensive, // but in exchange the refund on every call to nonReentrant will be lower in // amount. Since refunds are capped to a percentage of the total // transaction's gas, it is best to keep them low in cases like this one, to // increase the likelihood of the full refund coming into effect. uint256 private constant NOT_ENTERED = 1; uint256 private constant ENTERED = 2; uint256 private _status; /** * @dev Unauthorized reentrant call. */ error ReentrancyGuardReentrantCall(); constructor() { _status = NOT_ENTERED; } /** * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening * by making the `nonReentrant` function external, and making it call a * `private` function that does the actual work. */ modifier nonReentrant() { _nonReentrantBefore(); _; _nonReentrantAfter(); } function _nonReentrantBefore() private { // On the first call to nonReentrant, _status will be NOT_ENTERED if (_status == ENTERED) { revert ReentrancyGuardReentrantCall(); } // Any calls to nonReentrant after this point will fail _status = ENTERED; } function _nonReentrantAfter() private { // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = NOT_ENTERED; } /** * @dev Returns true if the reentrancy guard is currently set to "entered", which indicates there is a * `nonReentrant` function in the call stack. */ function _reentrancyGuardEntered() internal view returns (bool) { return _status == ENTERED; } }
// SPDX-License-Identifier: MIT LICENSE pragma solidity ^0.8.9; import "@openzeppelin/contracts/utils/introspection/IERC165.sol"; /** * Defines a system the game engine */ interface ISystem { /** @return The ID for the system. Ex: a uint256 casted keccak256 hash */ function getId() external view returns (uint256); function initialize() external; }
// SPDX-License-Identifier: MIT LICENSE pragma solidity ^0.8.9; import "@openzeppelin/contracts/utils/introspection/IERC165.sol"; // @title Interface the game's ACL / Management Layer interface IGameRegistry is IERC165 { /** * @dev Returns `true` if `account` has been granted `role`. * @param role The role to query * @param account The address to query */ function hasAccessRole( bytes32 role, address account ) external view returns (bool); /** * @return Whether or not the registry is paused */ function paused() external view returns (bool); /** * Registers a system by id * * @param systemId Id of the system * @param systemAddress Address of the system contract */ function registerSystem(uint256 systemId, address systemAddress, bool isGameLogicContract) external; /** * @param systemId Id of the system * @return System based on an id */ function getSystem(uint256 systemId) external view returns (address); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.1.0) (utils/introspection/IERC165.sol) pragma solidity ^0.8.20; /** * @dev Interface of the ERC-165 standard, as defined in the * https://eips.ethereum.org/EIPS/eip-165[ERC]. * * Implementers can declare support of contract interfaces, which can then be * queried by others ({ERC165Checker}). * * For an implementation, see {ERC165}. */ interface IERC165 { /** * @dev Returns true if this contract implements the interface defined by * `interfaceId`. See the corresponding * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] * to learn more about how these ids are created. * * This function call must use less than 30 000 gas. */ function supportsInterface(bytes4 interfaceId) external view returns (bool); }
{ "viaIR": false, "codegen": "yul", "remappings": [ "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/", "@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/", "erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/", "forge-std/=lib/forge-std/src/", "forge-zksync-std/=lib/forge-zksync-std/src/", "halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/", "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/", "openzeppelin-contracts/=lib/openzeppelin-contracts/" ], "evmVersion": "cancun", "outputSelection": { "*": { "*": [ "abi", "metadata" ], "": [ "ast" ] } }, "optimizer": { "enabled": true, "mode": "3", "fallback_to_optimizing_for_size": false, "disable_system_request_memoization": true }, "metadata": {}, "libraries": {}, "enableEraVMExtensions": false, "forceEVMLA": false }
[{"inputs":[{"internalType":"address","name":"gameRegistryAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidGameRegistry","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"expectedRole","type":"bytes32"}],"name":"MissingRole","type":"error"},{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"tableId","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"docId","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"colId","type":"uint256"},{"indexed":false,"internalType":"bytes32[]","name":"value","type":"bytes32[]"}],"name":"ArrayValueSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"colId","type":"uint256"},{"indexed":false,"internalType":"enum IDataStore.ColumnType","name":"columnType","type":"uint8"}],"name":"ColumnTypeSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"tableId","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"docId","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"colId","type":"uint256"},{"indexed":false,"internalType":"string","name":"value","type":"string"}],"name":"StringValueSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"tableId","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"docId","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"colId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"value","type":"bytes32"}],"name":"ValueSet","type":"event"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"arrayStore","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"columnTypes","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"datastore","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tableId","type":"uint256"},{"internalType":"uint256","name":"docId","type":"uint256"},{"internalType":"uint256","name":"colId","type":"uint256"}],"name":"deleteValue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"docId","type":"uint256"},{"internalType":"uint256","name":"colId","type":"uint256"}],"name":"generateArrayKey","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"docId","type":"uint256"},{"internalType":"uint256","name":"colId","type":"uint256"}],"name":"generateKey","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"tableId","type":"uint256"},{"internalType":"uint256","name":"docId","type":"uint256"},{"internalType":"uint256","name":"colId","type":"uint256"}],"name":"getAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tableId","type":"uint256"},{"internalType":"uint256","name":"docId","type":"uint256"},{"internalType":"uint256","name":"colId","type":"uint256"}],"name":"getAddressArray","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tableId","type":"uint256"},{"internalType":"uint256","name":"docId","type":"uint256"},{"internalType":"uint256","name":"colId","type":"uint256"}],"name":"getBool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tableId","type":"uint256"},{"internalType":"uint256","name":"docId","type":"uint256"},{"internalType":"uint256","name":"colId","type":"uint256"}],"name":"getBoolArray","outputs":[{"internalType":"bool[]","name":"","type":"bool[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tableId","type":"uint256"},{"internalType":"uint256","name":"docId","type":"uint256"},{"internalType":"uint256","name":"colId","type":"uint256"}],"name":"getBytes32","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"colId","type":"uint256"}],"name":"getColumnType","outputs":[{"internalType":"enum IDataStore.ColumnType","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getGameRegistry","outputs":[{"internalType":"contract IGameRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tableId","type":"uint256"},{"internalType":"uint256","name":"docId","type":"uint256"},{"internalType":"uint256","name":"colId","type":"uint256"}],"name":"getInt256","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tableId","type":"uint256"},{"internalType":"uint256","name":"docId","type":"uint256"},{"internalType":"uint256","name":"colId","type":"uint256"}],"name":"getString","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tableId","type":"uint256"},{"internalType":"uint256","name":"docId","type":"uint256"},{"internalType":"uint256","name":"colId","type":"uint256"}],"name":"getUint256","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tableId","type":"uint256"},{"internalType":"uint256","name":"docId","type":"uint256"},{"internalType":"uint256","name":"colId","type":"uint256"}],"name":"getUint256Array","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tableId","type":"uint256"},{"internalType":"uint256","name":"docId","type":"uint256"},{"internalType":"uint256","name":"colId","type":"uint256"}],"name":"getValue","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tableId","type":"uint256"},{"internalType":"uint256","name":"docId","type":"uint256"},{"internalType":"uint256","name":"colId","type":"uint256"}],"name":"hasStringValue","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tableId","type":"uint256"},{"internalType":"uint256","name":"docId","type":"uint256"},{"internalType":"uint256","name":"colId","type":"uint256"}],"name":"hasValue","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"colId","type":"uint256"}],"name":"isColumnTypeSet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tableId","type":"uint256"},{"internalType":"uint256","name":"docId","type":"uint256"},{"internalType":"uint256","name":"colId","type":"uint256"},{"internalType":"address","name":"value","type":"address"}],"name":"setAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tableId","type":"uint256"},{"internalType":"uint256","name":"docId","type":"uint256"},{"internalType":"uint256","name":"colId","type":"uint256"},{"internalType":"address[]","name":"value","type":"address[]"}],"name":"setAddressArrayValue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tableId","type":"uint256"},{"internalType":"uint256","name":"docId","type":"uint256"},{"internalType":"uint256","name":"colId","type":"uint256"},{"internalType":"bytes32[]","name":"value","type":"bytes32[]"}],"name":"setArrayValue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tableId","type":"uint256"},{"internalType":"uint256","name":"docId","type":"uint256"},{"internalType":"uint256","name":"colId","type":"uint256"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setBool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tableId","type":"uint256"},{"internalType":"uint256","name":"docId","type":"uint256"},{"internalType":"uint256","name":"colId","type":"uint256"},{"internalType":"bool[]","name":"value","type":"bool[]"}],"name":"setBoolArrayValue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tableId","type":"uint256"},{"internalType":"uint256","name":"docId","type":"uint256"},{"internalType":"uint256","name":"colId","type":"uint256"},{"internalType":"bytes32","name":"value","type":"bytes32"}],"name":"setBytes32","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"colId","type":"uint256"},{"internalType":"enum IDataStore.ColumnType","name":"columnType","type":"uint8"}],"name":"setColumnType","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"gameRegistryAddress","type":"address"}],"name":"setGameRegistry","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tableId","type":"uint256"},{"internalType":"uint256","name":"docId","type":"uint256"},{"internalType":"uint256","name":"colId","type":"uint256"},{"internalType":"int256","name":"value","type":"int256"}],"name":"setInt256","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"shouldPause","type":"bool"}],"name":"setPaused","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tableId","type":"uint256"},{"internalType":"uint256","name":"docId","type":"uint256"},{"internalType":"uint256","name":"colId","type":"uint256"},{"internalType":"string","name":"value","type":"string"}],"name":"setString","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tableId","type":"uint256"},{"internalType":"uint256","name":"docId","type":"uint256"},{"internalType":"uint256","name":"colId","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setUint256","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tableId","type":"uint256"},{"internalType":"uint256","name":"docId","type":"uint256"},{"internalType":"uint256","name":"colId","type":"uint256"},{"internalType":"uint256[]","name":"value","type":"uint256[]"}],"name":"setUint256ArrayValue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tableId","type":"uint256"},{"internalType":"uint256","name":"docId","type":"uint256"},{"internalType":"uint256","name":"colId","type":"uint256"},{"internalType":"bytes32","name":"value","type":"bytes32"}],"name":"setValue","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
9c4d535b0000000000000000000000000000000000000000000000000000000000000000010006cd4c899c1d302da5a3e18ad9f582235d14fc0a3d9d2cdfde585126ef6a00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000487f346df1bcaca0366d4841d71941b46c863593
Deployed Bytecode
0x00030000000000020008000000000002000200000001035500000060031002700000065b0030019d0000065b0330019700000001002001900000002f0000c13d0000008002000039000000400020043f000000040030008c000000520000413d000000000201043b000000e002200270000006630020009c000000540000213d0000067e0020009c000000840000a13d0000067f0020009c000001060000213d000006860020009c000002360000a13d000006870020009c000006700000613d000006880020009c000004a10000613d000006890020009c000000520000c13d0000000001000416000000000001004b000000520000c13d0000000102000039000000000302041a000000ff00300190000007ec0000c13d000006b901000041000000800010043f000000000100041400000008023002700000065e02200197000000040020008c000009550000c13d0000000103000031000000200030008c00000020040000390000000004034019000009790000013d0000000002000416000000000002004b000000520000c13d0000001f023000390000065c022001970000008002200039000000400020043f0000001f0430018f0000065d053001980000008002500039000000400000613d0000008006000039000000000701034f000000007807043c0000000006860436000000000026004b0000003c0000c13d000000000004004b0000004d0000613d000000000151034f0000000304400210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000200030008c000000520000413d000000800100043d0000065e0010009c0000007c0000a13d00000000010000190000196900010430000006640020009c000000b30000a13d000006650020009c000001340000213d0000066c0020009c000002410000a13d0000066d0020009c000006770000613d0000066e0020009c000004ec0000613d0000066f0020009c000000520000c13d000000240030008c000000520000413d0000000002000416000000000002004b000000520000c13d0000000401100370000000000101043b000800000001001d0000065e0010009c000000520000213d0000000101000039000000000201041a0000069801000041000000800010043f000006ac01000041000000840010043f0000000001000411000000a40010043f000000000100041400000008022002700000065e02200197000000040020008c00000a840000c13d0000000103000031000000200030008c0000002004000039000000000403401900000aa80000013d0000000102000039000000000020041b000000000001004b000001660000c13d000006ae01000041000000000010043f000006af0100004100001969000104300000068c0020009c000001750000a13d0000068d0020009c000001e40000a13d0000068e0020009c000007430000613d0000068f0020009c000004050000613d000006900020009c000000520000c13d000000840030008c000000520000413d0000000002000416000000000002004b000000520000c13d0000006402100370000000000202043b000400000002001d0000004402100370000000000202043b000700000002001d0000002402100370000000000202043b000500000002001d0000000401100370000000000101043b000600000001001d0000000101000039000000000201041a0000069801000041000000800010043f0000069901000041000000840010043f00000000010004110000065e01100197000800000001001d000000a40010043f000000000100041400000008022002700000065e02200197000000040020008c000007f20000c13d0000000103000031000000200030008c00000020040000390000000004034019000008160000013d000006720020009c000001940000a13d000006730020009c0000020d0000a13d000006740020009c000007620000613d000006750020009c0000041b0000613d000006760020009c000000520000c13d000000840030008c000000520000413d0000000002000416000000000002004b000000520000c13d0000004402100370000000000202043b000800000002001d0000002402100370000000000202043b000600000002001d0000000402100370000000000202043b000700000002001d0000006402100370000000000202043b0000069d0020009c000000520000213d0000002304200039000000000034004b000000520000813d0000000404200039000000000441034f000000000504043b0000069d0050009c000005590000213d00000005045002100000003f06400039000006b006600197000006a50060009c000005590000213d0000008006600039000500000006001d000000400060043f000000800050043f00000024022000390000000004240019000000000034004b000000520000213d000000000005004b000000ef0000613d000000a003000039000000000521034f000000000505043b00000000035304360000002002200039000000000042004b000000e70000413d000000400100043d000500000001001d0000000101000039000000000201041a00000698010000410000000504000029000000000014043500000004014000390000069903000041000000000031043500000000010004110000065e031001970000002401400039000400000003001d0000000000310435000000000100041400000008022002700000065e02200197000000040020008c00000caf0000c13d0000000103000031000000200030008c0000002004000039000000000403401900000cd90000013d000006800020009c0000024f0000a13d000006810020009c0000078c0000613d000006820020009c0000053a0000613d000006830020009c000000520000c13d000000640030008c000000520000413d0000000002000416000000000002004b000000520000c13d0000002402100370000000000202043b000800000002001d0000000402100370000000000202043b000700000002001d0000004401100370000000000101043b000600000001001d000000000010043f0000000601000039000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000000000101041a000000000001004b000007aa0000613d000000ff0110018f000000070010008c00000afb0000213d000000020010008c00000000010000390000000101006039196718160000040f000007870000013d000006660020009c000002780000a13d000006670020009c000007bb0000613d000006680020009c0000055f0000613d000006690020009c000000520000c13d000000840030008c000000520000413d0000000002000416000000000002004b000000520000c13d0000004402100370000000000202043b000800000002001d0000002402100370000000000202043b000600000002001d0000000402100370000000000202043b000700000002001d0000006401100370000000000201043b000000000002004b0000000001000039000000010100c039000500000002001d000000000012004b000000520000c13d0000000101000039000000000201041a0000069801000041000000800010043f0000069901000041000000840010043f00000000010004110000065e01100197000400000001001d000000a40010043f000000000100041400000008022002700000065e02200197000000040020008c00000abe0000c13d0000000103000031000000200030008c0000002004000039000000000403401900000ae20000013d000000000302041a0000065f0330019700000008011002100000066001100197000000000131019f00000001011001bf000000000012041b00000661010000410000000202000039000000000012041b0000002001000039000001000010044300000120000004430000066201000041000019680001042e000006930020009c000001ae0000213d000006960020009c000002d60000613d000006970020009c000000520000c13d0000000001000416000000000001004b000000520000c13d0000000001030019196716ce0000040f000800000001001d00000000010200190000000002030019196717f00000040f0000000802000029000000000020043f0000000302000039000000200020043f000800000001001d00000040020000390000000001000019196719480000040f0000000802000029000000000020043f000000200010043f00000000010000190000004002000039196719480000040f000000000101041a0000024d0000013d000006790020009c000001d90000213d0000067c0020009c000002f70000613d0000067d0020009c000000520000c13d0000000001000416000000000001004b000000520000c13d0000000001030019196716e60000040f000800000002001d000000000010043f0000000301000039000000200010043f00000040020000390000000001000019196719480000040f0000000802000029000000000020043f000000200010043f00000000010000190000004002000039196719480000040f000000000101041a00000b9c0000013d000006940020009c000003c20000613d000006950020009c000000520000c13d000000840030008c000000520000413d0000000002000416000000000002004b000000520000c13d0000004402100370000000000202043b000800000002001d0000002402100370000000000202043b000600000002001d0000000402100370000000000202043b000700000002001d0000006401100370000000000101043b000500000001001d0000065e0010009c000000520000213d0000000101000039000000000201041a0000069801000041000000800010043f0000069901000041000000840010043f00000000010004110000065e01100197000400000001001d000000a40010043f000000000100041400000008022002700000065e02200197000000040020008c000009860000c13d0000000103000031000000200030008c00000020040000390000000004034019000009aa0000013d0000067a0020009c000003f00000613d0000067b0020009c000000520000c13d0000000001000416000000000001004b000000520000c13d0000000001030019196716ce0000040f1967183e0000040f00000b9c0000013d000006910020009c000004410000613d000006920020009c000000520000c13d000000840030008c000000520000413d0000000002000416000000000002004b000000520000c13d0000006402100370000000000202043b000400000002001d0000004402100370000000000202043b000600000002001d0000002402100370000000000202043b000500000002001d0000000401100370000000000101043b000800000001001d0000000101000039000000000201041a0000069801000041000000800010043f0000069901000041000000840010043f00000000010004110000065e01100197000700000001001d000000a40010043f000000000100041400000008022002700000065e02200197000000040020008c000008510000c13d0000000103000031000000200030008c00000020040000390000000004034019000008750000013d000006770020009c0000045f0000613d000006780020009c000000520000c13d000000840030008c000000520000413d0000000002000416000000000002004b000000520000c13d0000006402100370000000000202043b000400000002001d0000004402100370000000000202043b000700000002001d0000002402100370000000000202043b000500000002001d0000000401100370000000000101043b000600000001001d0000000101000039000000000201041a0000069801000041000000800010043f0000069901000041000000840010043f00000000010004110000065e01100197000800000001001d000000a40010043f000000000100041400000008022002700000065e02200197000000040020008c000008870000c13d0000000103000031000000200030008c00000020040000390000000004034019000008ab0000013d0000068a0020009c000005690000613d0000068b0020009c000000520000c13d0000000001000416000000000001004b000000520000c13d0000000001030019196716e60000040f196717c70000040f00000b9c0000013d000006700020009c000005770000613d000006710020009c000000520000c13d000000240030008c000000520000413d0000000002000416000000000002004b000000520000c13d0000000401100370000000000101043b196718ae0000040f000000000001004b000003ed0000013d000006840020009c0000063d0000613d000006850020009c000000520000c13d000000840030008c000000520000413d0000000002000416000000000002004b000000520000c13d0000006402100370000000000302043b0000004402100370000000000202043b000700000002001d0000002402100370000000000202043b000500000002001d0000000401100370000000000101043b000600000001001d0000000101000039000000000201041a0000069801000041000000800010043f0000069901000041000000840010043f00000000010004110000065e01100197000800000001001d000000a40010043f000000000100041400000008022002700000065e02200197000000040020008c000400000003001d0000091f0000c13d0000000103000031000000200030008c00000020040000390000000004034019000009430000013d0000066a0020009c000006450000613d0000066b0020009c000000520000c13d000000840030008c000000520000413d0000000002000416000000000002004b000000520000c13d0000004402100370000000000202043b000800000002001d0000002402100370000000000202043b000700000002001d0000000402100370000000000202043b000600000002001d0000006402100370000000000402043b0000069d0040009c000000520000213d0000002302400039000000000032004b000000520000813d0000000405400039000000000251034f000000000202043b0000069d0020009c000005590000213d0000001f06200039000006c5066001970000003f06600039000006c506600197000006a50060009c000005590000213d0000008006600039000000400060043f000000800020043f00000000042400190000002404400039000000000034004b000000520000213d0000002003500039000000000331034f000006c5042001980000001f0520018f000000a001400039000002af0000613d000000a006000039000000000703034f000000007807043c0000000006860436000000000016004b000002ab0000c13d000000000005004b000002bc0000613d000000000343034f0000000304500210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f0000000000310435000000a00120003900000000000104350000000101000039000000000201041a000000400400043d0000069801000041000000000014043500000004014000390000069903000041000000000031043500000000010004110000065e03100197000500000004001d0000002401400039000400000003001d0000000000310435000000000100041400000008022002700000065e02200197000000040020008c00000d4d0000c13d0000000103000031000000200030008c0000002004000039000000000403401900000d760000013d000000440030008c000000520000413d0000000002000416000000000002004b000000520000c13d0000000402100370000000000202043b000800000002001d0000002401100370000000000101043b000700000001001d000000070010008c000000520000213d0000000101000039000000000201041a0000069801000041000000800010043f0000069901000041000000840010043f00000000010004110000065e01100197000600000001001d000000a40010043f000000000100041400000008022002700000065e02200197000000040020008c000009e40000c13d0000000103000031000000200030008c0000002004000039000000000403401900000a080000013d000000640030008c000000520000413d0000000002000416000000000002004b000000520000c13d0000002402100370000000000202043b000700000002001d0000000402100370000000000202043b000800000002001d0000004401100370000000000101043b000600000001001d000000000010043f0000000601000039000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000000000101041a000000000001004b000007aa0000613d000000ff0110018f000000070010008c00000afb0000213d000000030010008c00000ca80000c13d0000000801000029000000000010043f0000000401000039000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000800000001001d000000400100043d0000006002100039000006b203000041000000000032043500000040021000390000000603000029000000000032043500000020021000390000000703000029000000000032043500000047030000390000000000310435000006a50010009c000005590000213d0000008003100039000000400030043f0000065b0020009c0000065b02008041000000400220021000000000010104330000065b0010009c0000065b010080410000006001100210000000000121019f00000000020004140000065b0020009c0000065b02008041000000c002200210000000000112019f0000069f011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000000000010043f0000000801000029000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000000000301041a000000400200043d000800000002001d000600000003001d0000000002320436000700000002001d000000000010043f00000000010004140000065b0010009c0000065b01008041000000c001100210000006a0011001c70000801002000039196719620000040f0000000100200190000000520000613d0000000605000029000000000005004b0000000702000029000003760000613d000000000101043b00000000030000190000000702000029000000000401041a000000000242043600000001011000390000000103300039000000000053004b000003700000413d000000080120006a0000001f01100039000006c5011001970000000802100029000000000012004b000000000100003900000001010040390000069d0020009c000005590000213d0000000100100190000005590000c13d000000400020043f000000080100002900000000010104330000069d0010009c000005590000213d00000005041002100000003f03400039000006b00330019700000000032300190000069d0030009c000005590000213d000000400030043f00000000011204360000001f0340018f000000000004004b000003990000613d0000000004410019000000000500003100000002055003670000000006010019000000005705043c0000000006760436000000000046004b000003950000c13d000000000003004b00000008060000290000000003060433000000000003004b0000000707000029000003af0000613d00000000030000190000000004020433000000000034004b000013730000a13d0000000504300210000000000514001900000000047400190000000004040433000000010040008c00000000040000390000000104006039000000000045043500000001033000390000000004060433000000000043004b000003a00000413d000000400300043d00000020040000390000000005430436000000000402043300000000004504350000004002300039000000000004004b000003c00000613d00000000050000190000000016010434000000000006004b0000000006000039000000010600c03900000000026204360000000105500039000000000045004b000003b80000413d00000000013200490000073b0000013d0000000001000416000000000001004b000000520000c13d0000000001030019196716ce0000040f000800000001001d00000000010200190000000002030019196717f00000040f0000000802000029000000000020043f0000000502000039000000200020043f000800000001001d00000040020000390000000001000019196719480000040f0000000802000029000000000020043f000000200010043f00000000010000190000004002000039196719480000040f000000400200043d000800000002001d196717390000040f000000080210006a0000000801000029196716f20000040f00000008010000290000000012010434196719480000040f000800000001001d000000400100043d000700000001001d0000002002000039196716f20000040f0000000701000029000000000001043500000000010000190000000002000019196719480000040f000000080010006b0000000001000039000000010100c03900000b9c0000013d0000000001000416000000000001004b000000520000c13d0000000101000039000000000201041a0000069801000041000000800010043f000006b601000041000000840010043f0000000001000411000000a40010043f000000000100041400000008022002700000065e02200197000000040020008c000008e50000c13d0000000103000031000000200030008c00000020040000390000000004034019000009090000013d000000240030008c000000520000413d0000000002000416000000000002004b000000520000c13d0000000401100370000000000101043b196717860000040f0000000002010019000000400100043d000800000001001d196716dc0000040f000000080200002900000000012100490000065b0010009c0000065b0100804100000060011002100000065b0020009c0000065b020080410000004002200210000000000121019f000019680001042e000000640030008c000000520000413d0000000002000416000000000002004b000000520000c13d0000002402100370000000000202043b000800000002001d0000000402100370000000000202043b000700000002001d0000004401100370000000000101043b000600000001001d000000000010043f0000000601000039000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000000000101041a000000000001004b000007aa0000613d000000ff0110018f000000070010008c00000afb0000213d000000050010008c00000000010000390000000101006039196717b30000040f000007870000013d0000000001000416000000000001004b000000520000c13d0000000001030019196716ce0000040f000800000001001d000700000002001d000600000003001d0000000001000411196718c20000040f00000007010000290000000602000029196717f00000040f0000000802000029000000000020043f0000000302000039000000200020043f000800000001001d00000040020000390000000001000019196719480000040f0000000802000029000000000020043f000000200010043f00000000010000190000004002000039196719480000040f000000000001041b0000000001000019000019680001042e000000640030008c000000520000413d0000000002000416000000000002004b000000520000c13d0000002402100370000000000202043b000700000002001d0000000402100370000000000202043b000800000002001d0000004401100370000000000101043b000600000001001d000000000010043f0000000601000039000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000000000101041a000000000001004b000007aa0000613d000000ff0110018f000000070010008c00000afb0000213d000000060010008c00000000010000390000000101006039196718860000040f00000007010000290000000602000029196717f00000040f0000000802000029000000000020043f0000000502000039000000200020043f000800000001001d00000040020000390000000001000019196719480000040f0000000802000029000000000020043f000000200010043f00000000010000190000004002000039196719480000040f000000400200043d000800000002001d196717390000040f000000080210006a0000000801000029196716f20000040f000000400100043d000700000001001d0000000802000029196717040000040f0000000702000029000004120000013d000000840030008c000000520000413d0000000002000416000000000002004b000000520000c13d0000004402100370000000000202043b000800000002001d0000002402100370000000000202043b000600000002001d0000000402100370000000000202043b000700000002001d0000006402100370000000000202043b0000069d0020009c000000520000213d0000002304200039000000000034004b000000520000813d0000000404200039000000000441034f000000000504043b0000069d0050009c000005590000213d00000005045002100000003f06400039000006b006600197000006a50060009c000005590000213d0000008006600039000500000006001d000000400060043f000000800050043f00000024022000390000000004240019000000000034004b000000520000213d000000000005004b000004d50000613d000000a003000039000000000521034f000000000505043b0000065e0050009c000000520000213d00000000035304360000002002200039000000000042004b000004cb0000413d000000400100043d000500000001001d0000000101000039000000000201041a00000698010000410000000504000029000000000014043500000004014000390000069903000041000000000031043500000000010004110000065e031001970000002401400039000400000003001d0000000000310435000000000100041400000008022002700000065e02200197000000040020008c00000ef00000c13d0000000103000031000000200030008c0000002004000039000000000403401900000f1a0000013d000000840030008c000000520000413d0000000002000416000000000002004b000000520000c13d0000004402100370000000000202043b000800000002001d0000002402100370000000000202043b000600000002001d0000000402100370000000000202043b000700000002001d0000006402100370000000000202043b0000069d0020009c000000520000213d0000002304200039000000000034004b000000520000813d0000000404200039000000000441034f000000000504043b0000069d0050009c000005590000213d00000005045002100000003f06400039000006b006600197000006a50060009c000005590000213d0000008006600039000500000006001d000000400060043f000000800050043f00000024022000390000000004420019000000000034004b000000520000213d000000000005004b000005230000613d000000a003000039000000000521034f000000000505043b000000000005004b0000000006000039000000010600c039000000000065004b000000520000c13d00000000035304360000002002200039000000000042004b000005160000413d000000400100043d000500000001001d0000000101000039000000000201041a00000698010000410000000504000029000000000014043500000004014000390000069903000041000000000031043500000000010004110000065e031001970000002401400039000400000003001d0000000000310435000000000100041400000008022002700000065e02200197000000040020008c00000f8f0000c13d0000000103000031000000200030008c0000002004000039000000000403401900000fb90000013d000000840030008c000000520000413d0000000002000416000000000002004b000000520000c13d0000004402100370000000000202043b000700000002001d0000002402100370000000000202043b000600000002001d0000000402100370000000000202043b000800000002001d0000006402100370000000000202043b0000069d0020009c000000520000213d0000002304200039000000000034004b000000520000813d0000000404200039000000000441034f000000000504043b0000069d0050009c000005590000213d00000005045002100000003f06400039000006b006600197000006a50060009c00000b0d0000a13d000006aa01000041000000000010043f0000004101000039000000040010043f000006ab0100004100001969000104300000000001000416000000000001004b000000520000c13d0000000101000039000000000101041a00000008011002700000065e01100197000000800010043f000006a301000041000019680001042e000000240030008c000000520000413d0000000002000416000000000002004b000000520000c13d0000000401100370000000000101043b000000000010043f0000000601000039000000200010043f00000040020000390000000001000019196719480000040f000006410000013d000000640030008c000000520000413d0000000002000416000000000002004b000000520000c13d0000002402100370000000000202043b000700000002001d0000000402100370000000000202043b000800000002001d0000004401100370000000000101043b000600000001001d000000000010043f0000000601000039000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000000000101041a000000000001004b000007aa0000613d000000ff0110018f000000070010008c00000afb0000213d000000040010008c00000c240000c13d0000000801000029000000000010043f0000000401000039000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000800000001001d000000400100043d0000006002100039000006b203000041000000000032043500000040021000390000000603000029000000000032043500000020021000390000000703000029000000000032043500000047030000390000000000310435000006a50010009c000005590000213d0000008003100039000000400030043f0000065b0020009c0000065b02008041000000400220021000000000010104330000065b0010009c0000065b010080410000006001100210000000000121019f00000000020004140000065b0020009c0000065b02008041000000c002200210000000000112019f0000069f011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000000000010043f0000000801000029000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000000000301041a000000400200043d000800000002001d000600000003001d0000000002320436000700000002001d000000000010043f00000000010004140000065b0010009c0000065b01008041000000c001100210000006a0011001c70000801002000039196719620000040f0000000100200190000000520000613d0000000605000029000000000005004b0000000702000029000005f60000613d000000000101043b00000000030000190000000702000029000000000401041a000000000242043600000001011000390000000103300039000000000053004b000005f00000413d000000080120006a0000001f01100039000006c5021001970000000801200029000000000021004b000000000200003900000001020040390000069d0010009c000005590000213d0000000100200190000005590000c13d000000400010043f000000080200002900000000020204330000069d0020009c000005590000213d00000005042002100000003f03400039000006b00330019700000000031300190000069d0030009c000005590000213d000000400030043f00000000022104360000001f0340018f000000000004004b000006190000613d0000000004420019000000000500003100000002055003670000000006020019000000005705043c0000000006760436000000000046004b000006150000c13d000000000003004b00000008060000290000000003060433000000000003004b00000007070000290000062d0000613d00000000030000190000000004010433000000000034004b000013730000a13d00000005043002100000000005420019000000000474001900000000040404330000065e04400197000000000045043500000001033000390000000004060433000000000043004b000006200000413d000000400300043d00000020040000390000000005430436000000000401043300000000004504350000004001300039000000000004004b0000073a0000613d000000000500001900000000260204340000065e0660019700000000016104360000000105500039000000000045004b000006360000413d0000073a0000013d0000000001000416000000000001004b000000520000c13d0000000201000039000000000101041a000000800010043f000006a301000041000019680001042e000000640030008c000000520000413d0000000002000416000000000002004b000000520000c13d0000002402100370000000000202043b000800000002001d0000000402100370000000000202043b000700000002001d0000004401100370000000000101043b000600000001001d000000000010043f0000000601000039000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000000000101041a000000000001004b000007aa0000613d000000ff0110018f000000070010008c00000afb0000213d000000040010008c00000000010000390000000101006039196717720000040f0000000701000029000000080200002900000006030000291967183e0000040f0000065e0110019700000b9c0000013d0000000001000416000000000001004b000000520000c13d0000000001030019196716e60000040f196717f00000040f00000b9c0000013d000000640030008c000000520000413d0000000002000416000000000002004b000000520000c13d0000002402100370000000000202043b000700000002001d0000000402100370000000000202043b000800000002001d0000004401100370000000000101043b000600000001001d000000000010043f0000000601000039000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000000000101041a000000000001004b000007aa0000613d000000ff0110018f000000070010008c00000afb0000213d000000010010008c00000c200000c13d0000000801000029000000000010043f0000000401000039000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000800000001001d000000400100043d0000006002100039000006b203000041000000000032043500000040021000390000000603000029000000000032043500000020021000390000000703000029000000000032043500000047030000390000000000310435000006a50010009c000005590000213d0000008003100039000000400030043f0000065b0020009c0000065b02008041000000400220021000000000010104330000065b0010009c0000065b010080410000006001100210000000000121019f00000000020004140000065b0020009c0000065b02008041000000c002200210000000000112019f0000069f011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000000000010043f0000000801000029000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000000000301041a000000400200043d000800000002001d000600000003001d0000000002320436000700000002001d000000000010043f00000000010004140000065b0010009c0000065b01008041000000c001100210000006a0011001c70000801002000039196719620000040f0000000100200190000000520000613d0000000605000029000000000005004b0000000702000029000006f60000613d000000000101043b00000000030000190000000702000029000000000401041a000000000242043600000001011000390000000103300039000000000053004b000006f00000413d000000080120006a0000001f01100039000006c5021001970000000801200029000000000021004b000000000200003900000001020040390000069d0010009c000005590000213d0000000100200190000005590000c13d000000400010043f000000080200002900000000020204330000069d0020009c000005590000213d00000005042002100000003f03400039000006b00330019700000000031300190000069d0030009c000005590000213d000000400030043f00000000022104360000001f0340018f000000000004004b000007190000613d0000000004420019000000000500003100000002055003670000000006020019000000005705043c0000000006760436000000000046004b000007150000c13d000000000003004b00000008060000290000000003060433000000000003004b00000007070000290000072c0000613d00000000030000190000000004010433000000000034004b000013730000a13d0000000504300210000000000542001900000000047400190000000004040433000000000045043500000001033000390000000004060433000000000043004b000007200000413d000000400300043d00000020040000390000000005430436000000000401043300000000004504350000004001300039000000000004004b0000073a0000613d0000000005000019000000002602043400000000016104360000000105500039000000000045004b000007350000413d00000000013100490000065b0010009c0000065b0100804100000060011002100000065b0030009c0000065b030080410000004002300210000000000121019f000019680001042e000000240030008c000000520000413d0000000002000416000000000002004b000000520000c13d0000000401100370000000000201043b000000000002004b0000000001000039000000010100c039000800000002001d000000000012004b000000520000c13d0000000101000039000000000201041a0000069801000041000000800010043f000006bd01000041000000840010043f0000000001000411000000a40010043f000000000100041400000008022002700000065e02200197000000040020008c00000a1a0000c13d0000000103000031000000200030008c0000002004000039000000000403401900000a3e0000013d000000640030008c000000520000413d0000000002000416000000000002004b000000520000c13d0000002402100370000000000202043b000800000002001d0000000402100370000000000202043b000700000002001d0000004401100370000000000101043b000600000001001d000000000010043f0000000601000039000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000000000101041a000000000001004b000007aa0000613d000000ff0110018f000000070010008c00000afb0000213d000000010010008c000000000100003900000001010060391967189a0000040f0000000701000029000000080200002900000006030000291967183e0000040f00000b9c0000013d000000640030008c000000520000413d0000000002000416000000000002004b000000520000c13d0000002402100370000000000202043b000800000002001d0000000402100370000000000202043b000700000002001d0000004401100370000000000101043b000600000001001d000000000010043f0000000601000039000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000000000101041a000000000001004b00000af80000c13d000000400100043d0000004402100039000006c2030000410000000000320435000000240210003900000013030000390000000000320435000006a70200004100000000002104350000000402100039000000200300003900000000003204350000065b0010009c0000065b010080410000004001100210000006a8011001c70000196900010430000000640030008c000000520000413d0000000002000416000000000002004b000000520000c13d0000004402100370000000000202043b000700000002001d0000002402100370000000000202043b000800000002001d0000000401100370000000000101043b000000000010043f0000000401000039000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b0000000802000029000000000020043f000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000000000201041a000000070020006b000000520000813d000000000010043f00000020020000390000000001000019196719480000040f0000000701100029000000000101041a00000b9c0000013d0000008001000039000000010220018f00000000002104350000004001100210000006a4011001c7000019680001042e0000065b0010009c0000065b01008041000000c0011002100000069a011001c7196719620000040f00000060031002700000065b03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000008060000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b000008020000c13d000000000006004b000008130000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f000000010020019000000a540000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200030008c000000520000413d000000800100043d000000000001004b0000000002000039000000010200c039000000000021004b000000520000c13d000000000001004b000009510000613d0000000701000029000000000010043f0000000601000039000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000000000101041a000000000001004b000007aa0000613d000000ff0310018f000000070030008c00000afb0000213d000000400200043d0000002401200039000300000002001d0000000402200039000000050030008c000010730000c13d0000000103000039000000000303041a0000069804000041000000030500002900000000004504350000069904000041000000000042043500000008020000290000000000210435000000000100041400000008023002700000065e02200197000000040020008c0000108c0000c13d0000000103000031000000200030008c00000020040000390000000004034019000010b50000013d0000065b0010009c0000065b01008041000000c0011002100000069a011001c7196719620000040f00000060031002700000065b03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000008650000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b000008610000c13d000000000006004b000008720000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f000000010020019000000a600000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200030008c000000520000413d000000800100043d000000000001004b0000000002000039000000010200c039000000000021004b000000520000c13d000000000001004b00000ba30000c13d000006a201000041000000000010043f000000070100002900000af30000013d0000065b0010009c0000065b01008041000000c0011002100000069a011001c7196719620000040f00000060031002700000065b03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf0000089b0000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b000008970000c13d000000000006004b000008a80000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f000000010020019000000a6c0000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200030008c000000520000413d000000800100043d000000000001004b0000000002000039000000010200c039000000000021004b000000520000c13d000000000001004b000009510000613d0000000701000029000000000010043f0000000601000039000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000000000101041a000000000001004b000007aa0000613d000000ff0110018f000000070010008c00000afb0000213d000000010010008c00000c200000c13d0000000101000039000000000201041a000000400400043d00000024014000390000000803000029000000000031043500000698010000410000000000140435000300000004001d000000040140003900000699030000410000000000310435000000000100041400000008022002700000065e02200197000000040020008c000011100000c13d0000000103000031000000200030008c00000020040000390000000004034019000011390000013d0000065b0010009c0000065b01008041000000c0011002100000069a011001c7196719620000040f00000060031002700000065b03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000008f90000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b000008f50000c13d000000000006004b000009060000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f000000010020019000000a780000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200030008c000000520000413d000000800100043d000000000001004b0000000002000039000000010200c039000000000021004b000000520000c13d000000000001004b00000ee00000c13d000006a201000041000000000010043f0000000001000411000000040010043f000006b601000041000000240010043f0000069c0100004100001969000104300000065b0010009c0000065b01008041000000c0011002100000069a011001c7196719620000040f00000060031002700000065b03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000009330000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b0000092f0000c13d000000000006004b000009400000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f000000010020019000000b010000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200030008c000000520000413d000000800100043d000000000001004b0000000002000039000000010200c039000000000021004b000000520000c13d000000000001004b00000bf30000c13d000006a201000041000000000010043f000000080100002900000af30000013d0000065b0010009c0000065b01008041000000c001100210000006ba011001c7196719620000040f00000060031002700000065b03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000009690000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b000009650000c13d000000000006004b000009760000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f000000010020019000000b370000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200030008c000000520000413d000000800300043d000000000003004b0000000002000039000000010200c039000000000023004b000000520000c13d000007ed0000013d0000065b0010009c0000065b01008041000000c0011002100000069a011001c7196719620000040f00000060031002700000065b03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf0000099a0000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b000009960000c13d000000000006004b000009a70000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f000000010020019000000b430000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200030008c000000520000413d000000800100043d000000000001004b0000000002000039000000010200c039000000000021004b000000520000c13d000000000001004b00000af00000613d0000000801000029000000000010043f0000000601000039000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000000000101041a000000000001004b000007aa0000613d000000ff0110018f000000080010008c00000afb0000813d000000040010008c00000c240000c13d0000000101000039000000000201041a000000400400043d00000024014000390000000403000029000000000031043500000698010000410000000000140435000300000004001d000000040140003900000699030000410000000000310435000000000100041400000008022002700000065e02200197000000040020008c000012230000c13d0000000103000031000000200030008c000000200400003900000000040340190000124c0000013d0000065b0010009c0000065b01008041000000c0011002100000069a011001c7196719620000040f00000060031002700000065b03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000009f80000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b000009f40000c13d000000000006004b00000a050000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f000000010020019000000b4f0000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200030008c000000520000413d000000800100043d000000000001004b0000000002000039000000010200c039000000000021004b000000520000c13d000000000001004b00000c2b0000c13d000006a201000041000000000010043f000000060100002900000af30000013d0000065b0010009c0000065b01008041000000c0011002100000069a011001c7196719620000040f00000060031002700000065b03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf00000a2e0000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b00000a2a0000c13d000000000006004b00000a3b0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f000000010020019000000b5b0000613d0000001f01400039000000600210018f00000080012001bf000000400010043f000000200030008c000000520000413d000000800300043d000000000003004b0000000004000039000000010400c039000000000043004b000000520000c13d000000000003004b00000c5c0000c13d000006a201000041000000000010043f0000000001000411000000040010043f000006bd01000041000000240010043f0000069c0100004100001969000104300000001f0530018f0000065d06300198000000400200043d000000000462001900000b7e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000a5b0000c13d00000b7e0000013d0000001f0530018f0000065d06300198000000400200043d000000000462001900000b7e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000a670000c13d00000b7e0000013d0000001f0530018f0000065d06300198000000400200043d000000000462001900000b7e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000a730000c13d00000b7e0000013d0000001f0530018f0000065d06300198000000400200043d000000000462001900000b7e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000a7f0000c13d00000b7e0000013d0000065b0010009c0000065b01008041000000c0011002100000069a011001c7196719620000040f00000060031002700000065b03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf00000a980000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b00000a940000c13d000000000006004b00000aa50000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f000000010020019000000b670000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200030008c000000520000413d000000800100043d000000000001004b0000000002000039000000010200c039000000000021004b000000520000c13d000000000001004b00000c710000c13d000006a201000041000000000010043f0000000001000411000000040010043f000006ac01000041000000240010043f0000069c0100004100001969000104300000065b0010009c0000065b01008041000000c0011002100000069a011001c7196719620000040f000000800a00003900000060031002700000065b03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf00000ad20000613d000000000801034f000000008908043c000000000a9a043600000000005a004b00000ace0000c13d000000000006004b00000adf0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f000000010020019000000b730000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200030008c000000520000413d000000800100043d000000000001004b0000000002000039000000010200c039000000000021004b000000520000c13d000000000001004b00000c7c0000c13d000006a201000041000000000010043f0000000401000029000000040010043f0000069901000041000000240010043f0000069c010000410000196900010430000000ff0110018f000000070010008c00000b910000a13d000006aa01000041000000000010043f0000002101000039000000040010043f000006ab0100004100001969000104300000001f0530018f0000065d06300198000000400200043d000000000462001900000b7e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000b080000c13d00000b7e0000013d0000008006600039000500000006001d000000400060043f000000800050043f00000024022000390000000004240019000000000034004b000000520000213d000000000005004b00000b200000613d000000a003000039000000000521034f000000000505043b00000000035304360000002002200039000000000042004b00000b180000413d000000400100043d000500000001001d0000000101000039000000000201041a00000698010000410000000504000029000000000014043500000004014000390000069903000041000000000031043500000000010004110000065e031001970000002401400039000400000003001d0000000000310435000000000100041400000008022002700000065e02200197000000040020008c00000df30000c13d0000000103000031000000200030008c0000002004000039000000000403401900000e1d0000013d0000001f0530018f0000065d06300198000000400200043d000000000462001900000b7e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000b3e0000c13d00000b7e0000013d0000001f0530018f0000065d06300198000000400200043d000000000462001900000b7e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000b4a0000c13d00000b7e0000013d0000001f0530018f0000065d06300198000000400200043d000000000462001900000b7e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000b560000c13d00000b7e0000013d0000001f0530018f0000065d06300198000000400200043d000000000462001900000b7e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000b620000c13d00000b7e0000013d0000001f0530018f0000065d06300198000000400200043d000000000462001900000b7e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000b6e0000c13d00000b7e0000013d0000001f0530018f0000065d06300198000000400200043d000000000462001900000b7e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000b7a0000c13d000000000005004b00000b8b0000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000065b0020009c0000065b020080410000004002200210000000000112019f0000196900010430000000030010008c000000000100003900000001010060391967182a0000040f0000000701000029000000080200002900000006030000291967183e0000040f000000010010008c00000000010000390000000101006039000000400200043d00000000001204350000065b0020009c0000065b020080410000004001200210000006a4011001c7000019680001042e0000000801000029000000000010043f0000000301000039000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000700000001001d000000400100043d000000400210003900000006030000290000000000320435000000200210003900000005030000290000000000320435000000400300003900000000003104350000069e0010009c000005590000213d0000006003100039000000400030043f0000065b0020009c0000065b02008041000000400220021000000000010104330000065b0010009c0000065b010080410000006001100210000000000121019f00000000020004140000065b0020009c0000065b02008041000000c002200210000000000112019f0000069f011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000000000010043f0000000701000029000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b0000000402000029000000000021041b000000400100043d00000000002104350000065b0010009c0000065b01008041000000400110021000000000020004140000065b0020009c0000065b02008041000000c002200210000000000112019f000006a0011001c70000800d020000390000000403000039000006a10400004100000008050000290000000506000029000000060700002900000edd0000013d0000000701000029000000000010043f0000000601000039000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000000000101041a000000000001004b000007aa0000613d000000ff0310018f000000070030008c00000afb0000213d000000400200043d0000002401200039000300000002001d0000000402200039000000020030008c0000107d0000c13d0000000103000039000000000303041a0000069804000041000000030500002900000000004504350000069904000041000000000042043500000008020000290000000000210435000000000100041400000008023002700000065e02200197000000040020008c000011940000c13d0000000103000031000000200030008c00000020040000390000000004034019000011bd0000013d000000400100043d0000004402100039000006b50300004100000c270000013d000000400100043d0000004402100039000006c103000041000000000032043500000024021000390000001503000039000007b00000013d0000000801000029000000000010043f0000000601000039000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000000000101041a000000000001004b000010540000c13d0000000801000029000000000010043f0000000601000039000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b0000000702000029000000000021041b000000400100043d00000000002104350000065b0010009c0000065b01008041000000400110021000000000020004140000065b0020009c0000065b02008041000000c002200210000000000112019f000006a0011001c70000800d020000390000000203000039000006c404000041000000080500002900000edd0000013d0000000103000039000000000503041a000000ff0450018f000000080000006b00000ecd0000c13d000000000004004b00000ee20000613d000006c602500197000000000023041b00000000020004110000000000210435000000400110021000000000020004140000065b0020009c0000065b02008041000000c002200210000000000112019f000006a0011001c70000800d02000039000006bf0400004100000edd0000013d00000008010000290000065e00100198000000080110021000000660011001970000000103000039000000000203041a000006ad02200197000000000112019f000000000013041b000000800000613d00000ee00000013d0000000801000029000000000010043f0000000601000039000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000000000101041a000000000001004b000007aa0000613d000000ff0110018f000000070010008c00000afb0000213d000000030010008c00000ca80000c13d0000000101000039000000000201041a000000400400043d00000024014000390000000403000029000000000031043500000698010000410000000000140435000300000004001d000000040140003900000699030000410000000000310435000000000100041400000008022002700000065e02200197000000040020008c000012a80000c13d0000000103000031000000200030008c00000020040000390000000004034019000012d10000013d000000400100043d0000004402100039000006b703000041000000000032043500000024021000390000001203000039000007b00000013d0000000503000029000500000003001d0000065b0030009c0000065b0300804100000040033002100000065b0010009c0000065b01008041000000c001100210000000000131019f0000069c011001c7196719620000040f00000060031002700000065b03300197000000200030008c000000200400003900000000040340190000001f0640018f0000002007400190000000050570002900000cc90000613d000000000801034f0000000509000029000000008a08043c0000000009a90436000000000059004b00000cc50000c13d000000000006004b00000cd60000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0000000100200190000010300000613d0000001f01400039000000600210018f0000000501200029000000000021004b000000000200003900000001020040390000069d0010009c000005590000213d0000000100200190000005590000c13d000000400010043f000000200030008c000000520000413d00000005010000290000000001010433000000000001004b0000000002000039000000010200c039000000000021004b000000520000c13d000000000001004b00000af00000613d0000000801000029000000000010043f0000000601000039000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000000000101041a000000000001004b000007aa0000613d000000ff0110018f000000070010008c00000afb0000213d000000010010008c000013790000c13d000000800200043d0000069d0020009c000005590000213d00000005012002100000003f03100039000006b003300197000000400400043d0000000003340019000300000004001d000000000043004b000000000400003900000001040040390000069d0030009c000005590000213d0000000100400190000005590000c13d000000400030043f00000003030000290000000002230436000500000002001d0000001f0210018f000000000001004b00000d240000613d0000000504000029000000000114001900000000030000310000000203300367000000003503043c0000000004540436000000000014004b00000d200000c13d000000000002004b000000800100043d000000000001004b0000000504000029000000030500002900000d370000613d00000000010000190000000002050433000000000012004b000013730000a13d00000005021002100000000003420019000000a002200039000000000202043300000000002304350000000101100039000000800200043d000000000021004b00000d2b0000413d0000000101000039000000000201041a000000400400043d00000024014000390000000403000029000000000031043500000698010000410000000000140435000200000004001d000000040140003900000699030000410000000000310435000000000100041400000008022002700000065e02200197000000040020008c0000138e0000c13d0000000103000031000000200030008c00000020040000390000000004034019000013b70000013d00000005030000290000065b0030009c0000065b0300804100000040033002100000065b0010009c0000065b01008041000000c001100210000000000131019f0000069c011001c7196719620000040f00000060031002700000065b03300197000000200030008c000000200400003900000000040340190000001f0640018f0000002007400190000000050570002900000d660000613d000000000801034f0000000509000029000000008a08043c0000000009a90436000000000059004b00000d620000c13d000000000006004b00000d730000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00000001002001900000103c0000613d0000001f01400039000000600210018f0000000501200029000000000021004b000000000200003900000001020040390000069d0010009c000005590000213d0000000100200190000005590000c13d000000400010043f000000200030008c000000520000413d00000005010000290000000001010433000000000001004b0000000002000039000000010200c039000000000021004b000000520000c13d000000000001004b00000af00000613d0000000801000029000000000010043f0000000601000039000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000000000101041a000000000001004b000007aa0000613d000000ff0210018f000000070020008c00000afb0000213d000000400100043d000000060020008c0000137d0000c13d00000040021000390000000803000029000000000032043500000040020000390000000002210436000000070300002900000000003204350000069e0010009c000005590000213d0000006003100039000000400030043f0000065b0020009c0000065b02008041000000400220021000000000010104330000065b0010009c0000065b010080410000006001100210000000000121019f00000000020004140000065b0020009c0000065b02008041000000c002200210000000000112019f0000069f011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000500000001001d0000000601000029000000000010043f0000000501000039000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b0000000502000029000000000020043f000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000500000001001d000000800100043d000400000001001d0000069d0010009c000005590000213d0000000501000029000000000101041a000000010210019000000001011002700000007f0110618f000300000001001d0000001f0010008c00000000010000390000000101002039000000000012004b0000162a0000613d000006aa01000041000000000010043f0000002201000039000000040010043f000006ab0100004100001969000104300000000503000029000500000003001d0000065b0030009c0000065b0300804100000040033002100000065b0010009c0000065b01008041000000c001100210000000000131019f0000069c011001c7196719620000040f00000060031002700000065b03300197000000200030008c000000200400003900000000040340190000001f0640018f0000002007400190000000050570002900000e0d0000613d000000000801034f0000000509000029000000008a08043c0000000009a90436000000000059004b00000e090000c13d000000000006004b00000e1a0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0000000100200190000010480000613d0000001f01400039000000600210018f0000000501200029000000000021004b000000000200003900000001020040390000069d0010009c000005590000213d0000000100200190000005590000c13d000000400010043f000000200030008c000000520000413d00000005010000290000000001010433000000000001004b0000000002000039000000010200c039000000000021004b000000520000c13d000000000001004b00000af00000613d0000000801000029000000000010043f0000000401000039000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000500000001001d000000400100043d0000006002100039000006b203000041000000000032043500000040021000390000000703000029000000000032043500000020021000390000000603000029000000000032043500000047030000390000000000310435000006a50010009c000005590000213d0000008003100039000000400030043f0000065b0020009c0000065b02008041000000400220021000000000010104330000065b0010009c0000065b010080410000006001100210000000000121019f00000000020004140000065b0020009c0000065b02008041000000c002200210000000000112019f0000069f011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000000000010043f0000000501000029000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000500000001001d000000800100043d000400000001001d0000069d0010009c000005590000213d0000000502000029000000000302041a0000000401000029000000000012041b000300000003001d000000000031004b00000e920000813d0000000501000029000000000010043f00000000010004140000065b0010009c0000065b01008041000000c001100210000006a0011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000201043b00000004012000290000000302200029000000000021004b00000e920000813d000000000001041b0000000101100039000000000021004b00000e8e0000413d0000000501000029000000000010043f00000000010004140000065b0010009c0000065b01008041000000c001100210000006a0011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b0000000406000029000000000006004b00000ea90000613d000000a002000039000000000300001900000000041300190000000025020434000000000054041b0000000103300039000000000063004b00000ea30000413d000000400100043d00000020020000390000000002210436000000800300043d00000000003204350000004002100039000000000003004b00000eb80000613d000000a0040000390000000005000019000000004604043400000000026204360000000105500039000000000035004b00000eb30000413d00000000021200490000065b0020009c0000065b0200804100000060022002100000065b0010009c0000065b010080410000004001100210000000000112019f00000000020004140000065b0020009c0000065b02008041000000c002200210000000000121019f0000069f011001c70000800d020000390000000403000039000006b30400004100000008050000290000000606000029000000070700002900000edd0000013d000000000004004b00000ee20000c13d000006c60250019700000001022001bf000000000023041b00000000020004110000000000210435000000400110021000000000020004140000065b0020009c0000065b02008041000000c002200210000000000112019f000006a0011001c70000800d02000039000006be040000411967195d0000040f0000000100200190000000520000613d0000000001000019000019680001042e000006a703000041000000000031043500000084032001bf00000020040000390000000000430435000000c403200039000006c0040000410000000000430435000000a402200039000000140300003900000000003204350000004001100210000006a8011001c700001969000104300000000503000029000500000003001d0000065b0030009c0000065b0300804100000040033002100000065b0010009c0000065b01008041000000c001100210000000000131019f0000069c011001c7196719620000040f00000060031002700000065b03300197000000200030008c000000200400003900000000040340190000001f0640018f0000002007400190000000050570002900000f0a0000613d000000000801034f0000000509000029000000008a08043c0000000009a90436000000000059004b00000f060000c13d000000000006004b00000f170000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00000001002001900000105b0000613d0000001f01400039000000600210018f0000000501200029000000000021004b000000000200003900000001020040390000069d0010009c000005590000213d0000000100200190000005590000c13d000000400010043f000000200030008c000000520000413d00000005010000290000000001010433000000000001004b0000000002000039000000010200c039000000000021004b000000520000c13d000000000001004b00000af00000613d0000000801000029000000000010043f0000000601000039000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000000000101041a000000000001004b000007aa0000613d000000ff0110018f000000070010008c00000afb0000213d000000040010008c000013830000c13d000000800200043d0000069d0020009c000005590000213d00000005012002100000003f03100039000006b003300197000000400400043d0000000003340019000300000004001d000000000043004b000000000400003900000001040040390000069d0030009c000005590000213d0000000100400190000005590000c13d000000400030043f00000003030000290000000002230436000500000002001d0000001f0210018f000000000001004b00000f650000613d0000000504000029000000000114001900000000030000310000000203300367000000003503043c0000000004540436000000000014004b00000f610000c13d000000000002004b000000800100043d000000000001004b0000000504000029000000030500002900000f790000613d00000000010000190000000002050433000000000012004b000013730000a13d00000005021002100000000003420019000000a00220003900000000020204330000065e0220019700000000002304350000000101100039000000800200043d000000000021004b00000f6c0000413d0000000101000039000000000201041a000000400400043d00000024014000390000000403000029000000000031043500000698010000410000000000140435000200000004001d000000040140003900000699030000410000000000310435000000000100041400000008022002700000065e02200197000000040020008c0000145e0000c13d0000000103000031000000200030008c00000020040000390000000004034019000014870000013d0000000503000029000500000003001d0000065b0030009c0000065b0300804100000040033002100000065b0010009c0000065b01008041000000c001100210000000000131019f0000069c011001c7196719620000040f00000060031002700000065b03300197000000200030008c000000200400003900000000040340190000001f0640018f0000002007400190000000050570002900000fa90000613d000000000801034f0000000509000029000000008a08043c0000000009a90436000000000059004b00000fa50000c13d000000000006004b00000fb60000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0000000100200190000010670000613d0000001f01400039000000600210018f0000000501200029000000000021004b000000000200003900000001020040390000069d0010009c000005590000213d0000000100200190000005590000c13d000000400010043f000000200030008c000000520000413d00000005010000290000000001010433000000000001004b0000000002000039000000010200c039000000000021004b000000520000c13d000000000001004b00000af00000613d0000000801000029000000000010043f0000000601000039000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000000000101041a000000000001004b000007aa0000613d000000ff0110018f000000070010008c00000afb0000213d000000030010008c0000138a0000c13d000000800200043d0000069d0020009c000005590000213d00000005012002100000003f03100039000006b003300197000000400400043d0000000003340019000300000004001d000000000043004b000000000400003900000001040040390000069d0030009c000005590000213d0000000100400190000005590000c13d000000400030043f00000003030000290000000002230436000500000002001d0000001f0210018f000000000001004b000010040000613d0000000504000029000000000114001900000000030000310000000203300367000000003503043c0000000004540436000000000014004b000010000000c13d000000000002004b000000800100043d000000000001004b000000050400002900000003050000290000101a0000613d00000000010000190000000002050433000000000012004b000013730000a13d00000005021002100000000003240019000000a0022000390000000002020433000000000002004b0000000002000039000000010200c03900000000002304350000000101100039000000800200043d000000000021004b0000100b0000413d0000000101000039000000000201041a000000400400043d00000024014000390000000403000029000000000031043500000698010000410000000000140435000200000004001d000000040140003900000699030000410000000000310435000000000100041400000008022002700000065e02200197000000040020008c0000152e0000c13d0000000103000031000000200030008c00000020040000390000000004034019000015570000013d0000001f0530018f0000065d06300198000000400200043d000000000462001900000b7e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000010370000c13d00000b7e0000013d0000001f0530018f0000065d06300198000000400200043d000000000462001900000b7e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000010430000c13d00000b7e0000013d0000001f0530018f0000065d06300198000000400200043d000000000462001900000b7e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000104f0000c13d00000b7e0000013d000000400100043d0000004402100039000006c303000041000000000032043500000024021000390000001703000039000007b00000013d0000001f0530018f0000065d06300198000000400200043d000000000462001900000b7e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000010620000c13d00000b7e0000013d0000001f0530018f0000065d06300198000000400200043d000000000462001900000b7e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000106e0000c13d00000b7e0000013d000006a7030000410000000304000029000000000034043500000020030000390000000000320435000000150200003900000000002104350000004401400039000006bc02000041000010860000013d000006a7030000410000000304000029000000000034043500000020030000390000000000320435000000140200003900000000002104350000004401400039000006b80200004100000000002104350000065b0040009c0000065b040080410000004001400210000006a8011001c7000019690001043000000003030000290000065b0030009c0000065b0300804100000040033002100000065b0010009c0000065b01008041000000c001100210000000000131019f0000069c011001c7196719620000040f00000060031002700000065b03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000305700029000010a50000613d000000000801034f0000000309000029000000008a08043c0000000009a90436000000000059004b000010a10000c13d000000000006004b000010b20000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0000000100200190000013370000613d0000001f01400039000000600210018f0000000301200029000000000021004b000000000200003900000001020040390000069d0010009c000005590000213d0000000100200190000005590000c13d000000400010043f000000200030008c000000520000413d00000003010000290000000001010433000000000001004b0000000002000039000000010200c039000000000021004b000000520000c13d000000000001004b000009510000613d0000000601000029000000000010043f0000000301000039000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000800000001001d000000400100043d000000400210003900000007030000290000000000320435000000200210003900000005030000290000000000320435000000400300003900000000003104350000069e0010009c000005590000213d0000006003100039000000400030043f0000065b0020009c0000065b02008041000000400220021000000000010104330000065b0010009c0000065b010080410000006001100210000000000121019f00000000020004140000065b0020009c0000065b02008041000000c002200210000000000112019f0000069f011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000000000010043f0000000801000029000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b0000000402000029000000000021041b000000400100043d00000000002104350000065b0010009c0000065b0100804100000040011002100000000002000414000012170000013d00000003030000290000065b0030009c0000065b0300804100000040033002100000065b0010009c0000065b01008041000000c001100210000000000131019f0000069c011001c7196719620000040f00000060031002700000065b03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000305700029000011290000613d000000000801034f0000000309000029000000008a08043c0000000009a90436000000000059004b000011250000c13d000000000006004b000011360000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0000000100200190000013430000613d0000001f01400039000000600210018f0000000301200029000000000021004b000000000200003900000001020040390000069d0010009c000005590000213d0000000100200190000005590000c13d000000400010043f000000200030008c000000520000413d00000003010000290000000001010433000000000001004b0000000002000039000000010200c039000000000021004b000000520000c13d000000000001004b000009510000613d0000000601000029000000000010043f0000000301000039000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000800000001001d000000400100043d000000400210003900000007030000290000000000320435000000200210003900000005030000290000000000320435000000400300003900000000003104350000069e0010009c000005590000213d0000006003100039000000400030043f0000065b0020009c0000065b02008041000000400220021000000000010104330000065b0010009c0000065b010080410000006001100210000000000121019f00000000020004140000065b0020009c0000065b02008041000000c002200210000000000112019f0000069f011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000000000010043f0000000801000029000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b0000000402000029000000000021041b000000400100043d00000000002104350000065b0010009c0000065b0100804100000040011002100000000002000414000012170000013d00000003030000290000065b0030009c0000065b0300804100000040033002100000065b0010009c0000065b01008041000000c001100210000000000131019f0000069c011001c7196719620000040f00000060031002700000065b03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000305700029000011ad0000613d000000000801034f0000000309000029000000008a08043c0000000009a90436000000000059004b000011a90000c13d000000000006004b000011ba0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00000001002001900000134f0000613d0000001f01400039000000600210018f0000000301200029000000000021004b000000000200003900000001020040390000069d0010009c000005590000213d0000000100200190000005590000c13d000000400010043f000000200030008c000000520000413d00000003010000290000000001010433000000000001004b0000000002000039000000010200c039000000000021004b000000520000c13d000000000001004b000009510000613d0000000601000029000000000010043f0000000301000039000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000800000001001d000000400100043d000000400210003900000007030000290000000000320435000000200210003900000005030000290000000000320435000000400300003900000000003104350000069e0010009c000005590000213d0000006003100039000000400030043f0000065b0020009c0000065b02008041000000400220021000000000010104330000065b0010009c0000065b010080410000006001100210000000000121019f00000000020004140000065b0020009c0000065b02008041000000c002200210000000000112019f0000069f011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000000000010043f0000000801000029000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b0000000402000029000000000021041b000000400100043d00000000002104350000065b0010009c0000065b01008041000000400110021000000000020004140000065b0020009c0000065b02008041000000c002200210000000000112019f000006a0011001c70000800d020000390000000403000039000006a10400004100000006050000290000000506000029000000070700002900000edd0000013d00000003030000290000065b0030009c0000065b0300804100000040033002100000065b0010009c0000065b01008041000000c001100210000000000131019f0000069c011001c7196719620000040f00000060031002700000065b03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000003057000290000123c0000613d000000000801034f0000000309000029000000008a08043c0000000009a90436000000000059004b000012380000c13d000000000006004b000012490000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00000001002001900000135b0000613d0000001f01400039000000600210018f0000000301200029000000000021004b000000000200003900000001020040390000069d0010009c000005590000213d0000000100200190000005590000c13d000000400010043f000000200030008c000000520000413d00000003010000290000000001010433000000000001004b0000000002000039000000010200c039000000000021004b000000520000c13d000000000001004b00000af00000613d0000000701000029000000000010043f0000000301000039000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000400000001001d000000400100043d000000400210003900000008030000290000000000320435000000200210003900000006030000290000000000320435000000400300003900000000003104350000069e0010009c000005590000213d0000006003100039000000400030043f0000065b0020009c0000065b02008041000000400220021000000000010104330000065b0010009c0000065b010080410000006001100210000000000121019f00000000020004140000065b0020009c0000065b02008041000000c002200210000000000112019f0000069f011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000000000010043f0000000401000029000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d00000005020000290000065e02200197000000000101043b000000000021041b000000400100043d00000000002104350000065b0010009c0000065b01008041000000400110021000000000020004140000132b0000013d00000003030000290000065b0030009c0000065b0300804100000040033002100000065b0010009c0000065b01008041000000c001100210000000000131019f0000069c011001c7196719620000040f00000060031002700000065b03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000305700029000012c10000613d000000000801034f0000000309000029000000008a08043c0000000009a90436000000000059004b000012bd0000c13d000000000006004b000012ce0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0000000100200190000013670000613d0000001f01400039000000600210018f0000000301200029000000000021004b000000000200003900000001020040390000069d0010009c000005590000213d0000000100200190000005590000c13d000000400010043f000000200030008c000000520000413d00000003010000290000000001010433000000000001004b0000000002000039000000010200c039000000000021004b000000520000c13d000000000001004b00000af00000613d0000000701000029000000000010043f0000000301000039000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000400000001001d000000400100043d000000400210003900000008030000290000000000320435000000200210003900000006030000290000000000320435000000400300003900000000003104350000069e0010009c000005590000213d0000006003100039000000400030043f0000065b0020009c0000065b02008041000000400220021000000000010104330000065b0010009c0000065b010080410000006001100210000000000121019f00000000020004140000065b0020009c0000065b02008041000000c002200210000000000112019f0000069f011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000000000010043f0000000401000029000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b0000000502000029000000000021041b000000400100043d00000000002104350000065b0010009c0000065b01008041000000400110021000000000020004140000065b0020009c0000065b02008041000000c002200210000000000112019f000006a0011001c70000800d020000390000000403000039000006a10400004100000007050000290000000606000029000000080700002900000edd0000013d0000001f0530018f0000065d06300198000000400200043d000000000462001900000b7e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000133e0000c13d00000b7e0000013d0000001f0530018f0000065d06300198000000400200043d000000000462001900000b7e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000134a0000c13d00000b7e0000013d0000001f0530018f0000065d06300198000000400200043d000000000462001900000b7e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000013560000c13d00000b7e0000013d0000001f0530018f0000065d06300198000000400200043d000000000462001900000b7e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000013620000c13d00000b7e0000013d0000001f0530018f0000065d06300198000000400200043d000000000462001900000b7e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000136e0000c13d00000b7e0000013d000006aa01000041000000000010043f0000003201000039000000040010043f000006ab010000410000196900010430000000400100043d0000004402100039000006b403000041000013860000013d0000004402100039000006a603000041000000000032043500000024021000390000001403000039000007b00000013d000000400100043d0000004402100039000006bb03000041000000000032043500000024021000390000001a03000039000007b00000013d000000400100043d0000004402100039000006b103000041000010570000013d00000002030000290000065b0030009c0000065b0300804100000040033002100000065b0010009c0000065b01008041000000c001100210000000000131019f0000069c011001c7196719620000040f00000060031002700000065b03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000205700029000013a70000613d000000000801034f0000000209000029000000008a08043c0000000009a90436000000000059004b000013a30000c13d000000000006004b000013b40000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0000000100200190000016060000613d0000001f01400039000000600210018f0000000201200029000000000021004b000000000200003900000001020040390000069d0010009c000005590000213d0000000100200190000005590000c13d000000400010043f000000200030008c000000520000413d00000002010000290000000001010433000000000001004b0000000002000039000000010200c039000000000021004b000000520000c13d000000000001004b00000af00000613d0000000701000029000000000010043f0000000401000039000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000400000001001d000000400100043d0000006002100039000006b203000041000000000032043500000040021000390000000803000029000000000032043500000020021000390000000603000029000000000032043500000047030000390000000000310435000006a50010009c000005590000213d0000008003100039000000400030043f0000065b0020009c0000065b02008041000000400220021000000000010104330000065b0010009c0000065b010080410000006001100210000000000121019f00000000020004140000065b0020009c0000065b02008041000000c002200210000000000112019f0000069f011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000000000010043f0000000401000029000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000200000001001d00000003010000290000000001010433000400000001001d0000069d0010009c000005590000213d0000000202000029000000000302041a0000000401000029000000000012041b000100000003001d000000000031004b0000142d0000813d0000000201000029000000000010043f00000000010004140000065b0010009c0000065b01008041000000c001100210000006a0011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000201043b00000004012000290000000102200029000000000021004b0000142d0000813d000000000001041b0000000101100039000000000021004b000014290000413d0000000201000029000000000010043f00000000010004140000065b0010009c0000065b01008041000000c001100210000006a0011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000000040000006b000014430000613d0000000002000019000000050300002900000000041200190000000035030434000000000054041b0000000102200039000000040020006c0000143d0000413d000000400100043d000000200200003900000000022104360000000303000029000000000303043300000000003204350000004002100039000000000003004b000014540000613d000000000400001900000005060000290000000065060434000500000006001d00000000025204360000000104400039000000000034004b0000144d0000413d00000000021200490000065b0020009c0000065b0200804100000060022002100000065b0010009c0000065b010080410000004001100210000000000112019f0000000002000414000015fd0000013d00000002030000290000065b0030009c0000065b0300804100000040033002100000065b0010009c0000065b01008041000000c001100210000000000131019f0000069c011001c7196719620000040f00000060031002700000065b03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000205700029000014770000613d000000000801034f0000000209000029000000008a08043c0000000009a90436000000000059004b000014730000c13d000000000006004b000014840000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0000000100200190000016120000613d0000001f01400039000000600210018f0000000201200029000000000021004b000000000200003900000001020040390000069d0010009c000005590000213d0000000100200190000005590000c13d000000400010043f000000200030008c000000520000413d00000002010000290000000001010433000000000001004b0000000002000039000000010200c039000000000021004b000000520000c13d000000000001004b00000af00000613d0000000701000029000000000010043f0000000401000039000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000400000001001d000000400100043d0000006002100039000006b203000041000000000032043500000040021000390000000803000029000000000032043500000020021000390000000603000029000000000032043500000047030000390000000000310435000006a50010009c000005590000213d0000008003100039000000400030043f0000065b0020009c0000065b02008041000000400220021000000000010104330000065b0010009c0000065b010080410000006001100210000000000121019f00000000020004140000065b0020009c0000065b02008041000000c002200210000000000112019f0000069f011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000000000010043f0000000401000029000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000200000001001d00000003010000290000000001010433000400000001001d0000069d0010009c000005590000213d0000000202000029000000000302041a0000000401000029000000000012041b000100000003001d000000000031004b000014fd0000813d0000000201000029000000000010043f00000000010004140000065b0010009c0000065b01008041000000c001100210000006a0011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000201043b00000004012000290000000102200029000000000021004b000014fd0000813d000000000001041b0000000101100039000000000021004b000014f90000413d0000000201000029000000000010043f00000000010004140000065b0010009c0000065b01008041000000c001100210000006a0011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000000040000006b000015130000613d0000000002000019000000050300002900000000041200190000000035030434000000000054041b0000000102200039000000040020006c0000150d0000413d000000400100043d000000200200003900000000022104360000000303000029000000000303043300000000003204350000004002100039000000000003004b000015240000613d000000000400001900000005060000290000000065060434000500000006001d00000000025204360000000104400039000000000034004b0000151d0000413d00000000021200490000065b0020009c0000065b0200804100000060022002100000065b0010009c0000065b010080410000004001100210000000000112019f0000000002000414000015fd0000013d00000002030000290000065b0030009c0000065b0300804100000040033002100000065b0010009c0000065b01008041000000c001100210000000000131019f0000069c011001c7196719620000040f00000060031002700000065b03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000205700029000015470000613d000000000801034f0000000209000029000000008a08043c0000000009a90436000000000059004b000015430000c13d000000000006004b000015540000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00000001002001900000161e0000613d0000001f01400039000000600210018f0000000201200029000000000021004b000000000200003900000001020040390000069d0010009c000005590000213d0000000100200190000005590000c13d000000400010043f000000200030008c000000520000413d00000002010000290000000001010433000000000001004b0000000002000039000000010200c039000000000021004b000000520000c13d000000000001004b00000af00000613d0000000701000029000000000010043f0000000401000039000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000400000001001d000000400100043d0000006002100039000006b203000041000000000032043500000040021000390000000803000029000000000032043500000020021000390000000603000029000000000032043500000047030000390000000000310435000006a50010009c000005590000213d0000008003100039000000400030043f0000065b0020009c0000065b02008041000000400220021000000000010104330000065b0010009c0000065b010080410000006001100210000000000121019f00000000020004140000065b0020009c0000065b02008041000000c002200210000000000112019f0000069f011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000000000010043f0000000401000029000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000200000001001d00000003010000290000000001010433000400000001001d0000069d0010009c000005590000213d0000000202000029000000000302041a0000000401000029000000000012041b000100000003001d000000000031004b000015cd0000813d0000000201000029000000000010043f00000000010004140000065b0010009c0000065b01008041000000c001100210000006a0011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000201043b00000004012000290000000102200029000000000021004b000015cd0000813d000000000001041b0000000101100039000000000021004b000015c90000413d0000000201000029000000000010043f00000000010004140000065b0010009c0000065b01008041000000c001100210000006a0011001c70000801002000039196719620000040f0000000100200190000000520000613d000000000101043b000000040000006b000015e30000613d0000000002000019000000050300002900000000041200190000000035030434000000000054041b0000000102200039000000040020006c000015dd0000413d000000400100043d000000200200003900000000022104360000000303000029000000000303043300000000003204350000004002100039000000000003004b000015f40000613d000000000400001900000005060000290000000065060434000500000006001d00000000025204360000000104400039000000000034004b000015ed0000413d00000000021200490000065b0020009c0000065b0200804100000060022002100000065b0010009c0000065b010080410000004001100210000000000112019f00000000020004140000065b0020009c0000065b02008041000000c002200210000000000121019f0000069f011001c70000800d020000390000000403000039000006b304000041000013330000013d0000001f0530018f0000065d06300198000000400200043d000000000462001900000b7e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000160d0000c13d00000b7e0000013d0000001f0530018f0000065d06300198000000400200043d000000000462001900000b7e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000016190000c13d00000b7e0000013d0000001f0530018f0000065d06300198000000400200043d000000000462001900000b7e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000016250000c13d00000b7e0000013d0000000301000029000000200010008c000016490000413d0000000501000029000000000010043f00000000010004140000065b0010009c0000065b01008041000000c001100210000006a0011001c70000801002000039196719620000040f0000000100200190000000520000613d00000004030000290000001f023000390000000502200270000000200030008c0000000002004019000000000301043b00000003010000290000001f01100039000000050110027000000000011300190000000002230019000000000012004b000016490000813d000000000002041b0000000102200039000000000012004b000016450000413d00000004010000290000001f0010008c0000165d0000a13d0000000501000029000000000010043f00000000010004140000065b0010009c0000065b01008041000000c001100210000006a0011001c70000801002000039196719620000040f0000000100200190000000520000613d000000200200008a0000000402200180000000000101043b000016690000c13d000000a003000039000016770000013d000000040000006b0000000001000019000016610000613d000000a00100043d00000004040000290000000302400210000006c70220027f000006c702200167000000000121016f0000000102400210000000000121019f000016840000013d000000010320008a0000000503300270000000000331001900000020040000390000000103300039000000000504001900000080044000390000000004040433000000000041041b00000020045000390000000101100039000000000031004b0000166e0000c13d000000a003500039000000040020006c000016810000813d00000004020000290000000302200210000000f80220018f000006c70220027f000006c7022001670000000003030433000000000223016f000000000021041b0000000401000029000000010110021000000001011001bf0000000502000029000000000012041b0000002002000039000000400100043d0000000003210436000000800200043d0000000000230435000006c5052001970000001f0420018f0000004003100039000000a10030008c000016a00000413d000000000005004b0000169b0000613d000000000743001900000080064001bf000000200770008a0000000008570019000000000956001900000000090904330000000000980435000000200550008c000016950000c13d000000000004004b000016b60000613d000000a0050000390000000006030019000016ac0000013d0000000006530019000000000005004b000016a90000613d000000a007000039000000000803001900000000790704340000000008980436000000000068004b000016a50000c13d000000000004004b000016b60000613d000000a0055000390000000304400210000000000706043300000000074701cf000000000747022f00000000050504330000010004400089000000000545022f00000000044501cf000000000474019f00000000004604350000001f04200039000006c5044001970000000002320019000000000002043500000040024000390000065b0020009c0000065b0200804100000060022002100000065b0010009c0000065b010080410000004001100210000000000112019f00000000020004140000065b0020009c0000065b02008041000000c002200210000000000121019f0000069f011001c70000800d020000390000000403000039000006a90400004100000006050000290000000706000029000013350000013d000006c80010009c000016da0000213d000000630010008c000016da0000a13d00000002030003670000000401300370000000000101043b0000002402300370000000000202043b0000004403300370000000000303043b000000000001042d00000000010000190000196900010430000000080020008c000016e00000813d0000000001210436000000000001042d000006aa01000041000000000010043f0000002101000039000000040010043f000006ab010000410000196900010430000006c80010009c000016f00000213d000000430010008c000016f00000a13d00000002020003670000000401200370000000000101043b0000002402200370000000000202043b000000000001042d000000000100001900001969000104300000001f02200039000006c5022001970000000001120019000000000021004b000000000200003900000001020040390000069d0010009c000016fe0000213d0000000100200190000016fe0000c13d000000400010043f000000000001042d000006aa01000041000000000010043f0000004101000039000000040010043f000006ab0100004100001969000104300000002003000039000000000331043600000000420204340000000000230435000006c5062001970000001f0520018f0000004001100039000000000014004b0000171d0000813d000000000006004b000017190000613d00000000085400190000000007510019000000200770008a000000200880008a0000000009670019000000000a680019000000000a0a04330000000000a90435000000200660008c000017130000c13d000000000005004b000017330000613d0000000007010019000017290000013d0000000007610019000000000006004b000017260000613d00000000080400190000000009010019000000008a0804340000000009a90436000000000079004b000017220000c13d000000000005004b000017330000613d00000000046400190000000305500210000000000607043300000000065601cf000000000656022f00000000040404330000010005500089000000000454022f00000000045401cf000000000464019f0000000000470435000000000421001900000000000404350000001f02200039000006c5022001970000000001210019000000000001042d0002000000000002000000000301041a000000010430019000000001063002700000007f0660618f0000001f0060008c00000000050000390000000105002039000000000054004b0000176a0000c13d0000000005620436000000000004004b000017610000613d000200000006001d000100000005001d000000000010043f00000000010004140000065b0010009c0000065b01008041000000c001100210000006a0011001c70000801002000039196719620000040f0000000100200190000017700000613d0000000206000029000000000006004b000017680000613d000000000201043b000000000100001900000001050000290000000003150019000000000402041a000000000043043500000001022000390000002001100039000000000061004b000017580000413d0000000001150019000000000001042d000006c6013001970000000000150435000000000006004b000000200100003900000000010060390000000001150019000000000001042d0000000101000029000000000001042d000006aa01000041000000000010043f0000002201000039000000040010043f000006ab01000041000019690001043000000000010000190000196900010430000000000001004b000017750000613d000000000001042d000000400100043d0000004402100039000006c1030000410000000000320435000000240210003900000015030000390000000000320435000006a70200004100000000002104350000000402100039000000200300003900000000003204350000065b0010009c0000065b010080410000004001100210000006a8011001c70000196900010430000000000010043f0000000601000039000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f00000001002001900000179a0000613d000000000101043b000000000101041a000000000001004b0000179c0000613d000000ff0110018f000000080010008c000017ad0000813d000000000001042d00000000010000190000196900010430000000400100043d0000004402100039000006c2030000410000000000320435000000240210003900000013030000390000000000320435000006a70200004100000000002104350000000402100039000000200300003900000000003204350000065b0010009c0000065b010080410000004001100210000006a8011001c70000196900010430000006aa01000041000000000010043f0000002101000039000000040010043f000006ab010000410000196900010430000000000001004b000017b60000613d000000000001042d000000400100043d0000004402100039000006bc030000410000000000320435000000240210003900000015030000390000000000320435000006a70200004100000000002104350000000402100039000000200300003900000000003204350000065b0010009c0000065b010080410000004001100210000006a8011001c70000196900010430000000400300043d0000006004300039000006b205000041000000000054043500000040043000390000000000240435000000470200003900000000022304360000000000120435000006c90030009c000017e80000813d0000008001300039000000400010043f0000065b0020009c0000065b02008041000000400120021000000000020304330000065b0020009c0000065b020080410000006002200210000000000112019f00000000020004140000065b0020009c0000065b02008041000000c002200210000000000112019f0000069f011001c70000801002000039196719620000040f0000000100200190000017ee0000613d000000000101043b000000000001042d000006aa01000041000000000010043f0000004101000039000000040010043f000006ab01000041000019690001043000000000010000190000196900010430000000400300043d00000040043000390000000000240435000000400200003900000000022304360000000000120435000006ca0030009c0000180e0000813d0000006001300039000000400010043f0000065b0020009c0000065b02008041000000400120021000000000020304330000065b0020009c0000065b020080410000006002200210000000000112019f00000000020004140000065b0020009c0000065b02008041000000c002200210000000000112019f0000069f011001c70000801002000039196719620000040f0000000100200190000018140000613d000000000101043b000000000001042d000006aa01000041000000000010043f0000004101000039000000040010043f000006ab01000041000019690001043000000000010000190000196900010430000000000001004b000018190000613d000000000001042d000000400100043d0000004402100039000006b8030000410000000000320435000000240210003900000014030000390000000000320435000006a70200004100000000002104350000000402100039000000200300003900000000003204350000065b0010009c0000065b010080410000004001100210000006a8011001c70000196900010430000000000001004b0000182d0000613d000000000001042d000000400100043d0000004402100039000006b7030000410000000000320435000000240210003900000012030000390000000000320435000006a70200004100000000002104350000000402100039000000200300003900000000003204350000065b0010009c0000065b010080410000004001100210000006a8011001c700001969000104300003000000000002000200000003001d000300000002001d000000000010043f0000000301000039000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f00000001002001900000187e0000613d000000000101043b000100000001001d000000400100043d00000040021000390000000203000029000000000032043500000020021000390000000303000029000000000032043500000040030000390000000000310435000006ca0010009c000018800000813d0000006003100039000000400030043f0000065b0020009c0000065b02008041000000400220021000000000010104330000065b0010009c0000065b010080410000006001100210000000000121019f00000000020004140000065b0020009c0000065b02008041000000c002200210000000000112019f0000069f011001c70000801002000039196719620000040f00000001002001900000187e0000613d000000000101043b000000000010043f0000000101000029000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f00000001002001900000187e0000613d000000000101043b000000000101041a000000000001042d00000000010000190000196900010430000006aa01000041000000000010043f0000004101000039000000040010043f000006ab010000410000196900010430000000000001004b000018890000613d000000000001042d000000400100043d0000004402100039000006a6030000410000000000320435000000240210003900000014030000390000000000320435000006a70200004100000000002104350000000402100039000000200300003900000000003204350000065b0010009c0000065b010080410000004001100210000006a8011001c70000196900010430000000000001004b0000189d0000613d000000000001042d000000400100043d0000004402100039000006b5030000410000000000320435000000240210003900000015030000390000000000320435000006a70200004100000000002104350000000402100039000000200300003900000000003204350000065b0010009c0000065b010080410000004001100210000006a8011001c70000196900010430000000000010043f0000000601000039000000200010043f00000000010004140000065b0010009c0000065b01008041000000c0011002100000069b011001c70000801002000039196719620000040f0000000100200190000018c00000613d000000000101043b000000000101041a000000000001004b0000000001000039000000010100c039000000000001042d0000000001000019000019690001043000020000000000020000000102000039000000000202041a000000400b00043d000006980300004100000000003b04350000000403b00039000006990400004100000000004304350000065e051001970000002401b000390000000000510435000000000100041400000008022002700000065e02200197000000040020008c000018d80000c13d0000000103000031000000200030008c00000020040000390000000004034019000019050000013d000100000005001d0000065b00b0009c0000065b0300004100000000030b401900000040033002100000065b0010009c0000065b01008041000000c001100210000000000131019f0000069c011001c700020000000b001d196719620000040f000000020b00002900000060031002700000065b03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b0019000018f40000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b000018f00000c13d000000000006004b000019010000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00000001002001900000192a0000613d00000001050000290000001f01400039000000600210018f0000000001b20019000000000021004b000000000200003900000001020040390000069d0010009c0000191d0000213d00000001002001900000191d0000c13d000000400010043f0000001f0030008c0000191b0000a13d00000000010b0433000000000001004b0000000002000039000000010200c039000000000021004b0000191b0000c13d000000000001004b000019230000613d000000000001042d00000000010000190000196900010430000006aa01000041000000000010043f0000004101000039000000040010043f000006ab010000410000196900010430000006a201000041000000000010043f000000040050043f0000069901000041000000240010043f0000069c0100004100001969000104300000001f0530018f0000065d06300198000000400200043d0000000004620019000019350000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000019310000c13d000000000005004b000019420000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000065b0020009c0000065b020080410000004002200210000000000112019f00001969000104300000065b0010009c0000065b0100804100000040011002100000065b0020009c0000065b020080410000006002200210000000000112019f00000000020004140000065b0020009c0000065b02008041000000c002200210000000000112019f0000069f011001c70000801002000039196719620000040f00000001002001900000195b0000613d000000000101043b000000000001042d0000000001000019000019690001043000001960002104210000000102000039000000000001042d0000000002000019000000000001042d00001965002104230000000102000039000000000001042d0000000002000019000000000001042d0000196700000432000019680001042e00001969000104300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff009750ad73d9615445751d3fd0a61d867ae6a6dd1dfb5f65ef07fe835b7d5ca6bd0000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000007b53b4e500000000000000000000000000000000000000000000000000000000bb44a24700000000000000000000000000000000000000000000000000000000e81b22e900000000000000000000000000000000000000000000000000000000eb57676400000000000000000000000000000000000000000000000000000000eb57676500000000000000000000000000000000000000000000000000000000ed022ebd00000000000000000000000000000000000000000000000000000000f2c071ca00000000000000000000000000000000000000000000000000000000e81b22ea00000000000000000000000000000000000000000000000000000000e95c048700000000000000000000000000000000000000000000000000000000bfa2ccd100000000000000000000000000000000000000000000000000000000bfa2ccd200000000000000000000000000000000000000000000000000000000cf9629fb00000000000000000000000000000000000000000000000000000000dd898b2f00000000000000000000000000000000000000000000000000000000bb44a24800000000000000000000000000000000000000000000000000000000bded4d6a000000000000000000000000000000000000000000000000000000008a4bcc8f00000000000000000000000000000000000000000000000000000000a1b9224b00000000000000000000000000000000000000000000000000000000a1b9224c00000000000000000000000000000000000000000000000000000000a537812d00000000000000000000000000000000000000000000000000000000ad46d359000000000000000000000000000000000000000000000000000000008a4bcc90000000000000000000000000000000000000000000000000000000009b29de69000000000000000000000000000000000000000000000000000000008129fc1b000000000000000000000000000000000000000000000000000000008129fc1c0000000000000000000000000000000000000000000000000000000089f10634000000000000000000000000000000000000000000000000000000007b53b4e6000000000000000000000000000000000000000000000000000000007e08cadb000000000000000000000000000000000000000000000000000000002a90d0e0000000000000000000000000000000000000000000000000000000005d1ca630000000000000000000000000000000000000000000000000000000006516896f00000000000000000000000000000000000000000000000000000000651689700000000000000000000000000000000000000000000000000000000069e6c9a20000000000000000000000000000000000000000000000000000000077d82b49000000000000000000000000000000000000000000000000000000005d1ca6310000000000000000000000000000000000000000000000000000000065013ac200000000000000000000000000000000000000000000000000000000410ad1d800000000000000000000000000000000000000000000000000000000410ad1d9000000000000000000000000000000000000000000000000000000004b334ed1000000000000000000000000000000000000000000000000000000005c975abb000000000000000000000000000000000000000000000000000000002a90d0e1000000000000000000000000000000000000000000000000000000003a09b384000000000000000000000000000000000000000000000000000000000d0a29d40000000000000000000000000000000000000000000000000000000016c38b3b0000000000000000000000000000000000000000000000000000000016c38b3c000000000000000000000000000000000000000000000000000000001c41a3040000000000000000000000000000000000000000000000000000000027f32483000000000000000000000000000000000000000000000000000000000d0a29d50000000000000000000000000000000000000000000000000000000013b8c9700000000000000000000000000000000000000000000000000000000007fef6320000000000000000000000000000000000000000000000000000000007fef633000000000000000000000000000000000000000000000000000000000a41b90f000000000000000000000000000000000000000000000000000000000462dec70000000000000000000000000000000000000000000000000000000007b920aac36dd7ea00000000000000000000000000000000000000000000000000000000d3dc2a3a14cbd0cdbf3069fc3927e48506f271b9dda2c21625b93e6a99d3eb53000000000000000000000000000000000000004400000080000000000000000002000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffff9f02000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000020000000000000000000000000c62c8c68b4add47f75c22ad075081b4dcfe73ff7e90d289db22f3003ee84d1e20161a64a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000008000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f436f6c756d6e206973206e6f7420535452494e4700000000000000000000000008c379a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006400000000000000000000000020aa77deb2302bec4693ec5f0d04ace68d8d630d63a850cfd7731c79f0745b574e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b08ffffffffffffffffffffff0000000000000000000000000000000000000000ffa4b914810000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0436f6c756d6e206973206e6f7420424f4f4c41525241590000000000000000005f5f61727261790000000000000000000000000000000000000000000000000042c99f93f0c9652750df6175abcb7b41e4d4c61c0648a2b1441c322e0a7e7f6f436f6c756d6e206973206e6f742055494e543235364152524159000000000000436f6c756d6e206973206e6f742055494e543235360000000000000000000000fc425f2263d0df187444b70e47283d622c70181c5baebb1306a01edba1ce184c436f6c756d6e206973206e6f7420424f4f4c0000000000000000000000000000436f6c756d6e206973206e6f7420494e543235360000000000000000000000005c975abb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000800000000000000000436f6c756d6e206973206e6f7420414444524553534152524159000000000000436f6c756d6e206973206e6f742042595445533332000000000000000000000065d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2585db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa5061757361626c653a206e6f7420706175736564000000000000000000000000436f6c756d6e206973206e6f7420414444524553530000000000000000000000436f6c756d6e2074797065206e6f742073657400000000000000000000000000436f6c756d6e207479706520616c7265616479207365740000000000000000009500c6320e67d6c188fdf76e2f11f264e92c76098d43a228cb8f08c2f5d688a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffff80000000000000000000000000000000000000000000000000ffffffffffffffa0000000000000000000000000000000000000000000000000000000000000000017c47e282fbafeb8e5febcbd1bb47d9bc77e2eb11c57e0f8fdf42e67905a30d9
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000487f346df1bcaca0366d4841d71941b46c863593
-----Decoded View---------------
Arg [0] : gameRegistryAddress (address): 0x487F346Df1bCaCA0366d4841D71941B46C863593
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000487f346df1bcaca0366d4841d71941b46c863593
Loading...
Loading
Loading...
Loading
[ 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.