Source Code
Latest 25 from a total of 34,157 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Set Paused | 18510517 | 143 days ago | IN | 0 ETH | 0.00000406 | ||||
| Withdraw | 18510508 | 143 days ago | IN | 0 ETH | 0.0000049 | ||||
| Purchase Giga Ju... | 18509386 | 143 days ago | IN | 0.02300001 ETH | 0.00001394 | ||||
| Purchase Giga Ju... | 18504950 | 143 days ago | IN | 0.01000001 ETH | 0.00001285 | ||||
| Purchase Giga Ju... | 18499836 | 143 days ago | IN | 0.02300001 ETH | 0.0000137 | ||||
| Purchase Giga Ju... | 18495190 | 143 days ago | IN | 0.01000001 ETH | 0.00001202 | ||||
| Purchase Giga Ju... | 18494827 | 143 days ago | IN | 0.01000001 ETH | 0.00001227 | ||||
| Purchase Giga Ju... | 18493149 | 143 days ago | IN | 0.01000001 ETH | 0.00001515 | ||||
| Purchase Giga Ju... | 18491822 | 143 days ago | IN | 0.01000001 ETH | 0.00001202 | ||||
| Purchase Giga Ju... | 18491442 | 143 days ago | IN | 0.01000001 ETH | 0.00001109 | ||||
| Purchase Giga Ju... | 18490972 | 143 days ago | IN | 0.02300001 ETH | 0.00001629 | ||||
| Purchase Giga Ju... | 18489356 | 143 days ago | IN | 0.00400001 ETH | 0.000015 | ||||
| Purchase Giga Ju... | 18485394 | 143 days ago | IN | 0.01000001 ETH | 0.00001496 | ||||
| Purchase Giga Ju... | 18479995 | 143 days ago | IN | 0.02300001 ETH | 0.00001505 | ||||
| Purchase Giga Ju... | 18479648 | 143 days ago | IN | 0.01000001 ETH | 0.00001464 | ||||
| Purchase Giga Ju... | 18474039 | 144 days ago | IN | 0.01000001 ETH | 0.00001387 | ||||
| Purchase Giga Ju... | 18473211 | 144 days ago | IN | 0.00400001 ETH | 0.00001499 | ||||
| Purchase Giga Ju... | 18470546 | 144 days ago | IN | 0.01000001 ETH | 0.00001376 | ||||
| Purchase Giga Ju... | 18467748 | 144 days ago | IN | 0.038 ETH | 0.00001497 | ||||
| Purchase Giga Ju... | 18465574 | 144 days ago | IN | 0.00400001 ETH | 0.00001404 | ||||
| Purchase Giga Ju... | 18463180 | 144 days ago | IN | 0.00400001 ETH | 0.00001507 | ||||
| Purchase Giga Ju... | 18462022 | 144 days ago | IN | 0.00400001 ETH | 0.00001518 | ||||
| Purchase Giga Ju... | 18459451 | 144 days ago | IN | 0.01000001 ETH | 0.00001515 | ||||
| Purchase Giga Ju... | 18458755 | 144 days ago | IN | 0.02300001 ETH | 0.00001498 | ||||
| Purchase Giga Ju... | 18451065 | 144 days ago | IN | 0.02300001 ETH | 0.00001782 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 18510508 | 143 days ago | 1.9282 ETH | ||||
| 18509386 | 143 days ago | 0.00000001 ETH | ||||
| 18509386 | 143 days ago | 0.02300001 ETH | ||||
| 18504950 | 143 days ago | 0.00000001 ETH | ||||
| 18504950 | 143 days ago | 0.01000001 ETH | ||||
| 18499836 | 143 days ago | 0.00000001 ETH | ||||
| 18499836 | 143 days ago | 0.02300001 ETH | ||||
| 18495190 | 143 days ago | 0.00000001 ETH | ||||
| 18495190 | 143 days ago | 0.01000001 ETH | ||||
| 18494827 | 143 days ago | 0.00000001 ETH | ||||
| 18494827 | 143 days ago | 0.01000001 ETH | ||||
| 18493149 | 143 days ago | 0.00000001 ETH | ||||
| 18493149 | 143 days ago | 0.01000001 ETH | ||||
| 18491822 | 143 days ago | 0.00000001 ETH | ||||
| 18491822 | 143 days ago | 0.01000001 ETH | ||||
| 18491442 | 143 days ago | 0.00000001 ETH | ||||
| 18491442 | 143 days ago | 0.01000001 ETH | ||||
| 18490972 | 143 days ago | 0.00000001 ETH | ||||
| 18490972 | 143 days ago | 0.02300001 ETH | ||||
| 18489356 | 143 days ago | 0.00000001 ETH | ||||
| 18489356 | 143 days ago | 0.00400001 ETH | ||||
| 18485394 | 143 days ago | 0.00000001 ETH | ||||
| 18485394 | 143 days ago | 0.01000001 ETH | ||||
| 18479995 | 143 days ago | 0.00000001 ETH | ||||
| 18479995 | 143 days ago | 0.02300001 ETH |
Cross-Chain Transactions
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Name:
GigaJuiceSystem
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 {DataTable} from "../db/DataTable.sol";
import {IGigaJuiceSystem, ID as ID} from "./IGigaJuiceSystem.sol";
import {IAccountSystem, ID as ACCOUNT_SYSTEM_CONTRACT_ID} from "../accountSystem/IAccountSystem.sol";
import "@openzeppelin/contracts/utils/introspection/IERC165.sol";
import {MANAGER_ROLE, GAME_LOGIC_CONTRACT_ROLE, DEPLOYER_ROLE} from "../constants/RoleConstants.sol";
import {ID_CID, ETH_MINT_PRICE_CID, PLAYER_CID, TIME_BETWEEN_CID, TIMESTAMP_CID, GAME_ITEM_ID_CID, NOOB_TOKEN_CID, GIGA_NAME_TOKENDID_CID, ADDRESS_CID, UINT256_CID, REFERRER_CID} from "../constants/ColumnConstants.sol";
contract GigaJuiceSystem is IGigaJuiceSystem, DataTable {
constructor(address gameRegistryAddress) DataTable(gameRegistryAddress, ID) {}
function initialize() external override onlyRole(DEPLOYER_ROLE) {
initializeTable("GigaJuiceSystem", ID);
}
function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
return interfaceId == type(IGigaJuiceSystem).interfaceId
|| interfaceId == type(IERC165).interfaceId;
}
////////////////////
// Public Writes //
//////////////////
function purchaseGigaJuice(uint256 listingId) external payable whenNotPaused nonReentrant returns (uint256) {
uint256 _mintPrice = getListingPrice(listingId);
require(_mintPrice > 0, "Mint price not set");
require(msg.value >= _mintPrice, "Insufficient payment");
uint256 _referralSharePercentage = getRefferalShare();
IAccountSystem accountSystem = IAccountSystem(_gameRegistry.getSystem(ACCOUNT_SYSTEM_CONTRACT_ID));
address _referrer = accountSystem.getReferrer(msg.sender);
uint256 referrerAmount = 0;
if (_referrer != address(0) && _referralSharePercentage > 0) {
referrerAmount = (_mintPrice * _referralSharePercentage) / 100;
require(referrerAmount > 0, "Referral amount calculation error"); // Prevent zero transfer if price is too low
_incrementReferralData(_referrer, referrerAmount, 1);
// Transfer share to referrer
(bool successReferrer, ) = payable(_referrer).call{value: referrerAmount}("");
require(successReferrer, "Referrer transfer failed");
}
uint256 purchaseNumber = _createPurchaseDoc(msg.sender, listingId, _referrer, _mintPrice);
_grantJuice(msg.sender, listingId);
// Return excess ETH (total received - mint price) to the original sender
uint256 excess = msg.value - _mintPrice;
if (excess > 0) {
(bool successExcess, ) = payable(msg.sender).call{value: excess}("");
require(successExcess, "Failed to return excess ETH");
}
return purchaseNumber;
}
////////////////////
// Public Reads ///
//////////////////
function getListingPrice(uint256 listingId) public view returns (uint256) {
return getDocUint256Value(listingId, ETH_MINT_PRICE_CID);
}
function getRefferalShare() public view returns (uint256) {
return getDocUint256Value(_getRefferalShareDocId(), UINT256_CID);
}
function getReferralData(address player) public view returns (uint256, uint256) {
uint256 referralDataDocId = _getReferralDataDocId(player);
return (getDocUint256Value(referralDataDocId, UINT256_CID), getDocUint256Value(referralDataDocId, ETH_MINT_PRICE_CID));
}
function isPlayerJuiced(address player) public view returns (bool) {
return getDocUint256Value(getPlayerDocId(player), TIMESTAMP_CID) > block.timestamp;
}
function getEndJuicedTime(address player) public view returns (uint256) {
return getDocUint256Value(getPlayerDocId(player), TIMESTAMP_CID);
}
function getSecondsJuiced(address player) public view returns (uint256) {
uint256 end = getEndJuicedTime(player);
if (end > block.timestamp) {
return end - block.timestamp;
} else {
return 0;
}
}
function getMaxJuicedSeconds() public view returns (uint256) {
return getTableUint256Value(TIME_BETWEEN_CID);
}
function getListingTimeGranted(uint256 listingId) public view returns (uint256) {
return getDocUint256Value(listingId, TIME_BETWEEN_CID);
}
function getPurchaseDocId(uint256 purchaseNumber) private pure returns (uint256) {
return uint256(keccak256(abi.encodePacked("purchase", purchaseNumber)));
}
function getPurchaseData(uint256 purchaseNumber) public view returns (address, uint256, uint256, uint256, address) {
uint256 purchaseDocId = getPurchaseDocId(purchaseNumber);
return (getDocAddressValue(purchaseDocId, PLAYER_CID), getDocUint256Value(purchaseDocId, ID_CID), getDocUint256Value(purchaseDocId, TIMESTAMP_CID), getDocUint256Value(purchaseDocId, ETH_MINT_PRICE_CID), getDocAddressValue(purchaseDocId, REFERRER_CID));
}
//////////////
// Manager //
////////////
function withdraw() external onlyRole(MANAGER_ROLE) {
(bool success, ) = payable(msg.sender).call{value: address(this).balance}("");
require(success, "Transfer failed");
}
function setRefferalShare(uint256 _refferalSharePercentage) external onlyRole(MANAGER_ROLE) {
require(_refferalSharePercentage <= 100, "Refferal share percentage must be less than or equal to 100");
_setDocUint256Value(_getRefferalShareDocId(), UINT256_CID, _refferalSharePercentage);
}
function setListingPrice(uint256 listingId, uint256 price) external onlyRole(MANAGER_ROLE) {
_setDocUint256Value(listingId, ETH_MINT_PRICE_CID, price);
}
function setListingTimeGranted(uint256 listingId, uint256 secondsGranted) external onlyRole(MANAGER_ROLE) {
_setDocUint256Value(listingId, TIME_BETWEEN_CID, secondsGranted);
}
function setMaxJuicedSeconds(uint256 maxJuicedSeconds) external onlyRole(MANAGER_ROLE) {
_setTableUint256Value(TIME_BETWEEN_CID, maxJuicedSeconds);
}
/////////////////////
// Game Contracts //
///////////////////
////////////////////////
// Internal Helpers ///
//////////////////////
function _createPurchaseDoc(address buyer, uint256 listingId, address referrer, uint256 mintPrice) private returns (uint256) {
uint256 nextPurchaseNumber = _getAndIncrementAutoIncId();
uint256 nextPurchaseId = getPurchaseDocId(nextPurchaseNumber);
_setDocAddressValue(nextPurchaseId, PLAYER_CID, buyer);
if (referrer != address(0)) {
_setDocAddressValue(nextPurchaseId, REFERRER_CID, referrer);
}
_setDocUint256Value(nextPurchaseId, ID_CID, listingId);
_setDocUint256Value(nextPurchaseId, TIMESTAMP_CID, block.timestamp);
_setDocUint256Value(nextPurchaseId, ETH_MINT_PRICE_CID, mintPrice);
_setDocUint256Value(nextPurchaseId, UINT256_CID, nextPurchaseNumber);
return nextPurchaseNumber;
}
function _grantJuice(address player, uint256 listingId) private {
uint256 maxJuicedSeconds = getMaxJuicedSeconds();
uint256 timeGranted = getListingTimeGranted(listingId);
uint256 currentJuiceSeconds = getSecondsJuiced(player);
require(currentJuiceSeconds + timeGranted <= maxJuicedSeconds, "Max juiced time would be exceeded");
_setDocUint256Value(getPlayerDocId(player), TIMESTAMP_CID, block.timestamp + currentJuiceSeconds + timeGranted);
}
function _getRefferalShareDocId() private pure returns (uint256) {
return uint256(keccak256("refferalShare"));
}
function _getReferralDataDocId(address player) private pure returns (uint256) {
return uint256(keccak256(abi.encodePacked("referralData", player)));
}
function _incrementReferralData(address referrer,uint256 ethEarned, uint256 referralCount) private {
uint256 referralDataDocId = _getReferralDataDocId(referrer);
uint256 currentCount = getDocUint256Value(referralDataDocId, UINT256_CID);
if (currentCount == 0) {
_setDocAddressValue(referralDataDocId, ADDRESS_CID, referrer);
}
_incrementAmount(referralDataDocId, ETH_MINT_PRICE_CID, ethEarned);
_incrementAmount(referralDataDocId, UINT256_CID, referralCount);
}
}// SPDX-License-Identifier: MIT LICENSE
pragma solidity ^0.8.9;
import {DataStore, ID as DATA_STORE_ID} from "./DataStore.sol";
import {DEPLOYER_ROLE} from "../constants/RoleConstants.sol";
import {NAME_CID, ADDRESS_CID, ID_CID, NEXT_DOCID_CID, OWNER_CID} from "../constants/ColumnConstants.sol";
import {GameRegistryConsumer} from "../core/GameRegistryConsumer.sol";
contract DataTable is GameRegistryConsumer {
error AlreadyInitialized();
bool private _initialized;
constructor(address gameRegistryAddress, uint256 ID) GameRegistryConsumer(gameRegistryAddress, ID) {}
function owner() public view virtual returns (address) {
return getTableAddressValue(OWNER_CID);
}
function name() public view virtual returns (string memory) {
return getTableStringValue(NAME_CID);
}
function initializeTable(string memory nameToSet, uint256 id) internal {
if (_initialized) {
revert AlreadyInitialized();
}
_setTableAddressValue(ADDRESS_CID, address(this));
_setTableAddressValue(OWNER_CID, msg.sender);
_setTableStringValue(NAME_CID, nameToSet);
_setTableUint256Value(ID_CID, id);
_initialized = true;
}
function getTableId() public virtual view returns (uint256) {
return getId();
}
function _getAndIncrementAutoIncId() internal returns (uint256) {
uint256 currentId = getTableUint256Value(NEXT_DOCID_CID);
_setTableUint256Value(NEXT_DOCID_CID, currentId + 1);
return currentId + 1;
}
function _incrementAmount(uint256 docId, uint256 columnId, uint256 amount) internal {
uint256 currentAmount = getDocUint256Value(docId, columnId);
_setDocUint256Value(docId, columnId, currentAmount + amount);
}
function _decrementAmount(uint256 docId, uint256 columnId, uint256 amount) internal {
uint256 currentAmount = getDocUint256Value(docId, columnId);
_setDocUint256Value(docId, columnId, currentAmount - amount);
}
function _setTableStringValue(uint256 columnId, string memory value) internal {
DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).setString(getTableId(), 0, columnId, value);
}
function _setTableUint256Value(uint256 columnId, uint256 value) internal {
DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).setUint256(getTableId(), 0, columnId, value);
}
function _setTableAddressValue(uint256 columnId, address value) internal {
DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).setAddress(getTableId(), 0, columnId, value);
}
function _setTableBoolValue(uint256 columnId, bool value) internal {
DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).setBool(getTableId(), 0, columnId, value);
}
function _setTableAdddressValue(uint256 columnId, address value) internal {
DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).setAddress(getTableId(), 0, columnId, value);
}
function _setTableUint256ArrayValue(uint256 columnId, uint256[] memory value) internal {
DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).setUint256ArrayValue(getTableId(), 0, columnId, value);
}
function _setTableBoolArrayValue(uint256 columnId, bool[] memory value) internal {
DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).setBoolArrayValue(getTableId(), 0, columnId, value);
}
function _setTableAddressArrayValue(uint256 columnId, address[] memory value) internal {
DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).setAddressArrayValue(getTableId(), 0, columnId, value);
}
function _setDocAddressArrayValue(uint256 docId, uint256 columnId, address[] memory value) internal {
DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).setAddressArrayValue(getTableId(), docId, columnId, value);
}
function _setDocBoolArrayValue(uint256 docId, uint256 columnId, bool[] memory value) internal {
DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).setBoolArrayValue(getTableId(), docId, columnId, value);
}
function _setDocStringValue(uint256 docId, uint256 columnId, string memory value) internal {
DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).setString(getTableId(), docId, columnId, value);
}
function _setDocUint256Value(uint256 docId, uint256 columnId, uint256 value) internal {
DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).setUint256(getTableId(), docId, columnId, value);
}
function _setDocUint256ArrayValue(uint256 docId, uint256 columnId, uint256[] memory value) internal {
DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).setUint256ArrayValue(getTableId(), docId, columnId, value);
}
function _setDocBoolValue(uint256 docId, uint256 columnId, bool value) internal {
DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).setBool(getTableId(), docId, columnId, value);
}
function _setDocAddressValue(uint256 docId, uint256 columnId, address value) internal {
DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).setAddress(getTableId(), docId, columnId, value);
}
function getTableBoolValue(uint256 columnId) public view returns (bool) {
return DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).getBool(getTableId(), 0, columnId);
}
function getTableUint256Value(uint256 columnId) public view returns (uint256) {
return DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).getUint256(getTableId(), 0, columnId);
}
function getTableStringValue(uint256 columnId) public view returns (string memory) {
return DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).getString(getTableId(), 0, columnId);
}
function getTableAddressValue(uint256 columnId) public view returns (address) {
return DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).getAddress(getTableId(), 0, columnId);
}
function getTableUint256ArrayValue(uint256 columnId) public view returns (uint256[] memory) {
return DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).getUint256Array(getTableId(), 0, columnId);
}
function getDocUint256ArrayValue(uint256 docId, uint256 columnId) public view returns (uint256[] memory) {
return DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).getUint256Array(getTableId(), docId, columnId);
}
function getDocStringValue(uint256 docId, uint256 columnId) public view returns (string memory) {
return DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).getString(getTableId(), docId, columnId);
}
function getDocUint256Value(uint256 docId, uint256 columnId) public view returns (uint256) {
return DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).getUint256(getTableId(), docId, columnId);
}
function getDocBoolValue(uint256 docId, uint256 columnId) public view returns (bool) {
return DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).getBool(getTableId(), docId, columnId);
}
function getDocAddressValue(uint256 docId, uint256 columnId) public view returns (address) {
return DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).getAddress(getTableId(), docId, columnId);
}
function hasDocStringValue(uint256 docId, uint256 columnId) public view returns (bool) {
return DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).hasStringValue(getTableId(), docId, columnId);
}
function hasDocValue(uint256 docId, uint256 columnId) public view returns (bool) {
return DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).hasValue(getTableId(), docId, columnId);
}
function getPlayerDocId(address player) public pure returns (uint256) {
return uint256(uint160(player));
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/utils/introspection/IERC165.sol";
uint256 constant ID = uint256(keccak256("game.gigaverse.system.gigaJuice"));
interface IGigaJuiceSystem is IERC165 {
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/utils/introspection/IERC165.sol";
uint256 constant ID = uint256(keccak256("game.gigaverse.system.account"));
interface IAccountSystem is IERC165 {
function setPrice(uint256 _price, uint256 _redeemableTokenId) external;
function mintWithEth(string memory _username, bytes memory signature) external payable;
function mintWithGameItem(string memory _username, bytes memory signature) external;
function getPlayerUsernameId(address player) external view returns (uint256);
function getPlayerNoobId(address player) external view returns (uint256);
function mintPrice() external view returns (uint256);
function getReferrer(address player) external view returns (address);
function getReferralData(address player) external view returns (uint256, uint256);
function setUsername(address to, uint256 tokenId) external;
function setPlayerNoob(address to, uint256 tokenId) external;
function removeUsername(address player) external;
function changeUsername(uint256 tokenId) external;
function setMintPrice(uint256 newPrice) external;
function withdraw() external;
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)
pragma solidity ^0.8.0;
/**
* @dev Interface of the ERC165 standard, as defined in the
* https://eips.ethereum.org/EIPS/eip-165[EIP].
*
* 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[EIP 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);
}// 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 LICENSE
pragma solidity ^0.8.9;
uint256 constant NAME_CID = uint256(keccak256("name"));
uint256 constant DESCRIPTION_CID = uint256(keccak256("description"));
uint256 constant LEVEL_CID = uint256(keccak256("level"));
uint256 constant IS_NOOB_CID = uint256(keccak256("is_noob"));
uint256 constant NOOB_TOKEN_CID = uint256(keccak256("noob_tokend_id"));
uint256 constant GIGA_NAME_TOKENDID_CID = uint256(keccak256("giganame_tokend_id"));
uint256 constant IS_GIGA_NAME_CID = uint256(keccak256("is_giga_name"));
uint256 constant GAME_ITEM_ID_CID = uint256(keccak256("game_item_id"));
uint256 constant UINT256_CID = uint256(keccak256("int256"));
uint256 constant ETH_MINT_PRICE_CID = uint256(keccak256("eth_mint_price"));
uint256 constant NEXT_DOCID_CID = uint256(keccak256("next_token_id"));
uint256 constant ID_CID = uint256(keccak256("id"));
uint256 constant BASE_NAME_CID = uint256(keccak256("base_name"));
uint256 constant BASE_URI_CID = uint256(keccak256("base_uri"));
uint256 constant LAST_TRANSFER_TIME_CID = uint256(keccak256("last_transfer_time"));
uint256 constant OWNER_CID = uint256(keccak256("owner"));
uint256 constant INITIALIZED_CID = uint256(keccak256("initialized"));
uint256 constant MAX_SUPPLY_CID = uint256(keccak256("max_supply"));
uint256 constant ADDRESS_CID = uint256(keccak256("address"));
uint256 constant IS_SOULBOUND_CID = uint256(keccak256("soulbound"));
uint256 constant TIME_BETWEEN_CID = uint256(keccak256("time_between"));
uint256 constant TIMESTAMP_CID = uint256(keccak256("timestamp"));
uint256 constant IMG_URL_CID = uint256(keccak256("img_url"));
uint256 constant PLAYER_CID = uint256(keccak256("player"));
uint256 constant MINT_COUNT_CID = uint256(keccak256("mint_count"));
uint256 constant CONTRACT_URI_CID = uint256(keccak256("contract_uri"));
uint256 constant IS_RECYCLABLE_CID = uint256(keccak256("is_recyclable"));
uint256 constant BURN_COUNT_CID = uint256(keccak256("burn_count"));
uint256 constant BALANCE_CID = uint256(keccak256("balance"));
uint256 constant ICON_URL_CID = uint256(keccak256("icon_url"));
uint256 constant DUNGEON_ID_CID = uint256(keccak256("dungeon_id"));
uint256 constant ENERGY_CID = uint256(keccak256("energy"));
uint256 constant IS_CANCELLED_CID = uint256(keccak256("is_cancelled"));
uint256 constant SPRITE_SHEET_URL_CID = uint256(keccak256("sprite_sheet_url"));
uint256 constant IMPORT_AMOUNT_CID = uint256(keccak256("import_amount"));
uint256 constant EXPORT_AMOUNT_CID = uint256(keccak256("export_amount"));
uint256 constant EXPORT_LICENSE_CID = uint256(keccak256("export_license"));
uint256 constant UNLOCKED_CID = uint256(keccak256("unlocked"));
uint256 constant FACTION_CID = uint256(keccak256("faction"));
uint256 constant REFERRER_CID = uint256(keccak256("referrer"));// 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 LICENSE
pragma solidity ^0.8.13;
import {ReentrancyGuard} from "@openzeppelin/contracts/security/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
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
// OpenZeppelin Contracts (last updated v4.8.0) (security/ReentrancyGuard.sol)
pragma solidity ^0.8.0;
/**
* @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 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;
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
require(_status != _ENTERED, "ReentrancyGuard: reentrant call");
// 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;
}
}// 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);
}{
"viaIR": false,
"codegen": "yul",
"remappings": [
"@limitbreak/creator-token-standards/=lib/creator-token-standards/",
"@openzeppelin/=lib/creator-token-standards/lib/openzeppelin-contracts/",
"ds-test/=lib/forge-std/lib/ds-test/src/",
"forge-std/=lib/forge-std/src/",
"murky/=lib/murky/src/",
"erc721a/=lib/ERC721A/",
"@creator-token-standards/=lib/creator-token-standards/src/",
"@limitbreak/permit-c/=lib/creator-token-standards/lib/PermitC/src/",
"@opensea/tstorish/=lib/creator-token-standards/lib/tstorish/src/",
"@rari-capital/solmate/=lib/creator-token-standards/lib/PermitC/lib/solmate/",
"ERC721A/=lib/ERC721A/contracts/",
"PermitC/=lib/creator-token-standards/lib/PermitC/",
"creator-token-standards/=lib/creator-token-standards/",
"erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",
"forge-gas-metering/=lib/creator-token-standards/lib/PermitC/lib/forge-gas-metering/",
"forge-zksync-std/=lib/forge-zksync-std/src/",
"halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/",
"openzeppelin-contracts/=lib/openzeppelin-contracts/",
"openzeppelin/=lib/creator-token-standards/lib/PermitC/lib/openzeppelin-contracts/contracts/",
"solady/=lib/creator-token-standards/lib/PermitC/lib/forge-gas-metering/lib/solady/",
"solmate/=lib/creator-token-standards/lib/PermitC/lib/solmate/src/",
"tstorish/=lib/creator-token-standards/lib/tstorish/src/"
],
"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
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"gameRegistryAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"InvalidGameRegistry","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"expectedRole","type":"bytes32"}],"name":"MissingRole","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[{"internalType":"uint256","name":"docId","type":"uint256"},{"internalType":"uint256","name":"columnId","type":"uint256"}],"name":"getDocAddressValue","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"docId","type":"uint256"},{"internalType":"uint256","name":"columnId","type":"uint256"}],"name":"getDocBoolValue","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"docId","type":"uint256"},{"internalType":"uint256","name":"columnId","type":"uint256"}],"name":"getDocStringValue","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"docId","type":"uint256"},{"internalType":"uint256","name":"columnId","type":"uint256"}],"name":"getDocUint256ArrayValue","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"docId","type":"uint256"},{"internalType":"uint256","name":"columnId","type":"uint256"}],"name":"getDocUint256Value","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"player","type":"address"}],"name":"getEndJuicedTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"listingId","type":"uint256"}],"name":"getListingPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"listingId","type":"uint256"}],"name":"getListingTimeGranted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxJuicedSeconds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"player","type":"address"}],"name":"getPlayerDocId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"purchaseNumber","type":"uint256"}],"name":"getPurchaseData","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"player","type":"address"}],"name":"getReferralData","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRefferalShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"player","type":"address"}],"name":"getSecondsJuiced","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"columnId","type":"uint256"}],"name":"getTableAddressValue","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"columnId","type":"uint256"}],"name":"getTableBoolValue","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTableId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"columnId","type":"uint256"}],"name":"getTableStringValue","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"columnId","type":"uint256"}],"name":"getTableUint256ArrayValue","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"columnId","type":"uint256"}],"name":"getTableUint256Value","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"docId","type":"uint256"},{"internalType":"uint256","name":"columnId","type":"uint256"}],"name":"hasDocStringValue","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"docId","type":"uint256"},{"internalType":"uint256","name":"columnId","type":"uint256"}],"name":"hasDocValue","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"player","type":"address"}],"name":"isPlayerJuiced","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"listingId","type":"uint256"}],"name":"purchaseGigaJuice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"gameRegistryAddress","type":"address"}],"name":"setGameRegistry","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"listingId","type":"uint256"},{"internalType":"uint256","name":"price","type":"uint256"}],"name":"setListingPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"listingId","type":"uint256"},{"internalType":"uint256","name":"secondsGranted","type":"uint256"}],"name":"setListingTimeGranted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxJuicedSeconds","type":"uint256"}],"name":"setMaxJuicedSeconds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"shouldPause","type":"bool"}],"name":"setPaused","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_refferalSharePercentage","type":"uint256"}],"name":"setRefferalShare","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
9c4d535b000000000000000000000000000000000000000000000000000000000000000001000a13cc70e89b055d04776c1c44ada58d7ea61fb50a48c59c12d8279f66b70000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000002000000000000000000000000074eb92b33f2400eb14f6d6725b14f76078d5e731
Deployed Bytecode
0x0003000000000002000c000000000002000000000401034f00000060011002700000097c03100197000200000034035500010000000403550000000100200190000000260000c13d0000008001000039000000400010043f000000040030008c000000490000413d000000000134034f000000000204043b000000e002200270000009840020009c0000004b0000213d0000099f0020009c000000680000a13d000009a00020009c000000960000213d000009a70020009c0000015c0000a13d000009a80020009c0000034d0000613d000009a90020009c000002a90000613d000009aa0020009c000000490000c13d0000000001000416000000000001004b000000490000c13d25ea1d490000040f000000000001004b0000000001000039000000010100c039000002a20000013d0000000001000416000000000001004b000000490000c13d0000001f013000390000097d011001970000008001100039000000400010043f0000001f0230018f0000097e053001980000008001500039000000370000613d0000008006000039000000000704034f000000007807043c0000000006860436000000000016004b000000330000c13d000000000002004b000000440000613d000000000454034f0000000302200210000000000501043300000000052501cf000000000525022f000000000404043b0000010002200089000000000424022f00000000022401cf000000000252019f0000000000210435000000200030008c000000490000413d000000800100043d0000097f0010009c000000600000a13d0000000001000019000025ec00010430000009850020009c000000770000a13d000009860020009c000000a30000213d0000098d0020009c000001780000a13d0000098e0020009c000003630000613d0000098f0020009c000002c80000613d000009900020009c000000490000c13d000000240030008c000000490000413d0000000001000416000000000001004b000000490000c13d0000000401400370000000000101043b25ea21230000040f000002a20000013d0000000102000039000000000020041b000000000001004b000000b50000c13d000009cd01000041000000000010043f000009ce01000041000025ec00010430000009ad0020009c000000c40000a13d000009ae0020009c0000011a0000a13d000009af0020009c0000030d0000613d000009b00020009c000002320000613d000009b10020009c000000490000c13d0000000001000416000000000001004b000000490000c13d25ea1e990000040f000002a20000013d000009930020009c000000db0000a13d000009940020009c0000013d0000a13d000009950020009c000003220000613d000009960020009c0000024d0000613d000009970020009c000000490000c13d000000240030008c000000490000413d0000000001000416000000000001004b000000490000c13d0000000101000039000000000201041a000009bd01000041000000800010043f000009be01000041000000840010043f000000000100041400000008022002700000097f02200197000000040020008c000009980000c13d0000000003000031000000200030008c00000020040000390000000004034019000009bd0000013d000009a10020009c000001970000a13d000009a20020009c0000037c0000613d000009a30020009c000002e30000613d000009a40020009c000000490000c13d0000000001000416000000000001004b000000490000c13d25ea1c720000040f000002a20000013d000009870020009c000001a60000a13d000009880020009c000003910000613d000009890020009c000002f10000613d0000098a0020009c000000490000c13d0000000001000416000000000001004b000000490000c13d0000000101000039000000000101041a00000008011002700000097f01100197000000800010043f000009b901000041000025eb0001042e000000000302041a000009800330019700000008011002100000098101100197000000000131019f00000001011001bf000000000012041b00000982010000410000000202000039000000000012041b0000002001000039000001000010044300000120000004430000098301000041000025eb0001042e000009b40020009c000000fc0000213d000009b70020009c000001bd0000613d000009b80020009c000000490000c13d000000240030008c000000490000413d0000000001000416000000000001004b000000490000c13d0000000401400370000000000101043b00000a0900100198000000490000c13d00000a0a0010009c00000000020000390000000102006039000000000001004b00000001022061bf000000800020043f000009b901000041000025eb0001042e0000099a0020009c000001150000213d0000099d0020009c000001d80000613d0000099e0020009c000000490000c13d000000440030008c000000490000413d0000000001000416000000000001004b000000490000c13d0000002401400370000000000101043b000a00000001001d0000000401400370000000000101043b000b00000001001d0000000101000039000000000201041a000009bd01000041000000800010043f000009be01000041000000840010043f000000000100041400000008022002700000097f02200197000000040020008c000005b50000c13d0000000003000031000000200030008c00000020040000390000000004034019000005da0000013d000009b50020009c000001ed0000613d000009b60020009c000000490000c13d000000240030008c000000490000413d0000000001000416000000000001004b000000490000c13d0000000101000039000000000201041a000009bd01000041000000800010043f000009be01000041000000840010043f000000000100041400000008022002700000097f02200197000000040020008c000005f90000c13d0000000003000031000000200030008c000000200400003900000000040340190000061e0000013d0000099b0020009c000002000000613d0000099c0020009c000001b50000613d000000490000013d000009b20020009c000002150000613d000009b30020009c000000490000c13d000000240030008c000000490000413d0000000001000416000000000001004b000000490000c13d0000000401400370000000000201043b000000000002004b0000000001000039000000010100c039000b00000002001d000000000012004b000000490000c13d0000000101000039000000000201041a000009ba01000041000000800010043f00000a0401000041000000840010043f0000000001000411000000a40010043f000000000100041400000008022002700000097f02200197000000040020008c00000c570000c13d0000000003000031000000200030008c0000002004000039000000000403401900000c7c0000013d000009980020009c0000021f0000613d000009990020009c000000490000c13d000000440030008c000000490000413d0000000001000416000000000001004b000000490000c13d0000002401400370000000000101043b000a00000001001d0000000401400370000000000101043b000b00000001001d0000000101000039000000000201041a000009bd01000041000000800010043f000009be01000041000000840010043f000000000100041400000008022002700000097f02200197000000040020008c000009250000c13d0000000003000031000000200030008c000000200400003900000000040340190000094a0000013d000009ab0020009c000002660000613d000009ac0020009c000000490000c13d0000000001000416000000000001004b000000490000c13d0000000103000039000000000203041a000009ba01000041000000800010043f000009bb01000041000000840010043f00000000010004110000097f04100197000000a40040043f000000000100041400000008022002700000097f02200197000000040020008c000a00000003001d000b00000004001d00000a870000c13d0000000003000031000000200030008c0000002004000039000000000403401900000aac0000013d000009910020009c0000027f0000613d000009920020009c000000490000c13d000000440030008c000000490000413d0000000001000416000000000001004b000000490000c13d0000002401400370000000000101043b000a00000001001d0000000401400370000000000101043b000b00000001001d0000000101000039000000000201041a000009bd01000041000000800010043f000009be01000041000000840010043f000000000100041400000008022002700000097f02200197000000040020008c00000acd0000c13d0000000003000031000000200030008c0000002004000039000000000403401900000af20000013d000009a50020009c000001b50000613d000009a60020009c000000490000c13d000000240030008c000000490000413d0000000001000416000000000001004b000000490000c13d0000000401400370000000000101043b0000097f0010009c000000490000213d25ea1dc10000040f000002a20000013d0000098b0020009c0000029a0000613d0000098c0020009c000000490000c13d000000240030008c000000490000413d0000000001000416000000000001004b000000490000c13d0000000401400370000000000101043b0000097f0010009c000000490000213d25ea21fc0000040f000002a20000013d0000000001000416000000000001004b000000490000c13d0000000201000039000000000101041a000000800010043f000009b901000041000025eb0001042e000000440030008c000000490000413d0000000001000416000000000001004b000000490000c13d0000002401400370000000000501043b0000000401400370000000000301043b0000000101000039000000000201041a000009bd01000041000000800010043f000009be01000041000000840010043f000000000100041400000008022002700000097f02200197000000040020008c000b00000003001d000a00000005001d000004910000c13d0000000003000031000000200030008c00000020040000390000000004034019000004b60000013d0000000001000416000000000001004b000000490000c13d0000000101000039000000000201041a000009ba01000041000000800010043f000009e501000041000000840010043f0000000001000411000000a40010043f000000000100041400000008022002700000097f02200197000000040020008c000003af0000c13d0000000003000031000000200030008c00000020040000390000000004034019000003d40000013d0000000002000416000000000002004b000000490000c13d0000000102000039000000000202041a000009bd03000041000000800030043f000009be03000041000000840030043f000000000300041400000008022002700000097f02200197000000040020008c000003eb0000c13d0000000003000031000000200030008c00000020040000390000000004034019000004100000013d000000240030008c000000490000413d0000000001000416000000000001004b000000490000c13d0000000101000039000000000201041a000009bd01000041000000800010043f000009be01000041000000840010043f000000000100041400000008022002700000097f02200197000000040020008c000004ff0000c13d0000000003000031000000200030008c00000020040000390000000004034019000005240000013d000000240030008c000000490000413d0000000001000416000000000001004b000000490000c13d0000000401400370000000000101043b0000097f0010009c000000490000213d000001ba0000013d0000000001000416000000000001004b000000490000c13d0000000101000039000000000201041a000009bd01000041000000800010043f000009be01000041000000840010043f000000000100041400000008022002700000097f02200197000000040020008c000005730000c13d0000000003000031000000200030008c00000020040000390000000004034019000005980000013d000000440030008c000000490000413d0000000001000416000000000001004b000000490000c13d0000002401400370000000000501043b0000000401400370000000000301043b0000000101000039000000000201041a000009bd01000041000000800010043f000009be01000041000000840010043f000000000100041400000008022002700000097f02200197000000040020008c000b00000003001d000a00000005001d0000063e0000c13d0000000003000031000000200030008c00000020040000390000000004034019000006630000013d000000240030008c000000490000413d0000000001000416000000000001004b000000490000c13d0000000401400370000000000101043b0000097f0010009c000000490000213d25ea259f0000040f000a00000001001d25ea204a0000040f000b00000001001d0000000a0100002925ea1f710000040f000000400200043d000000200320003900000000001304350000000b0100002900000000001204350000097c0020009c0000097c020080410000004001200210000009da011001c7000025eb0001042e000000240030008c000000490000413d0000000001000416000000000001004b000000490000c13d0000000101000039000000000201041a000009ba01000041000000800010043f000009bb01000041000000840010043f00000000010004110000097f01100197000b00000001001d000000a40010043f000000000100041400000008022002700000097f02200197000000040020008c000006840000c13d0000000003000031000000200030008c00000020040000390000000004034019000006a90000013d000000440030008c000000490000413d0000000002000416000000000002004b000000490000c13d0000002402400370000000000202043b000a00000002001d0000000402400370000000000202043b000b00000002001d0000000102000039000000000202041a000009bd03000041000000800030043f000009be03000041000000840030043f000000000300041400000008022002700000097f02200197000000040020008c0000070d0000c13d0000000003000031000000200030008c00000020040000390000000004034019000007320000013d000000240030008c000000490000413d0000000001000416000000000001004b000000490000c13d0000000401400370000000000101043b25ea1f710000040f000000400200043d00000000001204350000097c0020009c0000097c020080410000004001200210000009cf011001c7000025eb0001042e000000440030008c000000490000413d0000000001000416000000000001004b000000490000c13d0000002401400370000000000501043b0000000401400370000000000301043b0000000101000039000000000201041a000009ba01000041000000800010043f000009bb01000041000000840010043f00000000010004110000097f04100197000000a40040043f000000000100041400000008022002700000097f02200197000000040020008c000a00000003001d000900000005001d000b00000004001d000007ab0000c13d0000000003000031000000200030008c00000020040000390000000004034019000007d00000013d000000440030008c000000490000413d0000000002000416000000000002004b000000490000c13d0000002402400370000000000502043b0000000402400370000000000402043b0000000102000039000000000202041a000009bd03000041000000800030043f000009be03000041000000840030043f000000000300041400000008022002700000097f02200197000000040020008c000b00000004001d000a00000005001d000008350000c13d0000000003000031000000200030008c000000200400003900000000040340190000085a0000013d0000000001000416000000000001004b000000490000c13d000000000103001925ea1c130000040f000b00000001001d000a00000002001d000000000100041125ea22d50000040f0000000b010000290000000a0200002925ea235c0000040f0000000001000019000025eb0001042e000000240030008c000000490000413d0000000001000416000000000001004b000000490000c13d0000000401400370000000000101043b000b00000001001d0000000101000039000000000201041a000009ba01000041000000800010043f000009bb01000041000000840010043f00000000010004110000097f03100197000000a40030043f000000000100041400000008022002700000097f02200197000000040020008c000a00000003001d000008dc0000c13d0000000003000031000000200030008c00000020040000390000000004034019000009010000013d000000240030008c000000490000413d0000000002000416000000000002004b000000490000c13d0000000102000039000000000202041a000009bd03000041000000800030043f000009be03000041000000840030043f000000000300041400000008022002700000097f02200197000000040020008c000009dc0000c13d0000000003000031000000200030008c0000002004000039000000000403401900000a010000013d000000240030008c000000490000413d0000000001000416000000000001004b000000490000c13d0000000401400370000000000101043b000009db02000041000000a00020043f000000a80010043f0000002801000039000000800010043f000000e001000039000000400010043f00000000010004140000097c0010009c0000097c01008041000000c001100210000009dc011001c7000080100200003925ea25e50000040f0000000100200190000000490000613d000000000101043b000a00000001001d0000000101000039000000000201041a000000400b00043d000009bd0100004100000000001b04350000000401b00039000009be030000410000000000310435000000000100041400000008022002700000097f02200197000000040020008c00000caa0000c13d0000000003000031000000200030008c0000002004000039000000000403401900000cd60000013d000000240030008c000000490000413d0000000401400370000000000101043b0000000103000039000000000203041a000000ff0020019000000abe0000c13d000a00000003001d000b00000001001d000009ed01000041000000800010043f000000000100041400000008022002700000097f02200197000000040020008c00000ded0000c13d0000000003000031000000200030008c0000002004000039000000000403401900000e120000013d000000240030008c000000490000413d0000000001000416000000000001004b000000490000c13d0000000401400370000000000101043b0000097f0010009c000000490000213d25ea21fc0000040f000a00000001001d000000400100043d000b00000001001d0000800b01000039000000040300003900000000040004150000000c0440008a0000000504400210000009d50200004125ea25c90000040f0000000a0010006b000000000100003900000001010020390000000b02000029000002a30000013d000000240030008c000000490000413d0000000002000416000000000002004b000000490000c13d0000000102000039000000000202041a000009bd03000041000000800030043f000009be03000041000000840030043f000000000300041400000008022002700000097f02200197000000040020008c00000b190000c13d0000000003000031000000200030008c0000002004000039000000000403401900000b3e0000013d000000240030008c000000490000413d0000000001000416000000000001004b000000490000c13d0000000401400370000000000101043b000b00000001001d0000097f0010009c000000490000213d0000000101000039000000000201041a000009ba01000041000000800010043f000009bb01000041000000840010043f00000000010004110000097f01100197000a00000001001d000000a40010043f000000000100041400000008022002700000097f02200197000000040020008c00000e3a0000c13d0000000003000031000000200030008c0000002004000039000000000403401900000e5f0000013d0000097c0010009c0000097c01008041000000c001100210000009bc011001c725ea25e50000040f00000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000003c30000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b000003bf0000c13d000000000006004b000003d00000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0002000000010355000000010020019000000bbb0000613d0000001f01400039000000600110018f00000080021001bf000b00000002001d000000400020043f000000200030008c000000490000413d000000800200043d000000000002004b0000000004000039000000010400c039000000000042004b000000490000c13d000000000002004b00000eb10000c13d000009ca01000041000000000010043f0000000001000411000000040010043f000009e501000041000000240010043f000009cb01000041000025ec000104300000097c0030009c0000097c03008041000000c001300210000009d0011001c725ea25e50000040f00000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000003ff0000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b000003fb0000c13d000000000006004b0000040c0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0002000000010355000000010020019000000bc70000613d0000001f02400039000000600420018f00000080024001bf000b00000002001d000000400020043f000000200030008c000000490000413d000000800200043d0000097f0020009c000000490000213d0000000205000039000000000505041a000009d1060000410000000b0a00002900000000006a043500000084064001bf0000000000560435000000c405400039000009ea060000410000000000650435000000a40440003900000000000404350000000004000414000000040020008c000004370000613d0000004001a002100000097c0040009c0000097c04008041000000c003400210000000000113019f000009d2011001c725ea25e50000040f00000060031002700000097c0030019d0000097c0330019700020000000103550000000100200190000010830000613d0000000b0a00002900000a0b053001980000001f0630018f00000000045a0019000004410000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000048004b0000043d0000c13d000000000006004b0000044e0000613d000000000151034f0000000305600210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000001f0130003900000a0b041001970000000001a40019000000000041004b00000000040000390000000104004039000009c60010009c0000128e0000213d00000001004001900000128e0000c13d000000400010043f000009d30030009c000000490000213d000000200030008c000000490000413d0000000b040000290000000004040433000009c60040009c000000490000213d0000000b063000290000000b034000290000001f04300039000000000064004b0000000005000019000009d405008041000009d404400197000009d407600197000000000874013f000000000074004b0000000004000019000009d404004041000009d40080009c000000000405c019000000000004004b000000490000c13d0000000043030434000009c60030009c0000128e0000213d0000001f0530003900000a0b055001970000003f0550003900000a0b055001970000000005150019000009c60050009c0000128e0000213d000000400050043f00000000053104360000000007430019000000000067004b000000490000213d00000a0b063001970000001f0230018f000000000054004b000013e80000813d000000000006004b00000a830000613d00000000082400190000000007250019000000200770008a000000200880008a0000000009670019000000000a680019000000000a0a04330000000000a90435000000200660008c0000048a0000c13d00000a830000013d0000097c0010009c0000097c01008041000000c001100210000009d0011001c725ea25e50000040f00000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000004a50000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b000004a10000c13d000000000006004b000004b20000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0002000000010355000000010020019000000bd30000613d0000001f01400039000000600110018f00000080021001bf000900000002001d000000400020043f000000200030008c000000490000413d000000800200043d0000097f0020009c000000490000213d0000000203000039000000000303041a000009d9040000410000000905000029000000000045043500000084041001bf0000000000340435000000c4031000390000000a040000290000000000430435000000a4031000390000000b0400002900000000004304350000000003000414000000040020008c00000b0c0000613d0000097c0030009c0000097c03008041000000c0013002100000004003500210000000000131019f000009d2011001c725ea25e50000040f000000090b00002900000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b0019000004e70000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b000004e30000c13d000000000006004b000004f40000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f00020000000103550000000100200190000010930000613d0000001f01400039000000600110018f0000000001b10019000000400010043f000000200030008c000000490000413d00000b0e0000013d0000097c0010009c0000097c01008041000000c001100210000009d0011001c725ea25e50000040f00000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000005130000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b0000050f0000c13d000000000006004b000005200000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0002000000010355000000010020019000000bdf0000613d0000001f01400039000000600110018f00000080021001bf000b00000002001d000000400020043f000000200030008c000000490000413d000000800200043d0000097f0020009c000000490000213d0000000203000039000000000303041a000009de040000410000000b05000029000000000045043500000084041001bf0000000000340435000000a403100039000000000003043500000004030000390000000103300367000000000303043b000000c40410003900000000003404350000000003000414000000040020008c000005b10000613d0000097c0030009c0000097c03008041000000c0013002100000004003500210000000000131019f000009d2011001c725ea25e50000040f0000000b0b00002900000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b0019000005560000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b000005520000c13d000000000006004b000005630000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0002000000010355000000010020019000000f7d0000c13d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000056e0000c13d000012e10000013d0000097c0010009c0000097c01008041000000c001100210000009d0011001c725ea25e50000040f00000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000005870000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b000005830000c13d000000000006004b000005940000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0002000000010355000000010020019000000beb0000613d0000001f01400039000000600110018f00000080021001bf000b00000002001d000000400020043f000000200030008c000000490000413d000000800200043d0000097f0020009c000000490000213d0000000203000039000000000303041a000009de040000410000000b05000029000000000045043500000084041001bf0000000000340435000000c403100039000009e4040000410000000000430435000000a40310003900000000000304350000000003000414000000040020008c00000f550000c13d0000000001150019000000400010043f0000000b02000029000006800000013d0000097c0010009c0000097c01008041000000c001100210000009d0011001c725ea25e50000040f00000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000005c90000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b000005c50000c13d000000000006004b000005d60000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0002000000010355000000010020019000000bf70000613d0000001f01400039000000600110018f00000080021001bf000900000002001d000000400020043f000000200030008c000000490000413d000000800200043d0000097f0020009c000000490000213d0000000203000039000000000303041a000009e0040000410000000905000029000000000045043500000084041001bf0000000000340435000000c4031000390000000a040000290000000000430435000000a4031000390000000b0400002900000000004304350000000003000414000000040020008c00000f840000c13d0000000001150019000000400010043f0000000902000029000000000202043300000b150000013d0000097c0010009c0000097c01008041000000c001100210000009d0011001c725ea25e50000040f00000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf0000060d0000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b000006090000c13d000000000006004b0000061a0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0002000000010355000000010020019000000c030000613d0000001f01400039000000600110018f00000080021001bf000b00000002001d000000400020043f000000200030008c000000490000413d000000800200043d0000097f0020009c000000490000213d0000000203000039000000000303041a000009e0040000410000000b05000029000000000045043500000084041001bf0000000000340435000000a403100039000000000003043500000004030000390000000103300367000000000303043b000000c40410003900000000003404350000000003000414000000040020008c00000fb30000c13d0000000001150019000000400010043f0000000b02000029000000000202043300000b150000013d0000097c0010009c0000097c01008041000000c001100210000009d0011001c725ea25e50000040f00000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000006520000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b0000064e0000c13d000000000006004b0000065f0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0002000000010355000000010020019000000c0f0000613d0000001f01400039000000600110018f00000080021001bf000900000002001d000000400020043f000000200030008c000000490000413d000000800200043d0000097f0020009c000000490000213d0000000203000039000000000303041a000009de040000410000000905000029000000000045043500000084041001bf0000000000340435000000c4031000390000000a040000290000000000430435000000a4031000390000000b0400002900000000004304350000000003000414000000040020008c00000fe20000c13d0000000001150019000000400010043f000000090200002900000000020204330000097f0020009c000000490000213d00000b150000013d0000097c0010009c0000097c01008041000000c001100210000009bc011001c725ea25e50000040f00000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000006980000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b000006940000c13d000000000006004b000006a50000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0002000000010355000000010020019000000c1b0000613d0000001f01400039000000600110018f00000080021001bf000a00000002001d000000400020043f000000200030008c000000490000413d000000800200043d000000000002004b0000000004000039000000010400c039000000000042004b000000490000c13d000000000002004b00000aba0000613d0000000102000039000000000202041a000009bd040000410000000a05000029000000000045043500000084011001bf000009be040000410000000000410435000000000100041400000008022002700000097f02200197000000040020008c000010cf0000c13d000000200030008c00000020030080390000001f01300039000000600110018f0000000001510019000000400010043f0000000a010000290000000001010433000b00000001001d0000097f0010009c000000490000213d0000000201000039000000000101041a000a00000001001d000009c00100004100000000001004430000000b01000029000000040010044300000000010004140000097c0010009c0000097c01008041000000c001100210000009c1011001c7000080020200003925ea25e50000040f000000010020019000001b9d0000613d000000000101043b000000000001004b000000490000613d000000400300043d0000004401300039000009ec020000410000000000210435000009c401000041000000000013043500000004013000390000000a0200002900000000002104350000002401300039000000000001043500000004010000390000000101100367000000000101043b000a00000003001d0000006402300039000000000012043500000000010004140000000b02000029000000040020008c000007080000613d0000000a020000290000097c0020009c0000097c0200804100000040022002100000097c0010009c0000097c01008041000000c001100210000000000121019f000009c5011001c70000000b0200002925ea25e00000040f00000060031002700000097c0030019d00020000000103550000000100200190000013a90000613d0000000a01000029000000000200001925ea1c600000040f0000000001000019000025eb0001042e0000097c0030009c0000097c03008041000000c001300210000009d0011001c725ea25e50000040f00000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000007210000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b0000071d0000c13d000000000006004b0000072e0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0002000000010355000000010020019000000c270000613d0000001f02400039000000600420018f00000080024001bf000900000002001d000000400020043f000000200030008c000000490000413d000000800200043d0000097f0020009c000000490000213d0000000205000039000000000505041a000009d706000041000000090a00002900000000006a043500000084064001bf0000000000560435000000c4054000390000000a060000290000000000650435000000a4044000390000000b0500002900000000005404350000000004000414000000040020008c0000075a0000613d0000004001a002100000097c0040009c0000097c04008041000000c003400210000000000113019f000009d2011001c725ea25e50000040f00000060031002700000097c0030019d0000097c0330019700020000000103550000000100200190000010fe0000613d000000090a00002900000a0b053001980000001f0630018f00000000045a0019000007640000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000048004b000007600000c13d000000000006004b000007710000613d000000000151034f0000000305600210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000001f0130003900000a0b011001970000000002a10019000000000012004b00000000010000390000000101004039000009c60020009c0000128e0000213d00000001001001900000128e0000c13d000000400020043f000009d30030009c000000490000213d000000200030008c000000490000413d00000009010000290000000001010433000009c60010009c000000490000213d000000090330002900000009011000290000001f04100039000000000034004b0000000005000019000009d405008041000009d404400197000009d406300197000000000764013f000000000064004b0000000004000019000009d404004041000009d40070009c000000000405c019000000000004004b000000490000c13d0000000015010434000009c60050009c0000128e0000213d00000005045002100000003f06400039000009d8066001970000000006260019000009c60060009c0000128e0000213d000000400060043f00000000005204350000000004140019000000000034004b000000490000213d000000000005004b00000bb70000613d0000000003020019000000200330003900000000150104340000000000530435000000000041004b000007a50000413d00000bb70000013d0000097c0010009c0000097c01008041000000c001100210000009bc011001c725ea25e50000040f00000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000007bf0000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b000007bb0000c13d000000000006004b000007cc0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0002000000010355000000010020019000000c330000613d0000001f01400039000000600110018f00000080021001bf000800000002001d000000400020043f000000200030008c000000490000413d000000800200043d000000000002004b0000000004000039000000010400c039000000000042004b000000490000c13d000000000002004b00000aba0000613d0000000102000039000000000202041a000009bd040000410000000805000029000000000045043500000084011001bf000009be040000410000000000410435000000000100041400000008022002700000097f02200197000000040020008c0000110a0000c13d000000200030008c00000020030080390000001f01300039000000600110018f0000000001510019000000400010043f00000008010000290000000001010433000b00000001001d0000097f0010009c000000490000213d0000000201000039000000000101041a000800000001001d000009c00100004100000000001004430000000b01000029000000040010044300000000010004140000097c0010009c0000097c01008041000000c001100210000009c1011001c7000080020200003925ea25e50000040f000000010020019000001b9d0000613d000000000101043b000000000001004b000000490000613d000000400300043d0000006401300039000000090200002900000000002104350000004401300039000009ec02000041000000000021043500000024013000390000000a020000290000000000210435000009c4010000410000000000130435000a00000003001d00000004013000390000000802000029000000000021043500000000010004140000000b02000029000000040020008c0000082e0000613d0000000a020000290000097c0020009c0000097c0200804100000040022002100000097c0010009c0000097c01008041000000c001100210000000000121019f000009c5011001c70000000b0200002925ea25e00000040f00000060031002700000097c0030019d00020000000103550000000100200190000013b60000613d0000000a01000029000009c60010009c0000128e0000213d0000000a01000029000000400010043f0000000001000019000025eb0001042e0000097c0030009c0000097c03008041000000c001300210000009d0011001c725ea25e50000040f00000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000008490000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b000008450000c13d000000000006004b000008560000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0002000000010355000000010020019000000c3f0000613d0000001f02400039000000600420018f00000080024001bf000900000002001d000000400020043f000000200030008c000000490000413d000000800200043d0000097f0020009c000000490000213d0000000205000039000000000505041a000009d106000041000000090a00002900000000006a043500000084064001bf0000000000560435000000c4054000390000000a060000290000000000650435000000a4044000390000000b0500002900000000005404350000000004000414000000040020008c000008820000613d0000004001a002100000097c0040009c0000097c04008041000000c003400210000000000113019f000009d2011001c725ea25e50000040f00000060031002700000097c0030019d0000097c0330019700020000000103550000000100200190000011390000613d000000090a00002900000a0b053001980000001f0630018f00000000045a00190000088c0000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000048004b000008880000c13d000000000006004b000008990000613d000000000151034f0000000305600210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000001f0130003900000a0b041001970000000001a40019000000000041004b00000000040000390000000104004039000009c60010009c0000128e0000213d00000001004001900000128e0000c13d000000400010043f000009d30030009c000000490000213d000000200030008c000000490000413d00000009040000290000000004040433000009c60040009c000000490000213d000000090630002900000009034000290000001f04300039000000000064004b0000000005000019000009d405008041000009d404400197000009d407600197000000000874013f000000000074004b0000000004000019000009d404004041000009d40080009c000000000405c019000000000004004b000000490000c13d0000000043030434000009c60030009c0000128e0000213d0000001f0530003900000a0b055001970000003f0550003900000a0b055001970000000005150019000009c60050009c0000128e0000213d000000400050043f00000000053104360000000007430019000000000067004b000000490000213d00000a0b063001970000001f0230018f000000000054004b000013f20000813d000000000006004b00000a830000613d00000000082400190000000007250019000000200770008a000000200880008a0000000009670019000000000a680019000000000a0a04330000000000a90435000000200660008c000008d50000c13d00000a830000013d0000097c0010009c0000097c01008041000000c001100210000009bc011001c725ea25e50000040f000000800a00003900000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000008f00000613d000000000801034f000000008908043c000000000a9a043600000000005a004b000008ec0000c13d000000000006004b000008fd0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0002000000010355000000010020019000000c4b0000613d0000001f01400039000000600110018f00000080021001bf000900000002001d000000400020043f000000200030008c000000490000413d000000800200043d000000000002004b0000000004000039000000010400c039000000000042004b000000490000c13d000000000002004b00000e6d0000613d00000084021001bf0000000b04000029000000650040008c000011450000413d000009c7030000410000000904000029000000000034043500000020030000390000000000320435000000e402100039000009c8030000410000000000320435000000c402100039000009c9030000410000000000320435000000a4011000390000003b0200003900000000002104350000004001400210000009c5011001c7000025ec000104300000097c0010009c0000097c01008041000000c001100210000009d0011001c725ea25e50000040f00000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000009390000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b000009350000c13d000000000006004b000009460000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0002000000010355000000010020019000000c920000613d0000001f01400039000000600110018f00000080021001bf000900000002001d000000400020043f000000200030008c000000490000413d000000800200043d0000097f0020009c000000490000213d0000000203000039000000000303041a000009e3040000410000000905000029000000000045043500000084041001bf0000000000340435000000c4031000390000000a040000290000000000430435000000a4031000390000000b0400002900000000004304350000000003000414000000040020008c00000b0c0000613d0000097c0030009c0000097c03008041000000c0013002100000004003500210000000000131019f000009d2011001c725ea25e50000040f000000090b00002900000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b00190000097b0000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b000009770000c13d000000000006004b000009880000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000200000001035500000001002001900000107c0000c13d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000009930000c13d000012e10000013d0000097c0010009c0000097c01008041000000c001100210000009d0011001c725ea25e50000040f00000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000009ac0000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b000009a80000c13d000000000006004b000009b90000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0002000000010355000000010020019000000c9e0000613d0000001f01400039000000600110018f00000080021001bf000b00000002001d000000400020043f000000200030008c000000490000413d000000800200043d0000097f0020009c000000490000213d0000000203000039000000000303041a000009d9040000410000000b05000029000000000045043500000084041001bf0000000000340435000000a403100039000000000003043500000004030000390000000103300367000000000303043b000000c40410003900000000003404350000000003000414000000040020008c000010110000c13d0000000001150019000000400010043f0000000b0200002900000b0f0000013d0000097c0030009c0000097c03008041000000c001300210000009d0011001c725ea25e50000040f00000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000009f00000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b000009ec0000c13d000000000006004b000009fd0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0002000000010355000000010020019000000dd50000613d0000001f02400039000000600420018f00000080024001bf000b00000002001d000000400020043f000000200030008c000000490000413d000000800200043d0000097f0020009c000000490000213d0000000205000039000000000505041a000009d1060000410000000b0a00002900000000006a043500000084064001bf0000000000560435000000a405400039000000000005043500000004050000390000000105500367000000000505043b000000c40440003900000000005404350000000004000414000000040020008c00000a2a0000613d0000004001a002100000097c0040009c0000097c04008041000000c003400210000000000113019f000009d2011001c725ea25e50000040f00000060031002700000097c0030019d0000097c0330019700020000000103550000000100200190000011bb0000613d0000000b0a00002900000a0b053001980000001f0630018f00000000045a001900000a340000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000048004b00000a300000c13d000000000006004b00000a410000613d000000000151034f0000000305600210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000001f0130003900000a0b041001970000000001a40019000000000041004b00000000040000390000000104004039000009c60010009c0000128e0000213d00000001004001900000128e0000c13d000000400010043f000009d30030009c000000490000213d000000200030008c000000490000413d0000000b040000290000000004040433000009c60040009c000000490000213d0000000b063000290000000b034000290000001f04300039000000000064004b0000000005000019000009d405008041000009d404400197000009d407600197000000000874013f000000000074004b0000000004000019000009d404004041000009d40080009c000000000405c019000000000004004b000000490000c13d0000000043030434000009c60030009c0000128e0000213d0000001f0530003900000a0b055001970000003f0550003900000a0b055001970000000005150019000009c60050009c0000128e0000213d000000400050043f00000000053104360000000007430019000000000067004b000000490000213d00000a0b063001970000001f0230018f000000000054004b000013fc0000813d000000000006004b00000a830000613d00000000082400190000000007250019000000200770008a000000200880008a0000000009670019000000000a680019000000000a0a04330000000000a90435000000200660008c00000a7d0000c13d000000000002004b000014120000613d0000000007050019000014080000013d0000097c0010009c0000097c01008041000000c001100210000009bc011001c725ea25e50000040f00000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf00000a9b0000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b00000a970000c13d000000000006004b00000aa80000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0002000000010355000000010020019000000de10000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200030008c000000490000413d000000800100043d000000000001004b0000000002000039000000010200c039000000000021004b000000490000c13d000000000001004b000010400000c13d000009ca01000041000000000010043f0000000b0100002900000e700000013d00000080010000390000004402100039000009ef030000410000000000320435000000240210003900000010030000390000000000320435000009c70200004100000000002104350000000402100039000000200300003900000000003204350000004001100210000009d2011001c7000025ec000104300000097c0010009c0000097c01008041000000c001100210000009d0011001c725ea25e50000040f00000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf00000ae10000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b00000add0000c13d000000000006004b00000aee0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0002000000010355000000010020019000000e2e0000613d0000001f01400039000000600110018f00000080021001bf000900000002001d000000400020043f000000200030008c000000490000413d000000800200043d0000097f0020009c000000490000213d0000000203000039000000000303041a000009d6040000410000000905000029000000000045043500000084041001bf0000000000340435000000c4031000390000000a040000290000000000430435000000a4031000390000000b0400002900000000004304350000000003000414000000040020008c000010540000c13d0000000001150019000000400010043f00000009020000290000000002020433000000000002004b0000000003000039000000010300c039000000000032004b000000490000c13d00000000002104350000004001100210000009cf011001c7000025eb0001042e0000097c0030009c0000097c03008041000000c001300210000009d0011001c725ea25e50000040f00000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf00000b2d0000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b00000b290000c13d000000000006004b00000b3a0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0002000000010355000000010020019000000e750000613d0000001f02400039000000600420018f00000080024001bf000b00000002001d000000400020043f000000200030008c000000490000413d000000800200043d0000097f0020009c000000490000213d0000000205000039000000000505041a000009d7060000410000000b0a00002900000000006a043500000084064001bf0000000000560435000000a405400039000000000005043500000004050000390000000105500367000000000505043b000000c40440003900000000005404350000000004000414000000040020008c00000b670000613d0000004001a002100000097c0040009c0000097c04008041000000c003400210000000000113019f000009d2011001c725ea25e50000040f00000060031002700000097c0030019d0000097c0330019700020000000103550000000100200190000011d30000613d0000000b0a00002900000a0b053001980000001f0630018f00000000045a001900000b710000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000048004b00000b6d0000c13d000000000006004b00000b7e0000613d000000000151034f0000000305600210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000001f0130003900000a0b011001970000000002a10019000000000012004b00000000010000390000000101004039000009c60020009c0000128e0000213d00000001001001900000128e0000c13d000000400020043f000009d30030009c000000490000213d000000200030008c000000490000413d0000000b010000290000000001010433000009c60010009c000000490000213d0000000b033000290000000b011000290000001f04100039000000000034004b0000000005000019000009d405008041000009d404400197000009d406300197000000000764013f000000000064004b0000000004000019000009d404004041000009d40070009c000000000405c019000000000004004b000000490000c13d0000000015010434000009c60050009c0000128e0000213d00000005045002100000003f06400039000009d8066001970000000006260019000009c60060009c0000128e0000213d000000400060043f00000000005204350000000004140019000000000034004b000000490000213d000000000005004b00000bb70000613d0000000003020019000000200330003900000000150104340000000000530435000000000041004b00000bb20000413d000000400100043d000b00000001001d25ea1c510000040f000014190000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000bc20000c13d000012e10000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000bce0000c13d000012e10000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000bda0000c13d000012e10000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000be60000c13d000012e10000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000bf20000c13d000012e10000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000bfe0000c13d000012e10000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000c0a0000c13d000012e10000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000c160000c13d000012e10000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000c220000c13d000012e10000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000c2e0000c13d000012e10000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000c3a0000c13d000012e10000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000c460000c13d000012e10000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000c520000c13d000012e10000013d0000097c0010009c0000097c01008041000000c001100210000009bc011001c725ea25e50000040f00000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf00000c6b0000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b00000c670000c13d000000000006004b00000c780000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0002000000010355000000010020019000000e810000613d0000001f01400039000000600210018f00000080012001bf000000400010043f000000200030008c000000490000413d000000800300043d000000000003004b0000000004000039000000010400c039000000000043004b000000490000c13d000000000003004b0000119a0000c13d000009ca01000041000000000010043f0000000001000411000000040010043f00000a0401000041000000240010043f000009cb01000041000025ec000104300000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000c990000c13d000012e10000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000ca50000c13d000012e10000013d0000097c00b0009c0000097c0300004100000000030b401900000040033002100000097c0010009c0000097c01008041000000c001100210000000000131019f000009bf011001c7000b0000000b001d25ea25e50000040f0000000b0b00002900000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b001900000cc50000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b00000cc10000c13d000000000006004b00000cd20000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0002000000010355000000010020019000000e8d0000613d0000001f01400039000000600110018f0000000004b10019000000000014004b00000000020000390000000102004039000b00000004001d000009c60040009c0000128e0000213d00000001002001900000128e0000c13d0000000b02000029000000400020043f000000200030008c000000490000413d00000000020b04330000097f0020009c000000490000213d0000000204000039000000000404041a0000000b070000290000004405700039000009dd06000041000000000065043500000024057000390000000a060000290000000000650435000009de050000410000000000570435000000040570003900000000004504350000000004000414000000040020008c00000d250000613d0000097c0070009c0000097c01000041000000000107401900000040011002100000097c0040009c0000097c04008041000000c003400210000000000113019f000009d2011001c725ea25e50000040f00000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000b0570002900000d110000613d000000000801034f0000000b09000029000000008a08043c0000000009a90436000000000059004b00000d0d0000c13d000000000006004b00000d1e0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f00020000000103550000000100200190000012d60000613d0000001f01400039000000600110018f0000000b070000290000000002710019000900000002001d000009c60020009c0000128e0000213d0000000902000029000000400020043f000000200030008c000000490000413d0000000b020000290000000002020433000b00000002001d0000097f0020009c000000490000213d0000000102000039000000000202041a000009bd04000041000000090500002900000000004504350000000404500039000009be050000410000000000540435000000000400041400000008022002700000097f02200197000000040020008c00000d6b0000613d00000009010000290000097c0010009c0000097c0100804100000040011002100000097c0040009c0000097c04008041000000c003400210000000000113019f000009bf011001c725ea25e50000040f00000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f0000002007400190000000090570002900000d580000613d000000000801034f0000000909000029000000008a08043c0000000009a90436000000000059004b00000d540000c13d000000000006004b00000d650000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f00020000000103550000000100200190000013cf0000613d0000001f01400039000000600110018f0000000902100029000800000002001d000009c60020009c0000128e0000213d0000000802000029000000400020043f000000200030008c000000490000413d000000090200002900000000020204330000097f0020009c000000490000213d0000000204000039000000000404041a00000008070000290000004405700039000009df06000041000000000065043500000024057000390000000a060000290000000000650435000009e0050000410000000000570435000000040570003900000000004504350000000004000414000000040020008c00000db30000613d00000008010000290000097c0010009c0000097c0100804100000040011002100000097c0040009c0000097c04008041000000c003400210000000000113019f000009d2011001c725ea25e50000040f00000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f0000002007400190000000080570002900000da00000613d000000000801034f0000000809000029000000008a08043c0000000009a90436000000000059004b00000d9c0000c13d000000000006004b00000dad0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f00020000000103550000000100200190000014c00000613d0000001f01400039000000600110018f0000000801100029000009c60010009c0000128e0000213d000000400010043f000000200030008c000000490000413d00000008010000290000000001010433000700000001001d0000000a0100002925ea21fc0000040f000600000001001d0000000a0100002925ea1f710000040f0000000102000039000000000202041a000009bd03000041000000400400043d0000000000340435000009be03000041000900000004001d00000004044000390000000000340435000500000001001d000000000100041400000008022002700000097f02200197000000040020008c000014d80000c13d0000000003000031000000200030008c00000020040000390000000004034019000015020000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000ddc0000c13d000012e10000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000de80000c13d000012e10000013d0000097c0010009c0000097c01008041000000c001100210000009ee011001c725ea25e50000040f00000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf00000e010000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b00000dfd0000c13d000000000006004b00000e0e0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0002000000010355000000010020019000000e990000613d0000001f01400039000000600210018f00000080012001bf000000400010043f000000200030008c000000490000413d000000800300043d000000000003004b0000000004000039000000010400c039000000000043004b000000490000c13d000000000003004b00000abf0000c13d000000000300041a000000020030008c000012560000c13d000009c703000041000000000031043500000084032001bf00000020040000390000000000430435000000c40320003900000a01040000410000000000430435000000a4022000390000001f0300003900000ac90000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000e350000c13d000012e10000013d0000097c0010009c0000097c01008041000000c001100210000009bc011001c725ea25e50000040f00000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf00000e4e0000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b00000e4a0000c13d000000000006004b00000e5b0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0002000000010355000000010020019000000ea50000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200030008c000000490000413d000000800100043d000000000001004b0000000002000039000000010200c039000000000021004b000000490000c13d000000000001004b000011df0000c13d000009ca01000041000000000010043f0000000a01000029000000040010043f000009bb01000041000000240010043f000009cb01000041000025ec000104300000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000e7c0000c13d000012e10000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000e880000c13d000012e10000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000e940000c13d000012e10000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000ea00000c13d000012e10000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000eac0000c13d000012e10000013d000000c002100039000000400020043f0000000f020000390000000b040000290000000000240435000000a004100039000009e60200004100000000002404350000000302000039000000000202041a000000ff002001900000108f0000c13d000a00000004001d0000000102000039000000000202041a000000400b00043d000009bd0400004100000000004b04350000000404b00039000009be050000410000000000540435000000000400041400000008022002700000097f02200197000000040020008c00000ef90000613d0000097c00b0009c0000097c0100004100000000010b401900000040011002100000097c0040009c0000097c04008041000000c003400210000000000113019f000009bf011001c700090000000b001d25ea25e50000040f00000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f0000002007400190000000090b000029000000090570002900000ee60000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b00000ee20000c13d000000000006004b00000ef30000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f00020000000103550000000100200190000012640000613d0000001f01400039000000600110018f0000000002b10019000000000012004b00000000010000390000000101004039000009c60020009c0000128e0000213d00000001001001900000128e0000c13d000000400020043f000000200030008c000000490000413d00000000010b0433000900000001001d0000097f0010009c000000490000213d0000000201000039000000000101041a000800000001001d000009c00100004100000000001004430000000901000029000000040010044300000000010004140000097c0010009c0000097c01008041000000c001100210000009c1011001c7000080020200003925ea25e50000040f000000010020019000001b9d0000613d000000000101043b000000000001004b000000490000613d000000400300043d0000006401300039000000000200041000000000002104350000004401300039000009e8020000410000000000210435000009e90100004100000000001304350000000401300039000600000001001d00000008020000290000000000210435000700000003001d0000002401300039000000000001043500000000010004140000000902000029000000040020008c00000f3f0000613d00000007020000290000097c0020009c0000097c0200804100000040022002100000097c0010009c0000097c01008041000000c001100210000000000121019f000009c5011001c7000000090200002925ea25e00000040f00000060031002700000097c0030019d00020000000103550000000100200190000014230000613d0000000701000029000009c60010009c0000128e0000213d0000000703000029000000400030043f0000000101000039000000000201041a000009bd010000410000000000130435000009be0100004100000006030000290000000000130435000000000100041400000008022002700000097f02200197000000040020008c000014300000c13d0000000003000031000000200030008c000000200400003900000000040340190000145a0000013d0000097c0030009c0000097c03008041000000c0013002100000004003500210000000000131019f000009d2011001c725ea25e50000040f0000000b0b00002900000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b001900000f6c0000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b00000f680000c13d000000000006004b00000f790000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000200000001035500000001002001900000109f0000613d0000001f01400039000000600110018f0000000001b10019000000400010043f000000200030008c000005b30000813d000000490000013d0000097c0030009c0000097c03008041000000c0013002100000004003500210000000000131019f000009d2011001c725ea25e50000040f000000090b00002900000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b001900000f9b0000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b00000f970000c13d000000000006004b00000fa80000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f00020000000103550000000100200190000010ab0000613d0000001f01400039000000600110018f0000000001b10019000000400010043f000000200030008c000005f60000813d000000490000013d0000097c0030009c0000097c03008041000000c0013002100000004003500210000000000131019f000009d2011001c725ea25e50000040f0000000b0b00002900000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b001900000fca0000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b00000fc60000c13d000000000006004b00000fd70000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f00020000000103550000000100200190000010b70000613d0000001f01400039000000600110018f0000000001b10019000000400010043f000000200030008c000000490000413d0000063b0000013d0000097c0030009c0000097c03008041000000c0013002100000004003500210000000000131019f000009d2011001c725ea25e50000040f000000090b00002900000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b001900000ff90000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b00000ff50000c13d000000000006004b000010060000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f00020000000103550000000100200190000010c30000613d0000001f01400039000000600110018f0000000001b10019000000400010043f000000200030008c000000490000413d0000067f0000013d0000097c0030009c0000097c03008041000000c0013002100000004003500210000000000131019f000009d2011001c725ea25e50000040f0000000b0b00002900000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b0019000010280000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b000010240000c13d000000000006004b000010350000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f00020000000103550000000100200190000011af0000613d0000001f01400039000000600110018f0000000001b10019000000400010043f000000200030008c000009da0000813d000000490000013d00000a020100004100000000001004430000000001000410000000040010044300000000010004140000097c0010009c0000097c01008041000000c001100210000009c1011001c70000800a0200003925ea25e50000040f000000010020019000001b9d0000613d000000000301043b00000000010004140000000004000411000000040040008c0000124f0000c13d0000000001000031000012850000013d0000097c0030009c0000097c03008041000000c0013002100000004003500210000000000131019f000009d2011001c725ea25e50000040f000000090b00002900000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b00190000106b0000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b000010670000c13d000000000006004b000010780000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f00020000000103550000000100200190000011c70000613d0000001f01400039000000600110018f0000000001b10019000000400010043f000000200030008c00000b0e0000813d000000490000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000108a0000c13d000012e10000013d000009e701000041000000000010043f000009ce01000041000025ec000104300000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000109a0000c13d000012e10000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000010a60000c13d000012e10000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000010b20000c13d000012e10000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000010be0000c13d000012e10000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000010ca0000c13d000012e10000013d0000097c0010009c0000097c01008041000000c0011002100000004003500210000000000131019f000009bf011001c725ea25e50000040f0000000a0b00002900000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b0019000010e60000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b000010e20000c13d000000000006004b000010f30000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f00020000000103550000000100200190000011ea0000613d0000001f01400039000000600110018f0000000001b10019000000400010043f000000200030008c000000490000413d000006cb0000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000011050000c13d000012e10000013d0000097c0010009c0000097c01008041000000c0011002100000004003500210000000000131019f000009bf011001c725ea25e50000040f000000080b00002900000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b0019000011210000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b0000111d0000c13d000000000006004b0000112e0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f00020000000103550000000100200190000011f60000613d0000001f01400039000000600110018f0000000001b10019000000400010043f000000200030008c000007f20000813d000000490000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000011400000c13d000012e10000013d0000000101000039000000000401041a000009bd0100004100000009050000290000000000150435000009be010000410000000000120435000000000100041400000008024002700000097f02200197000000040020008c000012020000c13d000000200030008c00000020030080390000001f01300039000000600110018f0000000001510019000000400010043f00000009010000290000000001010433000a00000001001d0000097f0010009c000000490000213d0000000201000039000000000101041a000900000001001d000009c00100004100000000001004430000000a01000029000000040010044300000000010004140000097c0010009c0000097c01008041000000c001100210000009c1011001c7000080020200003925ea25e50000040f000000010020019000001b9d0000613d000000000101043b000000000001004b000000490000613d000000400300043d00000064013000390000000b0200002900000000002104350000004401300039000009c20200004100000000002104350000002401300039000009c3020000410000000000210435000009c4010000410000000000130435000b00000003001d00000004013000390000000902000029000000000021043500000000010004140000000a02000029000000040020008c000011930000613d0000000b020000290000097c0020009c0000097c0200804100000040022002100000097c0010009c0000097c01008041000000c001100210000000000121019f000009c5011001c70000000a0200002925ea25e00000040f00000060031002700000097c0030019d00020000000103550000000100200190000013db0000613d0000000b01000029000009c60010009c0000128e0000213d0000000b01000029000000400010043f0000000001000019000025eb0001042e0000000103000039000000000503041a000000ff0450018f0000000b0000006b000012300000c13d000000000004004b000012440000613d00000a0c02500197000000000023041b00000000020004110000000000210435000000400110021000000000020004140000097c0020009c0000097c02008041000000c002200210000000000112019f00000a05011001c70000800d0200003900000a0704000041000012400000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000011b60000c13d000012e10000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000011c20000c13d000012e10000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000011ce0000c13d000012e10000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000011da0000c13d000012e10000013d0000000b010000290000097f00100198000000080110021000000981011001970000000103000039000000000203041a000009cc02200197000000000112019f000000000013041b000000640000613d0000128a0000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000011f10000c13d000012e10000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000011fd0000c13d000012e10000013d0000097c0010009c0000097c01008041000000c0011002100000004003500210000000000131019f000009bf011001c725ea25e50000040f00000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000905700029000012180000613d000000000801034f0000000909000029000000008a08043c0000000009a90436000000000059004b000012140000c13d000000000006004b000012250000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f00020000000103550000000100200190000012700000613d0000001f01400039000000600110018f0000000901100029000000400010043f000000200030008c000011570000813d000000490000013d000000000004004b000012440000c13d00000a0c0250019700000001022001bf000000000023041b00000000020004110000000000210435000000400110021000000000020004140000097c0020009c0000097c02008041000000c002200210000000000112019f00000a05011001c70000800d0200003900000a060400004125ea25e00000040f0000000100200190000000490000613d0000128a0000013d000009c703000041000000000031043500000084032001bf00000020040000390000000000430435000000c40320003900000a08040000410000000000430435000000a402200039000000140300003900000ac90000013d0000097c0010009c0000097c01008041000000c001100210000000000003004b0000127c0000c13d00000000020400190000127f0000013d0000000201000039000000000010041b0000000b0100002925ea1f710000040f000900000001001d000000000001004b0000129b0000c13d000000400100043d000000440210003900000a0003000041000000000032043500000024021000390000001203000039000012a40000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000126b0000c13d000012e10000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000012770000c13d000012e10000013d000009f4011001c70000800902000039000000000500001925ea25e00000040f000a00000002001d000200000001035500000060011002700000097c0010019d0000097c01100197000000000001004b0000128c0000c13d0000000a010000290000000100100190000012940000613d0000000001000019000025eb0001042e000009c60010009c000012af0000a13d000009fe01000041000000000010043f0000004101000039000000040010043f000009bf01000041000025ec00010430000000400100043d000000440210003900000a0303000041000000000032043500000024021000390000000f03000039000012a40000013d00000000020004160007000900200074000012f40000813d000000400100043d0000004402100039000009ff030000410000000000320435000000240210003900000014030000390000000000320435000009c70200004100000000002104350000000402100039000000200300003900000000003204350000097c0010009c0000097c010080410000004001100210000009d2011001c7000025ec000104300000001f0310003900000a0b033001970000003f0330003900000a0b04300197000000400300043d0000000004430019000000000034004b00000000050000390000000105004039000009c60040009c0000128e0000213d00000001005001900000128e0000c13d000000400040043f000000000513043600000a0b021001980000001f0310018f00000000012500190000000204000367000012c80000613d000000000604034f000000006706043c0000000005750436000000000015004b000012c40000c13d000000000003004b000012870000613d000000000224034f0000000303300210000000000401043300000000043401cf000000000434022f000000000202043b0000010003300089000000000232022f00000000023201cf000000000242019f0000000000210435000012870000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000012dd0000c13d000000000005004b000012ee0000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000097c0020009c0000097c020080410000004002200210000000000112019f000025ec0001043025ea1e990000040f0000000102000039000000000202041a000000400400043d000009bd030000410000000000340435000800000004001d0000000403400039000009f0040000410000000000430435000500000001001d000000000100041400000008022002700000097f02200197000000040020008c000013090000c13d0000000003000031000000200030008c00000020040000390000000004034019000013330000013d00000008030000290000097c0030009c0000097c0300804100000040033002100000097c0010009c0000097c01008041000000c001100210000000000131019f000009bf011001c725ea25e50000040f00000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000805700029000013220000613d000000000801034f0000000809000029000000008a08043c0000000009a90436000000000059004b0000131e0000c13d000000000006004b0000132f0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f00020000000103550000000100200190000013c30000613d0000001f01400039000000600110018f0000000804100029000000000014004b00000000020000390000000102004039000600000004001d000009c60040009c0000128e0000213d00000001002001900000128e0000c13d0000000602000029000000400020043f000000200030008c000000490000413d000000080200002900000000020204330000097f0020009c000000490000213d000009f104000041000000060500002900000000004504350000000404500039000000000500041100000000005404350000000004000414000000040020008c0000137b0000613d00000006010000290000097c0010009c0000097c0100804100000040011002100000097c0040009c0000097c04008041000000c003400210000000000113019f000009bf011001c725ea25e50000040f00000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000605700029000013680000613d000000000801034f0000000609000029000000008a08043c0000000009a90436000000000059004b000013640000c13d000000000006004b000013750000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f00020000000103550000000100200190000014b40000613d0000001f01400039000000600110018f0000000601100029000800000001001d000009c60010009c0000128e0000213d0000000801000029000000400010043f000000200030008c000000490000413d00000006010000290000000001010433000600000001001d0000097f0010009c000000490000213d000000060000006b000016f20000613d000000050000006b000016f20000613d000000050300002900000009023000b9000400000002001d00000009012000fa000000000013004b000016cf0000c13d0000000401000029000000630010008c000015790000213d00000008030000290000006401300039000009f60200004100000000002104350000004401300039000009f7020000410000000000210435000000240130003900000021020000390000000000210435000009c70100004100000000001304350000000401300039000000200200003900000000002104350000097c0030009c0000097c030080410000004001300210000009c5011001c7000025ec000104300000097c033001970000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000013b10000c13d000012e10000013d0000097c033001970000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000013be0000c13d000012e10000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000013ca0000c13d000012e10000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000013d60000c13d000012e10000013d0000097c033001970000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000013e30000c13d000012e10000013d0000000007650019000000000006004b000014050000613d00000000080400190000000009050019000000008a0804340000000009a90436000000000079004b000013ed0000c13d000014050000013d0000000007650019000000000006004b000014050000613d00000000080400190000000009050019000000008a0804340000000009a90436000000000079004b000013f70000c13d000014050000013d0000000007650019000000000006004b000014050000613d00000000080400190000000009050019000000008a0804340000000009a90436000000000079004b000014010000c13d000000000002004b000014120000613d00000000046400190000000302200210000000000607043300000000062601cf000000000626022f00000000040404330000010002200089000000000424022f00000000022401cf000000000262019f0000000000270435000000000253001900000000000204350000002002000039000000400300043d000b00000003001d000000000223043625ea1c1f0000040f0000000b0200002900000000012100490000097c0010009c0000097c0100804100000060011002100000097c0020009c0000097c020080410000004002200210000000000121019f000025eb0001042e0000097c033001970000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000142b0000c13d000012e10000013d00000007030000290000097c0030009c0000097c0300804100000040033002100000097c0010009c0000097c01008041000000c001100210000000000131019f000009bf011001c725ea25e50000040f00000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000705700029000014490000613d000000000801034f0000000709000029000000008a08043c0000000009a90436000000000059004b000014450000c13d000000000006004b000014560000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f00020000000103550000000100200190000014cc0000613d0000001f01400039000000600110018f0000000701100029000009c60010009c0000128e0000213d000000400010043f000000200030008c000000490000413d00000007010000290000000001010433000900000001001d0000097f0010009c000000490000213d0000000201000039000000000101041a000800000001001d000009c00100004100000000001004430000000901000029000000040010044300000000010004140000097c0010009c0000097c01008041000000c001100210000009c1011001c7000080020200003925ea25e50000040f000000010020019000001b9d0000613d000000000101043b000000000001004b000000490000613d000000400300043d0000006401300039000000000200041100000000002104350000004401300039000009e4020000410000000000210435000009e90100004100000000001304350000000401300039000600000001001d00000008020000290000000000210435000700000003001d0000002401300039000000000001043500000000010004140000000902000029000000040020008c0000149e0000613d00000007020000290000097c0020009c0000097c0200804100000040022002100000097c0010009c0000097c01008041000000c001100210000000000121019f000009c5011001c7000000090200002925ea25e00000040f00000060031002700000097c0030019d00020000000103550000000100200190000015b20000613d0000000701000029000009c60010009c0000128e0000213d0000000703000029000000400030043f0000000101000039000000000201041a000009bd010000410000000000130435000009be0100004100000006030000290000000000130435000000000100041400000008022002700000097f02200197000000040020008c000015bf0000c13d0000000003000031000000200030008c00000020040000390000000004034019000015e90000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000014bb0000c13d000012e10000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000014c70000c13d000012e10000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000014d30000c13d000012e10000013d00000009030000290000097c0030009c0000097c0300804100000040033002100000097c0010009c0000097c01008041000000c001100210000000000131019f000009bf011001c725ea25e50000040f00000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000905700029000014f10000613d000000000801034f0000000909000029000000008a08043c0000000009a90436000000000059004b000014ed0000c13d000000000006004b000014fe0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000200000001035500000001002001900000156d0000613d0000001f01400039000000600110018f0000000904100029000000000014004b00000000020000390000000102004039000800000004001d000009c60040009c0000128e0000213d00000001002001900000128e0000c13d0000000802000029000000400020043f000000200030008c000000490000413d000000090200002900000000020204330000097f0020009c000000490000213d0000000204000039000000000404041a00000008070000290000004405700039000009e106000041000000000065043500000024057000390000000a060000290000000000650435000009de050000410000000000570435000000040570003900000000004504350000000004000414000000040020008c000015510000613d00000008010000290000097c0010009c0000097c0100804100000040011002100000097c0040009c0000097c04008041000000c003400210000000000113019f000009d2011001c725ea25e50000040f00000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000008057000290000153e0000613d000000000801034f0000000809000029000000008a08043c0000000009a90436000000000059004b0000153a0000c13d000000000006004b0000154b0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f00020000000103550000000100200190000016320000613d0000001f01400039000000600110018f0000000801100029000009c60010009c0000128e0000213d000000400010043f000000200030008c000000490000413d000000080200002900000000020204330000097f0020009c000000490000213d000000800310003900000000002304350000006002100039000000050300002900000000003204350000004002100039000000060300002900000000003204350000002002100039000000070300002900000000003204350000000b0200002900000000002104350000097c0010009c0000097c010080410000004001100210000009e2011001c7000025eb0001042e0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000015740000c13d000012e10000013d00000008040000290000002001400039000009f2020000410000000000210435000000060200002900000060022002100000002c03400039000000000023043500000020020000390000000000240435000009f30040009c0000128e0000213d00000008030000290000004002300039000000400020043f0000097c0010009c0000097c01008041000000400110021000000000020304330000097c0020009c0000097c020080410000006002200210000000000112019f00000000020004140000097c0020009c0000097c02008041000000c002200210000000000112019f000009f4011001c7000080100200003925ea25e50000040f0000000100200190000000490000613d000000000101043b000800000001001d25ea204a0000040f000000000001004b000016c20000c13d0000000101000039000000000201041a000000400300043d000009bd010000410000000000130435000500000003001d0000000401300039000009be030000410000000000310435000000000100041400000008022002700000097f02200197000000040020008c0000164a0000c13d0000000003000031000000200030008c00000020040000390000000004034019000016740000013d0000097c033001970000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000015ba0000c13d000012e10000013d00000007030000290000097c0030009c0000097c0300804100000040033002100000097c0010009c0000097c01008041000000c001100210000000000131019f000009bf011001c725ea25e50000040f00000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000705700029000015d80000613d000000000801034f0000000709000029000000008a08043c0000000009a90436000000000059004b000015d40000c13d000000000006004b000015e50000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000200000001035500000001002001900000163e0000613d0000001f01400039000000600110018f0000000701100029000009c60010009c0000128e0000213d000000400010043f000000200030008c000000490000413d00000007010000290000000001010433000900000001001d0000097f0010009c000000490000213d0000000201000039000000000101041a000800000001001d000009c00100004100000000001004430000000901000029000000040010044300000000010004140000097c0010009c0000097c01008041000000c001100210000009c1011001c7000080020200003925ea25e50000040f000000010020019000001b9d0000613d000000000101043b000000000001004b000000490000613d000000400300043d0000006401300039000000800200003900000000002104350000004401300039000009ea020000410000000000210435000009eb0100004100000000001304350000000401300039000600000001001d00000008020000290000000000210435000000240130003900000000000104350000000b0100002900000000010104330000008402300039000000000012043500000a0b051001970000001f0410018f000700000003001d000000a4033000390000000a0030006b000018ab0000813d000000000005004b0000162e0000613d0000000a074000290000000006430019000000200660008a000000200770008a0000000008560019000000000957001900000000090904330000000000980435000000200550008c000016280000c13d000000000004004b000018c20000613d0000000006030019000018b70000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000016390000c13d000012e10000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000016450000c13d000012e10000013d00000005030000290000097c0030009c0000097c0300804100000040033002100000097c0010009c0000097c01008041000000c001100210000000000131019f000009bf011001c725ea25e50000040f00000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000505700029000016630000613d000000000801034f0000000509000029000000008a08043c0000000009a90436000000000059004b0000165f0000c13d000000000006004b000016700000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f00020000000103550000000100200190000018820000613d0000001f01400039000000600210018f0000000501200029000000000021004b00000000020000390000000102004039000009c60010009c0000128e0000213d00000001002001900000128e0000c13d000000400010043f000000200030008c000000490000413d00000005010000290000000001010433000500000001001d0000097f0010009c000000490000213d0000000201000039000000000101041a000300000001001d000009c00100004100000000001004430000000501000029000000040010044300000000010004140000097c0010009c0000097c01008041000000c001100210000009c1011001c7000080020200003925ea25e50000040f000000010020019000001b9d0000613d000000000101043b000000000001004b000000490000613d000000400300043d0000006401300039000000060200002900000000002104350000004401300039000009e8020000410000000000210435000000240130003900000008020000290000000000210435000009e9010000410000000000130435000200000003001d00000004013000390000000302000029000000000021043500000000010004140000000502000029000000040020008c000016bd0000613d00000002020000290000097c0020009c0000097c0200804100000040022002100000097c0010009c0000097c01008041000000c001100210000000000121019f000009c5011001c7000000050200002925ea25e00000040f00000060031002700000097c0030019d00020000000103550000000100200190000019860000613d0000000201000029000009c60010009c0000128e0000213d0000000201000029000000400010043f00000004010000290005006400100122000000080100002925ea1f710000040f000000050010002a000016cf0000413d0000000502100029000000080100002925ea235c0000040f000000080100002925ea204a0000040f000000010210003a000016d50000c13d000009fe01000041000000000010043f0000001101000039000000040010043f000009bf01000041000025ec00010430000000080100002925ea241d0000040f00000000010004140000000602000029000000040020008c000016dd0000c13d0000000003000031000016eb0000013d0000097c0010009c0000097c01008041000000c001100210000009f4011001c7000080090200003900000005030000290000000604000029000000000500001925ea25e00000040f000a00000002001d000200000001035500000060011002700000097c0010019d0000097c03100197000000000003004b000018590000c13d000000400100043d000800000001001d0000000a0100002900000001001001900000188e0000613d0000000101000039000500000001001d000000000201041a000009bd01000041000000080400002900000000001404350000000401400039000009be040000410000000000410435000000000100041400000008022002700000097f02200197000000040020008c000017040000c13d000000200030008c000000200400003900000000040340190000172f0000013d0000000803000029000800000003001d0000097c0030009c0000097c0300804100000040033002100000097c0010009c0000097c01008041000000c001100210000000000131019f000009bf011001c725ea25e50000040f00000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000008057000290000171e0000613d000000000801034f0000000809000029000000008a08043c0000000009a90436000000000059004b0000171a0000c13d000000000006004b0000172b0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f00020000000103550000000100200190000018410000613d0000001f01400039000000600110018f0000000804100029000000000014004b00000000020000390000000102004039000a00000004001d000009c60040009c0000128e0000213d00000001002001900000128e0000c13d0000000a02000029000000400020043f000000200030008c000000490000413d000000080200002900000000020204330000097f0020009c000000490000213d0000000204000039000000000404041a0000000a070000290000004405700039000009f8060000410000000000650435000009e005000041000000000057043500000004057000390000000000450435000000240470003900000000000404350000000004000414000000040020008c0000177d0000613d0000000a010000290000097c0010009c0000097c0100804100000040011002100000097c0040009c0000097c04008041000000c003400210000000000113019f000009d2011001c725ea25e50000040f00000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000a057000290000176a0000613d000000000801034f0000000a09000029000000008a08043c0000000009a90436000000000059004b000017660000c13d000000000006004b000017770000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000200000001035500000001002001900000184d0000613d0000001f01400039000000600110018f0000000a02100029000800000002001d000009c60020009c0000128e0000213d0000000802000029000000400020043f000000200030008c000000490000413d0000000a020000290000000002020433000a00000002001d000000010020003a000016cf0000413d0000000102000039000000000202041a000009bd04000041000000080500002900000000004504350000000404500039000009be050000410000000000540435000000000400041400000008022002700000097f02200197000000040020008c000017c30000613d00000008010000290000097c0010009c0000097c0100804100000040011002100000097c0040009c0000097c04008041000000c003400210000000000113019f000009bf011001c725ea25e50000040f00000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000805700029000017b00000613d000000000801034f0000000809000029000000008a08043c0000000009a90436000000000059004b000017ac0000c13d000000000006004b000017bd0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000200000001035500000001002001900000189f0000613d0000001f01400039000000600110018f0000000801100029000009c60010009c0000128e0000213d000000400010043f000000200030008c000000490000413d00000008010000290000000001010433000800000001001d0000097f0010009c000000490000213d0000000201000039000000000101041a000400000001001d000009c00100004100000000001004430000000801000029000000040010044300000000010004140000097c0010009c0000097c01008041000000c001100210000009c1011001c7000080020200003925ea25e50000040f000000010020019000001b9d0000613d000000000101043b000000000001004b000000490000613d0000000a010000290000000102100039000000400300043d0000006401300039000200000002001d00000000002104350000004401300039000009f8020000410000000000210435000009c4010000410000000001130436000300000001001d000000040130003900000004020000290000000000210435000a00000003001d0000002401300039000000000001043500000000010004140000000802000029000000040020008c000018070000613d0000000a020000290000097c0020009c0000097c0200804100000040022002100000097c0010009c0000097c01008041000000c001100210000000000121019f000009c5011001c7000000080200002925ea25e00000040f00000060031002700000097c0030019d00020000000103550000000100200190000019930000613d0000000a01000029000009c60010009c0000128e0000213d0000000a03000029000000400030043f000009db010000410000000302000029000000000012043500000028013000390000000202000029000000000021043500000028010000390000000000130435000009f90030009c0000128e0000213d0000000a020000290000006001200039000000400010043f00000003010000290000097c0010009c0000097c01008041000000400110021000000000020204330000097c0020009c0000097c020080410000006002200210000000000112019f00000000020004140000097c0020009c0000097c02008041000000c002200210000000000112019f000009f4011001c7000080100200003925ea25e50000040f0000000100200190000000490000613d000000000101043b000800000001001d0000000101000039000000000201041a000000400300043d000009bd010000410000000000130435000a00000003001d0000000401300039000009be030000410000000000310435000000000100041400000008022002700000097f02200197000000040020008c000019a00000c13d0000000003000031000000200030008c00000020040000390000000004034019000019ca0000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000018480000c13d000012e10000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000018540000c13d000012e10000013d000009c60030009c0000128e0000213d0000001f0230003900000a0b022001970000003f0220003900000a0b04200197000000400200043d0000000004420019000000000024004b00000000050000390000000105004039000009c60040009c0000128e0000213d00000001005001900000128e0000c13d000000400040043f000000000632043600000a0b023001980000001f0430018f00000000012600190000000205000367000018740000613d000000000705034f000000007807043c0000000006860436000000000016004b000018700000c13d000000000004004b000016ed0000613d000000000225034f0000000304400210000000000501043300000000054501cf000000000545022f000000000202043b0000010004400089000000000242022f00000000024201cf000000000252019f0000000000210435000016ed0000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000018890000c13d000012e10000013d00000008030000290000004401300039000009f5020000410000000000210435000000240130003900000018020000390000000000210435000009c70100004100000000001304350000000401300039000000200200003900000000002104350000097c0030009c0000097c030080410000004001300210000009d2011001c7000025ec000104300000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000018a60000c13d000012e10000013d0000000006530019000000000005004b000018b40000613d0000000a07000029000000000803001900000000790704340000000008980436000000000068004b000018b00000c13d000000000004004b000018c20000613d000a000a0050002d0000000304400210000000000506043300000000054501cf000000000545022f0000000a0700002900000000070704330000010004400089000000000747022f00000000044701cf000000000454019f00000000004604350000000003310019000000000003043500000000030004140000000904000029000000040040008c000018de0000613d0000001f0110003900000a0b01100197000000a4011000390000097c0010009c0000097c01008041000000600110021000000007020000290000097c0020009c0000097c020080410000004002200210000000000121019f0000097c0030009c0000097c03008041000000c002300210000000000112019f000000090200002925ea25e00000040f00000060031002700000097c0030019d00020000000103550000000100200190000018f40000613d0000000701000029000009c60010009c0000128e0000213d0000000703000029000000400030043f0000000101000039000000000201041a000009bd010000410000000000130435000009be0100004100000006030000290000000000130435000000000100041400000008022002700000097f02200197000000040020008c000019010000c13d0000000003000031000000200030008c000000200400003900000000040340190000192b0000013d0000097c033001970000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000018fc0000c13d000012e10000013d00000007030000290000097c0030009c0000097c0300804100000040033002100000097c0010009c0000097c01008041000000c001100210000000000131019f000009bf011001c725ea25e50000040f00000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000007057000290000191a0000613d000000000801034f0000000709000029000000008a08043c0000000009a90436000000000059004b000019160000c13d000000000006004b000019270000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000200000001035500000001002001900000197a0000613d0000001f01400039000000600110018f0000000701100029000009c60010009c0000128e0000213d000000400010043f000000200030008c000000490000413d00000007010000290000000001010433000b00000001001d0000097f0010009c000000490000213d0000000201000039000000000101041a000a00000001001d000009c00100004100000000001004430000000b01000029000000040010044300000000010004140000097c0010009c0000097c01008041000000c001100210000009c1011001c7000080020200003925ea25e50000040f000000010020019000001b9d0000613d000000000101043b000000000001004b000000490000613d000000400300043d0000006401300039000009820200004100000000002104350000004401300039000009df020000410000000000210435000009c401000041000000000013043500000004013000390000000a020000290000000000210435000a00000003001d0000002401300039000000000001043500000000010004140000000b02000029000000040020008c0000196e0000613d0000000a020000290000097c0020009c0000097c0200804100000040022002100000097c0010009c0000097c01008041000000c001100210000000000121019f000009c5011001c70000000b0200002925ea25e00000040f00000060031002700000097c0030019d0002000000010355000000010020019000001a390000613d0000000a01000029000009c60010009c0000128e0000213d0000000a01000029000000400010043f0000000303000039000000000103041a00000a0c0110019700000001011001bf000000000013041b0000000001000019000025eb0001042e0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000019810000c13d000012e10000013d0000097c033001970000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000198e0000c13d000012e10000013d0000097c033001970000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000199b0000c13d000012e10000013d0000000a030000290000097c0030009c0000097c0300804100000040033002100000097c0010009c0000097c01008041000000c001100210000000000131019f000009bf011001c725ea25e50000040f00000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000a05700029000019b90000613d000000000801034f0000000a09000029000000008a08043c0000000009a90436000000000059004b000019b50000c13d000000000006004b000019c60000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0002000000010355000000010020019000001a2d0000613d0000001f01400039000000600210018f0000000a01200029000000000021004b00000000020000390000000102004039000009c60010009c0000128e0000213d00000001002001900000128e0000c13d000000400010043f000000200030008c000000490000413d0000000a010000290000000001010433000a00000001001d0000097f0010009c000000490000213d0000000201000039000000000101041a000400000001001d000009c00100004100000000001004430000000a01000029000000040010044300000000010004140000097c0010009c0000097c01008041000000c001100210000009c1011001c7000080020200003925ea25e50000040f000000010020019000001b9d0000613d000000000101043b000000000001004b000000490000613d000000400300043d0000006401300039000000000200041100000000002104350000004401300039000009dd020000410000000000210435000000240130003900000008020000290000000000210435000009e9010000410000000000130435000300000003001d0000000401300039000100000001001d0000000402000029000000000021043500000000010004140000000a02000029000000040020008c00001a140000613d00000003020000290000097c0020009c0000097c0200804100000040022002100000097c0010009c0000097c01008041000000c001100210000000000121019f000009c5011001c70000000a0200002925ea25e00000040f00000060031002700000097c0030019d0002000000010355000000010020019000001a460000613d0000000301000029000009c60010009c0000128e0000213d0000000301000029000000400010043f0000000101000039000000000101041a000000060000006b00001ac90000613d000009bd0200004100000003030000290000000000230435000009be0200004100000001030000290000000000230435000000000300041400000008011002700000097f02100197000000040020008c00001a530000c13d0000000003000031000000200030008c0000002004000039000000000403401900001a7d0000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001a340000c13d000012e10000013d0000097c033001970000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001a410000c13d000012e10000013d0000097c033001970000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001a4e0000c13d000012e10000013d00000003010000290000097c0010009c0000097c0100804100000040011002100000097c0030009c0000097c03008041000000c003300210000000000113019f000009bf011001c725ea25e50000040f00000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f0000002007400190000000030570002900001a6c0000613d000000000801034f0000000309000029000000008a08043c0000000009a90436000000000059004b00001a680000c13d000000000006004b00001a790000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0002000000010355000000010020019000001ad90000613d0000001f01400039000000600110018f0000000301100029000009c60010009c0000128e0000213d000000400010043f000000200030008c000000490000413d00000003010000290000000001010433000a00000001001d0000097f0010009c000000490000213d0000000201000039000000000101041a000400000001001d000009c00100004100000000001004430000000a01000029000000040010044300000000010004140000097c0010009c0000097c01008041000000c001100210000009c1011001c7000080020200003925ea25e50000040f000000010020019000001b9d0000613d000000000101043b000000000001004b000000490000613d000000400300043d0000006401300039000000060200002900000000002104350000004401300039000009e1020000410000000000210435000000240130003900000008020000290000000000210435000009e9010000410000000000130435000300000003001d0000000401300039000100000001001d0000000402000029000000000021043500000000010004140000000a02000029000000040020008c00001ac20000613d00000003020000290000097c0020009c0000097c0200804100000040022002100000097c0010009c0000097c01008041000000c001100210000000000121019f000009c5011001c70000000a0200002925ea25e00000040f00000060031002700000097c0030019d0002000000010355000000010020019000001ae50000613d0000000301000029000009c60010009c0000128e0000213d0000000301000029000000400010043f0000000101000039000000000101041a000009bd0200004100000003030000290000000000230435000009be0200004100000001030000290000000000230435000000000300041400000008011002700000097f02100197000000040020008c00001af20000c13d0000000003000031000000200030008c0000002004000039000000000403401900001b1d0000013d0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001ae00000c13d000012e10000013d0000097c033001970000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001aed0000c13d000012e10000013d0000000301000029000300000001001d0000097c0010009c0000097c0100804100000040011002100000097c0030009c0000097c03008041000000c003300210000000000113019f000009bf011001c725ea25e50000040f00000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f0000002007400190000000030570002900001b0c0000613d000000000801034f0000000309000029000000008a08043c0000000009a90436000000000059004b00001b080000c13d000000000006004b00001b190000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0002000000010355000000010020019000001b9e0000613d0000001f01400039000000600110018f0000000301100029000009c60010009c0000128e0000213d000000400010043f000000200030008c000000490000413d00000003010000290000000001010433000a00000001001d0000097f0010009c000000490000213d0000000201000039000000000101041a000400000001001d000009c00100004100000000001004430000000a01000029000000040010044300000000010004140000097c0010009c0000097c01008041000000c001100210000009c1011001c7000080020200003925ea25e50000040f000000010020019000001b9d0000613d000000000101043b000000000001004b000000490000613d000000400300043d00000064013000390000000b0200002900000000002104350000004401300039000009df020000410000000000210435000000240130003900000008020000290000000000210435000009c4010000410000000000130435000600000003001d00000004013000390000000402000029000000000021043500000000010004140000000a02000029000000040020008c00001b610000613d00000006020000290000097c0020009c0000097c0200804100000040022002100000097c0010009c0000097c01008041000000c001100210000000000121019f000009c5011001c70000000a0200002925ea25e00000040f00000060031002700000097c0030019d0002000000010355000000010020019000001baa0000613d0000000601000029000009c60010009c0000128e0000213d0000000601000029000000400010043f000009d501000041000000000010044300000000010004140000097c0010009c0000097c01008041000000c001100210000009fa011001c70000800b0200003925ea25e50000040f000000010020019000001b9d0000613d000000000201043b0000000801000029000a00000002001d25ea24de0000040f0000000801000029000000090200002925ea235c0000040f0000000801000029000000020200002925ea241d0000040f25ea1c720000040f000800000001001d0000000b0100002925ea21230000040f000b00000001001d000000000100041125ea1dc10000040f0000000b02000029000000000021001a000016cf0000413d00000000030200190000000002210019000000080020006c00001bb70000a13d000000400100043d0000006402100039000009fc0300004100000000003204350000004402100039000009fd030000410000000000320435000000240210003900000021030000390000000000320435000009c70200004100000000002104350000000402100039000000200300003900000000003204350000097c0010009c0000097c010080410000004001100210000009c5011001c7000025ec00010430000000000001042f0000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001ba50000c13d000012e10000013d0000097c033001970000001f0530018f0000097e06300198000000400200043d0000000004620019000012e10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001bb20000c13d000012e10000013d0000000a0010002a000016cf0000413d0000000a01100029000000000031001a000016cf0000413d0000000002310019000000000100041125ea24de0000040f0000000002000416000000090020006c00001c090000613d00000000010004140000000002000411000000040020008c00001bc80000c13d000000000100003100001bd60000013d0000097c0010009c0000097c01008041000000c001100210000009f4011001c7000080090200003900000007030000290000000004000411000000000500001925ea25e00000040f0005000100200193000200000001035500000060011002700000097c0010019d0000097c01100197000000000001004b00001c000000613d000009c60010009c0000128e0000213d0000001f0310003900000a0b033001970000003f0330003900000a0b04300197000000400300043d0000000004430019000000000034004b00000000050000390000000105004039000009c60040009c0000128e0000213d00000001005001900000128e0000c13d000000400040043f000000000513043600000a0b021001980000001f0310018f0000000001250019000000020400036700001bf30000613d000000000604034f000000006706043c0000000005750436000000000015004b00001bef0000c13d000000000003004b00001c000000613d000000000224034f0000000303300210000000000401043300000000043401cf000000000434022f000000000202043b0000010003300089000000000232022f00000000023201cf000000000242019f0000000000210435000000050000006b00001c090000c13d000000400100043d0000004402100039000009fb03000041000000000032043500000024021000390000001b03000039000012a40000013d0000000101000039000000000010041b000000400100043d000000020200002900000000002104350000097c0010009c0000097c010080410000004001100210000009cf011001c7000025eb0001042e000009d30010009c00001c1d0000213d000000430010008c00001c1d0000a13d00000001020003670000000401200370000000000101043b0000002402200370000000000202043b000000000001042d0000000001000019000025ec000104300000000043010434000000000132043600000a0b063001970000001f0530018f000000000014004b00001c350000813d000000000006004b00001c310000613d00000000085400190000000007510019000000200770008a000000200880008a0000000009670019000000000a680019000000000a0a04330000000000a90435000000200660008c00001c2b0000c13d000000000005004b00001c4b0000613d000000000701001900001c410000013d0000000007610019000000000006004b00001c3e0000613d00000000080400190000000009010019000000008a0804340000000009a90436000000000079004b00001c3a0000c13d000000000005004b00001c4b0000613d00000000046400190000000305500210000000000607043300000000065601cf000000000656022f00000000040404330000010005500089000000000454022f00000000045401cf000000000464019f0000000000470435000000000431001900000000000404350000001f0330003900000a0b023001970000000001210019000000000001042d00000020030000390000000004310436000000000302043300000000003404350000004001100039000000000003004b00001c5f0000613d00000000040000190000002002200039000000000502043300000000015104360000000104400039000000000034004b00001c590000413d000000000001042d0000001f0220003900000a0b022001970000000001120019000000000021004b00000000020000390000000102004039000009c60010009c00001c6c0000213d000000010020019000001c6c0000c13d000000400010043f000000000001042d000009fe01000041000000000010043f0000004101000039000000040010043f000009bf01000041000025ec0001043000010000000000020000000101000039000000000201041a000000400c00043d000009bd0100004100000000001c04350000000401c00039000009be030000410000000000310435000000000100041400000008022002700000097f02200197000000040020008c00001c850000c13d0000000003000031000000200030008c0000002004000039000000000403401900001cb10000013d0000097c00c0009c0000097c0300004100000000030c401900000040033002100000097c0010009c0000097c01008041000000c001100210000000000131019f000009bf011001c700010000000c001d25ea25e50000040f000000010c00002900000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057c001900001ca00000613d000000000801034f00000000090c0019000000008a08043c0000000009a90436000000000059004b00001c9c0000c13d000000000006004b00001cad0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0002000000010355000000010020019000001d0d0000613d0000001f01400039000000600110018f000000000bc1001900000000001b004b00000000020000390000000102004039000009c600b0009c00001d070000213d000000010020019000001d070000c13d0000004000b0043f0000001f0030008c00001d050000a13d00000000020c04330000097f0020009c00001d050000213d0000000204000039000000000404041a0000004405b00039000009ec060000410000000000650435000009e00500004100000000005b04350000000405b0003900000000004504350000002404b0003900000000000404350000000004000414000000040020008c00001cfd0000613d0000097c00b0009c0000097c0100004100000000010b401900000040011002100000097c0040009c0000097c04008041000000c003400210000000000113019f000009d2011001c700010000000b001d25ea25e50000040f000000010b00002900000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b001900001cea0000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b00001ce60000c13d000000000006004b00001cf70000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0002000000010355000000010020019000001d2b0000613d0000001f01400039000000600110018f0000000001b10019000009c60010009c00001d070000213d000000400010043f000000200030008c00001d050000413d00000000010b0433000000000001042d0000000001000019000025ec00010430000009fe01000041000000000010043f0000004101000039000000040010043f000009bf01000041000025ec000104300000001f0530018f0000097e06300198000000400200043d000000000462001900001d180000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001d140000c13d000000000005004b00001d250000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000097c0020009c0000097c020080410000004002200210000000000112019f000025ec000104300000001f0530018f0000097e06300198000000400200043d000000000462001900001d360000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001d320000c13d000000000005004b00001d430000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000097c0020009c0000097c020080410000004002200210000000000121019f000025ec0001043000010000000000020000000101000039000000000201041a000000ff0120019000001d9a0000c13d000000400b00043d000009ed0100004100000000001b0435000000000100041400000008022002700000097f02200197000000040020008c00001d5b0000c13d0000000003000031000000200030008c0000002004000039000000000403401900001d870000013d0000097c00b0009c0000097c0300004100000000030b401900000040033002100000097c0010009c0000097c01008041000000c001100210000000000131019f000009ce011001c700010000000b001d25ea25e50000040f000000010b00002900000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b001900001d760000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b00001d720000c13d000000000006004b00001d830000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0002000000010355000000010020019000001da30000613d0000001f01400039000000600210018f0000000001b20019000000000021004b00000000020000390000000102004039000009c60010009c00001d9d0000213d000000010020019000001d9d0000c13d000000400010043f0000001f0030008c00001d9b0000a13d00000000010b0433000000000001004b0000000002000039000000010200c039000000000021004b00001d9b0000c13d000000000001042d0000000001000019000025ec00010430000009fe01000041000000000010043f0000004101000039000000040010043f000009bf01000041000025ec000104300000001f0530018f0000097e06300198000000400200043d000000000462001900001dae0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001daa0000c13d000000000005004b00001dbb0000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000097c0020009c0000097c020080410000004002200210000000000121019f000025ec0001043000020000000000020000000102000039000000000202041a000000400c00043d000009bd0300004100000000003c04350000000404c00039000009be030000410000000000340435000000000400041400000008022002700000097f02200197000000040020008c00001dd40000c13d0000000003000031000000200030008c0000002004000039000000000403401900001e020000013d000100000001001d0000097c00c0009c0000097c0300004100000000030c401900000040033002100000097c0040009c0000097c04008041000000c001400210000000000131019f000009bf011001c700020000000c001d25ea25e50000040f000000020c00002900000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057c001900001df00000613d000000000801034f00000000090c0019000000008a08043c0000000009a90436000000000059004b00001dec0000c13d000000000006004b00001dfd0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0002000000010355000000010020019000001e6f0000613d00000001010000290000001f02400039000000600820018f000000000bc8001900000000008b004b00000000020000390000000102004039000009c600b0009c00001e680000213d000000010020019000001e680000c13d0000004000b0043f0000001f0030008c00001e660000a13d00000000020c04330000097f0020009c00001e660000213d0000097f041001970000000205000039000000000505041a0000004406b0003900000a0d0700004100000000007604350000002406b000390000000000460435000009e00400004100000000004b04350000000404b0003900000000005404350000000004000414000000040020008c00001e4f0000613d0000097c00b0009c0000097c0100004100000000010b401900000040011002100000097c0040009c0000097c04008041000000c003400210000000000113019f000009d2011001c700020000000b001d25ea25e50000040f000000020b00002900000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b001900001e3c0000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b00001e380000c13d000000000006004b00001e490000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0002000000010355000000010020019000001e7b0000613d0000001f01400039000000600810018f0000000001b80019000009c60010009c00001e680000213d000000400010043f000000200030008c00001e660000413d00000000010b0433000200000001001d000009d501000041000000000010044300000000010004140000097c0010009c0000097c01008041000000c001100210000009fa011001c70000800b0200003925ea25e50000040f000000010020019000001e6e0000613d000000000101043b000000020110006b0000000001004019000000000001042d0000000001000019000025ec00010430000009fe01000041000000000010043f0000004101000039000000040010043f000009bf01000041000025ec00010430000000000001042f0000001f0530018f0000097e06300198000000400200043d000000000462001900001e860000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001e760000c13d00001e860000013d0000001f0530018f0000097e06300198000000400200043d000000000462001900001e860000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001e820000c13d000000000005004b00001e930000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000097c0020009c0000097c020080410000004002200210000000000112019f000025ec0001043000010000000000020000000101000039000000000201041a000000400c00043d000009bd0100004100000000001c04350000000401c00039000009be030000410000000000310435000000000100041400000008022002700000097f02200197000000040020008c00001eac0000c13d0000000003000031000000200030008c0000002004000039000000000403401900001ed80000013d0000097c00c0009c0000097c0300004100000000030c401900000040033002100000097c0010009c0000097c01008041000000c001100210000000000131019f000009bf011001c700010000000c001d25ea25e50000040f000000010c00002900000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057c001900001ec70000613d000000000801034f00000000090c0019000000008a08043c0000000009a90436000000000059004b00001ec30000c13d000000000006004b00001ed40000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0002000000010355000000010020019000001f350000613d0000001f01400039000000600110018f000000000bc1001900000000001b004b00000000020000390000000102004039000009c600b0009c00001f2f0000213d000000010020019000001f2f0000c13d0000004000b0043f0000001f0030008c00001f2d0000a13d00000000020c04330000097f0020009c00001f2d0000213d0000000204000039000000000404041a0000004405b00039000009c20600004100000000006504350000002405b00039000009c3060000410000000000650435000009e00500004100000000005b04350000000405b0003900000000004504350000000004000414000000040020008c00001f250000613d0000097c00b0009c0000097c0100004100000000010b401900000040011002100000097c0040009c0000097c04008041000000c003400210000000000113019f000009d2011001c700010000000b001d25ea25e50000040f000000010b00002900000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b001900001f120000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b00001f0e0000c13d000000000006004b00001f1f0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0002000000010355000000010020019000001f530000613d0000001f01400039000000600110018f0000000001b10019000009c60010009c00001f2f0000213d000000400010043f000000200030008c00001f2d0000413d00000000010b0433000000000001042d0000000001000019000025ec00010430000009fe01000041000000000010043f0000004101000039000000040010043f000009bf01000041000025ec000104300000001f0530018f0000097e06300198000000400200043d000000000462001900001f400000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001f3c0000c13d000000000005004b00001f4d0000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000097c0020009c0000097c020080410000004002200210000000000112019f000025ec000104300000001f0530018f0000097e06300198000000400200043d000000000462001900001f5e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001f5a0000c13d000000000005004b00001f6b0000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000097c0020009c0000097c020080410000004002200210000000000121019f000025ec0001043000020000000000020000000102000039000000000202041a000000400c00043d000009bd0300004100000000003c04350000000404c00039000009be030000410000000000340435000000000400041400000008022002700000097f02200197000000040020008c00001f840000c13d0000000003000031000000200030008c0000002004000039000000000403401900001fb20000013d000100000001001d0000097c00c0009c0000097c0300004100000000030c401900000040033002100000097c0040009c0000097c04008041000000c001400210000000000131019f000009bf011001c700020000000c001d25ea25e50000040f000000020c00002900000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057c001900001fa00000613d000000000801034f00000000090c0019000000008a08043c0000000009a90436000000000059004b00001f9c0000c13d000000000006004b00001fad0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000200000001035500000001002001900000200e0000613d00000001010000290000001f02400039000000600720018f000000000bc7001900000000007b004b00000000020000390000000102004039000009c600b0009c000020080000213d0000000100200190000020080000c13d0000004000b0043f0000001f0030008c000020060000a13d00000000020c04330000097f0020009c000020060000213d0000000204000039000000000404041a0000004405b0003900000a0e0600004100000000006504350000002405b000390000000000150435000009e00500004100000000005b04350000000405b0003900000000004504350000000004000414000000040020008c00001ffe0000613d0000097c00b0009c0000097c0100004100000000010b401900000040011002100000097c0040009c0000097c04008041000000c003400210000000000113019f000009d2011001c700020000000b001d25ea25e50000040f000000020b00002900000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b001900001feb0000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b00001fe70000c13d000000000006004b00001ff80000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000200000001035500000001002001900000202c0000613d0000001f01400039000000600710018f0000000001b70019000009c60010009c000020080000213d000000400010043f000000200030008c000020060000413d00000000010b0433000000000001042d0000000001000019000025ec00010430000009fe01000041000000000010043f0000004101000039000000040010043f000009bf01000041000025ec000104300000001f0530018f0000097e06300198000000400200043d0000000004620019000020190000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000020150000c13d000000000005004b000020260000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000097c0020009c0000097c020080410000004002200210000000000112019f000025ec000104300000001f0530018f0000097e06300198000000400200043d0000000004620019000020370000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000020330000c13d000000000005004b000020440000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000097c0020009c0000097c020080410000004002200210000000000121019f000025ec0001043000020000000000020000000102000039000000000202041a000000400c00043d000009bd0300004100000000003c04350000000404c00039000009be030000410000000000340435000000000400041400000008022002700000097f02200197000000040020008c0000205d0000c13d0000000003000031000000200030008c000000200400003900000000040340190000208b0000013d000100000001001d0000097c00c0009c0000097c0300004100000000030c401900000040033002100000097c0040009c0000097c04008041000000c001400210000000000131019f000009bf011001c700020000000c001d25ea25e50000040f000000020c00002900000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057c0019000020790000613d000000000801034f00000000090c0019000000008a08043c0000000009a90436000000000059004b000020750000c13d000000000006004b000020860000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f00020000000103550000000100200190000020e70000613d00000001010000290000001f02400039000000600720018f000000000bc7001900000000007b004b00000000020000390000000102004039000009c600b0009c000020e10000213d0000000100200190000020e10000c13d0000004000b0043f0000001f0030008c000020df0000a13d00000000020c04330000097f0020009c000020df0000213d0000000204000039000000000404041a0000004405b00039000009c20600004100000000006504350000002405b000390000000000150435000009e00500004100000000005b04350000000405b0003900000000004504350000000004000414000000040020008c000020d70000613d0000097c00b0009c0000097c0100004100000000010b401900000040011002100000097c0040009c0000097c04008041000000c003400210000000000113019f000009d2011001c700020000000b001d25ea25e50000040f000000020b00002900000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b0019000020c40000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b000020c00000c13d000000000006004b000020d10000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f00020000000103550000000100200190000021050000613d0000001f01400039000000600710018f0000000001b70019000009c60010009c000020e10000213d000000400010043f000000200030008c000020df0000413d00000000010b0433000000000001042d0000000001000019000025ec00010430000009fe01000041000000000010043f0000004101000039000000040010043f000009bf01000041000025ec000104300000001f0530018f0000097e06300198000000400200043d0000000004620019000020f20000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000020ee0000c13d000000000005004b000020ff0000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000097c0020009c0000097c020080410000004002200210000000000112019f000025ec000104300000001f0530018f0000097e06300198000000400200043d0000000004620019000021100000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000210c0000c13d000000000005004b0000211d0000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000097c0020009c0000097c020080410000004002200210000000000121019f000025ec0001043000020000000000020000000102000039000000000202041a000000400c00043d000009bd0300004100000000003c04350000000404c00039000009be030000410000000000340435000000000400041400000008022002700000097f02200197000000040020008c000021360000c13d0000000003000031000000200030008c00000020040000390000000004034019000021640000013d000100000001001d0000097c00c0009c0000097c0300004100000000030c401900000040033002100000097c0040009c0000097c04008041000000c001400210000000000131019f000009bf011001c700020000000c001d25ea25e50000040f000000020c00002900000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057c0019000021520000613d000000000801034f00000000090c0019000000008a08043c0000000009a90436000000000059004b0000214e0000c13d000000000006004b0000215f0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f00020000000103550000000100200190000021c00000613d00000001010000290000001f02400039000000600720018f000000000bc7001900000000007b004b00000000020000390000000102004039000009c600b0009c000021ba0000213d0000000100200190000021ba0000c13d0000004000b0043f0000001f0030008c000021b80000a13d00000000020c04330000097f0020009c000021b80000213d0000000204000039000000000404041a0000004405b00039000009ec0600004100000000006504350000002405b000390000000000150435000009e00500004100000000005b04350000000405b0003900000000004504350000000004000414000000040020008c000021b00000613d0000097c00b0009c0000097c0100004100000000010b401900000040011002100000097c0040009c0000097c04008041000000c003400210000000000113019f000009d2011001c700020000000b001d25ea25e50000040f000000020b00002900000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b00190000219d0000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b000021990000c13d000000000006004b000021aa0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f00020000000103550000000100200190000021de0000613d0000001f01400039000000600710018f0000000001b70019000009c60010009c000021ba0000213d000000400010043f000000200030008c000021b80000413d00000000010b0433000000000001042d0000000001000019000025ec00010430000009fe01000041000000000010043f0000004101000039000000040010043f000009bf01000041000025ec000104300000001f0530018f0000097e06300198000000400200043d0000000004620019000021cb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000021c70000c13d000000000005004b000021d80000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000097c0020009c0000097c020080410000004002200210000000000112019f000025ec000104300000001f0530018f0000097e06300198000000400200043d0000000004620019000021e90000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000021e50000c13d000000000005004b000021f60000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000097c0020009c0000097c020080410000004002200210000000000121019f000025ec0001043000020000000000020000000102000039000000000202041a000000400c00043d000009bd0300004100000000003c04350000000404c00039000009be030000410000000000340435000000000400041400000008022002700000097f02200197000000040020008c0000220f0000c13d0000000003000031000000200030008c000000200400003900000000040340190000223d0000013d000100000001001d0000097c00c0009c0000097c0300004100000000030c401900000040033002100000097c0040009c0000097c04008041000000c001400210000000000131019f000009bf011001c700020000000c001d25ea25e50000040f000000020c00002900000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057c00190000222b0000613d000000000801034f00000000090c0019000000008a08043c0000000009a90436000000000059004b000022270000c13d000000000006004b000022380000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f00020000000103550000000100200190000022990000613d00000001010000290000001f02400039000000600720018f000000000bc7001900000000007b004b00000000020000390000000102004039000009c600b0009c000022930000213d0000000100200190000022930000c13d0000004000b0043f0000001f0030008c000022910000a13d00000000020c04330000097f0020009c000022910000213d0000000204000039000000000404041a0000004405b0003900000a0d0600004100000000006504350000002405b000390000000000150435000009e00500004100000000005b04350000000405b0003900000000004504350000000004000414000000040020008c000022890000613d0000097c00b0009c0000097c0100004100000000010b401900000040011002100000097c0040009c0000097c04008041000000c003400210000000000113019f000009d2011001c700020000000b001d25ea25e50000040f000000020b00002900000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b0019000022760000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b000022720000c13d000000000006004b000022830000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f00020000000103550000000100200190000022b70000613d0000001f01400039000000600710018f0000000001b70019000009c60010009c000022930000213d000000400010043f000000200030008c000022910000413d00000000010b0433000000000001042d0000000001000019000025ec00010430000009fe01000041000000000010043f0000004101000039000000040010043f000009bf01000041000025ec000104300000001f0530018f0000097e06300198000000400200043d0000000004620019000022a40000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000022a00000c13d000000000005004b000022b10000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000097c0020009c0000097c020080410000004002200210000000000112019f000025ec000104300000001f0530018f0000097e06300198000000400200043d0000000004620019000022c20000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000022be0000c13d000000000005004b000022cf0000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000097c0020009c0000097c020080410000004002200210000000000121019f000025ec0001043000020000000000020000000102000039000000000202041a000000400b00043d000009ba0300004100000000003b04350000000403b00039000009bb0400004100000000004304350000097f051001970000002401b000390000000000510435000000000100041400000008022002700000097f02200197000000040020008c000022eb0000c13d0000000003000031000000200030008c00000020040000390000000004034019000023190000013d000100000005001d0000097c00b0009c0000097c0300004100000000030b401900000040033002100000097c0010009c0000097c01008041000000c001100210000000000131019f000009cb011001c700020000000b001d25ea25e50000040f000000020b00002900000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b0019000023070000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b000023030000c13d000000000006004b000023140000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000200000001035500000001002001900000233e0000613d00000001050000290000001f01400039000000600210018f0000000001b20019000000000021004b00000000020000390000000102004039000009c60010009c000023310000213d0000000100200190000023310000c13d000000400010043f0000001f0030008c0000232f0000a13d00000000010b0433000000000001004b0000000002000039000000010200c039000000000021004b0000232f0000c13d000000000001004b000023370000613d000000000001042d0000000001000019000025ec00010430000009fe01000041000000000010043f0000004101000039000000040010043f000009bf01000041000025ec00010430000009ca01000041000000000010043f000000040050043f000009bb01000041000000240010043f000009cb01000041000025ec000104300000001f0530018f0000097e06300198000000400200043d0000000004620019000023490000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000023450000c13d000000000005004b000023560000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000097c0020009c0000097c020080410000004002200210000000000112019f000025ec000104300004000000000002000300000002001d000400000001001d0000000101000039000000000201041a000000400b00043d000009bd0100004100000000001b04350000000401b00039000009be030000410000000000310435000000000100041400000008022002700000097f02200197000000040020008c000023710000c13d0000000003000031000000200030008c000000200400003900000000040340190000239d0000013d0000097c00b0009c0000097c0300004100000000030b401900000040033002100000097c0010009c0000097c01008041000000c001100210000000000131019f000009bf011001c700020000000b001d25ea25e50000040f000000020b00002900000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b00190000238c0000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b000023880000c13d000000000006004b000023990000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f00020000000103550000000100200190000023f20000613d0000001f01400039000000600210018f0000000001b20019000000000021004b00000000020000390000000102004039000009c60010009c000023eb0000213d0000000100200190000023eb0000c13d000000400010043f0000001f0030008c000023e90000a13d00000000020b04330000097f0020009c000023e90000213d0000000201000039000000000101041a000100000001001d000009c0010000410000000000100443000200000002001d000000040020044300000000010004140000097c0010009c0000097c01008041000000c001100210000009c1011001c7000080020200003925ea25e50000040f0000000100200190000023f10000613d000000000101043b000000000001004b0000000203000029000023e90000613d000000400400043d000000640140003900000003020000290000000000210435000000440140003900000a0e020000410000000000210435000000240140003900000004020000290000000000210435000009c40100004100000000001404350000000401400039000000010200002900000000002104350000000001000414000000040030008c000023e50000613d0000097c0040009c0000097c02000041000000000204401900000040022002100000097c0010009c0000097c01008041000000c001100210000000000121019f000009c5011001c70000000002030019000400000004001d25ea25e00000040f000000040400002900000060031002700000097c0030019d00020000000103550000000100200190000023fe0000613d000009c60040009c000023eb0000213d000000400040043f000000000001042d0000000001000019000025ec00010430000009fe01000041000000000010043f0000004101000039000000040010043f000009bf01000041000025ec00010430000000000001042f0000001f0530018f0000097e06300198000000400200043d00000000046200190000240a0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000023f90000c13d0000240a0000013d0000097c033001970000001f0530018f0000097e06300198000000400200043d00000000046200190000240a0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000024060000c13d000000000005004b000024170000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000097c0020009c0000097c020080410000004002200210000000000112019f000025ec000104300004000000000002000300000002001d000400000001001d0000000101000039000000000201041a000000400b00043d000009bd0100004100000000001b04350000000401b00039000009be030000410000000000310435000000000100041400000008022002700000097f02200197000000040020008c000024320000c13d0000000003000031000000200030008c000000200400003900000000040340190000245e0000013d0000097c00b0009c0000097c0300004100000000030b401900000040033002100000097c0010009c0000097c01008041000000c001100210000000000131019f000009bf011001c700020000000b001d25ea25e50000040f000000020b00002900000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b00190000244d0000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b000024490000c13d000000000006004b0000245a0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f00020000000103550000000100200190000024b30000613d0000001f01400039000000600210018f0000000001b20019000000000021004b00000000020000390000000102004039000009c60010009c000024ac0000213d0000000100200190000024ac0000c13d000000400010043f0000001f0030008c000024aa0000a13d00000000020b04330000097f0020009c000024aa0000213d0000000201000039000000000101041a000100000001001d000009c0010000410000000000100443000200000002001d000000040020044300000000010004140000097c0010009c0000097c01008041000000c001100210000009c1011001c7000080020200003925ea25e50000040f0000000100200190000024b20000613d000000000101043b000000000001004b0000000203000029000024aa0000613d000000400400043d0000006401400039000000030200002900000000002104350000004401400039000009c2020000410000000000210435000000240140003900000004020000290000000000210435000009c40100004100000000001404350000000401400039000000010200002900000000002104350000000001000414000000040030008c000024a60000613d0000097c0040009c0000097c02000041000000000204401900000040022002100000097c0010009c0000097c01008041000000c001100210000000000121019f000009c5011001c70000000002030019000400000004001d25ea25e00000040f000000040400002900000060031002700000097c0030019d00020000000103550000000100200190000024bf0000613d000009c60040009c000024ac0000213d000000400040043f000000000001042d0000000001000019000025ec00010430000009fe01000041000000000010043f0000004101000039000000040010043f000009bf01000041000025ec00010430000000000001042f0000001f0530018f0000097e06300198000000400200043d0000000004620019000024cb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000024ba0000c13d000024cb0000013d0000097c033001970000001f0530018f0000097e06300198000000400200043d0000000004620019000024cb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000024c70000c13d000000000005004b000024d80000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000097c0020009c0000097c020080410000004002200210000000000112019f000025ec000104300004000000000002000300000002001d000400000001001d0000000101000039000000000201041a000000400b00043d000009bd0100004100000000001b04350000000401b00039000009be030000410000000000310435000000000100041400000008022002700000097f02200197000000040020008c000024f30000c13d0000000003000031000000200030008c000000200400003900000000040340190000251f0000013d0000097c00b0009c0000097c0300004100000000030b401900000040033002100000097c0010009c0000097c01008041000000c001100210000000000131019f000009bf011001c700020000000b001d25ea25e50000040f000000020b00002900000060031002700000097c03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b00190000250e0000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b0000250a0000c13d000000000006004b0000251b0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f00020000000103550000000100200190000025740000613d0000001f01400039000000600210018f0000000001b20019000000000021004b00000000020000390000000102004039000009c60010009c0000256d0000213d00000001002001900000256d0000c13d000000400010043f0000001f0030008c0000256b0000a13d00000000020b04330000097f0020009c0000256b0000213d0000000201000039000000000101041a000100000001001d000009c0010000410000000000100443000200000002001d000000040020044300000000010004140000097c0010009c0000097c01008041000000c001100210000009c1011001c7000080020200003925ea25e50000040f0000000100200190000025730000613d000000000101043b000000000001004b00000002030000290000256b0000613d000000400400043d000000640140003900000003020000290000000000210435000000440140003900000a0d020000410000000000210435000000240140003900000004020000290000000000210435000009c40100004100000000001404350000000401400039000000010200002900000000002104350000000001000414000000040030008c000025670000613d0000097c0040009c0000097c02000041000000000204401900000040022002100000097c0010009c0000097c01008041000000c001100210000000000121019f000009c5011001c70000000002030019000400000004001d25ea25e00000040f000000040400002900000060031002700000097c0030019d00020000000103550000000100200190000025800000613d000009c60040009c0000256d0000213d000000400040043f000000000001042d0000000001000019000025ec00010430000009fe01000041000000000010043f0000004101000039000000040010043f000009bf01000041000025ec00010430000000000001042f0000001f0530018f0000097e06300198000000400200043d00000000046200190000258c0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000257b0000c13d0000258c0000013d0000097c033001970000001f0530018f0000097e06300198000000400200043d00000000046200190000258c0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000025880000c13d000000000005004b000025990000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000097c0020009c0000097c020080410000004002200210000000000112019f000025ec00010430000000400200043d0000002003200039000009f204000041000000000043043500000060011002100000002c0420003900000000001404350000002001000039000000000012043500000a0f0020009c000025c00000813d0000004001200039000000400010043f0000097c0030009c0000097c03008041000000400130021000000000020204330000097c0020009c0000097c020080410000006002200210000000000112019f00000000020004140000097c0020009c0000097c02008041000000c002200210000000000112019f000009f4011001c7000080100200003925ea25e50000040f0000000100200190000025c60000613d000000000101043b000000000001042d000009fe01000041000000000010043f0000004101000039000000040010043f000009bf01000041000025ec000104300000000001000019000025ec00010430000000000001042f00000000050100190000000000200443000000040030008c000025d00000a13d0000000501400270000000000101003100000004001004430000097c0030009c0000097c03008041000000600130021000000000020004140000097c0020009c0000097c02008041000000c002200210000000000112019f00000a10011001c7000000000205001925ea25e50000040f0000000100200190000025df0000613d000000000101043b000000000001042d000000000001042f000025e3002104210000000102000039000000000001042d0000000002000019000000000001042d000025e8002104230000000102000039000000000001042d0000000002000019000000000001042d000025ea00000432000025eb0001042e000025ec0001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff005fc998f6f1112087a6a7f978c03b3ef6c1298970e0970ce1bba412cafeba982b0000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000008129fc1b00000000000000000000000000000000000000000000000000000000b76ac0d600000000000000000000000000000000000000000000000000000000d6077fbe00000000000000000000000000000000000000000000000000000000dd898b2e00000000000000000000000000000000000000000000000000000000dd898b2f00000000000000000000000000000000000000000000000000000000dee22baf00000000000000000000000000000000000000000000000000000000ed022ebd00000000000000000000000000000000000000000000000000000000d6077fbf00000000000000000000000000000000000000000000000000000000d8b8304d00000000000000000000000000000000000000000000000000000000cd90c4c000000000000000000000000000000000000000000000000000000000cd90c4c100000000000000000000000000000000000000000000000000000000ce62bc8c00000000000000000000000000000000000000000000000000000000d29e239100000000000000000000000000000000000000000000000000000000b76ac0d700000000000000000000000000000000000000000000000000000000c03ad0be000000000000000000000000000000000000000000000000000000008da5cb5a00000000000000000000000000000000000000000000000000000000a26051a900000000000000000000000000000000000000000000000000000000a26051aa00000000000000000000000000000000000000000000000000000000a367463300000000000000000000000000000000000000000000000000000000a485b4cf000000000000000000000000000000000000000000000000000000008da5cb5b00000000000000000000000000000000000000000000000000000000a16ad7da0000000000000000000000000000000000000000000000000000000082840eec0000000000000000000000000000000000000000000000000000000082840eed0000000000000000000000000000000000000000000000000000000088e4f1cb000000000000000000000000000000000000000000000000000000008129fc1c000000000000000000000000000000000000000000000000000000008245e4720000000000000000000000000000000000000000000000000000000033f67776000000000000000000000000000000000000000000000000000000005d1ca6300000000000000000000000000000000000000000000000000000000077278ae70000000000000000000000000000000000000000000000000000000077278ae8000000000000000000000000000000000000000000000000000000007b2cdcfa000000000000000000000000000000000000000000000000000000007bdea442000000000000000000000000000000000000000000000000000000005d1ca631000000000000000000000000000000000000000000000000000000006baa81cb0000000000000000000000000000000000000000000000000000000052ce66cb0000000000000000000000000000000000000000000000000000000052ce66cc00000000000000000000000000000000000000000000000000000000532eb6af000000000000000000000000000000000000000000000000000000005c975abb0000000000000000000000000000000000000000000000000000000033f67777000000000000000000000000000000000000000000000000000000003ccfd60b0000000000000000000000000000000000000000000000000000000015be71fe00000000000000000000000000000000000000000000000000000000267659e100000000000000000000000000000000000000000000000000000000267659e2000000000000000000000000000000000000000000000000000000002fb0b87400000000000000000000000000000000000000000000000000000000318aa7b80000000000000000000000000000000000000000000000000000000015be71ff0000000000000000000000000000000000000000000000000000000016c38b3c0000000000000000000000000000000000000000000000000000000006fdde020000000000000000000000000000000000000000000000000000000006fdde03000000000000000000000000000000000000000000000000000000001328357f000000000000000000000000000000000000000000000000000000000035a9ae0000000000000000000000000000000000000000000000000000000001ffc9a70000000000000000000000000000000000000020000000800000000000000000c36dd7ea00000000000000000000000000000000000000000000000000000000241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b08000000000000000000000000000000000000004400000080000000000000000053e41c1e000000000000000000000000000000000000000000000000000000009750ad73d9615445751d3fd0a61d867ae6a6dd1dfb5f65ef07fe835b7d5ca6bd00000000000000000000000000000000000000240000000000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000f6107defa27e89b692bb66715910b52654e5ff87667d894ef03866f892ca15218fca2ef4e7213c4c2935bd4848f4d11b4bfe287c34ffeb64a8a7b12d477d5daa9b29de69000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff08c379a00000000000000000000000000000000000000000000000000000000065206c657373207468616e206f7220657175616c20746f203130300000000000526566666572616c2073686172652070657263656e74616765206d75737420620161a64a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000000000000000000000ffffffffffffffffffffff0000000000000000000000000000000000000000ffa4b91481000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000240000008000000000000000008a4bcc900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000000000000000000000000000000000000000000000000000796b89b91644bc98cd93958e4c9038275d622183e25ac5af08cc6b5d9553913207fef63300000000000000000000000000000000000000000000000000000000bfa2ccd2000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06516897000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000070757263686173650000000000000000000000000000000000000000000000000200000000000000000000000000000000000028000000a00000000000000000326d994cdb81aaccb84aa1f62bae636dc0aaf98ab22f66b0c9224f1edccd7cc9e81b22ea00000000000000000000000000000000000000000000000000000000a709fd3aa96d9faf770e44a5aef2f4808a6fe3a5ddf546568f36ad3a3873f31da1b9224c000000000000000000000000000000000000000000000000000000009b6738edc3ab9b4f910c49b09c405b7ddfa1f5578bca3bd1864689c1c557e59e00000000000000000000000000000000000000a000000000000000000000000007b920aa0000000000000000000000000000000000000000000000000000000002016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c0fc425f2263d0df187444b70e47283d622c70181c5baebb1306a01edba1ce184c476967614a7569636553797374656d00000000000000000000000000000000000dc149f000000000000000000000000000000000000000000000000000000000421683f821a0574472445355be6d2b769119e8515f8376a1d7878523dfdecf7b0a41b90f000000000000000000000000000000000000000000000000000000002361458367e696363fbcc70777d07ebbd2394e89fd0adcaf147faccd1d294d60e95c048700000000000000000000000000000000000000000000000000000000e304a5c70fd9a92a756a98ab89d05a9d1ea7d24975986fd7971033be6405d6b05c975abb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000008000000000000000005061757361626c653a207061757365640000000000000000000000000000000021ca133936d4563655fffbb8a80562871d737bffbe741fdcca6f8efef7a246374a9fefc700000000000000000000000000000000000000000000000000000000726566657272616c446174610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf02000000000000000000000000000000000000000000000000000000000000005265666572726572207472616e73666572206661696c656400000000000000007200000000000000000000000000000000000000000000000000000000000000526566657272616c20616d6f756e742063616c63756c6174696f6e206572726fa2a9f6940e96680af2fe721eb59341cde71d9b7ae61dc834d205d6c59360268e000000000000000000000000000000000000000000000000ffffffffffffff9f02000002000000000000000000000000000000040000000000000000000000004661696c656420746f2072657475726e2065786365737320455448000000000064000000000000000000000000000000000000000000000000000000000000004d6178206a75696365642074696d6520776f756c6420626520657863656564654e487b7100000000000000000000000000000000000000000000000000000000496e73756666696369656e74207061796d656e740000000000000000000000004d696e74207072696365206e6f742073657400000000000000000000000000005265656e7472616e637947756172643a207265656e7472616e742063616c6c009cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f395472616e73666572206661696c6564000000000000000000000000000000000065d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a020000000000000000000000000000000000002000000000000000000000000062e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2585db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa5061757361626c653a206e6f742070617573656400000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff01ffc9a700000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff004ebf727c48eac2c66272456b06a885c5cc03e54d140f63b63b6fd10c1227958e0ecd9e25c81c684765cec4b6e84c99a71427b6f86b89fb7723e47f99327ee572000000000000000000000000000000000000000000000000ffffffffffffffc002000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fc4b5a931aae257a56e42c8ea09ef231cc438e27b9764cfdd6c4d403be568b63
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000074eb92b33f2400eb14f6d6725b14f76078d5e731
-----Decoded View---------------
Arg [0] : gameRegistryAddress (address): 0x74eb92b33f2400EB14F6D6725B14F76078d5E731
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000074eb92b33f2400eb14f6d6725b14f76078d5e731
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.